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 compilation error with g++ 4.6 on default constructor definition Date: Sat, 20 Jun 2026 04:39:19 GMT Message-ID: <178193035974.1.2234473186338801970.rpms-soci-c783268fa4c8@fedoraproject.org> List-ID: X-Git-Repo: rpms/soci X-Git-Branch: update-to-4.1.4 X-Git-Rev: c783268fa4c8465e68555056ed0c03655830025e ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvc29jaQogICAgICAgICAgICBCcmFuY2ggOiB1cGRhdGUtdG8tNC4xLjQKICAg ICAgICAgICAgQ29tbWl0IDogYzc4MzI2OGZhNGM4NDY1ZTY4NTU1MDU2ZWQwYzAzNjU1ODMwMDI1 ZQogICAgICAgICAgICBBdXRob3IgOiBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFA bTR4Lm9yZz4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxMS0wMi0wOVQwMToxNTozOCswMTowMAog ICAgICAgICAgICBTdGF0cyAgOiArNTk5OTMvLTYyOTc5IGluIDkgZmlsZShzKQogICAgICAgICAg ICBVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL3NvY2kvYy9jNzgz MjY4ZmE0Yzg0NjVlNjg1NTUwNTZlZDBjMDM2NTU4MzAwMjVlP2JyYW5jaD11cGRhdGUtdG8tNC4x LjQKCiAgICAgICAgICAgIExvZzoKICAgICAgICAgICAgLSBGaXhlZCBhIGNvbXBpbGF0aW9uIGVy cm9yIHdpdGggZysrIDQuNiBvbiBkZWZhdWx0IGNvbnN0cnVjdG9yIGRlZmluaXRpb24KLSBTcGxp dCB0aGUgYmlnIHBhdGNoIGludG8gc21hbGxlciBwaWVjZXMKCi0tLQpkaWZmIC0tZ2l0IGEvLmdp dGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggZDRhZjE3OC4uMzBjOGY2ZiAxMDA2NDQKLS0tIGEv LmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0xLDYgKzEsNSBAQAogc29jaS0qLnRhci4q CiBzb2NpLSouc3JjLnJwbQotc29jaS0qLiouKi0qLnBhdGNoCiAuZ2l0aWdub3JlCiBjbG9nCiAu YnVpbGQtKgoKZGlmZiAtLWdpdCBhL3NvY2ktMy4wLjAtMTYtZml4LWdjYzQ0LWNvbXBhdGliaWxp dHkucGF0Y2ggYi9zb2NpLTMuMC4wLTE2LWZpeC1nY2M0NC1jb21wYXRpYmlsaXR5LnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOGUxYzU1Li4wMDAwMDAwCi0tLSBhL3NvY2kt My4wLjAtMTYtZml4LWdjYzQ0LWNvbXBhdGliaWxpdHkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSw2MjMgKzAsMCBAQAotZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL2Nv bW1vbi5oIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24uaAotLS0t IHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oCTIwMDgtMDctMDMgMDk6MjI6 NTcuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215 c3FsL2NvbW1vbi5oCTIwMTAtMDEtMjMgMTM6MTc6MjguMDAwMDAwMDAwICswMTAwCi1AQCAtMTAs NiArMTAsNyBAQAotIAotICNpbmNsdWRlIDxzc3RyZWFtPgotICNpbmNsdWRlICJzb2NpLW15c3Fs LmgiCi0rI2luY2x1ZGUgPGN0aW1lPgotIAotIG5hbWVzcGFjZSBzb2NpCi0gewotZGlmZiAtTnVy IHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwIHNvY2ktMy4wLjBfNC1w YWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAotLS0tIHNvY2ktMy4wLjAvc3JjL2Jh Y2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCTIwMDgtMDUtMTUgMTU6NTg6MzguMDAwMDAwMDAwICsw MjAwCi0rKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3Bw CTIwMTAtMDEtMjMgMTM6MTc6MjguMDAwMDAwMDAwICswMTAwCi1AQCAtMTEsNyArMTEsOCBAQAot ICNpbmNsdWRlIDxjY3R5cGU+Ci0gI2luY2x1ZGUgPGNlcnJubz4KLSAjaW5jbHVkZSA8Y2lzbzY0 Nj4KLS0KLSsjaW5jbHVkZSA8Y3N0ZGxpYj4KLSsjaW5jbHVkZSA8Y2xpbWl0cz4KLSAKLSAjaWZk ZWYgX01TQ19WRVIKLSAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MzU1KQotZGlmZiAtTnVyIHNv Y2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgc29jaS0z LjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLS0t LSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIw MDgtMDUtMzAgMTM6MzM6NDUuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF80LXBhY2sv c3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAxMC0wMS0yMyAxMzox NzoyOC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xMiw2ICsxMiw4IEBACi0gI2luY2x1ZGUgImNvbW1v bi5oIgotICNpbmNsdWRlIDxjaXNvNjQ2PgotICNpbmNsdWRlIDxjYXNzZXJ0PgotKyNpbmNsdWRl IDxjdGltZT4KLSsjaW5jbHVkZSA8Y3N0cmluZz4KLSAKLSAjaWZkZWYgX01TQ19WRVIKLSAjcHJh Z21hIHdhcm5pbmcoZGlzYWJsZTo0MzU1KQotZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tl bmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFj a2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tLS0gc29jaS0zLjAuMC9zcmMvYmFj a2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDgtMDUtMTUgMTU6NTg6MzguMDAw MDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3N0 YW5kYXJkLXVzZS10eXBlLmNwcAkyMDEwLTAxLTIzIDEzOjE3OjI4LjAwMDAwMDAwMCArMDEwMAot QEAgLTEwLDggKzEwLDEwIEBACi0gI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKLSAjaW5jbHVkZSAi Y29tbW9uLmgiCi0gI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KLSsvLwotICNpbmNsdWRlIDxj aXNvNjQ2PgotICNpbmNsdWRlIDxsaW1pdHM+Ci0rI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVk ZSA8Y3N0cmluZz4KLSAKLSAjaWZkZWYgX01TQ19WRVIKLWRpZmYgLU51ciBzb2NpLTMuMC4wL3Ny Yy9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3Ny Yy9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0tLS0gc29jaS0zLjAuMC9zcmMv YmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAkyMDA4LTA1LTE1IDE1OjU4OjM4LjAw MDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC92 ZWN0b3ItdXNlLXR5cGUuY3BwCTIwMTAtMDEtMjMgMTM6MTc6MjguMDAwMDAwMDAwICswMTAwCi1A QCAtMTAsOSArMTAsMTIgQEAKLSAjaW5jbHVkZSAic29jaS1teXNxbC5oIgotICNpbmNsdWRlICJj b21tb24uaCIKLSAjaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotKy8vCi0gI2luY2x1ZGUgPGNp c282NDY+Ci0gI2luY2x1ZGUgPGxpbWl0cz4KLSsjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRl IDxjc3RyaW5nPgotKyNpbmNsdWRlIDxjdGltZT4KLSAKLSAjaWZkZWYgX01TQ19WRVIKLSAjcHJh Z21hIHdhcm5pbmcoZGlzYWJsZTo0MzU1KQotZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tl bmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMv cG9zdGdyZXNxbC9jb21tb24uY3BwCi0tLS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvcG9zdGdy ZXNxbC9jb21tb24uY3BwCTIwMDgtMDYtMjcgMTY6Mzg6MDUuMDAwMDAwMDAwICswMjAwCi0rKysg c29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAkyMDEw LTAxLTIzIDEzOjE3OjI4LjAwMDAwMDAwMCArMDEwMAotQEAgLTcsNyArNyw5IEBACi0gCi0gI2lu Y2x1ZGUgImNvbW1vbi5oIgotICNpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsvLwotICNpbmNs dWRlIDxjc3RkbGliPgotKyNpbmNsdWRlIDxjc3RkaW8+Ci0gI2luY2x1ZGUgPGN0aW1lPgotIAot IAotZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0 LXBvc3RncmVzcWwuY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAotLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL3Bv c3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCTIwMDgtMDYtMDUgMjI6NDE6NTguMDAw MDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVz cWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCTIwMTAtMDEtMjMgMTM6MTc6MjguMDAwMDAwMDAw ICswMTAwCi1AQCAtMTUsNiArMTUsNyBAQAotICNpbmNsdWRlIDxjbWF0aD4KLSAjaW5jbHVkZSA8 Y3RpbWU+Ci0gI2luY2x1ZGUgPGNzdGRsaWI+Ci0rI2luY2x1ZGUgPGNzdHJpbmc+Ci0gCi0gdXNp bmcgbmFtZXNwYWNlIHNvY2k7Ci0gdXNpbmcgbmFtZXNwYWNlIHNvY2k6OnRlc3RzOwotZGlmZiAt TnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVz cWwuY3BwLm9yaWcgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVz dC90ZXN0LXBvc3RncmVzcWwuY3BwLm9yaWcKLS0tLSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcC5vcmlnCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bv c3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwLm9yaWcJMjAxMC0wMS0yMyAxMzoxNzoy OC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsNTE3IEBACi0rLy8KLSsvLyBDb3B5cmlnaHQg KEMpIDIwMDQtMjAwOCBNYWNpZWogU29iY3phaywgU3RlcGhlbiBIdXR0b24KLSsvLyBEaXN0cmli dXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCi0rLy8g KFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAotKy8vIGh0 dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKLSsvLwotKwotKyNpbmNsdWRlICJz b2NpLmgiCi0rI2luY2x1ZGUgInNvY2ktcG9zdGdyZXNxbC5oIgotKyNpbmNsdWRlICJjb21tb24t dGVzdHMuaCIKLSsjaW5jbHVkZSA8aW9zdHJlYW0+Ci0rI2luY2x1ZGUgPHNzdHJlYW0+Ci0rI2lu Y2x1ZGUgPHN0cmluZz4KLSsjaW5jbHVkZSA8Y2Fzc2VydD4KLSsjaW5jbHVkZSA8Y21hdGg+Ci0r I2luY2x1ZGUgPGN0aW1lPgotKyNpbmNsdWRlIDxjc3RkbGliPgotKwotK3VzaW5nIG5hbWVzcGFj ZSBzb2NpOwotK3VzaW5nIG5hbWVzcGFjZSBzb2NpOjp0ZXN0czsKLSsKLStzdGQ6OnN0cmluZyBj b25uZWN0U3RyaW5nOwotK2JhY2tlbmRfZmFjdG9yeSBjb25zdCAmYmFja0VuZCA9IHBvc3RncmVz cWw7Ci0rCi0rLy8gUG9zdGdyZXMtc3BlY2lmaWMgdGVzdHMKLSsKLStzdHJ1Y3Qgb2lkX3RhYmxl X2NyZWF0b3IgOiBwdWJsaWMgdGFibGVfY3JlYXRvcl9iYXNlCi0rewotKyAgICBvaWRfdGFibGVf Y3JlYXRvcihzZXNzaW9uJiBzcWwpCi0rICAgIDogdGFibGVfY3JlYXRvcl9iYXNlKHNxbCkKLSsg ICAgewotKyAgICAgICAgc3FsIDw8ICJjcmVhdGUgdGFibGUgc29jaV90ZXN0ICgiCi0rICAgICAg ICAgICAgICAgICIgaWQgaW50ZWdlciwiCi0rICAgICAgICAgICAgICAgICIgbmFtZSB2YXJjaGFy KDEwMCkiCi0rICAgICAgICAgICAgICAgICIpIHdpdGggb2lkcyI7Ci0rICAgIH0KLSt9OwotKwot Ky8vIFJPV0lEIHRlc3QKLSsvLyBOb3RlOiBpbiBQb3N0Z3JlU1FMLCB0aGVyZSBpcyBubyBST1dJ RCwgdGhlcmUgaXMgT0lELgotKy8vIEl0IGlzIHN0aWxsIHByb3ZpZGVkIGFzIGEgc2VwYXJhdGUg dHlwZSBmb3IgInBvcnRhYmlsaXR5IiwKLSsvLyB3aGF0ZXZlciB0aGF0IG1lYW5zLgotK3ZvaWQg dGVzdDEoKQotK3sKLSsgICAgewotKyAgICAgICAgc2Vzc2lvbiBzcWwoYmFja0VuZCwgY29ubmVj dFN0cmluZyk7Ci0rCi0rICAgICAgICBvaWRfdGFibGVfY3JlYXRvciB0YWJsZUNyZWF0b3Ioc3Fs KTsKLSsKLSsgICAgICAgIHNxbCA8PCAiaW5zZXJ0IGludG8gc29jaV90ZXN0KGlkLCBuYW1lKSB2 YWx1ZXMoNywgXCdKb2huXCcpIjsKLSsKLSsgICAgICAgIHJvd2lkIHJpZChzcWwpOwotKyAgICAg ICAgc3FsIDw8ICJzZWxlY3Qgb2lkIGZyb20gc29jaV90ZXN0IHdoZXJlIGlkID0gNyIsIGludG8o cmlkKTsKLSsKLSsgICAgICAgIGludCBpZDsKLSsgICAgICAgIHN0ZDo6c3RyaW5nIG5hbWU7Ci0r Ci0rI2lmbmRlZiBTT0NJX1BHU1FMX05PUEFSQU1TCi0rCi0rICAgICAgICBzcWwgPDwgInNlbGVj dCBpZCwgbmFtZSBmcm9tIHNvY2lfdGVzdCB3aGVyZSBvaWQgPSA6cmlkIiwKLSsgICAgICAgICAg ICBpbnRvKGlkKSwgaW50byhuYW1lKSwgdXNlKHJpZCk7Ci0rCi0rI2Vsc2UKLSsgICAgICAgIC8v IE9sZGVyIFBvc3RncmVTUUwgZG9lcyBub3Qgc3VwcG9ydCB1c2UgZWxlbWVudHMuCi0rCi0rICAg ICAgICBwb3N0Z3Jlc3FsX3Jvd2lkX2JhY2tlbmQgKnJiZQotKyAgICAgICAgICAgID0gc3RhdGlj X2Nhc3Q8cG9zdGdyZXNxbF9yb3dpZF9iYWNrZW5kICo+KHJpZC5nZXRfYmFja2VuZCgpKTsKLSsK LSsgICAgICAgIHVuc2lnbmVkIGxvbmcgb2lkID0gcmJlLT52YWx1ZV87Ci0rCi0rICAgICAgICBz cWwgPDwgInNlbGVjdCBpZCwgbmFtZSBmcm9tIHNvY2lfdGVzdCB3aGVyZSBvaWQgPSAiIDw8IG9p ZCwKLSsgICAgICAgICAgICBpbnRvKGlkKSwgaW50byhuYW1lKTsKLSsKLSsjZW5kaWYgLy8gU09D SV9QR1NRTF9OT1BBUkFNUwotKwotKyAgICAgICAgYXNzZXJ0KGlkID09IDcpOwotKyAgICAgICAg YXNzZXJ0KG5hbWUgPT0gIkpvaG4iKTsKLSsgICAgfQotKwotKyAgICBzdGQ6OmNvdXQgPDwgInRl c3QgMSBwYXNzZWQiIDw8IHN0ZDo6ZW5kbDsKLSt9Ci0rCi0rLy8gZnVuY3Rpb24gY2FsbCB0ZXN0 Ci0rY2xhc3MgZnVuY3Rpb25fY3JlYXRvciA6IGZ1bmN0aW9uX2NyZWF0b3JfYmFzZQotK3sKLStw dWJsaWM6Ci0rCi0rICAgIGZ1bmN0aW9uX2NyZWF0b3Ioc2Vzc2lvbiYgc2Vzc2lvbikKLSsgICAg OiBmdW5jdGlvbl9jcmVhdG9yX2Jhc2Uoc2Vzc2lvbikKLSsgICAgewotKyAgICAgICAgLy8gYmVm b3JlIGEgbGFuZ3VhZ2UgY2FuIGJlIHVzZWQgaXQgbXVzdCBiZSBkZWZpbmVkCi0rICAgICAgICAv LyBpZiBpdCBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWQgdGhlbiBhbiBlcnJvciB3aWxsIG9jY3Vy Ci0rICAgICAgICB0cnkgeyBzZXNzaW9uIDw8ICJjcmVhdGUgbGFuZ3VhZ2UgcGxwZ3NxbCI7IH0K LSsgICAgICAgIGNhdGNoIChzb2NpX2Vycm9yIGNvbnN0ICYpIHt9IC8vIGlnbm9yZSBpZiBlcnJv cgotKwotKyNpZm5kZWYgU09DSV9QR1NRTF9OT1BBUkFNUwotKwotKyAgICAgICAgc2Vzc2lvbiAg PDwKLSsgICAgICAgICAgICAiY3JlYXRlIG9yIHJlcGxhY2UgZnVuY3Rpb24gc29jaV90ZXN0KG1z ZyB2YXJjaGFyKSAiCi0rICAgICAgICAgICAgInJldHVybnMgdmFyY2hhciBhcyAkJCAiCi0rICAg ICAgICAgICAgImJlZ2luICIKLSsgICAgICAgICAgICAiICByZXR1cm4gbXNnOyAiCi0rICAgICAg ICAgICAgImVuZCAkJCBsYW5ndWFnZSBwbHBnc3FsIjsKLSsjZWxzZQotKwotKyAgICAgICBzZXNz aW9uIDw8Ci0rICAgICAgICAgICAgImNyZWF0ZSBvciByZXBsYWNlIGZ1bmN0aW9uIHNvY2lfdGVz dCh2YXJjaGFyKSAiCi0rICAgICAgICAgICAgInJldHVybnMgdmFyY2hhciBhcyBcJyAiCi0rICAg ICAgICAgICAgImJlZ2luICIKLSsgICAgICAgICAgICAiICByZXR1cm4gJDE7ICIKLSsgICAgICAg ICAgICAiZW5kIFwnIGxhbmd1YWdlIHBscGdzcWwiOwotKyNlbmRpZgotKyAgICB9Ci0rCi0rcHJv dGVjdGVkOgotKwotKyAgICBzdGQ6OnN0cmluZyBkcm9wX3N0YXRlbWVudCgpCi0rICAgIHsKLSsg ICAgICAgIHJldHVybiAiZHJvcCBmdW5jdGlvbiBzb2NpX3Rlc3QodmFyY2hhcikiOwotKyAgICB9 Ci0rfTsKLSsKLSt2b2lkIHRlc3QyKCkKLSt7Ci0rICAgIHsKLSsgICAgICAgIHNlc3Npb24gc3Fs KGJhY2tFbmQsIGNvbm5lY3RTdHJpbmcpOwotKwotKyAgICAgICAgZnVuY3Rpb25fY3JlYXRvciBm dW5jdGlvbkNyZWF0b3Ioc3FsKTsKLSsKLSsgICAgICAgIHN0ZDo6c3RyaW5nIGluKCJteSBtZXNz YWdlIik7Ci0rICAgICAgICBzdGQ6OnN0cmluZyBvdXQ7Ci0rCi0rI2lmbmRlZiBTT0NJX1BHU1FM X05PUEFSQU1TCi0rCi0rICAgICAgICBzdGF0ZW1lbnQgc3QgPSAoc3FsLnByZXBhcmUgPDwKLSsg ICAgICAgICAgICAic2VsZWN0IHNvY2lfdGVzdCg6aW5wdXQpIiwKLSsgICAgICAgICAgICBpbnRv KG91dCksCi0rICAgICAgICAgICAgdXNlKGluLCAiaW5wdXQiKSk7Ci0rCi0rI2Vsc2UKLSsgICAg ICAgIC8vIE9sZGVyIFBvc3RncmVTUUwgZG9lcyBub3Qgc3VwcG9ydCB1c2UgZWxlbWVudHMuCi0r Ci0rICAgICAgICBzdGF0ZW1lbnQgc3QgPSAoc3FsLnByZXBhcmUgPDwKLSsgICAgICAgICAgICAi c2VsZWN0IHNvY2lfdGVzdChcJyIgPDwgaW4gPDwgIlwnKSIsCi0rICAgICAgICAgICAgaW50byhv dXQpKTsKLSsKLSsjZW5kaWYgLy8gU09DSV9QR1NRTF9OT1BBUkFNUwotKwotKyAgICAgICAgc3Qu ZXhlY3V0ZSh0cnVlKTsKLSsgICAgICAgIGFzc2VydChvdXQgPT0gaW4pOwotKwotKyAgICAgICAg Ly8gZXhwbGljaXQgcHJvY2VkdXJlIHN5bnRheAotKyAgICAgICAgewotKyAgICAgICAgICAgIHN0 ZDo6c3RyaW5nIGluKCJteSBtZXNzYWdlMiIpOwotKyAgICAgICAgICAgIHN0ZDo6c3RyaW5nIG91 dDsKLSsKLSsjaWZuZGVmIFNPQ0lfUEdTUUxfTk9QQVJBTVMKLSsKLSsgICAgICAgICAgICBwcm9j ZWR1cmUgcHJvYyA9IChzcWwucHJlcGFyZSA8PAotKyAgICAgICAgICAgICAgICAic29jaV90ZXN0 KDppbnB1dCkiLAotKyAgICAgICAgICAgICAgICBpbnRvKG91dCksIHVzZShpbiwgImlucHV0Iikp OwotKwotKyNlbHNlCi0rICAgICAgICAvLyBPbGRlciBQb3N0Z3JlU1FMIGRvZXMgbm90IHN1cHBv cnQgdXNlIGVsZW1lbnRzLgotKwotKyAgICAgICAgICAgIHByb2NlZHVyZSBwcm9jID0gKHNxbC5w cmVwYXJlIDw8Ci0rICAgICAgICAgICAgICAgICJzb2NpX3Rlc3QoXCciIDw8IGluIDw8ICJcJyki LCBpbnRvKG91dCkpOwotKwotKyNlbmRpZiAvLyBTT0NJX1BHU1FMX05PUEFSQU1TCi0rCi0rICAg ICAgICAgICAgcHJvYy5leGVjdXRlKHRydWUpOwotKyAgICAgICAgICAgIGFzc2VydChvdXQgPT0g aW4pOwotKyAgICAgICAgfQotKyAgICB9Ci0rCi0rICAgIHN0ZDo6Y291dCA8PCAidGVzdCAyIHBh c3NlZCIgPDwgc3RkOjplbmRsOwotK30KLSsKLSsvLyBCTE9CIHRlc3QKLStzdHJ1Y3QgYmxvYl90 YWJsZV9jcmVhdG9yIDogcHVibGljIHRhYmxlX2NyZWF0b3JfYmFzZQotK3sKLSsgICAgYmxvYl90 YWJsZV9jcmVhdG9yKHNlc3Npb24mIHNlc3Npb24pCi0rICAgIDogdGFibGVfY3JlYXRvcl9iYXNl KHNlc3Npb24pCi0rICAgIHsKLSsgICAgICAgIHNlc3Npb24gPDwKLSsgICAgICAgICAgICAgImNy ZWF0ZSB0YWJsZSBzb2NpX3Rlc3QgKCIKLSsgICAgICAgICAgICAgIiAgICBpZCBpbnRlZ2VyLCIK LSsgICAgICAgICAgICAgIiAgICBpbWcgb2lkIgotKyAgICAgICAgICAgICAiKSI7Ci0rICAgIH0K LSt9OwotKwotK3ZvaWQgdGVzdDMoKQotK3sKLSsgICAgewotKyAgICAgICAgc2Vzc2lvbiBzcWwo YmFja0VuZCwgY29ubmVjdFN0cmluZyk7Ci0rCi0rICAgICAgICBibG9iX3RhYmxlX2NyZWF0b3Ig dGFibGVDcmVhdG9yKHNxbCk7Ci0rICAgICAgICAKLSsgICAgICAgIGNoYXIgYnVmW10gPSAiYWJj ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiOwotKwotKyAgICAgICAgc3FsIDw8ICJpbnNlcnQgaW50 byBzb2NpX3Rlc3QoaWQsIGltZykgdmFsdWVzKDcsIGxvX2NyZWF0KC0xKSkiOwotKwotKyAgICAg ICAgLy8gaW4gUG9zdGdyZVNRTCwgQkxPQiBvcGVyYXRpb25zIG11c3QgYmUgd2l0aGluIHRyYW5z YWN0aW9uIGJsb2NrCi0rICAgICAgICB0cmFuc2FjdGlvbiB0cihzcWwpOwotKwotKyAgICAgICAg ewotKyAgICAgICAgICAgIGJsb2IgYihzcWwpOwotKwotKyAgICAgICAgICAgIHNxbCA8PCAic2Vs ZWN0IGltZyBmcm9tIHNvY2lfdGVzdCB3aGVyZSBpZCA9IDciLCBpbnRvKGIpOwotKyAgICAgICAg ICAgIGFzc2VydChiLmdldF9sZW4oKSA9PSAwKTsKLSsKLSsgICAgICAgICAgICBiLndyaXRlKDAs IGJ1Ziwgc2l6ZW9mKGJ1ZikpOwotKyAgICAgICAgICAgIGFzc2VydChiLmdldF9sZW4oKSA9PSBz aXplb2YoYnVmKSk7Ci0rCi0rICAgICAgICAgICAgYi5hcHBlbmQoYnVmLCBzaXplb2YoYnVmKSk7 Ci0rICAgICAgICAgICAgYXNzZXJ0KGIuZ2V0X2xlbigpID09IDIgKiBzaXplb2YoYnVmKSk7Ci0r ICAgICAgICB9Ci0rICAgICAgICB7Ci0rICAgICAgICAgICAgYmxvYiBiKHNxbCk7Ci0rICAgICAg ICAgICAgc3FsIDw8ICJzZWxlY3QgaW1nIGZyb20gc29jaV90ZXN0IHdoZXJlIGlkID0gNyIsIGlu dG8oYik7Ci0rICAgICAgICAgICAgYXNzZXJ0KGIuZ2V0X2xlbigpID09IDIgKiBzaXplb2YoYnVm KSk7Ci0rICAgICAgICAgICAgY2hhciBidWYyWzEwMF07Ci0rICAgICAgICAgICAgYi5yZWFkKDAs IGJ1ZjIsIDEwKTsKLSsgICAgICAgICAgICBhc3NlcnQoc3RybmNtcChidWYyLCAiYWJjZGVmZ2hp aiIsIDEwKSA9PSAwKTsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIHVuc2lnbmVkIGxvbmcgb2lk OwotKyAgICAgICAgc3FsIDw8ICJzZWxlY3QgaW1nIGZyb20gc29jaV90ZXN0IHdoZXJlIGlkID0g NyIsIGludG8ob2lkKTsKLSsgICAgICAgIHNxbCA8PCAic2VsZWN0IGxvX3VubGluaygiIDw8IG9p ZCA8PCAiKSI7Ci0rICAgIH0KLSsKLSsgICAgc3RkOjpjb3V0IDw8ICJ0ZXN0IDMgcGFzc2VkIiA8 PCBzdGQ6OmVuZGw7Ci0rfQotKwotK3N0cnVjdCBsb25nbG9uZ190YWJsZV9jcmVhdG9yIDogdGFi bGVfY3JlYXRvcl9iYXNlCi0rewotKyAgICBsb25nbG9uZ190YWJsZV9jcmVhdG9yKHNlc3Npb24g JiBzcWwpCi0rICAgICAgICA6IHRhYmxlX2NyZWF0b3JfYmFzZShzcWwpCi0rICAgIHsKLSsgICAg ICAgIHNxbCA8PCAiY3JlYXRlIHRhYmxlIHNvY2lfdGVzdCh2YWwgaW50OCkiOwotKyAgICB9Ci0r fTsKLSsKLSsvLyBsb25nIGxvbmcgdGVzdAotK3ZvaWQgdGVzdDQoKQotK3sKLSsgICAgewotKyAg ICAgICAgc2Vzc2lvbiBzcWwoYmFja0VuZCwgY29ubmVjdFN0cmluZyk7Ci0rCi0rICAgICAgICBs b25nbG9uZ190YWJsZV9jcmVhdG9yIHRhYmxlQ3JlYXRvcihzcWwpOwotKwotKyAgICAgICAgbG9u ZyBsb25nIHYxID0gMTAwMDAwMDAwMDAwMExMOwotKyAgICAgICAgYXNzZXJ0KHYxIC8gMTAwMDAw MCA9PSAxMDAwMDAwKTsKLSsKLSsgICAgICAgIHNxbCA8PCAiaW5zZXJ0IGludG8gc29jaV90ZXN0 KHZhbCkgdmFsdWVzKDp2YWwpIiwgdXNlKHYxKTsKLSsKLSsgICAgICAgIGxvbmcgbG9uZyB2MiA9 IDBMTDsKLSsgICAgICAgIHNxbCA8PCAic2VsZWN0IHZhbCBmcm9tIHNvY2lfdGVzdCIsIGludG8o djIpOwotKwotKyAgICAgICAgYXNzZXJ0KHYyID09IHYxKTsKLSsgICAgfQotKwotKyAgICAvLyB2 ZWN0b3I8bG9uZyBsb25nPgotKyAgICB7Ci0rICAgICAgICBzZXNzaW9uIHNxbChiYWNrRW5kLCBj b25uZWN0U3RyaW5nKTsKLSsKLSsgICAgICAgIGxvbmdsb25nX3RhYmxlX2NyZWF0b3IgdGFibGVD cmVhdG9yKHNxbCk7Ci0rCi0rICAgICAgICBzdGQ6OnZlY3Rvcjxsb25nIGxvbmc+IHYxOwotKyAg ICAgICAgdjEucHVzaF9iYWNrKDEwMDAwMDAwMDAwMDBMTCk7Ci0rICAgICAgICB2MS5wdXNoX2Jh Y2soMTAwMDAwMDAwMDAwMUxMKTsKLSsgICAgICAgIHYxLnB1c2hfYmFjaygxMDAwMDAwMDAwMDAy TEwpOwotKyAgICAgICAgdjEucHVzaF9iYWNrKDEwMDAwMDAwMDAwMDNMTCk7Ci0rICAgICAgICB2 MS5wdXNoX2JhY2soMTAwMDAwMDAwMDAwNExMKTsKLSsKLSsgICAgICAgIHNxbCA8PCAiaW5zZXJ0 IGludG8gc29jaV90ZXN0KHZhbCkgdmFsdWVzKDp2YWwpIiwgdXNlKHYxKTsKLSsKLSsgICAgICAg IHN0ZDo6dmVjdG9yPGxvbmcgbG9uZz4gdjIoMTApOwotKyAgICAgICAgc3FsIDw8ICJzZWxlY3Qg dmFsIGZyb20gc29jaV90ZXN0IG9yZGVyIGJ5IHZhbCBkZXNjIiwgaW50byh2Mik7Ci0rCi0rICAg ICAgICBhc3NlcnQodjIuc2l6ZSgpID09IDUpOwotKyAgICAgICAgYXNzZXJ0KHYyWzBdID09IDEw MDAwMDAwMDAwMDRMTCk7Ci0rICAgICAgICBhc3NlcnQodjJbMV0gPT0gMTAwMDAwMDAwMDAwM0xM KTsKLSsgICAgICAgIGFzc2VydCh2MlsyXSA9PSAxMDAwMDAwMDAwMDAyTEwpOwotKyAgICAgICAg YXNzZXJ0KHYyWzNdID09IDEwMDAwMDAwMDAwMDFMTCk7Ci0rICAgICAgICBhc3NlcnQodjJbNF0g PT0gMTAwMDAwMDAwMDAwMExMKTsKLSsgICAgfQotKwotKyAgICBzdGQ6OmNvdXQgPDwgInRlc3Qg NCBwYXNzZWQiIDw8IHN0ZDo6ZW5kbDsKLSt9Ci0rCi0rc3RydWN0IGJvb2xlYW5fdGFibGVfY3Jl YXRvciA6IHRhYmxlX2NyZWF0b3JfYmFzZQotK3sKLSsgICAgYm9vbGVhbl90YWJsZV9jcmVhdG9y KHNlc3Npb24gJiBzcWwpCi0rICAgICAgICA6IHRhYmxlX2NyZWF0b3JfYmFzZShzcWwpCi0rICAg IHsKLSsgICAgICAgIHNxbCA8PCAiY3JlYXRlIHRhYmxlIHNvY2lfdGVzdCh2YWwgYm9vbGVhbiki OwotKyAgICB9Ci0rfTsKLSsKLSt2b2lkIHRlc3Q1KCkKLSt7Ci0rICAgIHsKLSsgICAgICAgIHNl c3Npb24gc3FsKGJhY2tFbmQsIGNvbm5lY3RTdHJpbmcpOwotKwotKyAgICAgICAgYm9vbGVhbl90 YWJsZV9jcmVhdG9yIHRhYmxlQ3JlYXRvcihzcWwpOwotKwotKyAgICAgICAgaW50IGkxID0gMDsK LSsKLSsgICAgICAgIHNxbCA8PCAiaW5zZXJ0IGludG8gc29jaV90ZXN0KHZhbCkgdmFsdWVzKDp2 YWwpIiwgdXNlKGkxKTsKLSsKLSsgICAgICAgIGludCBpMiA9IDc7Ci0rICAgICAgICBzcWwgPDwg InNlbGVjdCB2YWwgZnJvbSBzb2NpX3Rlc3QiLCBpbnRvKGkyKTsKLSsKLSsgICAgICAgIGFzc2Vy dChpMiA9PSBpMSk7Ci0rCi0rICAgICAgICBzcWwgPDwgInVwZGF0ZSBzb2NpX3Rlc3Qgc2V0IHZh bCA9IHRydWUiOwotKyAgICAgICAgc3FsIDw8ICJzZWxlY3QgdmFsIGZyb20gc29jaV90ZXN0Iiwg aW50byhpMik7Ci0rICAgICAgICBhc3NlcnQoaTIgPT0gMSk7Ci0rICAgIH0KLSsKLSsgICAgc3Rk Ojpjb3V0IDw8ICJ0ZXN0IDUgcGFzc2VkIiA8PCBzdGQ6OmVuZGw7Ci0rfQotKwotKy8vIGR5bmFt aWMgYmFja2VuZCB0ZXN0Ci0rdm9pZCB0ZXN0NigpCi0rewotKyAgICB0cnkKLSsgICAgewotKyAg ICAgICAgc2Vzc2lvbiBzcWwoIm5vc3VjaGJhY2tlbmQ6Ly8iICsgY29ubmVjdFN0cmluZyk7Ci0r ICAgICAgICBhc3NlcnQoZmFsc2UpOwotKyAgICB9Ci0rICAgIGNhdGNoIChzb2NpX2Vycm9yIGNv bnN0ICYgZSkKLSsgICAgewotKyAgICAgICAgYXNzZXJ0KGUud2hhdCgpID09IHN0ZDo6c3RyaW5n KCJGYWlsZWQgdG8gb3BlbjogbGlic29jaV9ub3N1Y2hiYWNrZW5kLnNvIikpOwotKyAgICB9Ci0r Ci0rICAgIHsKLSsgICAgICAgIGR5bmFtaWNfYmFja2VuZHM6OnJlZ2lzdGVyX2JhY2tlbmQoInBn c3FsIiwgYmFja0VuZCk7Ci0rCi0rICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gYmFj a2VuZHMgPSBkeW5hbWljX2JhY2tlbmRzOjpsaXN0X2FsbCgpOwotKyAgICAgICAgYXNzZXJ0KGJh Y2tlbmRzLnNpemUoKSA9PSAxKTsKLSsgICAgICAgIGFzc2VydChiYWNrZW5kc1swXSA9PSAicGdz cWwiKTsKLSsKLSsgICAgICAgIHsKLSsgICAgICAgICAgICBzZXNzaW9uIHNxbCgicGdzcWw6Ly8i ICsgY29ubmVjdFN0cmluZyk7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBkeW5hbWljX2JhY2tl bmRzOjp1bmxvYWQoInBnc3FsIik7Ci0rCi0rICAgICAgICBiYWNrZW5kcyA9IGR5bmFtaWNfYmFj a2VuZHM6Omxpc3RfYWxsKCk7Ci0rICAgICAgICBhc3NlcnQoYmFja2VuZHMuZW1wdHkoKSk7Ci0r ICAgIH0KLSsKLSsgICAgewotKyAgICAgICAgc2Vzc2lvbiBzcWwoInBvc3RncmVzcWw6Ly8iICsg Y29ubmVjdFN0cmluZyk7Ci0rICAgIH0KLSsKLSsgICAgc3RkOjpjb3V0IDw8ICJ0ZXN0IDYgcGFz c2VkIiA8PCBzdGQ6OmVuZGw7Ci0rfQotKwotK3ZvaWQgdGVzdDcoKQotK3sKLSsgICAgewotKyAg ICAgICAgc2Vzc2lvbiBzcWwoYmFja0VuZCwgY29ubmVjdFN0cmluZyk7Ci0rCi0rICAgICAgICBp bnQgaTsKLSsgICAgICAgIHNxbCA8PCAic2VsZWN0IDEyMyIsIGludG8oaSk7Ci0rICAgICAgICBh c3NlcnQoaSA9PSAxMjMpOwotKwotKyAgICAgICAgdHJ5Ci0rICAgICAgICB7Ci0rICAgICAgICAg ICAgc3FsIDw8ICJzZWxlY3QgJ0FCQyciLCBpbnRvIChpKTsKLSsgICAgICAgICAgICBhc3NlcnQo ZmFsc2UpOwotKyAgICAgICAgfQotKyAgICAgICAgY2F0Y2ggKHNvY2lfZXJyb3IgY29uc3QgJiBl KQotKyAgICAgICAgewotKyAgICAgICAgICAgIGFzc2VydChlLndoYXQoKSA9PSBzdGQ6OnN0cmlu ZygiQ2Fubm90IGNvbnZlcnQgZGF0YS4iKSk7Ci0rICAgICAgICB9Ci0rICAgIH0KLSsKLSsgICAg c3RkOjpjb3V0IDw8ICJ0ZXN0IDcgcGFzc2VkIiA8PCBzdGQ6OmVuZGw7Ci0rfQotKwotK3ZvaWQg dGVzdDgoKQotK3sKLSsgICAgewotKyAgICAgICAgc2Vzc2lvbiBzcWwoYmFja0VuZCwgY29ubmVj dFN0cmluZyk7Ci0rCi0rICAgICAgICBhc3NlcnQoc3FsLmdldF9iYWNrZW5kX25hbWUoKSA9PSAi cG9zdGdyZXNxbCIpOwotKyAgICB9Ci0rCi0rICAgIHN0ZDo6Y291dCA8PCAidGVzdCA4IHBhc3Nl ZCIgPDwgc3RkOjplbmRsOwotK30KLSsKLSsvLyBEREwgQ3JlYXRpb24gb2JqZWN0cyBmb3IgY29t bW9uIHRlc3RzCi0rc3RydWN0IHRhYmxlX2NyZWF0b3Jfb25lIDogcHVibGljIHRhYmxlX2NyZWF0 b3JfYmFzZQotK3sKLSsgICAgdGFibGVfY3JlYXRvcl9vbmUoc2Vzc2lvbiYgc2Vzc2lvbikKLSsg ICAgICAgIDogdGFibGVfY3JlYXRvcl9iYXNlKHNlc3Npb24pCi0rICAgIHsKLSsgICAgICAgIHNl c3Npb24gPDwgImNyZWF0ZSB0YWJsZSBzb2NpX3Rlc3QoaWQgaW50ZWdlciwgdmFsIGludGVnZXIs IGMgY2hhciwgIgotKyAgICAgICAgICAgICAgICAgInN0ciB2YXJjaGFyKDIwKSwgc2ggaW50Miwg dWwgbnVtZXJpYygyMCksIGQgZmxvYXQ4LCAiCi0rICAgICAgICAgICAgICAgICAidG0gdGltZXN0 YW1wLCBpMSBpbnRlZ2VyLCBpMiBpbnRlZ2VyLCBpMyBpbnRlZ2VyLCAiCi0rICAgICAgICAgICAg ICAgICAibmFtZSB2YXJjaGFyKDIwKSkiOwotKyAgICB9Ci0rfTsKLSsKLStzdHJ1Y3QgdGFibGVf Y3JlYXRvcl90d28gOiBwdWJsaWMgdGFibGVfY3JlYXRvcl9iYXNlCi0rewotKyAgICB0YWJsZV9j cmVhdG9yX3R3byhzZXNzaW9uJiBzZXNzaW9uKQotKyAgICAgICAgOiB0YWJsZV9jcmVhdG9yX2Jh c2Uoc2Vzc2lvbikKLSsgICAgewotKyAgICAgICAgc2Vzc2lvbiAgPDwgImNyZWF0ZSB0YWJsZSBz b2NpX3Rlc3QobnVtX2Zsb2F0IGZsb2F0OCwgbnVtX2ludCBpbnRlZ2VyLCIKLSsgICAgICAgICAg ICAgICAgICAgICAiIG5hbWUgdmFyY2hhcigyMCksIHNvbWV0aW1lIHRpbWVzdGFtcCwgY2hyIGNo YXIpIjsKLSsgICAgfQotK307Ci0rCi0rc3RydWN0IHRhYmxlX2NyZWF0b3JfdGhyZWUgOiBwdWJs aWMgdGFibGVfY3JlYXRvcl9iYXNlCi0rewotKyAgICB0YWJsZV9jcmVhdG9yX3RocmVlKHNlc3Np b24mIHNlc3Npb24pCi0rICAgICAgICA6IHRhYmxlX2NyZWF0b3JfYmFzZShzZXNzaW9uKQotKyAg ICB7Ci0rICAgICAgICBzZXNzaW9uIDw8ICJjcmVhdGUgdGFibGUgc29jaV90ZXN0KG5hbWUgdmFy Y2hhcigxMDApIG5vdCBudWxsLCAiCi0rICAgICAgICAgICAgInBob25lIHZhcmNoYXIoMTUpKSI7 Ci0rICAgIH0KLSt9OwotKwotKy8vCi0rLy8gU3VwcG9ydCBmb3Igc29jaSBDb21tb24gVGVzdHMK LSsvLwotKwotK2NsYXNzIHRlc3RfY29udGV4dCA6IHB1YmxpYyB0ZXN0X2NvbnRleHRfYmFzZQot K3sKLStwdWJsaWM6Ci0rICAgIHRlc3RfY29udGV4dChiYWNrZW5kX2ZhY3RvcnkgY29uc3QgJmJh Y2tFbmQsCi0rICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0ICZjb25uZWN0U3RyaW5n KQotKyAgICAgICAgOiB0ZXN0X2NvbnRleHRfYmFzZShiYWNrRW5kLCBjb25uZWN0U3RyaW5nKSB7 fQotKwotKyAgICB0YWJsZV9jcmVhdG9yX2Jhc2UqIHRhYmxlX2NyZWF0b3JfMShzZXNzaW9uJiBz KSBjb25zdAotKyAgICB7Ci0rICAgICAgICByZXR1cm4gbmV3IHRhYmxlX2NyZWF0b3Jfb25lKHMp OwotKyAgICB9Ci0rCi0rICAgIHRhYmxlX2NyZWF0b3JfYmFzZSogdGFibGVfY3JlYXRvcl8yKHNl c3Npb24mIHMpIGNvbnN0Ci0rICAgIHsKLSsgICAgICAgIHJldHVybiBuZXcgdGFibGVfY3JlYXRv cl90d28ocyk7Ci0rICAgIH0KLSsKLSsgICAgdGFibGVfY3JlYXRvcl9iYXNlKiB0YWJsZV9jcmVh dG9yXzMoc2Vzc2lvbiYgcykgY29uc3QKLSsgICAgewotKyAgICAgICAgcmV0dXJuIG5ldyB0YWJs ZV9jcmVhdG9yX3RocmVlKHMpOwotKyAgICB9Ci0rCi0rICAgIHN0ZDo6c3RyaW5nIHRvX2RhdGVf dGltZShzdGQ6OnN0cmluZyBjb25zdCAmZGF0ZHRfc3RyaW5nKSBjb25zdAotKyAgICB7Ci0rICAg ICAgICByZXR1cm4gInRpbWVzdGFtcHR6KFwnIiArIGRhdGR0X3N0cmluZyArICJcJykiOwotKyAg ICB9Ci0rCi0rfTsKLSsKLSsKLStpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCi0rewot KwotKyNpZmRlZiBfTVNDX1ZFUgotKyAgICAvLyBSZWRpcmVjdCBlcnJvcnMsIHVucmVjb3ZlcmFi bGUgcHJvYmxlbXMsIGFuZCBhc3NlcnQoKSBmYWlsdXJlcyB0byBTVERFUlIsCi0rICAgIC8vIGlu c3RlYWQgb2YgZGVidWcgbWVzc2FnZSB3aW5kb3cuCi0rICAgIC8vIFRoaXMgaGFjayBpcyByZXF1 aXJlZCB0byBydW4gYXNzZXIoKS1kcml2ZW4gdGVzdHMgYnkgQnVpbGRib3QuCi0rICAgIC8vIE5P VEU6IENvbW1lbnQgdGhpcyAyIGxpbmVzIGZvciBkZWJ1Z2dpbmcgd2l0aCBWaXN1YWwgQysrIGRl YnVnZ2VyIHRvIGNhdGNoIGFzc2VydGlvbnMgaW5zaWRlLgotKyAgICBfQ3J0U2V0UmVwb3J0TW9k ZShfQ1JUX0VSUk9SLCBfQ1JUREJHX01PREVfRklMRSk7Ci0rICAgIF9DcnRTZXRSZXBvcnRGaWxl KF9DUlRfRVJST1IsIF9DUlREQkdfRklMRV9TVERFUlIpOwotKyNlbmRpZiAvL19NU0NfVkVSCi0r Ci0rICAgIGlmIChhcmdjID09IDIpCi0rICAgIHsKLSsgICAgICAgIGNvbm5lY3RTdHJpbmcgPSBh cmd2WzFdOwotKyAgICB9Ci0rICAgIGVsc2UKLSsgICAgewotKyAgICAgICAgc3RkOjpjb3V0IDw8 ICJ1c2FnZTogIiA8PCBhcmd2WzBdCi0rICAgICAgICAgICAgPDwgIiBjb25uZWN0c3RyaW5nXG4i Ci0rICAgICAgICAgICAgPDwgImV4YW1wbGU6ICIgPDwgYXJndlswXQotKyAgICAgICAgICAgIDw8 ICIgXCdjb25uZWN0X3N0cmluZ19mb3JfUG9zdGdyZVNRTFwnXG4iOwotKyAgICAgICAgcmV0dXJu IEVYSVRfRkFJTFVSRTsKLSsgICAgfQotKwotKyAgICB0cnkKLSsgICAgewotKyAgICAgICAgdGVz dF9jb250ZXh0IHRjKGJhY2tFbmQsIGNvbm5lY3RTdHJpbmcpOwotKyAgICAgICAgY29tbW9uX3Rl c3RzIHRlc3RzKHRjKTsKLSsgICAgICAgIHRlc3RzLnJ1bigpOwotKwotKyAgICAgICAgc3RkOjpj b3V0IDw8ICJcblNPQ0kgUG9zdGdyZXMgVGVzdHM6XG5cbiI7Ci0rCi0rICAgICAgICB0ZXN0MSgp OwotKyAgICAgICAgdGVzdDIoKTsKLSsgICAgICAgIHRlc3QzKCk7Ci0rICAgICAgICB0ZXN0NCgp OwotKyAgICAgICAgdGVzdDUoKTsKLSsKLSsvLyAgICAgICAgIHRlc3Q2KCk7Ci0rICAgICAgICBz dGQ6OmNvdXQgPDwgInRlc3QgNiBza2lwcGVkIChkeW5hbWljIGJhY2tlbmQpXG4iOwotKwotKyAg ICAgICAgdGVzdDcoKTsKLSsgICAgICAgIHRlc3Q4KCk7Ci0rCi0rICAgICAgICBzdGQ6OmNvdXQg PDwgIlxuT0ssIGFsbCB0ZXN0cyBwYXNzZWQuXG5cbiI7Ci0rICAgICAgICByZXR1cm4gRVhJVF9T VUNDRVNTOwotKyAgICB9Ci0rICAgIGNhdGNoIChzdGQ6OmV4Y2VwdGlvbiBjb25zdCAmIGUpCi0r ICAgIHsKLSsgICAgICAgIHN0ZDo6Y291dCA8PCBlLndoYXQoKSA8PCAnXG4nOwotKyAgICAgICAg cmV0dXJuIEVYSVRfRkFJTFVSRTsKLSsgICAgfQotK30KLWRpZmYgLU51ciBzb2NpLTMuMC4wL3Ny Yy9jb3JlL3NvY2ktc2ltcGxlLmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvY29yZS9zb2NpLXNp bXBsZS5jcHAKLS0tLSBzb2NpLTMuMC4wL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcAkyMDA4LTA3 LTAxIDA5OjQyOjI1LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9j b3JlL3NvY2ktc2ltcGxlLmNwcAkyMDEwLTAxLTIzIDEzOjE3OjI4LjAwMDAwMDAwMCArMDEwMAot QEAgLTksNiArOSw4IEBACi0gCi0gI2luY2x1ZGUgInNvY2ktc2ltcGxlLmgiCi0gI2luY2x1ZGUg InNvY2kuaCIKLSsvLwotKyNpbmNsdWRlIDxjc3RkaW8+Ci0gCi0gdXNpbmcgbmFtZXNwYWNlIHNv Y2k7Ci0gCgpkaWZmIC0tZ2l0IGEvc29jaS0zLjAuMC0xNi1maXgtZ251LWF1dG90b29scy1jb21w YXRpYmlsaXR5LnBhdGNoIGIvc29jaS0zLjAuMC0xNi1maXgtZ251LWF1dG90b29scy1jb21wYXRp YmlsaXR5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MmY5ZjNmLi4wMDAw MDAwCi0tLSBhL3NvY2ktMy4wLjAtMTYtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYyMzM5ICswLDAgQEAKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9hY2xvY2FsLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9hY2xvY2FsLm00Ci0tLS0g c29jaS0zLjAuMF80LXBhY2svYWNsb2NhbC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9hY2xvY2FsLm00CTIwMTAtMDEtMjMgMTQ6 NDQ6NDcuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDk2MSBAQAotKyMgZ2VuZXJhdGVkIGF1 dG9tYXRpY2FsbHkgYnkgYWNsb2NhbCAxLjExLjEgLSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29w eXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAz LCAyMDA0LAotKyMgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29w eSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25z LCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7 IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLSttNF9pZm5kZWYo W0FDX0FVVE9DT05GX1ZFUlNJT05dLAotKyAgW200X2NvcHkoW200X1BBQ0tBR0VfVkVSU0lPTl0s IFtBQ19BVVRPQ09ORl9WRVJTSU9OXSldKWRubAotK200X2lmKG00X2RlZm4oW0FDX0FVVE9DT05G X1ZFUlNJT05dKSwgWzIuNjNdLCwKLStbbTRfd2FybmluZyhbdGhpcyBmaWxlIHdhcyBnZW5lcmF0 ZWQgZm9yIGF1dG9jb25mIDIuNjMuCi0rWW91IGhhdmUgYW5vdGhlciB2ZXJzaW9uIG9mIGF1dG9j b25mLiAgSXQgbWF5IHdvcmssIGJ1dCBpcyBub3QgZ3VhcmFudGVlZCB0by4KLStJZiB5b3UgaGF2 ZSBwcm9ibGVtcywgeW91IG1heSBuZWVkIHRvIHJlZ2VuZXJhdGUgdGhlIGJ1aWxkIHN5c3RlbSBl bnRpcmVseS4KLStUbyBkbyBzbywgdXNlIHRoZSBwcm9jZWR1cmUgZG9jdW1lbnRlZCBieSB0aGUg cGFja2FnZSwgdHlwaWNhbGx5IGBhdXRvcmVjb25mJy5dKV0pCi0rCi0rIyBDb3B5cmlnaHQgKEMp IDIwMDIsIDIwMDMsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMs IGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgQU1fQVVUT01BS0Vf VkVSU0lPTihWRVJTSU9OKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQXV0 b21ha2UgWC5ZIHRyYWNlcyB0aGlzIG1hY3JvIHRvIGVuc3VyZSBhY2xvY2FsLm00IGhhcyBiZWVu Ci0rIyBnZW5lcmF0ZWQgZnJvbSB0aGUgbTQgZmlsZXMgYWNjb21wYW55aW5nIEF1dG9tYWtlIFgu WS4KLSsjIChUaGlzIHByaXZhdGUgbWFjcm8gc2hvdWxkIG5vdCBiZSBjYWxsZWQgb3V0c2lkZSB0 aGlzIGZpbGUuKQotK0FDX0RFRlVOKFtBTV9BVVRPTUFLRV9WRVJTSU9OXSwKLStbYW1fX2FwaV92 ZXJzaW9uPScxLjExJwotK2RubCBTb21lIHVzZXJzIGZpbmQgQU1fQVVUT01BS0VfVkVSU0lPTiBh bmQgbWlzdGFrZSBpdCBmb3IgYSB3YXkgdG8KLStkbmwgcmVxdWlyZSBzb21lIG1pbmltdW0gdmVy c2lvbi4gIFBvaW50IHRoZW0gdG8gdGhlIHJpZ2h0IG1hY3JvLgotK200X2lmKFskMV0sIFsxLjEx LjFdLCBbXSwKLSsgICAgICBbQUNfRkFUQUwoW0RvIG5vdCBjYWxsICQwLCB1c2UgQU1fSU5JVF9B VVRPTUFLRShbJDFdKS5dKV0pZG5sCi0rXSkKLSsKLSsjIF9BTV9BVVRPQ09ORl9WRVJTSU9OKFZF UlNJT04pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgYWNsb2NhbCB0cmFj ZXMgdGhpcyBtYWNybyB0byBmaW5kIHRoZSBBdXRvY29uZiB2ZXJzaW9uLgotKyMgVGhpcyBpcyBh IHByaXZhdGUgbWFjcm8gdG9vLiAgVXNpbmcgbTRfZGVmaW5lIHNpbXBsaWZpZXMKLSsjIHRoZSBs b2dpYyBpbiBhY2xvY2FsLCB3aGljaCBjYW4gc2ltcGx5IGlnbm9yZSB0aGlzIGRlZmluaXRpb24u Ci0rbTRfZGVmaW5lKFtfQU1fQVVUT0NPTkZfVkVSU0lPTl0sIFtdKQotKwotKyMgQU1fU0VUX0NV UlJFTlRfQVVUT01BS0VfVkVSU0lPTgotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotKyMgQ2FsbCBBTV9BVVRPTUFLRV9WRVJTSU9OIGFuZCBBTV9BVVRPTUFLRV9WRVJTSU9OIHNv IHRoZXkgY2FuIGJlIHRyYWNlZC4KLSsjIFRoaXMgZnVuY3Rpb24gaXMgQUNfUkVRVUlSRWQgYnkg QU1fSU5JVF9BVVRPTUFLRS4KLStBQ19ERUZVTihbQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVS U0lPTl0sCi0rW0FNX0FVVE9NQUtFX1ZFUlNJT04oWzEuMTEuMV0pZG5sCi0rbTRfaWZuZGVmKFtB Q19BVVRPQ09ORl9WRVJTSU9OXSwKLSsgIFttNF9jb3B5KFttNF9QQUNLQUdFX1ZFUlNJT05dLCBb QUNfQVVUT0NPTkZfVkVSU0lPTl0pXSlkbmwKLStfQU1fQVVUT0NPTkZfVkVSU0lPTihtNF9kZWZu KFtBQ19BVVRPQ09ORl9WRVJTSU9OXSkpXSkKLSsKLSsjIEFNX0FVWF9ESVJfRVhQQU5EICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0r IyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFu ZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFz IGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgRm9yIHByb2plY3RzIHVz aW5nIEFDX0NPTkZJR19BVVhfRElSKFtmb29dKSwgQXV0b2NvbmYgc2V0cwotKyMgJGFjX2F1eF9k aXIgdG8gYCRzcmNkaXIvZm9vJy4gIEluIG90aGVyIHByb2plY3RzLCBpdCBpcyBzZXQgdG8KLSsj IGAkc3JjZGlyJywgYCRzcmNkaXIvLi4nLCBvciBgJHNyY2Rpci8uLi8uLicuCi0rIwotKyMgT2Yg Y291cnNlLCBBdXRvbWFrZSBtdXN0IGhvbm9yIHRoaXMgdmFyaWFibGUgd2hlbmV2ZXIgaXQgY2Fs bHMgYQotKyMgdG9vbCBmcm9tIHRoZSBhdXhpbGlhcnkgZGlyZWN0b3J5LiAgVGhlIHByb2JsZW0g aXMgdGhhdCAkc3JjZGlyIChhbmQKLSsjIHRoZXJlZm9yZSAkYWNfYXV4X2RpciBhcyB3ZWxsKSBj YW4gYmUgZWl0aGVyIGFic29sdXRlIG9yIHJlbGF0aXZlLAotKyMgZGVwZW5kaW5nIG9uIGhvdyBj b25maWd1cmUgaXMgcnVuLiAgVGhpcyBpcyBwcmV0dHkgYW5ub3lpbmcsIHNpbmNlCi0rIyBpdCBt YWtlcyAkYWNfYXV4X2RpciBxdWl0ZSB1bnVzYWJsZSBpbiBzdWJkaXJlY3RvcmllczogaW4gdGhl IHRvcAotKyMgc291cmNlIGRpcmVjdG9yeSwgYW55IGZvcm0gd2lsbCB3b3JrIGZpbmUsIGJ1dCBp biBzdWJkaXJlY3RvcmllcyBhCi0rIyByZWxhdGl2ZSBwYXRoIG5lZWRzIHRvIGJlIGFkanVzdGVk IGZpcnN0LgotKyMKLSsjICRhY19hdXhfZGlyL21pc3NpbmcKLSsjICAgIGZhaWxzIHdoZW4gY2Fs bGVkIGZyb20gYSBzdWJkaXJlY3RvcnkgaWYgJGFjX2F1eF9kaXIgaXMgcmVsYXRpdmUKLSsjICR0 b3Bfc3JjZGlyLyRhY19hdXhfZGlyL21pc3NpbmcKLSsjICAgIGZhaWxzIGlmICRhY19hdXhfZGly IGlzIGFic29sdXRlLAotKyMgICAgZmFpbHMgd2hlbiBjYWxsZWQgZnJvbSBhIHN1YmRpcmVjdG9y eSBpbiBhIFZQQVRIIGJ1aWxkIHdpdGgKLSsjICAgICAgICAgIGEgcmVsYXRpdmUgJGFjX2F1eF9k aXIKLSsjCi0rIyBUaGUgcmVhc29uIG9mIHRoZSBsYXR0ZXIgZmFpbHVyZSBpcyB0aGF0ICR0b3Bf c3JjZGlyIGFuZCAkYWNfYXV4X2RpcgotKyMgYXJlIGJvdGggcHJlZml4ZWQgYnkgJHNyY2Rpci4g IEluIGFuIGluLXNvdXJjZSBidWlsZCB0aGlzIGlzIHVzdWFsbHkKLSsjIGhhcm1sZXNzIGJlY2F1 c2UgJHNyY2RpciBpcyBgLicsIGJ1dCB0aGluZ3Mgd2lsbCBicm9rZSB3aGVuIHlvdQotKyMgc3Rh cnQgYSBWUEFUSCBidWlsZCBvciB1c2UgYW4gYWJzb2x1dGUgJHNyY2Rpci4KLSsjCi0rIyBTbyB3 ZSBjb3VsZCB1c2Ugc29tZXRoaW5nIHNpbWlsYXIgdG8gJHRvcF9zcmNkaXIvJGFjX2F1eF9kaXIv bWlzc2luZywKLSsjIGlmZiB3ZSBzdHJpcCB0aGUgbGVhZGluZyAkc3JjZGlyIGZyb20gJGFjX2F1 eF9kaXIuICBUaGF0IHdvdWxkIGJlOgotKyMgICBhbV9hdXhfZGlyPSdcJCh0b3Bfc3JjZGlyKS8n YGV4cHIgIiRhY19hdXhfZGlyIiA6ICIkc3JjZGlyLy8qXCguKlwpImAKLSsjIGFuZCB0aGVuIHdl IHdvdWxkIGRlZmluZSAkTUlTU0lORyBhcwotKyMgICBNSVNTSU5HPSJcJHtTSEVMTH0gJGFtX2F1 eF9kaXIvbWlzc2luZyIKLSsjIFRoaXMgd2lsbCB3b3JrIGFzIGxvbmcgYXMgTUlTU0lORyBpcyBu b3QgY2FsbGVkIGZyb20gY29uZmlndXJlLCBiZWNhdXNlCi0rIyB1bmZvcnR1bmF0ZWx5ICQodG9w X3NyY2RpcikgaGFzIG5vIG1lYW5pbmcgaW4gY29uZmlndXJlLgotKyMgSG93ZXZlciB0aGVyZSBh cmUgb3RoZXIgdmFyaWFibGVzLCBsaWtlIENDLCB3aGljaCBhcmUgb2Z0ZW4gdXNlZCBpbgotKyMg Y29uZmlndXJlLCBhbmQgY291bGQgdGhlcmVmb3JlIG5vdCB1c2UgdGhpcyAiZml4ZWQiICRhY19h dXhfZGlyLgotKyMKLSsjIEFub3RoZXIgc29sdXRpb24sIHVzZWQgaGVyZSwgaXMgdG8gYWx3YXlz IGV4cGFuZCAkYWNfYXV4X2RpciB0byBhbgotKyMgYWJzb2x1dGUgUEFUSC4gIFRoZSBkcmF3YmFj ayBpcyB0aGF0IHVzaW5nIGFic29sdXRlIHBhdGhzIHByZXZlbnQgYQotKyMgY29uZmlndXJlZCB0 cmVlIHRvIGJlIG1vdmVkIHdpdGhvdXQgcmVjb25maWd1cmF0aW9uLgotKwotK0FDX0RFRlVOKFtB TV9BVVhfRElSX0VYUEFORF0sCi0rW2RubCBSZWx5IG9uIGF1dG9jb25mIHRvIHNldCB1cCBDRFBB VEggcHJvcGVybHkuCi0rQUNfUFJFUkVRKFsyLjUwXSlkbmwKLSsjIGV4cGFuZCAkYWNfYXV4X2Rp ciB0byBhbiBhYnNvbHV0ZSBwYXRoCi0rYW1fYXV4X2Rpcj1gY2QgJGFjX2F1eF9kaXIgJiYgcHdk YAotK10pCi0rCi0rIyBBTV9DT05ESVRJT05BTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk3 LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4Ci0rIyBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Np b24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2Rp ZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNl cmlhbCA5Ci0rCi0rIyBBTV9DT05ESVRJT05BTChOQU1FLCBTSEVMTC1DT05ESVRJT04pCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBEZWZpbmUgYSBjb25kaXRp b25hbC4KLStBQ19ERUZVTihbQU1fQ09ORElUSU9OQUxdLAotK1tBQ19QUkVSRVEoMi41MilkbmwK LSsgaWZlbHNlKFskMV0sIFtUUlVFXSwgIFtBQ19GQVRBTChbJDA6IGludmFsaWQgY29uZGl0aW9u OiAkMV0pXSwKLSsJWyQxXSwgW0ZBTFNFXSwgW0FDX0ZBVEFMKFskMDogaW52YWxpZCBjb25kaXRp b246ICQxXSldKWRubAotK0FDX1NVQlNUKFskMV9UUlVFXSlkbmwKLStBQ19TVUJTVChbJDFfRkFM U0VdKWRubAotK19BTV9TVUJTVF9OT1RNQUtFKFskMV9UUlVFXSlkbmwKLStfQU1fU1VCU1RfTk9U TUFLRShbJDFfRkFMU0VdKWRubAotK200X2RlZmluZShbX0FNX0NPTkRfVkFMVUVfJDFdLCBbJDJd KWRubAotK2lmICQyOyB0aGVuCi0rICAkMV9UUlVFPQotKyAgJDFfRkFMU0U9JyMnCi0rZWxzZQot KyAgJDFfVFJVRT0nIycKLSsgICQxX0ZBTFNFPQotK2ZpCi0rQUNfQ09ORklHX0NPTU1BTkRTX1BS RSgKLStbaWYgdGVzdCAteiAiJHskMV9UUlVFfSIgJiYgdGVzdCAteiAiJHskMV9GQUxTRX0iOyB0 aGVuCi0rICBBQ19NU0dfRVJST1IoW1tjb25kaXRpb25hbCAiJDEiIHdhcyBuZXZlciBkZWZpbmVk LgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRp b25hbGx5Ll1dKQotK2ZpXSldKQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAx LCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA5Ci0rIyBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8g Y29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRp b25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCAx MAotKwotKyMgVGhlcmUgYXJlIGEgZmV3IGRpcnR5IGhhY2tzIGJlbG93IHRvIGF2b2lkIGxldHRp bmcgYEFDX1BST0dfQ0MnIGJlCi0rIyB3cml0dGVuIGluIGNsZWFyLCBpbiB3aGljaCBjYXNlIGF1 dG9tYWtlLCB3aGVuIHJlYWRpbmcgYWNsb2NhbC5tNCwKLSsjIHdpbGwgdGhpbmsgaXQgc2VlcyBh ICp1c2UqLCBhbmQgdGhlcmVmb3JlIHdpbGwgdHJpZ2dlciBhbGwgaXQncwotKyMgQyBzdXBwb3J0 IG1hY2hpbmVyeS4gIEFsc28gbm90ZSB0aGF0IGl0IG1lYW5zIHRoYXQgYXV0b3NjYW4sIHNlZWlu ZwotKyMgQ0MgZXRjLiBpbiB0aGUgTWFrZWZpbGUsIHdpbGwgYXNrIGZvciBhbiBBQ19QUk9HX0ND IHVzZS4uLgotKwotKwotKyMgX0FNX0RFUEVOREVOQ0lFUyhOQU1FKQotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotKyMgU2VlIGhvdyB0aGUgY29tcGlsZXIgaW1wbGVtZW50cyBkZXBlbmRlbmN5 IGNoZWNraW5nLgotKyMgTkFNRSBpcyAiQ0MiLCAiQ1hYIiwgIkdDSiIsIG9yICJPQkpDIi4KLSsj IFdlIHRyeSBhIGZldyB0ZWNobmlxdWVzIGFuZCB1c2UgdGhhdCB0byBzZXQgYSBzaW5nbGUgY2Fj aGUgdmFyaWFibGUuCi0rIwotKyMgV2UgZG9uJ3QgQUNfUkVRVUlSRSB0aGUgY29ycmVzcG9uZGlu ZyBBQ19QUk9HX0NDIHNpbmNlIHRoZSBsYXR0ZXIgd2FzCi0rIyBtb2RpZmllZCB0byBpbnZva2Ug X0FNX0RFUEVOREVOQ0lFUyhDQyk7IHdlIHdvdWxkIGhhdmUgYSBjaXJjdWxhcgotKyMgZGVwZW5k ZW5jeSwgYW5kIGdpdmVuIHRoYXQgdGhlIHVzZXIgaXMgbm90IGV4cGVjdGVkIHRvIHJ1biB0aGlz IG1hY3JvLAotKyMganVzdCByZWx5IG9uIEFDX1BST0dfQ0MuCi0rQUNfREVGVU4oW19BTV9ERVBF TkRFTkNJRVNdLAotK1tBQ19SRVFVSVJFKFtBTV9TRVRfREVQRElSXSlkbmwKLStBQ19SRVFVSVJF KFtBTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EU10pZG5sCi0rQUNfUkVRVUlSRShbQU1fTUFL RV9JTkNMVURFXSlkbmwKLStBQ19SRVFVSVJFKFtBTV9ERVBfVFJBQ0tdKWRubAotKwotK2lmZWxz ZShbJDFdLCBDQywgICBbZGVwY2M9IiRDQyIgICBhbV9jb21waWxlcl9saXN0PV0sCi0rICAgICAg IFskMV0sIENYWCwgIFtkZXBjYz0iJENYWCIgIGFtX2NvbXBpbGVyX2xpc3Q9XSwKLSsgICAgICAg WyQxXSwgT0JKQywgW2RlcGNjPSIkT0JKQyIgYW1fY29tcGlsZXJfbGlzdD0nZ2NjMyBnY2MnXSwK LSsgICAgICAgWyQxXSwgVVBDLCAgW2RlcGNjPSIkVVBDIiAgYW1fY29tcGlsZXJfbGlzdD1dLAot KyAgICAgICBbJDFdLCBHQ0osICBbZGVwY2M9IiRHQ0oiICBhbV9jb21waWxlcl9saXN0PSdnY2Mz IGdjYyddLAotKyAgICAgICAgICAgICAgICAgICBbZGVwY2M9IiQkMSIgICBhbV9jb21waWxlcl9s aXN0PV0pCi0rCi0rQUNfQ0FDSEVfQ0hFQ0soW2RlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjXSwK LSsgICAgICAgICAgICAgICBbYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGVdLAot K1tpZiB0ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVu Ci0rICAjIFdlIG1ha2UgYSBzdWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lz ZSB3ZSBjYW4gZW5kIHVwCi0rICAjIG1ha2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtu b3cgYWJvdXQgYW5kIG5ldmVyIHJlbW92ZS4gIEZvcgotKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVw b3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKLSsgICMgbWFraW5n IGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBv dXRwdXQKLSsgICMgaW4gRCcuCi0rICBta2RpciBjb25mdGVzdC5kaXIKLSsgICMgQ29weSBkZXBj b21wIHRvIHN1YmRpciBiZWNhdXNlIG90aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3Jl Ci0rICAjIHVzaW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5LgotKyAgY3AgIiRhbV9kZXBjb21wIiBj b25mdGVzdC5kaXIKLSsgIGNkIGNvbmZ0ZXN0LmRpcgotKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVj dHMgYW5kIGRlcGVuZGVuY2llcyBpbiBhIHN1YmRpcmVjdG9yeSBiZWNhdXNlCi0rICAjIGl0IGhl bHBzIHRvIGRldGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5j ZQotKyAgIyBib3RoIFRydTY0J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVw ZW5kZW5jaWVzIGFzIGEKLSsgICMgc2lkZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mg d2lsbCBwdXQgdGhlIGRlcGVuZGVuY2llcyBpbgotKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkg d2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0Ci0rICAjIGRpcmVjdG9yeS4K LSsgIG1rZGlyIHN1YgotKwotKyAgYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9 bm9uZQotKyAgaWYgdGVzdCAiJGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7IHRoZW4KLSsgICAgIGFt X2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiBbJ3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnXSA8 IC4vZGVwY29tcGAKLSsgIGZpCi0rICBhbV9fdW5pdmVyc2FsPWZhbHNlCi0rICBtNF9jYXNlKFsk MV0sIFtDQ10sCi0rICAgIFtjYXNlICIgJGRlcGNjICIgaW4gIygKLSsgICAgICpcIC1hcmNoXCAq XCAtYXJjaFwgKikgYW1fX3VuaXZlcnNhbD10cnVlIDs7Ci0rICAgICBlc2FjXSwKLSsgICAgW0NY WF0sCi0rICAgIFtjYXNlICIgJGRlcGNjICIgaW4gIygKLSsgICAgICpcIC1hcmNoXCAqXCAtYXJj aFwgKikgYW1fX3VuaXZlcnNhbD10cnVlIDs7Ci0rICAgICBlc2FjXSkKLSsKLSsgIGZvciBkZXBt b2RlIGluICRhbV9jb21waWxlcl9saXN0OyBkbwotKyAgICAjIFNldHVwIGEgc291cmNlIHdpdGgg bWFueSBkZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBjb21waWxlcnMKLSsgICAgIyBsaWtlIHRv IHdyYXAgbGFyZ2UgZGVwZW5kZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAgKHdpdGggXCksIGFuZAot KyAgICAjIHdlIHNob3VsZCBub3QgY2hvb3NlIGEgZGVwY29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1 c2VkIGJ5IHRoaXMuCi0rICAgICMKLSsgICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZp bGVzIGZvciBlYWNoIHRlc3QsIGFzIHRoZSBjb21waWxlciBtYXkKLSsgICAgIyBvdmVyd3JpdGUg c29tZSBvZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRoIG9ic2N1cmUgY29tbWFuZCBsaW5lcy4KLSsg ICAgIyBUaGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29tcGlsZXIuCi0rICAg IDogPiBzdWIvY29uZnRlc3QuYwotKyAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNjsgZG8KLSsgICAg ICBlY2hvICcjaW5jbHVkZSAiY29uZnRzdCckaScuaCInID4+IHN1Yi9jb25mdGVzdC5jCi0rICAg ICAgIyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcgY3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0 MS5oIHdpdGgKLSsgICAgICAjIFNvbGFyaXMgOCdzIHsvdXNyLH0vYmluL3NoLgotKyAgICAgIHRv dWNoIHN1Yi9jb25mdHN0JGkuaAotKyAgICBkb25lCi0rICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9 ICR7YW1fX3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7YW1fX3F1b3RlfSIgPiBjb25mbWYKLSsKLSsg ICAgIyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAtbycgZm9yIHRoZSBzYWtlIG9mIHRoZSAiZGFz aG1zdGRvdXQiCi0rICAgICMgbW9kZS4gIEl0IHR1cm5zIG91dCB0aGF0IHRoZSBTdW5Qcm8gQysr IGNvbXBpbGVyIGRvZXMgbm90IHByb3Blcmx5Ci0rICAgICMgaGFuZGxlIGAtTSAtbycsIGFuZCB3 ZSBuZWVkIHRvIGRldGVjdCB0aGlzLiAgQWxzbywgc29tZSBJbnRlbAotKyAgICAjIHZlcnNpb25z IGhhZCB0cm91YmxlIHdpdGggb3V0cHV0IGluIHN1YmRpcnMKLSsgICAgYW1fX29iaj1zdWIvY29u ZnRlc3QuJHtPQkpFWFQtb30KLSsgICAgYW1fX21pbnVzX29iaj0iLW8gJGFtX19vYmoiCi0rICAg IGNhc2UgJGRlcG1vZGUgaW4KLSsgICAgZ2NjKQotKyAgICAgICMgVGhpcyBkZXBtb2RlIGNhdXNl cyBhIGNvbXBpbGVyIHJhY2UgaW4gdW5pdmVyc2FsIG1vZGUuCi0rICAgICAgdGVzdCAiJGFtX191 bml2ZXJzYWwiID0gZmFsc2UgfHwgY29udGludWUKLSsgICAgICA7OwotKyAgICBub3NpZGVlZmZl Y3QpCi0rICAgICAgIyBhZnRlciB0aGlzIHRhZywgbWVjaGFuaXNtcyBhcmUgbm90IGJ5IHNpZGUt ZWZmZWN0LCBzbyB0aGV5J2xsCi0rICAgICAgIyBvbmx5IGJlIHVzZWQgd2hlbiBleHBsaWNpdGx5 IHJlcXVlc3RlZAotKyAgICAgIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmci ID0geHllczsgdGhlbgotKwljb250aW51ZQotKyAgICAgIGVsc2UKLSsJYnJlYWsKLSsgICAgICBm aQotKyAgICAgIDs7Ci0rICAgIG1zdmlzdWFsY3BwIHwgbXN2Y21zeXMpCi0rICAgICAgIyBUaGlz IGNvbXBpbGVyIHdvbid0IGdyb2sgYC1jIC1vJywgYnV0IGFsc28sIHRoZSBtaW51c28gdGVzdCBo YXMKLSsgICAgICAjIG5vdCBydW4geWV0LiAgVGhlc2UgZGVwbW9kZXMgYXJlIGxhdGUgZW5vdWdo IGluIHRoZSBnYW1lLCBhbmQKLSsgICAgICAjIHNvIHdlYWsgdGhhdCB0aGVpciBmdW5jdGlvbmlu ZyBzaG91bGQgbm90IGJlIGltcGFjdGVkLgotKyAgICAgIGFtX19vYmo9Y29uZnRlc3QuJHtPQkpF WFQtb30KLSsgICAgICBhbV9fbWludXNfb2JqPQotKyAgICAgIDs7Ci0rICAgIG5vbmUpIGJyZWFr IDs7Ci0rICAgIGVzYWMKLSsgICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCi0rICAgICAgIHNvdXJj ZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9JGFtX19vYmogXAotKyAgICAgICBkZXBmaWxlPXN1Yi9j b25mdGVzdC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25mdGVzdC5UUG8gXAotKyAgICAgICAkU0hFTEwg Li9kZXBjb21wICRkZXBjYyAtYyAkYW1fX21pbnVzX29iaiBzdWIvY29uZnRlc3QuYyBcCi0rICAg ICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgotKyAgICAgICBncmVwIHN1Yi9jb25m dHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCi0rICAgICAgIGdyZXAg c3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAg ICAgZ3JlcCAkYW1fX29iaiBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAg ICAgICAke01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSsg ICAgICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0 IGlzc3VlIHdhcm5pbmdzCi0rICAgICAgIyBvciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvciku ICBTbyB3ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKLSsgICAgICAjIHRoYXQgc2F5cyBh biBvcHRpb24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KLSsgICAgICAjIFdoZW4gZ2l2 ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgotKyAgICAgICMgICBpY2M6 IENvbW1hbmQgbGluZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQg cmVxdWlyZWQKLSsgICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgotKyAg ICAgICMgICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9y dGVkCi0rICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8Ci0r ICAgICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAy PiYxOyB0aGVuIDo7IGVsc2UKLSsgICAgICAgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxl cl90eXBlPSRkZXBtb2RlCi0rICAgICAgICBicmVhawotKyAgICAgIGZpCi0rICAgIGZpCi0rICBk b25lCi0rCi0rICBjZCAuLgotKyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgotK2Vsc2UKLSsgIGFtX2N2 XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKLStmaQotK10pCi0rQUNfU1VCU1Qo WyQxREVQTU9ERV0sIFtkZXBtb2RlPSRhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlw ZV0pCi0rQU1fQ09ORElUSU9OQUwoW2FtX19mYXN0ZGVwJDFdLCBbCi0rICB0ZXN0ICJ4JGVuYWJs ZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAotKyAgJiYgdGVzdCAiJGFtX2N2XyQxX2Rl cGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzNdKQotK10pCi0rCi0rCi0rIyBBTV9TRVRf REVQRElSCi0rIyAtLS0tLS0tLS0tLS0tCi0rIyBDaG9vc2UgYSBkaXJlY3RvcnkgbmFtZSBmb3Ig ZGVwZW5kZW5jeSBmaWxlcy4KLSsjIFRoaXMgbWFjcm8gaXMgQUNfUkVRVUlSRWQgaW4gX0FNX0RF UEVOREVOQ0lFUwotK0FDX0RFRlVOKFtBTV9TRVRfREVQRElSXSwKLStbQUNfUkVRVUlSRShbQU1f U0VUX0xFQURJTkdfRE9UXSlkbmwKLStBQ19TVUJTVChbREVQRElSXSwgWyIke2FtX19sZWFkaW5n X2RvdH1kZXBzIl0pZG5sCi0rXSkKLSsKLSsKLSsjIEFNX0RFUF9UUkFDSwotKyMgLS0tLS0tLS0t LS0tCi0rQUNfREVGVU4oW0FNX0RFUF9UUkFDS10sCi0rW0FDX0FSR19FTkFCTEUoZGVwZW5kZW5j eS10cmFja2luZywKLStbICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVw IG9uZS10aW1lIGJ1aWxkCi0rICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8gbm90 IHJlamVjdCBzbG93IGRlcGVuZGVuY3kgZXh0cmFjdG9yc10pCi0raWYgdGVzdCAieCRlbmFibGVf ZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vOyB0aGVuCi0rICBhbV9kZXBjb21wPSIkYWNfYXV4 X2Rpci9kZXBjb21wIgotKyAgQU1ERVBCQUNLU0xBU0g9J1wnCi0rZmkKLStBTV9DT05ESVRJT05B TChbQU1ERVBdLCBbdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vXSkK LStBQ19TVUJTVChbQU1ERVBCQUNLU0xBU0hdKWRubAotK19BTV9TVUJTVF9OT1RNQUtFKFtBTURF UEJBQ0tTTEFTSF0pZG5sCi0rXSkKLSsKLSsjIEdlbmVyYXRlIGNvZGUgdG8gc2V0IHVwIGRlcGVu ZGVuY3kgdHJhY2tpbmcuICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5 cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDgK LSsjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxp bWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBv ciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2Vy dmVkLgotKwotKyNzZXJpYWwgNQotKwotKyMgX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRT Ci0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19ERUZVTihbX0FNX09VVFBV VF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKLStbewotKyAgIyBBdXRvY29uZiAyLjYyIHF1b3RlcyAt LWZpbGUgYXJndW1lbnRzIGZvciBldmFsLCBidXQgbm90IHdoZW4gZmlsZXMKLSsgICMgYXJlIGxp c3RlZCB3aXRob3V0IC0tZmlsZS4gIExldCdzIHBsYXkgc2FmZSBhbmQgb25seSBlbmFibGUgdGhl IGV2YWwKLSsgICMgaWYgd2UgZGV0ZWN0IHRoZSBxdW90aW5nLgotKyAgY2FzZSAkQ09ORklHX0ZJ TEVTIGluCi0rICAqXCcqKSBldmFsIHNldCB4ICIkQ09ORklHX0ZJTEVTIiA7OwotKyAgKikgICBz ZXQgeCAkQ09ORklHX0ZJTEVTIDs7Ci0rICBlc2FjCi0rICBzaGlmdAotKyAgZm9yIG1mCi0rICBk bwotKyAgICAjIFN0cmlwIE1GIHNvIHdlIGVuZCB1cCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBmaWxl LgotKyAgICBtZj1gZWNobyAiJG1mIiB8IHNlZCAtZSAncy86LiokLy8nYAotKyAgICAjIENoZWNr IHdoZXRoZXIgdGhpcyBpcyBhbiBBdXRvbWFrZSBnZW5lcmF0ZWQgTWFrZWZpbGUgb3Igbm90Lgot KyAgICAjIFdlIHVzZWQgdG8gbWF0Y2ggb25seSB0aGUgZmlsZXMgbmFtZWQgYE1ha2VmaWxlLmlu JywgYnV0Ci0rICAgICMgc29tZSBwZW9wbGUgcmVuYW1lIHRoZW07IHNvIGluc3RlYWQgd2UgbG9v ayBhdCB0aGUgZmlsZSBjb250ZW50LgotKyAgICAjIEdyZXAnaW5nIHRoZSBmaXJzdCBsaW5lIGlz IG5vdCBlbm91Z2g6IHNvbWUgcGVvcGxlIHBvc3QtcHJvY2VzcwotKyAgICAjIGVhY2ggTWFrZWZp bGUuaW4gYW5kIGFkZCBhIG5ldyBsaW5lIG9uIHRvcCBvZiBlYWNoIGZpbGUgdG8gc2F5IHNvLgot KyAgICAjIEdyZXAnaW5nIHRoZSB3aG9sZSBmaWxlIGlzIG5vdCBnb29kIGVpdGhlcjogQUlYIGdy ZXAgaGFzIGEgbGluZQotKyAgICAjIGxpbWl0IG9mIDIwNDgsIGJ1dCBhbGwgc2VkJ3Mgd2Uga25v dyBoYXZlIHVuZGVyc3RhbmQgYXQgbGVhc3QgNDAwMC4KLSsgICAgaWYgc2VkIC1uICdzLF4jLipn ZW5lcmF0ZWQgYnkgYXV0b21ha2UuKixYLHAnICIkbWYiIHwgZ3JlcCBYID4vZGV2L251bGwgMj4m MTsgdGhlbgotKyAgICAgIGRpcnBhcnQ9YEFTX0RJUk5BTUUoIiRtZiIpYAotKyAgICBlbHNlCi0r ICAgICAgY29udGludWUKLSsgICAgZmkKLSsgICAgIyBFeHRyYWN0IHRoZSBkZWZpbml0aW9uIG9m IERFUERJUiwgYW1fX2luY2x1ZGUsIGFuZCBhbV9fcXVvdGUKLSsgICAgIyBmcm9tIHRoZSBNYWtl ZmlsZSB3aXRob3V0IHJ1bm5pbmcgYG1ha2UnLgotKyAgICBERVBESVI9YHNlZCAtbiAncy9eREVQ RElSID0gLy9wJyA8ICIkbWYiYAotKyAgICB0ZXN0IC16ICIkREVQRElSIiAmJiBjb250aW51ZQot KyAgICBhbV9faW5jbHVkZT1gc2VkIC1uICdzL15hbV9faW5jbHVkZSA9IC8vcCcgPCAiJG1mImAK LSsgICAgdGVzdCAteiAiYW1fX2luY2x1ZGUiICYmIGNvbnRpbnVlCi0rICAgIGFtX19xdW90ZT1g c2VkIC1uICdzL15hbV9fcXVvdGUgPSAvL3AnIDwgIiRtZiJgCi0rICAgICMgV2hlbiB1c2luZyBh bnNpMmtuciwgVSBtYXkgYmUgZW1wdHkgb3IgYW4gdW5kZXJzY29yZTsgZXhwYW5kIGl0Ci0rICAg IFU9YHNlZCAtbiAncy9eVSA9IC8vcCcgPCAiJG1mImAKLSsgICAgIyBGaW5kIGFsbCBkZXBlbmRl bmN5IG91dHB1dCBmaWxlcywgdGhleSBhcmUgaW5jbHVkZWQgZmlsZXMgd2l0aAotKyAgICAjICQo REVQRElSKSBpbiB0aGVpciBuYW1lcy4gIFdlIGludm9rZSBzZWQgdHdpY2UgYmVjYXVzZSBpdCBp cyB0aGUKLSsgICAgIyBzaW1wbGVzdCBhcHByb2FjaCB0byBjaGFuZ2luZyAkKERFUERJUikgdG8g aXRzIGFjdHVhbCB2YWx1ZSBpbiB0aGUKLSsgICAgIyBleHBhbnNpb24uCi0rICAgIGZvciBmaWxl IGluIGBzZWQgLW4gIgotKyAgICAgIHMvXiRhbV9faW5jbHVkZSAkYW1fX3F1b3RlXCguKihERVBE SVIpLipcKSRhbV9fcXVvdGUiJyQvXDEvcCcgPCIkbWYiIHwgXAotKwkgc2VkIC1lICdzL1wkKERF UERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCi0rICAgICAgIyBN YWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBleGlzdHMuCi0rICAgICAgdGVzdCAtZiAiJGRpcnBhcnQv JGZpbGUiICYmIGNvbnRpbnVlCi0rICAgICAgZmRpcj1gQVNfRElSTkFNRShbIiRmaWxlIl0pYAot KyAgICAgIEFTX01LRElSX1AoWyRkaXJwYXJ0LyRmZGlyXSkKLSsgICAgICAjIGVjaG8gImNyZWF0 aW5nICRkaXJwYXJ0LyRmaWxlIgotKyAgICAgIGVjaG8gJyMgZHVtbXknID4gIiRkaXJwYXJ0LyRm aWxlIgotKyAgICBkb25lCi0rICBkb25lCi0rfQotK10pIyBfQU1fT1VUUFVUX0RFUEVOREVOQ1lf Q09NTUFORFMKLSsKLSsKLSsjIEFNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgVGhpcyBtYWNybyBzaG91bGQgb25seSBiZSBp bnZva2VkIG9uY2UgLS0gdXNlIHZpYSBBQ19SRVFVSVJFLgotKyMKLSsjIFRoaXMgY29kZSBpcyBv bmx5IHJlcXVpcmVkIHdoZW4gYXV0b21hdGljIGRlcGVuZGVuY3kgdHJhY2tpbmcKLSsjIGlzIGVu YWJsZWQuICBGSVhNRS4gIFRoaXMgY3JlYXRlcyBlYWNoIGAuUCcgZmlsZSB0aGF0IHdlIHdpbGwK LSsjIG5lZWQgaW4gb3JkZXIgdG8gYm9vdHN0cmFwIHRoZSBkZXBlbmRlbmN5IGhhbmRsaW5nIGNv ZGUuCi0rQUNfREVGVU4oW0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKLStbQUNfQ09O RklHX0NPTU1BTkRTKFtkZXBmaWxlc10sCi0rICAgICBbdGVzdCB4IiRBTURFUF9UUlVFIiAhPSB4 IiIgfHwgX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKLSsgICAgIFtBTURFUF9UUlVF PSIkQU1ERVBfVFJVRSIgYWNfYXV4X2Rpcj0iJGFjX2F1eF9kaXIiXSkKLStdKQotKwotKyMgRG8g YWxsIHRoZSB3b3JrIGZvciBBdXRvbWFrZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0q LSBBdXRvY29uZiAtKi0KLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5 OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwKLSsjIDIwMDUsIDIwMDYsIDIwMDgsIDIw MDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgVGhpcyBmaWxlIGlzIGZy ZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGlt aXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9y IHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2 ZWQuCi0rCi0rIyBzZXJpYWwgMTYKLSsKLSsjIFRoaXMgbWFjcm8gYWN0dWFsbHkgZG9lcyB0b28g bXVjaC4gIFNvbWUgY2hlY2tzIGFyZSBvbmx5IG5lZWRlZCBpZgotKyMgeW91ciBwYWNrYWdlIGRv ZXMgY2VydGFpbiB0aGluZ3MuICBCdXQgdGhpcyBpc24ndCByZWFsbHkgYSBiaWcgZGVhbC4KLSsK LSsjIEFNX0lOSVRfQVVUT01BS0UoUEFDS0FHRSwgVkVSU0lPTiwgW05PLURFRklORV0pCi0rIyBB TV9JTklUX0FVVE9NQUtFKFtPUFRJT05TXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBUaGUgY2FsbCB3aXRoIFBBQ0tBR0UgYW5kIFZFUlNJ T04gYXJndW1lbnRzIGlzIHRoZSBvbGQgc3R5bGUKLSsjIGNhbGwgKHByZSBhdXRvY29uZi0yLjUw KSwgd2hpY2ggaXMgYmVpbmcgcGhhc2VkIG91dC4gIFBBQ0tBR0UKLSsjIGFuZCBWRVJTSU9OIHNo b3VsZCBub3cgYmUgcGFzc2VkIHRvIEFDX0lOSVQgYW5kIHJlbW92ZWQgZnJvbQotKyMgdGhlIGNh bGwgdG8gQU1fSU5JVF9BVVRPTUFLRS4KLSsjIFdlIHN1cHBvcnQgYm90aCBjYWxsIHN0eWxlcyBm b3IgdGhlIHRyYW5zaXRpb24uICBBZnRlcgotKyMgdGhlIG5leHQgQXV0b21ha2UgcmVsZWFzZSwg QXV0b2NvbmYgY2FuIG1ha2UgdGhlIEFDX0lOSVQKLSsjIGFyZ3VtZW50cyBtYW5kYXRvcnksIGFu ZCB0aGVuIHdlIGNhbiBkZXBlbmQgb24gYSBuZXcgQXV0b2NvbmYKLSsjIHJlbGVhc2UgYW5kIGRy b3AgdGhlIG9sZCBjYWxsIHN1cHBvcnQuCi0rQUNfREVGVU4oW0FNX0lOSVRfQVVUT01BS0VdLAot K1tBQ19QUkVSRVEoWzIuNjJdKWRubAotK2RubCBBdXRvY29uZiB3YW50cyB0byBkaXNhbGxvdyBB TV8gbmFtZXMuICBXZSBleHBsaWNpdGx5IGFsbG93Ci0rZG5sIHRoZSBvbmVzIHdlIGNhcmUgYWJv dXQuCi0rbTRfcGF0dGVybl9hbGxvdyhbXkFNX1tBLVpdK0ZMQUdTJF0pZG5sCi0rQUNfUkVRVUlS RShbQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTl0pZG5sCi0rQUNfUkVRVUlSRShbQUNf UFJPR19JTlNUQUxMXSlkbmwKLStpZiB0ZXN0ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAhPSAiYHB3 ZGAiOyB0aGVuCi0rICAjIFVzZSAtSSQoc3JjZGlyKSBvbmx5IHdoZW4gJChzcmNkaXIpICE9IC4s IHNvIHRoYXQgbWFrZSdzIG91dHB1dAotKyAgIyBpcyBub3QgcG9sbHV0ZWQgd2l0aCByZXBlYXRl ZCAiLUkuIgotKyAgQUNfU1VCU1QoW2FtX19pc3JjXSwgWycgLUkkKHNyY2RpciknXSlfQU1fU1VC U1RfTk9UTUFLRShbYW1fX2lzcmNdKWRubAotKyAgIyB0ZXN0IHRvIHNlZSBpZiBzcmNkaXIgYWxy ZWFkeSBjb25maWd1cmVkCi0rICBpZiB0ZXN0IC1mICRzcmNkaXIvY29uZmlnLnN0YXR1czsgdGhl bgotKyAgICBBQ19NU0dfRVJST1IoW3NvdXJjZSBkaXJlY3RvcnkgYWxyZWFkeSBjb25maWd1cmVk OyBydW4gIm1ha2UgZGlzdGNsZWFuIiB0aGVyZSBmaXJzdF0pCi0rICBmaQotK2ZpCi0rCi0rIyB0 ZXN0IHdoZXRoZXIgd2UgaGF2ZSBjeWdwYXRoCi0raWYgdGVzdCAteiAiJENZR1BBVEhfVyI7IHRo ZW4KLSsgIGlmIChjeWdwYXRoIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhl bgotKyAgICBDWUdQQVRIX1c9J2N5Z3BhdGggLXcnCi0rICBlbHNlCi0rICAgIENZR1BBVEhfVz1l Y2hvCi0rICBmaQotK2ZpCi0rQUNfU1VCU1QoW0NZR1BBVEhfV10pCi0rCi0rIyBEZWZpbmUgdGhl IGlkZW50aXR5IG9mIHRoZSBwYWNrYWdlLgotK2RubCBEaXN0aW5ndWlzaCBiZXR3ZWVuIG9sZC1z dHlsZSBhbmQgbmV3LXN0eWxlIGNhbGxzLgotK200X2lmdmFsKFskMl0sCi0rW200X2lmdmFsKFsk M10sIFtfQU1fU0VUX09QVElPTihbbm8tZGVmaW5lXSldKWRubAotKyBBQ19TVUJTVChbUEFDS0FH RV0sIFskMV0pZG5sCi0rIEFDX1NVQlNUKFtWRVJTSU9OXSwgWyQyXSldLAotK1tfQU1fU0VUX09Q VElPTlMoWyQxXSlkbmwKLStkbmwgRGlhZ25vc2Ugb2xkLXN0eWxlIEFDX0lOSVQgd2l0aCBuZXct c3R5bGUgQU1fQVVUT01BS0VfSU5JVC4KLSttNF9pZihtNF9pZmRlZihbQUNfUEFDS0FHRV9OQU1F XSwgMSltNF9pZmRlZihbQUNfUEFDS0FHRV9WRVJTSU9OXSwgMSksIDExLCwKLSsgIFttNF9mYXRh bChbQUNfSU5JVCBzaG91bGQgYmUgY2FsbGVkIHdpdGggcGFja2FnZSBhbmQgdmVyc2lvbiBhcmd1 bWVudHNdKV0pZG5sCi0rIEFDX1NVQlNUKFtQQUNLQUdFXSwgWydBQ19QQUNLQUdFX1RBUk5BTUUn XSlkbmwKLSsgQUNfU1VCU1QoW1ZFUlNJT05dLCBbJ0FDX1BBQ0tBR0VfVkVSU0lPTiddKV0pZG5s Ci0rCi0rX0FNX0lGX09QVElPTihbbm8tZGVmaW5lXSwsCi0rW0FDX0RFRklORV9VTlFVT1RFRChQ QUNLQUdFLCAiJFBBQ0tBR0UiLCBbTmFtZSBvZiBwYWNrYWdlXSkKLSsgQUNfREVGSU5FX1VOUVVP VEVEKFZFUlNJT04sICIkVkVSU0lPTiIsIFtWZXJzaW9uIG51bWJlciBvZiBwYWNrYWdlXSldKWRu bAotKwotKyMgU29tZSB0b29scyBBdXRvbWFrZSBuZWVkcy4KLStBQ19SRVFVSVJFKFtBTV9TQU5J VFlfQ0hFQ0tdKWRubAotK0FDX1JFUVVJUkUoW0FDX0FSR19QUk9HUkFNXSlkbmwKLStBTV9NSVNT SU5HX1BST0coQUNMT0NBTCwgYWNsb2NhbC0ke2FtX19hcGlfdmVyc2lvbn0pCi0rQU1fTUlTU0lO R19QUk9HKEFVVE9DT05GLCBhdXRvY29uZikKLStBTV9NSVNTSU5HX1BST0coQVVUT01BS0UsIGF1 dG9tYWtlLSR7YW1fX2FwaV92ZXJzaW9ufSkKLStBTV9NSVNTSU5HX1BST0coQVVUT0hFQURFUiwg YXV0b2hlYWRlcikKLStBTV9NSVNTSU5HX1BST0coTUFLRUlORk8sIG1ha2VpbmZvKQotK0FDX1JF UVVJUkUoW0FNX1BST0dfSU5TVEFMTF9TSF0pZG5sCi0rQUNfUkVRVUlSRShbQU1fUFJPR19JTlNU QUxMX1NUUklQXSlkbmwKLStBQ19SRVFVSVJFKFtBTV9QUk9HX01LRElSX1BdKWRubAotKyMgV2Ug bmVlZCBhd2sgZm9yIHRoZSAiY2hlY2siIHRhcmdldC4gIFRoZSBzeXN0ZW0gImF3ayIgaXMgYmFk IG9uCi0rIyBzb21lIHBsYXRmb3Jtcy4KLStBQ19SRVFVSVJFKFtBQ19QUk9HX0FXS10pZG5sCi0r QUNfUkVRVUlSRShbQUNfUFJPR19NQUtFX1NFVF0pZG5sCi0rQUNfUkVRVUlSRShbQU1fU0VUX0xF QURJTkdfRE9UXSlkbmwKLStfQU1fSUZfT1BUSU9OKFt0YXItdXN0YXJdLCBbX0FNX1BST0dfVEFS KFt1c3Rhcl0pXSwKLSsJICAgICAgW19BTV9JRl9PUFRJT04oW3Rhci1wYXhdLCBbX0FNX1BST0df VEFSKFtwYXhdKV0sCi0rCQkJICAgICBbX0FNX1BST0dfVEFSKFt2N10pXSldKQotK19BTV9JRl9P UFRJT04oW25vLWRlcGVuZGVuY2llc10sLAotK1tBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19D Q10sCi0rCQkgIFtfQU1fREVQRU5ERU5DSUVTKENDKV0sCi0rCQkgIFtkZWZpbmUoW0FDX1BST0df Q0NdLAotKwkJCSAgZGVmbihbQUNfUFJPR19DQ10pW19BTV9ERVBFTkRFTkNJRVMoQ0MpXSldKWRu bAotK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NYWF0sCi0rCQkgIFtfQU1fREVQRU5ERU5D SUVTKENYWCldLAotKwkJICBbZGVmaW5lKFtBQ19QUk9HX0NYWF0sCi0rCQkJICBkZWZuKFtBQ19Q Uk9HX0NYWF0pW19BTV9ERVBFTkRFTkNJRVMoQ1hYKV0pXSlkbmwKLStBQ19QUk9WSURFX0lGRUxT RShbQUNfUFJPR19PQkpDXSwKLSsJCSAgW19BTV9ERVBFTkRFTkNJRVMoT0JKQyldLAotKwkJICBb ZGVmaW5lKFtBQ19QUk9HX09CSkNdLAotKwkJCSAgZGVmbihbQUNfUFJPR19PQkpDXSlbX0FNX0RF UEVOREVOQ0lFUyhPQkpDKV0pXSlkbmwKLStdKQotK19BTV9JRl9PUFRJT04oW3NpbGVudC1ydWxl c10sIFtBQ19SRVFVSVJFKFtBTV9TSUxFTlRfUlVMRVNdKV0pZG5sCi0rZG5sIFRoZSBgcGFyYWxs ZWwtdGVzdHMnIGRyaXZlciBtYXkgbmVlZCB0byBrbm93IGFib3V0IEVYRUVYVCwgc28gYWRkIHRo ZQotK2RubCBgYW1fX0VYRUVYVCcgY29uZGl0aW9uYWwgaWYgX0FNX0NPTVBJTEVSX0VYRUVYVCB3 YXMgc2Vlbi4gIFRoaXMgbWFjcm8KLStkbmwgaXMgaG9va2VkIG9udG8gX0FDX0NPTVBJTEVSX0VY RUVYVCBlYXJseSwgc2VlIGJlbG93LgotK0FDX0NPTkZJR19DT01NQU5EU19QUkUoZG5sCi0rW200 X3Byb3ZpZGVfaWYoW19BTV9DT01QSUxFUl9FWEVFWFRdLAotKyAgW0FNX0NPTkRJVElPTkFMKFth bV9fRVhFRVhUXSwgW3Rlc3QgLW4gIiRFWEVFWFQiXSldKV0pZG5sCi0rXSkKLSsKLStkbmwgSG9v ayBpbnRvIGBfQUNfQ09NUElMRVJfRVhFRVhUJyBlYXJseSB0byBsZWFybiBpdHMgZXhwYW5zaW9u LiAgRG8gbm90Ci0rZG5sIGFkZCB0aGUgY29uZGl0aW9uYWwgcmlnaHQgaGVyZSwgYXMgX0FDX0NP TVBJTEVSX0VYRUVYVCBtYXkgYmUgZnVydGhlcgotK2RubCBtYW5nbGVkIGJ5IEF1dG9jb25mIGFu ZCBydW4gaW4gYSBzaGVsbCBjb25kaXRpb25hbCBzdGF0ZW1lbnQuCi0rbTRfZGVmaW5lKFtfQUNf Q09NUElMRVJfRVhFRVhUXSwKLSttNF9kZWZuKFtfQUNfQ09NUElMRVJfRVhFRVhUXSlbbTRfcHJv dmlkZShbX0FNX0NPTVBJTEVSX0VYRUVYVF0pXSkKLSsKLSsKLSsjIFdoZW4gY29uZmlnLnN0YXR1 cyBnZW5lcmF0ZXMgYSBoZWFkZXIsIHdlIG11c3QgdXBkYXRlIHRoZSBzdGFtcC1oIGZpbGUuCi0r IyBUaGlzIGZpbGUgcmVzaWRlcyBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhlIGNvbmZpZyBo ZWFkZXIKLSsjIHRoYXQgaXMgZ2VuZXJhdGVkLiAgVGhlIHN0YW1wIGZpbGVzIGFyZSBudW1iZXJl ZCB0byBoYXZlIGRpZmZlcmVudCBuYW1lcy4KLSsKLSsjIEF1dG9jb25mIGNhbGxzIF9BQ19BTV9D T05GSUdfSEVBREVSX0hPT0sgKHdoZW4gZGVmaW5lZCkgaW4gdGhlCi0rIyBsb29wIHdoZXJlIGNv bmZpZy5zdGF0dXMgY3JlYXRlcyB0aGUgaGVhZGVycywgc28gd2UgY2FuIGdlbmVyYXRlCi0rIyBv dXIgc3RhbXAgZmlsZXMgdGhlcmUuCi0rQUNfREVGVU4oW19BQ19BTV9DT05GSUdfSEVBREVSX0hP T0tdLAotK1sjIENvbXB1dGUgJDEncyBpbmRleCBpbiAkY29uZmlnX2hlYWRlcnMuCi0rX2FtX2Fy Zz0kMQotK19hbV9zdGFtcF9jb3VudD0xCi0rZm9yIF9hbV9oZWFkZXIgaW4gJGNvbmZpZ19oZWFk ZXJzIDo7IGRvCi0rICBjYXNlICRfYW1faGVhZGVyIGluCi0rICAgICRfYW1fYXJnIHwgJF9hbV9h cmc6KiApCi0rICAgICAgYnJlYWsgOzsKLSsgICAgKiApCi0rICAgICAgX2FtX3N0YW1wX2NvdW50 PWBleHByICRfYW1fc3RhbXBfY291bnQgKyAxYCA7OwotKyAgZXNhYwotK2RvbmUKLStlY2hvICJ0 aW1lc3RhbXAgZm9yICRfYW1fYXJnIiA+YEFTX0RJUk5BTUUoWyIkX2FtX2FyZyJdKWAvc3RhbXAt aFtdJF9hbV9zdGFtcF9jb3VudF0pCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIw MDUsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmls ZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZl cyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMg d2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMg cHJlc2VydmVkLgotKwotKyMgQU1fUFJPR19JTlNUQUxMX1NICi0rIyAtLS0tLS0tLS0tLS0tLS0t LS0KLSsjIERlZmluZSAkaW5zdGFsbF9zaC4KLStBQ19ERUZVTihbQU1fUFJPR19JTlNUQUxMX1NI XSwKLStbQUNfUkVRVUlSRShbQU1fQVVYX0RJUl9FWFBBTkRdKWRubAotK2lmIHRlc3QgeCIke2lu c3RhbGxfc2h9IiAhPSB4c2V0OyB0aGVuCi0rICBjYXNlICRhbV9hdXhfZGlyIGluCi0rICAqXCAq IHwgKlwJKikKLSsgICAgaW5zdGFsbF9zaD0iXCR7U0hFTEx9ICckYW1fYXV4X2Rpci9pbnN0YWxs LXNoJyIgOzsKLSsgICopCi0rICAgIGluc3RhbGxfc2g9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9p bnN0YWxsLXNoIgotKyAgZXNhYwotK2ZpCi0rQUNfU1VCU1QoaW5zdGFsbF9zaCldKQotKwotKyMg Q29weXJpZ2h0IChDKSAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K LSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlz dHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFz IHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCAyCi0rCi0rIyBDaGVjayB3 aGV0aGVyIHRoZSB1bmRlcmx5aW5nIGZpbGUtc3lzdGVtIHN1cHBvcnRzIGZpbGVuYW1lcwotKyMg d2l0aCBhIGxlYWRpbmcgZG90LiAgRm9yIGluc3RhbmNlIE1TLURPUyBkb2Vzbid0LgotK0FDX0RF RlVOKFtBTV9TRVRfTEVBRElOR19ET1RdLAotK1tybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAotK21r ZGlyIC50c3QgMj4vZGV2L251bGwKLStpZiB0ZXN0IC1kIC50c3Q7IHRoZW4KLSsgIGFtX19sZWFk aW5nX2RvdD0uCi0rZWxzZQotKyAgYW1fX2xlYWRpbmdfZG90PV8KLStmaQotK3JtZGlyIC50c3Qg Mj4vZGV2L251bGwKLStBQ19TVUJTVChbYW1fX2xlYWRpbmdfZG90XSldKQotKwotKyMgQ2hlY2sg dG8gc2VlIGhvdyAnbWFrZScgdHJlYXRzIGluY2x1ZGVzLgkgICAgICAgICAgICAtKi0gQXV0b2Nv bmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDkg IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVl IHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0 ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3 aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVk LgotKwotKyMgc2VyaWFsIDQKLSsKLSsjIEFNX01BS0VfSU5DTFVERSgpCi0rIyAtLS0tLS0tLS0t LS0tLS0tLQotKyMgQ2hlY2sgdG8gc2VlIGhvdyBtYWtlIHRyZWF0cyBpbmNsdWRlcy4KLStBQ19E RUZVTihbQU1fTUFLRV9JTkNMVURFXSwKLStbYW1fbWFrZT0ke01BS0UtbWFrZX0KLStjYXQgPiBj b25maW5jIDw8ICdFTkQnCi0rYW1fX2RvaXQ6Ci0rCUBlY2hvIHRoaXMgaXMgdGhlIGFtX19kb2l0 IHRhcmdldAotKy5QSE9OWTogYW1fX2RvaXQKLStFTkQKLSsjIElmIHdlIGRvbid0IGZpbmQgYW4g aW5jbHVkZSBkaXJlY3RpdmUsIGp1c3QgY29tbWVudCBvdXQgdGhlIGNvZGUuCi0rQUNfTVNHX0NI RUNLSU5HKFtmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5ICRhbV9tYWtlXSkKLSthbV9faW5j bHVkZT0iIyIKLSthbV9fcXVvdGU9Ci0rX2FtX3Jlc3VsdD1ub25lCi0rIyBGaXJzdCB0cnkgR05V IG1ha2Ugc3R5bGUgaW5jbHVkZS4KLStlY2hvICJpbmNsdWRlIGNvbmZpbmMiID4gY29uZm1mCi0r IyBJZ25vcmUgYWxsIGtpbmRzIG9mIGFkZGl0aW9uYWwgb3V0cHV0IGZyb20gYG1ha2UnLgotK2Nh c2UgYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGxgIGluICMoCi0rKnRoZVwgYW1f X2RvaXRcIHRhcmdldCopCi0rICBhbV9faW5jbHVkZT1pbmNsdWRlCi0rICBhbV9fcXVvdGU9Ci0r ICBfYW1fcmVzdWx0PUdOVQotKyAgOzsKLStlc2FjCi0rIyBOb3cgdHJ5IEJTRCBtYWtlIHN0eWxl IGluY2x1ZGUuCi0raWYgdGVzdCAiJGFtX19pbmNsdWRlIiA9ICIjIjsgdGhlbgotKyAgIGVjaG8g Jy5pbmNsdWRlICJjb25maW5jIicgPiBjb25mbWYKLSsgICBjYXNlIGAkYW1fbWFrZSAtcyAtZiBj b25mbWYgMj4gL2Rldi9udWxsYCBpbiAjKAotKyAgICp0aGVcIGFtX19kb2l0XCB0YXJnZXQqKQot KyAgICAgYW1fX2luY2x1ZGU9LmluY2x1ZGUKLSsgICAgIGFtX19xdW90ZT0iXCIiCi0rICAgICBf YW1fcmVzdWx0PUJTRAotKyAgICAgOzsKLSsgICBlc2FjCi0rZmkKLStBQ19TVUJTVChbYW1fX2lu Y2x1ZGVdKQotK0FDX1NVQlNUKFthbV9fcXVvdGVdKQotK0FDX01TR19SRVNVTFQoWyRfYW1fcmVz dWx0XSkKLStybSAtZiBjb25maW5jIGNvbmZtZgotK10pCi0rCi0rIyBGYWtlIHRoZSBleGlzdGVu Y2Ugb2YgcHJvZ3JhbXMgdGhhdCBHTlUgbWFpbnRhaW5lcnMgdXNlLiAgLSotIEF1dG9jb25mIC0q LQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk3LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0 LCAyMDA1LCAyMDA4Ci0rIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBU aGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgot KyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBp dCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90 aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCA2Ci0rCi0rIyBBTV9NSVNTSU5HX1BST0co TkFNRSwgUFJPR1JBTSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RF RlVOKFtBTV9NSVNTSU5HX1BST0ddLAotK1tBQ19SRVFVSVJFKFtBTV9NSVNTSU5HX0hBU19SVU5d KQotKyQxPSR7JDEtIiR7YW1fbWlzc2luZ19ydW59JDIifQotK0FDX1NVQlNUKCQxKV0pCi0rCi0r Ci0rIyBBTV9NSVNTSU5HX0hBU19SVU4KLSsjIC0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRGVmaW5l IE1JU1NJTkcgaWYgbm90IGRlZmluZWQgc28gZmFyIGFuZCB0ZXN0IGlmIGl0IHN1cHBvcnRzIC0t cnVuLgotKyMgSWYgaXQgZG9lcywgc2V0IGFtX21pc3NpbmdfcnVuIHRvIHVzZSBpdCwgb3RoZXJ3 aXNlLCB0byBub3RoaW5nLgotK0FDX0RFRlVOKFtBTV9NSVNTSU5HX0hBU19SVU5dLAotK1tBQ19S RVFVSVJFKFtBTV9BVVhfRElSX0VYUEFORF0pZG5sCi0rQUNfUkVRVUlSRV9BVVhfRklMRShbbWlz c2luZ10pZG5sCi0raWYgdGVzdCB4IiR7TUlTU0lORytzZXR9IiAhPSB4c2V0OyB0aGVuCi0rICBj YXNlICRhbV9hdXhfZGlyIGluCi0rICAqXCAqIHwgKlwJKikKLSsgICAgTUlTU0lORz0iXCR7U0hF TEx9IFwiJGFtX2F1eF9kaXIvbWlzc2luZ1wiIiA7OwotKyAgKikKLSsgICAgTUlTU0lORz0iXCR7 U0hFTEx9ICRhbV9hdXhfZGlyL21pc3NpbmciIDs7Ci0rICBlc2FjCi0rZmkKLSsjIFVzZSBldmFs IHRvIGV4cGFuZCAkU0hFTEwKLStpZiBldmFsICIkTUlTU0lORyAtLXJ1biB0cnVlIjsgdGhlbgot KyAgYW1fbWlzc2luZ19ydW49IiRNSVNTSU5HIC0tcnVuICIKLStlbHNlCi0rICBhbV9taXNzaW5n X3J1bj0KLSsgIEFDX01TR19XQVJOKFtgbWlzc2luZycgc2NyaXB0IGlzIHRvbyBvbGQgb3IgbWlz c2luZ10pCi0rZmkKLStdKQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5s aW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGgg b3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNl cnZlZC4KLSsKLSsjIEFNX1BST0dfTUtESVJfUAotKyMgLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVj ayBmb3IgYG1rZGlyIC1wJy4KLStBQ19ERUZVTihbQU1fUFJPR19NS0RJUl9QXSwKLStbQUNfUFJF UkVRKFsyLjYwXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19QUk9HX01LRElSX1BdKWRubAotK2RubCBB dXRvbWFrZSAxLjggdG8gMS45LjYgdXNlZCB0byBkZWZpbmUgbWtkaXJfcC4gIFdlIG5vdyB1c2Ug TUtESVJfUCwKLStkbmwgd2hpbGUga2VlcGluZyBhIGRlZmluaXRpb24gb2YgbWtkaXJfcCBmb3Ig YmFja3dhcmQgY29tcGF0aWJpbGl0eS4KLStkbmwgQE1LRElSX1BAIGlzIG1hZ2ljOiBBQ19PVVRQ VVQgYWRqdXN0cyBpdHMgdmFsdWUgZm9yIGVhY2ggTWFrZWZpbGUuCi0rZG5sIEhvd2V2ZXIgd2Ug Y2Fubm90IGRlZmluZSBta2Rpcl9wIGFzICQoTUtESVJfUCkgZm9yIHRoZSBzYWtlIG9mCi0rZG5s IE1ha2VmaWxlLmlucyB0aGF0IGRvIG5vdCBkZWZpbmUgTUtESVJfUCwgc28gd2UgZG8gb3VyIG93 bgotK2RubCBhZGp1c3RtZW50IHVzaW5nIHRvcF9idWlsZGRpciAod2hpY2ggaXMgZGVmaW5lZCBt b3JlIG9mdGVuIHRoYW4KLStkbmwgTUtESVJfUCkuCi0rQUNfU1VCU1QoW21rZGlyX3BdLCBbIiRN S0RJUl9QIl0pZG5sCi0rY2FzZSAkbWtkaXJfcCBpbgotKyAgW1tcXC8kXV0qIHwgPzpbW1xcL11d KikgOzsKLSsgICovKikgbWtkaXJfcD0iXCQodG9wX2J1aWxkZGlyKS8kbWtkaXJfcCIgOzsKLStl c2FjCi0rXSkKLSsKLSsjIEhlbHBlciBmdW5jdGlvbnMgZm9yIG9wdGlvbiBoYW5kbGluZy4gICAg ICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIw MDEsIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBk aXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcg YXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgc2VyaWFsIDQKLSsKLSsjIF9BTV9N QU5HTEVfT1BUSU9OKE5BTUUpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVO KFtfQU1fTUFOR0xFX09QVElPTl0sCi0rW1tfQU1fT1BUSU9OX11tNF9icGF0c3Vic3QoJDEsIFtb XmEtekEtWjAtOV9dXSwgW19dKV0pCi0rCi0rIyBfQU1fU0VUX09QVElPTihOQU1FKQotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTZXQgb3B0aW9uIE5BTUUuICBQcmVzZW50 bHkgdGhhdCBvbmx5IG1lYW5zIGRlZmluaW5nIGEgZmxhZyBmb3IgdGhpcyBvcHRpb24uCi0rQUNf REVGVU4oW19BTV9TRVRfT1BUSU9OXSwKLStbbTRfZGVmaW5lKF9BTV9NQU5HTEVfT1BUSU9OKFsk MV0pLCAxKV0pCi0rCi0rIyBfQU1fU0VUX09QVElPTlMoT1BUSU9OUykKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIE9QVElPTlMgaXMgYSBzcGFjZS1zZXBhcmF0ZWQg bGlzdCBvZiBBdXRvbWFrZSBvcHRpb25zLgotK0FDX0RFRlVOKFtfQU1fU0VUX09QVElPTlNdLAot K1ttNF9mb3JlYWNoX3coW19BTV9PcHRpb25dLCBbJDFdLCBbX0FNX1NFVF9PUFRJT04oX0FNX09w dGlvbildKV0pCi0rCi0rIyBfQU1fSUZfT1BUSU9OKE9QVElPTiwgSUYtU0VULCBbSUYtTk9ULVNF VF0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBF eGVjdXRlIElGLVNFVCBpZiBPUFRJT04gaXMgc2V0LCBJRi1OT1QtU0VUIG90aGVyd2lzZS4KLStB Q19ERUZVTihbX0FNX0lGX09QVElPTl0sCi0rW200X2lmc2V0KF9BTV9NQU5HTEVfT1BUSU9OKFsk MV0pLCBbJDJdLCBbJDNdKV0pCi0rCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUgYnVp bGQgZW52aXJvbm1lbnQgaXMgc2FuZS4gICAgLSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29weXJp Z2h0IChDKSAxOTk2LCAxOTk3LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA1LCAyMDA4Ci0rIyBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0 d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBl cm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91 dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsK LSsjIHNlcmlhbCA1Ci0rCi0rIyBBTV9TQU5JVFlfQ0hFQ0sKLSsjIC0tLS0tLS0tLS0tLS0tLQot K0FDX0RFRlVOKFtBTV9TQU5JVFlfQ0hFQ0tdLAotK1tBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIg YnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZV0pCi0rIyBKdXN0IGluIGNhc2UKLStzbGVlcCAxCi0r ZWNobyB0aW1lc3RhbXAgPiBjb25mdGVzdC5maWxlCi0rIyBSZWplY3QgdW5zYWZlIGNoYXJhY3Rl cnMgaW4gJHNyY2RpciBvciB0aGUgYWJzb2x1dGUgd29ya2luZyBkaXJlY3RvcnkKLSsjIG5hbWUu ICBBY2NlcHQgc3BhY2UgYW5kIHRhYiBvbmx5IGluIHRoZSBsYXR0ZXIuCi0rYW1fbGY9JwotKycK LStjYXNlIGBwd2RgIGluCi0rICAqW1tcXFwiXCNcJFwmXCdcYCRhbV9sZl1dKikKLSsgICAgQUNf TVNHX0VSUk9SKFt1bnNhZmUgYWJzb2x1dGUgd29ya2luZyBkaXJlY3RvcnkgbmFtZV0pOzsKLStl c2FjCi0rY2FzZSAkc3JjZGlyIGluCi0rICAqW1tcXFwiXCNcJFwmXCdcYCRhbV9sZlwgXAldXSop Ci0rICAgIEFDX01TR19FUlJPUihbdW5zYWZlIHNyY2RpciB2YWx1ZTogYCRzcmNkaXInXSk7Owot K2VzYWMKLSsKLSsjIERvIGBzZXQnIGluIGEgc3Vic2hlbGwgc28gd2UgZG9uJ3QgY2xvYmJlciB0 aGUgY3VycmVudCBzaGVsbCdzCi0rIyBhcmd1bWVudHMuICBNdXN0IHRyeSAtTCBmaXJzdCBpbiBj YXNlIGNvbmZpZ3VyZSBpcyBhY3R1YWxseSBhCi0rIyBzeW1saW5rOyBzb21lIHN5c3RlbXMgcGxh eSB3ZWlyZCBnYW1lcyB3aXRoIHRoZSBtb2QgdGltZSBvZiBzeW1saW5rcwotKyMgKGVnIEZyZWVC U0QgcmV0dXJucyB0aGUgbW9kIHRpbWUgb2YgdGhlIHN5bWxpbmsncyBjb250YWluaW5nCi0rIyBk aXJlY3RvcnkpLgotK2lmICgKLSsgICBzZXQgWCBgbHMgLUx0ICIkc3JjZGlyL2NvbmZpZ3VyZSIg Y29uZnRlc3QuZmlsZSAyPiAvZGV2L251bGxgCi0rICAgaWYgdGVzdCAiJFsqXSIgPSAiWCI7IHRo ZW4KLSsgICAgICAjIC1MIGRpZG4ndCB3b3JrLgotKyAgICAgIHNldCBYIGBscyAtdCAiJHNyY2Rp ci9jb25maWd1cmUiIGNvbmZ0ZXN0LmZpbGVgCi0rICAgZmkKLSsgICBybSAtZiBjb25mdGVzdC5m aWxlCi0rICAgaWYgdGVzdCAiJFsqXSIgIT0gIlggJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3Qu ZmlsZSIgXAotKyAgICAgICYmIHRlc3QgIiRbKl0iICE9ICJYIGNvbmZ0ZXN0LmZpbGUgJHNyY2Rp ci9jb25maWd1cmUiOyB0aGVuCi0rCi0rICAgICAgIyBJZiBuZWl0aGVyIG1hdGNoZWQsIHRoZW4g d2UgaGF2ZSBhIGJyb2tlbiBscy4gIFRoaXMgY2FuIGhhcHBlbgotKyAgICAgICMgaWYsIGZvciBp bnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKLSsgICAgICAj IGJyb2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgaGFzIGFjdHVhbGx5 Ci0rICAgICAgIyBoYXBwZW5lZC4gIFN1Y2ggYSBzeXN0ZW0gY291bGQgbm90IGJlIGNvbnNpZGVy ZWQgInNhbmUiLgotKyAgICAgIEFDX01TR19FUlJPUihbbHMgLXQgYXBwZWFycyB0byBmYWlsLiAg TWFrZSBzdXJlIHRoZXJlIGlzIG5vdCBhIGJyb2tlbgotK2FsaWFzIGluIHlvdXIgZW52aXJvbm1l bnRdKQotKyAgIGZpCi0rCi0rICAgdGVzdCAiJFsyXSIgPSBjb25mdGVzdC5maWxlCi0rICAgKQot K3RoZW4KLSsgICAjIE9rLgotKyAgIDoKLStlbHNlCi0rICAgQUNfTVNHX0VSUk9SKFtuZXdseSBj cmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxlcyEKLStDaGVjayB5b3Vy IHN5c3RlbSBjbG9ja10pCi0rZmkKLStBQ19NU0dfUkVTVUxUKHllcyldKQotKwotKyMgQ29weXJp Z2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K LSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlz dHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFz IHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIEFNX1BST0dfSU5TVEFMTF9TVFJJUAot KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBPbmUgaXNzdWUgd2l0aCB2ZW5kb3IgYGluc3Rh bGwnIChldmVuIEdOVSkgaXMgdGhhdCB5b3UgY2FuJ3QKLSsjIHNwZWNpZnkgdGhlIHByb2dyYW0g dXNlZCB0byBzdHJpcCBiaW5hcmllcy4gIFRoaXMgaXMgZXNwZWNpYWxseQotKyMgYW5ub3lpbmcg aW4gY3Jvc3MtY29tcGlsaW5nIGVudmlyb25tZW50cywgd2hlcmUgdGhlIGJ1aWxkJ3Mgc3RyaXAK LSsjIGlzIHVubGlrZWx5IHRvIGhhbmRsZSB0aGUgaG9zdCdzIGJpbmFyaWVzLgotKyMgRm9ydHVu YXRlbHkgaW5zdGFsbC1zaCB3aWxsIGhvbm9yIGEgU1RSSVBQUk9HIHZhcmlhYmxlLCBzbyB3ZQot KyMgYWx3YXlzIHVzZSBpbnN0YWxsLXNoIGluIGBtYWtlIGluc3RhbGwtc3RyaXAnLCBhbmQgaW5p dGlhbGl6ZQotKyMgU1RSSVBQUk9HIHdpdGggdGhlIHZhbHVlIG9mIHRoZSBTVFJJUCB2YXJpYWJs ZSAoc2V0IGJ5IHRoZSB1c2VyKS4KLStBQ19ERUZVTihbQU1fUFJPR19JTlNUQUxMX1NUUklQXSwK LStbQUNfUkVRVUlSRShbQU1fUFJPR19JTlNUQUxMX1NIXSlkbmwKLSsjIEluc3RhbGxlZCBiaW5h cmllcyBhcmUgdXN1YWxseSBzdHJpcHBlZCB1c2luZyBgc3RyaXAnIHdoZW4gdGhlIHVzZXIKLSsj IHJ1biBgbWFrZSBpbnN0YWxsLXN0cmlwJy4gIEhvd2V2ZXIgYHN0cmlwJyBtaWdodCBub3QgYmUg dGhlIHJpZ2h0Ci0rIyB0b29sIHRvIHVzZSBpbiBjcm9zcy1jb21waWxhdGlvbiBlbnZpcm9ubWVu dHMsIHRoZXJlZm9yZSBBdXRvbWFrZQotKyMgd2lsbCBob25vciB0aGUgYFNUUklQJyBlbnZpcm9u bWVudCB2YXJpYWJsZSB0byBvdmVycnVsZSB0aGlzIHByb2dyYW0uCi0rZG5sIERvbid0IHRlc3Qg Zm9yICRjcm9zc19jb21waWxpbmcgPSB5ZXMsIGJlY2F1c2UgaXQgbWlnaHQgYmUgYG1heWJlJy4K LStpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSBubzsgdGhlbgotKyAgQUNfQ0hFQ0tfVE9P TChbU1RSSVBdLCBbc3RyaXBdLCA6KQotK2ZpCi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNPSJcJChp bnN0YWxsX3NoKSAtYyAtcyIKLStBQ19TVUJTVChbSU5TVEFMTF9TVFJJUF9QUk9HUkFNXSldKQot KwotKyMgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQv b3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBs b25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCAyCi0rCi0rIyBf QU1fU1VCU1RfTk9UTUFLRShWQVJJQUJMRSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotKyMgUHJldmVudCBBdXRvbWFrZSBmcm9tIG91dHB1dHRpbmcgVkFSSUFCTEUgPSBAVkFSSUFC TEVAIGluIE1ha2VmaWxlLmluLgotKyMgVGhpcyBtYWNybyBpcyB0cmFjZWQgYnkgQXV0b21ha2Uu Ci0rQUNfREVGVU4oW19BTV9TVUJTVF9OT1RNQUtFXSkKLSsKLSsjIEFNX1NVQlNUX05PVE1BS0Uo VkFSSUFCTEUpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFB1YmxpYyBzaXN0 ZXIgb2YgX0FNX1NVQlNUX05PVE1BS0UuCi0rQUNfREVGVU4oW0FNX1NVQlNUX05PVE1BS0VdLCBb X0FNX1NVQlNUX05PVE1BS0UoJEApXSkKLSsKLSsjIENoZWNrIGhvdyB0byBjcmVhdGUgYSB0YXJi YWxsLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBD b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgot KyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0 cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMg dGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgc2VyaWFsIDIKLSsKLSsjIF9BTV9QUk9H X1RBUihGT1JNQVQpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgaG93IHRvIGNy ZWF0ZSBhIHRhcmJhbGwgaW4gZm9ybWF0IEZPUk1BVC4KLSsjIEZPUk1BVCBzaG91bGQgYmUgb25l IG9mIGB2NycsIGB1c3RhcicsIG9yIGBwYXgnLgotKyMKLSsjIFN1YnN0aXR1dGUgYSB2YXJpYWJs ZSAkKGFtX190YXIpIHRoYXQgaXMgYSBjb21tYW5kCi0rIyB3cml0aW5nIHRvIHN0ZG91dCBhIEZP Uk1BVC10YXJiYWxsIGNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeQotKyMgJHRhcmRpci4KLSsjICAg ICB0YXJkaXI9ZGlyZWN0b3J5ICYmICQoYW1fX3RhcikgPiByZXN1bHQudGFyCi0rIwotKyMgU3Vi c3RpdHV0ZSBhIHZhcmlhYmxlICQoYW1fX3VudGFyKSB0aGF0IGV4dHJhY3Qgc3VjaAotKyMgYSB0 YXJiYWxsIHJlYWQgZnJvbSBzdGRpbi4KLSsjICAgICAkKGFtX191bnRhcikgPCByZXN1bHQudGFy Ci0rQUNfREVGVU4oW19BTV9QUk9HX1RBUl0sCi0rWyMgQWx3YXlzIGRlZmluZSBBTVRBUiBmb3Ig YmFja3dhcmQgY29tcGF0aWJpbGl0eS4KLStBTV9NSVNTSU5HX1BST0coW0FNVEFSXSwgW3Rhcl0p Ci0rbTRfaWYoWyQxXSwgW3Y3XSwKLSsgICAgIFthbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQk dGFyZGlyIic7IGFtX191bnRhcj0nJHtBTVRBUn0geGYgLSddLAotKyAgICAgW200X2Nhc2UoWyQx XSwgW3VzdGFyXSwsIFtwYXhdLCwKLSsgICAgICAgICAgICAgIFttNF9mYXRhbChbVW5rbm93biB0 YXIgZm9ybWF0XSldKQotK0FDX01TR19DSEVDS0lORyhbaG93IHRvIGNyZWF0ZSBhICQxIHRhciBh cmNoaXZlXSkKLSsjIExvb3Agb3ZlciBhbGwga25vd24gbWV0aG9kcyB0byBjcmVhdGUgYSB0YXIg YXJjaGl2ZSB1bnRpbCBvbmUgd29ya3MuCi0rX2FtX3Rvb2xzPSdnbnV0YXIgbTRfaWYoWyQxXSwg W3VzdGFyXSwgW3BsYWludGFyXSkgcGF4IGNwaW8gbm9uZScKLStfYW1fdG9vbHM9JHthbV9jdl9w cm9nX3Rhcl8kMS0kX2FtX3Rvb2xzfQotKyMgRG8gbm90IGZvbGQgdGhlIGFib3ZlIHR3byBsaW5l IGludG8gb25lLCBiZWNhdXNlIFRydTY0IHNoIGFuZAotKyMgU29sYXJpcyBzaCB3aWxsIG5vdCBn cm9rIHNwYWNlcyBpbiB0aGUgcmhzIG9mIGAtJy4KLStmb3IgX2FtX3Rvb2wgaW4gJF9hbV90b29s cwotK2RvCi0rICBjYXNlICRfYW1fdG9vbCBpbgotKyAgZ251dGFyKQotKyAgICBmb3IgX2FtX3Rh ciBpbiB0YXIgZ251dGFyIGd0YXI7Ci0rICAgIGRvCi0rICAgICAgQU1fUlVOX0xPRyhbJF9hbV90 YXIgLS12ZXJzaW9uXSkgJiYgYnJlYWsKLSsgICAgZG9uZQotKyAgICBhbV9fdGFyPSIkX2FtX3Rh ciAtLWZvcm1hdD1tNF9pZihbJDFdLCBbcGF4XSwgW3Bvc2l4XSwgWyQxXSkgLWNoZiAtICInIiQk dGFyZGlyIicKLSsgICAgYW1fX3Rhcl89IiRfYW1fdGFyIC0tZm9ybWF0PW00X2lmKFskMV0sIFtw YXhdLCBbcG9zaXhdLCBbJDFdKSAtY2hmIC0gIiciJHRhcmRpciInCi0rICAgIGFtX191bnRhcj0i JF9hbV90YXIgLXhmIC0iCi0rICAgIDs7Ci0rICBwbGFpbnRhcikKLSsgICAgIyBNdXN0IHNraXAg R05VIHRhcjogaWYgaXQgZG9lcyBub3Qgc3VwcG9ydCAtLWZvcm1hdD0gaXQgZG9lc24ndCBjcmVh dGUKLSsgICAgIyB1c3RhciB0YXJiYWxsIGVpdGhlci4KLSsgICAgKHRhciAtLXZlcnNpb24pID4v ZGV2L251bGwgMj4mMSAmJiBjb250aW51ZQotKyAgICBhbV9fdGFyPSd0YXIgY2hmIC0gIiQkdGFy ZGlyIicKLSsgICAgYW1fX3Rhcl89J3RhciBjaGYgLSAiJHRhcmRpciInCi0rICAgIGFtX191bnRh cj0ndGFyIHhmIC0nCi0rICAgIDs7Ci0rICBwYXgpCi0rICAgIGFtX190YXI9J3BheCAtTCAteCAk MSAtdyAiJCR0YXJkaXIiJwotKyAgICBhbV9fdGFyXz0ncGF4IC1MIC14ICQxIC13ICIkdGFyZGly IicKLSsgICAgYW1fX3VudGFyPSdwYXggLXInCi0rICAgIDs7Ci0rICBjcGlvKQotKyAgICBhbV9f dGFyPSdmaW5kICIkJHRhcmRpciIgLXByaW50IHwgY3BpbyAtbyAtSCAkMSAtTCcKLSsgICAgYW1f X3Rhcl89J2ZpbmQgIiR0YXJkaXIiIC1wcmludCB8IGNwaW8gLW8gLUggJDEgLUwnCi0rICAgIGFt X191bnRhcj0nY3BpbyAtaSAtSCAkMSAtZCcKLSsgICAgOzsKLSsgIG5vbmUpCi0rICAgIGFtX190 YXI9ZmFsc2UKLSsgICAgYW1fX3Rhcl89ZmFsc2UKLSsgICAgYW1fX3VudGFyPWZhbHNlCi0rICAg IDs7Ci0rICBlc2FjCi0rCi0rICAjIElmIHRoZSB2YWx1ZSB3YXMgY2FjaGVkLCBzdG9wIG5vdy4g IFdlIGp1c3Qgd2FudGVkIHRvIGhhdmUgYW1fX3RhcgotKyAgIyBhbmQgYW1fX3VudGFyIHNldC4K LSsgIHRlc3QgLW4gIiR7YW1fY3ZfcHJvZ190YXJfJDF9IiAmJiBicmVhawotKwotKyAgIyB0YXIv dW50YXIgYSBkdW1teSBkaXJlY3RvcnksIGFuZCBzdG9wIGlmIHRoZSBjb21tYW5kIHdvcmtzCi0r ICBybSAtcmYgY29uZnRlc3QuZGlyCi0rICBta2RpciBjb25mdGVzdC5kaXIKLSsgIGVjaG8gR3Jl cE1lID4gY29uZnRlc3QuZGlyL2ZpbGUKLSsgIEFNX1JVTl9MT0coW3RhcmRpcj1jb25mdGVzdC5k aXIgJiYgZXZhbCAkYW1fX3Rhcl8gPmNvbmZ0ZXN0LnRhcl0pCi0rICBybSAtcmYgY29uZnRlc3Qu ZGlyCi0rICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LnRhcjsgdGhlbgotKyAgICBBTV9SVU5fTE9HKFsk YW1fX3VudGFyIDxjb25mdGVzdC50YXJdKQotKyAgICBncmVwIEdyZXBNZSBjb25mdGVzdC5kaXIv ZmlsZSA+L2Rldi9udWxsIDI+JjEgJiYgYnJlYWsKLSsgIGZpCi0rZG9uZQotK3JtIC1yZiBjb25m dGVzdC5kaXIKLSsKLStBQ19DQUNIRV9WQUwoW2FtX2N2X3Byb2dfdGFyXyQxXSwgW2FtX2N2X3By b2dfdGFyXyQxPSRfYW1fdG9vbF0pCi0rQUNfTVNHX1JFU1VMVChbJGFtX2N2X3Byb2dfdGFyXyQx XSldKQotK0FDX1NVQlNUKFthbV9fdGFyXSkKLStBQ19TVUJTVChbYW1fX3VudGFyXSkKLStdKSAj IF9BTV9QUk9HX1RBUgotKwotK200X2luY2x1ZGUoW2NvbmZpZy9heF9ib29zdC5tNF0pCi0rbTRf aW5jbHVkZShbY29uZmlnL2F4X215c3FsLm00XSkKLSttNF9pbmNsdWRlKFtjb25maWcvYXhfb3Jh Y2xlX29jaS5tNF0pCi0rbTRfaW5jbHVkZShbY29uZmlnL2F4X3Bvc3RncmVzcWwubTRdKQotK200 X2luY2x1ZGUoW2NvbmZpZy9jcHB1bml0Lm00XSkKLSttNF9pbmNsdWRlKFtjb25maWcvbGlidG9v bC5tNF0pCi0rbTRfaW5jbHVkZShbY29uZmlnL2x0b3B0aW9ucy5tNF0pCi0rbTRfaW5jbHVkZShb Y29uZmlnL2x0c3VnYXIubTRdKQotK200X2luY2x1ZGUoW2NvbmZpZy9sdHZlcnNpb24ubTRdKQot K200X2luY2x1ZGUoW2NvbmZpZy9sdH5vYnNvbGV0ZS5tNF0pCi1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svQVVUSE9SUyBzb2NpLTMuMC4wX3RyZXAzMDAvQVVUSE9SUwotLS0tIHNvY2ktMy4w LjBfNC1wYWNrL0FVVEhPUlMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsr KyBzb2NpLTMuMC4wX3RyZXAzMDAvQVVUSE9SUwkyMDA5LTA0LTE2IDE5OjM3OjEwLjAwMDAwMDAw MCArMDIwMAotQEAgLTAsMCArMSw5IEBACi0rCi0rRGF2aWQgQ291cnRuZXksIERldmVsb3Blciwg ZGFjb3VydG5leSBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKLStNYXRldXN6IExvc2tvdCwgRGV2 ZWxvcGVyLCBtbG9za290IGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAotK01hY2llaiBTb2JjemFr LCBBZG1pbiBQcm9qZWN0IE1hbmFnZXIsIG1zb2JjemFrIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5l dAotK1Bhd2VsIEFsZWtzYW5kZXIgRmVkb3J5bnNraSwgRGV2ZWxvcGVyLCBwZmVkb3IgYXQgdXNl cnMuc291cmNlZm9yZ2UubmV0Ci0rUmFmYWwgQm9icm93c2tpLCBEZXZlbG9wZXIsIHJib2JybyBh dCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKLStKZWFuLU1hcmMsIERldmVsb3Blciwgc2lkanRhbCBh dCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKLStTdGVwaGVuIEh1dHRvbiwgRGV2ZWxvcGVyLCBzdGVw aGVuaHV0dG9uIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAotKwotZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL2J1aWxkL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9NYWtl ZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL01ha2VmaWxlLmFtCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxk L01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDguMDAwMDAwMDAwICswMjAwCi1AQCAtMCww ICsxLDcgQEAKLSsjIyBidWlsZCBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIp L01ha2VmaWxlLmNvbW1vbgotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4K LSsKLStTVUJESVJTID0gdW5peCBtc3ZjODAKLSsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9idWlsZC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUuaW4K LS0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9NYWtlZmls ZS5pbgkyMDEwLTAxLTIzIDE0OjQ0OjUxLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw2MTYg QEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtl ZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQs IDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAz LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9u IHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZp Y2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQg YnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNF VF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFD S0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJk aXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2Rpcikv QFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBB UkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0 Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NS SVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEp Ci0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxM ID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNU QUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRf dHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9 IFJFQURNRSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJ JCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBidWlsZAotK0FDTE9DQUxf TTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9j b25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMp ICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxs ZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIp L3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFU SF9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLStSRUNVUlNJVkVfVEFSR0VU UyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1s LXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5z dGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0 bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1 cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxs Y2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJ cHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VU UyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFu LXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0FNX1JFQ1VSU0lWRV9UQVJH RVRTID0gJChSRUNVUlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAotKwkkKFJFQ1VSU0lWRV9D TEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAotKwlkaXN0 ZGlyCi0rRVRBR1MgPSBldGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNV QkRJUlMpCi0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVY SU5GT1MpICQoRVhUUkFfRElTVCkKLSthbV9fcmVsYXRpdml6ZSA9IFwKLSsgIGRpcjA9YHB3ZGA7 IFwKLSsgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAotKyAgc2VkX3Jlc3Q9 J3MsXlteL10qLyosLCc7IFwKLSsgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBc Ci0rICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKLSsgIHdoaWxlIHRlc3QgLW4gIiQk ZGlyMSI7IGRvIFwKLSsgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2Zp cnN0ImA7IFwKLSsgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKLSsgICAgICBp ZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4gXAotKyAgICAgICAgZGlyMj1gZWNobyAiJCRk aXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCi0rICAgICAgICBkaXIwPWBl Y2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKLSsgICAgICBlbHNlIFwK LSsgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsg XAotKyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKLSsgICAg ICAgICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICAg ICAgICBlbHNlIFwKLSsgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAotKyAgICAgICAgZmk7 IFwKLSsgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCi0rICAgICAgZmk7IFwKLSsg ICAgZmk7IFwKLSsgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJg OyBcCi0rICBkb25lOyBcCi0rICByZWxkaXI9IiQkZGlyMiIKLStBQ0xPQ0FMID0gQEFDTE9DQUxA Ci0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0r QVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9 IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVf TElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9P U1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVB TVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJP T1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9M SUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNf TElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdF WF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJP T1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05B TFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9U SFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9 IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VS SUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStD RkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0r Q1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQ VU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZF UlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQ UEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0r Q1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJ UkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19D ID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdS RVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5F UklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0g QEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RB VEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQ VCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9T VFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpT ID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBP ID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFL RUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9 IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElS UyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJT SU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStP QkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBP UkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStP UkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVS U0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9 IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQ QUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tB R0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdF X1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NF UEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0g QFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQ T1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9 IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxf VkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNF QAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExA Ci0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlT UUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BP U1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVE QAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAot K1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fi c19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVp bGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBA YWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFj X2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdf ZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190 YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5k aXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVp bGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5k b3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBA ZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZf b2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZp ZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBl eGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlh cyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9z dF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJA Ci0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0 YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0g QGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2Fs ZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9F Q0hPQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1 ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBw cmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1l QAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2Vk X29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNk aXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRf YWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWls ZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQ UEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rTUFJTlRBSU5FUkNM RUFORklMRVMgPSBNYWtlZmlsZS5pbgotK1NVQkRJUlMgPSB1bml4IG1zdmM4MAotK2FsbDogYWxs LXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNy Y2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29u ZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29u ZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkg ICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9 OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAn IGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvTWFrZWZpbGUnOyBc Ci0rCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBi dWlsZC9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIp L01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycg aW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAg IGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQo c3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBm aWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0 dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMp Ci0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMp Ci0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoYW1f X2FjbG9jYWxfbTRfZGVwcyk6Ci0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICou bG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rIyBUaGlz IGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBj YW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2gg dGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJs ZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxl IGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAg KHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlv dSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVz IG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlA ZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBc Ci0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayop IGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3Nl ZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJN YWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g Ii4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIk JHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQi OyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJ ZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0 IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsPSBm YWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBj YXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNv bT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsg XAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0q KSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7 OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkg IGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRz dWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBc Ci0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRp ciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7 IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207 IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9 JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3Vi ZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMp JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8 ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBc Ci0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJ TEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMp JzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAi JCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAg ZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBc Ci0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7 IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzog dGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVT KSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsg XAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAy PiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBl bXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwK LSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHNldCAi JCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsg XAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FS R1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8 fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0r CSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdT KSBcCi0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdT KSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAg ICQkdW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3Rh Z3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykg XAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FS R1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NG TEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVy ZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiAkKGFtX19jZCkg JCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgot KwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMg R1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVj aG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNy Y2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBm aWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4k JHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQo dG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8q KSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFk O3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBc Ci0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVz dCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIp OyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVj aG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAt ZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8k JGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0r CSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRk ICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAi JChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8k JGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0r CSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8 IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUi IFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAg ICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBc Ci0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBl eGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRo ZW4gOjsgZWxzZSBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3Vi ZGlyIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld19kaXN0ZGlyPSQk cmVsZGlyOyBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwK LSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxk aXI7IFwKLSsJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGly IiBcXCI7IFwKLSsJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBf bGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKLSsJICAgICgk KGFtX19jZCkgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBc Ci0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAg ZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJ YW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCi0rCSAg ICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25l Ci0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1h a2VmaWxlCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJz LWFtOgotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0YWxs LWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0r dW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0r CUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFt Ci0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1zdHJp cDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExf U1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJ UF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJ UCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNU UklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmlj OgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklM RVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJLXRlc3QgLiA9ICIkKHNyY2Rp cikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChD T05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgot KwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2Ui Ci0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29s cyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBy bSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsK LStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0r Ci0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rp c3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKLSsK LStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNp dmUKLSsKLStodG1sLWFtOgotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToK LSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vy c2l2ZQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0 YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0r Ci0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZv LWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1 cnNpdmUKLSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJl Y3Vyc2l2ZQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21h aW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtl ZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFu LWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9z dGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAotKwot K3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJzaXZlCi0r Ci0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVB Tl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAotKwlpbnN0 YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKLSsKLSsuUEhPTlk6ICQoUkVDVVJT SVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJ YWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRv b2wgXAotKwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmlj IFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFt IGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFs bC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGlu c3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1s LWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxs LXBkZiBpbnN0YWxsLXBkZi1hbSBcCi0rCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxs LXN0cmlwIGluc3RhbGxjaGVjayBcCi0rCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0 YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj IG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29s IHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBcCi0rCXVuaW5zdGFsbCB1 bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMu NjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lz ZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsu Tk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9N YWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5h bQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUuYW0JMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv YnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4LjAwMDAwMDAw MCArMDIwMAotQEAgLTAsMCArMSwxMSBAQAotKyMjIGJ1aWxkL21zdmM4MC9kbGwgc3ViLWRpcmVj dG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLStNQUlOVEFJ TkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rRVhUUkFfRElTVCA9IGJ1aWxkLmJhdCBl bXB0eS52Y3Byb2ogbWFrZXRlc3QubWFrIG9kYmNfdGVzdF9wb3N0Z3Jlc3FsLnZjcHJvaiBcCi0r CXBvc3RncmVzcWxfdGVzdC52Y3Byb2ogc3FsaXRlM190ZXN0LnZjcHJvaiBjbGVhbi5iYXQgXAot KwlmaXJlYmlyZF90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfYWNjZXNzLnZjcHJvaiBvZGJjLnZjcHJv aiBcCi0rCXBvc3RncmVzcWwudmNwcm9qIHNxbGl0ZTMudmNwcm9qIGNvcmUudmNwcm9qIGZpcmVi aXJkLnZjcHJvaiBcCi0rCW9kYmNfdGVzdF9tc3NxbC52Y3Byb2ogb3JhY2xlX3Rlc3QudmNwcm9q IHNvY2lfZGxsLnNsbiBcCi0rCWVtcHR5X3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9teXNxbC52Y3By b2ogb3JhY2xlLnZjcHJvaiBzb2NpX2RsbC52c3Byb3BzCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvYnVp bGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21z dmM4MC9kbGwvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5pbgkyMDEw LTAxLTIzIDE0OjQ0OjUxLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw0MjAgQEAKLSsjIE1h a2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4K LSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5 OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAy MDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0r IyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkg YW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywg YXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3 aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAot K1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStw a2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxp YmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VA Ci0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAm JiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFs bF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChp bnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNm b3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BS RV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgot K1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9 IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGly KS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01h a2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IGJ1aWxkL21zdmM4MC9kbGwKLStBQ0xPQ0FMX000ID0g JCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlz cWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmln dXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENP TkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMg PSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2Np L2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklM RVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rRElTVEZJTEVTID0gJChESVNUX0NP TU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FM ID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBA QVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9N QUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09T VF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RF TV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBC T09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9N UElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1Rf TVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9H UkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAK LStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJ T05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0g QEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJ QkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9U RVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9P U1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9 IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQEND REVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBA Q1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9D T05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AK LStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hY Q1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBA Q1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQ RElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBC SU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBF Q0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBG R1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lP TkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9 IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJ TlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0g PSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFH U0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElC VE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJ Qk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01Z U1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJA Ci0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AK LStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0g QE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFD TEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJ X0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09S QUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xA Ci0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JV R1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9O QU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFN RSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lP TkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0r UEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FM X0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVT UUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0g QFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0g QFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hF TEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVE QAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklF REAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9B RF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1 aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0g QGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0r YWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9E VU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0r YW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1 b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2Jp bmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRf YWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AK LStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAot K2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZm X29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHln ZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVj X3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RA Ci0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hv c3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGly ID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5m b2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tA Ci0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxl ZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRf RUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9w QAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAot K3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStz ZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3Ny Y2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlh cyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4 QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3Jj ZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0r TUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotK0VYVFJBX0RJU1QgPSBidWlsZC5i YXQgZW1wdHkudmNwcm9qIG1ha2V0ZXN0Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2og XAotKwlwb3N0Z3Jlc3FsX3Rlc3QudmNwcm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0 IFwKLSsJZmlyZWJpcmRfdGVzdC52Y3Byb2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52 Y3Byb2ogXAotKwlwb3N0Z3Jlc3FsLnZjcHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBm aXJlYmlyZC52Y3Byb2ogXAotKwlvZGJjX3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0LnZj cHJvaiBzb2NpX2RsbC5zbG4gXAotKwllbXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwu dmNwcm9qIG9yYWNsZS52Y3Byb2ogc29jaV9kbGwudnNwcm9wcwotKwotK2FsbDogYWxsLWFtCi0r Ci0rLlNVRkZJWEVTOgotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmls ZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykK LSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcykn IGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBp ZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAg ZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3Jj ZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlJzsgXAot KwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgYnVp bGQvbXN2YzgwL2RsbC9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTog JChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBj YXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICop IFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcu c3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAk KGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2Nv bmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBF TkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmln dXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0r CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAotKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJ LXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0r dGFnczogVEFHUwotK1RBR1M6Ci0rCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6Ci0rCi0rCi0rZGlz dGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNl ZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQo dG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSck KERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBl Y2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIg XAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJg OyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8g IiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtz LC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3Ig ZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0 IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVz dCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQg LWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmls ZSI7IHRoZW4gXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1w ZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBp ZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVu IFwKLSsJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8 IGV4aXQgMTsgXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1w ZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBj cCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxz ZSBcCi0rCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgY3AgLXAg JCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkg IGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLWFtCi0rYWxs LWFtOiBNYWtlZmlsZQotK2luc3RhbGxkaXJzOgotK2luc3RhbGw6IGluc3RhbGwtYW0KLStpbnN0 YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFt Ci0rdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsK LStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dS QU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSki IElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0r CSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5z dGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0 Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0g LWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0 IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFO X1ZQQVRIX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRo aXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAi aXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWls ZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlO VEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tYW0KLSsKLStjbGVhbi1hbTogY2xlYW4t Z2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0 Y2xlYW4tYW0KLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0 Y2xlYW4tZ2VuZXJpYwotKwotK2R2aTogZHZpLWFtCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0 bWwtYW0KLSsKLStodG1sLWFtOgotKwotK2luZm86IGluZm8tYW0KLSsKLStpbmZvLWFtOgotKwot K2luc3RhbGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KLSsKLStp bnN0YWxsLWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBp bnN0YWxsLWh0bWwtYW0KLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBp bnN0YWxsLWluZm8tYW0KLSsKLStpbnN0YWxsLWluZm8tYW06Ci0rCi0raW5zdGFsbC1tYW46Ci0r Ci0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCi0rCi0raW5zdGFsbC1wZGYtYW06Ci0rCi0r aW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFs bGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJ LXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50 YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwot K21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wK LSsKLStwZGY6IHBkZi1hbQotKwotK3BkZi1hbToKLSsKLStwczogcHMtYW0KLSsKLStwcy1hbToK LSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAot KwotKy5QSE9OWTogYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmlj IGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFu LWxpYnRvb2wgZGlzdGRpciBkdmkgXAotKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1h bSBpbnN0YWxsIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGlu c3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1h bSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZvIGluc3RhbGwt aW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRmLWFtIGluc3Rh bGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKLSsJaW5zdGFsbGNoZWNrIGluc3Rh bGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHlj bGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQot KwotK0BTRVRfTUFLRUAKLSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1h a2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxp bWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmFtIHNv Y2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmFtCi0tLS0gc29jaS0z LjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAv bGliL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDcuMDAwMDAwMDAwICswMjAwCi1AQCAt MCwwICsxLDExIEBACi0rIyMgYnVpbGQvbXN2YzgwL2xpYiBzdWItZGlyZWN0b3J5Ci0raW5jbHVk ZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotKwotK01BSU5UQUlORVJDTEVBTkZJTEVT ID0gTWFrZWZpbGUuaW4KLSsKLStFWFRSQV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBt YWtldGVzdC5tYWsgb2RiY190ZXN0X3Bvc3RncmVzcWwudmNwcm9qIFwKLSsJcG9zdGdyZXNxbF90 ZXN0LnZjcHJvaiBzcWxpdGUzX3Rlc3QudmNwcm9qIGNsZWFuLmJhdCBcCi0rCWZpcmViaXJkX3Rl c3QudmNwcm9qIG9kYmNfdGVzdF9hY2Nlc3MudmNwcm9qIG9kYmMudmNwcm9qIFwKLSsJcG9zdGdy ZXNxbC52Y3Byb2ogc3FsaXRlMy52Y3Byb2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwK LSsJb2RiY190ZXN0X21zc3FsLnZjcHJvaiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9saWIuc2xu IFwKLSsJZW1wdHlfdGVzdC52Y3Byb2ogb2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNw cm9qIHNvY2lfbGliLnZzcHJvcHMKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9t c3ZjODAvbGliL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvbGli L01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2xpYi9NYWtl ZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6 NTEuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDQyMCBAQAotKyMgTWFrZWZpbGUuaW4gZ2Vu ZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3Vy ZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5 OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw MDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRo aXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJp YnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRo aXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBAc3Jj ZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIg PSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FH RUAKLStwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBD RFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFs bF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0g PSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1j Ci0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dy YW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6 Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFM TCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hv c3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFt ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9u Ci0rc3ViZGlyID0gYnVpbGQvbXN2YzgwL2xpYgotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIp L2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9f Y29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVO REVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9z aCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStD T05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0rU09VUkNF UyA9Ci0rRElTVF9TT1VSQ0VTID0KLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1Rf U09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAK LStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStB VVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0g QEFXS0AKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9M SUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09T VF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFN U19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX01QSV9MSUIgPSBAQk9P U1RfTVBJX0xJQkAKLStCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJ QkAKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19M SUJACi0rQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAotK0JPT1NUX1JFR0VY X0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9P U1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFM U19MSUJACi0rQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAotK0JPT1NUX1RI UkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JL X0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0g QEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJ QUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NG TEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStD UFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBV TklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVS U0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQ QAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStD WUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQRElS QAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0RVTVBCSU4gPSBARFVNUEJJTkAKLStFQ0hPX0Mg PSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JF UCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0ZHUkVQID0gQEZHUkVQQAotK0dFTkVS SUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBA R1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFU QUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBU ID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NU UklQX1BST0dSQU1ACi0rTEQgPSBATERACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMg PSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xJUE8g PSBATElQT0AKLStMTl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AKLStNQUtF SU5GTyA9IEBNQUtFSU5GT0AKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0g QE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKLStNWVNRTF9ESVJT ID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAotK01ZU1FMX1ZFUlNJ T04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09C SkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9S QUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09S QUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJT SU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0g QE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBB Q0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FH RV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0Vf VEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQ QVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBA UEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BP U1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0g QFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9W RVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VA Ci0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAK LStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNR TF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9T VEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURA Ci0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0r VkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJz X3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWls ZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBh Y19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNf Y3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19k b3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3Rh ciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRp ckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWls ZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRv ciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBk YXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9v a0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlk aXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4 ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFz ID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0 X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAK LStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3Rh bGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBA bGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxl ZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VD SE9ACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVk ZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHBy ZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVA Ci0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRf b2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2Rp ckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9h bGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxk ZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQ RkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStNQUlOVEFJTkVSQ0xF QU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rRVhUUkFfRElTVCA9IGJ1aWxkLmJhdCBlbXB0eS52Y3By b2ogbWFrZXRlc3QubWFrIG9kYmNfdGVzdF9wb3N0Z3Jlc3FsLnZjcHJvaiBcCi0rCXBvc3RncmVz cWxfdGVzdC52Y3Byb2ogc3FsaXRlM190ZXN0LnZjcHJvaiBjbGVhbi5iYXQgXAotKwlmaXJlYmly ZF90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfYWNjZXNzLnZjcHJvaiBvZGJjLnZjcHJvaiBcCi0rCXBv c3RncmVzcWwudmNwcm9qIHNxbGl0ZTMudmNwcm9qIGNvcmUudmNwcm9qIGZpcmViaXJkLnZjcHJv aiBcCi0rCW9kYmNfdGVzdF9tc3NxbC52Y3Byb2ogb3JhY2xlX3Rlc3QudmNwcm9qIHNvY2lfbGli LnNsbiBcCi0rCWVtcHR5X3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9teXNxbC52Y3Byb2ogb3JhY2xl LnZjcHJvaiBzb2NpX2xpYi52c3Byb3BzCi0rCi0rYWxsOiBhbGwtYW0KLSsKLSsuU1VGRklYRVM6 Ci0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3Ny Y2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBp biAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAg KiQkZGVwKikgXAotKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7 IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0r CSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVU T01BS0UpIC0tZ251IGJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAk KHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBidWlsZC9tc3ZjODAvbGli L01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFr ZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBc Ci0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNo byAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJk aXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVz X21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czog JCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJ Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo Ci0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJ Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo Ci0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChhbV9fYWNs b2NhbF9tNF9kZXBzKToKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwot KwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLSt0YWdzOiBUQUdTCi0r VEFHUzoKLSsKLStjdGFnczogQ1RBR1MKLStDVEFHUzoKLSsKLSsKLStkaXN0ZGlyOiAkKERJU1RG SUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRc XCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIg fCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7 IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBk b25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1l ICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAk JGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVz IiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcg fCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlz dF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0 aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZp bGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSok JCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCi0r CSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhl YyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChz cmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBj cCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0r CSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhl YyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1mcFIgJCRkLyQk ZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRl c3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIk KGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9u ZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stYW0KLSthbGwtYW06IE1ha2VmaWxl Ci0raW5zdGFsbGRpcnM6Ci0raW5zdGFsbDogaW5zdGFsbC1hbQotK2luc3RhbGwtZXhlYzogaW5z dGFsbC1leGVjLWFtCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KLSt1bmluc3RhbGw6 IHVuaW5zdGFsbC1hbQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01B S0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVj azogaW5zdGFsbGNoZWNrLWFtCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VG TEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBp bnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJ UF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklO U1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5 Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmlj OgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19D TEVBTl9GSUxFUykKLSsJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklH X0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMp Ci0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlz IGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZp bGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3Qg LXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJ TEVTKQotK2NsZWFuOiBjbGVhbi1hbQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFu LWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQotKwkt cm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmlj Ci0rCi0rZHZpOiBkdmktYW0KLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1hbQotKwotK2h0 bWwtYW06Ci0rCi0raW5mbzogaW5mby1hbQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRh LWFtOgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQotKwotK2luc3RhbGwtZHZpLWFt OgotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1h bQotKwotK2luc3RhbGwtaHRtbC1hbToKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1h bQotKwotK2luc3RhbGwtaW5mby1hbToKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBk ZjogaW5zdGFsbC1wZGYtYW0KLSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBp bnN0YWxsLXBzLWFtCi0rCi0raW5zdGFsbC1wcy1hbToKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0r Ci0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQotKwktcm0gLWYgTWFrZWZp bGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1n ZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4t YW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRm LWFtCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1hbQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFs bC1hbToKLSsKLSsuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiBh bGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9v bCBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0 ZGlyIGR2aSBcCi0rCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5z dGFsbC1hbSBcCi0rCWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5z dGFsbC1kdmktYW0gXAotKwlpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRt bCBpbnN0YWxsLWh0bWwtYW0gXAotKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3Rh bGwtbWFuIGluc3RhbGwtcGRmIFwKLSsJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxs LXBzLWFtIGluc3RhbGwtc3RyaXAgXAotKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGlu c3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMg bW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wg cGRmIHBkZi1hbSBwcyBwcy1hbSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9NQUtF QAotKwotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhw b3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNW IGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAv YnVpbGQvbXN2YzgwL01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2 YzgwL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysg c29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5 OjM3OjA4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw4IEBACi0rIyMgYnVpbGQvbXN2Yzgw IHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0r Ci0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK0VYVFJBX0RJU1QgPSBS RUFETUUudHh0IHNvY2kudnNwcm9wcwotKwotK1NVQkRJUlMgPSBkbGwgbGliCi1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJl cDMwMC9idWlsZC9tc3ZjODAvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWls ZC9tc3ZjODAvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL01ha2VmaWxlLmluCTIwMTAtMDEt MjMgMTQ6NDQ6NTEuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDYxNyBAQAotKyMgTWFrZWZp bGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMg QGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5Niwg MTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUs IDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIElu Yy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQv b3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBs b25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhv dXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rVlBB VEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2lu Y2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGly KS9AUEFDS0FHRUAKLStwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKLSth bV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNk Ci0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3No X1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3Rh bGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0g PSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lO U1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJF X1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1 aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01h a2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZp bGUuY29tbW9uCi0rc3ViZGlyID0gYnVpbGQvbXN2YzgwCi0rQUNMT0NBTF9NNCA9ICQodG9wX3Ny Y2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1 bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3Vn YXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwot K2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVf REVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0 YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcu aAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KLStT T1VSQ0VTID0KLStESVNUX1NPVVJDRVMgPQotK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vy c2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJzaXZlIGlu Zm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2aS1yZWN1 cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUg aW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxs LXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVjay1yZWN1cnNp dmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1cnNpdmUg dW5pbnN0YWxsLXJlY3Vyc2l2ZQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xl YW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1h aW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VS U0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCi0rCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6 LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCi0rCWRpc3RkaXIKLStFVEFHUyA9 IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKLStESVNU RklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRS QV9ESVNUKQotK2FtX19yZWxhdGl2aXplID0gXAotKyAgZGlyMD1gcHdkYDsgXAotKyAgc2VkX2Zp cnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCi0rICBzZWRfcmVzdD0ncyxeW14vXSovKiws JzsgXAotKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKLSsgIHNlZF9idXRs YXN0PSdzLC8qW14vXSokJCwsJzsgXAotKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAot KyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAg ICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAotKyAgICAgIGlmIHRlc3QgIiQkZmly c3QiID0gIi4uIjsgdGhlbiBcCi0rICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1l ICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKLSsgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIg fCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAotKyAgICAgIGVsc2UgXAotKyAgICAgICAgZmly c3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgICAgICBp ZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAotKyAgICAgICAgICBkaXIyPWBl Y2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgICAgICAgIGVsc2UgXAot KyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCi0rICAgICAgICBmaTsgXAotKyAgICAgICAg ZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKLSsgICAgICBmaTsgXAotKyAgICBmaTsgXAotKyAg ICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgIGRvbmU7 IFwKLSsgIHJlbGRpcj0iJCRkaXIyIgotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBB TVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0g QEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStCT09T VF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1Rf REFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVN X0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACi0rQk9P U1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAK LStCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKLStCT09TVF9Q Uk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1Rf UFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09T VF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpB VElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9P U1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBA Qk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09T VF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJ T05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJ QkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxB R1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFH UyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AK LStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBV TklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1P REUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBA Q1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RTWU1VVElM ID0gQERTWU1VVElMQAotK0RVTVBCSU4gPSBARFVNUEJJTkAKLStFQ0hPX0MgPSBARUNIT19DQAot K0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JFUCA9IEBFR1JFUEAK LStFWEVFWFQgPSBARVhFRVhUQAotK0ZHUkVQID0gQEZHUkVQQAotK0dFTkVSSUNfTElCUkFSWV9W RVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNU QUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxM X1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExf U0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1A Ci0rTEQgPSBATERACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AK LStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xJUE8gPSBATElQT0AKLStM Tl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AKLStNQUtFSU5GTyA9IEBNQUtF SU5GT0AKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFH U0AKLStNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJ UlNACi0rTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxf VkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JK RFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAot K09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERG TEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNM RV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0r UEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQ T1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBA UEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQ QUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBB VEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAot K1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElS UyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxf TERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JB TkxJQiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNF REAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURF UlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JV UklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBA U1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBW RVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBh YnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNf dG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSth Y19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAK LSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xl YWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFy QAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9 IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVp bGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92 ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2Rh dGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIg PSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGly QAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAot K2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxp YXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3Rf dmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGly ID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5z dGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xp YmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fs c3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VDSE9ACi0rbWFuZGly ID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRp bmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9n cmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBA cHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVk c3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25m ZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3Bf YnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9i dWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQo dG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1h a2VmaWxlLmluCi0rRVhUUkFfRElTVCA9IFJFQURNRS50eHQgc29jaS52c3Byb3BzCi0rU1VCRElS UyA9IGRsbCBsaWIKLSthbGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rJChzcmNk aXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFr ZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8g XAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikg XAotKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhp dCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsg XAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0t Z251IGJ1aWxkL21zdmM4MC9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2Rpcikg JiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IGJ1aWxkL21zdmM4MC9NYWtlZmlsZQotKy5QUkVD SU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1 aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3Rh dHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBm aWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9j b25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVz YWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29u ZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2Rp cikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6 ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0r Ci0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29s OgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVj dG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBh bmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRv IGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGlu ZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0 YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhl IE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgy KSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFu ZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAx JzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAot KwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7 IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBl Y2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRz dWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRv dF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBl bHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAo JChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFy Z2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIk JGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIk JHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChS RUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0r CWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAq PSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkg IGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAot KwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElS UyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2 PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAg Zmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8 IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkg IGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwK LSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwK LSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9j YWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16 ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2Nk KSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0r Y3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxp c3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChI RUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJD RVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1m SUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFE RVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMp ICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1l dGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNs dWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNl IFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0r CWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAot KwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEg LWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlv bj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9 JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlx dWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBl Y2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJ ICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVO RCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAot KwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVu IDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7 IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdT RkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICIkJEAiICQk dW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1f RVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICQkdW5pcXVlOyBcCi0rCSAgZmk7 IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVS UykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAk KExJU1ApCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklM RVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAt ZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0r CSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsg fSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50 IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKLSsJICB8 fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBc Ci0rCSAgICAgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1 aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCi0rCSAg JiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgotKwotK2Rpc3RjbGVhbi10YWdzOgot Kwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3Rk aXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQg J3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRv cF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChE SVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNo byAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwK LSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsg XAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIk JGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywv W14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZp bGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAt ZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3Qg LWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1l ICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUi OyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVy bSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYg dGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBc Ci0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBl eGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVy bSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3Ag LWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2Ug XAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQk ZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBm aTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0r CSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1Ap ICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAot Kwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICBk aXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAotKwkgICAgJChhbV9f cmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBkaXIx PSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZp emUpOyBcCi0rCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGVjaG8gIiAo Y2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3 X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKLSsJICAgIGVjaG8g IiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3Nr aXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKLSsJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYg XAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3Rk aXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRp ciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNr PTogXAotKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkg ICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQot K2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlCi0raW5zdGFsbGRpcnM6 IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFtOgotK2luc3RhbGw6IGluc3Rh bGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5z dGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwt cmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBp bnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01B S0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJ ICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9T VFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8g IklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9z dGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5l cmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJ R19DTEVBTl9GSUxFUykKLSsJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09O RklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklM RVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5k IGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVz IGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRl c3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVB TkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2Vu ZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xl YW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0g ZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUK LSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStodG1sLWFtOgotKwot K2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06 Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZHZp LWFtOgotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRt bC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0 YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFu OgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBk Zi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwt cHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50 YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xl YW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHlj bGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNs ZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQot KwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0 YWxsLWFtOgotKwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lW RV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAg dGFncy1yZWN1cnNpdmUKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQo UkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBjaGVjayBjaGVj ay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwljdGFncyBjdGFncy1y ZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRv b2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGlu Zm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1k YXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3Rh bGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0r CWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBc Ci0rCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBc Ci0rCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVy LWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNs ZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0g dGFncyB0YWdzLXJlY3Vyc2l2ZSBcCi0rCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VU X01BS0VACi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5v dCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9y IFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAz MDAvYnVpbGQvdW5peC9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL3Vu aXgvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3 OjA4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwxMSBAQAotKyMjIGJ1aWxkL3VuaXggc3Vi LWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLStN QUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rI0VYVFJBX0RJU1RfRk9SX1NP Q0lfQ09NUEFUSUJJTElUWSA9ICAuX2ZpbmQtYm9vc3QudGNsIC5fYnVpbGQtbXlzcWwudGNsIC5f YnVpbGQtcG9zdGdyZXNxbC50Y2wgLl9leGVjdXRlLnRjbCAuX2J1aWxkLWNvcmUudGNsIC5faW5z dGFsbC50Y2wgLl9wYXJzZS1wYXJhbWV0ZXJzLnRjbAotKwotK0VYVFJBX0RJU1QgPSBidWlsZC1j b3JlLnRjbCBidWlsZC1vcmFjbGUudGNsIGJ1aWxkLnRjbCBpbnN0YWxsLnRjbCBcCi0rCXBhcnNl LXBhcmFtZXRlcnMudGNsIGZpbmQtYm9vc3QudGNsIGJ1aWxkLW15c3FsLnRjbCBcCi0rCWJ1aWxk LXBvc3RncmVzcWwudGNsIGV4ZWN1dGUudGNsIFwKLSsJJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NP TVBBVElCSUxJVFkpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtl ZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgotLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL2J1aWxkL3VuaXgvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtl ZmlsZS5pbgkyMDEwLTAxLTIzIDE0OjQ0OjUxLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw0 MjAgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBN YWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5 OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0 ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0r QFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9A UEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2ds aWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2Rp cikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9T RVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0g NjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hf U0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RB VEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNU QUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5J TlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVp bGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1P TiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRv cF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IGJ1aWxkL3VuaXgKLStBQ0xPQ0FM X000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQo dG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2Rpcikv Y29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBz KSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFs bGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGly KS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBB VEhfRklMRVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rRElTVEZJTEVTID0gJChE SVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStB Q0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NP TkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0g QEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AK LStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklM RVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJ QiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStC T09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBA Qk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09T VF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9O X0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklB TElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNf TElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lT VEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1Rf VU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJA Ci0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9O X0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RF ID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxB R1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQ VU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRf TElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhA Ci0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxB R1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNA Ci0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0g QERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9f VCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JF UCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllf VkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExf REFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JB TUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BS T0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBA TERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wg PSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9 IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9Q QAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ19MSUIgPSBATVlTUUxf Q19MSUJACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xJQlMgPSBATVlTUUxf TElCU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1F RElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAK LStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFD TEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdT QAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBA T1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNL QUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFD S0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0Vf VEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0Vf VkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBF UkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NU R1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BP U1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJT SU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxF QVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VA Ci0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNf QlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJT X0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JF U1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0g QFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBA YWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxk ZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNk aXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSth Y19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1 ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBA YW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFy QAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBA YnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWls ZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxk ZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAK LStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0g QGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AK LStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0g QGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1 QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLSto dG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIg PSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0 ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0r bG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJA Ci0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBt a2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRm ZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9n cmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRp ckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGly QAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3Rhcmdl dF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRf cHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0 b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNk aXIpCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotKyNFWFRSQV9ESVNU X0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAgLl9maW5kLWJvb3N0LnRjbCAuX2J1aWxkLW15c3Fs LnRjbCAuX2J1aWxkLXBvc3RncmVzcWwudGNsIC5fZXhlY3V0ZS50Y2wgLl9idWlsZC1jb3JlLnRj bCAuX2luc3RhbGwudGNsIC5fcGFyc2UtcGFyYW1ldGVycy50Y2wKLStFWFRSQV9ESVNUID0gYnVp bGQtY29yZS50Y2wgYnVpbGQtb3JhY2xlLnRjbCBidWlsZC50Y2wgaW5zdGFsbC50Y2wgXAotKwlw YXJzZS1wYXJhbWV0ZXJzLnRjbCBmaW5kLWJvb3N0LnRjbCBidWlsZC1teXNxbC50Y2wgXAotKwli dWlsZC1wb3N0Z3Jlc3FsLnRjbCBleGVjdXRlLnRjbCBcCi0rCSQoRVhUUkFfRElTVF9GT1JfU09D SV9DT01QQVRJQklMSVRZKQotKwotK2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKyQoc3Jj ZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01h a2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRv IFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCop IFwKLSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4 aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7 IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAt LWdudSBidWlsZC91bml4L01ha2VmaWxlJzsgXAotKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAm JiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvdW5peC9NYWtlZmlsZQotKy5QUkVDSU9V UzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVz KikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxl c19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7 Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmln dXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2Rpcikv Y29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAk KGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0rCi0r bW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgot Kwktcm0gLXJmIC5saWJzIF9saWJzCi0rdGFnczogVEFHUwotK1RBR1M6Ci0rCi0rY3RhZ3M6IENU QUdTCi0rQ1RBR1M6Ci0rCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJp cD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJ dG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpd L1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1g Zm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUg InN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJp cC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJ ICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcv XC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVg IDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBp ZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNy Y2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRp cj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0 ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAotKwkgICAgICBmaW5kICIkKGRpc3Rk aXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7 IFwKLSsJICAgIGZpOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVz dCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRm aWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgICAgICBmaW5kICIkKGRpc3Rk aXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7 IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRp ciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQk ZmlsZSIgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwK LSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFt Ci0rY2hlY2s6IGNoZWNrLWFtCi0rYWxsLWFtOiBNYWtlZmlsZQotK2luc3RhbGxkaXJzOgotK2lu c3RhbGw6IGluc3RhbGwtYW0KLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQotK2luc3Rh bGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KLSsKLStp bnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhl Yy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQot K2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JB TT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIk KElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRl c3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNU UklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0r Y2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09O RklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCS10ZXN0 IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyki IHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQotKwotK21haW50YWluZXItY2xl YW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRh aW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJl IHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVB TkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4t YW0KLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFu LWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlz dGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYwotKwotK2R2aTogZHZpLWFtCi0r Ci0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtYW0KLSsKLStodG1sLWFtOgotKwotK2luZm86IGlu Zm8tYW0KLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2 aTogaW5zdGFsbC1kdmktYW0KLSsKLStpbnN0YWxsLWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMt YW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KLSsKLStpbnN0YWxsLWh0bWwt YW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KLSsKLStpbnN0YWxsLWluZm8t YW06Ci0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCi0r Ci0raW5zdGFsbC1wZGYtYW06Ci0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQotKwotK2lu c3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46 IG1haW50YWluZXItY2xlYW4tYW0KLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVh bi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNs ZWFuOiBtb3N0bHljbGVhbi1hbQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5l cmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1hbQotKwotK3BkZi1hbToKLSsK LStwczogcHMtYW0KLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6IGlu c3RhbGwtYW0gaW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogYWxsIGFsbC1hbSBjaGVjayBjaGVj ay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4gZGlz dGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGRpciBkdmkgXAotKwlkdmktYW0g aHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAotKwlpbnN0YWxs LWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKLSsJaW5z dGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwK LSsJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBc Ci0rCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlw IFwKLSsJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVy LWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNs ZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0g dW5pbnN0YWxsIHVuaW5zdGFsbC1hbQotKwotK0BTRVRfTUFLRUAKLSsKLSsjIFRlbGwgdmVyc2lv bnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgot KyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4 Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcv YXhfYm9vc3QubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9ib29zdC5tNAotLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9ib29zdC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfYm9vc3QubTQJ MjAxMC0wMS0yMyAxMzoyNzowNC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsNzU0IEBACi0r ZG5sIEBzeW5vcHNpcyBBWF9CT09TVChbTUlOSU1VTS1WRVJTSU9OXSwgW0FDVElPTi1JRi1GT1VO RF0sIFtBQ1RJT04tSUYtTk9ULUZPVU5EXSkKLStkbmwKLStkbmwgVGVzdCBmb3IgdGhlIEJvb3N0 IEMrKyBsaWJyYXJpZXMgb2YgYSBwYXJ0aWN1bGFyIHZlcnNpb24gKG9yIG5ld2VyKQotK2RubAot K2RubCBJZiBubyBwYXRoIHRvIHRoZSBpbnN0YWxsZWQgYm9vc3QgbGlicmFyeSBpcyBnaXZlbiB0 aGUgbWFjcm8KLStkbmwgc2VhcmNocyB1bmRlciAvdXNyLCAvdXNyL2xvY2FsLCBhbmQgL29wdCwg YW5kIGV2YWx1YXRlcyB0aGUKLStkbmwgJEJPT1NUX1JPT1QgZW52aXJvbm1lbnQgdmFyaWFibGUu Ci0rZG5sCi0rZG5sIFRoaXMgbWFjcm8gY2FsbHM6Ci0rZG5sCi0rZG5sICAgQUNfU1VCU1QoQk9P U1RfQ0ZMQUdTKSAvIEFDX1NVQlNUKEJPT1NUX0xJQlMpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1Rf RklMRVNZU1RFTV9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfU1lTVEVNX0xJQikKLStkbmwg ICBBQ19TVUJTVChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKQotK2RubCAgIEFDX1NVQlNUKEJP T1NUX1RIUkVBRF9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfSU9TVFJFQU1TX0xJQikKLStk bmwgICBBQ19TVUJTVChCT09TVF9TRVJJQUxJWkFUSU9OX0xJQikKLStkbmwgICBBQ19TVUJTVChC T09TVF9XU0VSSUFMSVpBVElPTl9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfU0lHTkFMU19M SUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfREFURV9USU1FX0xJQikKLStkbmwgICBBQ19TVUJT VChCT09TVF9SRUdFWF9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfUFlUSE9OX0xJQikKLStk bmwgICBBQ19TVUJTVChCT09TVF9BU0lPX0xJQikKLStkbmwgICBBQ19TVUJTVChCT09TVF9NUElf TElCKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX01QSV9QWVRIT05fTElCKQotK2RubCAgIEFDX1NV QlNUKEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCKQotK2RubAotK2RubCBBbmQgc2V0czoK LStkbmwKLStkbmwgICBIQVZFX0JPT1NUCi0rZG5sICAgSEFWRV9CT09TVF9GSUxFU1lTVEVNCi0r ZG5sICAgSEFWRV9CT09TVF9TWVNURU0KLStkbmwgICBIQVZFX0JPT1NUX1BST0dSQU1fT1BUSU9O UwotK2RubCAgIEhBVkVfQk9PU1RfVEhSRUFECi0rZG5sICAgSEFWRV9CT09TVF9JT1NUUkVBTVMK LStkbmwgICBIQVZFX0JPT1NUX1NFUklBTElaQVRJT04KLStkbmwgICBIQVZFX0JPT1NUX1NJR05B TFMKLStkbmwgICBIQVZFX0JPT1NUX0RBVEVfVElNRQotK2RubCAgIEhBVkVfQk9PU1RfUkVHRVgK LStkbmwgICBIQVZFX0JPT1NUX1BZVEhPTgotK2RubCAgIEhBVkVfQk9PU1RfQVNJTwotK2RubCAg IEhBVkVfQk9PU1RfTVBJCi0rZG5sICAgSEFWRV9CT09TVF9NUElfUFlUSE9OCi0rZG5sICAgSEFW RV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLCi0rZG5sCi0rZG5sIEBjYXRlZ29yeSBJbnN0YWxs ZWRQYWNrYWdlcwotK2RubCBAYXV0aG9yIFRob21hcyBQb3JzY2hiZXJnIDx0aG9tYXNAcmFuZHNw cmluZ2VyLmRlPgotK2RubCBAdmVyc2lvbiAyMDA2LTAxLTAyCi0rZG5sIEBsaWNlbnNlIEFsbFBl cm1pc3NpdmUKLSsKLStBQ19ERUZVTihbQVhfQk9PU1RdLAotK1sKLSsgICAgQUNfQVJHX1dJVEgo W2Jvb3N0XSwKLSsgICAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1ib29zdD1E SVJdLAotKyAgICAgICAgICAgICAgICBbdXNlIGJvb3N0IChkZWZhdWx0IGlzIE5PKSAsIHNwZWNp ZnkgdGhlIHJvb3QgZGlyZWN0b3J5IGZvciBib29zdCBsaWJyYXJ5IChvcHRpb25hbCldKSwKLSsg ICAgICAgICAgICAgICAgWwotKyAgICAgICAgICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAi bm8iOyB0aGVuCi0rCQkgICAgICAgICAgICB3YW50X2Jvb3N0PSJubyIKLSsgICAgICAgICAgICAg ICAgZWxpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgICAgICAg ICAgd2FudF9ib29zdD0ieWVzIgotKyAgICAgICAgICAgICAgICAgICAgYWNfYm9vc3RfcGF0aD0i IgotKyAgICAgICAgICAgICAgICBlbHNlCi0rCQkJICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMiCi0r ICAgICAgICAgICAgCQlhY19ib29zdF9wYXRoPSIkd2l0aHZhbCIKLSsJCSAgICAgICAgZmkKLSsg ICAgICAgICAgICAJXSwKLSsgICAgICAgICAgICAgICAgW3dhbnRfYm9vc3Q9InllcyJdKQotKwot KyMgICAgQUNfQ0FOT05JQ0FMX0JVSUxECi0rQk9PU1RfTURXX1ZFUlNJT049IjEtMzMtMSIKLStC T09TVExJQl9NRFdfVkVSU0lPTj0iMV8zM18xIgotK0JPT1NUX3ZlcnNpb25faGVhZGVyPSJib29z dC92ZXJzaW9uLmhwcCIKLSsKLSsJaWYgdGVzdCAieCR3YW50X2Jvb3N0IiA9ICJ4eWVzIjsgdGhl bgotKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxPWlmZWxzZShbJDFdLCAsMS4yMC4wLCQxKQotKwkJ Ym9vc3RfbGliX3ZlcnNpb25fcmVxX3Nob3J0ZW49YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3Jl cSA6ICdcKFtbMC05XV0qXC5bWzAtOV1dKlwpJ2AKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9t YWpvcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpcKSdgCi0rCQli b29zdF9saWJfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6 ICdbWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJf bWlub3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdbWzAtOV1dKlwuW1swLTldXSpc LlwoW1swLTldXSpcKSdgCi0rCQlpZiB0ZXN0ICJ4JGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJf bWlub3IiID0gIngiIDsgdGhlbgotKwkJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3I9 IjAiCi0rICAgIAlmaQotKwkJV0FOVF9CT09TVF9WRVJTSU9OPWBleHByICRib29zdF9saWJfdmVy c2lvbl9yZXFfbWFqb3IgXCogMTAwMDAwIFwrICAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX21pbm9y IFwqIDEwMCBcKyAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcmAKLSsJCUFDX01TR19D SEVDS0lORyhmb3IgYm9vc3RsaWIgPj0gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSkKLSsJCXN1Y2Nl ZWRlZD1ubwotKwotKwkJZG5sIGZpcnN0IHdlIGNoZWNrIHRoZSBzeXN0ZW0gbG9jYXRpb24gZm9y IGJvb3N0IGxpYnJhcmllcwotKwkJZG5sIHRoaXMgbG9jYXRpb24gaXMgY2hvc2VuIGlmIGJvb3N0 IGxpYnJhcmllcyBhcmUgaW5zdGFsbGVkIAotKwkJZG5sIHdpdGggdGhlIC0tbGF5b3V0PXN5c3Rl bSBvcHRpb24KLSsJCWRubCBvciBpZiB5b3UgaW5zdGFsbCBib29zdCB3aXRoIFJQTQotKwkJaWYg dGVzdCAtZCAvbGliNjQKLSsJCXRoZW4KLSsJCQlCT09TVF9MSUJESVJUWVBFPSJsaWI2NCIKLSsJ CWVsc2UKLSsJCQlCT09TVF9MSUJESVJUWVBFPSJsaWIiCi0rCQlmaQotKwkJaWYgdGVzdCAiJGFj X2Jvb3N0X3BhdGgiICE9ICIiCi0rCQl0aGVuCi0rCQkJaWYgdGVzdCAiJEJPT1NUX0xJQkRJUlRZ UEUiID09ICJsaWI2NCIKLSsJCQl0aGVuCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRo LyRCT09TVF9MSUJESVJUWVBFIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElC RElSVFlQRSIKLSsJCQkJdGhlbgotKwkgICAgICAgICAgICAgICAgQk9PU1RfTElCUz0iLUwkYWNf Ym9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIKLSsJCQkJZWxzZQotKyAgICAgICAgICAgICAg ICAgICAgQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC9saWIiCi0rCQkJCWZpCi0rCQkJZWxz ZQotKwkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoL2xpYiIKLSsJCQlmaQotKwkJCUJP T1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aC9pbmNsdWRlIgotKwkJCUJPT1NUX1ZFUlNJT049 YGdyZXAgImRlZmluZSBCT09TVF9MSUJfVkVSU0lPTiIgJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS8k e0JPT1NUX3ZlcnNpb25faGVhZGVyfSB8IGN1dCAtZCcgJyAtZjMgfCBjdXQgLWRcIiAtZjJgCi0r CQllbHNlCi0rCQkJZm9yIGFjX2Jvb3N0X3BhdGhfdG1wIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0 IC9uYXN0b29scy9ib29zdAotKwkJCWRvCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRo X3RtcC9pbmNsdWRlL2Jvb3N0IiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVk ZS9ib29zdCIKLSsJCQkJdGhlbgotKwkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90 bXAvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3Bh dGhfdG1wL2luY2x1ZGUiCi0rCQkJCQlCT09TVF9WRVJTSU9OPWBncmVwICJkZWZpbmUgQk9PU1Rf TElCX1ZFUlNJT04iICRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlLyR7Qk9PU1RfdmVyc2lvbl9o ZWFkZXJ9IHwgY3V0IC1kJyAnIC1mMyB8IGN1dCAtZFwiIC1mMmAKLSsJCQkJCWJyZWFrOwotKwkJ CQlmaQotKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0k Qk9PU1RfTURXX1ZFUlNJT04vYm9vc3QiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9p bmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi9ib29zdCIKLSsJCQkJdGhlbgotKwkJCQkJ Qk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJ CQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NU X01EV19WRVJTSU9OIgotKwkJCQkJQk9PU1RfVkVSU0lPTj1gZ3JlcCAiZGVmaW5lIEJPT1NUX0xJ Ql9WRVJTSU9OIiAkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZF UlNJT04vJHtCT09TVF92ZXJzaW9uX2hlYWRlcn0gfCBjdXQgLWQnICcgLWYzIHwgY3V0IC1kXCIg LWYyYAotKwkJCQotKwkJCQkJZG5sIEhhY2sgZm9yIHdyb25nbHkgaW5zdGFsbGVkIEJvb3N0IGxp YnJhcmllcyAoQU1ENjQgbGlicmFyaWVzIGluc3RhbGxlZCBpbiBib29zdC9saWIgZGlyZWN0b3J5 KQotKwkJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIgXAotKwkJCQkJJiYg dGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIgXAotKwkJCQkJJiYgdGVzdCAhIC1kICIk YWNfYm9vc3RfcGF0aF90bXAvbGliNjQiCi0rCQkJCQl0aGVuCi0rCQkJCQkJQk9PU1RfTElCUz0i LUwkYWNfYm9vc3RfcGF0aF90bXAvbGliIgotKwkJCQkJCWVjaG8gIkhhY2s6ICRCT09TVF9MSUJT IgotKwkJCQkJZmkKLSsJCQkJCWJyZWFrOwotKwkJCQlmaQotKwkJCWRvbmUKLSsJCWZpCi0rCi0r CQlDUFBGTEFHU19TQVZFRD0iJENQUEZMQUdTIgotKwkJQ1BQRkxBR1M9IiRDUFBGTEFHUyAkQk9P U1RfQ0ZMQUdTIgotKwkJZXhwb3J0IENQUEZMQUdTCi0rCi0rCQlMREZMQUdTX1NBVkVEPSIkTERG TEFHUyIKLSsJCUxERkxBR1M9IiRMREZMQUdTICRCT09TVF9MSUJTIgotKwkJZXhwb3J0IExERkxB R1MKLSsKLSsgICAgIAlBQ19UUllfQ09NUElMRSgKLSsgICAgICAgCVsKLStAJTpAaW5jbHVkZSA8 Ym9vc3QvdmVyc2lvbi5ocHA+Ci0rXSwKLSsgICAgICAgWwotKyNpZiBCT09TVF9WRVJTSU9OID49 ICRXQU5UX0JPT1NUX1ZFUlNJT04KLSsvLyBFdmVyeXRoaW5nIGlzIG9rYXkKLSsjZWxzZQotKyMg IGVycm9yIEJvb3N0IHZlcnNpb24gaXMgdG9vIG9sZAotKyNlbmRpZgotKwotKwkJXSwKLSsgICAg CVsKLSsgICAgICAgICBBQ19NU0dfUkVTVUxUKHllcykKLSsJCSBzdWNjZWVkZWQ9eWVzCi0rCQkg Zm91bmRfc3lzdGVtPXllcwotKyAgICAgICAgIGlmZWxzZShbJDJdLCAsIDosIFskMl0pCi0rICAg ICAgIF0sCi0rICAgICAgIFsKLSsgICAgICAgXSkKLSsKLSsJCWRubCBpZiB3ZSBmb3VuZCBubyBi b29zdCB3aXRoIHN5c3RlbSBsYXlvdXQgd2Ugc2VhcmNoIGZvciBib29zdCBsaWJyYXJpZXMKLSsJ CWRubCBidWlsdCBhbmQgaW5zdGFsbGVkIHdpdGhvdXQgdGhlIC0tbGF5b3V0PXN5c3RlbSBvcHRp b24gb3IgZm9yIGEgc3RhZ2VkKG5vdCBpbnN0YWxsZWQpIHZlcnNpb24KLSsJCWlmIHRlc3QgIngk c3VjY2VlZGVkIiAhPSAieHllcyI7IHRoZW4KLSsJCQlfdmVyc2lvbj0wCi0rCQkJaWYgdGVzdCAi JGFjX2Jvb3N0X3BhdGgiICE9ICIiOyB0aGVuCi0rICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9 Ii1MJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCWlmIHRlc3QgLWQgIiRh Y19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KLSsJCQkJCWZv ciBpIGluIGBscyAtZCAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxg OyBkbwotKwkJCQkJCV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNlZCAicyMkYWNfYm9vc3RfcGF0 aCMjIiB8IHNlZCAncy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAncy9fLy4vJ2AKLSsJCQkJ CQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9uYAotKwkJCQkJCWlmIHRl c3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KLSsJCQkJCQkJX3ZlcnNpb249JF92ZXJzaW9uX3Rt cAotKwkJCQkJCWZpCi0rCQkJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVyc2lvbiB8 IHNlZCAncy9cLi9fLydgCi0rCQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2lu Y2x1ZGUvYm9vc3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKLSsJCQkJCWRvbmUKLSsJCQkJZmkKLSsJ CQllbHNlCi0rCQkJCWZvciBhY19ib29zdF9wYXRoIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IDsg ZG8KLSsJCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9v c3RfcGF0aCI7IHRoZW4KLSsJCQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFjX2Jvb3N0X3BhdGgvaW5j bHVkZS9ib29zdC0qIDI+L2Rldi9udWxsYDsgZG8KLSsJCQkJCQkJX3ZlcnNpb25fdG1wPWBlY2hv ICRpIHwgc2VkICJzIyRhY19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9vc3Qt Ly8nIHwgc2VkICdzL18vLi8nYAotKwkJCQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAg XD4gJF92ZXJzaW9uYAotKwkJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCi0r CQkJCQkJCQlfdmVyc2lvbj0kX3ZlcnNpb25fdG1wCi0rCQkJCQkJCQliZXN0X3BhdGg9JGFjX2Jv b3N0X3BhdGgKLSsJCQkJCQkJZmkKLSsJCQkJCQlkb25lCi0rCQkJCQlmaQotKwkJCQlkb25lCi0r Ci0rCQkJCVZFUlNJT05fVU5ERVJTQ09SRT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3MvXC4vXy8n YAotKwkJCQlCT09TVF9DRkxBR1M9Ii1JJGJlc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRWRVJTSU9O X1VOREVSU0NPUkUiCi0rCQkJCUJPT1NUX0xJQlM9Ii1MJGJlc3RfcGF0aC8kQk9PU1RfTElCRElS VFlQRSIKLSsKLSsJICAgIAkJaWYgdGVzdCAieCRCT09TVF9ST09UIiAhPSAieCI7IHRoZW4KLSsJ CQkJCWlmIHRlc3QgLWQgIiRCT09TVF9ST09UIiAmJiB0ZXN0IC1yICIkQk9PU1RfUk9PVCI7IHRo ZW4KLSsJCQkJCQl2ZXJzaW9uX2Rpcj1gZXhwciAvLyRCT09TVF9ST09UIDogJy4qL1woLipcKSdg Ci0rCQkJCQkJc3RhZ2VfdmVyc2lvbj1gZWNobyAkdmVyc2lvbl9kaXIgfCBzZWQgJ3MvYm9vc3Rf Ly8nIHwgc2VkICdzL18vLi9nJ2AKLSsJCQkJCQlzdGFnZV92ZXJzaW9uX3Nob3J0ZW49YGV4cHIg JHN0YWdlX3ZlcnNpb24gOiAnXChbWzAtOV1dKlwuW1swLTldXSpcKSdgCi0rCQkJCQkJVl9DSEVD Sz1gZXhwciAkc3RhZ2VfdmVyc2lvbl9zaG9ydGVuIFw+XD0gJF92ZXJzaW9uYAotKwkJCQkJCWlm IHRlc3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KLSsJCQkJCQkJQUNfTVNHX05PVElDRShXZSB3 aWxsIHVzZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IGZyb20gJEJPT1NUX1JPT1QpCi0rCQkJCQkJ CUJPT1NUX0NGTEFHUz0iLUkkQk9PU1RfUk9PVCIKLSsJCQkJCQkJQk9PU1RfTElCUz0iLUwkQk9P U1RfUk9PVC9zdGFnZS8kQk9PU1RfTElCRElSVFlQRSIKLSsJCQkJCQlmaQotKwkJCQkJZmkKLSsJ ICAgIAkJZmkKLSsJCQlmaQotKwotKwkJCUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFH UyIKLSsJCQlleHBvcnQgQ1BQRkxBR1MKLSsJCQlMREZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElC UyIKLSsJCQlleHBvcnQgTERGTEFHUwotKwotKyAgICAgCQlBQ19UUllfQ09NUElMRSgKLSsgICAg ICAgCQlbCi0rQCU6QGluY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgotK10sCi0rICAgICAgIFsK LSsjaWYgQk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCi0rLy8gRXZlcnl0aGlu ZyBpcyBva2F5Ci0rI2Vsc2UKLSsjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlzIHRvbyBvbGQKLSsj ZW5kaWYKLSsKLSsJCV0sCi0rICAgIAlbCi0rICAgICAgICAgQUNfTVNHX1JFU1VMVCh5ZXMgKCRf dmVyc2lvbikpCi0rCQkgc3VjY2VlZGVkPXllcwotKyAgICAgICAgIGlmZWxzZShbJDJdLCAsIDos IFskMl0pCi0rICAgICAgIF0sCi0rICAgICAgIFsKLSsgICAgICAgICBBQ19NU0dfUkVTVUxUKG5v ICgkX3ZlcnNpb24pKQotKyAgICAgICAgIGlmZWxzZShbJDNdLCAsIDosIFskM10pCi0rICAgICAg IF0pCi0rCQlmaQotKwotKwkJaWYgdGVzdCAiJHN1Y2NlZWRlZCIgIT0gInllcyIgOyB0aGVuCi0r CQkJaWYgdGVzdCAiJF92ZXJzaW9uIiA9ICIwIiA7IHRoZW4KLSsJCQkJQUNfTVNHX0VSUk9SKFtb V2UgY291bGQgbm90IGRldGVjdCB0aGUgYm9vc3QgbGlicmFyaWVzICh2ZXJzaW9uICRib29zdF9s aWJfdmVyc2lvbl9yZXFfc2hvcnRlbiBvciBoaWdoZXIpLiBJZiB5b3UgaGF2ZSBhIHN0YWdlZCBi b29zdCBsaWJyYXJ5IChzdGlsbCBub3QgaW5zdGFsbGVkKSBwbGVhc2Ugc3BlY2lmeSBcJEJPT1NU X1JPT1QgaW4geW91ciBlbnZpcm9ubWVudCBhbmQgZG8gbm90IGdpdmUgYSBQQVRIIHRvIC0td2l0 aC1ib29zdCBvcHRpb24uICBJZiB5b3UgYXJlIHN1cmUgeW91IGhhdmUgYm9vc3QgaW5zdGFsbGVk LCB0aGVuIGNoZWNrIHlvdXIgdmVyc2lvbiBudW1iZXIgbG9va2luZyBpbiA8Ym9vc3QvdmVyc2lv bi5ocHA+Ll1dKQotKwkJCWVsc2UKLSsJCQkJQUNfTVNHX0VSUk9SKCdZb3VyIGJvb3N0IGxpYnJh cmllcyBzZWVtcyB0byBvbGQgKHZlcnNpb24gJF92ZXJzaW9uKS4gIFdlIG5lZWQgYXQgbGVhc3Qg JGJvb3N0X2xpYl92ZXJzaW9uX3Nob3J0ZW4nKQotKwkJCWZpCi0rCQllbHNlCi0rCQkJQUNfU1VC U1QoQk9PU1RfQ0ZMQUdTKQotKwkJCUFDX1NVQlNUKEJPT1NUX0xJQlMpCi0rCQkJQUNfREVGSU5F KEhBVkVfQk9PU1QsLFtkZWZpbmUgaWYgdGhlIEJvb3N0IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkK LSsKLSsjCi0rIyBCb29zdDo6RmlsZXN5c3RlbQotKyMKLSsJCQlBQ19DQUNIRV9DSEVDSyhbd2hl dGhlciB0aGUgQm9vc3Q6OkZpbGVzeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGVdLAotKwkJCQkJ CSAgIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0sCi0rCQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBB Q19MQU5HX0NQTFVTUExVUwotKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0o W1tAJTpAaW5jbHVkZSA8Ym9vc3QvZmlsZXN5c3RlbS9wYXRoLmhwcD5dXSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFtbdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpmaWxlc3lz dGVtOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCBteV9wYXRoKCAi Zm9vL2Jhci9kYXRhLnR4dCIgKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiAwO11dKSwKLSsgICAgICAgICAgICAJCQkJICAgICAgIGF4X2N2X2Jvb3N0X2ZpbGVz eXN0ZW09eWVzLCBheF9jdl9ib29zdF9maWxlc3lzdGVtPW5vKQotKwkJIAkJICAgICAgICAJCQlB Q19MQU5HX1JFU1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIiRheF9jdl9ib29zdF9maWxlc3lz dGVtIiA9ICJ5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX0ZJTEVTWVNURU0s LFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpGSUxFU1lTVEVNIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkK LSsJCQkJQk49Ym9vc3RfZmlsZXN5c3RlbQotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJEND ICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10 LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3 ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkg ICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgW0JPT1NUX0ZJTEVTWVNURU1fTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NU X0ZJTEVTWVNURU1fTElCKSBsaW5rX2ZpbGVzeXN0ZW09InllcyIgYnJlYWtdLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX2ZpbGVzeXN0ZW09Im5vIl0pCi0rICAJCQkJ ZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfZmlsZXN5c3RlbSIgPSAieG5vIjsgdGhlbgotKwkJ CQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsJCQkJ ZmkKLSsJCQlmaQotKwotKyMKLSsjIEJvb3N0OjpTeXN0ZW0KLSsjCi0rICAgICAgICAgICAgQUNf Q0FDSEVfQ0hFQ0soW3doZXRoZXIgdGhlIEJvb3N0OjpTeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFi bGVdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3N5c3RlbSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICBbQUNfTEFOR19TQVZFCi0rICAgICAgICAgICAgQUNf TEFOR19DUExVU1BMVVMKLSsgICAgICAgICAgICBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BS T0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3Qvc3lzdGVtL2Vycm9yX2NvZGUuaHBwPl1dLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1t1c2luZyBuYW1lc3BhY2UgYm9vc3Q6 OnN5c3RlbTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGUg bXlFcnJvckNvZGUoKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biAwO11dKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0 X3N5c3RlbT15ZXMsIGF4X2N2X2Jvb3N0X3N5c3RlbT1ubykKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBQ19MQU5HX1JFU1RPUkUKLSsgICAgICAgICAgICBdKQotKyAgICAg ICAgICAgIGlmIHRlc3QgIiRheF9jdl9ib29zdF9zeXN0ZW0iID0gInllcyI7IHRoZW4KLSsgICAg ICAgICAgICAgICAgIEFDX0RFRklORShIQVZFX0JPT1NUX1NZU1RFTSwsW2RlZmluZSBpZiB0aGUg Qm9vc3Q6OlNZU1RFTSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rICAgICAgICAgICAgICAgICBC Tj1ib29zdF9zeXN0ZW0KLSsgICAgICAgICAgICAgICAgIGZvciBheF9saWIgaW4gJEJOICRCTi0k Q0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0Mt bXQtcyBsaWIkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1t Z3cgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgOyBkbwotKyAgICAg ICAgICAgICAgICAgICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFtCT09TVF9TWVNURU1fTElCPSItbCRheF9saWIiIEFDX1NV QlNUKEJPT1NUX1NZU1RFTV9MSUIpIGxpbmtfc3lzdGVtPSJ5ZXMiIGJyZWFrXSwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua19zeXN0ZW09Im5vIl0pCi0rICAgICAgICAg ICAgICAgICBkb25lCi0rICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJ4JGxpbmtfc3lzdGVtIiA9 ICJ4bm8iOyB0aGVuCi0rICAgICAgICAgICAgICAgICAgICAgQUNfTVNHX05PVElDRShDb3VsZCBu b3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsgICAgICAgICAgICAgICAgIGZpCi0rICAgICAg ICAgICAgZmkKLSsKLSsjCi0rIyBCb29zdDo6UHJvZ3JhbV9PcHRpb25zCi0rIwotKwkJCUFDX0NB Q0hFX0NIRUNLKFt3aGV0aGVyIHRoZSBCb29zdDo6UHJvZ3JhbV9PcHRpb25zIGxpYnJhcnkgaXMg YXZhaWxhYmxlXSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnMsCi0rCQkJ CQkJICAgW0FDX0xBTkdfU0FWRQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEFDX0xBTkdf Q1BMVVNQTFVTCi0rCQkJICAgICAgICAgICAgICAgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19Q Uk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3Byb2dyYW1fb3B0aW9ucy5ocHA+XV0sCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0Ojpwcm9ncmFtX29wdGlvbnM6 Om9wdGlvbnNfZGVzY3JpcHRpb24gZ2VuZXJpYygiR2VuZXJpYyBvcHRpb25zIik7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtdXSksCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zPXllcywgYXhfY3ZfYm9v c3RfcHJvZ3JhbV9vcHRpb25zPW5vKQotKwkJCSAgICAgICAgICAgICAgIEFDX0xBTkdfUkVTVE9S RQotKwkJCV0pCi0rCQkJaWYgdGVzdCAiJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPSB5 ZXM7IHRoZW4KLSsJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJT05TLCxbZGVm aW5lIGlmIHRoZSBCb29zdDo6UFJPR1JBTV9PUFRJT05TIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkK LSsJCQkJQk49Ym9vc3RfcHJvZ3JhbV9vcHRpb25zCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRC Ti0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0k Q0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRC Ti1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1n dy1tdC1zICRCTi1tZ3ctcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRD Qy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT047IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4 X2xpYiwgbWFpbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9QUk9HUkFNX09QVElP TlNfTElCKSBsaW5rX3Byb2dyYW1fb3B0aW9ucz0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgW2xpbmtfcHJvZ3JhbV9vcHRpb25zPSJubyJdKQotKyAgCQkJ CWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8iIiA9ICJ4bm8i OyB0aGVuCi0rCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xp YiAhKQotKwkJCQlmaQotKwkJCWZpCi0rCi0rIwotKyMgQm9vc3Q6OlRocmVhZHMKLSsjCi0rCQkJ QUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OlRocmVhZCBsaWJyYXJ5IGlzIGF2YWls YWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF90aHJlYWQsCi0rCQkJCQkJW0FDX0xBTkdfU0FW RQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBDWFhGTEFHU19TQVZFPSRDWFhGTEFHUwot KwotKwkJCSBpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4c29sYXJpcyIgOyB0aGVuCi0rICAJCQkJ IENYWEZMQUdTPSItcHRocmVhZHMgJENYWEZMQUdTIgotKwkJCSBlbGlmIHRlc3QgIngkYnVpbGRf b3MiID0gInhtaW5nMzIiIDsgdGhlbgotKwkJCQkgQ1hYRkxBR1M9Ii1tdGhyZWFkcyAkQ1hYRkxB R1MiCi0rCQkJIGVsc2UKLSsJCQkJQ1hYRkxBR1M9Ii1wdGhyZWFkICRDWFhGTEFHUyIKLSsJCQkg ZmkKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUg PGJvb3N0L3RocmVhZC90aHJlYWQuaHBwPl1dLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgW1tib29zdDo6dGhyZWFkX2dyb3VwIHRocmRzOwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XV0pLAotKyAgICAgICAgICAgICAgICAgICBheF9j dl9ib29zdF90aHJlYWQ9eWVzLCBheF9jdl9ib29zdF90aHJlYWQ9bm8pCi0rCQkJIENYWEZMQUdT PSRDWFhGTEFHU19TQVZFCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVz dCAieCRheF9jdl9ib29zdF90aHJlYWQiID0gInh5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgICAg aWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFyaXMiIDsgdGhlbgotKyAJCQkJICBCT09TVF9D RkxBR1M9Ii1wdGhyZWFkcyAkQk9PU1RfQ0ZMQUdTIgotKwkJCSAgIGVsaWYgdGVzdCAieCRidWls ZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCi0rIAkJCQkgIEJPT1NUX0NGTEFHUz0iLW10aHJlYWRz ICRCT09TVF9DRkxBR1MiCi0rCQkJICAgZWxzZQotKwkJCQkgIEJPT1NUX0NGTEFHUz0iLXB0aHJl YWQgJEJPT1NUX0NGTEFHUyIKLSsJCQkgICBmaQotKwotKwkJCQlBQ19TVUJTVChCT09TVF9DRkxB R1MpCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1RIUkVBRCwsW2RlZmluZSBpZiB0aGUgQm9v c3Q6OlRIUkVBRCBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJCUJOPWJvb3N0X3RocmVhZAot KwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tbXQgJEJOLSRDQyAkQk4tJENDLW10IFwKLSsJCQkJ CQkgICAJICAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJO LW1ndy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRC Ti1tZ3ctcyAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJP T1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBt YWluLCBbQk9PU1RfVEhSRUFEX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9USFJFQURf TElCKSBsaW5rX3RocmVhZD0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgW2xpbmtfdGhyZWFkPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAi eCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBu b3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKyMKLSsjIEJv b3N0OjpJT1N0cmVhbXMKLSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6 OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF9p b3N0cmVhbXMsCi0rCQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwot KwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9v c3QvaW9zdHJlYW1zL2ZpbHRlcmluZ19zdHJlYW0uaHBwPgotKwkJCQkJCQkJCQkJCSBAJTpAaW5j bHVkZSA8Ym9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2UuaHBwPgotKwkJCQkJCQkJCQkJCV1dLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1tzdGQ6OnN0cmluZyAgaW5wdXQg PSAiSGVsbG8gV29ybGQhIjsKLSsJCQkJCQkJCQkgbmFtZXNwYWNlIGlvID0gYm9vc3Q6Omlvc3Ry ZWFtczsKLSsJCQkJCQkJCQkgaW86OmZpbHRlcmluZ19pc3RyZWFtICBpbihib29zdDo6bWFrZV9p dGVyYXRvcl9yYW5nZShpbnB1dCkpOwotKwkJCQkJCQkJCSByZXR1cm4gMDsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF1dKSwKLSsgICAgICAgICAgICAgICAgICAgYXhfY3Zf Ym9vc3RfaW9zdHJlYW1zPXllcywgYXhfY3ZfYm9vc3RfaW9zdHJlYW1zPW5vKQotKwkJCSBBQ19M QU5HX1JFU1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfaW9zdHJlYW1z IiA9ICJ4eWVzIjsgdGhlbgotKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9JT1NUUkVBTVMsLFtk ZWZpbmUgaWYgdGhlIEJvb3N0OjpJT1N0cmVhbXMgbGlicmFyeSBpcyBhdmFpbGFibGVdKQotKwkJ CQlCTj1ib29zdF9pb3N0cmVhbXMKLSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4t JENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4t bWd3LW10IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJO LW1ndy1zICBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9P U1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1h aW4sIFtCT09TVF9JT1NUUkVBTVNfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX0lPU1RS RUFNU19MSUIpIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrXSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBbbGlua190aHJlYWQ9Im5vIl0pCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0 ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQlBQ19NU0dfTk9USUNFKENv dWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQotKwkJCQlmaQotKwkJCWZpCi0rCi0rIwot KyMgQm9vc3Q6OlNlcmlhbGl6YXRpb24KLSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0 aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGUsCi0rCQkJCQkJICAg YXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiwKLSsJCQkJCQlbQUNfTEFOR19TQVZFCi0rCQkJIEFD X0xBTkdfQ1BMVVNQTFVTCi0rCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShb W0AlOkBpbmNsdWRlIDxmc3RyZWFtPgotKwkJCQkJCQkJCQkJCSBAJTpAaW5jbHVkZSA8Ym9vc3Qv YXJjaGl2ZS90ZXh0X29hcmNoaXZlLmhwcD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQCU6QGluY2x1ZGUgPGJvb3N0L2FyY2hpdmUvdGV4dF9pYXJj aGl2ZS5ocHA+Ci0rCQkJCQkJCQkJCQkJXV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbW3N0ZDo6b2ZzdHJlYW0gb2ZzKCJmaWxlbmFtZSIpOwotKwkJCQkJCQkJCWJvb3N0 OjphcmNoaXZlOjp0ZXh0X29hcmNoaXZlIG9hKG9mcyk7Ci0rCQkJCQkJCQkJIHJldHVybiAwOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAotKyAgICAgICAgICAgICAg ICAgICBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uPXllcywgYXhfY3ZfYm9vc3Rfc2VyaWFsaXph dGlvbj1ubykKLSsJCQkgQUNfTEFOR19SRVNUT1JFCi0rCQkJXSkKLSsJCQlpZiB0ZXN0ICJ4JGF4 X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24iID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShI QVZFX0JPT1NUX1NFUklBTElaQVRJT04sLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpTZXJpYWxpemF0 aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9vc3Rfc2VyaWFsaXphdGlvbgot KwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRC Ti0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0k Q0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRv Ci0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBbQk9PU1RfU0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgQUNf U1VCU1QoQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIpIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrXSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua190aHJlYWQ9Im5vIl0pCi0r ICAJCQkJZG9uZQotKwkJCQlCTj1ib29zdF93c2VyaWFsaXphdGlvbgotKwkJCQlmb3IgYXhfbGli IGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1t dCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRC Ti0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19D SEVDS19MSUIoJGF4X2xpYiwgbWFpbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbQk9PU1RfV1NFUklBTElaQVRJT05fTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX1dT RVJJQUxJWkFUSU9OX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJCQlkb25lCi0r CQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCUFDX01TR19O T1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0rCQkJZmkK LSsKLSsjCi0rIyBCb29zdDo6U2lnbmFscwotKyMKLSsJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVy IHRoZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9j dl9ib29zdF9zaWduYWxzLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExV U1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1 ZGUgPGJvb3N0L3NpZ25hbC5ocHA+Ci0rCQkJCQkJCQkJCQkJXV0sCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0OjpzaWduYWw8dm9pZCAoKT4gc2lnOwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF1dKSwKLSsgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9v c3Rfc2lnbmFscz15ZXMsIGF4X2N2X2Jvb3N0X3NpZ25hbHM9bm8pCi0rCQkJIEFDX0xBTkdfUkVT VE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9zaWduYWxzIiA9ICJ4eWVz IjsgdGhlbgotKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9TSUdOQUxTLCxbZGVmaW5lIGlmIHRo ZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJCUJOPWJvb3N0X3Np Z25hbHMKLSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0Mt bXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBs aWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJ T04gOyBkbwotKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9TSUdO QUxTX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9TSUdOQUxTX0xJQikgbGlua19zaWdu YWxzPSJ5ZXMiIGJyZWFrXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlu a19zaWduYWxzPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3NpZ25h bHMiID0gInhubyI7IHRoZW4KLSsJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdh aW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6RGF0ZV9U aW1lCi0rIwotKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpEYXRlX1RpbWUg bGlicmFyeSBpcyBhdmFpbGFibGUsCi0rCQkJCQkJICAgYXhfY3ZfYm9vc3RfZGF0ZV90aW1lLAot KwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09N UElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L2RhdGVfdGlt ZS9ncmVnb3JpYW4vZ3JlZ29yaWFuX3R5cGVzLmhwcD4KLSsJCQkJCQkJCQkJCQldXSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbdXNpbmcgbmFtZXNwYWNlIGJvb3N0Ojpn cmVnb3JpYW47IGRhdGUgZCgyMDAyLEphbiwxMCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiAwOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXV0pLAotKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9kYXRlX3RpbWU9eWVzLCBh eF9jdl9ib29zdF9kYXRlX3RpbWU9bm8pCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0r CQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9kYXRlX3RpbWUiID0gInh5ZXMiOyB0aGVuCi0rCQkJ CUFDX0RFRklORShIQVZFX0JPT1NUX0RBVEVfVElNRSwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OkRh dGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJCUJOPWJvb3N0X2RhdGVfdGltZQot KwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRC Ti0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0k Q0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRv Ci0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX0RBVEVfVElNRV9M SUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfREFURV9USU1FX0xJQikgbGlua19kYXRlX3Rp bWU9InllcyIgYnJlYWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5r X2RhdGVfdGltZT0ibm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua19kYXRl X3RpbWUiPSJubyIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3Qg bGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKyMKLSsjIEJvb3N0 OjpSZWdleAotKyMKLSsJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6UmVnZXgg bGlicmFyeSBpcyBhdmFpbGFibGUsCi0rCQkJCQkJICAgYXhfY3ZfYm9vc3RfcmVnZXgsCi0rCQkJ CQkJW0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBBQ19DT01QSUxF X0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvcmVnZXguaHBwPgot KwkJCQkJCQkJCQkJCV1dLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1ti b29zdDo6cmVnZXggcigpOyByZXR1cm4gMDtdXSksCi0rICAgICAgICAgICAgICAgICAgIGF4X2N2 X2Jvb3N0X3JlZ2V4PXllcywgYXhfY3ZfYm9vc3RfcmVnZXg9bm8pCi0rCQkJIEFDX0xBTkdfUkVT VE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9yZWdleCIgPSAieHllcyI7 IHRoZW4KLSsJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfUkVHRVgsLFtkZWZpbmUgaWYgdGhlIEJv b3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJCUJOPWJvb3N0X3JlZ2V4Ci0r CQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJO LSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRD QyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8K LSsJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLCBbQk9PU1RfUkVHRVhfTElCPSIt bCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX1JFR0VYX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJl YWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8i XSkKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRo ZW4KLSsJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEp Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6QVNJTzogaXQgbmVlZHMgQm9vc3Qu U3lzdGVtLCBCb29zdC5SZWdleCwgQm9vc3QuVGhyZWFkIGFuZCAKLSsjIEJvb3N0LkRhdGVUaW1l LCBidXQgZG9lcyBub3QgcHJvZHVjZSBhbnkgKG90aGVyKSBsaWJyYXJ5LgotKyMKLSsJCQlBQ19D QUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6QXNpbyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwK LSsJCQkJCQkgICBheF9jdl9ib29zdF9hc2lvLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkg QUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFN KFtbQCU6QGluY2x1ZGUgPGJvb3N0L2FzaW8uaHBwPl1dLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgW1tib29zdDo6YXNpbzo6aW9fc2VydmljZSBpbzsKLSsJICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYm9vc3Q6OnN5c3RlbTo6ZXJyb3JfY29kZSB0aW1lcl9y ZXN1bHQ7Ci0rCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb3N0Ojphc2lvOjpk ZWFkbGluZV90aW1lciB0KGlvKTsKLSsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dC5jYW5jZWwoKTsKLSsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW8ucnVuX29u ZSgpOwotKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1dKSwKLSsgICAgICAgICAgICAgICAgICAg YXhfY3ZfYm9vc3RfYXNpbz15ZXMsIGF4X2N2X2Jvb3N0X2FzaW89bm8pCi0rCQkJIEFDX0xBTkdf UkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9hc2lvIiA9ICJ4eWVz IjsgdGhlbgotKwkJCSAgIEFDX0RFRklORShIQVZFX0JPT1NUX0FTSU8sLFtkZWZpbmUgaWYgdGhl IEJvb3N0OjpBc2lvIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkgICBCT09TVF9BU0lPX0xJ Qj0iJHtCT09TVF9TWVNURU1fTElCfSAke0JPT1NUX1RIUkVBRF9MSUJ9IgotKwkJCSAgIEJPT1NU X0FTSU9fTElCPSIke0JPT1NUX0FTSU9fTElCfSAke0JPT1NUX0RBVEVfVElNRV9MSUJ9IgotKwkJ CSAgIEJPT1NUX0FTSU9fTElCPSIke0JPT1NUX0FTSU9fTElCfSAke0JPT1NUX1JFR0VYX0xJQn0i Ci0rCQkJICAgQk9PU1RfQVNJT19MSUI9IiR7Qk9PU1RfQVNJT19MSUJ9ICR7Qk9PU1RfU0VSSUFM SVpBVElPTl9MSUJ9IgotKwkJCWZpCi0rCi0rIwotKyMgU3VwcG9ydCBmb3IgUHl0aG9uIGFuZCBN UEkgKE1QSUNIMiwgQm9vc3Q6Ok1QSSwgQm9vc3Q6OlB5dGhvbiwgCi0rIyBCb29zdDo6U2VyaWFs aXphdGlvbiwgQm9vc3Q6Ok1QSV9QeXRob24pCi0rIyBOb3RlOiBvbiBzb21lIGRpc3RyaWJ1dGlv bnMgKGUuZy4sIERlYmlhbiksIEJvb3N0Lk1QSSB1c2VzIE9wZW5NUEkgcmF0aGVyIAotKyMgICAg ICAgdGhhbiBNUElDSDIKLSsjCi0rCQkJQ1BQRkxBR1NfT1JJRz0iJHtDUFBGTEFHU30iCi0rCQkJ Q1BQRkxBR1M9IiR7Q1BQRkxBR1N9ICR7UFlUSE9OX0NGTEFHU30gJHtNUElHRU5fQ0ZMQUdTfSIK LSsjCQkJQ1BQRkxBR1M9IiR7Q1BQRkxBR1N9ICR7UFlUSE9OX0NGTEFHU30gJHtNUElDSDJfQ0ZM QUdTfSIKLSsjCQkJQ1BQRkxBR1M9IiR7Q1BQRkxBR1N9ICR7UFlUSE9OX0NGTEFHU30gJHtPUEVO TVBJX0NGTEFHU30iCi0rCQkJTERGTEFHU19PUklHPSIke0xERkxBR1N9IgotKwkJCUxERkxBR1M9 IiR7TERGTEFHU30gJHtQWVRIT05fTElCU30gJHtQWVRIT05fQUREX0xJQlN9ICR7TVBJR0VOX0xJ QlN9IgotKyMJCQlMREZMQUdTPSIke0xERkxBR1N9ICR7UFlUSE9OX0xJQlN9ICR7UFlUSE9OX0FE RF9MSUJTfSAke01QSUNIMl9MSUJTfSIKLSsjCQkJTERGTEFHUz0iJHtMREZMQUdTfSAke1BZVEhP Tl9MSUJTfSAke1BZVEhPTl9BRERfTElCU30gJHtPUEVOTVBJX0xJQlN9IgotKwotKyMKLSsjIEJv b3N0OjpQeXRob24KLSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OlB5 dGhvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF9weXRob24s Ci0rCQkJW0FDX0xBTkdfU0FWRQotKwkJCUFDX0xBTkdfQ1BMVVNQTFVTCi0rCi0rCQkgICAgQUNf Q09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3B5dGhv bi5ocHA+Ci0rCQkJY2hhciBjb25zdCogZ3JlZXQoKSB7IHJldHVybiAiaGVsbG8iOyB9IAotKwkJ CUJPT1NUX1BZVEhPTl9NT0RVTEUoaGVsbG9fZXh0KSB7IGJvb3N0OjpweXRob246OmRlZigiZ3Jl ZXQiLCBncmVldCk7fQotKwkJCQkJCQkJCQkgICBdXSksCi0rICAgICAgICAgICAgICAgICAgIGF4 X2N2X2Jvb3N0X3B5dGhvbj15ZXMsIGF4X2N2X2Jvb3N0X3B5dGhvbj1ubykKLSsJCQkgQUNfTEFO R19SRVNUT1JFCi0rCQkJXSkKLSsKLSsJCQlCT09TVF9QWVRIT05fTElCPSItbGJvb3N0X3B5dGhv biAke1BZVEhPTl9MSUJTfSAke1BZVEhPTl9BRERfTElCU30iCi0rCQkJQUNfU1VCU1QoQk9PU1Rf UFlUSE9OX0xJQikKLSsKLSsjCi0rIyBCb29zdDo6TVBJCi0rIwotKwkJCUFDX0NBQ0hFX0NIRUNL KHdoZXRoZXIgdGhlIEJvb3N0OjpNcGkgbGlicmFyeSBpcyBhdmFpbGFibGUsCi0rCQkJCQkJICAg YXhfY3ZfYm9vc3RfbXBpLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExV U1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1 ZGUgPGJvb3N0L21waS5ocHA+XV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbWwotKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1dKSwKLSsgICAgICAgICAgICAgICAgICAg YXhfY3ZfYm9vc3RfbXBpPXllcywgYXhfY3ZfYm9vc3RfbXBpPW5vKQotKwkJCSBBQ19MQU5HX1JF U1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfbXBpIiA9ICJ4eWVzIjsg dGhlbgotKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9NUEksLFtkZWZpbmUgaWYgdGhlIEJvb3N0 OjpNcGkgbGlicmFyeSBpcyBhdmFpbGFibGVdKQotKwkJCQlCTj1ib29zdF9tcGkKLSsJCQkJZm9y IGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMg XAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRC Ti0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1zICRCTi0kQ0MtbXQtJEJPT1NUTElCX01E V19WRVJTSU9OIDsgZG8KLSsKLSsJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLCBb Qk9PU1RfTVBJX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9NUElfTElCKSBsaW5rX21w aT0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtf bXBpPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX21waSIgPSAieG5v IjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9s aWIgISkKLSsJCQkJZWxzZQotKwkJCQkJQk9PU1RfTVBJX0xJQj0iJHtCT09TVF9NUElfTElCfSAk e0JPT1NUX1NFUklBTElaQVRJT05fTElCfSAke01QSUdFTl9MSUJTfSIKLSsJCQkJZmkKLSsJCQlm aQotKwotKyMKLSsjIEJvb3N0OjpNUElfUHl0aG9uCi0rIwotKwkJCUFDX0NBQ0hFX0NIRUNLKHdo ZXRoZXIgdGhlIEJvb3N0OjpNcGlfUHl0aG9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAotKwkJCQkJ CSAgIGF4X2N2X2Jvb3N0X21waV9weXRob24sCi0rCQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBB Q19MQU5HX0NQTFVTUExVUwotKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0o W1tAJTpAaW5jbHVkZSA8Ym9vc3QvbXBpL3B5dGhvbi9zZXJpYWxpemUuaHBwPgotKwkJCSAJCQkJ CQkJCSAgIF1dLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1sKLSsJICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBdXSksCi0rICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0 X21waV9weXRob249eWVzLCBheF9jdl9ib29zdF9tcGlfcHl0aG9uPW5vKQotKwkJCSBBQ19MQU5H X1JFU1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbiIg PSAieHllcyI7IHRoZW4KLSsJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfTVBJX1BZVEhPTiwsW2Rl ZmluZSBpZiB0aGUgQm9vc3Q6Ok1waV9QeXRob24gbGlicmFyeSBpcyBhdmFpbGFibGVdKQotKwkJ CQlCTj1ib29zdF9tcGlfcHl0aG9uCi0rIwkJCQlCTj1ib29zdF9tcGlfcHl0aG9uLXB5MjUKLSsJ CQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4t JENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJEND IGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1zICRCTi0kQ0MtbXQtJEJPT1NU TElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWlu LCBbQk9PU1RfTVBJX1BZVEhPTl9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfTVBJX1BZ VEhPTl9MSUIpIGxpbmtfbXBpX3B5dGhvbj0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgW2xpbmtfbXBpX3B5dGhvbj0ibm8iXSkKLSsgIAkJCQlkb25lCi0r CQkJCWlmIHRlc3QgIngkbGlua19tcGlfcHl0aG9uIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQlBQ19N U0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQotKwkJCQllbHNlCi0r CQkJCQlCT09TVF9NUElfUFlUSE9OX0xJQj0iJHtCT09TVF9NUElfUFlUSE9OX0xJQn0gJHtCT09T VF9TRVJJQUxJWkFUSU9OX0xJQn0iCi0rCQkJCQlCT09TVF9NUElfUFlUSE9OX0xJQj0iJHtCT09T VF9NUElfUFlUSE9OX0xJQn0gJHtCT09TVF9QWVRIT05fTElCfSIKLSsJCQkJCUJPT1NUX01QSV9Q WVRIT05fTElCPSIke0JPT1NUX01QSV9QWVRIT05fTElCfSAke0JPT1NUX01QSV9MSUJ9IgotKwkJ CQkJQk9PU1RfTVBJX1BZVEhPTl9MSUI9IiR7Qk9PU1RfTVBJX1BZVEhPTl9MSUJ9ICR7TVBJR0VO X0xJQlN9IgotKwkJCQlmaQotKwkJCWZpCi0rCi0rIwotKyMgRW5kIG9mIHNlY3Rpb24gb24gc3Vw cG9ydCBmb3IgTVBJCi0rIwotKwkJCUNQUEZMQUdTPSIke0NQUEZMQUdTX09SSUd9IgotKwkJCUxE RkxBR1M9IiR7TERGTEFHU19PUklHfSIKLSsKLSsjCi0rIyBCb29zdDo6VW5pdFRlc3RGcmFtZXdv cmsKLSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJh bWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAotKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3VuaXRf dGVzdF9mcmFtZXdvcmssCi0rCQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQTFVT UExVUwotKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVk ZSA8Ym9vc3QvdGVzdC91bml0X3Rlc3QuaHBwPl1dLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFtbdXNpbmcgYm9vc3Q6OnVuaXRfdGVzdDo6dGVzdF9zdWl0ZTsKLSsJCQkJ CSAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVu aXQgdGVzdCBleGFtcGxlIDEiICk7IHJldHVybiAwO11dKSwKLSsgICAgICAgICAgICAgICAgICAg YXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaz15ZXMsIGF4X2N2X2Jvb3N0X3VuaXRfdGVz dF9mcmFtZXdvcms9bm8pCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVz dCAieCRheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrIiA9ICJ4eWVzIjsgdGhlbgotKyAg ICAJCUFDX0RFRklORShIQVZFX0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUkssLFtkZWZpbmUgaWYg dGhlIEJvb3N0OjpVbml0X3Rlc3RfZnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJ CQlCTj1ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrCi0rICAgIAkJc2F2ZWRfbGRmbGFncz0iJHtM REZMQUdTfSIKLSsJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRD Qy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGli JEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RM SUJfTURXX1ZFUlNJT04gOyBkbwotKyAgICAgICAgICAgICAgICBMREZMQUdTPSIke0xERkxBR1N9 IC1sJGF4X2xpYiIKLSsgICAgCQkJQUNfQ0FDSEVfQ0hFQ0sodGhlIG5hbWUgb2YgdGhlIEJvb3N0 OjpVbml0VGVzdEZyYW1ld29yayBsaWJyYXJ5LAotKwkgICAgICAJCQkJCSAgIGF4X2N2X2Jvb3N0 X3VuaXRfdGVzdF9mcmFtZXdvcmssCi0rCQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5H X0NQTFVTUExVUwotKyAgICAgICAgICAgICAgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dS QU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvdGVzdC91bml0X3Rlc3QuaHBwPl1dLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbW3VzaW5nIGJvb3N0Ojp1bml0X3Rlc3Q6OnRlc3Rfc3Vp dGU7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3VpdGUqIHRlc3Q9IEJP T1NUX1RFU1RfU1VJVEUoICJVbml0IHRlc3QgZXhhbXBsZSAxIiApOyByZXR1cm4gMDtdXSldLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua190aHJlYWQ9InllcyJdLFtsaW5r X3RocmVhZD0ibm8iXSkKLSsKLSsJCQkgQUNfTEFOR19SRVNUT1JFCi0rICAgICAgICAgICAgICAg XSkKLSsgICAgICAgICAgICAgICAgTERGTEFHUz0iJHtzYXZlZF9sZGZsYWdzfSIKLSsJCQkgICAg aWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieHllcyI7IHRoZW4KLSsgICAgICAgICAgICAgICAg ICAgIEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCPSItbCRheF9saWIiCi0rICAgICAgICAg ICAgICAgICAgICBBQ19TVUJTVChCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQikKLSsJCQkJ CWJyZWFrCi0rCQkJCWZpCi0rICAgICAgICAgICAgICBkb25lCi0rCQkJICAgIGlmIHRlc3QgIngk bGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJICAgQUNfTVNHX05PVElDRShDb3VsZCBu b3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKwotKwkJZmkg ZG5sIGVuZGlmIHRlc3QgIiRzdWNjZWVkZWQiCi0rCi0rICAgICAgICBDUFBGTEFHUz0iJENQUEZM QUdTX1NBVkVEIgotKyAgICAgICAgTERGTEFHUz0iJExERkxBR1NfU0FWRUQiCi0rCi0rCWZpIGRu bCBlbmRpZiB0ZXN0ICJ4JHdhbnRfYm9vc3QiCi0rXSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9jb25maWcvYXhfbXlzcWwubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9teXNx bC5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9teXNxbC5tNAkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcv YXhfbXlzcWwubTQJMjAxMC0wMS0yMyAxMzoyNzowNC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAg KzEsMTY0IEBACi0rZG5sIEBzeW5vcHNpcyBBWF9NWVNRTAotK2RubCAKLStkbmwgVGhpcyBtYWNy byB0cmllcyB0byBmaW5kIE15U1FMIEMgQVBJIGhlYWRlciBhbmQgbGlicmFyeSBsb2NhdGlvbnMu Ci0rZG5sCi0rZG5sIFdlIGRlZmluZSB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyZSBzY3JpcHQgZmxh Z3M6Ci0rZG5sCi0rZG5sCQktLXdpdGgtbXlzcWw6IEdpdmUgcHJlZml4IGZvciBib3RoIGxpYnJh cnkgYW5kIGhlYWRlcnMsIGFuZCB0cnkKLStkbmwJCQl0byBndWVzcyBzdWJkaXJlY3RvcnkgbmFt ZXMgZm9yIGVhY2guICAoZS5nLiBUYWNrIC9saWIgYW5kCi0rZG5sCQkJL2luY2x1ZGUgb250byBn aXZlbiBkaXIgbmFtZSwgYW5kIG90aGVyIGNvbW1vbiBzY2hlbWVzLikKLStkbmwJCS0td2l0aC1t eXNxbC1saWI6IFNpbWlsYXIgdG8gLS13aXRoLW15c3FsLCBidXQgZm9yIGxpYnJhcnkgb25seS4K LStkbmwJCS0td2l0aC1teXNxbC1pbmNsdWRlOiBTaW1pbGFyIHRvIC0td2l0aC1teXNxbCwgYnV0 IGZvciBoZWFkZXJzCi0rZG5sCQkJb25seS4KLStkbmwKLStkbmwgQHZlcnNpb24gMS4yLCAyMDA3 LzAyLzIwCi0rZG5sIEBhdXRob3IgV2FycmVuIFlvdW5nIDxteXNxbHBwQGV0ci11c2EuY29tPgot KwotK0FDX0RFRlVOKFtBWF9NWVNRTF0sCi0rWwotKwkjCi0rCSMgU2V0IHVwIGNvbmZpZ3VyZSBz Y3JpcHQgbWFjcm9zCi0rCSMKLSsJQUNfQVJHX1dJVEgobXlzcWwsCi0rCQlbICAtLXdpdGgtbXlz cWw9PHBhdGg+ICAgICByb290IGRpcmVjdG9yeSBwYXRoIG9mIE15U1FMIGluc3RhbGxhdGlvbl0s Ci0rCQlbTVlTUUxfbGliX2NoZWNrPSIkd2l0aF9teXNxbC9saWI2NC9teXNxbCAkd2l0aF9teXNx bC9saWIvbXlzcWwgJHdpdGhfbXlzcWwvbGliNjQgJHdpdGhfbXlzcWwvbGliIgotKwkJTVlTUUxf aW5jX2NoZWNrPSIkd2l0aF9teXNxbC9pbmNsdWRlICR3aXRoX215c3FsL2luY2x1ZGUvbXlzcWwi Ci0rCQlNWVNRTF9iaW5fY2hlY2s9IiR3aXRoX215c3FsL2JpbiJdLAotKwkJW01ZU1FMX2xpYl9j aGVjaz0iL3Vzci9saWI2NCAvdXNyL2xpYiAvdXNyL2xpYjY0L215c3FsIC91c3IvbGliL215c3Fs IC91c3IvbG9jYWwvbGliNjQgL3Vzci9sb2NhbC9saWIgL3Vzci9sb2NhbC9saWIvbXlzcWwgL3Vz ci9sb2NhbC9teXNxbC9saWIgL3Vzci9sb2NhbC9teXNxbC9saWIvbXlzcWwgL29wdC9teXNxbC9s aWIgL29wdC9teXNxbC9saWIvbXlzcWwiCi0rCQlNWVNRTF9pbmNfY2hlY2s9Ii91c3IvaW5jbHVk ZS9teXNxbCAvdXNyL2xvY2FsL2luY2x1ZGUvbXlzcWwgL3Vzci9sb2NhbC9teXNxbC9pbmNsdWRl IC91c3IvbG9jYWwvbXlzcWwvaW5jbHVkZS9teXNxbCAvb3B0L215c3FsL2luY2x1ZGUvbXlzcWwi Ci0rCQlNWVNRTF9iaW5fY2hlY2s9Ii91c3IvYmluIC91c3IvbG9jYWwvYmluIC91c3IvbG9jYWwv bXlzcWwvYmluIl0pCi0rCi0rCUFDX0FSR19XSVRIKG15c3FsLWxpYiwKLSsJCVsgIC0td2l0aC1t eXNxbC1saWI9PHBhdGg+IGRpcmVjdG9yeSBwYXRoIG9mIE15U1FMIGxpYnJhcnkgaW5zdGFsbGF0 aW9uXSwKLSsJCVtNWVNRTF9saWJfY2hlY2s9IiR3aXRoX215c3FsX2xpYiAkd2l0aF9teXNxbF9s aWIvbGliNjQgJHdpdGhfbXlzcWxfbGliL2xpYiAkd2l0aF9teXNxbF9saWIvbGliNjQvbXlzcWwg JHdpdGhfbXlzcWxfbGliL2xpYi9teXNxbCJdKQotKwotKwlBQ19BUkdfV0lUSChteXNxbC1pbmNs dWRlLAotKwkJWyAgLS13aXRoLW15c3FsLWluY2x1ZGU9PHBhdGg+IGRpcmVjdG9yeSBwYXRoIG9m IE15U1FMIGhlYWRlciBpbnN0YWxsYXRpb25dLAotKwkJW01ZU1FMX2luY19jaGVjaz0iJHdpdGhf bXlzcWxfaW5jbHVkZSAkd2l0aF9teXNxbF9pbmNsdWRlL2luY2x1ZGUgJHdpdGhfbXlzcWxfaW5j bHVkZS9pbmNsdWRlL215c3FsIl0pCi0rCi0rCi0rICAgICMKLSsJIyBMb29rIGZvciBNeVNRTCBD b25maWd1cmF0aW9uIFNjcmlwdAotKwkjCi0rCUFDX01TR19DSEVDS0lORyhbZm9yIE15U1FMIGNv bmZpZ3VyYXRpb24gc2NyaXB0XSkKLSsJTVlTUUxfQ09ORklHPQotKwlNWVNRTF9iaW5kaXI9Ci0r CWZvciBtIGluICRNWVNRTF9iaW5fY2hlY2sKLSsJCWRvCi0rCQkJaWYgdGVzdCAtZCAiJG0iICYm IHRlc3QgLWYgIiRtL215c3FsX2NvbmZpZyIKLSsJCQl0aGVuCi0rCQkJCU1ZU1FMX0NPTkZJRz0k bS9teXNxbF9jb25maWcKLSsJCQkJTVlTUUxfYmluZGlyPSRtCi0rCQkJYnJlYWsKLSsJCWZpCi0r CWRvbmUKLSsKLSsJaWYgdGVzdCAteiAiJE1ZU1FMX2JpbmRpciIKLSsJdGhlbgotKwkJQUNfTVNH X0VSUk9SKFtEaWRuJ3QgZmluZCAkTVlTUUxfQ09ORklHIGJpbmFyeSBpbiAnJE1ZU1FMX2Jpbl9j aGVjayddKQotKwlmaQotKwotKwljYXNlICIkTVlTUUxfYmluZGlyIiBpbgotKwkJLyogKSA7Owot KwkJKiApICBBQ19NU0dfRVJST1IoW1RoZSBNeVNRTCBiaW5hcnkgZGlyZWN0b3J5ICgkTVlTUUxf YmluZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguXSkgOzsKLSsJZXNhYwotKwotKwlBQ19N U0dfUkVTVUxUKFskTVlTUUxfQ09ORklHXSkKLSsKLSsjCUFDX1BBVEhfUFJPRyhNWVNRTF9DT05G SUcsIG15c3FsX2NvbmZpZywgJE1ZU1FMX2JpbmRpcikKLSsKLSsJIwotKwkjIERlY2lkZSB3aGlj aCBDIEFQSSBsaWJyYXJ5IHRvIHVzZSwgYmFzZWQgb24gdGhyZWFkIHN1cHBvcnQKLSsJIwotKwlp ZiB0ZXN0ICJ4JGFjeF9wdGhyZWFkX29rIiA9IHh5ZXMKLSsJdGhlbgotKwkJTVlTUUxfQ19MSUI9 bXlzcWxjbGllbnRfcgotKwkJTVlTUUxfTElCX09QVElPTj1saWJzX3IKLSsJZWxzZQotKwkJTVlT UUxfQ19MSUI9bXlzcWxjbGllbnQKLSsJCU1ZU1FMX0xJQl9PUFRJT049bGlicwotKwlmaQotKwot KwlpZiB0ZXN0ICJ4JHtNWVNRTF9DT05GSUd9MSIgPSAieDEiCi0rCXRoZW4KLSsJCU1ZU1FMX1ZF UlNJT049YCR7TVlTUUxfQ09ORklHfSAtLXZlcnNpb25gCi0rCQlNWVNRTF9DRkxBR1M9YCR7TVlT UUxfQ09ORklHfSAtLWNmbGFnc2AKLSsJCU1ZU1FMX0xJQlM9YCR7TVlTUUxfQ09ORklHfSAtLSR7 TVlTUUxfTElCX09QVElPTn1gCi0rCWVsc2UKLSsJCSMKLSsJCSMgTG9vayBmb3IgTXlTUUwgQyBB UEkgbGlicmFyeQotKwkJIwotKwkJQUNfTVNHX0NIRUNLSU5HKFtmb3IgTXlTUUwgbGlicmFyeSBk aXJlY3RvcnldKQotKwkJTVlTUUxfbGliZGlyPQotKwkJZm9yIG0gaW4gJE1ZU1FMX2xpYl9jaGVj awotKwkJZG8KLSsJCQlpZiB0ZXN0IC1kICIkbSIgJiYgXAotKwkJCQkodGVzdCAtZiAiJG0vbGli JE1ZU1FMX0NfTElCLnNvIiBcCi0rCQkJCXx8IHRlc3QgLWYgIiRtL2xpYiRNWVNRTF9DX0xJQi5h IikKLSsJCQl0aGVuCi0rCQkJCU1ZU1FMX2xpYmRpcj0kbQotKwkJCQlicmVhawotKwkJCWZpCi0r CQlkb25lCi0rCi0rCQlpZiB0ZXN0IC16ICIkTVlTUUxfbGliZGlyIgotKwkJdGhlbgotKwkJCUFD X01TR19FUlJPUihbRGlkbid0IGZpbmQgJE1ZU1FMX0NfTElCIGxpYnJhcnkgaW4gJyRNWVNRTF9s aWJfY2hlY2snXSkKLSsJCWZpCi0rCi0rCQljYXNlICIkTVlTUUxfbGliZGlyIiBpbgotKwkJCS8q ICkgOzsKLSsJCQkqICkgIEFDX01TR19FUlJPUihbVGhlIE15U1FMIGxpYnJhcnkgZGlyZWN0b3J5 ICgkTVlTUUxfbGliZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguXSkgOzsKLSsJCWVzYWMK LSsKLSsJCUFDX01TR19SRVNVTFQoWyRNWVNRTF9saWJkaXJdKQotKwotKyMJCWNhc2UgIiRNWVNR TF9saWJkaXIiIGluCi0rIwkJICAvdXNyL2xpYikgOzsKLSsjCQkgICopIExERkxBR1M9IiRMREZM QUdTIC1MJHtNWVNRTF9saWJkaXJ9IiA7OwotKyMJCWVzYWMKLSsKLSsJCSMKLSsJCSMgTG9vayBm b3IgTXlTUUwgQyBBUEkgaGVhZGVycwotKwkJIwotKwkJQUNfTVNHX0NIRUNLSU5HKFtmb3IgTXlT UUwgaW5jbHVkZSBkaXJlY3RvcnldKQotKwkJTVlTUUxfaW5jZGlyPQotKwkJZm9yIG0gaW4gJE1Z U1FMX2luY19jaGVjawotKwkJZG8KLSsJCQlpZiB0ZXN0IC1kICIkbSIgJiYgdGVzdCAtZiAiJG0v bXlzcWwuaCIKLSsJCQl0aGVuCi0rCQkJCU1ZU1FMX2luY2Rpcj0kbQotKwkJCQlicmVhawotKwkJ CWZpCi0rCQlkb25lCi0rCi0rCQlpZiB0ZXN0IC16ICIkTVlTUUxfaW5jZGlyIgotKwkJdGhlbgot KwkJCUFDX01TR19FUlJPUihbRGlkbid0IGZpbmQgdGhlIE15U1FMIGluY2x1ZGUgZGlyIGluICck TVlTUUxfaW5jX2NoZWNrJ10pCi0rCQlmaQotKwotKwkJY2FzZSAiJE1ZU1FMX2luY2RpciIgaW4K LSsJCQkgLyogKSA7OwotKwkJCSAqICkgIEFDX01TR19FUlJPUihbVGhlIE15U1FMIGluY2x1ZGUg ZGlyZWN0b3J5ICgkTVlTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguXSkgOzsK LSsJCWVzYWMKLSsKLSsJCUFDX01TR19SRVNVTFQoWyRNWVNRTF9pbmNkaXJdKQotKwotKwkJTVlT UUxfVkVSU0lPTj1gZ3JlcCAiZGVmaW5lIE1ZU1FMX1NFUlZFUl9WRVJTSU9OIiAkTVlTUUxfaW5j ZGlyL215c3FsX3ZlcnNpb24uaCB8IGN1dCAtZFwiIC1mMmAKLSsJCU1ZU1FMX0NGTEFHUz0iLUkk e01ZU1FMX2luY2Rpcn0iCi0rCQlNWVNRTF9MSUJTPSItTCR7TVlTUUxfbGliZGlyfSAtbCR7TVlT UUxfQ19MSUJ9IgotKwlmaQotKwotKwlBQ19TVUJTVChNWVNRTF9WRVJTSU9OKQotKwlBQ19TVUJT VChNWVNRTF9DRkxBR1MpCi0rCUFDX1NVQlNUKE1ZU1FMX0xJQlMpCi0rCi0rCXNhdmVfTElCUz0i JExJQlMiCi0rCUxJQlM9IiRMSUJTICRNWVNRTF9MSUJTIgotKwlBQ19DSEVDS19MSUIoJE1ZU1FM X0NfTElCLCBteXNxbF9zdG9yZV9yZXN1bHQsCi0rICAgICAgIAkJCVtdLCAKLSsgICAgICAgICAg ICAgICAJW0FDX01TR19FUlJPUihbQ291bGQgbm90IGZpbmQgd29ya2luZyBNeVNRTCBjbGllbnQg bGlicmFyeSFdKV0KLSsgICAgICAgICAgICAgICAJKQotKwlBQ19TVUJTVChNWVNRTF9DX0xJQikK LSsJTElCUz0iJHNhdmVfTElCUyIKLStdKSBkbmwgQVhfTVlTUUwKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29u ZmlnL2F4X29yYWNsZV9vY2kubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfb3Jh Y2xlX29jaS5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2kt My4wLjBfdHJlcDMwMC9jb25maWcvYXhfb3JhY2xlX29jaS5tNAkyMDEwLTAxLTIzIDEzOjI3OjA0 LjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSwyODYgQEAKLStkbmwgJElkOiBzb2NpLTMuMC4w LTE2LWZpeC1nbnUtYXV0b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0Y2gsdiAxLjEgMjAxMC8wMS8y MyAxNToxNjo0OSBkZW5pc2FybmF1ZCBFeHAgJAotK2RubAotK2RubCBAc3lub3BzaXMgQVhfTElC X09SQUNMRV9PQ0koW01JTklNVU0tVkVSU0lPTl0pCi0rZG5sCi0rZG5sIFRoaXMgbWFjcm8gcHJv dmlkZXMgdGVzdHMgb2YgYXZhaWxhYmlsaXR5IG9mIE9yYWNsZSBPQ0kgQVBJCi0rZG5sIG9mIHBh cnRpY3VsYXIgdmVyc2lvbiBvciBuZXdlci4KLStkbmwgVGhpcyBtYWNyb3MgY2hlY2tzIGZvciBP cmFjbGUgT0NJIGhlYWRlcnMgYW5kIGxpYnJhcmllcyAKLStkbmwgYW5kIGRlZmluZXMgY29tcGls YXRpb24gZmxhZ3MKLStkbmwgCi0rZG5sIE1hY3JvIHN1cHBvcnRzIGZvbGxvd2luZyBvcHRpb25z IGFuZCB0aGVpciB2YWx1ZXM6Ci0rZG5sIDEpIFNpbmdsZS1vcHRpb24gdXNhZ2U6Ci0rZG5sIC0t d2l0aC1vcmFjbGUgLSBwYXRoIHRvIE9SQUNMRV9IT01FIGRpcmVjdG9yeQotK2RubCAyKSBUd28t b3B0aW9ucyB1c2FnZSAoYm90aCBvcHRpb25zIGFyZSByZXF1aXJlZCk6Ci0rZG5sIC0td2l0aC1v cmFjbGUtaW5jbHVkZSAtIHBhdGggdG8gZGlyZWN0b3J5IHdpdGggT0NJIGhlYWRlcnMKLStkbmwg LS13aXRoLW9yYWNsZS1saWIgLSBwYXRoIHRvIGRpcmVjdG9yeSB3aXRoIE9DSSBsaWJyYXJpZXMg Ci0rZG5sCi0rZG5sIE5PVEU6IFRoZXNlIG9wdGlvbnMgZGVzY3JpYmVkIGFib3ZlIGRvZXMgbm90 IHRha2UgeWVzfG5vIHZhbHVlcy4KLStkbmwgSWYgJ3llcycgdmFsdWUgaXMgcGFzc2VkLCB0aGVu IFdBUk5JTkcgbWVzc2FnZSB3aWxsIGJlIGRpc3BsYXllZCwKLStkbmwgJ25vJyB2YWx1ZSwgYXMg d2VsbCBhcyB0aGUgLS13aXRob3V0LW9yYWNsZSogdmFyaWF0aW9ucyB3aWxsIGNhdXNlCi0rZG5s IHRoZSBtYWNybyB3b24ndCBjaGVjayBlbnl0aGluZy4KLStkbmwKLStkbmwgVGhpcyBtYWNybyBj YWxsczoKLStkbmwKLStkbmwgICBBQ19TVUJTVChPUkFDTEVfT0NJX0NGTEFHUykKLStkbmwgICBB Q19TVUJTVChPUkFDTEVfT0NJX0xERkxBR1MpCi0rZG5sICAgQUNfU1VCU1QoT1JBQ0xFX09DSV9W RVJTSU9OKQotK2RubAotK2RubCBBbmQgc2V0czoKLStkbmwKLStkbmwgICBIQVZFX09SQUNMRQot K2RubAotK2RubCBAY2F0ZWdvcnkgSW5zdGFsbGVkUGFja2FnZXMKLStkbmwgQGNhdGVnb3J5IEN4 eAotK2RubCBAYXV0aG9yIE1hdGV1c3ogTG9za290IDxtYXRldXN6QGxvc2tvdC5uZXQ+Ci0rZG5s IEB2ZXJzaW9uICREYXRlOiAyMDEwLzAxLzIzIDE1OjE2OjQ5ICQKLStkbmwgQGxpY2Vuc2UgQWxs UGVybWlzc2l2ZQotK2RubAotK2RubCAkSWQ6IHNvY2ktMy4wLjAtMTYtZml4LWdudS1hdXRvdG9v bHMtY29tcGF0aWJpbGl0eS5wYXRjaCx2IDEuMSAyMDEwLzAxLzIzIDE1OjE2OjQ5IGRlbmlzYXJu YXVkIEV4cCAkCi0rZG5sCi0rQUNfREVGVU4oW0FYX0xJQl9PUkFDTEVfT0NJXSwKLStbCi0rICAg IEFDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSkKLSsgICAgQUNfQVJHX1dJVEgoW29yYWNs ZV0sCi0rICAgICAgICBBQ19IRUxQX1NUUklORyhbLS13aXRoLW9yYWNsZT1APDpARElSQDo+QF0s Ci0rICAgICAgICAgICAgW3VzZSBPcmFjbGUgT0NJIEFQSSBmcm9tIGdpdmVuIHBhdGggdG8gT3Jh Y2xlIGhvbWUgZGlyZWN0b3J5XQotKyAgICAgICAgKSwKLSsgICAgICAgIFsKLSsgICAgICAgIGlm IHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgaWYgdGVzdCAtbiAi JE9SQUNMRV9IT01FIjsgdGhlbgotKyAgICAgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiRP UkFDTEVfSE9NRSIKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICAgIG9yYWNsZV9o b21lX2Rpcj0iIgotKyAgICAgICAgICAgIGZpIAotKyAgICAgICAgZmkKLSsgICAgICAgIF0sCi0r ICAgICAgICBbCi0rICAgICAgICBpZiB0ZXN0IC1uICIkT1JBQ0xFX0hPTUUiOyB0aGVuCi0rICAg ICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCi0rICAgICAgICBlbHNlCi0r ICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIiCi0rICAgICAgICBmaSAKLSsgICAgICAgIF0K LSsgICAgKQotKwotKyAgICBBQ19BUkdfV0lUSChbb3JhY2xlLWluY2x1ZGVdLAotKyAgICAgICAg QUNfSEVMUF9TVFJJTkcoWy0td2l0aC1vcmFjbGUtaW5jbHVkZT1APDpARElSQDo+QF0sCi0rICAg ICAgICAgICAgW3VzZSBPcmFjbGUgT0NJIEFQSSBoZWFkZXJzIGZyb20gZ2l2ZW4gcGF0aF0KLSsg ICAgICAgICksCi0rICAgICAgICBbb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXI9IiR3aXRodmFsIl0s Ci0rICAgICAgICBbb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXI9IiJdCi0rICAgICkKLSsgICAgQUNf QVJHX1dJVEgoW29yYWNsZS1saWJdLAotKyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1v cmFjbGUtbGliPUA8OkBESVJAOj5AXSwKLSsgICAgICAgICAgICBbdXNlIE9yYWNsZSBPQ0kgQVBJ IGxpYnJhcmllcyBmcm9tIGdpdmVuIHBhdGhdCi0rICAgICAgICApLAotKyAgICAgICAgW29yYWNs ZV9ob21lX2xpYl9kaXI9IiR3aXRodmFsIl0sCi0rICAgICAgICBbb3JhY2xlX2hvbWVfbGliX2Rp cj0iIl0KLSsgICAgKQotKwotKyAgICBPUkFDTEVfT0NJX0NGTEFHUz0iIgotKyAgICBPUkFDTEVf T0NJX0xERkxBR1M9IiIKLSsgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSIiCi0rCi0rICAgIGRubAot KyAgICBkbmwgQ29sbGVjdCBpbmNsdWRlL2xpYiBwYXRocwotKyAgICBkbmwgCi0rICAgIHdhbnRf b3JhY2xlX2J1dF9ub19wYXRoPSJubyIKLSsKLSsgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9ob21l X2RpciI7IHRoZW4KLSsKLSsgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9kaXIiICE9ICJu byIgLWEgIiRvcmFjbGVfaG9tZV9kaXIiICE9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgZG5s IE9SQUNMRV9IT01FIHBhdGggcHJvdmlkZWQKLSsgICAgICAgICAgICAKLSsgICAgICAgICAgICBk bmwgUHJpbWFyeSBwYXRoIHRvIE9DSSBoZWFkZXJzLCBhdmFpbGFibGUgaW4gT3JhY2xlPj0xMAot KyAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rpcj0iJG9yYWNsZV9ob21lX2Rpci9yZGJtcy9w dWJsaWMiCi0rICAgICAgICAgICAgCi0rICAgICAgICAgICAgZG5sIFNlY29uZGFyeSBwYXRoIHRv IE9DSSBoZWFkZXJzIHVzZWQgYnkgb2xkZXIgdmVyc2lvbnMKLSsgICAgICAgICAgICBvcmFjbGVf aW5jbHVkZV9kaXIyPSIkb3JhY2xlX2hvbWVfZGlyL3JkYm1zL2RlbW8iCi0rCi0rICAgICAgICAg ICAgZG5sIExpYnJhcnkgcGF0aAotKyAgICAgICAgICAgIG9yYWNsZV9saWJfZGlyPSIkb3JhY2xl X2hvbWVfZGlyL2xpYiIKLSsgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2RpciIgPSAi eWVzIjsgdGhlbgotKyAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5ZXMiCi0r ICAgICAgICBmaQotKwotKyAgICBlbGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2Rp ciIgLW8gLW4gIiRvcmFjbGVfaG9tZV9saWJfZGlyIjsgdGhlbgotKwotKyAgICAgICAgaWYgdGVz dCAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfaW5j bHVkZV9kaXIiICE9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVfZGly PSIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiCi0rICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVf aG9tZV9pbmNsdWRlX2RpciIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIHdhbnRfb3JhY2xl X2J1dF9ub19wYXRoPSJ5ZXMiCi0rICAgICAgICBmaQotKwotKyAgICAgICAgaWYgdGVzdCAiJG9y YWNsZV9ob21lX2xpYl9kaXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiAhPSAi eWVzIjsgdGhlbgotKyAgICAgICAgICAgIG9yYWNsZV9saWJfZGlyPSIkb3JhY2xlX2hvbWVfbGli X2RpciIKLSsgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2xpYl9kaXIiID0gInllcyI7 IHRoZW4KLSsgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgotKyAgICAg ICAgZmkKLSsgICAgZmkKLSsKLSsgICAgaWYgdGVzdCAiJHdhbnRfb3JhY2xlX2J1dF9ub19wYXRo IiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICBBQ19NU0dfV0FSTihbT3JhY2xlIHN1cHBvcnQgaXMg cmVxdWVzdGVkIGJ1dCBubyBPcmFjbGUgcGF0aHMgaGF2ZSBiZWVuIHByb3ZpZGVkLiBcCi0rUGxl YXNlLCBsb2NhdGUgT3JhY2xlIGRpcmVjdG9yaWVzIHVzaW5nIC0td2l0aC1vcmFjbGUgb3IgXAot Ky0td2l0aC1vcmFjbGUtaW5jbHVkZSBhbmQgLS13aXRoLW9yYWNsZS1saWIgb3B0aW9ucy5dKQot KyAgICBmaQotKwotKyAgICBkbmwKLSsgICAgZG5sIENoZWNrIE9DSSBmaWxlcwotKyAgICBkbmwK LSsgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9pbmNsdWRlX2RpciIgLWEgLW4gIiRvcmFjbGVfbGli X2RpciI7IHRoZW4KLSsKLSsgICAgICAgIHNhdmVkX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0rICAg ICAgICBDUFBGTEFHUz0iJENQUEZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpciIKLSsKLSsgICAg ICAgIGRubCBBZGRpdGlvbmFsIHBhdGggZm9yIG9sZGVyIE9yYWNsZSBpbnN0YWxsYXRpb25zIAot KyAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9pbmNsdWRlX2RpcjIiOyB0aGVuCi0rICAgICAg ICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIyIgotKyAgICAg ICAgZmkKLSsKLSsgICAgICAgICMgRmlndXJlIG91dCBpZiB3ZSBhcmUgYnVpbGRpbmcgb24gd2lu MzIuCi0rICAgICAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgICAgICAgKm1pbmd3MzIqICkg V0lOMzI9eWVzIDs7Ci0rICAgICAgICAgICAgKmN5Z3dpbiogKSAgV0lOMzI9eWVzIDs7Ci0rICAg ICAgICAgICAgKikgV0lOMzI9bm8gOzsKLSsgICAgICAgIGVzYWMKLSsKLSsgICAgICAgIGlmIHRl c3QgIiRXSU4zMiIgPSAibm8iCi0rICAgICAgICB0aGVuCi0rICAgICAgICAgICAgb2NpX2xpYnM9 Ii1sY2xudHNoIC1sbm56MTEiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgb2NpX2xpYnM9 Ii1sb2NpIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIHNhdmVkX0xERkxBR1M9IiRMREZMQUdT IgotKyAgICAgICAgc2F2ZWRfTElCUz0iJExJQlMiCi0rICAgICAgICBvY2lfbGRmbGFncz0iLUwk b3JhY2xlX2xpYl9kaXIiCi0rICAgICAgICBMREZMQUdTPSIkTERGTEFHUyAkb2NpX2xkZmxhZ3Mi Ci0rICAgICAgICBMSUJTPSIkTElCUyAkb2NpX2xpYnMiCi0rCi0rICAgICAgICBkbmwKLSsgICAg ICAgIGRubCBDaGVjayBPQ0kgaGVhZGVycwotKyAgICAgICAgZG5sCi0rICAgICAgICBBQ19NU0df Q0hFQ0tJTkcoW2ZvciBPcmFjbGUgT0NJIGhlYWRlcnMgaW4gJG9yYWNsZV9pbmNsdWRlX2Rpcl0p Ci0rCi0rICAgICAgICBBQ19MQU5HX1BVU0goQysrKQotKyAgICAgICAgQUNfQ09NUElMRV9JRkVM U0UoWwotKyAgICAgICAgICAgIEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxvY2kuaD5d XSwKLSsgICAgICAgICAgICAgICAgW1sKLSsjaWYgZGVmaW5lZChPQ0lfTUFKT1JfVkVSU0lPTikK LSsjaWYgT0NJX01BSk9SX1ZFUlNJT04gPT0gMTAgJiYgT0NJX01JTk9SX1ZFUlNJT04gPT0gMgot Ky8vIE9yYWNsZSAxMC4yIGRldGVjdGVkCi0rI2VuZGlmCi0rI2VsaWYgZGVmaW5lZChPQ0lfVjdf U1lOVEFYKQotKy8vIE9LLCBvbGRlciBPcmFjbGUgZGV0ZWN0ZWQKLSsvLyBUT0RPIC0gbWxvc2tv dDogZmluZCBiZXR0ZXIgbWFjcm8gdG8gY2hlY2sgZm9yIG9sZGVyIHZlcnNpb25zOyAKLSsjZWxz ZQotKyMgIGVycm9yIE9yYWNsZSBvY2kuaCBoZWFkZXIgbm90IGZvdW5kCi0rI2VuZGlmCi0rICAg ICAgICAgICAgICAgIF1dCi0rICAgICAgICAgICAgKV0sCi0rICAgICAgICAgICAgWwotKyAgICAg ICAgICAgIE9SQUNMRV9PQ0lfQ0ZMQUdTPSItSSRvcmFjbGVfaW5jbHVkZV9kaXIiCi0rCi0rICAg ICAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9pbmNsdWRlX2RpcjIiOyB0aGVuCi0rICAgICAg ICAgICAgICAgIE9SQUNMRV9PQ0lfQ0ZMQUdTPSIkT1JBQ0xFX09DSV9DRkxBR1MgLUkkb3JhY2xl X2luY2x1ZGVfZGlyMiIKLSsgICAgICAgICAgICBmaQotKwotKyAgICAgICAgICAgIG9jaV9oZWFk ZXJfZm91bmQ9InllcyIKLSsgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotKyAgICAg ICAgICAgIF0sCi0rICAgICAgICAgICAgWwotKyAgICAgICAgICAgIG9jaV9oZWFkZXJfZm91bmQ9 Im5vIgotKyAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vdCBmb3VuZF0pCi0rICAgICAgICAg ICAgXQotKyAgICAgICAgKQotKyAgICAgICAgQUNfTEFOR19QT1AoW0MrK10pCi0rICAgICAgICAK LSsgICAgICAgIGRubAotKyAgICAgICAgZG5sIENoZWNrIE9DSSBsaWJyYXJpZXMKLSsgICAgICAg IGRubAotKyAgICAgICAgaWYgdGVzdCAiJG9jaV9oZWFkZXJfZm91bmQiID0gInllcyI7IHRoZW4K LSsKLSsgICAgICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBPcmFjbGUgT0NJIGxpYnJhcmll cyBpbiAkb3JhY2xlX2xpYl9kaXJdKQotKwotKyAgICAgICAgICAgIEFDX0xBTkdfUFVTSChDKysp Ci0rICAgICAgICAgICAgQUNfTElOS19JRkVMU0UoWwotKyAgICAgICAgICAgICAgICBBQ19MQU5H X1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8b2NpLmg+XV0sCi0rICAgICAgICAgICAgICAgICAgICBb WwotK09DSUVudiogZW52aCA9IDA7Ci0rT0NJRW52Q3JlYXRlKCZlbnZoLCBPQ0lfREVGQVVMVCwg MCwgMCwgMCwgMCwgMCwgMCk7Ci0raWYgKGVudmgpIE9DSUhhbmRsZUZyZWUoZW52aCwgT0NJX0hU WVBFX0VOVik7Ci0rICAgICAgICAgICAgICAgICAgICBdXQotKyAgICAgICAgICAgICAgICApXSwK LSsgICAgICAgICAgICAgICAgWwotKyAgICAgICAgICAgICAgICBPUkFDTEVfT0NJX0xERkxBR1M9 IiRvY2lfbGRmbGFncyAkb2NpX2xpYnMiCi0rICAgICAgICAgICAgICAgIG9jaV9saWJfZm91bmQ9 InllcyIKLSsgICAgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLSsgICAgICAgICAg ICAgICAgXSwKLSsgICAgICAgICAgICAgICAgWwotKyAgICAgICAgICAgICAgICBvY2lfbGliX2Zv dW5kPSJubyIKLSsgICAgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbbm90IGZvdW5kXSkKLSsg ICAgICAgICAgICAgICAgXQotKyAgICAgICAgICAgICkKLSsgICAgICAgICAgICBBQ19MQU5HX1BP UChbQysrXSkKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBDUFBGTEFHUz0iJHNhdmVkX0NQUEZM QUdTIgotKyAgICAgICAgTERGTEFHUz0iJHNhdmVkX0xERkxBR1MiCi0rICAgICAgICBMSUJTPSIk c2F2ZWRfTElCUyIKLSsgICAgZmkKLSsKLSsgICAgZG5sCi0rICAgIGRubCBDaGVjayByZXF1aXJl ZCB2ZXJzaW9uIG9mIE9yYWNsZSBpcyBhdmFpbGFibGUKLSsgICAgZG5sCi0rICAgIG9yYWNsZV92 ZXJzaW9uX3JlcT1pZmVsc2UoWyQxXSwgW10sIFtdLCBbJDFdKQotKwotKyAgICBpZiB0ZXN0ICIk b2NpX2hlYWRlcl9mb3VuZCIgPSAieWVzIiAtYSAiJG9jaV9saWJfZm91bmQiID0gInllcyIgLWEg XAotKyAgICAgICAgLW4gIiRvcmFjbGVfdmVyc2lvbl9yZXEiOyB0aGVuCi0rCi0rICAgICAgICBv cmFjbGVfdmVyc2lvbl9tYWpvcj1gY2F0ICRvcmFjbGVfaW5jbHVkZV9kaXIvb2NpLmggXAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBncmVwICcjZGVmaW5lLipPQ0lfTUFKT1JfVkVS U0lPTi4qJyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8jZGVm aW5lIE9DSV9NQUpPUl9WRVJTSU9OICAqLy8nIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgc2VkIC1lICdzLyAgKlwvXCouKlwqXC8vLydgCi0rCi0rICAgICAgICBvcmFjbGVfdmVy c2lvbl9taW5vcj1gY2F0ICRvcmFjbGVfaW5jbHVkZV9kaXIvb2NpLmggXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCBncmVwICcjZGVmaW5lLipPQ0lfTUlOT1JfVkVSU0lPTi4qJyBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8jZGVmaW5lIE9DSV9N SU5PUl9WRVJTSU9OICAqLy8nIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2Vk IC1lICdzLyAgKlwvXCouKlwqXC8vLydgCi0rCi0rICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lm IE9yYWNsZSBPQ0kgdmVyc2lvbiBpcyA+PSAkb3JhY2xlX3ZlcnNpb25fcmVxXSkKLSsKLSsgICAg ICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfdmVyc2lvbl9tYWpvciIgLWEgLW4gJCJvcmFjbGVfdmVy c2lvbl9taW5vciI7IHRoZW4KLSsKLSsgICAgICAgICAgICBPUkFDTEVfT0NJX1ZFUlNJT049IiRv cmFjbGVfdmVyc2lvbl9tYWpvci4kb3JhY2xlX3ZlcnNpb25fbWlub3IiCi0rCi0rICAgICAgICAg ICAgZG5sIERlY29tcG9zZSByZXF1aXJlZCB2ZXJzaW9uIHN0cmluZyBvZiBPcmFjbGUKLSsgICAg ICAgICAgICBkbmwgYW5kIGNhbGN1bGF0ZSBpdHMgbnVtYmVyIHJlcHJlc2VudGF0aW9uCi0rICAg ICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRvcmFjbGVfdmVyc2lvbl9y ZXEgOiAnXChbWzAtOV1dKlwpJ2AKLSsgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbWlu b3I9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcSA6ICdbWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AK LSsKLSsgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRvcmFjbGVf dmVyc2lvbl9yZXFfbWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwYAotKwot KyAgICAgICAgICAgIGRubCBDYWxjdWxhdGUgaXRzIG51bWJlciByZXByZXNlbnRhdGlvbiAKLSsg ICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9udW1iZXI9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX21h am9yIFwqIDEwMDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAk b3JhY2xlX3ZlcnNpb25fbWlub3IgXCogMTAwMGAKLSsKLSsgICAgICAgICAgICBvcmFjbGVfdmVy c2lvbl9jaGVjaz1gZXhwciAkb3JhY2xlX3ZlcnNpb25fbnVtYmVyIFw+XD0gJG9yYWNsZV92ZXJz aW9uX3JlcV9udW1iZXJgCi0rICAgICAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV92ZXJzaW9uX2No ZWNrIiA9ICIxIjsgdGhlbgotKyAgICAgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQot KyAgICAgICAgICAgICAgICBBQ19ERUZJTkUoSEFWRV9PUkFDTEUsIFsxXSwgW0RlZmluZSB0byAx IGlmIHRoZSBPcmFjbGUgT0NJIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsgICAgICAgICAgICBl bHNlCi0rICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgICAgICAgICAg ICAgQUNfTVNHX0VSUk9SKFtPcmFjbGUgJE9SQUNMRV9PQ0lfVkVSU0lPTiBmb3VuZCwgYnV0IHJl cXVpcmVkIHZlcnNpb24gaXMgJG9yYWNsZV92ZXJzaW9uX3JlcV0pCi0rICAgICAgICAgICAgZmkK LSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBPUkFDTEVfT0NJX1ZFUlNJT049IlVOS05PV04i Ci0rICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbbm9dKQotKyAgICAgICAgICAgIEFDX01TR19X QVJOKFtPcmFjbGUgdmVyc2lvbiB1bmtub3duLCBwcm9iYWJseSBPQ0kgb2xkZXIgdGhhbiAxMC4y IGlzIGF2YWlsYWJsZV0pCi0rICAgICAgICBmaQotKyAgICBmaQotKwotKyAgICBBQ19TVUJTVChb T1JBQ0xFX09DSV9WRVJTSU9OXSkKLSsgICAgQUNfU1VCU1QoW09SQUNMRV9PQ0lfQ0ZMQUdTXSkK LSsgICAgQUNfU1VCU1QoW09SQUNMRV9PQ0lfTERGTEFHU10pCi0rXSkKLWRpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBzb2NpLTMuMC4wX3RyZXAzMDAv Y29uZmlnL2F4X3Bvc3RncmVzcWwubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhf cG9zdGdyZXNxbC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfcG9zdGdyZXNxbC5tNAkyMDEwLTAxLTIzIDEzOjI3 OjA0LjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSwxNzEgQEAKLStkbmwgJElkOiBzb2NpLTMu MC4wLTE2LWZpeC1nbnUtYXV0b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0Y2gsdiAxLjEgMjAxMC8w MS8yMyAxNToxNjo0OSBkZW5pc2FybmF1ZCBFeHAgJAotK2RubAotK2RubCBAc3lub3BzaXMgQVhf TElCX1BPU1RHUkVTUUwoW01JTklNVU0tVkVSU0lPTl0pCi0rZG5sCi0rZG5sIFRoaXMgbWFjcm8g cHJvdmlkZXMgdGVzdHMgb2YgYXZhaWxhYmlsaXR5IG9mIFBvc3RncmVTUUwgJ2xpYnBxJyBsaWJy YXJ5Ci0rZG5sIG9mIHBhcnRpY3VsYXIgdmVyc2lvbiBvciBuZXdlci4KLStkbmwgCi0rZG5sIEFY X0xJQl9QT1NUR1JFU1FMIG1hY3JvIHRha2VzIG9ubHkgb25lIGFyZ3VtZW50IHdoaWNoIGlzIG9w dGlvbmFsLiBJZiB0aGVyZSBpcyBubyAKLStkbmwgcmVxdWlyZWQgdmVyc2lvbiBwYXNzZWQsIHRo ZW4gbWFjcm8gZG9lcyBub3QgcnVuIHZlcnNpb24gdGVzdC4KLStkbmwKLStkbmwgVGhlIC0td2l0 aC1wb3N0Z3Jlc3FsIG9wdGlvbiB0YWtlcyBvbmUgb2YgdGhyZWUgcG9zc2libGUgdmFsdWVzOgot K2RubCBubyAgIC0gZG8gbm90IGNoZWNrIGZvciBQb3N0Z3JlU1FMIGNsaWVudCBsaWJyYXJ5Ci0r ZG5sIHllcyAgLSBkbyBjaGVjayBmb3IgUG9zdGdyZVNRTCBsaWJyYXJ5IGluIHN0YW5kYXJkIGxv Y2F0aW9ucwotK2RubCAgICAgICAgKHBnX2NvbmZpZyBzaG91bGQgYmUgaW4gdGhlIFBBVEgpCi0r ZG5sIHBhdGggLSBjb21wbGV0ZSBwYXRoIHRvIHBnX2NvbmZpZyB1dGlsaXR5LCB1c2UgdGhpcyBv cHRpb24KLStkbmwgICAgICAgIGlmIHBnX2NvbmZpZyBjYW4ndCBiZSBmb3VuZCBpbiB0aGUgUEFU SAotK2RubAotK2RubCBUaGlzIG1hY3JvIGNhbGxzOgotK2RubAotK2RubCAgIEFDX1NVQlNUKFBP U1RHUkVTUUxfQ0ZMQUdTKQotK2RubCAgIEFDX1NVQlNUKFBPU1RHUkVTUUxfTERGTEFHUykKLStk bmwgICBBQ19TVUJTVChQT1NUR1JFU1FMX1ZFUlNJT04pCi0rZG5sCi0rZG5sIEFuZCBzZXRzOgot K2RubAotK2RubCAgIEhBVkVfUE9TVEdSRVNRTAotK2RubAotK2RubCBAY2F0ZWdvcnkgSW5zdGFs bGVkUGFja2FnZXMKLStkbmwgQGNhdGVnb3J5IEN4eAotK2RubCBAYXV0aG9yIE1hdGV1c3ogTG9z a290IDxtYXRldXN6QGxvc2tvdC5uZXQ+Ci0rZG5sIEB2ZXJzaW9uICREYXRlOiAyMDEwLzAxLzIz IDE1OjE2OjQ5ICQKLStkbmwgQGxpY2Vuc2UgQWxsUGVybWlzc2l2ZQotK2RubAotK2RubCAkSWQ6 IHNvY2ktMy4wLjAtMTYtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaCx2IDEu MSAyMDEwLzAxLzIzIDE1OjE2OjQ5IGRlbmlzYXJuYXVkIEV4cCAkCi0rZG5sCi0rQUNfREVGVU4o W0FYX0xJQl9QT1NUR1JFU1FMXSwKLStbCi0rICAgIEFDX0FSR19XSVRIKFtwb3N0Z3Jlc3FsXSwK LSsgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtcG9zdGdyZXNxbD1APDpAQVJHQDo+QF0s Ci0rICAgICAgICAgICAgW3VzZSBQb3N0Z3JlU1FMIGxpYnJhcnkgQDw6QGRlZmF1bHQ9eWVzQDo+ QCwgb3B0aW9uYWxseSBzcGVjaWZ5IHBhdGggdG8gcGdfY29uZmlnXQotKyAgICAgICAgKSwKLSsg ICAgICAgIFsKLSsJUE9TVEdSRVNRTF9pbmNfY2hlY2s9IiR3aXRoX3Bvc3RncmVzcWwvaW5jbHVk ZSIKLSsgICAgICAgIGlmIHRlc3QgIiR3aXRodmFsIiA9ICJubyI7IHRoZW4KLSsgICAgICAgICAg ICB3YW50X3Bvc3RncmVzcWw9Im5vIgotKyAgICAgICAgZWxpZiB0ZXN0ICIkd2l0aHZhbCIgPSAi eWVzIjsgdGhlbgotKyAgICAgICAgICAgIHdhbnRfcG9zdGdyZXNxbD0ieWVzIgotKyAgICAgICAg ZWxzZQotKyAgICAgICAgICAgIHdhbnRfcG9zdGdyZXNxbD0ieWVzIgotKyAgICAgICAgICAgIFBH X0NPTkZJRz0iJHdpdGh2YWwiCi0rICAgICAgICBmaQotKyAgICAgICAgXSwKLSsgICAgICAgIFt3 YW50X3Bvc3RncmVzcWw9InllcyIKLSsJUE9TVEdSRVNRTF9pbmNfY2hlY2s9Ii91c3IvaW5jbHVk ZSAvdXNyL2xvY2FsIC9vcHQiXQotKyAgICApCi0rCi0rICAgIFBPU1RHUkVTUUxfQ0ZMQUdTPSIi Ci0rICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iIgotKyAgICBQT1NUR1JFU1FMX1BPU1RHUkVTUUw9 IiIKLSsKLSsgICAgZG5sCi0rICAgIGRubCBDaGVjayBQb3N0Z3JlU1FMIGxpYnJhcmllcyAobGli cHEpCi0rICAgIGRubAotKyAgICAKLSsgICAgaWYgdGVzdCAiJHdhbnRfcG9zdGdyZXNxbCIgPSAi eWVzIjsgdGhlbgotKwotKyAgICAgICAgaWYgdGVzdCAteiAiJFBHX0NPTkZJRyIgLW8gdGVzdDsg dGhlbgotKyAgICAgICAgICAgIEFDX1BBVEhfUFJPRyhbUEdfQ09ORklHXSwgW3BnX2NvbmZpZ10s IFtdKQotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIGlmIHRlc3QgISAteCAiJFBHX0NPTkZJRyI7 IHRoZW4KLSsgICAgICAgICAgICBBQ19NU0dfRVJST1IoWyRQR19DT05GSUcgZG9lcyBub3QgZXhp c3Qgb3IgaXQgaXMgbm90IGFuIGV4ZWN0dWFibGUgZmlsZV0pCi0rICAgICAgICAgICAgUEdfQ09O RklHPSJubyIKLSsgICAgICAgICAgICBmb3VuZF9wb3N0Z3Jlc3FsPSJubyIKLSsgICAgICAgIGZp Ci0rCi0rICAgICAgICBpZiB0ZXN0ICIkUEdfQ09ORklHIiAhPSAibm8iOyB0aGVuCi0rICAgICAg ICAgICAgIwotKyAgICAgICAgICAgICMgTG9vayBmb3IgUG9zdGdyZXNxbCBDIEFQSSBoZWFkZXJz Ci0rICAgICAgICAgICAgIwotKyAgICAgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIFBvc3Rn cmVzcWwgaW5jbHVkZSBkaXJlY3RvcnldKQotKyAgICAgICAgICAgIFBPU1RHUkVTUUxfaW5jZGly PQotKyAgICAgICAgICAgIGZvciBwb3N0Z3Jlc3FsX2luY19kaXIgaW4gJFBPU1RHUkVTUUxfaW5j X2NoZWNrCi0rICAgICAgICAgICAgZG8KLSsgICAgICAgICAgICAgICAgaWYgdGVzdCAtZCAiJHBv c3RncmVzcWxfaW5jX2RpciIgXAotKyAgICAgICAgICAgICAgICAmJiB0ZXN0IC1mICIkcG9zdGdy ZXNxbF9pbmNfZGlyL3Bvc3RncmVzX2V4dC5oIgotKyAgICAgICAgICAgICAgICB0aGVuCi0rICAg ICAgICAgICAgICAgICAgICBQT1NUR1JFU1FMX2luY2Rpcj0kcG9zdGdyZXNxbF9pbmNfZGlyCi0r ICAgICAgICAgICAgICAgICAgICBicmVhawotKyAgICAgICAgICAgICAgICBmaQotKyAgICAgICAg ICAgIGRvbmUKLSsKLSsgICAgICAgICAgICBpZiB0ZXN0IC16ICIkUE9TVEdSRVNRTF9pbmNkaXIi Ci0rICAgICAgICAgICAgdGhlbgotKyAgICAgICAgICAgICAgICBBQ19NU0dfRVJST1IoW0RpZG4n dCBmaW5kIHRoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyIGluICckUE9TVEdSRVNRTF9pbmNfY2hl Y2snXSkKLSsgICAgICAgICAgICBmaQotKwotKyAgICAgICAgICAgIGNhc2UgIiRQT1NUR1JFU1FM X2luY2RpciIgaW4KLSsgICAgICAgICAgICAgICAgLyogKSA7OwotKyAgICAgICAgICAgICAgICAq ICkgIEFDX01TR19FUlJPUihbVGhlIFBvc3RncmVzcWwgaW5jbHVkZSBkaXJlY3RvcnkgKCRQT1NU R1JFU1FMX2luY2RpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLl0pIDs7Ci0rICAgICAgICAg ICAgZXNhYwotKwotKyAgICAgICAgICAgIEFDX01TR19SRVNVTFQoWyRQT1NUR1JFU1FMX2luY2Rp cl0pCi0rCi0rICAgICAgICAgICAgaWYgdGVzdCAiJFBPU1RHUkVTUUxfaW5jZGlyIiA9ICIvdXNy L2luY2x1ZGUiOyB0aGVuCi0rICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iIgotKyAg ICAgICAgICAgIGVsc2UKLSsgICAgICAgICAgICAgIFBPU1RHUkVTUUxfQ0ZMQUdTPSItSSR7UE9T VEdSRVNRTF9pbmNkaXJ9IgotKyAgICAgICAgICAgIGZpCi0rCi0rICAgICAgICAgICAgUE9TVEdS RVNRTF9MREZMQUdTPSItTGAkUEdfQ09ORklHIC0tbGliZGlyYCAtbHBxIgotKwotKyAgICAgICAg ICAgIFBPU1RHUkVTUUxfVkVSU0lPTj1gJFBHX0NPTkZJRyAtLXZlcnNpb24gfCBzZWQgLWUgJ3Mj UG9zdGdyZVNRTCAjIydgCi0rCi0rICAgICAgICAgICAgQUNfREVGSU5FKFtIQVZFX1BPU1RHUkVT UUxdLCBbMV0sIFtEZWZpbmUgdG8gMSBpZiBQb3N0Z3JlU1FMIGxpYnJhcmllcyBhcmUgYXZhaWxh YmxlXSkKLSsgICAgICAgICAgICAKLSsgICAgICAgICAgICBmb3VuZF9wb3N0Z3Jlc3FsPSJ5ZXMi Ci0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ibm8iCi0rICAg ICAgICBmaQotKyAgICBmaQotKwotKyAgICBkbmwKLSsgICAgZG5sIENoZWNrIGlmIHJlcXVpcmVk IHZlcnNpb24gb2YgUG9zdGdyZVNRTCBpcyBhdmFpbGFibGUKLSsgICAgZG5sCi0rICAgIAotKwot KyAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxPWlmZWxzZShbJDFdLCBbXSwgW10sIFskMV0pCi0r Ci0rICAgIGlmIHRlc3QgIiRmb3VuZF9wb3N0Z3Jlc3FsIiA9ICJ5ZXMiIC1hIC1uICIkcG9zdGdy ZXNxbF92ZXJzaW9uX3JlcSI7IHRoZW4KLSsKLSsgICAgICAgIEFDX01TR19DSEVDS0lORyhbaWYg UG9zdGdyZVNRTCB2ZXJzaW9uIGlzID49ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxXSkKLSsKLSsg ICAgICAgIGRubCBEZWNvbXBvc2UgcmVxdWlyZWQgdmVyc2lvbiBzdHJpbmcgb2YgUG9zdGdyZVNR TAotKyAgICAgICAgZG5sIGFuZCBjYWxjdWxhdGUgaXRzIG51bWJlciByZXByZXNlbnRhdGlvbgot KyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkcG9zdGdyZXNxbF92 ZXJzaW9uX3JlcSA6ICdcKFtbMC05XV0qXCknYAotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9u X3JlcV9taW5vcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdbWzAtOV1dKlwuXChb WzAtOV1dKlwpJ2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm89YGV4cHIg JHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLltbMC05XV0qXC5cKFtbMC05XV0q XCknYAotKyAgICAgICAgaWYgdGVzdCAieCRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvIiA9 ICJ4IjsgdGhlbgotKyAgICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm89IjAi Ci0rICAgICAgICBmaQotKwotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9udW1iZXI9 YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9t aW5vciBcKiAxMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRw b3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvYAotKwotKyAgICAgICAgZG5sIERlY29tcG9zZSB2 ZXJzaW9uIHN0cmluZyBvZiBpbnN0YWxsZWQgUG9zdGdyZVNRTAotKyAgICAgICAgZG5sIGFuZCBj YWxjdWxhdGUgaXRzIG51bWJlciByZXByZXNlbnRhdGlvbgotKyAgICAgICAgcG9zdGdyZXNxbF92 ZXJzaW9uX21ham9yPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnXChbWzAtOV1dKlwpJ2AK LSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taW5vcj1gZXhwciAkUE9TVEdSRVNRTF9WRVJT SU9OIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJz aW9uX21pY3JvPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnW1swLTldXSpcLltbMC05XV0q XC5cKFtbMC05XV0qXCknYAotKyAgICAgICAgaWYgdGVzdCAieCRwb3N0Z3Jlc3FsX3ZlcnNpb25f bWljcm8iID0gIngiOyB0aGVuCi0rICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21pY3Jv PSIwIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9udW1iZXI9 YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3IgXCog MTAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNx bF92ZXJzaW9uX21pY3JvYAotKwotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX2NoZWNrPWBl eHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyIFw+XD0gJHBvc3RncmVzcWxfdmVyc2lvbl9y ZXFfbnVtYmVyYAotKyAgICAgICAgaWYgdGVzdCAiJHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjayIg PSAiMSI7IHRoZW4KLSsgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotKyAgICAgICAg ZWxzZQotKyAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgICAgIGZpCi0rICAg IGZpCi0rCi0rICAgIEFDX1NVQlNUKFtQT1NUR1JFU1FMX1ZFUlNJT05dKQotKyAgICBBQ19TVUJT VChbUE9TVEdSRVNRTF9DRkxBR1NdKQotKyAgICBBQ19TVUJTVChbUE9TVEdSRVNRTF9MREZMQUdT XSkKLStdKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9jb25maWcuZ3Vlc3Mg c29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9jb25maWcuZ3Vlc3MKLS0tLSBzb2NpLTMuMC4wXzQt cGFjay9jb25maWcvY29uZmlnLmd1ZXNzCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9jb25maWcuZ3Vlc3MJMjAxMC0wMS0y MyAxNDo0NDo1MC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMTUwMSBAQAotKyMhIC9iaW4v c2gKLSsjIEF0dGVtcHQgdG8gZ3Vlc3MgYSBjYW5vbmljYWwgc3lzdGVtIG5hbWUuCi0rIyAgIENv cHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5 OSwKLSsjICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywg MjAwOCwgMjAwOQotKyMgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSt0aW1l c3RhbXA9JzIwMDktMTEtMjAnCi0rCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAotKyMgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu c2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLCBidXQKLSsjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rIyBGb3VuZGF0aW9uLCBJ bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQgLSBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQotKyMgMDIx MTAtMTMwMSwgVVNBLgotKyMKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKLSsjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFz IHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQotKyMgY29uZmlndXJhdGlvbiBzY3Jp cHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKLSsjIHRo ZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRo YXQgcHJvZ3JhbS4KLSsKLSsKLSsjIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBQZXIgQm90aG5lci4g IFBsZWFzZSBzZW5kIHBhdGNoZXMgKGNvbnRleHQKLSsjIGRpZmYgZm9ybWF0KSB0byA8Y29uZmln LXBhdGNoZXNAZ251Lm9yZz4gYW5kIGluY2x1ZGUgYSBDaGFuZ2VMb2cKLSsjIGVudHJ5LgotKyMK LSsjIFRoaXMgc2NyaXB0IGF0dGVtcHRzIHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5c3RlbSBuYW1l IHNpbWlsYXIgdG8KLSsjIGNvbmZpZy5zdWIuICBJZiBpdCBzdWNjZWVkcywgaXQgcHJpbnRzIHRo ZSBzeXN0ZW0gbmFtZSBvbiBzdGRvdXQsIGFuZAotKyMgZXhpdHMgd2l0aCAwLiAgT3RoZXJ3aXNl LCBpdCBleGl0cyB3aXRoIDEuCi0rIwotKyMgWW91IGNhbiBnZXQgdGhlIGxhdGVzdCB2ZXJzaW9u IG9mIHRoaXMgc2NyaXB0IGZyb206Ci0rIyBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0 d2ViLz9wPWNvbmZpZy5naXQ7YT1ibG9iX3BsYWluO2Y9Y29uZmlnLmd1ZXNzO2hiPUhFQUQKLSsK LSttZT1gZWNobyAiJDAiIHwgc2VkIC1lICdzLC4qLywsJ2AKLSsKLSt1c2FnZT0iXAotK1VzYWdl OiAkMCBbT1BUSU9OXQotKwotK091dHB1dCB0aGUgY29uZmlndXJhdGlvbiBuYW1lIG9mIHRoZSBz eXN0ZW0gXGAkbWUnIGlzIHJ1biBvbi4KLSsKLStPcGVyYXRpb24gbW9kZXM6Ci0rICAtaCwgLS1o ZWxwICAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKLSsgIC10LCAtLXRpbWUtc3Rh bXAgICBwcmludCBkYXRlIG9mIGxhc3QgbW9kaWZpY2F0aW9uLCB0aGVuIGV4aXQKLSsgIC12LCAt LXZlcnNpb24gICAgICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0Ci0rCi0rUmVwb3J0 IGJ1Z3MgYW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiIKLSsKLSt2ZXJz aW9uPSJcCi0rR05VIGNvbmZpZy5ndWVzcyAoJHRpbWVzdGFtcCkKLSsKLStPcmlnaW5hbGx5IHdy aXR0ZW4gYnkgUGVyIEJvdGhuZXIuCi0rQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAx OTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAotKzIwMDIsIDIwMDMsIDIw MDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu Ci0rCi0rVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBj b25kaXRpb25zLiAgVGhlcmUgaXMgTk8KLSt3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4iCi0rCi0raGVscD0i Ci0rVHJ5IFxgJG1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgotKwotKyMgUGFyc2Ug Y29tbWFuZCBsaW5lCi0rd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCi0rICBjYXNlICQxIGluCi0r ICAgIC0tdGltZS1zdGFtcCB8IC0tdGltZSogfCAtdCApCi0rICAgICAgIGVjaG8gIiR0aW1lc3Rh bXAiIDsgZXhpdCA7OwotKyAgICAtLXZlcnNpb24gfCAtdiApCi0rICAgICAgIGVjaG8gIiR2ZXJz aW9uIiA7IGV4aXQgOzsKLSsgICAgLS1oZWxwIHwgLS1oKiB8IC1oICkKLSsgICAgICAgZWNobyAi JHVzYWdlIjsgZXhpdCA7OwotKyAgICAtLSApICAgICAjIFN0b3Agb3B0aW9uIHByb2Nlc3NpbmcK LSsgICAgICAgc2hpZnQ7IGJyZWFrIDs7Ci0rICAgIC0gKQkjIFVzZSBzdGRpbiBhcyBpbnB1dC4K LSsgICAgICAgYnJlYWsgOzsKLSsgICAgLSogKQotKyAgICAgICBlY2hvICIkbWU6IGludmFsaWQg b3B0aW9uICQxJGhlbHAiID4mMgotKyAgICAgICBleGl0IDEgOzsKLSsgICAgKiApCi0rICAgICAg IGJyZWFrIDs7Ci0rICBlc2FjCi0rZG9uZQotKwotK2lmIHRlc3QgJCMgIT0gMDsgdGhlbgotKyAg ZWNobyAiJG1lOiB0b28gbWFueSBhcmd1bWVudHMkaGVscCIgPiYyCi0rICBleGl0IDEKLStmaQot KwotK3RyYXAgJ2V4aXQgMScgMSAyIDE1Ci0rCi0rIyBDQ19GT1JfQlVJTEQgLS0gY29tcGlsZXIg dXNlZCBieSB0aGlzIHNjcmlwdC4gTm90ZSB0aGF0IHRoZSB1c2Ugb2YgYQotKyMgY29tcGlsZXIg dG8gYWlkIGluIHN5c3RlbSBkZXRlY3Rpb24gaXMgZGlzY291cmFnZWQgYXMgaXQgcmVxdWlyZXMK LSsjIHRlbXBvcmFyeSBmaWxlcyB0byBiZSBjcmVhdGVkIGFuZCwgYXMgeW91IGNhbiBzZWUgYmVs b3csIGl0IGlzIGEKLSsjIGhlYWRhY2hlIHRvIGRlYWwgd2l0aCBpbiBhIHBvcnRhYmxlIGZhc2hp b24uCi0rCi0rIyBIaXN0b3JpY2FsbHksIGBDQ19GT1JfQlVJTEQnIHVzZWQgdG8gYmUgbmFtZWQg YEhPU1RfQ0MnLiBXZSBzdGlsbAotKyMgdXNlIGBIT1NUX0NDJyBpZiBkZWZpbmVkLCBidXQgaXQg aXMgZGVwcmVjYXRlZC4KLSsKLSsjIFBvcnRhYmxlIHRtcCBkaXJlY3RvcnkgY3JlYXRpb24gaW5z cGlyZWQgYnkgdGhlIEF1dG9jb25mIHRlYW0uCi0rCi0rc2V0X2NjX2Zvcl9idWlsZD0nCi0rdHJh cCAiZXhpdGNvZGU9XCQ/OyAocm0gLWYgXCR0bXBmaWxlcyAyPi9kZXYvbnVsbDsgcm1kaXIgXCR0 bXAgMj4vZGV2L251bGwpICYmIGV4aXQgXCRleGl0Y29kZSIgMCA7Ci0rdHJhcCAicm0gLWYgXCR0 bXBmaWxlcyAyPi9kZXYvbnVsbDsgcm1kaXIgXCR0bXAgMj4vZGV2L251bGw7IGV4aXQgMSIgMSAy IDEzIDE1IDsKLSs6ICR7VE1QRElSPS90bXB9IDsKLSsgeyB0bXA9YCh1bWFzayAwNzcgJiYgbWt0 ZW1wIC1kICIkVE1QRElSL2NnWFhYWFhYIikgMj4vZGV2L251bGxgICYmIHRlc3QgLW4gIiR0bXAi ICYmIHRlc3QgLWQgIiR0bXAiIDsgfSB8fAotKyB7IHRlc3QgLW4gIiRSQU5ET00iICYmIHRtcD0k VE1QRElSL2NnJCQtJFJBTkRPTSAmJiAodW1hc2sgMDc3ICYmIG1rZGlyICR0bXApIDsgfSB8fAot KyB7IHRtcD0kVE1QRElSL2NnLSQkICYmICh1bWFzayAwNzcgJiYgbWtkaXIgJHRtcCkgJiYgZWNo byAiV2FybmluZzogY3JlYXRpbmcgaW5zZWN1cmUgdGVtcCBkaXJlY3RvcnkiID4mMiA7IH0gfHwK LSsgeyBlY2hvICIkbWU6IGNhbm5vdCBjcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluICRU TVBESVIiID4mMiA7IGV4aXQgMSA7IH0gOwotK2R1bW15PSR0bXAvZHVtbXkgOwotK3RtcGZpbGVz PSIkZHVtbXkuYyAkZHVtbXkubyAkZHVtbXkucmVsICRkdW1teSIgOwotK2Nhc2UgJENDX0ZPUl9C VUlMRCwkSE9TVF9DQywkQ0MgaW4KLSsgLCwpICAgIGVjaG8gImludCB4OyIgPiAkZHVtbXkuYyA7 Ci0rCWZvciBjIGluIGNjIGdjYyBjODkgYzk5IDsgZG8KLSsJICBpZiAoJGMgLWMgLW8gJGR1bW15 Lm8gJGR1bW15LmMpID4vZGV2L251bGwgMj4mMSA7IHRoZW4KLSsJICAgICBDQ19GT1JfQlVJTEQ9 IiRjIjsgYnJlYWsgOwotKwkgIGZpIDsKLSsJZG9uZSA7Ci0rCWlmIHRlc3QgeCIkQ0NfRk9SX0JV SUxEIiA9IHggOyB0aGVuCi0rCSAgQ0NfRk9SX0JVSUxEPW5vX2NvbXBpbGVyX2ZvdW5kIDsKLSsJ ZmkKLSsJOzsKLSsgLCwqKSAgIENDX0ZPUl9CVUlMRD0kQ0MgOzsKLSsgLCosKikgIENDX0ZPUl9C VUlMRD0kSE9TVF9DQyA7OwotK2VzYWMgOyBzZXRfY2NfZm9yX2J1aWxkPSA7JwotKwotKyMgVGhp cyBpcyBuZWVkZWQgdG8gZmluZCB1bmFtZSBvbiBhIFB5cmFtaWQgT1N4IHdoZW4gcnVuIGluIHRo ZSBCU0QgdW5pdmVyc2UuCi0rIyAoZ2hhemlAbm9jLnJ1dGdlcnMuZWR1IDE5OTQtMDgtMjQpCi0r aWYgKHRlc3QgLWYgLy5hdHRiaW4vdW5hbWUpID4vZGV2L251bGwgMj4mMSA7IHRoZW4KLSsJUEFU SD0kUEFUSDovLmF0dGJpbiA7IGV4cG9ydCBQQVRICi0rZmkKLSsKLStVTkFNRV9NQUNISU5FPWAo dW5hbWUgLW0pIDI+L2Rldi9udWxsYCB8fCBVTkFNRV9NQUNISU5FPXVua25vd24KLStVTkFNRV9S RUxFQVNFPWAodW5hbWUgLXIpIDI+L2Rldi9udWxsYCB8fCBVTkFNRV9SRUxFQVNFPXVua25vd24K LStVTkFNRV9TWVNURU09YCh1bmFtZSAtcykgMj4vZGV2L251bGxgICB8fCBVTkFNRV9TWVNURU09 dW5rbm93bgotK1VOQU1FX1ZFUlNJT049YCh1bmFtZSAtdikgMj4vZGV2L251bGxgIHx8IFVOQU1F X1ZFUlNJT049dW5rbm93bgotKwotKyMgTm90ZTogb3JkZXIgaXMgc2lnbmlmaWNhbnQgLSB0aGUg Y2FzZSBicmFuY2hlcyBhcmUgbm90IGV4Y2x1c2l2ZS4KLSsKLStjYXNlICIke1VOQU1FX01BQ0hJ TkV9OiR7VU5BTUVfU1lTVEVNfToke1VOQU1FX1JFTEVBU0V9OiR7VU5BTUVfVkVSU0lPTn0iIGlu Ci0rICAgICo6TmV0QlNEOio6KikKLSsJIyBOZXRCU0QgKG5ic2QpIHRhcmdldHMgc2hvdWxkICh3 aGVyZSBhcHBsaWNhYmxlKSBtYXRjaCBvbmUgb3IKLSsJIyBtb3JlIG9mIHRoZSB0dXBwbGVzOiAq LSotbmV0YnNkZWxmKiwgKi0qLW5ldGJzZGFvdXQqLAotKwkjICotKi1uZXRic2RlY29mZiogYW5k ICotKi1uZXRic2QqLiAgRm9yIHRhcmdldHMgdGhhdCByZWNlbnRseQotKwkjIHN3aXRjaGVkIHRv IEVMRiwgKi0qLW5ldGJzZCogd291bGQgc2VsZWN0IHRoZSBvbGQKLSsJIyBvYmplY3QgZmlsZSBm b3JtYXQuICBUaGlzIHByb3ZpZGVzIGJvdGggZm9yd2FyZAotKwkjIGNvbXBhdGliaWxpdHkgYW5k IGEgY29uc2lzdGVudCBtZWNoYW5pc20gZm9yIHNlbGVjdGluZyB0aGUKLSsJIyBvYmplY3QgZmls ZSBmb3JtYXQuCi0rCSMKLSsJIyBOb3RlOiBOZXRCU0QgZG9lc24ndCBwYXJ0aWN1bGFybHkgY2Fy ZSBhYm91dCB0aGUgdmVuZG9yCi0rCSMgcG9ydGlvbiBvZiB0aGUgbmFtZS4gIFdlIGFsd2F5cyBz ZXQgaXQgdG8gInVua25vd24iLgotKwlzeXNjdGw9InN5c2N0bCAtbiBody5tYWNoaW5lX2FyY2gi Ci0rCVVOQU1FX01BQ0hJTkVfQVJDSD1gKC9zYmluLyRzeXNjdGwgMj4vZGV2L251bGwgfHwgXAot KwkgICAgL3Vzci9zYmluLyRzeXNjdGwgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duKWAKLSsJ Y2FzZSAiJHtVTkFNRV9NQUNISU5FX0FSQ0h9IiBpbgotKwkgICAgYXJtZWIpIG1hY2hpbmU9YXJt ZWItdW5rbm93biA7OwotKwkgICAgYXJtKikgbWFjaGluZT1hcm0tdW5rbm93biA7OwotKwkgICAg c2gzZWwpIG1hY2hpbmU9c2hsLXVua25vd24gOzsKLSsJICAgIHNoM2ViKSBtYWNoaW5lPXNoLXVu a25vd24gOzsKLSsJICAgIHNoNWVsKSBtYWNoaW5lPXNoNWxlLXVua25vd24gOzsKLSsJICAgICop IG1hY2hpbmU9JHtVTkFNRV9NQUNISU5FX0FSQ0h9LXVua25vd24gOzsKLSsJZXNhYwotKwkjIFRo ZSBPcGVyYXRpbmcgU3lzdGVtIGluY2x1ZGluZyBvYmplY3QgZm9ybWF0LCBpZiBpdCBoYXMgc3dp dGNoZWQKLSsJIyB0byBFTEYgcmVjZW50bHksIG9yIHdpbGwgaW4gdGhlIGZ1dHVyZS4KLSsJY2Fz ZSAiJHtVTkFNRV9NQUNISU5FX0FSQ0h9IiBpbgotKwkgICAgYXJtKnxpMzg2fG02OGt8bnMzMmt8 c2gzKnxzcGFyY3x2YXgpCi0rCQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCQlpZiBlY2hvIF9f RUxGX18gfCAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwgXAotKwkJCXwgZ3JlcCAtcSBf X0VMRl9fCi0rCQl0aGVuCi0rCQkgICAgIyBPbmNlIGFsbCB1dGlsaXRpZXMgY2FuIGJlIEVDT0ZG IChuZXRic2RlY29mZikgb3IgYS5vdXQgKG5ldGJzZGFvdXQpLgotKwkJICAgICMgUmV0dXJuIG5l dGJzZCBmb3IgZWl0aGVyLiAgRklYPwotKwkJICAgIG9zPW5ldGJzZAotKwkJZWxzZQotKwkJICAg IG9zPW5ldGJzZGVsZgotKwkJZmkKLSsJCTs7Ci0rCSAgICAqKQotKwkgICAgICAgIG9zPW5ldGJz ZAotKwkJOzsKLSsJZXNhYwotKwkjIFRoZSBPUyByZWxlYXNlCi0rCSMgRGViaWFuIEdOVS9OZXRC U0QgbWFjaGluZXMgaGF2ZSBhIGRpZmZlcmVudCB1c2VybGFuZCwgYW5kCi0rCSMgdGh1cywgbmVl ZCBhIGRpc3RpbmN0IHRyaXBsZXQuIEhvd2V2ZXIsIHRoZXkgZG8gbm90IG5lZWQKLSsJIyBrZXJu ZWwgdmVyc2lvbiBpbmZvcm1hdGlvbiwgc28gaXQgY2FuIGJlIHJlcGxhY2VkIHdpdGggYQotKwkj IHN1aXRhYmxlIHRhZywgaW4gdGhlIHN0eWxlIG9mIGxpbnV4LWdudS4KLSsJY2FzZSAiJHtVTkFN RV9WRVJTSU9OfSIgaW4KLSsJICAgIERlYmlhbiopCi0rCQlyZWxlYXNlPSctZ251JwotKwkJOzsK LSsJICAgICopCi0rCQlyZWxlYXNlPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1st X10uKi9cLi8nYAotKwkJOzsKLSsJZXNhYwotKwkjIFNpbmNlIENQVV9UWVBFLU1BTlVGQUNUVVJF Ui1LRVJORUwtT1BFUkFUSU5HX1NZU1RFTToKLSsJIyBjb250YWlucyByZWR1bmRhbnQgaW5mb3Jt YXRpb24sIHRoZSBzaG9ydGVyIGZvcm06Ci0rCSMgQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLU9QRVJB VElOR19TWVNURU0gaXMgdXNlZC4KLSsJZWNobyAiJHttYWNoaW5lfS0ke29zfSR7cmVsZWFzZX0i Ci0rCWV4aXQgOzsKLSsgICAgKjpPcGVuQlNEOio6KikKLSsJVU5BTUVfTUFDSElORV9BUkNIPWBh cmNoIHwgc2VkICdzL09wZW5CU0QuLy8nYAotKwllY2hvICR7VU5BTUVfTUFDSElORV9BUkNIfS11 bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgKjpla2tvQlNE Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tZWtrb2JzZCR7VU5BTUVfUkVM RUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOlNvbGlkQlNEOio6KikKLSsJZWNobyAke1VOQU1FX01B Q0hJTkV9LXVua25vd24tc29saWRic2Qke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAg bWFjcHBjOk1pckJTRDoqOiopCi0rCWVjaG8gcG93ZXJwYy11bmtub3duLW1pcmJzZCR7VU5BTUVf UkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOk1pckJTRDoqOiopCi0rCWVjaG8gJHtVTkFNRV9N QUNISU5FfS11bmtub3duLW1pcmJzZCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBh bHBoYTpPU0YxOio6KikKLSsJY2FzZSAkVU5BTUVfUkVMRUFTRSBpbgotKwkqNC4wKQotKwkJVU5B TUVfUkVMRUFTRT1gL3Vzci9zYmluL3NpemVyIC12IHwgYXdrICd7cHJpbnQgJDN9J2AKLSsJCTs7 Ci0rCSo1LiopCi0rCSAgICAgICAgVU5BTUVfUkVMRUFTRT1gL3Vzci9zYmluL3NpemVyIC12IHwg YXdrICd7cHJpbnQgJDR9J2AKLSsJCTs7Ci0rCWVzYWMKLSsJIyBBY2NvcmRpbmcgdG8gQ29tcGFx LCAvdXNyL3NiaW4vcHNyaW5mbyBoYXMgYmVlbiBhdmFpbGFibGUgb24KLSsJIyBPU0YvMSBhbmQg VHJ1NjQgc3lzdGVtcyBwcm9kdWNlZCBzaW5jZSAxOTk1LiAgSSBob3BlIHRoYXQKLSsJIyBjb3Zl cnMgbW9zdCBzeXN0ZW1zIHJ1bm5pbmcgdG9kYXkuICBUaGlzIGNvZGUgcGlwZXMgdGhlIENQVQot KwkjIHR5cGVzIHRocm91Z2ggaGVhZCAtbiAxLCBzbyB3ZSBvbmx5IGRldGVjdCB0aGUgdHlwZSBv ZiBDUFUgMC4KLSsJQUxQSEFfQ1BVX1RZUEU9YC91c3Ivc2Jpbi9wc3JpbmZvIC12IHwgc2VkIC1u IC1lICdzL14gIFRoZSBhbHBoYSBcKC4qXCkgcHJvY2Vzc29yLiokL1wxL3AnIHwgaGVhZCAtbiAx YAotKwljYXNlICIkQUxQSEFfQ1BVX1RZUEUiIGluCi0rCSAgICAiRVY0ICgyMTA2NCkiKQotKwkJ VU5BTUVfTUFDSElORT0iYWxwaGEiIDs7Ci0rCSAgICAiRVY0LjUgKDIxMDY0KSIpCi0rCQlVTkFN RV9NQUNISU5FPSJhbHBoYSIgOzsKLSsJICAgICJMQ0E0ICgyMTA2Ni8yMTA2OCkiKQotKwkJVU5B TUVfTUFDSElORT0iYWxwaGEiIDs7Ci0rCSAgICAiRVY1ICgyMTE2NCkiKQotKwkJVU5BTUVfTUFD SElORT0iYWxwaGFldjUiIDs7Ci0rCSAgICAiRVY1LjYgKDIxMTY0QSkiKQotKwkJVU5BTUVfTUFD SElORT0iYWxwaGFldjU2IiA7OwotKwkgICAgIkVWNS42ICgyMTE2NFBDKSIpCi0rCQlVTkFNRV9N QUNISU5FPSJhbHBoYXBjYTU2IiA7OwotKwkgICAgIkVWNS43ICgyMTE2NFBDKSIpCi0rCQlVTkFN RV9NQUNISU5FPSJhbHBoYXBjYTU3IiA7OwotKwkgICAgIkVWNiAoMjEyNjQpIikKLSsJCVVOQU1F X01BQ0hJTkU9ImFscGhhZXY2IiA7OwotKwkgICAgIkVWNi43ICgyMTI2NEEpIikKLSsJCVVOQU1F X01BQ0hJTkU9ImFscGhhZXY2NyIgOzsKLSsJICAgICJFVjYuOENCICgyMTI2NEMpIikKLSsJCVVO QU1FX01BQ0hJTkU9ImFscGhhZXY2OCIgOzsKLSsJICAgICJFVjYuOEFMICgyMTI2NEIpIikKLSsJ CVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OCIgOzsKLSsJICAgICJFVjYuOENYICgyMTI2NEQpIikK LSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OCIgOzsKLSsJICAgICJFVjYuOUEgKDIxMjY0L0VW NjlBKSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjkiIDs7Ci0rCSAgICAiRVY3ICgyMTM2 NCkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjciIDs7Ci0rCSAgICAiRVY3LjkgKDIxMzY0 QSkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjc5IiA7OwotKwllc2FjCi0rCSMgQSBQbi5u IHZlcnNpb24gaXMgYSBwYXRjaGVkIHZlcnNpb24uCi0rCSMgQSBWbi5uIHZlcnNpb24gaXMgYSBy ZWxlYXNlZCB2ZXJzaW9uLgotKwkjIEEgVG4ubiB2ZXJzaW9uIGlzIGEgcmVsZWFzZWQgZmllbGQg dGVzdCB2ZXJzaW9uLgotKwkjIEEgWG4ubiB2ZXJzaW9uIGlzIGFuIHVucmVsZWFzZWQgZXhwZXJp bWVudGFsIGJhc2VsZXZlbC4KLSsJIyAxLjIgdXNlcyAiMS4yIiBmb3IgdW5hbWUgLXIuCi0rCWVj aG8gJHtVTkFNRV9NQUNISU5FfS1kZWMtb3NmYGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAt ZSAncy9eW1BWVFhdLy8nIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVm Z2hpamtsbW5vcHFyc3R1dnd4eXonYAotKwlleGl0IDs7Ci0rICAgIEFscGhhXCAqOldpbmRvd3Nf TlQqOiopCi0rCSMgSG93IGRvIHdlIGtub3cgaXQncyBJbnRlcml4IHJhdGhlciB0aGFuIHRoZSBn ZW5lcmljIFBPU0lYIHN1YnN5c3RlbT8KLSsJIyBTaG91bGQgd2UgY2hhbmdlIFVOQU1FX01BQ0hJ TkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkCi0rCSMgb2YgdGhlIHNwZWNp ZmljIEFscGhhIG1vZGVsPwotKwllY2hvIGFscGhhLXBjLWludGVyaXgKLSsJZXhpdCA7OwotKyAg ICAyMTA2NDpXaW5kb3dzX05UOjUwOjMpCi0rCWVjaG8gYWxwaGEtZGVjLXdpbm50My41Ci0rCWV4 aXQgOzsKLSsgICAgQW1pZ2EqOlVOSVhfU3lzdGVtX1Y6NC4wOiopCi0rCWVjaG8gbTY4ay11bmtu b3duLXN5c3Y0Ci0rCWV4aXQgOzsKLSsgICAgKjpbQWFdbWlnYVtPb11bU3NdOio6KikKLSsJZWNo byAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYW1pZ2FvcwotKwlleGl0IDs7Ci0rICAgICo6W01t XW9ycGhbT29dW1NzXToqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW1vcnBo b3MKLSsJZXhpdCA7OwotKyAgICAqOk9TLzM5MDoqOiopCi0rCWVjaG8gaTM3MC1pYm0tb3BlbmVk aXRpb24KLSsJZXhpdCA7OwotKyAgICAqOnovVk06KjoqKQotKwllY2hvIHMzOTAtaWJtLXp2bW9l Ci0rCWV4aXQgOzsKLSsgICAgKjpPUzQwMDoqOiopCi0rICAgICAgICBlY2hvIHBvd2VycGMtaWJt LW9zNDAwCi0rCWV4aXQgOzsKLSsgICAgYXJtOlJJU0MqOjEuWzAxMl0qOip8YXJtOnJpc2NpeDox LlswMTJdKjoqKQotKwllY2hvIGFybS1hY29ybi1yaXNjaXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4 aXQgOzsKLSsgICAgYXJtOnJpc2NvczoqOip8YXJtOlJJU0NPUzoqOiopCi0rCWVjaG8gYXJtLXVu a25vd24tcmlzY29zCi0rCWV4aXQgOzsKLSsgICAgU1IyPzAxOkhJLVVYL01QUDoqOiogfCBTUjgw MDA6SEktVVgvTVBQOio6KikKLSsJZWNobyBocHBhMS4xLWhpdGFjaGktaGl1eG1wcAotKwlleGl0 IDs7Ci0rICAgIFB5cmFtaWQqOk9TeCo6KjoqIHwgTUlTKjpPU3gqOio6KiB8IE1JUyo6U01QX0RD LU9TeCo6KjoqKQotKwkjIGFrZWVAd3BkaXMwMy53cGFmYi5hZi5taWwgKEVhcmxlIEYuIEFrZSkg Y29udHJpYnV0ZWQgTUlTIGFuZCBOSUxFLgotKwlpZiB0ZXN0ICJgKC9iaW4vdW5pdmVyc2UpIDI+ L2Rldi9udWxsYCIgPSBhdHQgOyB0aGVuCi0rCQllY2hvIHB5cmFtaWQtcHlyYW1pZC1zeXN2Mwot KwllbHNlCi0rCQllY2hvIHB5cmFtaWQtcHlyYW1pZC1ic2QKLSsJZmkKLSsJZXhpdCA7OwotKyAg ICBOSUxFKjoqOio6ZGNvc3gpCi0rCWVjaG8gcHlyYW1pZC1weXJhbWlkLXN2cjQKLSsJZXhpdCA7 OwotKyAgICBEUlM/NjAwMDp1bml4OjQuMDo2KikKLSsJZWNobyBzcGFyYy1pY2wtbng2Ci0rCWV4 aXQgOzsKLSsgICAgRFJTPzYwMDA6VU5JWF9TVjo0LjIqOjcqIHwgRFJTPzYwMDA6aXNpczo0LjIq OjcqKQotKwljYXNlIGAvdXNyL2Jpbi91bmFtZSAtcGAgaW4KLSsJICAgIHNwYXJjKSBlY2hvIHNw YXJjLWljbC1ueDc7IGV4aXQgOzsKLSsJZXNhYyA7OwotKyAgICBzMzkweDpTdW5PUzoqOiopCi0r CWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9 fHNlZCAtZSAncy9bXi5dKi8vJ2AKLSsJZXhpdCA7OwotKyAgICBzdW40SDpTdW5PUzo1Lio6KikK LSsJZWNobyBzcGFyYy1oYWwtc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAn cy9bXi5dKi8vJ2AKLSsJZXhpdCA7OwotKyAgICBzdW40KjpTdW5PUzo1Lio6KiB8IHRhZHBvbGUq OlN1bk9TOjUuKjoqKQotKwllY2hvIHNwYXJjLXN1bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVM RUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAotKwlleGl0IDs7Ci0rICAgIGk4NnBjOkF1cm9yYVVY OjUuKjoqIHwgaTg2eGVuOkF1cm9yYVVYOjUuKjoqKQotKwllY2hvIGkzODYtcGMtYXVyb3JhdXgk e1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgaTg2cGM6U3VuT1M6NS4qOiogfCBpODZ4 ZW46U3VuT1M6NS4qOiopCi0rCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJU1VOX0FSQ0g9Imkz ODYiCi0rCSMgSWYgdGhlcmUgaXMgYSBjb21waWxlciwgc2VlIGlmIGl0IGlzIGNvbmZpZ3VyZWQg Zm9yIDY0LWJpdCBvYmplY3RzLgotKwkjIE5vdGUgdGhhdCB0aGUgU3VuIGNjIGRvZXMgbm90IHR1 cm4gX19MUDY0X18gaW50byAxIGxpa2UgZ2NjIGRvZXMuCi0rCSMgVGhpcyB0ZXN0IHdvcmtzIGZv ciBib3RoIGNvbXBpbGVycy4KLSsJaWYgWyAiJENDX0ZPUl9CVUlMRCIgIT0gJ25vX2NvbXBpbGVy X2ZvdW5kJyBdOyB0aGVuCi0rCSAgICBpZiAoZWNobyAnI2lmZGVmIF9fYW1kNjQnOyBlY2hvIElT XzY0QklUX0FSQ0g7IGVjaG8gJyNlbmRpZicpIHwgXAotKwkJKENDT1BUUz0gJENDX0ZPUl9CVUlM RCAtRSAtIDI+L2Rldi9udWxsKSB8IFwKLSsJCWdyZXAgSVNfNjRCSVRfQVJDSCA+L2Rldi9udWxs Ci0rCSAgICB0aGVuCi0rCQlTVU5fQVJDSD0ieDg2XzY0IgotKwkgICAgZmkKLSsJZmkKLSsJZWNo byAke1NVTl9BUkNIfS1wYy1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdz L1teLl0qLy8nYAotKwlleGl0IDs7Ci0rICAgIHN1bjQqOlN1bk9TOjYqOiopCi0rCSMgQWNjb3Jk aW5nIHRvIGNvbmZpZy5zdWIsIHRoaXMgaXMgdGhlIHByb3BlciB3YXkgdG8gY2Fub25pY2FsaXpl Ci0rCSMgU3VuT1M2LiAgSGFyZCB0byBndWVzcyBleGFjdGx5IHdoYXQgU3VuT1M2IHdpbGwgYmUg bGlrZSwgYnV0Ci0rCSMgaXQncyBsaWtlbHkgdG8gYmUgbW9yZSBsaWtlIFNvbGFyaXMgdGhhbiBT dW5PUzQuCi0rCWVjaG8gc3BhcmMtc3VuLXNvbGFyaXMzYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxz ZWQgLWUgJ3MvW14uXSovLydgCi0rCWV4aXQgOzsKLSsgICAgc3VuNCo6U3VuT1M6KjoqKQotKwlj YXNlICJgL3Vzci9iaW4vYXJjaCAta2AiIGluCi0rCSAgICBTZXJpZXMqfFM0KikKLSsJCVVOQU1F X1JFTEVBU0U9YHVuYW1lIC12YAotKwkJOzsKLSsJZXNhYwotKwkjIEphcGFuZXNlIExhbmd1YWdl IHZlcnNpb25zIGhhdmUgYSB2ZXJzaW9uIG51bWJlciBsaWtlIGA0LjEuMy1KTCcuCi0rCWVjaG8g c3BhcmMtc3VuLXN1bm9zYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvLS9fLydgCi0r CWV4aXQgOzsKLSsgICAgc3VuMyo6U3VuT1M6KjoqKQotKwllY2hvIG02OGstc3VuLXN1bm9zJHtV TkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIHN1bio6Kjo0LjJCU0Q6KikKLSsJVU5BTUVf UkVMRUFTRT1gKHNlZCAxcSAvZXRjL21vdGQgfCBhd2sgJ3twcmludCBzdWJzdHIoJDUsMSwzKX0n KSAyPi9kZXYvbnVsbGAKLSsJdGVzdCAieCR7VU5BTUVfUkVMRUFTRX0iID0gIngiICYmIFVOQU1F X1JFTEVBU0U9MwotKwljYXNlICJgL2Jpbi9hcmNoYCIgaW4KLSsJICAgIHN1bjMpCi0rCQllY2hv IG02OGstc3VuLXN1bm9zJHtVTkFNRV9SRUxFQVNFfQotKwkJOzsKLSsJICAgIHN1bjQpCi0rCQll Y2hvIHNwYXJjLXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KLSsJCTs7Ci0rCWVzYWMKLSsJZXhp dCA7OwotKyAgICBhdXNocDpTdW5PUzoqOiopCi0rCWVjaG8gc3BhcmMtYXVzcGV4LXN1bm9zJHtV TkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICMgVGhlIHNpdHVhdGlvbiBmb3IgTWlOVCBp cyBhIGxpdHRsZSBjb25mdXNpbmcuICBUaGUgbWFjaGluZSBuYW1lCi0rICAgICMgY2FuIGJlIHZp cnR1YWxseSBldmVyeXRoaW5nIChldmVyeXRoaW5nIHdoaWNoIGlzIG5vdAotKyAgICAjICJhdGFy aXN0IiBvciAiYXRhcmlzdGUiIGF0IGxlYXN0IHNob3VsZCBoYXZlIGEgcHJvY2Vzc29yCi0rICAg ICMgPiBtNjgwMDApLiAgVGhlIHN5c3RlbSBuYW1lIHJhbmdlcyBmcm9tICJNaU5UIiBvdmVyICJG cmVlTWlOVCIKLSsgICAgIyB0byB0aGUgbG93ZXJjYXNlIHZlcnNpb24gIm1pbnQiIChvciAiZnJl ZW1pbnQiKS4gIEZpbmFsbHkKLSsgICAgIyB0aGUgc3lzdGVtIG5hbWUgIlRPUyIgZGVub3RlcyBh IHN5c3RlbSB3aGljaCBpcyBhY3R1YWxseSBub3QKLSsgICAgIyBNaU5ULiAgQnV0IE1pTlQgaXMg ZG93bndhcmQgY29tcGF0aWJsZSB0byBUT1MsIHNvIHRoaXMgc2hvdWxkCi0rICAgICMgYmUgbm8g cHJvYmxlbS4KLSsgICAgYXRhcmlzdFtlXToqTWlOVDoqOiogfCBhdGFyaXN0W2VdOiptaW50Oio6 KiB8IGF0YXJpc3RbZV06KlRPUzoqOiopCi0rICAgICAgICBlY2hvIG02OGstYXRhcmktbWludCR7 VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBhdGFyaSo6Kk1pTlQ6KjoqIHwgYXRhcmkq OiptaW50Oio6KiB8IGF0YXJpc3RbZV06KlRPUzoqOiopCi0rCWVjaG8gbTY4ay1hdGFyaS1taW50 JHtVTkFNRV9SRUxFQVNFfQotKyAgICAgICAgZXhpdCA7OwotKyAgICAqZmFsY29uKjoqTWlOVDoq OiogfCAqZmFsY29uKjoqbWludDoqOiogfCAqZmFsY29uKjoqVE9TOio6KikKLSsgICAgICAgIGVj aG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIG1pbGFu KjoqTWlOVDoqOiogfCBtaWxhbio6Km1pbnQ6KjoqIHwgKm1pbGFuKjoqVE9TOio6KikKLSsgICAg ICAgIGVjaG8gbTY4ay1taWxhbi1taW50JHtVTkFNRV9SRUxFQVNFfQotKyAgICAgICAgZXhpdCA7 OwotKyAgICBoYWRlcyo6Kk1pTlQ6KjoqIHwgaGFkZXMqOiptaW50Oio6KiB8ICpoYWRlcyo6KlRP UzoqOiopCi0rICAgICAgICBlY2hvIG02OGstaGFkZXMtbWludCR7VU5BTUVfUkVMRUFTRX0KLSsg ICAgICAgIGV4aXQgOzsKLSsgICAgKjoqTWlOVDoqOiogfCAqOiptaW50Oio6KiB8ICo6KlRPUzoq OiopCi0rICAgICAgICBlY2hvIG02OGstdW5rbm93bi1taW50JHtVTkFNRV9SRUxFQVNFfQotKyAg ICAgICAgZXhpdCA7OwotKyAgICBtNjhrOm1hY2h0ZW46KjoqKQotKwllY2hvIG02OGstYXBwbGUt bWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBwb3dlcnBjOm1hY2h0ZW46 KjoqKQotKwllY2hvIHBvd2VycGMtYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KLSsJZXhp dCA7OwotKyAgICBSSVNDKjpNYWNoOio6KikKLSsJZWNobyBtaXBzLWRlYy1tYWNoX2JzZDQuMwot KwlleGl0IDs7Ci0rICAgIFJJU0MqOlVMVFJJWDoqOiopCi0rCWVjaG8gbWlwcy1kZWMtdWx0cml4 JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFZBWCo6VUxUUklYKjoqOiopCi0rCWVj aG8gdmF4LWRlYy11bHRyaXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgMjAyMDpD TElYOio6KiB8IDI0MzA6Q0xJWDoqOiopCi0rCWVjaG8gY2xpcHBlci1pbnRlcmdyYXBoLWNsaXgk e1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgbWlwczoqOio6VU1JUFMgfCBtaXBzOio6 KjpSSVNDb3MpCi0rCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJc2VkICdzL14JLy8nIDw8IEVP RiA+JGR1bW15LmMKLSsjaWZkZWYgX19jcGx1c3BsdXMKLSsjaW5jbHVkZSA8c3RkaW8uaD4gIC8q IGZvciBwcmludGYoKSBwcm90b3R5cGUgKi8KLSsJaW50IG1haW4gKGludCBhcmdjLCBjaGFyICph cmd2W10pIHsKLSsjZWxzZQotKwlpbnQgbWFpbiAoYXJnYywgYXJndikgaW50IGFyZ2M7IGNoYXIg KmFyZ3ZbXTsgewotKyNlbmRpZgotKwkjaWYgZGVmaW5lZCAoaG9zdF9taXBzKSAmJiBkZWZpbmVk IChNSVBTRUIpCi0rCSNpZiBkZWZpbmVkIChTWVNUWVBFX1NZU1YpCi0rCSAgcHJpbnRmICgibWlw cy1taXBzLXJpc2NvcyVzc3lzdlxuIiwgYXJndlsxXSk7IGV4aXQgKDApOwotKwkjZW5kaWYKLSsJ I2lmIGRlZmluZWQgKFNZU1RZUEVfU1ZSNCkKLSsJICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29z JXNzdnI0XG4iLCBhcmd2WzFdKTsgZXhpdCAoMCk7Ci0rCSNlbmRpZgotKwkjaWYgZGVmaW5lZCAo U1lTVFlQRV9CU0Q0MykgfHwgZGVmaW5lZChTWVNUWVBFX0JTRCkKLSsJICBwcmludGYgKCJtaXBz LW1pcHMtcmlzY29zJXNic2RcbiIsIGFyZ3ZbMV0pOyBleGl0ICgwKTsKLSsJI2VuZGlmCi0rCSNl bmRpZgotKwkgIGV4aXQgKC0xKTsKLSsJfQotK0VPRgotKwkkQ0NfRk9SX0JVSUxEIC1vICRkdW1t eSAkZHVtbXkuYyAmJgotKwkgIGR1bW15YXJnPWBlY2hvICIke1VOQU1FX1JFTEVBU0V9IiB8IHNl ZCAtbiAncy9cKFswLTldKlwpLiovXDEvcCdgICYmCi0rCSAgU1lTVEVNX05BTUU9YCRkdW1teSAk ZHVtbXlhcmdgICYmCi0rCSAgICB7IGVjaG8gIiRTWVNURU1fTkFNRSI7IGV4aXQ7IH0KLSsJZWNo byBtaXBzLW1pcHMtcmlzY29zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIE1vdG9y b2xhOlBvd2VyTUFYX09TOio6KikKLSsJZWNobyBwb3dlcnBjLW1vdG9yb2xhLXBvd2VybWF4Ci0r CWV4aXQgOzsKLSsgICAgTW90b3JvbGE6Kjo0LjM6UEw4LSopCi0rCWVjaG8gcG93ZXJwYy1oYXJy aXMtcG93ZXJtYXgKLSsJZXhpdCA7OwotKyAgICBOaWdodF9IYXdrOio6KjpQb3dlck1BWF9PUyB8 IFN5bmVyZ3k6UG93ZXJNQVhfT1M6KjoqKQotKwllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VybWF4 Ci0rCWV4aXQgOzsKLSsgICAgTmlnaHRfSGF3azpQb3dlcl9VTklYOio6KikKLSsJZWNobyBwb3dl cnBjLWhhcnJpcy1wb3dlcnVuaXgKLSsJZXhpdCA7OwotKyAgICBtODhrOkNYL1VYOjcqOiopCi0r CWVjaG8gbTg4ay1oYXJyaXMtY3h1eDcKLSsJZXhpdCA7OwotKyAgICBtODhrOio6NCo6UjQqKQot KwllY2hvIG04OGstbW90b3JvbGEtc3lzdjQKLSsJZXhpdCA7OwotKyAgICBtODhrOio6Myo6UjMq KQotKwllY2hvIG04OGstbW90b3JvbGEtc3lzdjMKLSsJZXhpdCA7OwotKyAgICBBVmlpT046ZGd1 eDoqOiopCi0rICAgICAgICAjIERHL1VYIHJldHVybnMgQVZpaU9OIGZvciBhbGwgYXJjaGl0ZWN0 dXJlcwotKyAgICAgICAgVU5BTUVfUFJPQ0VTU09SPWAvdXNyL2Jpbi91bmFtZSAtcGAKLSsJaWYg WyAkVU5BTUVfUFJPQ0VTU09SID0gbWM4ODEwMCBdIHx8IFsgJFVOQU1FX1BST0NFU1NPUiA9IG1j ODgxMTAgXQotKwl0aGVuCi0rCSAgICBpZiBbICR7VEFSR0VUX0JJTkFSWV9JTlRFUkZBQ0V9eCA9 IG04OGtkZ3V4ZWxmeCBdIHx8IFwKLSsJICAgICAgIFsgJHtUQVJHRVRfQklOQVJZX0lOVEVSRkFD RX14ID0geCBdCi0rCSAgICB0aGVuCi0rCQllY2hvIG04OGstZGctZGd1eCR7VU5BTUVfUkVMRUFT RX0KLSsJICAgIGVsc2UKLSsJCWVjaG8gbTg4ay1kZy1kZ3V4YmNzJHtVTkFNRV9SRUxFQVNFfQot KwkgICAgZmkKLSsJZWxzZQotKwkgICAgZWNobyBpNTg2LWRnLWRndXgke1VOQU1FX1JFTEVBU0V9 Ci0rCWZpCi0rIAlleGl0IDs7Ci0rICAgIE04OCo6RG9scGhpbk9TOio6KikJIyBEb2xwaGluT1Mg KFNWUjMpCi0rCWVjaG8gbTg4ay1kb2xwaGluLXN5c3YzCi0rCWV4aXQgOzsKLSsgICAgTTg4Kjoq OlIzKjoqKQotKwkjIERlbHRhIDg4ayBzeXN0ZW0gcnVubmluZyBTVlIzCi0rCWVjaG8gbTg4ay1t b3Rvcm9sYS1zeXN2MwotKwlleGl0IDs7Ci0rICAgIFhEODgqOio6KjoqKSAjIFRla3Ryb25peCBY RDg4IHN5c3RlbSBydW5uaW5nIFVUZWtWIChTVlIzKQotKwllY2hvIG04OGstdGVrdHJvbml4LXN5 c3YzCi0rCWV4aXQgOzsKLSsgICAgVGVrNDNbMC05XVswLTldOlVUZWs6KjoqKSAjIFRla3Ryb25p eCA0MzAwIHN5c3RlbSBydW5uaW5nIFVUZWsgKEJTRCkKLSsJZWNobyBtNjhrLXRla3Ryb25peC1i c2QKLSsJZXhpdCA7OwotKyAgICAqOklSSVgqOio6KikKLSsJZWNobyBtaXBzLXNnaS1pcml4YGVj aG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvLS9fL2cnYAotKwlleGl0IDs7Ci0rICAgID8/ Pz8/Pz8/OkFJWD86WzEyXS4xOjIpICAgIyBBSVggMi4yLjEgb3IgQUlYIDIuMS4xIGlzIFJUL1BD IEFJWC4KLSsJZWNobyByb21wLWlibS1haXggICAgICMgdW5hbWUgLW0gZ2l2ZXMgYW4gOCBoZXgt Y29kZSBDUFUgaWQKLSsJZXhpdCA7OyAgICAgICAgICAgICAgICMgTm90ZSB0aGF0OiBlY2hvICIn YHVuYW1lIC1zYCciIGdpdmVzICdBSVggJwotKyAgICBpKjg2OkFJWDoqOiopCi0rCWVjaG8gaTM4 Ni1pYm0tYWl4Ci0rCWV4aXQgOzsKLSsgICAgaWE2NDpBSVg6KjoqKQotKwlpZiBbIC14IC91c3Iv YmluL29zbGV2ZWwgXSA7IHRoZW4KLSsJCUlCTV9SRVY9YC91c3IvYmluL29zbGV2ZWxgCi0rCWVs c2UKLSsJCUlCTV9SRVY9JHtVTkFNRV9WRVJTSU9OfS4ke1VOQU1FX1JFTEVBU0V9Ci0rCWZpCi0r CWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tYWl4JHtJQk1fUkVWfQotKwlleGl0IDs7Ci0rICAg ICo6QUlYOjI6MykKLSsJaWYgZ3JlcCBib3MzMjUgL3Vzci9pbmNsdWRlL3N0ZGlvLmggPi9kZXYv bnVsbCAyPiYxOyB0aGVuCi0rCQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCQlzZWQgJ3MvXgkJ Ly8nIDw8IEVPRiA+JGR1bW15LmMKLSsJCSNpbmNsdWRlIDxzeXMvc3lzdGVtY2ZnLmg+Ci0rCi0r CQltYWluKCkKLSsJCQl7Ci0rCQkJaWYgKCFfX3Bvd2VyX3BjKCkpCi0rCQkJCWV4aXQoMSk7Ci0r CQkJcHV0cygicG93ZXJwYy1pYm0tYWl4My4yLjUiKTsKLSsJCQlleGl0KDApOwotKwkJCX0KLStF T0YKLSsJCWlmICRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jICYmIFNZU1RFTV9OQU1F PWAkZHVtbXlgCi0rCQl0aGVuCi0rCQkJZWNobyAiJFNZU1RFTV9OQU1FIgotKwkJZWxzZQotKwkJ CWVjaG8gcnM2MDAwLWlibS1haXgzLjIuNQotKwkJZmkKLSsJZWxpZiBncmVwIGJvczMyNCAvdXNy L2luY2x1ZGUvc3RkaW8uaCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJCWVjaG8gcnM2MDAwLWli bS1haXgzLjIuNAotKwllbHNlCi0rCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yCi0rCWZpCi0rCWV4 aXQgOzsKLSsgICAgKjpBSVg6KjpbNDU2XSkKLSsJSUJNX0NQVV9JRD1gL3Vzci9zYmluL2xzZGV2 IC1DIC1jIHByb2Nlc3NvciAtUyBhdmFpbGFibGUgfCBzZWQgMXEgfCBhd2sgJ3sgcHJpbnQgJDEg fSdgCi0rCWlmIC91c3Ivc2Jpbi9sc2F0dHIgLUVsICR7SUJNX0NQVV9JRH0gfCBncmVwICcgUE9X RVInID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkJSUJNX0FSQ0g9cnM2MDAwCi0rCWVsc2UKLSsJ CUlCTV9BUkNIPXBvd2VycGMKLSsJZmkKLSsJaWYgWyAteCAvdXNyL2Jpbi9vc2xldmVsIF0gOyB0 aGVuCi0rCQlJQk1fUkVWPWAvdXNyL2Jpbi9vc2xldmVsYAotKwllbHNlCi0rCQlJQk1fUkVWPSR7 VU5BTUVfVkVSU0lPTn0uJHtVTkFNRV9SRUxFQVNFfQotKwlmaQotKwllY2hvICR7SUJNX0FSQ0h9 LWlibS1haXgke0lCTV9SRVZ9Ci0rCWV4aXQgOzsKLSsgICAgKjpBSVg6KjoqKQotKwllY2hvIHJz NjAwMC1pYm0tYWl4Ci0rCWV4aXQgOzsKLSsgICAgaWJtcnQ6NC40QlNEOip8cm9tcC1pYm06QlNE OiopCi0rCWVjaG8gcm9tcC1pYm0tYnNkNC40Ci0rCWV4aXQgOzsKLSsgICAgaWJtcnQ6KkJTRDoq fHJvbXAtaWJtOkJTRDoqKSAgICAgICAgICAgICMgY292ZXJzIFJUL1BDIEJTRCBhbmQKLSsJZWNo byByb21wLWlibS1ic2Qke1VOQU1FX1JFTEVBU0V9ICAgIyA0LjMgd2l0aCB1bmFtZSBhZGRlZCB0 bwotKwlleGl0IDs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJlcG9ydDogcm9tcC1p Ym0gQlNEIDQuMwotKyAgICAqOkJPU1g6KjoqKQotKwllY2hvIHJzNjAwMC1idWxsLWJvc3gKLSsJ ZXhpdCA7OwotKyAgICBEUFgvMj8wMDpCLk8uUy46KjoqKQotKwllY2hvIG02OGstYnVsbC1zeXN2 MwotKwlleGl0IDs7Ci0rICAgIDkwMDAvWzM0XT8/OjQuM2JzZDoxLio6KikKLSsJZWNobyBtNjhr LWhwLWJzZAotKwlleGl0IDs7Ci0rICAgIGhwMzAwOjQuNEJTRDoqOiogfCA5MDAwL1szNF0/Pzo0 LjNic2Q6Mi4qOiopCi0rCWVjaG8gbTY4ay1ocC1ic2Q0LjQKLSsJZXhpdCA7OwotKyAgICA5MDAw L1szNDY3OF0/PzpIUC1VWDoqOiopCi0rCUhQVVhfUkVWPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18 c2VkIC1lICdzL1teLl0qLlswQl0qLy8nYAotKwljYXNlICIke1VOQU1FX01BQ0hJTkV9IiBpbgot KwkgICAgOTAwMC8zMT8gKSAgICAgICAgICAgIEhQX0FSQ0g9bTY4MDAwIDs7Ci0rCSAgICA5MDAw L1szNF0/PyApICAgICAgICAgSFBfQVJDSD1tNjhrIDs7Ci0rCSAgICA5MDAwL1s2NzhdWzAtOV1b MC05XSkKLSsJCWlmIFsgLXggL3Vzci9iaW4vZ2V0Y29uZiBdOyB0aGVuCi0rCQkgICAgc2NfY3B1 X3ZlcnNpb249YC91c3IvYmluL2dldGNvbmYgU0NfQ1BVX1ZFUlNJT04gMj4vZGV2L251bGxgCi0r ICAgICAgICAgICAgICAgICAgICBzY19rZXJuZWxfYml0cz1gL3Vzci9iaW4vZ2V0Y29uZiBTQ19L RVJORUxfQklUUyAyPi9kZXYvbnVsbGAKLSsgICAgICAgICAgICAgICAgICAgIGNhc2UgIiR7c2Nf Y3B1X3ZlcnNpb259IiBpbgotKyAgICAgICAgICAgICAgICAgICAgICA1MjMpIEhQX0FSQ0g9Imhw cGExLjAiIDs7ICMgQ1BVX1BBX1JJU0MxXzAKLSsgICAgICAgICAgICAgICAgICAgICAgNTI4KSBI UF9BUkNIPSJocHBhMS4xIiA7OyAjIENQVV9QQV9SSVNDMV8xCi0rICAgICAgICAgICAgICAgICAg ICAgIDUzMikgICAgICAgICAgICAgICAgICAgICAgIyBDUFVfUEFfUklTQzJfMAotKyAgICAgICAg ICAgICAgICAgICAgICAgIGNhc2UgIiR7c2Nfa2VybmVsX2JpdHN9IiBpbgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgMzIpIEhQX0FSQ0g9ImhwcGEyLjBuIiA7OwotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgNjQpIEhQX0FSQ0g9ImhwcGEyLjB3IiA7OwotKwkJCSAgJycpIEhQX0FSQ0g9 ImhwcGEyLjAiIDs7ICAgIyBIUC1VWCAxMC4yMAotKyAgICAgICAgICAgICAgICAgICAgICAgIGVz YWMgOzsKLSsgICAgICAgICAgICAgICAgICAgIGVzYWMKLSsJCWZpCi0rCQlpZiBbICIke0hQX0FS Q0h9IiA9ICIiIF07IHRoZW4KLSsJCSAgICBldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCQkgICAg c2VkICdzL14gICAgICAgICAgICAgIC8vJyA8PCBFT0YgPiRkdW1teS5jCi0rCi0rICAgICAgICAg ICAgICAjZGVmaW5lIF9IUFVYX1NPVVJDRQotKyAgICAgICAgICAgICAgI2luY2x1ZGUgPHN0ZGxp Yi5oPgotKyAgICAgICAgICAgICAgI2luY2x1ZGUgPHVuaXN0ZC5oPgotKwotKyAgICAgICAgICAg ICAgaW50IG1haW4gKCkKLSsgICAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgICNpZiBkZWZp bmVkKF9TQ19LRVJORUxfQklUUykKLSsgICAgICAgICAgICAgICAgICBsb25nIGJpdHMgPSBzeXNj b25mKF9TQ19LRVJORUxfQklUUyk7Ci0rICAgICAgICAgICAgICAjZW5kaWYKLSsgICAgICAgICAg ICAgICAgICBsb25nIGNwdSAgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOwotKwotKyAgICAg ICAgICAgICAgICAgIHN3aXRjaCAoY3B1KQotKyAgICAgICAgICAgICAgCXsKLSsgICAgICAgICAg ICAgIAljYXNlIENQVV9QQV9SSVNDMV8wOiBwdXRzICgiaHBwYTEuMCIpOyBicmVhazsKLSsgICAg ICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMV8xOiBwdXRzICgiaHBwYTEuMSIpOyBicmVhazsK LSsgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMl8wOgotKyAgICAgICAgICAgICAgI2lm IGRlZmluZWQoX1NDX0tFUk5FTF9CSVRTKQotKyAgICAgICAgICAgICAgCSAgICBzd2l0Y2ggKGJp dHMpCi0rICAgICAgICAgICAgICAJCXsKLSsgICAgICAgICAgICAgIAkJY2FzZSA2NDogcHV0cyAo ImhwcGEyLjB3Iik7IGJyZWFrOwotKyAgICAgICAgICAgICAgCQljYXNlIDMyOiBwdXRzICgiaHBw YTIuMG4iKTsgYnJlYWs7Ci0rICAgICAgICAgICAgICAJCWRlZmF1bHQ6IHB1dHMgKCJocHBhMi4w Iik7IGJyZWFrOwotKyAgICAgICAgICAgICAgCQl9IGJyZWFrOwotKyAgICAgICAgICAgICAgI2Vs c2UgIC8qICFkZWZpbmVkKF9TQ19LRVJORUxfQklUUykgKi8KLSsgICAgICAgICAgICAgIAkgICAg cHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7Ci0rICAgICAgICAgICAgICAjZW5kaWYKLSsgICAgICAg ICAgICAgIAlkZWZhdWx0OiBwdXRzICgiaHBwYTEuMCIpOyBicmVhazsKLSsgICAgICAgICAgICAg IAl9Ci0rICAgICAgICAgICAgICAgICAgZXhpdCAoMCk7Ci0rICAgICAgICAgICAgICB9Ci0rRU9G Ci0rCQkgICAgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgMj4vZGV2 L251bGwpICYmIEhQX0FSQ0g9YCRkdW1teWAKLSsJCSAgICB0ZXN0IC16ICIkSFBfQVJDSCIgJiYg SFBfQVJDSD1ocHBhCi0rCQlmaSA7OwotKwllc2FjCi0rCWlmIFsgJHtIUF9BUkNIfSA9ICJocHBh Mi4wdyIgXQotKwl0aGVuCi0rCSAgICBldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCi0rCSAgICAj IGhwcGEyLjB3LWhwLWhwdXgqIGhhcyBhIDY0LWJpdCBrZXJuZWwgYW5kIGEgY29tcGlsZXIgZ2Vu ZXJhdGluZwotKwkgICAgIyAzMi1iaXQgY29kZS4gIGhwcGE2NC1ocC1ocHV4KiBoYXMgdGhlIHNh bWUga2VybmVsIGFuZCBhIGNvbXBpbGVyCi0rCSAgICAjIGdlbmVyYXRpbmcgNjQtYml0IGNvZGUu ICBHTlUgYW5kIEhQIHVzZSBkaWZmZXJlbnQgbm9tZW5jbGF0dXJlOgotKwkgICAgIwotKwkgICAg IyAkIENDX0ZPUl9CVUlMRD1jYyAuL2NvbmZpZy5ndWVzcwotKwkgICAgIyA9PiBocHBhMi4wdy1o cC1ocHV4MTEuMjMKLSsJICAgICMgJCBDQ19GT1JfQlVJTEQ9ImNjICtEQTIuMHciIC4vY29uZmln Lmd1ZXNzCi0rCSAgICAjID0+IGhwcGE2NC1ocC1ocHV4MTEuMjMKLSsKLSsJICAgIGlmIGVjaG8g X19MUDY0X18gfCAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwpIHwKLSsJ CWdyZXAgLXEgX19MUDY0X18KLSsJICAgIHRoZW4KLSsJCUhQX0FSQ0g9ImhwcGEyLjB3IgotKwkg ICAgZWxzZQotKwkJSFBfQVJDSD0iaHBwYTY0IgotKwkgICAgZmkKLSsJZmkKLSsJZWNobyAke0hQ X0FSQ0h9LWhwLWhwdXgke0hQVVhfUkVWfQotKwlleGl0IDs7Ci0rICAgIGlhNjQ6SFAtVVg6Kjoq KQotKwlIUFVYX1JFVj1gZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi5bMEJd Ki8vJ2AKLSsJZWNobyBpYTY0LWhwLWhwdXgke0hQVVhfUkVWfQotKwlleGl0IDs7Ci0rICAgIDMw NTAqOkhJLVVYOio6KikKLSsJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwlzZWQgJ3MvXgkvLycg PDwgRU9GID4kZHVtbXkuYwotKwkjaW5jbHVkZSA8dW5pc3RkLmg+Ci0rCWludAotKwltYWluICgp Ci0rCXsKLSsJICBsb25nIGNwdSA9IHN5c2NvbmYgKF9TQ19DUFVfVkVSU0lPTik7Ci0rCSAgLyog VGhlIG9yZGVyIG1hdHRlcnMsIGJlY2F1c2UgQ1BVX0lTX0hQX01DNjhLIGVycm9uZW91c2x5IHJl dHVybnMKLSsJICAgICB0cnVlIGZvciBDUFVfUEFfUklTQzFfMC4gIENQVV9JU19QQV9SSVNDIHJl dHVybnMgY29ycmVjdAotKwkgICAgIHJlc3VsdHMsIGhvd2V2ZXIuICAqLwotKwkgIGlmIChDUFVf SVNfUEFfUklTQyAoY3B1KSkKLSsJICAgIHsKLSsJICAgICAgc3dpdGNoIChjcHUpCi0rCQl7Ci0r CQkgIGNhc2UgQ1BVX1BBX1JJU0MxXzA6IHB1dHMgKCJocHBhMS4wLWhpdGFjaGktaGl1eHdlMiIp OyBicmVhazsKLSsJCSAgY2FzZSBDUFVfUEFfUklTQzFfMTogcHV0cyAoImhwcGExLjEtaGl0YWNo aS1oaXV4d2UyIik7IGJyZWFrOwotKwkJICBjYXNlIENQVV9QQV9SSVNDMl8wOiBwdXRzICgiaHBw YTIuMC1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7Ci0rCQkgIGRlZmF1bHQ6IHB1dHMgKCJocHBh LWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKLSsJCX0KLSsJICAgIH0KLSsJICBlbHNlIGlmIChD UFVfSVNfSFBfTUM2OEsgKGNwdSkpCi0rCSAgICBwdXRzICgibTY4ay1oaXRhY2hpLWhpdXh3ZTIi KTsKLSsJICBlbHNlIHB1dHMgKCJ1bmtub3duLWhpdGFjaGktaGl1eHdlMiIpOwotKwkgIGV4aXQg KDApOwotKwl9Ci0rRU9GCi0rCSRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jICYmIFNZ U1RFTV9OQU1FPWAkZHVtbXlgICYmCi0rCQl7IGVjaG8gIiRTWVNURU1fTkFNRSI7IGV4aXQ7IH0K LSsJZWNobyB1bmtub3duLWhpdGFjaGktaGl1eHdlMgotKwlleGl0IDs7Ci0rICAgIDkwMDAvNz8/ OjQuM2JzZDoqOiogfCA5MDAwLzg/Wzc5XTo0LjNic2Q6KjoqICkKLSsJZWNobyBocHBhMS4xLWhw LWJzZAotKwlleGl0IDs7Ci0rICAgIDkwMDAvOD8/OjQuM2JzZDoqOiopCi0rCWVjaG8gaHBwYTEu MC1ocC1ic2QKLSsJZXhpdCA7OwotKyAgICAqOT8/KjpNUEUvaVg6KjoqIHwgKjMwMDAqOk1QRS9p WDoqOiopCi0rCWVjaG8gaHBwYTEuMC1ocC1tcGVpeAotKwlleGl0IDs7Ci0rICAgIGhwNz8/Ok9T RjE6KjoqIHwgaHA4P1s3OV06T1NGMToqOiogKQotKwllY2hvIGhwcGExLjEtaHAtb3NmCi0rCWV4 aXQgOzsKLSsgICAgaHA4Pz86T1NGMToqOiopCi0rCWVjaG8gaHBwYTEuMC1ocC1vc2YKLSsJZXhp dCA7OwotKyAgICBpKjg2Ok9TRjE6KjoqKQotKwlpZiBbIC14IC91c3Ivc2Jpbi9zeXN2ZXJzaW9u IF0gOyB0aGVuCi0rCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1vc2YxbWsKLSsJ ZWxzZQotKwkgICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tb3NmMQotKwlmaQotKwll eGl0IDs7Ci0rICAgIHBhcmlzYyo6TGl0ZXMqOio6KikKLSsJZWNobyBocHBhMS4xLWhwLWxpdGVz Ci0rCWV4aXQgOzsKLSsgICAgQzEqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMSo6 KikKLSsJZWNobyBjMS1jb252ZXgtYnNkCi0rICAgICAgICBleGl0IDs7Ci0rICAgIEMyKjpDb252 ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzIqOiopCi0rCWlmIGdldHN5c2luZm8gLWYgc2Nh bGFyX2FjYwotKwl0aGVuIGVjaG8gYzMyLWNvbnZleC1ic2QKLSsJZWxzZSBlY2hvIGMyLWNvbnZl eC1ic2QKLSsJZmkKLSsgICAgICAgIGV4aXQgOzsKLSsgICAgQzM0KjpDb252ZXhPUzoqOiogfCBj b252ZXg6Q29udmV4T1M6QzM0KjoqKQotKwllY2hvIGMzNC1jb252ZXgtYnNkCi0rICAgICAgICBl eGl0IDs7Ci0rICAgIEMzOCo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMzOCo6KikK LSsJZWNobyBjMzgtY29udmV4LWJzZAotKyAgICAgICAgZXhpdCA7OwotKyAgICBDNCo6Q29udmV4 T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkM0KjoqKQotKwllY2hvIGM0LWNvbnZleC1ic2QKLSsg ICAgICAgIGV4aXQgOzsKLSsgICAgQ1JBWSpZLU1QOio6KjoqKQotKwllY2hvIHltcC1jcmF5LXVu aWNvcyR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwotKwlleGl0IDs7 Ci0rICAgIENSQVkqW0EtWl05MDoqOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LWNyYXkt dW5pY29zJHtVTkFNRV9SRUxFQVNFfSBcCi0rCXwgc2VkIC1lICdzL0NSQVkuKlwoW0EtWl05MFwp L1wxLycgXAotKwkgICAgICAtZSB5L0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaL2FiY2RlZmdo aWprbG1ub3BxcnN0dXZ3eHl6LyBcCi0rCSAgICAgIC1lICdzL1wuW14uXSokLy5YLycKLSsJZXhp dCA7OwotKyAgICBDUkFZKlRTOio6KjoqKQotKwllY2hvIHQ5MC1jcmF5LXVuaWNvcyR7VU5BTUVf UkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwotKwlleGl0IDs7Ci0rICAgIENSQVkq VDNFOio6KjoqKQotKwllY2hvIGFscGhhZXY1LWNyYXktdW5pY29zbWske1VOQU1FX1JFTEVBU0V9 IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKLSsJZXhpdCA7OwotKyAgICBDUkFZKlNWMToqOio6 KikKLSsJZWNobyBzdjEtY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wu W14uXSokLy5YLycKLSsJZXhpdCA7OwotKyAgICAqOlVOSUNPUy9tcDoqOiopCi0rCWVjaG8gY3Jh eW52LWNyYXktdW5pY29zbXAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5Y LycKLSsJZXhpdCA7OwotKyAgICBGMzBbMDFdOlVOSVhfU3lzdGVtX1Y6KjoqIHwgRjcwMDpVTklY X1N5c3RlbV9WOio6KikKLSsJRlVKSVRTVV9QUk9DPWB1bmFtZSAtbSB8IHRyICdBQkNERUZHSElK S0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6J2AKLSsgICAgICAg IEZVSklUU1VfU1lTPWB1bmFtZSAtcCB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicg J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyB8IHNlZCAtZSAncy9cLy8vJ2AKLSsgICAgICAg IEZVSklUU1VfUkVMPWBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvIC9fLydgCi0r ICAgICAgICBlY2hvICIke0ZVSklUU1VfUFJPQ30tZnVqaXRzdS0ke0ZVSklUU1VfU1lTfSR7RlVK SVRTVV9SRUx9IgotKyAgICAgICAgZXhpdCA7OwotKyAgICA1MDAwOlVOSVhfU3lzdGVtX1Y6NC4q OiopCi0rICAgICAgICBGVUpJVFNVX1NZUz1gdW5hbWUgLXAgfCB0ciAnQUJDREVGR0hJSktMTU5P UFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvXC8v LydgCi0rICAgICAgICBGVUpJVFNVX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgdHIgJ0FC Q0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwg c2VkIC1lICdzLyAvXy8nYAotKyAgICAgICAgZWNobyAic3BhcmMtZnVqaXRzdS0ke0ZVSklUU1Vf U1lTfSR7RlVKSVRTVV9SRUx9IgotKwlleGl0IDs7Ci0rICAgIGkqODY6QlNELzM4NjoqOiogfCBp Kjg2OkJTRC9PUzoqOiogfCAqOkFzY2VuZFwgRW1iZWRkZWQvT1M6KjoqKQotKwllY2hvICR7VU5B TUVfTUFDSElORX0tcGMtYnNkaSR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBzcGFy Yyo6QlNEL09TOio6KikKLSsJZWNobyBzcGFyYy11bmtub3duLWJzZGkke1VOQU1FX1JFTEVBU0V9 Ci0rCWV4aXQgOzsKLSsgICAgKjpCU0QvT1M6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1ic2RpJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6RnJlZUJTRDoq OiopCi0rCWNhc2UgJHtVTkFNRV9NQUNISU5FfSBpbgotKwkgICAgcGM5OCkKLSsJCWVjaG8gaTM4 Ni11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiov LydgIDs7Ci0rCSAgICBhbWQ2NCkKLSsJCWVjaG8geDg2XzY0LXVua25vd24tZnJlZWJzZGBlY2hv ICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AgOzsKLSsJICAgICopCi0rCQll Y2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNF fXxzZWQgLWUgJ3MvWy0oXS4qLy8nYCA7OwotKwllc2FjCi0rCWV4aXQgOzsKLSsgICAgaSo6Q1lH V0lOKjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtY3lnd2luCi0rCWV4aXQgOzsKLSsg ICAgKjpNSU5HVyo6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1pbmd3MzIKLSsJZXhp dCA7OwotKyAgICBpKjp3aW5kb3dzMzIqOiopCi0rICAgIAkjIHVuYW1lIC1tIGluY2x1ZGVzICIt cGMiIG9uIHRoaXMgc3lzdGVtLgotKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LW1pbmd3MzIK LSsJZXhpdCA7OwotKyAgICBpKjpQVyo6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXB3 MzIKLSsJZXhpdCA7OwotKyAgICAqOkludGVyaXgqOiopCi0rICAgIAljYXNlICR7VU5BTUVfTUFD SElORX0gaW4KLSsJICAgIHg4NikKLSsJCWVjaG8gaTU4Ni1wYy1pbnRlcml4JHtVTkFNRV9SRUxF QVNFfQotKwkJZXhpdCA7OwotKwkgICAgYXV0aGVudGljYW1kIHwgZ2VudWluZWludGVsIHwgRU02 NFQpCi0rCQllY2hvIHg4Nl82NC11bmtub3duLWludGVyaXgke1VOQU1FX1JFTEVBU0V9Ci0rCQll eGl0IDs7Ci0rCSAgICBJQTY0KQotKwkJZWNobyBpYTY0LXVua25vd24taW50ZXJpeCR7VU5BTUVf UkVMRUFTRX0KLSsJCWV4aXQgOzsKLSsJZXNhYyA7OwotKyAgICBbMzQ1XTg2OldpbmRvd3NfOTU6 KiB8IFszNDVdODY6V2luZG93c185ODoqIHwgWzM0NV04NjpXaW5kb3dzX05UOiopCi0rCWVjaG8g aSR7VU5BTUVfTUFDSElORX0tcGMtbWtzCi0rCWV4aXQgOzsKLSsgICAgODY2NDpXaW5kb3dzX05U OiopCi0rCWVjaG8geDg2XzY0LXBjLW1rcwotKwlleGl0IDs7Ci0rICAgIGkqOldpbmRvd3NfTlQq OiogfCBQZW50aXVtKjpXaW5kb3dzX05UKjoqKQotKwkjIEhvdyBkbyB3ZSBrbm93IGl0J3MgSW50 ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQT1NJWCBzdWJzeXN0ZW0/Ci0rCSMgSXQgYWxz byBjb25mbGljdHMgd2l0aCBwcmUtMi4wIHZlcnNpb25zIG9mIEFUJlQgVVdJTi4gU2hvdWxkIHdl Ci0rCSMgVU5BTUVfTUFDSElORSBiYXNlZCBvbiB0aGUgb3V0cHV0IG9mIHVuYW1lIGluc3RlYWQg b2YgaTM4Nj8KLSsJZWNobyBpNTg2LXBjLWludGVyaXgKLSsJZXhpdCA7OwotKyAgICBpKjpVV0lO KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtdXdpbgotKwlleGl0IDs7Ci0rICAgIGFt ZDY0OkNZR1dJTio6KjoqIHwgeDg2XzY0OkNZR1dJTio6KjoqKQotKwllY2hvIHg4Nl82NC11bmtu b3duLWN5Z3dpbgotKwlleGl0IDs7Ci0rICAgIHAqOkNZR1dJTio6KikKLSsJZWNobyBwb3dlcnBj bGUtdW5rbm93bi1jeWd3aW4KLSsJZXhpdCA7OwotKyAgICBwcmVwKjpTdW5PUzo1Lio6KikKLSsJ ZWNobyBwb3dlcnBjbGUtdW5rbm93bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2Vk IC1lICdzL1teLl0qLy8nYAotKwlleGl0IDs7Ci0rICAgICo6R05VOio6KikKLSsJIyB0aGUgR05V IHN5c3RlbQotKwllY2hvIGBlY2hvICR7VU5BTUVfTUFDSElORX18c2VkIC1lICdzLFstL10uKiQs LCdgLXVua25vd24tZ251YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MsLy4qJCwsJ2AK LSsJZXhpdCA7OwotKyAgICAqOkdOVS8qOio6KikKLSsJIyBvdGhlciBzeXN0ZW1zIHdpdGggR05V IGxpYmMgYW5kIHVzZXJsYW5kCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWBlY2hv ICR7VU5BTUVfU1lTVEVNfSB8IHNlZCAncyxeW14vXSovLCwnIHwgdHIgJ1tBLVpdJyAnW2Etel0n YGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AtZ251Ci0rCWV4aXQg OzsKLSsgICAgaSo4NjpNaW5peDoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1taW5p eAotKwlleGl0IDs7Ci0rICAgIGFscGhhOkxpbnV4Oio6KikKLSsJY2FzZSBgc2VkIC1uICcvXmNw dSBtb2RlbC9zL14uKjogXCguKlwpL1wxL3AnIDwgL3Byb2MvY3B1aW5mb2AgaW4KLSsJICBFVjUp ICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NSA7OwotKwkgIEVWNTYpICBVTkFNRV9NQUNISU5FPWFs cGhhZXY1NiA7OwotKwkgIFBDQTU2KSBVTkFNRV9NQUNISU5FPWFscGhhcGNhNTYgOzsKLSsJICBQ Q0E1NykgVU5BTUVfTUFDSElORT1hbHBoYXBjYTU2IDs7Ci0rCSAgRVY2KSAgIFVOQU1FX01BQ0hJ TkU9YWxwaGFldjYgOzsKLSsJICBFVjY3KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NjcgOzsKLSsJ ICBFVjY4KikgVU5BTUVfTUFDSElORT1hbHBoYWV2NjggOzsKLSsgICAgICAgIGVzYWMKLSsJb2Jq ZHVtcCAtLXByaXZhdGUtaGVhZGVycyAvYmluL3NoIHwgZ3JlcCAtcSBsZC5zby4xCi0rCWlmIHRl c3QgIiQ/IiA9IDAgOyB0aGVuIExJQkM9ImxpYmMxIiA7IGVsc2UgTElCQz0iIiA7IGZpCi0rCWVj aG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudSR7TElCQ30KLSsJZXhpdCA7Owot KyAgICBhcm0qOkxpbnV4Oio6KikKLSsJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwlpZiBlY2hv IF9fQVJNX0VBQklfXyB8ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCBcCi0rCSAgICB8 IGdyZXAgLXEgX19BUk1fRUFCSV9fCi0rCXRoZW4KLSsJICAgIGVjaG8gJHtVTkFNRV9NQUNISU5F fS11bmtub3duLWxpbnV4LWdudQotKwllbHNlCi0rCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1saW51eC1nbnVlYWJpCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgYXZyMzIqOkxpbnV4 Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQg OzsKLSsgICAgY3JpczpMaW51eDoqOiopCi0rCWVjaG8gY3Jpcy1heGlzLWxpbnV4LWdudQotKwll eGl0IDs7Ci0rICAgIGNyaXN2MzI6TGludXg6KjoqKQotKwllY2hvIGNyaXN2MzItYXhpcy1saW51 eC1nbnUKLSsJZXhpdCA7OwotKyAgICBmcnY6TGludXg6KjoqKQotKyAgICAJZWNobyBmcnYtdW5r bm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBpKjg2OkxpbnV4Oio6KikKLSsJTElCQz1n bnUKLSsJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVt bXkuYwotKwkjaWZkZWYgX19kaWV0bGliY19fCi0rCUxJQkM9ZGlldGxpYmMKLSsJI2VuZGlmCi0r RU9GCi0rCWV2YWwgYCRDQ19GT1JfQlVJTEQgLUUgJGR1bW15LmMgMj4vZGV2L251bGwgfCBncmVw ICdeTElCQydgCi0rCWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtJHtMSUJDfSIKLSsJ ZXhpdCA7OwotKyAgICBpYTY0OkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVu a25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgbTMycio6TGludXg6KjoqKQotKwllY2hv ICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBtNjgq OkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0r CWV4aXQgOzsKLSsgICAgbWlwczpMaW51eDoqOiogfCBtaXBzNjQ6TGludXg6KjoqKQotKwlldmFs ICRzZXRfY2NfZm9yX2J1aWxkCi0rCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCi0rCSN1 bmRlZiBDUFUKLSsJI3VuZGVmICR7VU5BTUVfTUFDSElORX0KLSsJI3VuZGVmICR7VU5BTUVfTUFD SElORX1lbAotKwkjaWYgZGVmaW5lZChfX01JUFNFTF9fKSB8fCBkZWZpbmVkKF9fTUlQU0VMKSB8 fCBkZWZpbmVkKF9NSVBTRUwpIHx8IGRlZmluZWQoTUlQU0VMKQotKwlDUFU9JHtVTkFNRV9NQUNI SU5FfWVsCi0rCSNlbHNlCi0rCSNpZiBkZWZpbmVkKF9fTUlQU0VCX18pIHx8IGRlZmluZWQoX19N SVBTRUIpIHx8IGRlZmluZWQoX01JUFNFQikgfHwgZGVmaW5lZChNSVBTRUIpCi0rCUNQVT0ke1VO QU1FX01BQ0hJTkV9Ci0rCSNlbHNlCi0rCUNQVT0KLSsJI2VuZGlmCi0rCSNlbmRpZgotK0VPRgot KwlldmFsIGAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCAnXkNQ VSdgCi0rCXRlc3QgeCIke0NQVX0iICE9IHggJiYgeyBlY2hvICIke0NQVX0tdW5rbm93bi1saW51 eC1nbnUiOyBleGl0OyB9Ci0rCTs7Ci0rICAgIG9yMzI6TGludXg6KjoqKQotKwllY2hvIG9yMzIt dW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBwYWRyZTpMaW51eDoqOiopCi0rCWVj aG8gc3BhcmMtdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBwYXJpc2M2NDpMaW51 eDoqOiogfCBocHBhNjQ6TGludXg6KjoqKQotKwllY2hvIGhwcGE2NC11bmtub3duLWxpbnV4LWdu dQotKwlleGl0IDs7Ci0rICAgIHBhcmlzYzpMaW51eDoqOiogfCBocHBhOkxpbnV4Oio6KikKLSsJ IyBMb29rIGZvciBDUFUgbGV2ZWwKLSsJY2FzZSBgZ3JlcCAnXmNwdVteYS16XSo6JyAvcHJvYy9j cHVpbmZvIDI+L2Rldi9udWxsIHwgY3V0IC1kJyAnIC1mMmAgaW4KLSsJICBQQTcqKSBlY2hvIGhw cGExLjEtdW5rbm93bi1saW51eC1nbnUgOzsKLSsJICBQQTgqKSBlY2hvIGhwcGEyLjAtdW5rbm93 bi1saW51eC1nbnUgOzsKLSsJICAqKSAgICBlY2hvIGhwcGEtdW5rbm93bi1saW51eC1nbnUgOzsK LSsJZXNhYwotKwlleGl0IDs7Ci0rICAgIHBwYzY0OkxpbnV4Oio6KikKLSsJZWNobyBwb3dlcnBj NjQtdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBwcGM6TGludXg6KjoqKQotKwll Y2hvIHBvd2VycGMtdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBzMzkwOkxpbnV4 Oio6KiB8IHMzOTB4OkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LWlibS1saW51 eAotKwlleGl0IDs7Ci0rICAgIHNoNjQqOkxpbnV4Oio6KikKLSsgICAgCWVjaG8gJHtVTkFNRV9N QUNISU5FfS11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIHNoKjpMaW51eDoqOiop Ci0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0r ICAgIHNwYXJjOkxpbnV4Oio6KiB8IHNwYXJjNjQ6TGludXg6KjoqKQotKwllY2hvICR7VU5BTUVf TUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICB2YXg6TGludXg6Kjoq KQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tZGVjLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAg IHg4Nl82NDpMaW51eDoqOiopCi0rCWVjaG8geDg2XzY0LXVua25vd24tbGludXgtZ251Ci0rCWV4 aXQgOzsKLSsgICAgeHRlbnNhKjpMaW51eDoqOiopCi0rICAgIAllY2hvICR7VU5BTUVfTUFDSElO RX0tdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBpKjg2OkRZTklYL3B0eDo0Kjoq KQotKwkjIHB0eCA0LjAgZG9lcyB1bmFtZSAtcyBjb3JyZWN0bHksIHdpdGggRFlOSVgvcHR4IGlu IHRoZXJlLgotKwkjIGVhcmxpZXIgdmVyc2lvbnMgYXJlIG1lc3NlZCB1cCBhbmQgcHV0IHRoZSBu b2RlbmFtZSBpbiBib3RoCi0rCSMgc3lzbmFtZSBhbmQgbm9kZW5hbWUuCi0rCWVjaG8gaTM4Ni1z ZXF1ZW50LXN5c3Y0Ci0rCWV4aXQgOzsKLSsgICAgaSo4NjpVTklYX1NWOjQuMk1QOjIuKikKLSsg ICAgICAgICMgVW5peHdhcmUgaXMgYW4gb2Zmc2hvb3Qgb2YgU1ZSNCwgYnV0IGl0IGhhcyBpdHMg b3duIHZlcnNpb24KLSsgICAgICAgICMgbnVtYmVyIHNlcmllcyBzdGFydGluZyB3aXRoIDIuLi4K LSsgICAgICAgICMgSSBhbSBub3QgcG9zaXRpdmUgdGhhdCBvdGhlciBTVlI0IHN5c3RlbXMgd29u J3QgbWF0Y2ggdGhpcywKLSsJIyBJIGp1c3QgaGF2ZSB0byBob3BlLiAgLS0gcm1zLgotKyAgICAg ICAgIyBVc2Ugc3lzdjQuMnV3Li4uIHNvIHRoYXQgc3lzdjQqIG1hdGNoZXMgaXQuCi0rCWVjaG8g JHtVTkFNRV9NQUNISU5FfS1wYy1zeXN2NC4ydXcke1VOQU1FX1ZFUlNJT059Ci0rCWV4aXQgOzsK LSsgICAgaSo4NjpPUy8yOio6KikKLSsJIyBJZiB3ZSB3ZXJlIGFibGUgdG8gZmluZCBgdW5hbWUn LCB0aGVuIEVNWCBVbml4IGNvbXBhdGliaWxpdHkKLSsJIyBpcyBwcm9iYWJseSBpbnN0YWxsZWQu Ci0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1vczItZW14Ci0rCWV4aXQgOzsKLSsgICAgaSo4 NjpYVFMtMzAwOio6U1RPUCkKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc3RvcAot KwlleGl0IDs7Ci0rICAgIGkqODY6YXRoZW9zOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9 LXVua25vd24tYXRoZW9zCi0rCWV4aXQgOzsKLSsgICAgaSo4NjpzeWxsYWJsZToqOiopCi0rCWVj aG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeWxsYWJsZQotKwlleGl0IDs7Ci0rICAgIGkqODY6THlu eE9TOjIuKjoqIHwgaSo4NjpMeW54T1M6My5bMDFdKjoqIHwgaSo4NjpMeW54T1M6NC5bMDJdKjoq KQotKwllY2hvIGkzODYtdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsK LSsgICAgaSo4NjoqRE9TOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1zZG9zZGpn cHAKLSsJZXhpdCA7OwotKyAgICBpKjg2Oio6NC4qOiogfCBpKjg2OlNZU1RFTV9WOjQuKjoqKQot KwlVTkFNRV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAncy9cL01QJC8vJ2AKLSsJ aWYgZ3JlcCBOb3ZlbGwgL3Vzci9pbmNsdWRlL2xpbmsuaCA+L2Rldi9udWxsIDI+L2Rldi9udWxs OyB0aGVuCi0rCQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5pdmVsLXN5c3Yke1VOQU1FX1JFTH0K LSsJZWxzZQotKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Yke1VOQU1FX1JFTH0KLSsJ ZmkKLSsJZXhpdCA7OwotKyAgICBpKjg2Oio6NTpbNjc4XSopCi0rICAgIAkjIFVuaXhXYXJlIDcu eCwgT3BlblVOSVggYW5kIE9wZW5TZXJ2ZXIgNi4KLSsJY2FzZSBgL2Jpbi91bmFtZSAtWCB8IGdy ZXAgIl5NYWNoaW5lImAgaW4KLSsJICAgICo0ODYqKQkgICAgIFVOQU1FX01BQ0hJTkU9aTQ4NiA7 OwotKwkgICAgKlBlbnRpdW0pCSAgICAgVU5BTUVfTUFDSElORT1pNTg2IDs7Ci0rCSAgICAqUGVu dCp8KkNlbGVyb24pIFVOQU1FX01BQ0hJTkU9aTY4NiA7OwotKwllc2FjCi0rCWVjaG8gJHtVTkFN RV9NQUNISU5FfS11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9JHtVTkFNRV9TWVNURU19JHtV TkFNRV9WRVJTSU9OfQotKwlleGl0IDs7Ci0rICAgIGkqODY6KjozLjI6KikKLSsJaWYgdGVzdCAt ZiAvdXNyL29wdGlvbnMvY2IubmFtZTsgdGhlbgotKwkJVU5BTUVfUkVMPWBzZWQgLW4gJ3MvLipW ZXJzaW9uIC8vcCcgPC91c3Ivb3B0aW9ucy9jYi5uYW1lYAotKwkJZWNobyAke1VOQU1FX01BQ0hJ TkV9LXBjLWlzYyRVTkFNRV9SRUwKLSsJZWxpZiAvYmluL3VuYW1lIC1YIDI+L2Rldi9udWxsID4v ZGV2L251bGwgOyB0aGVuCi0rCQlVTkFNRV9SRUw9YCgvYmluL3VuYW1lIC1YfGdyZXAgUmVsZWFz ZXxzZWQgLWUgJ3MvLio9IC8vJylgCi0rCQkoL2Jpbi91bmFtZSAtWHxncmVwIGk4MDQ4NiA+L2Rl di9udWxsKSAmJiBVTkFNRV9NQUNISU5FPWk0ODYKLSsJCSgvYmluL3VuYW1lIC1YfGdyZXAgJ15N YWNoaW5lLipQZW50aXVtJyA+L2Rldi9udWxsKSBcCi0rCQkJJiYgVU5BTUVfTUFDSElORT1pNTg2 Ci0rCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudCAqSUknID4vZGV2L251bGwp IFwKLSsJCQkmJiBVTkFNRV9NQUNISU5FPWk2ODYKLSsJCSgvYmluL3VuYW1lIC1YfGdyZXAgJ15N YWNoaW5lLipQZW50aXVtIFBybycgPi9kZXYvbnVsbCkgXAotKwkJCSYmIFVOQU1FX01BQ0hJTkU9 aTY4NgotKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXNjbyRVTkFNRV9SRUwKLSsJZWxzZQot KwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3YzMgotKwlmaQotKwlleGl0IDs7Ci0rICAg IHBjOio6KjoqKQotKwkjIExlZnQgaGVyZSBmb3IgY29tcGF0aWJpbGl0eToKLSsgICAgICAgICMg dW5hbWUgLW0gcHJpbnRzIGZvciBESkdQUCBhbHdheXMgJ3BjJywgYnV0IGl0IHByaW50cyBub3Ro aW5nIGFib3V0Ci0rICAgICAgICAjIHRoZSBwcm9jZXNzb3IsIHNvIHdlIHBsYXkgc2FmZSBieSBh c3N1bWluZyBpNTg2LgotKwkjIE5vdGU6IHdoYXRldmVyIHRoaXMgaXMsIGl0IE1VU1QgYmUgdGhl IHNhbWUgYXMgd2hhdCBjb25maWcuc3ViCi0rCSMgcHJpbnRzIGZvciB0aGUgImRqZ3BwIiBob3N0 LCBvciBlbHNlIEdEQiBjb25maWd1cnkgd2lsbCBkZWNpZGUgdGhhdAotKwkjIHRoaXMgaXMgYSBj cm9zcy1idWlsZC4KLSsJZWNobyBpNTg2LXBjLW1zZG9zZGpncHAKLSsgICAgICAgIGV4aXQgOzsK LSsgICAgSW50ZWw6TWFjaDozKjoqKQotKwllY2hvIGkzODYtcGMtbWFjaDMKLSsJZXhpdCA7Owot KyAgICBwYXJhZ29uOio6KjoqKQotKwllY2hvIGk4NjAtaW50ZWwtb3NmMQotKwlleGl0IDs7Ci0r ICAgIGk4NjA6Kjo0Lio6KikgIyBpODYwLVNWUjQKLSsJaWYgZ3JlcCBTdGFyZGVudCAvdXNyL2lu Y2x1ZGUvc3lzL3VhZG1pbi5oID4vZGV2L251bGwgMj4mMSA7IHRoZW4KLSsJICBlY2hvIGk4NjAt c3RhcmRlbnQtc3lzdiR7VU5BTUVfUkVMRUFTRX0gIyBTdGFyZGVudCBWaXN0cmEgaTg2MC1TVlI0 Ci0rCWVsc2UgIyBBZGQgb3RoZXIgaTg2MC1TVlI0IHZlbmRvcnMgYmVsb3cgYXMgdGhleSBhcmUg ZGlzY292ZXJlZC4KLSsJICBlY2hvIGk4NjAtdW5rbm93bi1zeXN2JHtVTkFNRV9SRUxFQVNFfSAg IyBVbmtub3duIGk4NjAtU1ZSNAotKwlmaQotKwlleGl0IDs7Ci0rICAgIG1pbmkqOkNUSVg6U1lT KjU6KikKLSsJIyAibWluaWZyYW1lIgotKwllY2hvIG02ODAxMC1jb252ZXJnZW50LXN5c3YKLSsJ ZXhpdCA7OwotKyAgICBtYzY4azpVTklYOlNZU1RFTTU6My41MW0pCi0rCWVjaG8gbTY4ay1jb252 ZXJnZW50LXN5c3YKLSsJZXhpdCA7OwotKyAgICBNNjgwPzA6RC1OSVg6NS4zOiopCi0rCWVjaG8g bTY4ay1kaWFiLWRuaXgKLSsJZXhpdCA7OwotKyAgICBNNjgqOio6UjNWWzU2NzhdKjoqKQotKwl0 ZXN0IC1yIC9zeXNWNjggJiYgeyBlY2hvICdtNjhrLW1vdG9yb2xhLXN5c3YnOyBleGl0OyB9IDs7 Ci0rICAgIDNbMzQ1XT8/Oio6NC4wOjMuMCB8IDNbMzRdPz9BOio6NC4wOjMuMCB8IDNbMzRdPz8s KjoqOjQuMDozLjAgfCAzWzM0XT8/Lyo6Kjo0LjA6My4wIHwgNDQwMDoqOjQuMDozLjAgfCA0ODUw Oio6NC4wOjMuMCB8IFNLQTQwOio6NC4wOjMuMCB8IFNEUzI6Kjo0LjA6My4wIHwgU0hHMjoqOjQu MDozLjAgfCBTNzUwMSo6Kjo0LjA6My4wKQotKwlPU19SRUw9JycKLSsJdGVzdCAtciAvZXRjLy5y ZWxpZCBcCi0rCSYmIE9TX1JFTD0uYHNlZCAtbiAncy9bXiBdKiBbXiBdKiBcKFswLTldWzAtOV1c KS4qL1wxL3AnIDwgL2V0Yy8ucmVsaWRgCi0rCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCBn cmVwIDg2ID4vZGV2L251bGwgXAotKwkgICYmIHsgZWNobyBpNDg2LW5jci1zeXN2NC4zJHtPU19S RUx9OyBleGl0OyB9Ci0rCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCAvYmluL2dyZXAgZW50 aXVtID4vZGV2L251bGwgXAotKwkgICYmIHsgZWNobyBpNTg2LW5jci1zeXN2NC4zJHtPU19SRUx9 OyBleGl0OyB9IDs7Ci0rICAgIDNbMzRdPz86Kjo0LjA6KiB8IDNbMzRdPz8sKjoqOjQuMDoqKQot KyAgICAgICAgL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IGdyZXAgODYgPi9kZXYvbnVsbCBc Ci0rICAgICAgICAgICYmIHsgZWNobyBpNDg2LW5jci1zeXN2NDsgZXhpdDsgfSA7OwotKyAgICBO Q1IqOio6NC4yOiogfCBNUFJBUyo6Kjo0LjI6KikKLSsJT1NfUkVMPScuMycKLSsJdGVzdCAtciAv ZXRjLy5yZWxpZCBcCi0rCSAgICAmJiBPU19SRUw9LmBzZWQgLW4gJ3MvW14gXSogW14gXSogXChb MC05XVswLTldXCkuKi9cMS9wJyA8IC9ldGMvLnJlbGlkYAotKwkvYmluL3VuYW1lIC1wIDI+L2Rl di9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKLSsJICAgICYmIHsgZWNobyBpNDg2LW5jci1z eXN2NC4zJHtPU19SRUx9OyBleGl0OyB9Ci0rCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCAv YmluL2dyZXAgZW50aXVtID4vZGV2L251bGwgXAotKwkgICAgJiYgeyBlY2hvIGk1ODYtbmNyLXN5 c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0KLSsJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IC9i aW4vZ3JlcCBwdGVyb24gPi9kZXYvbnVsbCBcCi0rCSAgICAmJiB7IGVjaG8gaTU4Ni1uY3Itc3lz djQuMyR7T1NfUkVMfTsgZXhpdDsgfSA7OwotKyAgICBtNjgqOkx5bnhPUzoyLio6KiB8IG02OCo6 THlueE9TOjMuMCo6KikKLSsJZWNobyBtNjhrLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNF fQotKwlleGl0IDs7Ci0rICAgIG1jNjgwMzA6VU5JWF9TeXN0ZW1fVjo0Lio6KikKLSsJZWNobyBt NjhrLWF0YXJpLXN5c3Y0Ci0rCWV4aXQgOzsKLSsgICAgVFNVTkFNSTpMeW54T1M6Mi4qOiopCi0r CWVjaG8gc3BhcmMtdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsg ICAgcnM2MDAwOkx5bnhPUzoyLio6KikKLSsJZWNobyByczYwMDAtdW5rbm93bi1seW54b3Mke1VO QU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgUG93ZXJQQzpMeW54T1M6Mi4qOiogfCBQb3dl clBDOkx5bnhPUzozLlswMV0qOiogfCBQb3dlclBDOkx5bnhPUzo0LlswMl0qOiopCi0rCWVjaG8g cG93ZXJwYy11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBT TVtCRV1TOlVOSVhfU1Y6KjoqKQotKwllY2hvIG1pcHMtZGRlLXN5c3Yke1VOQU1FX1JFTEVBU0V9 Ci0rCWV4aXQgOzsKLSsgICAgUk0qOlJlbGlhbnRVTklYLSo6KjoqKQotKwllY2hvIG1pcHMtc25p LXN5c3Y0Ci0rCWV4aXQgOzsKLSsgICAgUk0qOlNJTklYLSo6KjoqKQotKwllY2hvIG1pcHMtc25p LXN5c3Y0Ci0rCWV4aXQgOzsKLSsgICAgKjpTSU5JWC0qOio6KikKLSsJaWYgdW5hbWUgLXAgMj4v ZGV2L251bGwgPi9kZXYvbnVsbCA7IHRoZW4KLSsJCVVOQU1FX01BQ0hJTkU9YCh1bmFtZSAtcCkg Mj4vZGV2L251bGxgCi0rCQllY2hvICR7VU5BTUVfTUFDSElORX0tc25pLXN5c3Y0Ci0rCWVsc2UK LSsJCWVjaG8gbnMzMmstc25pLXN5c3YKLSsJZmkKLSsJZXhpdCA7OwotKyAgICBQRU5USVVNOio6 NC4wKjoqKSAjIFVuaXN5cyBgQ2xlYXJQYXRoIEhNUCBJWCA0MDAwJyBTVlI0L01QIGVmZm9ydAot KyAgICAgICAgICAgICAgICAgICAgICAjIHNheXMgPFJpY2hhcmQuTS5CYXJ0ZWxAY2NNYWlsLkNl bnN1cy5HT1Y+Ci0rICAgICAgICBlY2hvIGk1ODYtdW5pc3lzLXN5c3Y0Ci0rICAgICAgICBleGl0 IDs7Ci0rICAgICo6VU5JWF9TeXN0ZW1fVjo0KjpGVFgqKQotKwkjIEZyb20gR2VyYWxkIEhld2Vz IDxoZXdlc0BvcGVubWFya2V0LmNvbT4uCi0rCSMgSG93IGFib3V0IGRpZmZlcmVudGlhdGluZyBi ZXR3ZWVuIHN0cmF0dXMgYXJjaGl0ZWN0dXJlcz8gLWRqbQotKwllY2hvIGhwcGExLjEtc3RyYXR1 cy1zeXN2NAotKwlleGl0IDs7Ci0rICAgICo6KjoqOkZUWCopCi0rCSMgRnJvbSBzZWFuZkBzd2Rj LnN0cmF0dXMuY29tLgotKwllY2hvIGk4NjAtc3RyYXR1cy1zeXN2NAotKwlleGl0IDs7Ci0rICAg IGkqODY6Vk9TOio6KikKLSsJIyBGcm9tIFBhdWwuR3JlZW5Ac3RyYXR1cy5jb20uCi0rCWVjaG8g JHtVTkFNRV9NQUNISU5FfS1zdHJhdHVzLXZvcwotKwlleGl0IDs7Ci0rICAgICo6Vk9TOio6KikK LSsJIyBGcm9tIFBhdWwuR3JlZW5Ac3RyYXR1cy5jb20uCi0rCWVjaG8gaHBwYTEuMS1zdHJhdHVz LXZvcwotKwlleGl0IDs7Ci0rICAgIG1jNjgqOkEvVVg6KjoqKQotKwllY2hvIG02OGstYXBwbGUt YXV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIG5ld3MqOk5FV1MtT1M6Nio6KikK LSsJZWNobyBtaXBzLXNvbnktbmV3c29zNgotKwlleGl0IDs7Ci0rICAgIFJbMzRdMDAwOipTeXN0 ZW1fVio6KjoqIHwgUjQwMDA6VU5JWF9TWVNWOio6KiB8IFIqMDAwOlVOSVhfU1Y6KjoqKQotKwlp ZiBbIC1kIC91c3IvbmVjIF07IHRoZW4KLSsJICAgICAgICBlY2hvIG1pcHMtbmVjLXN5c3Yke1VO QU1FX1JFTEVBU0V9Ci0rCWVsc2UKLSsJICAgICAgICBlY2hvIG1pcHMtdW5rbm93bi1zeXN2JHtV TkFNRV9SRUxFQVNFfQotKwlmaQotKyAgICAgICAgZXhpdCA7OwotKyAgICBCZUJveDpCZU9TOio6 KikJIyBCZU9TIHJ1bm5pbmcgb24gaGFyZHdhcmUgbWFkZSBieSBCZSwgUFBDIG9ubHkuCi0rCWVj aG8gcG93ZXJwYy1iZS1iZW9zCi0rCWV4aXQgOzsKLSsgICAgQmVNYWM6QmVPUzoqOiopCSMgQmVP UyBydW5uaW5nIG9uIE1hYyBvciBNYWMgY2xvbmUsIFBQQyBvbmx5LgotKwllY2hvIHBvd2VycGMt YXBwbGUtYmVvcwotKwlleGl0IDs7Ci0rICAgIEJlUEM6QmVPUzoqOiopCSMgQmVPUyBydW5uaW5n IG9uIEludGVsIFBDIGNvbXBhdGlibGUuCi0rCWVjaG8gaTU4Ni1wYy1iZW9zCi0rCWV4aXQgOzsK LSsgICAgQmVQQzpIYWlrdToqOiopCSMgSGFpa3UgcnVubmluZyBvbiBJbnRlbCBQQyBjb21wYXRp YmxlLgotKwllY2hvIGk1ODYtcGMtaGFpa3UKLSsJZXhpdCA7OwotKyAgICBTWC00OlNVUEVSLVVY Oio6KikKLSsJZWNobyBzeDQtbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsK LSsgICAgU1gtNTpTVVBFUi1VWDoqOiopCi0rCWVjaG8gc3g1LW5lYy1zdXBlcnV4JHtVTkFNRV9S RUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFNYLTY6U1VQRVItVVg6KjoqKQotKwllY2hvIHN4Ni1u ZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBTWC03OlNVUEVSLVVY Oio6KikKLSsJZWNobyBzeDctbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsK LSsgICAgU1gtODpTVVBFUi1VWDoqOiopCi0rCWVjaG8gc3g4LW5lYy1zdXBlcnV4JHtVTkFNRV9S RUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFNYLThSOlNVUEVSLVVYOio6KikKLSsJZWNobyBzeDhy LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFBvd2VyKjpSaGFw c29keToqOiopCi0rCWVjaG8gcG93ZXJwYy1hcHBsZS1yaGFwc29keSR7VU5BTUVfUkVMRUFTRX0K LSsJZXhpdCA7OwotKyAgICAqOlJoYXBzb2R5Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9 LWFwcGxlLXJoYXBzb2R5JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6RGFyd2lu Oio6KikKLSsJVU5BTUVfUFJPQ0VTU09SPWB1bmFtZSAtcGAgfHwgVU5BTUVfUFJPQ0VTU09SPXVu a25vd24KLSsJY2FzZSAkVU5BTUVfUFJPQ0VTU09SIGluCi0rCSAgICBpMzg2KQotKwkJZXZhbCAk c2V0X2NjX2Zvcl9idWlsZAotKwkJaWYgWyAiJENDX0ZPUl9CVUlMRCIgIT0gJ25vX2NvbXBpbGVy X2ZvdW5kJyBdOyB0aGVuCi0rCQkgIGlmIChlY2hvICcjaWZkZWYgX19MUDY0X18nOyBlY2hvIElT XzY0QklUX0FSQ0g7IGVjaG8gJyNlbmRpZicpIHwgXAotKwkJICAgICAgKENDT1BUUz0gJENDX0ZP Ul9CVUlMRCAtRSAtIDI+L2Rldi9udWxsKSB8IFwKLSsJCSAgICAgIGdyZXAgSVNfNjRCSVRfQVJD SCA+L2Rldi9udWxsCi0rCQkgIHRoZW4KLSsJCSAgICAgIFVOQU1FX1BST0NFU1NPUj0ieDg2XzY0 IgotKwkJICBmaQotKwkJZmkgOzsKLSsJICAgIHVua25vd24pIFVOQU1FX1BST0NFU1NPUj1wb3dl cnBjIDs7Ci0rCWVzYWMKLSsJZWNobyAke1VOQU1FX1BST0NFU1NPUn0tYXBwbGUtZGFyd2luJHtV TkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6cHJvY250byo6KjoqIHwgKjpRTlg6WzAx MjM0NTY3ODldKjoqKQotKwlVTkFNRV9QUk9DRVNTT1I9YHVuYW1lIC1wYAotKwlpZiB0ZXN0ICIk VU5BTUVfUFJPQ0VTU09SIiA9ICJ4ODYiOyB0aGVuCi0rCQlVTkFNRV9QUk9DRVNTT1I9aTM4Ngot KwkJVU5BTUVfTUFDSElORT1wYwotKwlmaQotKwllY2hvICR7VU5BTUVfUFJPQ0VTU09SfS0ke1VO QU1FX01BQ0hJTkV9LW50by1xbngke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgKjpR Tlg6Kjo0KikKLSsJZWNobyBpMzg2LXBjLXFueAotKwlleGl0IDs7Ci0rICAgIE5TRS0/Ok5PTlNU T1BfS0VSTkVMOio6KikKLSsJZWNobyBuc2UtdGFuZGVtLW5zayR7VU5BTUVfUkVMRUFTRX0KLSsJ ZXhpdCA7OwotKyAgICBOU1ItPzpOT05TVE9QX0tFUk5FTDoqOiopCi0rCWVjaG8gbnNyLXRhbmRl bS1uc2ske1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgKjpOb25TdG9wLVVYOio6KikK LSsJZWNobyBtaXBzLWNvbXBhcS1ub25zdG9wdXgKLSsJZXhpdCA7OwotKyAgICBCUzIwMDA6UE9T SVgqOio6KikKLSsJZWNobyBiczIwMDAtc2llbWVucy1zeXN2Ci0rCWV4aXQgOzsKLSsgICAgRFMv KjpVTklYX1N5c3RlbV9WOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LSR7VU5BTUVfU1lT VEVNfS0ke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgKjpQbGFuOToqOiopCi0rCSMg InVuYW1lIC1tIiBpcyBub3QgY29uc2lzdGVudCwgc28gdXNlICRjcHV0eXBlIGluc3RlYWQuIDM4 NgotKwkjIGlzIGNvbnZlcnRlZCB0byBpMzg2IGZvciBjb25zaXN0ZW5jeSB3aXRoIG90aGVyIHg4 NgotKwkjIG9wZXJhdGluZyBzeXN0ZW1zLgotKwlpZiB0ZXN0ICIkY3B1dHlwZSIgPSAiMzg2Ijsg dGhlbgotKwkgICAgVU5BTUVfTUFDSElORT1pMzg2Ci0rCWVsc2UKLSsJICAgIFVOQU1FX01BQ0hJ TkU9IiRjcHV0eXBlIgotKwlmaQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1wbGFu OQotKwlleGl0IDs7Ci0rICAgICo6VE9QUy0xMDoqOiopCi0rCWVjaG8gcGRwMTAtdW5rbm93bi10 b3BzMTAKLSsJZXhpdCA7OwotKyAgICAqOlRFTkVYOio6KikKLSsJZWNobyBwZHAxMC11bmtub3du LXRlbmV4Ci0rCWV4aXQgOzsKLSsgICAgS1MxMDpUT1BTLTIwOio6KiB8IEtMMTA6VE9QUy0yMDoq OiogfCBUWVBFNDpUT1BTLTIwOio6KikKLSsJZWNobyBwZHAxMC1kZWMtdG9wczIwCi0rCWV4aXQg OzsKLSsgICAgWEtMLTE6VE9QUy0yMDoqOiogfCBUWVBFNTpUT1BTLTIwOio6KikKLSsJZWNobyBw ZHAxMC14a2wtdG9wczIwCi0rCWV4aXQgOzsKLSsgICAgKjpUT1BTLTIwOio6KikKLSsJZWNobyBw ZHAxMC11bmtub3duLXRvcHMyMAotKwlleGl0IDs7Ci0rICAgICo6SVRTOio6KikKLSsJZWNobyBw ZHAxMC11bmtub3duLWl0cwotKwlleGl0IDs7Ci0rICAgIFNFSToqOio6U0VJVVgpCi0rICAgICAg ICBlY2hvIG1pcHMtc2VpLXNlaXV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6 RHJhZ29uRmx5Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tZHJhZ29uZmx5 YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYAotKwlleGl0IDs7Ci0r ICAgICo6KlZNUzoqOiopCi0rICAgIAlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9u dWxsYAotKwljYXNlICIke1VOQU1FX01BQ0hJTkV9IiBpbgotKwkgICAgQSopIGVjaG8gYWxwaGEt ZGVjLXZtcyA7IGV4aXQgOzsKLSsJICAgIEkqKSBlY2hvIGlhNjQtZGVjLXZtcyA7IGV4aXQgOzsK LSsJICAgIFYqKSBlY2hvIHZheC1kZWMtdm1zIDsgZXhpdCA7OwotKwllc2FjIDs7Ci0rICAgICo6 WEVOSVg6KjpTeXNWKQotKwllY2hvIGkzODYtcGMteGVuaXgKLSsJZXhpdCA7OwotKyAgICBpKjg2 OnNreW9zOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXNreW9zYGVjaG8gJHtVTkFN RV9SRUxFQVNFfWAgfCBzZWQgLWUgJ3MvIC4qJC8vJwotKwlleGl0IDs7Ci0rICAgIGkqODY6cmRv czoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1yZG9zCi0rCWV4aXQgOzsKLSsgICAg aSo4NjpBUk9TOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWFyb3MKLSsJZXhpdCA7 OwotK2VzYWMKLSsKLSsjZWNobyAnKE5vIHVuYW1lIGNvbW1hbmQgb3IgdW5hbWUgb3V0cHV0IG5v dCByZWNvZ25pemVkLiknIDE+JjIKLSsjZWNobyAiJHtVTkFNRV9NQUNISU5FfToke1VOQU1FX1NZ U1RFTX06JHtVTkFNRV9SRUxFQVNFfToke1VOQU1FX1ZFUlNJT059IiAxPiYyCi0rCi0rZXZhbCAk c2V0X2NjX2Zvcl9idWlsZAotK2NhdCA+JGR1bW15LmMgPDxFT0YKLSsjaWZkZWYgX1NFUVVFTlRf Ci0rIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSsjIGluY2x1ZGUgPHN5cy91dHNuYW1lLmg+Ci0r I2VuZGlmCi0rbWFpbiAoKQotK3sKLSsjaWYgZGVmaW5lZCAoc29ueSkKLSsjaWYgZGVmaW5lZCAo TUlQU0VCKQotKyAgLyogQkZEIHdhbnRzICJic2QiIGluc3RlYWQgb2YgIm5ld3NvcyIuICBQZXJo YXBzIEJGRCBzaG91bGQgYmUgY2hhbmdlZCwKLSsgICAgIEkgZG9uJ3Qga25vdy4uLi4gICovCi0r ICBwcmludGYgKCJtaXBzLXNvbnktYnNkXG4iKTsgZXhpdCAoMCk7Ci0rI2Vsc2UKLSsjaW5jbHVk ZSA8c3lzL3BhcmFtLmg+Ci0rICBwcmludGYgKCJtNjhrLXNvbnktbmV3c29zJXNcbiIsCi0rI2lm ZGVmIE5FV1NPUzQKLSsgICAgICAgICAgIjQiCi0rI2Vsc2UKLSsJICAiIgotKyNlbmRpZgotKyAg ICAgICAgICk7IGV4aXQgKDApOwotKyNlbmRpZgotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChf X2FybSkgJiYgZGVmaW5lZCAoX19hY29ybikgJiYgZGVmaW5lZCAoX191bml4KQotKyAgcHJpbnRm ICgiYXJtLWFjb3JuLXJpc2NpeFxuIik7IGV4aXQgKDApOwotKyNlbmRpZgotKwotKyNpZiBkZWZp bmVkIChocDMwMCkgJiYgIWRlZmluZWQgKGhwdXgpCi0rICBwcmludGYgKCJtNjhrLWhwLWJzZFxu Iik7IGV4aXQgKDApOwotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChOZVhUKQotKyNpZiAhZGVm aW5lZCAoX19BUkNISVRFQ1RVUkVfXykKLSsjZGVmaW5lIF9fQVJDSElURUNUVVJFX18gIm02OGsi Ci0rI2VuZGlmCi0rICBpbnQgdmVyc2lvbjsKLSsgIHZlcnNpb249YChob3N0aW5mbyB8IHNlZCAt biAncy8uKk5lWFQgTWFjaCBcKFswLTldKlwpLiovXDEvcCcpIDI+L2Rldi9udWxsYDsKLSsgIGlm ICh2ZXJzaW9uIDwgNCkKLSsgICAgcHJpbnRmICgiJXMtbmV4dC1uZXh0c3RlcCVkXG4iLCBfX0FS Q0hJVEVDVFVSRV9fLCB2ZXJzaW9uKTsKLSsgIGVsc2UKLSsgICAgcHJpbnRmICgiJXMtbmV4dC1v cGVuc3RlcCVkXG4iLCBfX0FSQ0hJVEVDVFVSRV9fLCB2ZXJzaW9uKTsKLSsgIGV4aXQgKDApOwot KyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChNVUxUSU1BWCkgfHwgZGVmaW5lZCAobjE2KQotKyNp ZiBkZWZpbmVkIChVTUFYVikKLSsgIHByaW50ZiAoIm5zMzJrLWVuY29yZS1zeXN2XG4iKTsgZXhp dCAoMCk7Ci0rI2Vsc2UKLSsjaWYgZGVmaW5lZCAoQ01VKQotKyAgcHJpbnRmICgibnMzMmstZW5j b3JlLW1hY2hcbiIpOyBleGl0ICgwKTsKLSsjZWxzZQotKyAgcHJpbnRmICgibnMzMmstZW5jb3Jl LWJzZFxuIik7IGV4aXQgKDApOwotKyNlbmRpZgotKyNlbmRpZgotKyNlbmRpZgotKwotKyNpZiBk ZWZpbmVkIChfXzM4NkJTRF9fKQotKyAgcHJpbnRmICgiaTM4Ni1wYy1ic2RcbiIpOyBleGl0ICgw KTsKLSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAoc2VxdWVudCkKLSsjaWYgZGVmaW5lZCAoaTM4 NikKLSsgIHByaW50ZiAoImkzODYtc2VxdWVudC1keW5peFxuIik7IGV4aXQgKDApOwotKyNlbmRp ZgotKyNpZiBkZWZpbmVkIChuczMyMDAwKQotKyAgcHJpbnRmICgibnMzMmstc2VxdWVudC1keW5p eFxuIik7IGV4aXQgKDApOwotKyNlbmRpZgotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChfU0VR VUVOVF8pCi0rICAgIHN0cnVjdCB1dHNuYW1lIHVuOwotKwotKyAgICB1bmFtZSgmdW4pOwotKwot KyAgICBpZiAoc3RybmNtcCh1bi52ZXJzaW9uLCAiVjIiLCAyKSA9PSAwKSB7Ci0rCXByaW50ZiAo ImkzODYtc2VxdWVudC1wdHgyXG4iKTsgZXhpdCAoMCk7Ci0rICAgIH0KLSsgICAgaWYgKHN0cm5j bXAodW4udmVyc2lvbiwgIlYxIiwgMikgPT0gMCkgeyAvKiBYWFggaXMgVjEgY29ycmVjdD8gKi8K LSsJcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0eDFcbiIpOyBleGl0ICgwKTsKLSsgICAgfQotKyAg ICBwcmludGYgKCJpMzg2LXNlcXVlbnQtcHR4XG4iKTsgZXhpdCAoMCk7Ci0rCi0rI2VuZGlmCi0r Ci0rI2lmIGRlZmluZWQgKHZheCkKLSsjIGlmICFkZWZpbmVkICh1bHRyaXgpCi0rIyAgaW5jbHVk ZSA8c3lzL3BhcmFtLmg+Ci0rIyAgaWYgZGVmaW5lZCAoQlNEKQotKyMgICBpZiBCU0QgPT0gNDMK LSsgICAgICBwcmludGYgKCJ2YXgtZGVjLWJzZDQuM1xuIik7IGV4aXQgKDApOwotKyMgICBlbHNl Ci0rIyAgICBpZiBCU0QgPT0gMTk5MDA2Ci0rICAgICAgcHJpbnRmICgidmF4LWRlYy1ic2Q0LjNy ZW5vXG4iKTsgZXhpdCAoMCk7Ci0rIyAgICBlbHNlCi0rICAgICAgcHJpbnRmICgidmF4LWRlYy1i c2RcbiIpOyBleGl0ICgwKTsKLSsjICAgIGVuZGlmCi0rIyAgIGVuZGlmCi0rIyAgZWxzZQotKyAg ICBwcmludGYgKCJ2YXgtZGVjLWJzZFxuIik7IGV4aXQgKDApOwotKyMgIGVuZGlmCi0rIyBlbHNl Ci0rICAgIHByaW50ZiAoInZheC1kZWMtdWx0cml4XG4iKTsgZXhpdCAoMCk7Ci0rIyBlbmRpZgot KyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChhbGxpYW50KSAmJiBkZWZpbmVkIChpODYwKQotKyAg cHJpbnRmICgiaTg2MC1hbGxpYW50LWJzZFxuIik7IGV4aXQgKDApOwotKyNlbmRpZgotKwotKyAg ZXhpdCAoMSk7Ci0rfQotK0VPRgotKwotKyRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5j IDI+L2Rldi9udWxsICYmIFNZU1RFTV9OQU1FPWAkZHVtbXlgICYmCi0rCXsgZWNobyAiJFNZU1RF TV9OQU1FIjsgZXhpdDsgfQotKwotKyMgQXBvbGxvcyBwdXQgdGhlIHN5c3RlbSB0eXBlIGluIHRo ZSBlbnZpcm9ubWVudC4KLSsKLSt0ZXN0IC1kIC91c3IvYXBvbGxvICYmIHsgZWNobyAke0lTUH0t YXBvbGxvLSR7U1lTVFlQRX07IGV4aXQ7IH0KLSsKLSsjIENvbnZleCB2ZXJzaW9ucyB0aGF0IHBy ZWRhdGUgdW5hbWUgY2FuIHVzZSBnZXRzeXNpbmZvKDEpCi0rCi0raWYgWyAteCAvdXNyL2NvbnZl eC9nZXRzeXNpbmZvIF0KLSt0aGVuCi0rICAgIGNhc2UgYGdldHN5c2luZm8gLWYgY3B1X3R5cGVg IGluCi0rICAgIGMxKikKLSsJZWNobyBjMS1jb252ZXgtYnNkCi0rCWV4aXQgOzsKLSsgICAgYzIq KQotKwlpZiBnZXRzeXNpbmZvIC1mIHNjYWxhcl9hY2MKLSsJdGhlbiBlY2hvIGMzMi1jb252ZXgt YnNkCi0rCWVsc2UgZWNobyBjMi1jb252ZXgtYnNkCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgYzM0 KikKLSsJZWNobyBjMzQtY29udmV4LWJzZAotKwlleGl0IDs7Ci0rICAgIGMzOCopCi0rCWVjaG8g YzM4LWNvbnZleC1ic2QKLSsJZXhpdCA7OwotKyAgICBjNCopCi0rCWVjaG8gYzQtY29udmV4LWJz ZAotKwlleGl0IDs7Ci0rICAgIGVzYWMKLStmaQotKwotK2NhdCA+JjIgPDxFT0YKLSskMDogdW5h YmxlIHRvIGd1ZXNzIHN5c3RlbSB0eXBlCi0rCi0rVGhpcyBzY3JpcHQsIGxhc3QgbW9kaWZpZWQg JHRpbWVzdGFtcCwgaGFzIGZhaWxlZCB0byByZWNvZ25pemUKLSt0aGUgb3BlcmF0aW5nIHN5c3Rl bSB5b3UgYXJlIHVzaW5nLiBJdCBpcyBhZHZpc2VkIHRoYXQgeW91Ci0rZG93bmxvYWQgdGhlIG1v c3QgdXAgdG8gZGF0ZSB2ZXJzaW9uIG9mIHRoZSBjb25maWcgc2NyaXB0cyBmcm9tCi0rCi0rICBo dHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5naXQ7YT1ibG9iX3Bs YWluO2Y9Y29uZmlnLmd1ZXNzO2hiPUhFQUQKLSthbmQKLSsgIGh0dHA6Ly9naXQuc2F2YW5uYWgu Z251Lm9yZy9naXR3ZWIvP3A9Y29uZmlnLmdpdDthPWJsb2JfcGxhaW47Zj1jb25maWcuc3ViO2hi PUhFQUQKLSsKLStJZiB0aGUgdmVyc2lvbiB5b3UgcnVuICgkMCkgaXMgYWxyZWFkeSB1cCB0byBk YXRlLCBwbGVhc2UKLStzZW5kIHRoZSBmb2xsb3dpbmcgZGF0YSBhbmQgYW55IGluZm9ybWF0aW9u IHlvdSB0aGluayBtaWdodCBiZQotK3BlcnRpbmVudCB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9y Zz4gaW4gb3JkZXIgdG8gcHJvdmlkZSB0aGUgbmVlZGVkCi0raW5mb3JtYXRpb24gdG8gaGFuZGxl IHlvdXIgc3lzdGVtLgotKwotK2NvbmZpZy5ndWVzcyB0aW1lc3RhbXAgPSAkdGltZXN0YW1wCi0r Ci0rdW5hbWUgLW0gPSBgKHVuYW1lIC1tKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0r dW5hbWUgLXIgPSBgKHVuYW1lIC1yKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0rdW5h bWUgLXMgPSBgKHVuYW1lIC1zKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0rdW5hbWUg LXYgPSBgKHVuYW1lIC12KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0rCi0rL3Vzci9i aW4vdW5hbWUgLXAgPSBgKC91c3IvYmluL3VuYW1lIC1wKSAyPi9kZXYvbnVsbGAKLSsvYmluL3Vu YW1lIC1YICAgICA9IGAoL2Jpbi91bmFtZSAtWCkgMj4vZGV2L251bGxgCi0rCi0raG9zdGluZm8g ICAgICAgICAgICAgICA9IGAoaG9zdGluZm8pIDI+L2Rldi9udWxsYAotKy9iaW4vdW5pdmVyc2Ug ICAgICAgICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9udWxsYAotKy91c3IvYmluL2FyY2gg LWsgICAgICAgPSBgKC91c3IvYmluL2FyY2ggLWspIDI+L2Rldi9udWxsYAotKy9iaW4vYXJjaCAg ICAgICAgICAgICAgPSBgKC9iaW4vYXJjaCkgMj4vZGV2L251bGxgCi0rL3Vzci9iaW4vb3NsZXZl bCAgICAgICA9IGAoL3Vzci9iaW4vb3NsZXZlbCkgMj4vZGV2L251bGxgCi0rL3Vzci9jb252ZXgv Z2V0c3lzaW5mbyA9IGAoL3Vzci9jb252ZXgvZ2V0c3lzaW5mbykgMj4vZGV2L251bGxgCi0rCi0r VU5BTUVfTUFDSElORSA9ICR7VU5BTUVfTUFDSElORX0KLStVTkFNRV9SRUxFQVNFID0gJHtVTkFN RV9SRUxFQVNFfQotK1VOQU1FX1NZU1RFTSAgPSAke1VOQU1FX1NZU1RFTX0KLStVTkFNRV9WRVJT SU9OID0gJHtVTkFNRV9WRVJTSU9OfQotK0VPRgotKwotK2V4aXQgMQotKwotKyMgTG9jYWwgdmFy aWFibGVzOgotKyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1w KQotKyMgdGltZS1zdGFtcC1zdGFydDogInRpbWVzdGFtcD0nIgotKyMgdGltZS1zdGFtcC1mb3Jt YXQ6ICIlOnktJTAybS0lMDJkIgotKyMgdGltZS1zdGFtcC1lbmQ6ICInIgotKyMgRW5kOgotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9jb25maWcuc3ViIHNvY2ktMy4wLjBfdHJl cDMwMC9jb25maWcvY29uZmlnLnN1YgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9jb25m aWcuc3ViCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL2NvbmZpZy9jb25maWcuc3ViCTIwMTAtMDEtMjMgMTQ6NDQ6NTAuMDAwMDAwMDAw ICswMTAwCi1AQCAtMCwwICsxLDE3MDUgQEAKLSsjISAvYmluL3NoCi0rIyBDb25maWd1cmF0aW9u IHZhbGlkYXRpb24gc3Vicm91dGluZSBzY3JpcHQuCi0rIyAgIENvcHlyaWdodCAoQykgMTk5Miwg MTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKLSsjICAgMjAwMCwgMjAw MSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOQotKyMgICBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSt0aW1lc3RhbXA9JzIwMDktMTEtMjAn Ci0rCi0rIyBUaGlzIGZpbGUgaXMgKGluIHByaW5jaXBsZSkgY29tbW9uIHRvIEFMTCBHTlUgc29m dHdhcmUuCi0rIyBUaGUgcHJlc2VuY2Ugb2YgYSBtYWNoaW5lIGluIHRoaXMgZmlsZSBzdWdnZXN0 cyB0aGF0IFNPTUUgR05VIHNvZnR3YXJlCi0rIyBjYW4gaGFuZGxlIHRoYXQgbWFjaGluZS4gIEl0 IGRvZXMgbm90IGltcGx5IEFMTCBHTlUgc29mdHdhcmUgY2FuLgotKyMKLSsjIFRoaXMgZmlsZSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0r IyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh cmUKLSsjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCAtIEZpZnRoIEZsb29y LCBCb3N0b24sIE1BCi0rIyAwMjExMC0xMzAxLCBVU0EuCi0rIwotKyMgQXMgYSBzcGVjaWFsIGV4 Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGlmIHlvdQotKyMgZGlz dHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCi0r IyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5j bHVkZSBpdCB1bmRlcgotKyMgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVz ZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgotKwotKwotKyMgUGxlYXNlIHNlbmQgcGF0 Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4uICBTdWJtaXQgYSBjb250ZXh0Ci0rIyBk aWZmIGFuZCBhIHByb3Blcmx5IGZvcm1hdHRlZCBHTlUgQ2hhbmdlTG9nIGVudHJ5LgotKyMKLSsj IENvbmZpZ3VyYXRpb24gc3Vicm91dGluZSB0byB2YWxpZGF0ZSBhbmQgY2Fub25pY2FsaXplIGEg Y29uZmlndXJhdGlvbiB0eXBlLgotKyMgU3VwcGx5IHRoZSBzcGVjaWZpZWQgY29uZmlndXJhdGlv biB0eXBlIGFzIGFuIGFyZ3VtZW50LgotKyMgSWYgaXQgaXMgaW52YWxpZCwgd2UgcHJpbnQgYW4g ZXJyb3IgbWVzc2FnZSBvbiBzdGRlcnIgYW5kIGV4aXQgd2l0aCBjb2RlIDEuCi0rIyBPdGhlcndp c2UsIHdlIHByaW50IHRoZSBjYW5vbmljYWwgY29uZmlnIHR5cGUgb24gc3Rkb3V0IGFuZCBzdWNj ZWVkLgotKwotKyMgWW91IGNhbiBnZXQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgc2NyaXB0 IGZyb206Ci0rIyBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5n aXQ7YT1ibG9iX3BsYWluO2Y9Y29uZmlnLnN1YjtoYj1IRUFECi0rCi0rIyBUaGlzIGZpbGUgaXMg c3VwcG9zZWQgdG8gYmUgdGhlIHNhbWUgZm9yIGFsbCBHTlUgcGFja2FnZXMKLSsjIGFuZCByZWNv Z25pemUgYWxsIHRoZSBDUFUgdHlwZXMsIHN5c3RlbSB0eXBlcyBhbmQgYWxpYXNlcwotKyMgdGhh dCBhcmUgbWVhbmluZ2Z1bCB3aXRoICphbnkqIEdOVSBzb2Z0d2FyZS4KLSsjIEVhY2ggcGFja2Fn ZSBpcyByZXNwb25zaWJsZSBmb3IgcmVwb3J0aW5nIHdoaWNoIHZhbGlkIGNvbmZpZ3VyYXRpb25z Ci0rIyBpdCBkb2VzIG5vdCBzdXBwb3J0LiAgVGhlIHVzZXIgc2hvdWxkIGJlIGFibGUgdG8gZGlz dGluZ3Vpc2gKLSsjIGEgZmFpbHVyZSB0byBzdXBwb3J0IGEgdmFsaWQgY29uZmlndXJhdGlvbiBm cm9tIGEgbWVhbmluZ2xlc3MKLSsjIGNvbmZpZ3VyYXRpb24uCi0rCi0rIyBUaGUgZ29hbCBvZiB0 aGlzIGZpbGUgaXMgdG8gbWFwIGFsbCB0aGUgdmFyaW91cyB2YXJpYXRpb25zIG9mIGEgZ2l2ZW4K LSsjIG1hY2hpbmUgc3BlY2lmaWNhdGlvbiBpbnRvIGEgc2luZ2xlIHNwZWNpZmljYXRpb24gaW4g dGhlIGZvcm06Ci0rIwlDUFVfVFlQRS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTQotKyMg b3IgaW4gc29tZSBjYXNlcywgdGhlIG5ld2VyIGZvdXItcGFydCBmb3JtOgotKyMJQ1BVX1RZUEUt TUFOVUZBQ1RVUkVSLUtFUk5FTC1PUEVSQVRJTkdfU1lTVEVNCi0rIyBJdCBpcyB3cm9uZyB0byBl Y2hvIGFueSBvdGhlciB0eXBlIG9mIHNwZWNpZmljYXRpb24uCi0rCi0rbWU9YGVjaG8gIiQwIiB8 IHNlZCAtZSAncywuKi8sLCdgCi0rCi0rdXNhZ2U9IlwKLStVc2FnZTogJDAgW09QVElPTl0gQ1BV LU1GUi1PUFNZUwotKyAgICAgICAkMCBbT1BUSU9OXSBBTElBUwotKwotK0Nhbm9uaWNhbGl6ZSBh IGNvbmZpZ3VyYXRpb24gbmFtZS4KLSsKLStPcGVyYXRpb24gbW9kZXM6Ci0rICAtaCwgLS1oZWxw ICAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKLSsgIC10LCAtLXRpbWUtc3RhbXAg ICBwcmludCBkYXRlIG9mIGxhc3QgbW9kaWZpY2F0aW9uLCB0aGVuIGV4aXQKLSsgIC12LCAtLXZl cnNpb24gICAgICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0Ci0rCi0rUmVwb3J0IGJ1 Z3MgYW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiIKLSsKLSt2ZXJzaW9u PSJcCi0rR05VIGNvbmZpZy5zdWIgKCR0aW1lc3RhbXApCi0rCi0rQ29weXJpZ2h0IChDKSAxOTky LCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAot KzIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCi0rCi0rVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJj ZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KLSt3YXJyYW50eTsgbm90IGV2 ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4iCi0rCi0raGVscD0iCi0rVHJ5IFxgJG1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24u IgotKwotKyMgUGFyc2UgY29tbWFuZCBsaW5lCi0rd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCi0r ICBjYXNlICQxIGluCi0rICAgIC0tdGltZS1zdGFtcCB8IC0tdGltZSogfCAtdCApCi0rICAgICAg IGVjaG8gIiR0aW1lc3RhbXAiIDsgZXhpdCA7OwotKyAgICAtLXZlcnNpb24gfCAtdiApCi0rICAg ICAgIGVjaG8gIiR2ZXJzaW9uIiA7IGV4aXQgOzsKLSsgICAgLS1oZWxwIHwgLS1oKiB8IC1oICkK LSsgICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCA7OwotKyAgICAtLSApICAgICAjIFN0b3Agb3B0 aW9uIHByb2Nlc3NpbmcKLSsgICAgICAgc2hpZnQ7IGJyZWFrIDs7Ci0rICAgIC0gKQkjIFVzZSBz dGRpbiBhcyBpbnB1dC4KLSsgICAgICAgYnJlYWsgOzsKLSsgICAgLSogKQotKyAgICAgICBlY2hv ICIkbWU6IGludmFsaWQgb3B0aW9uICQxJGhlbHAiCi0rICAgICAgIGV4aXQgMSA7OwotKwotKyAg ICAqbG9jYWwqKQotKyAgICAgICAjIEZpcnN0IHBhc3MgdGhyb3VnaCBhbnkgbG9jYWwgbWFjaGlu ZSB0eXBlcy4KLSsgICAgICAgZWNobyAkMQotKyAgICAgICBleGl0IDs7Ci0rCi0rICAgICogKQot KyAgICAgICBicmVhayA7OwotKyAgZXNhYwotK2RvbmUKLSsKLStjYXNlICQjIGluCi0rIDApIGVj aG8gIiRtZTogbWlzc2luZyBhcmd1bWVudCRoZWxwIiA+JjIKLSsgICAgZXhpdCAxOzsKLSsgMSkg OzsKLSsgKikgZWNobyAiJG1lOiB0b28gbWFueSBhcmd1bWVudHMkaGVscCIgPiYyCi0rICAgIGV4 aXQgMTs7Ci0rZXNhYwotKwotKyMgU2VwYXJhdGUgd2hhdCB0aGUgdXNlciBnYXZlIGludG8gQ1BV LUNPTVBBTlkgYW5kIE9TIG9yIEtFUk5FTC1PUyAoaWYgYW55KS4KLSsjIEhlcmUgd2UgbXVzdCBy ZWNvZ25pemUgYWxsIHRoZSB2YWxpZCBLRVJORUwtT1MgY29tYmluYXRpb25zLgotK21heWJlX29z PWBlY2hvICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMi8nYAotK2Nhc2Ug JG1heWJlX29zIGluCi0rICBudG8tcW54KiB8IGxpbnV4LWdudSogfCBsaW51eC1kaWV0bGliYyB8 IGxpbnV4LW5ld2xpYiogfCBsaW51eC11Y2xpYmMqIHwgXAotKyAgdWNsaW51eC11Y2xpYmMqIHwg dWNsaW51eC1nbnUqIHwga2ZyZWVic2QqLWdudSogfCBrbmV0YnNkKi1nbnUqIHwgbmV0YnNkKi1n bnUqIHwgXAotKyAga29wZW5zb2xhcmlzKi1nbnUqIHwgXAotKyAgc3Rvcm0tY2hhb3MqIHwgb3My LWVteCogfCBydG1rLW5vdmEqKQotKyAgICBvcz0tJG1heWJlX29zCi0rICAgIGJhc2ljX21hY2hp bmU9YGVjaG8gJDEgfCBzZWQgJ3MvXlwoLipcKS1cKFteLV0qLVteLV0qXCkkL1wxLydgCi0rICAg IDs7Ci0rICAqKQotKyAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzLy1bXi1dKiQv LydgCi0rICAgIGlmIFsgJGJhc2ljX21hY2hpbmUgIT0gJDEgXQotKyAgICB0aGVuIG9zPWBlY2hv ICQxIHwgc2VkICdzLy4qLS8tLydgCi0rICAgIGVsc2Ugb3M9OyBmaQotKyAgICA7OwotK2VzYWMK LSsKLSsjIyMgTGV0J3MgcmVjb2duaXplIGNvbW1vbiBtYWNoaW5lcyBhcyBub3QgYmVpbmcgb3Bl cmF0aW5nIHN5c3RlbXMgc28KLSsjIyMgdGhhdCB0aGluZ3MgbGlrZSBjb25maWcuc3ViIGRlY3N0 YXRpb24tMzEwMCB3b3JrLiAgV2UgYWxzbwotKyMjIyByZWNvZ25pemUgc29tZSBtYW51ZmFjdHVy ZXJzIGFzIG5vdCBiZWluZyBvcGVyYXRpbmcgc3lzdGVtcywgc28gd2UKLSsjIyMgY2FuIHByb3Zp ZGUgZGVmYXVsdCBvcGVyYXRpbmcgc3lzdGVtcyBiZWxvdy4KLStjYXNlICRvcyBpbgotKwktc3Vu Km9zKikKLSsJCSMgUHJldmVudCBmb2xsb3dpbmcgY2xhdXNlIGZyb20gaGFuZGxpbmcgdGhpcyBp bnZhbGlkIGlucHV0LgotKwkJOzsKLSsJLWRlYyogfCAtbWlwcyogfCAtc2VxdWVudCogfCAtZW5j b3JlKiB8IC1wYzUzMiogfCAtc2dpKiB8IC1zb255KiB8IFwKLSsJLWF0dCogfCAtNzMwMCogfCAt MzMwMCogfCAtZGVsdGEqIHwgLW1vdG9yb2xhKiB8IC1zdW5bMjM0XSogfCBcCi0rCS11bmljb20q IHwgLWlibSogfCAtbmV4dCB8IC1ocCB8IC1pc2kqIHwgLWFwb2xsbyB8IC1hbHRvcyogfCBcCi0r CS1jb252ZXJnZW50KiB8IC1uY3IqIHwgLW5ld3MgfCAtMzIqIHwgLTM2MDAqIHwgLTMxMDAqIHwg LWhpdGFjaGkqIHxcCi0rCS1jWzEyM10qIHwgLWNvbnZleCogfCAtc3VuIHwgLWNyZHMgfCAtb21y b24qIHwgLWRnIHwgLXVsdHJhIHwgLXR0aSogfCBcCi0rCS1oYXJyaXMgfCAtZG9scGhpbiB8IC1o aWdobGV2ZWwgfCAtZ291bGQgfCAtY2JtIHwgLW5zIHwgLW1hc3Njb21wIHwgXAotKwktYXBwbGUg fCAtYXhpcyB8IC1rbnV0aCB8IC1jcmF5IHwgLW1pY3JvYmxhemUpCi0rCQlvcz0KLSsJCWJhc2lj X21hY2hpbmU9JDEKLSsJCTs7Ci0rICAgICAgICAtYmx1ZWdlbmUqKQotKwkgICAgICAgIG9zPS1j bmsKLSsJCTs7Ci0rCS1zaW0gfCAtY2lzY28gfCAtb2tpIHwgLXdlYyB8IC13aW5ib25kKQotKwkJ b3M9Ci0rCQliYXNpY19tYWNoaW5lPSQxCi0rCQk7OwotKwktc2NvdXQpCi0rCQk7OwotKwktd3Jz KQotKwkJb3M9LXZ4d29ya3MKLSsJCWJhc2ljX21hY2hpbmU9JDEKLSsJCTs7Ci0rCS1jaG9ydXNv cyopCi0rCQlvcz0tY2hvcnVzb3MKLSsJCWJhc2ljX21hY2hpbmU9JDEKLSsJCTs7Ci0rIAktY2hv cnVzcmRiKQotKyAJCW9zPS1jaG9ydXNyZGIKLSsJCWJhc2ljX21hY2hpbmU9JDEKLSsgCQk7Owot KwktaGl1eCopCi0rCQlvcz0taGl1eHdlMgotKwkJOzsKLSsJLXNjbzYpCi0rCQlvcz0tc2NvNXY2 Ci0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0r CQk7OwotKwktc2NvNSkKLSsJCW9zPS1zY28zLjJ2NQotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAk MSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotKwkJOzsKLSsJLXNjbzQpCi0rCQlvcz0tc2Nv My4ydjQKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMv J2AKLSsJCTs7Ci0rCS1zY28zLjIuWzQtOV0qKQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdz L3NjbzMuMi4vc2NvMy4ydi8nYAotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAn cy84Ni0uKi84Ni1wYy8nYAotKwkJOzsKLSsJLXNjbzMuMnZbNC05XSopCi0rCQkjIERvbid0IGZv cmdldCB2ZXJzaW9uIGlmIGl0IGlzIDMuMnY0IG9yIG5ld2VyLgotKwkJYmFzaWNfbWFjaGluZT1g ZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotKwkJOzsKLSsJLXNjbzV2NiopCi0r CQkjIERvbid0IGZvcmdldCB2ZXJzaW9uIGlmIGl0IGlzIDMuMnY0IG9yIG5ld2VyLgotKwkJYmFz aWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotKwkJOzsKLSsJ LXNjbyopCi0rCQlvcz0tc2NvMy4ydjIKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQg LWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS11ZGsqKQotKwkJYmFzaWNfbWFjaGluZT1g ZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotKwkJOzsKLSsJLWlzYykKLSsJCW9z PS1pc2MyLjIKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYt cGMvJ2AKLSsJCTs7Ci0rCS1jbGl4KikKLSsJCWJhc2ljX21hY2hpbmU9Y2xpcHBlci1pbnRlcmdy YXBoCi0rCQk7OwotKwktaXNjKikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUg J3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1seW54KikKLSsJCW9zPS1seW54b3MKLSsJCTs7 Ci0rCS1wdHgqKQotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84 Ni1zZXF1ZW50LydgCi0rCQk7OwotKwktd2luZG93c250KikKLSsJCW9zPWBlY2hvICRvcyB8IHNl ZCAtZSAncy93aW5kb3dzbnQvd2lubnQvJ2AKLSsJCTs7Ci0rCS1wc29zKikKLSsJCW9zPS1wc29z Ci0rCQk7OwotKwktbWludCB8IC1taW50WzAtOV0qKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWF0 YXJpCi0rCQlvcz0tbWludAotKwkJOzsKLStlc2FjCi0rCi0rIyBEZWNvZGUgYWxpYXNlcyBmb3Ig Y2VydGFpbiBDUFUtQ09NUEFOWSBjb21iaW5hdGlvbnMuCi0rY2FzZSAkYmFzaWNfbWFjaGluZSBp bgotKwkjIFJlY29nbml6ZSB0aGUgYmFzaWMgQ1BVIHR5cGVzIHdpdGhvdXQgY29tcGFueSBuYW1l LgotKwkjIFNvbWUgYXJlIG9taXR0ZWQgaGVyZSBiZWNhdXNlIHRoZXkgaGF2ZSBzcGVjaWFsIG1l YW5pbmdzIGJlbG93LgotKwkxNzUwYSB8IDU4MCBcCi0rCXwgYTI5ayBcCi0rCXwgYWxwaGEgfCBh bHBoYWV2WzQtOF0gfCBhbHBoYWV2NTYgfCBhbHBoYWV2Nls3OF0gfCBhbHBoYXBjYTVbNjddIFwK LSsJfCBhbHBoYTY0IHwgYWxwaGE2NGV2WzQtOF0gfCBhbHBoYTY0ZXY1NiB8IGFscGhhNjRldjZb NzhdIHwgYWxwaGE2NHBjYTVbNjddIFwKLSsJfCBhbTMzXzIuMCBcCi0rCXwgYXJjIHwgYXJtIHwg YXJtW2JsXWUgfCBhcm1lW2xiXSB8IGFybXZbMjM0NV0gfCBhcm12WzM0NV1bbGJdIHwgYXZyIHwg YXZyMzIgXAotKwl8IGJmaW4gXAotKwl8IGM0eCB8IGNsaXBwZXIgXAotKwl8IGQxMHYgfCBkMzB2 IHwgZGx4IHwgZHNwMTZ4eCBcCi0rCXwgZmlkbyB8IGZyMzAgfCBmcnYgXAotKwl8IGg4MzAwIHwg aDg1MDAgfCBocHBhIHwgaHBwYTEuWzAxXSB8IGhwcGEyLjAgfCBocHBhMi4wW253XSB8IGhwcGE2 NCBcCi0rCXwgaTM3MCB8IGk4NjAgfCBpOTYwIHwgaWE2NCBcCi0rCXwgaXAyayB8IGlxMjAwMCBc Ci0rCXwgbG0zMiBcCi0rCXwgbTMyYyB8IG0zMnIgfCBtMzJybGUgfCBtNjgwMDAgfCBtNjhrIHwg bTg4ayBcCi0rCXwgbWF4cSB8IG1iIHwgbWljcm9ibGF6ZSB8IG1jb3JlIHwgbWVwIHwgbWV0YWcg XAotKwl8IG1pcHMgfCBtaXBzYmUgfCBtaXBzZWIgfCBtaXBzZWwgfCBtaXBzbGUgXAotKwl8IG1p cHMxNiBcCi0rCXwgbWlwczY0IHwgbWlwczY0ZWwgXAotKwl8IG1pcHM2NG9jdGVvbiB8IG1pcHM2 NG9jdGVvbmVsIFwKLSsJfCBtaXBzNjRvcmlvbiB8IG1pcHM2NG9yaW9uZWwgXAotKwl8IG1pcHM2 NHI1OTAwIHwgbWlwczY0cjU5MDBlbCBcCi0rCXwgbWlwczY0dnIgfCBtaXBzNjR2cmVsIFwKLSsJ fCBtaXBzNjR2cjQxMDAgfCBtaXBzNjR2cjQxMDBlbCBcCi0rCXwgbWlwczY0dnI0MzAwIHwgbWlw czY0dnI0MzAwZWwgXAotKwl8IG1pcHM2NHZyNTAwMCB8IG1pcHM2NHZyNTAwMGVsIFwKLSsJfCBt aXBzNjR2cjU5MDAgfCBtaXBzNjR2cjU5MDBlbCBcCi0rCXwgbWlwc2lzYTMyIHwgbWlwc2lzYTMy ZWwgXAotKwl8IG1pcHNpc2EzMnIyIHwgbWlwc2lzYTMycjJlbCBcCi0rCXwgbWlwc2lzYTY0IHwg bWlwc2lzYTY0ZWwgXAotKwl8IG1pcHNpc2E2NHIyIHwgbWlwc2lzYTY0cjJlbCBcCi0rCXwgbWlw c2lzYTY0c2IxIHwgbWlwc2lzYTY0c2IxZWwgXAotKwl8IG1pcHNpc2E2NHNyNzFrIHwgbWlwc2lz YTY0c3I3MWtlbCBcCi0rCXwgbWlwc3R4MzkgfCBtaXBzdHgzOWVsIFwKLSsJfCBtbjEwMjAwIHwg bW4xMDMwMCBcCi0rCXwgbW94aWUgXAotKwl8IG10IFwKLSsJfCBtc3A0MzAgXAotKwl8IG5pb3Mg fCBuaW9zMiBcCi0rCXwgbnMxNmsgfCBuczMyayBcCi0rCXwgb3IzMiBcCi0rCXwgcGRwMTAgfCBw ZHAxMSB8IHBqIHwgcGpsIFwKLSsJfCBwb3dlcnBjIHwgcG93ZXJwYzY0IHwgcG93ZXJwYzY0bGUg fCBwb3dlcnBjbGUgfCBwcGNiZSBcCi0rCXwgcHlyYW1pZCBcCi0rCXwgcnggXAotKwl8IHNjb3Jl IFwKLSsJfCBzaCB8IHNoWzEyMzRdIHwgc2hbMjRdYSB8IHNoWzI0XWFlYiB8IHNoWzIzXWUgfCBz aFszNF1lYiB8IHNoZWIgfCBzaGJlIHwgc2hsZSB8IHNoWzEyMzRdbGUgfCBzaDNlbGUgXAotKwl8 IHNoNjQgfCBzaDY0bGUgXAotKwl8IHNwYXJjIHwgc3BhcmM2NCB8IHNwYXJjNjRiIHwgc3BhcmM2 NHYgfCBzcGFyYzg2eCB8IHNwYXJjbGV0IHwgc3BhcmNsaXRlIFwKLSsJfCBzcGFyY3Y4IHwgc3Bh cmN2OSB8IHNwYXJjdjliIHwgc3BhcmN2OXYgXAotKwl8IHNwdSB8IHN0cm9uZ2FybSBcCi0rCXwg dGFob2UgfCB0aHVtYiB8IHRpYzR4IHwgdGljODAgfCB0cm9uIFwKLSsJfCB1Ymljb20zMiBcCi0r CXwgdjg1MCB8IHY4NTBlIFwKLSsJfCB3ZTMyayBcCi0rCXwgeDg2IHwgeGMxNnggfCB4c2NhbGUg fCB4c2NhbGVlW2JsXSB8IHhzdG9ybXkxNiB8IHh0ZW5zYSBcCi0rCXwgejhrIHwgejgwKQotKwkJ YmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCi0rCQk7OwotKwltNjgxMSB8IG02 OGhjMTEgfCBtNjgxMiB8IG02OGhjMTIgfCBwaWNvY2hpcCkKLSsJCSMgTW90b3JvbGEgNjhIQzEx LzEyLgotKwkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCi0rCQlvcz0tbm9u ZQotKwkJOzsKLSsJbTg4MTEwIHwgbTY4MFsxMjM0Nl0wIHwgbTY4Mz8yIHwgbTY4MzYwIHwgbTUy MDAgfCB2NzAgfCB3NjUgfCB6OGspCi0rCQk7OwotKwltczEpCi0rCQliYXNpY19tYWNoaW5lPW10 LXVua25vd24KLSsJCTs7Ci0rCi0rCSMgV2UgdXNlIGBwYycgcmF0aGVyIHRoYW4gYHVua25vd24n Ci0rCSMgYmVjYXVzZSAoMSkgdGhhdCdzIHdoYXQgdGhleSBub3JtYWxseSBhcmUsIGFuZAotKwkj ICgyKSB0aGUgd29yZCAidW5rbm93biIgdGVuZHMgdG8gY29uZnVzZSBiZWdpbm5pbmcgdXNlcnMu Ci0rCWkqODYgfCB4ODZfNjQpCi0rCSAgYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS1wYwot KwkgIDs7Ci0rCSMgT2JqZWN0IGlmIG1vcmUgdGhhbiBvbmUgY29tcGFueSBuYW1lIHdvcmQuCi0r CSotKi0qKQotKwkJZWNobyBJbnZhbGlkIGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBtYWNoaW5lIFxg JGJhc2ljX21hY2hpbmVcJyBub3QgcmVjb2duaXplZCAxPiYyCi0rCQlleGl0IDEKLSsJCTs7Ci0r CSMgUmVjb2duaXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0aCBjb21wYW55IG5hbWUuCi0rCTU4 MC0qIFwKLSsJfCBhMjlrLSogXAotKwl8IGFscGhhLSogfCBhbHBoYWV2WzQtOF0tKiB8IGFscGhh ZXY1Ni0qIHwgYWxwaGFldjZbNzhdLSogXAotKwl8IGFscGhhNjQtKiB8IGFscGhhNjRldls0LThd LSogfCBhbHBoYTY0ZXY1Ni0qIHwgYWxwaGE2NGV2Nls3OF0tKiBcCi0rCXwgYWxwaGFwY2E1WzY3 XS0qIHwgYWxwaGE2NHBjYTVbNjddLSogfCBhcmMtKiBcCi0rCXwgYXJtLSogIHwgYXJtYmUtKiB8 IGFybWxlLSogfCBhcm1lYi0qIHwgYXJtdiotKiBcCi0rCXwgYXZyLSogfCBhdnIzMi0qIFwKLSsJ fCBiZmluLSogfCBiczIwMDAtKiBcCi0rCXwgY1sxMjNdKiB8IGMzMC0qIHwgW2NqdF05MC0qIHwg YzR4LSogfCBjNTR4LSogfCBjNTV4LSogfCBjNngtKiBcCi0rCXwgY2xpcHBlci0qIHwgY3JheW52 LSogfCBjeWRyYS0qIFwKLSsJfCBkMTB2LSogfCBkMzB2LSogfCBkbHgtKiBcCi0rCXwgZWx4c2kt KiBcCi0rCXwgZjMwWzAxXS0qIHwgZjcwMC0qIHwgZmlkby0qIHwgZnIzMC0qIHwgZnJ2LSogfCBm eDgwLSogXAotKwl8IGg4MzAwLSogfCBoODUwMC0qIFwKLSsJfCBocHBhLSogfCBocHBhMS5bMDFd LSogfCBocHBhMi4wLSogfCBocHBhMi4wW253XS0qIHwgaHBwYTY0LSogXAotKwl8IGkqODYtKiB8 IGk4NjAtKiB8IGk5NjAtKiB8IGlhNjQtKiBcCi0rCXwgaXAyay0qIHwgaXEyMDAwLSogXAotKwl8 IGxtMzItKiBcCi0rCXwgbTMyYy0qIHwgbTMyci0qIHwgbTMycmxlLSogXAotKwl8IG02ODAwMC0q IHwgbTY4MFswMTIzNDZdMC0qIHwgbTY4MzYwLSogfCBtNjgzPzItKiB8IG02OGstKiBcCi0rCXwg bTg4MTEwLSogfCBtODhrLSogfCBtYXhxLSogfCBtY29yZS0qIHwgbWV0YWctKiB8IG1pY3JvYmxh emUtKiBcCi0rCXwgbWlwcy0qIHwgbWlwc2JlLSogfCBtaXBzZWItKiB8IG1pcHNlbC0qIHwgbWlw c2xlLSogXAotKwl8IG1pcHMxNi0qIFwKLSsJfCBtaXBzNjQtKiB8IG1pcHM2NGVsLSogXAotKwl8 IG1pcHM2NG9jdGVvbi0qIHwgbWlwczY0b2N0ZW9uZWwtKiBcCi0rCXwgbWlwczY0b3Jpb24tKiB8 IG1pcHM2NG9yaW9uZWwtKiBcCi0rCXwgbWlwczY0cjU5MDAtKiB8IG1pcHM2NHI1OTAwZWwtKiBc Ci0rCXwgbWlwczY0dnItKiB8IG1pcHM2NHZyZWwtKiBcCi0rCXwgbWlwczY0dnI0MTAwLSogfCBt aXBzNjR2cjQxMDBlbC0qIFwKLSsJfCBtaXBzNjR2cjQzMDAtKiB8IG1pcHM2NHZyNDMwMGVsLSog XAotKwl8IG1pcHM2NHZyNTAwMC0qIHwgbWlwczY0dnI1MDAwZWwtKiBcCi0rCXwgbWlwczY0dnI1 OTAwLSogfCBtaXBzNjR2cjU5MDBlbC0qIFwKLSsJfCBtaXBzaXNhMzItKiB8IG1pcHNpc2EzMmVs LSogXAotKwl8IG1pcHNpc2EzMnIyLSogfCBtaXBzaXNhMzJyMmVsLSogXAotKwl8IG1pcHNpc2E2 NC0qIHwgbWlwc2lzYTY0ZWwtKiBcCi0rCXwgbWlwc2lzYTY0cjItKiB8IG1pcHNpc2E2NHIyZWwt KiBcCi0rCXwgbWlwc2lzYTY0c2IxLSogfCBtaXBzaXNhNjRzYjFlbC0qIFwKLSsJfCBtaXBzaXNh NjRzcjcxay0qIHwgbWlwc2lzYTY0c3I3MWtlbC0qIFwKLSsJfCBtaXBzdHgzOS0qIHwgbWlwc3R4 MzllbC0qIFwKLSsJfCBtbWl4LSogXAotKwl8IG10LSogXAotKwl8IG1zcDQzMC0qIFwKLSsJfCBu aW9zLSogfCBuaW9zMi0qIFwKLSsJfCBub25lLSogfCBucDEtKiB8IG5zMTZrLSogfCBuczMyay0q IFwKLSsJfCBvcmlvbi0qIFwKLSsJfCBwZHAxMC0qIHwgcGRwMTEtKiB8IHBqLSogfCBwamwtKiB8 IHBuLSogfCBwb3dlci0qIFwKLSsJfCBwb3dlcnBjLSogfCBwb3dlcnBjNjQtKiB8IHBvd2VycGM2 NGxlLSogfCBwb3dlcnBjbGUtKiB8IHBwY2JlLSogXAotKwl8IHB5cmFtaWQtKiBcCi0rCXwgcm9t cC0qIHwgcnM2MDAwLSogfCByeC0qIFwKLSsJfCBzaC0qIHwgc2hbMTIzNF0tKiB8IHNoWzI0XWEt KiB8IHNoWzI0XWFlYi0qIHwgc2hbMjNdZS0qIHwgc2hbMzRdZWItKiB8IHNoZWItKiB8IHNoYmUt KiBcCi0rCXwgc2hsZS0qIHwgc2hbMTIzNF1sZS0qIHwgc2gzZWxlLSogfCBzaDY0LSogfCBzaDY0 bGUtKiBcCi0rCXwgc3BhcmMtKiB8IHNwYXJjNjQtKiB8IHNwYXJjNjRiLSogfCBzcGFyYzY0di0q IHwgc3BhcmM4NngtKiB8IHNwYXJjbGV0LSogXAotKwl8IHNwYXJjbGl0ZS0qIFwKLSsJfCBzcGFy Y3Y4LSogfCBzcGFyY3Y5LSogfCBzcGFyY3Y5Yi0qIHwgc3BhcmN2OXYtKiB8IHN0cm9uZ2FybS0q IHwgc3YxLSogfCBzeD8tKiBcCi0rCXwgdGFob2UtKiB8IHRodW1iLSogXAotKwl8IHRpYzMwLSog fCB0aWM0eC0qIHwgdGljNTR4LSogfCB0aWM1NXgtKiB8IHRpYzZ4LSogfCB0aWM4MC0qIHwgdGls ZS0qIFwKLSsJfCB0cm9uLSogXAotKwl8IHViaWNvbTMyLSogXAotKwl8IHY4NTAtKiB8IHY4NTBl LSogfCB2YXgtKiBcCi0rCXwgd2UzMmstKiBcCi0rCXwgeDg2LSogfCB4ODZfNjQtKiB8IHhjMTZ4 LSogfCB4cHMxMDAtKiB8IHhzY2FsZS0qIHwgeHNjYWxlZVtibF0tKiBcCi0rCXwgeHN0b3JteTE2 LSogfCB4dGVuc2EqLSogXAotKwl8IHltcC0qIFwKLSsJfCB6OGstKiB8IHo4MC0qKQotKwkJOzsK LSsJIyBSZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRob3V0IGNvbXBhbnkgbmFtZSwg d2l0aCBnbG9iIG1hdGNoLgotKwl4dGVuc2EqKQotKwkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFj aGluZS11bmtub3duCi0rCQk7OwotKwkjIFJlY29nbml6ZSB0aGUgdmFyaW91cyBtYWNoaW5lIG5h bWVzIGFuZCBhbGlhc2VzIHdoaWNoIHN0YW5kCi0rCSMgZm9yIGEgQ1BVIHR5cGUgYW5kIGEgY29t cGFueSBhbmQgc29tZXRpbWVzIGV2ZW4gYW4gT1MuCi0rCTM4NmJzZCkKLSsJCWJhc2ljX21hY2hp bmU9aTM4Ni11bmtub3duCi0rCQlvcz0tYnNkCi0rCQk7OwotKwkzYjEgfCA3MzAwIHwgNzMwMC1h dHQgfCBhdHQtNzMwMCB8IHBjNzMwMCB8IHNhZmFyaSB8IHVuaXhwYykKLSsJCWJhc2ljX21hY2hp bmU9bTY4MDAwLWF0dAotKwkJOzsKLSsJM2IqKQotKwkJYmFzaWNfbWFjaGluZT13ZTMyay1hdHQK LSsJCTs7Ci0rCWEyOWtoaWYpCi0rCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCi0rCQlvcz0tdWRp Ci0rCQk7OwotKyAgICAJYWJhY3VzKQotKwkJYmFzaWNfbWFjaGluZT1hYmFjdXMtdW5rbm93bgot KwkJOzsKLSsJYWRvYmU2OGspCi0rCQliYXNpY19tYWNoaW5lPW02ODAxMC1hZG9iZQotKwkJb3M9 LXNjb3V0Ci0rCQk7OwotKwlhbGxpYW50IHwgZng4MCkKLSsJCWJhc2ljX21hY2hpbmU9Zng4MC1h bGxpYW50Ci0rCQk7OwotKwlhbHRvcyB8IGFsdG9zMzA2OCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4 ay1hbHRvcwotKwkJOzsKLSsJYW0yOWspCi0rCQliYXNpY19tYWNoaW5lPWEyOWstbm9uZQotKwkJ b3M9LWJzZAotKwkJOzsKLSsJYW1kNjQpCi0rCQliYXNpY19tYWNoaW5lPXg4Nl82NC1wYwotKwkJ OzsKLSsJYW1kNjQtKikKLSsJCWJhc2ljX21hY2hpbmU9eDg2XzY0LWBlY2hvICRiYXNpY19tYWNo aW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQk7OwotKwlhbWRhaGwpCi0rCQliYXNpY19tYWNo aW5lPTU4MC1hbWRhaGwKLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwlhbWlnYSB8IGFtaWdhLSopCi0r CQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgotKwkJOzsKLSsJYW1pZ2FvcyB8IGFtaWdhZG9z KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24KLSsJCW9zPS1hbWlnYW9zCi0rCQk7Owot KwlhbWlnYXVuaXggfCBhbWl4KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24KLSsJCW9z PS1zeXN2NAotKwkJOzsKLSsJYXBvbGxvNjgpCi0rCQliYXNpY19tYWNoaW5lPW02OGstYXBvbGxv Ci0rCQlvcz0tc3lzdgotKwkJOzsKLSsJYXBvbGxvNjhic2QpCi0rCQliYXNpY19tYWNoaW5lPW02 OGstYXBvbGxvCi0rCQlvcz0tYnNkCi0rCQk7OwotKwlhcm9zKQotKwkJYmFzaWNfbWFjaGluZT1p Mzg2LXBjCi0rCQlvcz0tYXJvcwotKwkJOzsKLSsJYXV4KQotKwkJYmFzaWNfbWFjaGluZT1tNjhr LWFwcGxlCi0rCQlvcz0tYXV4Ci0rCQk7OwotKwliYWxhbmNlKQotKwkJYmFzaWNfbWFjaGluZT1u czMyay1zZXF1ZW50Ci0rCQlvcz0tZHluaXgKLSsJCTs7Ci0rCWJsYWNrZmluKQotKwkJYmFzaWNf bWFjaGluZT1iZmluLXVua25vd24KLSsJCW9zPS1saW51eAotKwkJOzsKLSsJYmxhY2tmaW4tKikK LSsJCWJhc2ljX21hY2hpbmU9YmZpbi1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14t XSotLy8nYAotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwlibHVlZ2VuZSopCi0rCQliYXNpY19tYWNo aW5lPXBvd2VycGMtaWJtCi0rCQlvcz0tY25rCi0rCQk7OwotKwljOTApCi0rCQliYXNpY19tYWNo aW5lPWM5MC1jcmF5Ci0rCQlvcz0tdW5pY29zCi0rCQk7OwotKyAgICAgICAgY2VnY2MpCi0rCQli YXNpY19tYWNoaW5lPWFybS11bmtub3duCi0rCQlvcz0tY2VnY2MKLSsJCTs7Ci0rCWNvbnZleC1j MSkKLSsJCWJhc2ljX21hY2hpbmU9YzEtY29udmV4Ci0rCQlvcz0tYnNkCi0rCQk7OwotKwljb252 ZXgtYzIpCi0rCQliYXNpY19tYWNoaW5lPWMyLWNvbnZleAotKwkJb3M9LWJzZAotKwkJOzsKLSsJ Y29udmV4LWMzMikKLSsJCWJhc2ljX21hY2hpbmU9YzMyLWNvbnZleAotKwkJb3M9LWJzZAotKwkJ OzsKLSsJY29udmV4LWMzNCkKLSsJCWJhc2ljX21hY2hpbmU9YzM0LWNvbnZleAotKwkJb3M9LWJz ZAotKwkJOzsKLSsJY29udmV4LWMzOCkKLSsJCWJhc2ljX21hY2hpbmU9YzM4LWNvbnZleAotKwkJ b3M9LWJzZAotKwkJOzsKLSsJY3JheSB8IGo5MCkKLSsJCWJhc2ljX21hY2hpbmU9ajkwLWNyYXkK LSsJCW9zPS11bmljb3MKLSsJCTs7Ci0rCWNyYXludikKLSsJCWJhc2ljX21hY2hpbmU9Y3JheW52 LWNyYXkKLSsJCW9zPS11bmljb3NtcAotKwkJOzsKLSsJY3IxNikKLSsJCWJhc2ljX21hY2hpbmU9 Y3IxNi11bmtub3duCi0rCQlvcz0tZWxmCi0rCQk7OwotKwljcmRzIHwgdW5vcykKLSsJCWJhc2lj X21hY2hpbmU9bTY4ay1jcmRzCi0rCQk7OwotKwljcmlzdjMyIHwgY3Jpc3YzMi0qIHwgZXRyYXhm cyopCi0rCQliYXNpY19tYWNoaW5lPWNyaXN2MzItYXhpcwotKwkJOzsKLSsJY3JpcyB8IGNyaXMt KiB8IGV0cmF4KikKLSsJCWJhc2ljX21hY2hpbmU9Y3Jpcy1heGlzCi0rCQk7OwotKwljcngpCi0r CQliYXNpY19tYWNoaW5lPWNyeC11bmtub3duCi0rCQlvcz0tZWxmCi0rCQk7OwotKwlkYTMwIHwg ZGEzMC0qKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWRhMzAKLSsJCTs7Ci0rCWRlY3N0YXRpb24g fCBkZWNzdGF0aW9uLTMxMDAgfCBwbWF4IHwgcG1heC0qIHwgcG1pbiB8IGRlYzMxMDAgfCBkZWNz dGF0bikKLSsJCWJhc2ljX21hY2hpbmU9bWlwcy1kZWMKLSsJCTs7Ci0rCWRlY3N5c3RlbTEwKiB8 IGRlYzEwKikKLSsJCWJhc2ljX21hY2hpbmU9cGRwMTAtZGVjCi0rCQlvcz0tdG9wczEwCi0rCQk7 OwotKwlkZWNzeXN0ZW0yMCogfCBkZWMyMCopCi0rCQliYXNpY19tYWNoaW5lPXBkcDEwLWRlYwot KwkJb3M9LXRvcHMyMAotKwkJOzsKLSsJZGVsdGEgfCAzMzAwIHwgbW90b3JvbGEtMzMwMCB8IG1v dG9yb2xhLWRlbHRhIFwKLSsJICAgICAgfCAzMzAwLW1vdG9yb2xhIHwgZGVsdGEtbW90b3JvbGEp Ci0rCQliYXNpY19tYWNoaW5lPW02OGstbW90b3JvbGEKLSsJCTs7Ci0rCWRlbHRhODgpCi0rCQli YXNpY19tYWNoaW5lPW04OGstbW90b3JvbGEKLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJZGljb3Mp Ci0rCQliYXNpY19tYWNoaW5lPWk2ODYtcGMKLSsJCW9zPS1kaWNvcwotKwkJOzsKLSsJZGpncHAp Ci0rCQliYXNpY19tYWNoaW5lPWk1ODYtcGMKLSsJCW9zPS1tc2Rvc2RqZ3BwCi0rCQk7OwotKwlk cHgyMCB8IGRweDIwLSopCi0rCQliYXNpY19tYWNoaW5lPXJzNjAwMC1idWxsCi0rCQlvcz0tYm9z eAotKwkJOzsKLSsJZHB4MiogfCBkcHgyKi1idWxsKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWJ1 bGwKLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJZWJtb24yOWspCi0rCQliYXNpY19tYWNoaW5lPWEy OWstYW1kCi0rCQlvcz0tZWJtb24KLSsJCTs7Ci0rCWVseHNpKQotKwkJYmFzaWNfbWFjaGluZT1l bHhzaS1lbHhzaQotKwkJb3M9LWJzZAotKwkJOzsKLSsJZW5jb3JlIHwgdW1heCB8IG1tYXgpCi0r CQliYXNpY19tYWNoaW5lPW5zMzJrLWVuY29yZQotKwkJOzsKLSsJZXMxODAwIHwgT1NFNjhrIHwg b3NlNjhrIHwgb3NlIHwgT1NFKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWVyaWNzc29uCi0rCQlv cz0tb3NlCi0rCQk7OwotKwlmeDI4MDApCi0rCQliYXNpY19tYWNoaW5lPWk4NjAtYWxsaWFudAot KwkJOzsKLSsJZ2VuaXgpCi0rCQliYXNpY19tYWNoaW5lPW5zMzJrLW5zCi0rCQk7OwotKwlnbWlj cm8pCi0rCQliYXNpY19tYWNoaW5lPXRyb24tZ21pY3JvCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJ Z28zMikKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwotKwkJb3M9LWdvMzIKLSsJCTs7Ci0rCWgz MDUwciogfCBoaXV4KikKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1oaXRhY2hpCi0rCQlvcz0t aGl1eHdlMgotKwkJOzsKLSsJaDgzMDBobXMpCi0rCQliYXNpY19tYWNoaW5lPWg4MzAwLWhpdGFj aGkKLSsJCW9zPS1obXMKLSsJCTs7Ci0rCWg4MzAweHJheSkKLSsJCWJhc2ljX21hY2hpbmU9aDgz MDAtaGl0YWNoaQotKwkJb3M9LXhyYXkKLSsJCTs7Ci0rCWg4NTAwaG1zKQotKwkJYmFzaWNfbWFj aGluZT1oODUwMC1oaXRhY2hpCi0rCQlvcz0taG1zCi0rCQk7OwotKwloYXJyaXMpCi0rCQliYXNp Y19tYWNoaW5lPW04OGstaGFycmlzCi0rCQlvcz0tc3lzdjMKLSsJCTs7Ci0rCWhwMzAwLSopCi0r CQliYXNpY19tYWNoaW5lPW02OGstaHAKLSsJCTs7Ci0rCWhwMzAwYnNkKQotKwkJYmFzaWNfbWFj aGluZT1tNjhrLWhwCi0rCQlvcz0tYnNkCi0rCQk7OwotKwlocDMwMGhwdXgpCi0rCQliYXNpY19t YWNoaW5lPW02OGstaHAKLSsJCW9zPS1ocHV4Ci0rCQk7OwotKwlocDNrOVswLTldWzAtOV0gfCBo cDlbMC05XVswLTldKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCi0rCQk7OwotKwlocDlr MlswLTldWzAtOV0gfCBocDlrMzFbMC05XSkKLSsJCWJhc2ljX21hY2hpbmU9bTY4MDAwLWhwCi0r CQk7OwotKwlocDlrM1syLTldWzAtOV0pCi0rCQliYXNpY19tYWNoaW5lPW02OGstaHAKLSsJCTs7 Ci0rCWhwOWs2WzAtOV1bMC05XSB8IGhwNlswLTldWzAtOV0pCi0rCQliYXNpY19tYWNoaW5lPWhw cGExLjAtaHAKLSsJCTs7Ci0rCWhwOWs3WzAtNzldWzAtOV0gfCBocDdbMC03OV1bMC05XSkKLSsJ CWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAotKwkJOzsKLSsJaHA5azc4WzAtOV0gfCBocDc4WzAt OV0pCi0rCQkjIEZJWE1FOiByZWFsbHkgaHBwYTIuMC1ocAotKwkJYmFzaWNfbWFjaGluZT1ocHBh MS4xLWhwCi0rCQk7OwotKwlocDlrOFs2N10xIHwgaHA4WzY3XTEgfCBocDlrODBbMjRdIHwgaHA4 MFsyNF0gfCBocDlrOFs3OF05IHwgaHA4Wzc4XTkgfCBocDlrODkzIHwgaHA4OTMpCi0rCQkjIEZJ WE1FOiByZWFsbHkgaHBwYTIuMC1ocAotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCi0rCQk7 OwotKwlocDlrOFswLTldWzEzNjc5XSB8IGhwOFswLTldWzEzNjc5XSkKLSsJCWJhc2ljX21hY2hp bmU9aHBwYTEuMS1ocAotKwkJOzsKLSsJaHA5azhbMC05XVswLTldIHwgaHA4WzAtOV1bMC05XSkK LSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMC1ocAotKwkJOzsKLSsJaHBwYS1uZXh0KQotKwkJb3M9 LW5leHRzdGVwMwotKwkJOzsKLSsJaHBwYW9zZikKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1o cAotKwkJb3M9LW9zZgotKwkJOzsKLSsJaHBwcm8pCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEt aHAKLSsJCW9zPS1wcm9lbGYKLSsJCTs7Ci0rCWkzNzAtaWJtKiB8IGlibSopCi0rCQliYXNpY19t YWNoaW5lPWkzNzAtaWJtCi0rCQk7OwotKyMgSSdtIG5vdCBzdXJlIHdoYXQgIlN5c3YzMiIgbWVh bnMuICBTaG91bGQgdGhpcyBiZSBzeXN2My4yPwotKwlpKjg2djMyKQotKwkJYmFzaWNfbWFjaGlu ZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCi0rCQlvcz0tc3lzdjMyCi0rCQk7 OwotKwlpKjg2djQqKQotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4q Lzg2LXBjLydgCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0rCWkqODZ2KQotKwkJYmFzaWNfbWFjaGlu ZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCi0rCQlvcz0tc3lzdgotKwkJOzsK LSsJaSo4NnNvbDIpCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2Liov ODYtcGMvJ2AKLSsJCW9zPS1zb2xhcmlzMgotKwkJOzsKLSsJaTM4Nm1hY2gpCi0rCQliYXNpY19t YWNoaW5lPWkzODYtbWFjaAotKwkJb3M9LW1hY2gKLSsJCTs7Ci0rCWkzODYtdnN0YSB8IHZzdGEp Ci0rCQliYXNpY19tYWNoaW5lPWkzODYtdW5rbm93bgotKwkJb3M9LXZzdGEKLSsJCTs7Ci0rCWly aXMgfCBpcmlzNGQpCi0rCQliYXNpY19tYWNoaW5lPW1pcHMtc2dpCi0rCQljYXNlICRvcyBpbgot KwkJICAgIC1pcml4KikKLSsJCQk7OwotKwkJICAgICopCi0rCQkJb3M9LWlyaXg0Ci0rCQkJOzsK LSsJCWVzYWMKLSsJCTs7Ci0rCWlzaTY4IHwgaXNpKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWlz aQotKwkJb3M9LXN5c3YKLSsJCTs7Ci0rCW02OGtub21tdSkKLSsJCWJhc2ljX21hY2hpbmU9bTY4 ay11bmtub3duCi0rCQlvcz0tbGludXgKLSsJCTs7Ci0rCW02OGtub21tdS0qKQotKwkJYmFzaWNf bWFjaGluZT1tNjhrLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0r CQlvcz0tbGludXgKLSsJCTs7Ci0rCW04OGstb21yb24qKQotKwkJYmFzaWNfbWFjaGluZT1tODhr LW9tcm9uCi0rCQk7OwotKwltYWdudW0gfCBtMzIzMCkKLSsJCWJhc2ljX21hY2hpbmU9bWlwcy1t aXBzCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJbWVybGluKQotKwkJYmFzaWNfbWFjaGluZT1uczMy ay11dGVrCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsgICAgICAgIG1pY3JvYmxhemUpCi0rCQliYXNp Y19tYWNoaW5lPW1pY3JvYmxhemUteGlsaW54Ci0rCQk7OwotKwltaW5ndzMyKQotKwkJYmFzaWNf bWFjaGluZT1pMzg2LXBjCi0rCQlvcz0tbWluZ3czMgotKwkJOzsKLSsJbWluZ3czMmNlKQotKwkJ YmFzaWNfbWFjaGluZT1hcm0tdW5rbm93bgotKwkJb3M9LW1pbmd3MzJjZQotKwkJOzsKLSsJbWlu aWZyYW1lKQotKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtY29udmVyZ2VudAotKwkJOzsKLSsJKm1p bnQgfCAtbWludFswLTldKiB8ICpNaU5UIHwgKk1pTlRbMC05XSopCi0rCQliYXNpY19tYWNoaW5l PW02OGstYXRhcmkKLSsJCW9zPS1taW50Ci0rCQk7OwotKwltaXBzMyotKikKLSsJCWJhc2ljX21h Y2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbWlwczMvbWlwczY0LydgCi0r CQk7OwotKwltaXBzMyopCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwg c2VkIC1lICdzL21pcHMzL21pcHM2NC8nYC11bmtub3duCi0rCQk7OwotKwltb25pdG9yKQotKwkJ YmFzaWNfbWFjaGluZT1tNjhrLXJvbTY4awotKwkJb3M9LWNvZmYKLSsJCTs7Ci0rCW1vcnBob3Mp Ci0rCQliYXNpY19tYWNoaW5lPXBvd2VycGMtdW5rbm93bgotKwkJb3M9LW1vcnBob3MKLSsJCTs7 Ci0rCW1zZG9zKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0rCQlvcz0tbXNkb3MKLSsJCTs7 Ci0rCW1zMS0qKQotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAt ZSAncy9tczEtL210LS8nYAotKwkJOzsKLSsJbXZzKQotKwkJYmFzaWNfbWFjaGluZT1pMzcwLWli bQotKwkJb3M9LW12cwotKwkJOzsKLSsJbmNyMzAwMCkKLSsJCWJhc2ljX21hY2hpbmU9aTQ4Ni1u Y3IKLSsJCW9zPS1zeXN2NAotKwkJOzsKLSsJbmV0YnNkMzg2KQotKwkJYmFzaWNfbWFjaGluZT1p Mzg2LXVua25vd24KLSsJCW9zPS1uZXRic2QKLSsJCTs7Ci0rCW5ldHdpbmRlcikKLSsJCWJhc2lj X21hY2hpbmU9YXJtdjRsLXJlYmVsCi0rCQlvcz0tbGludXgKLSsJCTs7Ci0rCW5ld3MgfCBuZXdz NzAwIHwgbmV3czgwMCB8IG5ld3M5MDApCi0rCQliYXNpY19tYWNoaW5lPW02OGstc29ueQotKwkJ b3M9LW5ld3NvcwotKwkJOzsKLSsJbmV3czEwMDApCi0rCQliYXNpY19tYWNoaW5lPW02ODAzMC1z b255Ci0rCQlvcz0tbmV3c29zCi0rCQk7OwotKwluZXdzLTM2MDAgfCByaXNjLW5ld3MpCi0rCQli YXNpY19tYWNoaW5lPW1pcHMtc29ueQotKwkJb3M9LW5ld3NvcwotKwkJOzsKLSsJbmVjdjcwKQot KwkJYmFzaWNfbWFjaGluZT12NzAtbmVjCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJbmV4dCB8IG0q LW5leHQgKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5leHQKLSsJCWNhc2UgJG9zIGluCi0rCQkg ICAgLW5leHRzdGVwKiApCi0rCQkJOzsKLSsJCSAgICAtbnMyKikKLSsJCSAgICAgIG9zPS1uZXh0 c3RlcDIKLSsJCQk7OwotKwkJICAgICopCi0rCQkgICAgICBvcz0tbmV4dHN0ZXAzCi0rCQkJOzsK LSsJCWVzYWMKLSsJCTs7Ci0rCW5oMzAwMCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1oYXJyaXMK LSsJCW9zPS1jeHV4Ci0rCQk7OwotKwluaFs0NV0wMDApCi0rCQliYXNpY19tYWNoaW5lPW04OGst aGFycmlzCi0rCQlvcz0tY3h1eAotKwkJOzsKLSsJbmluZHk5NjApCi0rCQliYXNpY19tYWNoaW5l PWk5NjAtaW50ZWwKLSsJCW9zPS1uaW5keQotKwkJOzsKLSsJbW9uOTYwKQotKwkJYmFzaWNfbWFj aGluZT1pOTYwLWludGVsCi0rCQlvcz0tbW9uOTYwCi0rCQk7OwotKwlub25zdG9wdXgpCi0rCQli YXNpY19tYWNoaW5lPW1pcHMtY29tcGFxCi0rCQlvcz0tbm9uc3RvcHV4Ci0rCQk7OwotKwlucDEp Ci0rCQliYXNpY19tYWNoaW5lPW5wMS1nb3VsZAotKwkJOzsKLSsJbnNyLXRhbmRlbSkKLSsJCWJh c2ljX21hY2hpbmU9bnNyLXRhbmRlbQotKwkJOzsKLSsJb3A1MG4tKiB8IG9wNjBjLSopCi0rCQli YXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCi0rCQlvcz0tcHJvZWxmCi0rCQk7OwotKwlvcGVucmlz YyB8IG9wZW5yaXNjLSopCi0rCQliYXNpY19tYWNoaW5lPW9yMzItdW5rbm93bgotKwkJOzsKLSsJ b3M0MDApCi0rCQliYXNpY19tYWNoaW5lPXBvd2VycGMtaWJtCi0rCQlvcz0tb3M0MDAKLSsJCTs7 Ci0rCU9TRTY4MDAwIHwgb3NlNjgwMDApCi0rCQliYXNpY19tYWNoaW5lPW02ODAwMC1lcmljc3Nv bgotKwkJb3M9LW9zZQotKwkJOzsKLSsJb3M2OGspCi0rCQliYXNpY19tYWNoaW5lPW02OGstbm9u ZQotKwkJb3M9LW9zNjhrCi0rCQk7OwotKwlwYS1oaXRhY2hpKQotKwkJYmFzaWNfbWFjaGluZT1o cHBhMS4xLWhpdGFjaGkKLSsJCW9zPS1oaXV4d2UyCi0rCQk7OwotKwlwYXJhZ29uKQotKwkJYmFz aWNfbWFjaGluZT1pODYwLWludGVsCi0rCQlvcz0tb3NmCi0rCQk7OwotKwlwYXJpc2MpCi0rCQli YXNpY19tYWNoaW5lPWhwcGEtdW5rbm93bgotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwlwYXJpc2Mt KikKLSsJCWJhc2ljX21hY2hpbmU9aHBwYS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9e W14tXSotLy8nYAotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwlwYmQpCi0rCQliYXNpY19tYWNoaW5l PXNwYXJjLXR0aQotKwkJOzsKLSsJcGJiKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXR0aQotKwkJ OzsKLSsJcGM1MzIgfCBwYzUzMi0qKQotKwkJYmFzaWNfbWFjaGluZT1uczMyay1wYzUzMgotKwkJ OzsKLSsJcGM5OCkKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwotKwkJOzsKLSsJcGM5OC0qKQot KwkJYmFzaWNfbWFjaGluZT1pMzg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1d Ki0vLydgCi0rCQk7OwotKwlwZW50aXVtIHwgcDUgfCBrNSB8IGs2IHwgbmV4Z2VuIHwgdmlhYzMp Ci0rCQliYXNpY19tYWNoaW5lPWk1ODYtcGMKLSsJCTs7Ci0rCXBlbnRpdW1wcm8gfCBwNiB8IDZ4 ODYgfCBhdGhsb24gfCBhdGhsb25fKikKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYwotKwkJOzsK LSsJcGVudGl1bWlpIHwgcGVudGl1bTIgfCBwZW50aXVtaWlpIHwgcGVudGl1bTMpCi0rCQliYXNp Y19tYWNoaW5lPWk2ODYtcGMKLSsJCTs7Ci0rCXBlbnRpdW00KQotKwkJYmFzaWNfbWFjaGluZT1p Nzg2LXBjCi0rCQk7OwotKwlwZW50aXVtLSogfCBwNS0qIHwgazUtKiB8IGs2LSogfCBuZXhnZW4t KiB8IHZpYWMzLSopCi0rCQliYXNpY19tYWNoaW5lPWk1ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUg fCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBlbnRpdW1wcm8tKiB8IHA2LSogfCA2eDg2 LSogfCBhdGhsb24tKikKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGlu ZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJOzsKLSsJcGVudGl1bWlpLSogfCBwZW50aXVtMi0q IHwgcGVudGl1bWlpaS0qIHwgcGVudGl1bTMtKikKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNo byAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJOzsKLSsJcGVudGl1bTQt KikKLSsJCWJhc2ljX21hY2hpbmU9aTc4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9e W14tXSotLy8nYAotKwkJOzsKLSsJcG4pCi0rCQliYXNpY19tYWNoaW5lPXBuLWdvdWxkCi0rCQk7 OwotKwlwb3dlcikJYmFzaWNfbWFjaGluZT1wb3dlci1pYm0KLSsJCTs7Ci0rCXBwYykJYmFzaWNf bWFjaGluZT1wb3dlcnBjLXVua25vd24KLSsJCTs7Ci0rCXBwYy0qKQliYXNpY19tYWNoaW5lPXBv d2VycGMtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0r CXBwY2xlIHwgcG93ZXJwY2xpdHRsZSB8IHBwYy1sZSB8IHBvd2VycGMtbGl0dGxlKQotKwkJYmFz aWNfbWFjaGluZT1wb3dlcnBjbGUtdW5rbm93bgotKwkJOzsKLSsJcHBjbGUtKiB8IHBvd2VycGNs aXR0bGUtKikKLSsJCWJhc2ljX21hY2hpbmU9cG93ZXJwY2xlLWBlY2hvICRiYXNpY19tYWNoaW5l IHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQk7OwotKwlwcGM2NCkJYmFzaWNfbWFjaGluZT1wb3dl cnBjNjQtdW5rbm93bgotKwkJOzsKLSsJcHBjNjQtKikgYmFzaWNfbWFjaGluZT1wb3dlcnBjNjQt YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBwYzY0 bGUgfCBwb3dlcnBjNjRsaXR0bGUgfCBwcGM2NC1sZSB8IHBvd2VycGM2NC1saXR0bGUpCi0rCQli YXNpY19tYWNoaW5lPXBvd2VycGM2NGxlLXVua25vd24KLSsJCTs7Ci0rCXBwYzY0bGUtKiB8IHBv d2VycGM2NGxpdHRsZS0qKQotKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjRsZS1gZWNobyAkYmFz aWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJOzsKLSsJcHMyKQotKwkJYmFzaWNf bWFjaGluZT1pMzg2LWlibQotKwkJOzsKLSsJcHczMikKLSsJCWJhc2ljX21hY2hpbmU9aTU4Ni11 bmtub3duCi0rCQlvcz0tcHczMgotKwkJOzsKLSsJcmRvcykKLSsJCWJhc2ljX21hY2hpbmU9aTM4 Ni1wYwotKwkJb3M9LXJkb3MKLSsJCTs7Ci0rCXJvbTY4aykKLSsJCWJhc2ljX21hY2hpbmU9bTY4 ay1yb202OGsKLSsJCW9zPS1jb2ZmCi0rCQk7OwotKwlybVs0Nl0wMCkKLSsJCWJhc2ljX21hY2hp bmU9bWlwcy1zaWVtZW5zCi0rCQk7OwotKwlydHBjIHwgcnRwYy0qKQotKwkJYmFzaWNfbWFjaGlu ZT1yb21wLWlibQotKwkJOzsKLSsJczM5MCB8IHMzOTAtKikKLSsJCWJhc2ljX21hY2hpbmU9czM5 MC1pYm0KLSsJCTs7Ci0rCXMzOTB4IHwgczM5MHgtKikKLSsJCWJhc2ljX21hY2hpbmU9czM5MHgt aWJtCi0rCQk7OwotKwlzYTI5MjAwKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAotKwkJb3M9 LXVkaQotKwkJOzsKLSsJc2IxKQotKwkJYmFzaWNfbWFjaGluZT1taXBzaXNhNjRzYjEtdW5rbm93 bgotKwkJOzsKLSsJc2IxZWwpCi0rCQliYXNpY19tYWNoaW5lPW1pcHNpc2E2NHNiMWVsLXVua25v d24KLSsJCTs7Ci0rCXNkZSkKLSsJCWJhc2ljX21hY2hpbmU9bWlwc2lzYTMyLXNkZQotKwkJb3M9 LWVsZgotKwkJOzsKLSsJc2VpKQotKwkJYmFzaWNfbWFjaGluZT1taXBzLXNlaQotKwkJb3M9LXNl aXV4Ci0rCQk7OwotKwlzZXF1ZW50KQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXNlcXVlbnQKLSsJ CTs7Ci0rCXNoKQotKwkJYmFzaWNfbWFjaGluZT1zaC1oaXRhY2hpCi0rCQlvcz0taG1zCi0rCQk7 OwotKwlzaDVlbCkKLSsJCWJhc2ljX21hY2hpbmU9c2g1bGUtdW5rbm93bgotKwkJOzsKLSsJc2g2 NCkKLSsJCWJhc2ljX21hY2hpbmU9c2g2NC11bmtub3duCi0rCQk7OwotKwlzcGFyY2xpdGUtd3Jz IHwgc2ltc28td3JzKQotKwkJYmFzaWNfbWFjaGluZT1zcGFyY2xpdGUtd3JzCi0rCQlvcz0tdnh3 b3JrcwotKwkJOzsKLSsJc3BzNykKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCi0rCQlvcz0t c3lzdjIKLSsJCTs7Ci0rCXNwdXIpCi0rCQliYXNpY19tYWNoaW5lPXNwdXItdW5rbm93bgotKwkJ OzsKLSsJc3QyMDAwKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXRhbmRlbQotKwkJOzsKLSsJc3Ry YXR1cykKLSsJCWJhc2ljX21hY2hpbmU9aTg2MC1zdHJhdHVzCi0rCQlvcz0tc3lzdjQKLSsJCTs7 Ci0rCXN1bjIpCi0rCQliYXNpY19tYWNoaW5lPW02ODAwMC1zdW4KLSsJCTs7Ci0rCXN1bjJvczMp Ci0rCQliYXNpY19tYWNoaW5lPW02ODAwMC1zdW4KLSsJCW9zPS1zdW5vczMKLSsJCTs7Ci0rCXN1 bjJvczQpCi0rCQliYXNpY19tYWNoaW5lPW02ODAwMC1zdW4KLSsJCW9zPS1zdW5vczQKLSsJCTs7 Ci0rCXN1bjNvczMpCi0rCQliYXNpY19tYWNoaW5lPW02OGstc3VuCi0rCQlvcz0tc3Vub3MzCi0r CQk7OwotKwlzdW4zb3M0KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXN1bgotKwkJb3M9LXN1bm9z NAotKwkJOzsKLSsJc3VuNG9zMykKLSsJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCi0rCQlvcz0t c3Vub3MzCi0rCQk7OwotKwlzdW40b3M0KQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLSsJ CW9zPS1zdW5vczQKLSsJCTs7Ci0rCXN1bjRzb2wyKQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1z dW4KLSsJCW9zPS1zb2xhcmlzMgotKwkJOzsKLSsJc3VuMyB8IHN1bjMtKikKLSsJCWJhc2ljX21h Y2hpbmU9bTY4ay1zdW4KLSsJCTs7Ci0rCXN1bjQpCi0rCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1 bgotKwkJOzsKLSsJc3VuMzg2IHwgc3VuMzg2aSB8IHJvYWRydW5uZXIpCi0rCQliYXNpY19tYWNo aW5lPWkzODYtc3VuCi0rCQk7OwotKwlzdjEpCi0rCQliYXNpY19tYWNoaW5lPXN2MS1jcmF5Ci0r CQlvcz0tdW5pY29zCi0rCQk7OwotKwlzeW1tZXRyeSkKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1z ZXF1ZW50Ci0rCQlvcz0tZHluaXgKLSsJCTs7Ci0rCXQzZSkKLSsJCWJhc2ljX21hY2hpbmU9YWxw aGFldjUtY3JheQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJdDkwKQotKwkJYmFzaWNfbWFjaGlu ZT10OTAtY3JheQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJdGljNTR4IHwgYzU0eCopCi0rCQli YXNpY19tYWNoaW5lPXRpYzU0eC11bmtub3duCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJdGljNTV4 IHwgYzU1eCopCi0rCQliYXNpY19tYWNoaW5lPXRpYzU1eC11bmtub3duCi0rCQlvcz0tY29mZgot KwkJOzsKLSsJdGljNnggfCBjNngqKQotKwkJYmFzaWNfbWFjaGluZT10aWM2eC11bmtub3duCi0r CQlvcz0tY29mZgotKwkJOzsKLSsJdGlsZSopCi0rCQliYXNpY19tYWNoaW5lPXRpbGUtdW5rbm93 bgotKwkJb3M9LWxpbnV4LWdudQotKwkJOzsKLSsJdHgzOSkKLSsJCWJhc2ljX21hY2hpbmU9bWlw c3R4MzktdW5rbm93bgotKwkJOzsKLSsJdHgzOWVsKQotKwkJYmFzaWNfbWFjaGluZT1taXBzdHgz OWVsLXVua25vd24KLSsJCTs7Ci0rCXRvYWQxKQotKwkJYmFzaWNfbWFjaGluZT1wZHAxMC14a2wK LSsJCW9zPS10b3BzMjAKLSsJCTs7Ci0rCXRvd2VyIHwgdG93ZXItMzIpCi0rCQliYXNpY19tYWNo aW5lPW02OGstbmNyCi0rCQk7OwotKwl0cGYpCi0rCQliYXNpY19tYWNoaW5lPXMzOTB4LWlibQot KwkJb3M9LXRwZgotKwkJOzsKLSsJdWRpMjlrKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAot KwkJb3M9LXVkaQotKwkJOzsKLSsJdWx0cmEzKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLW55dQot KwkJb3M9LXN5bTEKLSsJCTs7Ci0rCXY4MTAgfCBuZWN2ODEwKQotKwkJYmFzaWNfbWFjaGluZT12 ODEwLW5lYwotKwkJb3M9LW5vbmUKLSsJCTs7Ci0rCXZheHYpCi0rCQliYXNpY19tYWNoaW5lPXZh eC1kZWMKLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwl2bXMpCi0rCQliYXNpY19tYWNoaW5lPXZheC1k ZWMKLSsJCW9zPS12bXMKLSsJCTs7Ci0rCXZwcCp8dnh8dngtKikKLSsJCWJhc2ljX21hY2hpbmU9 ZjMwMS1mdWppdHN1Ci0rCQk7OwotKwl2eHdvcmtzOTYwKQotKwkJYmFzaWNfbWFjaGluZT1pOTYw LXdycwotKwkJb3M9LXZ4d29ya3MKLSsJCTs7Ci0rCXZ4d29ya3M2OCkKLSsJCWJhc2ljX21hY2hp bmU9bTY4ay13cnMKLSsJCW9zPS12eHdvcmtzCi0rCQk7OwotKwl2eHdvcmtzMjlrKQotKwkJYmFz aWNfbWFjaGluZT1hMjlrLXdycwotKwkJb3M9LXZ4d29ya3MKLSsJCTs7Ci0rCXc2NSopCi0rCQli YXNpY19tYWNoaW5lPXc2NS13ZGMKLSsJCW9zPS1ub25lCi0rCQk7OwotKwl3ODlrLSopCi0rCQli YXNpY19tYWNoaW5lPWhwcGExLjEtd2luYm9uZAotKwkJb3M9LXByb2VsZgotKwkJOzsKLSsJeGJv eCkKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYwotKwkJb3M9LW1pbmd3MzIKLSsJCTs7Ci0rCXhw cyB8IHhwczEwMCkKLSsJCWJhc2ljX21hY2hpbmU9eHBzMTAwLWhvbmV5d2VsbAotKwkJOzsKLSsJ eW1wKQotKwkJYmFzaWNfbWFjaGluZT15bXAtY3JheQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJ ejhrLSotY29mZikKLSsJCWJhc2ljX21hY2hpbmU9ejhrLXVua25vd24KLSsJCW9zPS1zaW0KLSsJ CTs7Ci0rCXo4MC0qLWNvZmYpCi0rCQliYXNpY19tYWNoaW5lPXo4MC11bmtub3duCi0rCQlvcz0t c2ltCi0rCQk7OwotKwlub25lKQotKwkJYmFzaWNfbWFjaGluZT1ub25lLW5vbmUKLSsJCW9zPS1u b25lCi0rCQk7OwotKwotKyMgSGVyZSB3ZSBoYW5kbGUgdGhlIGRlZmF1bHQgbWFudWZhY3R1cmVy IG9mIGNlcnRhaW4gQ1BVIHR5cGVzLiAgSXQgaXMgaW4KLSsjIHNvbWUgY2FzZXMgdGhlIG9ubHkg bWFudWZhY3R1cmVyLCBpbiBvdGhlcnMsIGl0IGlzIHRoZSBtb3N0IHBvcHVsYXIuCi0rCXc4OWsp Ci0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtd2luYm9uZAotKwkJOzsKLSsJb3A1MG4pCi0rCQli YXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCi0rCQk7OwotKwlvcDYwYykKLSsJCWJhc2ljX21hY2hp bmU9aHBwYTEuMS1va2kKLSsJCTs7Ci0rCXJvbXApCi0rCQliYXNpY19tYWNoaW5lPXJvbXAtaWJt Ci0rCQk7OwotKwltbWl4KQotKwkJYmFzaWNfbWFjaGluZT1tbWl4LWtudXRoCi0rCQk7OwotKwly czYwMDApCi0rCQliYXNpY19tYWNoaW5lPXJzNjAwMC1pYm0KLSsJCTs7Ci0rCXZheCkKLSsJCWJh c2ljX21hY2hpbmU9dmF4LWRlYwotKwkJOzsKLSsJcGRwMTApCi0rCQkjIHRoZXJlIGFyZSBtYW55 IGNsb25lcywgc28gREVDIGlzIG5vdCBhIHNhZmUgYmV0Ci0rCQliYXNpY19tYWNoaW5lPXBkcDEw LXVua25vd24KLSsJCTs7Ci0rCXBkcDExKQotKwkJYmFzaWNfbWFjaGluZT1wZHAxMS1kZWMKLSsJ CTs7Ci0rCXdlMzJrKQotKwkJYmFzaWNfbWFjaGluZT13ZTMyay1hdHQKLSsJCTs7Ci0rCXNoWzEy MzRdIHwgc2hbMjRdYSB8IHNoWzI0XWFlYiB8IHNoWzM0XWViIHwgc2hbMTIzNF1sZSB8IHNoWzIz XWVsZSkKLSsJCWJhc2ljX21hY2hpbmU9c2gtdW5rbm93bgotKwkJOzsKLSsJc3BhcmMgfCBzcGFy Y3Y4IHwgc3BhcmN2OSB8IHNwYXJjdjliIHwgc3BhcmN2OXYpCi0rCQliYXNpY19tYWNoaW5lPXNw YXJjLXN1bgotKwkJOzsKLSsJY3lkcmEpCi0rCQliYXNpY19tYWNoaW5lPWN5ZHJhLWN5ZHJvbWUK LSsJCTs7Ci0rCW9yaW9uKQotKwkJYmFzaWNfbWFjaGluZT1vcmlvbi1oaWdobGV2ZWwKLSsJCTs7 Ci0rCW9yaW9uMTA1KQotKwkJYmFzaWNfbWFjaGluZT1jbGlwcGVyLWhpZ2hsZXZlbAotKwkJOzsK LSsJbWFjIHwgbXB3IHwgbWFjLW1wdykKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1hcHBsZQotKwkJ OzsKLSsJcG1hYyB8IHBtYWMtbXB3KQotKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWFwcGxlCi0r CQk7OwotKwkqLXVua25vd24pCi0rCQkjIE1ha2Ugc3VyZSB0byBtYXRjaCBhbiBhbHJlYWR5LWNh bm9uaWNhbGl6ZWQgbWFjaGluZSBuYW1lLgotKwkJOzsKLSsJKikKLSsJCWVjaG8gSW52YWxpZCBj b25maWd1cmF0aW9uIFxgJDFcJzogbWFjaGluZSBcYCRiYXNpY19tYWNoaW5lXCcgbm90IHJlY29n bml6ZWQgMT4mMgotKwkJZXhpdCAxCi0rCQk7OwotK2VzYWMKLSsKLSsjIEhlcmUgd2UgY2Fub25p Y2FsaXplIGNlcnRhaW4gYWxpYXNlcyBmb3IgbWFudWZhY3R1cmVycy4KLStjYXNlICRiYXNpY19t YWNoaW5lIGluCi0rCSotZGlnaXRhbCopCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19t YWNoaW5lIHwgc2VkICdzL2RpZ2l0YWwuKi9kZWMvJ2AKLSsJCTs7Ci0rCSotY29tbW9kb3JlKikK LSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvY29tbW9kb3Jl LiovY2JtLydgCi0rCQk7OwotKwkqKQotKwkJOzsKLStlc2FjCi0rCi0rIyBEZWNvZGUgbWFudWZh Y3R1cmVyLXNwZWNpZmljIGFsaWFzZXMgZm9yIGNlcnRhaW4gb3BlcmF0aW5nIHN5c3RlbXMuCi0r Ci0raWYgWyB4IiRvcyIgIT0geCIiIF0KLSt0aGVuCi0rY2FzZSAkb3MgaW4KLSsgICAgICAgICMg Rmlyc3QgbWF0Y2ggc29tZSBzeXN0ZW0gdHlwZSBhbGlhc2VzCi0rICAgICAgICAjIHRoYXQgbWln aHQgZ2V0IGNvbmZ1c2VkIHdpdGggdmFsaWQgc3lzdGVtIHR5cGVzLgotKwkjIC1zb2xhcmlzKiBp cyBhIGJhc2ljIHN5c3RlbSB0eXBlLCB3aXRoIHRoaXMgb25lIGV4Y2VwdGlvbi4KLSsgICAgICAg IC1hdXJvcmF1eCkKLSsJICAgICAgICBvcz0tYXVyb3JhdXgKLSsJCTs7Ci0rCS1zb2xhcmlzMSB8 IC1zb2xhcmlzMS4qKQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHNvbGFyaXMxfHN1bm9z NHwnYAotKwkJOzsKLSsJLXNvbGFyaXMpCi0rCQlvcz0tc29sYXJpczIKLSsJCTs7Ci0rCS1zdnI0 KikKLSsJCW9zPS1zeXN2NAotKwkJOzsKLSsJLXVuaXh3YXJlKikKLSsJCW9zPS1zeXN2NC4ydXcK LSsJCTs7Ci0rCS1nbnUvbGludXgqKQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfGdudS9s aW51eHxsaW51eC1nbnV8J2AKLSsJCTs7Ci0rCSMgRmlyc3QgYWNjZXB0IHRoZSBiYXNpYyBzeXN0 ZW0gdHlwZXMuCi0rCSMgVGhlIHBvcnRhYmxlIHN5c3RlbXMgY29tZXMgZmlyc3QuCi0rCSMgRWFj aCBhbHRlcm5hdGl2ZSBNVVNUIEVORCBJTiBBICosIHRvIG1hdGNoIGEgdmVyc2lvbiBudW1iZXIu Ci0rCSMgLXN5c3YqIGlzIG5vdCBoZXJlIGJlY2F1c2UgaXQgY29tZXMgbGF0ZXIsIGFmdGVyIHN5 c3ZyNC4KLSsJLWdudSogfCAtYnNkKiB8IC1tYWNoKiB8IC1taW5peCogfCAtZ2VuaXgqIHwgLXVs dHJpeCogfCAtaXJpeCogXAotKwkgICAgICB8IC0qdm1zKiB8IC1zY28qIHwgLWVzaXgqIHwgLWlz YyogfCAtYWl4KiB8IC1jbmsqIHwgLXN1bm9zIHwgLXN1bm9zWzM0XSpcCi0rCSAgICAgIHwgLWhw dXgqIHwgLXVub3MqIHwgLW9zZiogfCAtbHVuYSogfCAtZGd1eCogfCAtYXVyb3JhdXgqIHwgLXNv bGFyaXMqIFwKLSsJICAgICAgfCAtc3ltKiB8IC1rb3BlbnNvbGFyaXMqIFwKLSsJICAgICAgfCAt YW1pZ2FvcyogfCAtYW1pZ2Fkb3MqIHwgLW1zZG9zKiB8IC1uZXdzb3MqIHwgLXVuaWNvcyogfCAt YW9mKiBcCi0rCSAgICAgIHwgLWFvcyogfCAtYXJvcyogXAotKwkgICAgICB8IC1uaW5keSogfCAt dnhzaW0qIHwgLXZ4d29ya3MqIHwgLWVibW9uKiB8IC1obXMqIHwgLW12cyogXAotKwkgICAgICB8 IC1jbGl4KiB8IC1yaXNjb3MqIHwgLXVuaXBsdXMqIHwgLWlyaXMqIHwgLXJ0dSogfCAteGVuaXgq IFwKLSsJICAgICAgfCAtaGl1eCogfCAtMzg2YnNkKiB8IC1rbmV0YnNkKiB8IC1taXJic2QqIHwg LW5ldGJzZCogXAotKwkgICAgICB8IC1vcGVuYnNkKiB8IC1zb2xpZGJzZCogXAotKwkgICAgICB8 IC1la2tvYnNkKiB8IC1rZnJlZWJzZCogfCAtZnJlZWJzZCogfCAtcmlzY2l4KiB8IC1seW54b3Mq IFwKLSsJICAgICAgfCAtYm9zeCogfCAtbmV4dHN0ZXAqIHwgLWN4dXgqIHwgLWFvdXQqIHwgLWVs ZiogfCAtb2FiaSogXAotKwkgICAgICB8IC1wdHgqIHwgLWNvZmYqIHwgLWVjb2ZmKiB8IC13aW5u dCogfCAtZG9tYWluKiB8IC12c3RhKiBcCi0rCSAgICAgIHwgLXVkaSogfCAtZWFiaSogfCAtbGl0 ZXMqIHwgLWllZWUqIHwgLWdvMzIqIHwgLWF1eCogXAotKwkgICAgICB8IC1jaG9ydXNvcyogfCAt Y2hvcnVzcmRiKiB8IC1jZWdjYyogXAotKwkgICAgICB8IC1jeWd3aW4qIHwgLXBlKiB8IC1wc29z KiB8IC1tb3NzKiB8IC1wcm9lbGYqIHwgLXJ0ZW1zKiBcCi0rCSAgICAgIHwgLW1pbmd3MzIqIHwg LWxpbnV4LWdudSogfCAtbGludXgtbmV3bGliKiB8IC1saW51eC11Y2xpYmMqIFwKLSsJICAgICAg fCAtdXhwdiogfCAtYmVvcyogfCAtbXBlaXgqIHwgLXVkayogXAotKwkgICAgICB8IC1pbnRlcml4 KiB8IC11d2luKiB8IC1ta3MqIHwgLXJoYXBzb2R5KiB8IC1kYXJ3aW4qIHwgLW9wZW5lZCogXAot KwkgICAgICB8IC1vcGVuc3RlcCogfCAtb3NraXQqIHwgLWNvbml4KiB8IC1wdzMyKiB8IC1ub25z dG9wdXgqIFwKLSsJICAgICAgfCAtc3Rvcm0tY2hhb3MqIHwgLXRvcHMxMCogfCAtdGVuZXgqIHwg LXRvcHMyMCogfCAtaXRzKiBcCi0rCSAgICAgIHwgLW9zMiogfCAtdm9zKiB8IC1wYWxtb3MqIHwg LXVjbGludXgqIHwgLW51Y2xldXMqIFwKLSsJICAgICAgfCAtbW9ycGhvcyogfCAtc3VwZXJ1eCog fCAtcnRtayogfCAtcnRtay1ub3ZhKiB8IC13aW5kaXNzKiBcCi0rCSAgICAgIHwgLXBvd2VybWF4 KiB8IC1kbml4KiB8IC1ueDYgfCAtbng3IHwgLXNlaSogfCAtZHJhZ29uZmx5KiBcCi0rCSAgICAg IHwgLXNreW9zKiB8IC1oYWlrdSogfCAtcmRvcyogfCAtdG9wcGVycyogfCAtZHJvcHMqIHwgLWVz KikKLSsJIyBSZW1lbWJlciwgZWFjaCBhbHRlcm5hdGl2ZSBNVVNUIEVORCBJTiAqLCB0byBtYXRj aCBhIHZlcnNpb24gbnVtYmVyLgotKwkJOzsKLSsJLXFueCopCi0rCQljYXNlICRiYXNpY19tYWNo aW5lIGluCi0rCQkgICAgeDg2LSogfCBpKjg2LSopCi0rCQkJOzsKLSsJCSAgICAqKQotKwkJCW9z PS1udG8kb3MKLSsJCQk7OwotKwkJZXNhYwotKwkJOzsKLSsJLW50by1xbngqKQotKwkJOzsKLSsJ LW50byopCi0rCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8bnRvfG50by1xbnh8J2AKLSsJCTs7 Ci0rCS1zaW0gfCAtZXMxODAwKiB8IC1obXMqIHwgLXhyYXkgfCAtb3M2OGsqIHwgLW5vbmUqIHwg LXY4OHIqIFwKLSsJICAgICAgfCAtd2luZG93cyogfCAtb3N4IHwgLWFidWcgfCAtbmV0d2FyZSog fCAtb3M5KiB8IC1iZW9zKiB8IC1oYWlrdSogXAotKwkgICAgICB8IC1tYWNvcyogfCAtbXB3KiB8 IC1tYWdpYyogfCAtbW1peHdhcmUqIHwgLW1vbjk2MCogfCAtbG5ld3MqKQotKwkJOzsKLSsJLW1h YyopCi0rCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8bWFjfG1hY29zfCdgCi0rCQk7OwotKwkt bGludXgtZGlldGxpYmMpCi0rCQlvcz0tbGludXgtZGlldGxpYmMKLSsJCTs7Ci0rCS1saW51eCop Ci0rCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8bGludXh8bGludXgtZ251fCdgCi0rCQk7Owot Kwktc3Vub3M1KikKLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzdW5vczV8c29sYXJpczJ8 J2AKLSsJCTs7Ci0rCS1zdW5vczYqKQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHN1bm9z Nnxzb2xhcmlzM3wnYAotKwkJOzsKLSsJLW9wZW5lZCopCi0rCQlvcz0tb3BlbmVkaXRpb24KLSsJ CTs7Ci0rICAgICAgICAtb3M0MDAqKQotKwkJb3M9LW9zNDAwCi0rCQk7OwotKwktd2luY2UqKQot KwkJb3M9LXdpbmNlCi0rCQk7OwotKwktb3Nmcm9zZSopCi0rCQlvcz0tb3Nmcm9zZQotKwkJOzsK LSsJLW9zZiopCi0rCQlvcz0tb3NmCi0rCQk7OwotKwktdXRlayopCi0rCQlvcz0tYnNkCi0rCQk7 OwotKwktZHluaXgqKQotKwkJb3M9LWJzZAotKwkJOzsKLSsJLWFjaXMqKQotKwkJb3M9LWFvcwot KwkJOzsKLSsJLWF0aGVvcyopCi0rCQlvcz0tYXRoZW9zCi0rCQk7OwotKwktc3lsbGFibGUqKQot KwkJb3M9LXN5bGxhYmxlCi0rCQk7OwotKwktMzg2YnNkKQotKwkJb3M9LWJzZAotKwkJOzsKLSsJ LWN0aXgqIHwgLXV0cyopCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJLW5vdmEqKQotKwkJb3M9LXJ0 bWstbm92YQotKwkJOzsKLSsJLW5zMiApCi0rCQlvcz0tbmV4dHN0ZXAyCi0rCQk7OwotKwktbnNr KikKLSsJCW9zPS1uc2sKLSsJCTs7Ci0rCSMgUHJlc2VydmUgdGhlIHZlcnNpb24gbnVtYmVyIG9m IHNpbml4NS4KLSsJLXNpbml4NS4qKQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHNpbml4 fHN5c3Z8J2AKLSsJCTs7Ci0rCS1zaW5peCopCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0rICAgICAg ICAtdHBmKikKLSsJCW9zPS10cGYKLSsJCTs7Ci0rCS10cml0b24qKQotKwkJb3M9LXN5c3YzCi0r CQk7OwotKwktb3NzKikKLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJLXN2cjQpCi0rCQlvcz0tc3lz djQKLSsJCTs7Ci0rCS1zdnIzKQotKwkJb3M9LXN5c3YzCi0rCQk7OwotKwktc3lzdnI0KQotKwkJ b3M9LXN5c3Y0Ci0rCQk7OwotKwkjIFRoaXMgbXVzdCBjb21lIGFmdGVyIC1zeXN2cjQuCi0rCS1z eXN2KikKLSsJCTs7Ci0rCS1vc2UqKQotKwkJb3M9LW9zZQotKwkJOzsKLSsJLWVzMTgwMCopCi0r CQlvcz0tb3NlCi0rCQk7OwotKwkteGVuaXgpCi0rCQlvcz0teGVuaXgKLSsJCTs7Ci0rCS0qbWlu dCB8IC1taW50WzAtOV0qIHwgLSpNaU5UIHwgLU1pTlRbMC05XSopCi0rCQlvcz0tbWludAotKwkJ OzsKLSsJLWFyb3MqKQotKwkJb3M9LWFyb3MKLSsJCTs7Ci0rCS1rYW9zKikKLSsJCW9zPS1rYW9z Ci0rCQk7OwotKwktenZtb2UpCi0rCQlvcz0tenZtb2UKLSsJCTs7Ci0rCS1kaWNvcyopCi0rCQlv cz0tZGljb3MKLSsJCTs7Ci0rCS1ub25lKQotKwkJOzsKLSsJKikKLSsJCSMgR2V0IHJpZCBvZiB0 aGUgYC0nIGF0IHRoZSBiZWdpbm5pbmcgb2YgJG9zLgotKwkJb3M9YGVjaG8gJG9zIHwgc2VkICdz L1teLV0qLS8vJ2AKLSsJCWVjaG8gSW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFcJzogc3lzdGVt IFxgJG9zXCcgbm90IHJlY29nbml6ZWQgMT4mMgotKwkJZXhpdCAxCi0rCQk7OwotK2VzYWMKLStl bHNlCi0rCi0rIyBIZXJlIHdlIGhhbmRsZSB0aGUgZGVmYXVsdCBvcGVyYXRpbmcgc3lzdGVtcyB0 aGF0IGNvbWUgd2l0aCB2YXJpb3VzIG1hY2hpbmVzLgotKyMgVGhlIHZhbHVlIHNob3VsZCBiZSB3 aGF0IHRoZSB2ZW5kb3IgY3VycmVudGx5IHNoaXBzIG91dCB0aGUgZG9vciB3aXRoIHRoZWlyCi0r IyBtYWNoaW5lIG9yIHB1dCBhbm90aGVyIHdheSwgdGhlIG1vc3QgcG9wdWxhciBvcyBwcm92aWRl ZCB3aXRoIHRoZSBtYWNoaW5lLgotKwotKyMgTm90ZSB0aGF0IGlmIHlvdSdyZSBnb2luZyB0byB0 cnkgdG8gbWF0Y2ggIi1NQU5VRkFDVFVSRVIiIGhlcmUgKHNheSwKLSsjICItc3VuIiksIHRoZW4g eW91IGhhdmUgdG8gdGVsbCB0aGUgY2FzZSBzdGF0ZW1lbnQgdXAgdG93YXJkcyB0aGUgdG9wCi0r IyB0aGF0IE1BTlVGQUNUVVJFUiBpc24ndCBhbiBvcGVyYXRpbmcgc3lzdGVtLiAgT3RoZXJ3aXNl LCBjb2RlIGFib3ZlCi0rIyB3aWxsIHNpZ25hbCBhbiBlcnJvciBzYXlpbmcgdGhhdCBNQU5VRkFD VFVSRVIgaXNuJ3QgYW4gb3BlcmF0aW5nCi0rIyBzeXN0ZW0sIGFuZCB3ZSdsbCBuZXZlciBnZXQg dG8gdGhpcyBwb2ludC4KLSsKLStjYXNlICRiYXNpY19tYWNoaW5lIGluCi0rICAgICAgICBzY29y ZS0qKQotKwkJb3M9LWVsZgotKwkJOzsKLSsgICAgICAgIHNwdS0qKQotKwkJb3M9LWVsZgotKwkJ OzsKLSsJKi1hY29ybikKLSsJCW9zPS1yaXNjaXgxLjIKLSsJCTs7Ci0rCWFybSotcmViZWwpCi0r CQlvcz0tbGludXgKLSsJCTs7Ci0rCWFybSotc2VtaSkKLSsJCW9zPS1hb3V0Ci0rCQk7OwotKyAg ICAgICAgYzR4LSogfCB0aWM0eC0qKQotKyAgICAgICAgCW9zPS1jb2ZmCi0rCQk7OwotKwkjIFRo aXMgbXVzdCBjb21lIGJlZm9yZSB0aGUgKi1kZWMgZW50cnkuCi0rCXBkcDEwLSopCi0rCQlvcz0t dG9wczIwCi0rCQk7OwotKwlwZHAxMS0qKQotKwkJb3M9LW5vbmUKLSsJCTs7Ci0rCSotZGVjIHwg dmF4LSopCi0rCQlvcz0tdWx0cml4NC4yCi0rCQk7OwotKwltNjgqLWFwb2xsbykKLSsJCW9zPS1k b21haW4KLSsJCTs7Ci0rCWkzODYtc3VuKQotKwkJb3M9LXN1bm9zNC4wLjIKLSsJCTs7Ci0rCW02 ODAwMC1zdW4pCi0rCQlvcz0tc3Vub3MzCi0rCQkjIFRoaXMgYWxzbyBleGlzdHMgaW4gdGhlIGNv bmZpZ3VyZSBwcm9ncmFtLCBidXQgd2FzIG5vdCB0aGUKLSsJCSMgZGVmYXVsdC4KLSsJCSMgb3M9 LXN1bm9zNAotKwkJOzsKLSsJbTY4Ki1jaXNjbykKLSsJCW9zPS1hb3V0Ci0rCQk7OwotKyAgICAg ICAgbWVwLSopCi0rCQlvcz0tZWxmCi0rCQk7OwotKwltaXBzKi1jaXNjbykKLSsJCW9zPS1lbGYK LSsJCTs7Ci0rCW1pcHMqLSopCi0rCQlvcz0tZWxmCi0rCQk7OwotKwlvcjMyLSopCi0rCQlvcz0t Y29mZgotKwkJOzsKLSsJKi10dGkpCSMgbXVzdCBiZSBiZWZvcmUgc3BhcmMgZW50cnkgb3Igd2Ug Z2V0IHRoZSB3cm9uZyBvcy4KLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJc3BhcmMtKiB8ICotc3Vu KQotKwkJb3M9LXN1bm9zNC4xLjEKLSsJCTs7Ci0rCSotYmUpCi0rCQlvcz0tYmVvcwotKwkJOzsK LSsJKi1oYWlrdSkKLSsJCW9zPS1oYWlrdQotKwkJOzsKLSsJKi1pYm0pCi0rCQlvcz0tYWl4Ci0r CQk7OwotKyAgICAJKi1rbnV0aCkKLSsJCW9zPS1tbWl4d2FyZQotKwkJOzsKLSsJKi13ZWMpCi0r CQlvcz0tcHJvZWxmCi0rCQk7OwotKwkqLXdpbmJvbmQpCi0rCQlvcz0tcHJvZWxmCi0rCQk7Owot KwkqLW9raSkKLSsJCW9zPS1wcm9lbGYKLSsJCTs7Ci0rCSotaHApCi0rCQlvcz0taHB1eAotKwkJ OzsKLSsJKi1oaXRhY2hpKQotKwkJb3M9LWhpdXgKLSsJCTs7Ci0rCWk4NjAtKiB8ICotYXR0IHwg Ki1uY3IgfCAqLWFsdG9zIHwgKi1tb3Rvcm9sYSB8ICotY29udmVyZ2VudCkKLSsJCW9zPS1zeXN2 Ci0rCQk7OwotKwkqLWNibSkKLSsJCW9zPS1hbWlnYW9zCi0rCQk7OwotKwkqLWRnKQotKwkJb3M9 LWRndXgKLSsJCTs7Ci0rCSotZG9scGhpbikKLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJbTY4ay1j Y3VyKQotKwkJb3M9LXJ0dQotKwkJOzsKLSsJbTg4ay1vbXJvbiopCi0rCQlvcz0tbHVuYQotKwkJ OzsKLSsJKi1uZXh0ICkKLSsJCW9zPS1uZXh0c3RlcAotKwkJOzsKLSsJKi1zZXF1ZW50KQotKwkJ b3M9LXB0eAotKwkJOzsKLSsJKi1jcmRzKQotKwkJb3M9LXVub3MKLSsJCTs7Ci0rCSotbnMpCi0r CQlvcz0tZ2VuaXgKLSsJCTs7Ci0rCWkzNzAtKikKLSsJCW9zPS1tdnMKLSsJCTs7Ci0rCSotbmV4 dCkKLSsJCW9zPS1uZXh0c3RlcDMKLSsJCTs7Ci0rCSotZ291bGQpCi0rCQlvcz0tc3lzdgotKwkJ OzsKLSsJKi1oaWdobGV2ZWwpCi0rCQlvcz0tYnNkCi0rCQk7OwotKwkqLWVuY29yZSkKLSsJCW9z PS1ic2QKLSsJCTs7Ci0rCSotc2dpKQotKwkJb3M9LWlyaXgKLSsJCTs7Ci0rCSotc2llbWVucykK LSsJCW9zPS1zeXN2NAotKwkJOzsKLSsJKi1tYXNzY29tcCkKLSsJCW9zPS1ydHUKLSsJCTs7Ci0r CWYzMFswMV0tZnVqaXRzdSB8IGY3MDAtZnVqaXRzdSkKLSsJCW9zPS11eHB2Ci0rCQk7OwotKwkq LXJvbTY4aykKLSsJCW9zPS1jb2ZmCi0rCQk7OwotKwkqLSpidWcpCi0rCQlvcz0tY29mZgotKwkJ OzsKLSsJKi1hcHBsZSkKLSsJCW9zPS1tYWNvcwotKwkJOzsKLSsJKi1hdGFyaSopCi0rCQlvcz0t bWludAotKwkJOzsKLSsJKikKLSsJCW9zPS1ub25lCi0rCQk7OwotK2VzYWMKLStmaQotKwotKyMg SGVyZSB3ZSBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgd2Uga25vdyB0aGUgb3MsIGFuZCB0aGUgQ1BV IHR5cGUsIGJ1dCBub3QgdGhlCi0rIyBtYW51ZmFjdHVyZXIuICBXZSBwaWNrIHRoZSBsb2dpY2Fs IG1hbnVmYWN0dXJlci4KLSt2ZW5kb3I9dW5rbm93bgotK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4K LSsJKi11bmtub3duKQotKwkJY2FzZSAkb3MgaW4KLSsJCQktcmlzY2l4KikKLSsJCQkJdmVuZG9y PWFjb3JuCi0rCQkJCTs7Ci0rCQkJLXN1bm9zKikKLSsJCQkJdmVuZG9yPXN1bgotKwkJCQk7Owot KwkJCS1jbmsqfC1haXgqKQotKwkJCQl2ZW5kb3I9aWJtCi0rCQkJCTs7Ci0rCQkJLWJlb3MqKQot KwkJCQl2ZW5kb3I9YmUKLSsJCQkJOzsKLSsJCQktaHB1eCopCi0rCQkJCXZlbmRvcj1ocAotKwkJ CQk7OwotKwkJCS1tcGVpeCopCi0rCQkJCXZlbmRvcj1ocAotKwkJCQk7OwotKwkJCS1oaXV4KikK LSsJCQkJdmVuZG9yPWhpdGFjaGkKLSsJCQkJOzsKLSsJCQktdW5vcyopCi0rCQkJCXZlbmRvcj1j cmRzCi0rCQkJCTs7Ci0rCQkJLWRndXgqKQotKwkJCQl2ZW5kb3I9ZGcKLSsJCQkJOzsKLSsJCQkt bHVuYSopCi0rCQkJCXZlbmRvcj1vbXJvbgotKwkJCQk7OwotKwkJCS1nZW5peCopCi0rCQkJCXZl bmRvcj1ucwotKwkJCQk7OwotKwkJCS1tdnMqIHwgLW9wZW5lZCopCi0rCQkJCXZlbmRvcj1pYm0K LSsJCQkJOzsKLSsJCQktb3M0MDAqKQotKwkJCQl2ZW5kb3I9aWJtCi0rCQkJCTs7Ci0rCQkJLXB0 eCopCi0rCQkJCXZlbmRvcj1zZXF1ZW50Ci0rCQkJCTs7Ci0rCQkJLXRwZiopCi0rCQkJCXZlbmRv cj1pYm0KLSsJCQkJOzsKLSsJCQktdnhzaW0qIHwgLXZ4d29ya3MqIHwgLXdpbmRpc3MqKQotKwkJ CQl2ZW5kb3I9d3JzCi0rCQkJCTs7Ci0rCQkJLWF1eCopCi0rCQkJCXZlbmRvcj1hcHBsZQotKwkJ CQk7OwotKwkJCS1obXMqKQotKwkJCQl2ZW5kb3I9aGl0YWNoaQotKwkJCQk7OwotKwkJCS1tcHcq IHwgLW1hY29zKikKLSsJCQkJdmVuZG9yPWFwcGxlCi0rCQkJCTs7Ci0rCQkJLSptaW50IHwgLW1p bnRbMC05XSogfCAtKk1pTlQgfCAtTWlOVFswLTldKikKLSsJCQkJdmVuZG9yPWF0YXJpCi0rCQkJ CTs7Ci0rCQkJLXZvcyopCi0rCQkJCXZlbmRvcj1zdHJhdHVzCi0rCQkJCTs7Ci0rCQllc2FjCi0r CQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICJzL3Vua25vd24vJHZl bmRvci8iYAotKwkJOzsKLStlc2FjCi0rCi0rZWNobyAkYmFzaWNfbWFjaGluZSRvcwotK2V4aXQK LSsKLSsjIExvY2FsIHZhcmlhYmxlczoKLSsjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1o b29rcyAndGltZS1zdGFtcCkKLSsjIHRpbWUtc3RhbXAtc3RhcnQ6ICJ0aW1lc3RhbXA9JyIKLSsj IHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZCIKLSsjIHRpbWUtc3RhbXAtZW5kOiAi JyIKLSsjIEVuZDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvY3BwdW5pdC5t NCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NwcHVuaXQubTQKLS0tLSBzb2NpLTMuMC4wXzQt cGFjay9jb25maWcvY3BwdW5pdC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY3BwdW5pdC5tNAkyMDEwLTAxLTIzIDEz OjI3OjA0LjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw5MyBAQAotK2RubAotK2RubCBBTV9Q QVRIX0NQUFVOSVQoTUlOSU1VTS1WRVJTSU9OLCBbQUNUSU9OLUlGLUZPVU5EIFssIEFDVElPTi1J Ri1OT1QtRk9VTkRdXSkKLStkbmwKLStBQ19ERUZVTihbQU1fUEFUSF9DUFBVTklUXSwKLStbCi0r Ci0rQUNfQVJHX1dJVEgoY3BwdW5pdC1wcmVmaXgsWyAgLS13aXRoLWNwcHVuaXQtcHJlZml4PVBG WCAgIFByZWZpeCB3aGVyZSBDcHBVbml0IGlzIGluc3RhbGxlZCAob3B0aW9uYWwpXSwKLSsgICAg ICAgICAgICBjcHB1bml0X2NvbmZpZ19wcmVmaXg9IiR3aXRodmFsIiwgY3BwdW5pdF9jb25maWdf cHJlZml4PSIiKQotK0FDX0FSR19XSVRIKGNwcHVuaXQtZXhlYy1wcmVmaXgsWyAgLS13aXRoLWNw cHVuaXQtZXhlYy1wcmVmaXg9UEZYICBFeGVjIHByZWZpeCB3aGVyZSBDcHBVbml0IGlzIGluc3Rh bGxlZCAob3B0aW9uYWwpXSwKLSsgICAgICAgICAgICBjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZp eD0iJHdpdGh2YWwiLCBjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeD0iIikKLSsKLSsgIGlmIHRl c3QgeCRjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeCAhPSB4IDsgdGhlbgotKyAgICAgY3BwdW5p dF9jb25maWdfYXJncz0iJGNwcHVuaXRfY29uZmlnX2FyZ3MgLS1leGVjLXByZWZpeD0kY3BwdW5p dF9jb25maWdfZXhlY19wcmVmaXgiCi0rICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3Nl dH0gIT0geHNldCA7IHRoZW4KLSsgICAgICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZp Z19leGVjX3ByZWZpeC9iaW4vY3BwdW5pdC1jb25maWcKLSsgICAgIGZpCi0rICBmaQotKyAgaWYg dGVzdCB4JGNwcHVuaXRfY29uZmlnX3ByZWZpeCAhPSB4IDsgdGhlbgotKyAgICAgY3BwdW5pdF9j b25maWdfYXJncz0iJGNwcHVuaXRfY29uZmlnX2FyZ3MgLS1wcmVmaXg9JGNwcHVuaXRfY29uZmln X3ByZWZpeCIKLSsgICAgIGlmIHRlc3QgeCR7Q1BQVU5JVF9DT05GSUcrc2V0fSAhPSB4c2V0IDsg dGhlbgotKyAgICAgICAgQ1BQVU5JVF9DT05GSUc9JGNwcHVuaXRfY29uZmlnX3ByZWZpeC9iaW4v Y3BwdW5pdC1jb25maWcKLSsgICAgIGZpCi0rICBmaQotKwotKyAgQUNfUEFUSF9QUk9HKENQUFVO SVRfQ09ORklHLCBjcHB1bml0LWNvbmZpZywgbm8pCi0rICBjcHB1bml0X3ZlcnNpb25fbWluPSQx Ci0rCi0rICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIENwcHVuaXQgLSB2ZXJzaW9uID49ICRjcHB1bml0 X3ZlcnNpb25fbWluKQotKyAgbm9fY3BwdW5pdD0iIgotKyAgaWYgdGVzdCAiJENQUFVOSVRfQ09O RklHIiA9ICJubyIgOyB0aGVuCi0rICAgIEFDX01TR19SRVNVTFQobm8pCi0rICAgIG5vX2NwcHVu aXQ9eWVzCi0rICBlbHNlCi0rICAgIENQUFVOSVRfQ0ZMQUdTPWAkQ1BQVU5JVF9DT05GSUcgLS1j ZmxhZ3NgCi0rICAgIENQUFVOSVRfTElCUz1gJENQUFVOSVRfQ09ORklHIC0tbGlic2AKLSsgICAg Q1BQVU5JVF9WRVJTSU9OPWAkQ1BQVU5JVF9DT05GSUcgLS12ZXJzaW9uYAotKwotKyAgICBjcHB1 bml0X21ham9yX3ZlcnNpb249YGVjaG8gJENQUFVOSVRfVkVSU0lPTiB8IFwKLSsgICAgICAgICAg IHNlZCAncy9cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS9cMS8nYAotKyAg ICBjcHB1bml0X21pbm9yX3ZlcnNpb249YGVjaG8gJENQUFVOSVRfVkVSU0lPTiB8IFwKLSsgICAg ICAgICAgIHNlZCAncy9cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS9cMi8n YAotKyAgICBjcHB1bml0X21pY3JvX3ZlcnNpb249YGVjaG8gJENQUFVOSVRfVkVSU0lPTiB8IFwK LSsgICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpLlwoW1swLTldXSpc KS9cMy8nYAotKwotKyAgICBjcHB1bml0X21ham9yX21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9u X21pbiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpLlwo W1swLTldXSpcKS9cMS8nYAotKyAgICBpZiB0ZXN0ICJ4JHtjcHB1bml0X21ham9yX21pbn0iID0g IngiIDsgdGhlbgotKyAgICAgICBjcHB1bml0X21ham9yX21pbj0wCi0rICAgIGZpCi0rICAgIAot KyAgICBjcHB1bml0X21pbm9yX21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKLSsg ICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS9c Mi8nYAotKyAgICBpZiB0ZXN0ICJ4JHtjcHB1bml0X21pbm9yX21pbn0iID0gIngiIDsgdGhlbgot KyAgICAgICBjcHB1bml0X21pbm9yX21pbj0wCi0rICAgIGZpCi0rICAgIAotKyAgICBjcHB1bml0 X21pY3JvX21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKLSsgICAgICAgICAgIHNl ZCAncy9cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS9cMy8nYAotKyAgICBp ZiB0ZXN0ICJ4JHtjcHB1bml0X21pY3JvX21pbn0iID0gIngiIDsgdGhlbgotKyAgICAgICBjcHB1 bml0X21pY3JvX21pbj0wCi0rICAgIGZpCi0rCi0rICAgIGNwcHVuaXRfdmVyc2lvbl9wcm9wZXI9 YGV4cHIgXAotKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPiAkY3BwdW5pdF9tYWpv cl9taW4gXHwgXAotKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9t YWpvcl9taW4gXCYgXAotKyAgICAgICAgJGNwcHVuaXRfbWlub3JfdmVyc2lvbiBcPiAkY3BwdW5p dF9taW5vcl9taW4gXHwgXAotKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPSAkY3Bw dW5pdF9tYWpvcl9taW4gXCYgXAotKyAgICAgICAgJGNwcHVuaXRfbWlub3JfdmVyc2lvbiBcPSAk Y3BwdW5pdF9taW5vcl9taW4gXCYgXAotKyAgICAgICAgJGNwcHVuaXRfbWljcm9fdmVyc2lvbiBc Pj0gJGNwcHVuaXRfbWljcm9fbWluIGAKLSsKLSsgICAgaWYgdGVzdCAiJGNwcHVuaXRfdmVyc2lv bl9wcm9wZXIiID0gIjEiIDsgdGhlbgotKyAgICAgIEFDX01TR19SRVNVTFQoWyRjcHB1bml0X21h am9yX3ZlcnNpb24uJGNwcHVuaXRfbWlub3JfdmVyc2lvbi4kY3BwdW5pdF9taWNyb192ZXJzaW9u XSkKLSsgICAgZWxzZQotKyAgICAgIEFDX01TR19SRVNVTFQobm8pCi0rICAgICAgbm9fY3BwdW5p dD15ZXMKLSsgICAgZmkKLSsgIGZpCi0rCi0rICBpZiB0ZXN0ICJ4JG5vX2NwcHVuaXQiID0geCA7 IHRoZW4KLSsgICAgIGlmZWxzZShbJDJdLCAsIDosIFskMl0pICAgICAKLSsgIGVsc2UKLSsgICAg IENQUFVOSVRfQ0ZMQUdTPSIiCi0rICAgICBDUFBVTklUX0xJQlM9IiIKLSsgICAgIGlmZWxzZShb JDNdLCAsIDosIFskM10pCi0rICBmaQotKwotKyAgQUNfU1VCU1QoQ1BQVU5JVF9DRkxBR1MpCi0r ICBBQ19TVUJTVChDUFBVTklUX0xJQlMpCi0rICBBQ19TVUJTVChDUFBVTklUX1ZFUlNJT04pCi0r XSkKLSsKLSsKLSsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvZGVwY29tcCBz b2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2RlcGNvbXAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9j b25maWcvZGVwY29tcAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9jb25maWcvZGVwY29tcAkyMDEwLTAxLTIzIDE0OjQ0OjUyLjAwMDAw MDAwMCArMDEwMAotQEAgLTAsMCArMSw2MzAgQEAKLSsjISAvYmluL3NoCi0rIyBkZXBjb21wIC0g Y29tcGlsZSBhIHByb2dyYW0gZ2VuZXJhdGluZyBkZXBlbmRlbmNpZXMgYXMgc2lkZS1lZmZlY3Rz Ci0rCi0rc2NyaXB0dmVyc2lvbj0yMDA5LTA0LTI4LjIxOyAjIFVUQwotKwotKyMgQ29weXJpZ2h0 IChDKSAxOTk5LCAyMDAwLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA5IEZyZWUK LSsjIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g Miwgb3IgKGF0IHlvdXIgb3B0aW9uKQotKyMgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgotKwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotKyMgQXMg YSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGlm IHlvdQotKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBj b250YWlucyBhCi0rIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYs IHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgotKyMgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1z IHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgotKwotKyMgT3JpZ2lu YWxseSB3cml0dGVuIGJ5IEFsZXhhbmRyZSBPbGl2YSA8b2xpdmFAZGNjLnVuaWNhbXAuYnI+Lgot KwotK2Nhc2UgJDEgaW4KLSsgICcnKQotKyAgICAgZWNobyAiJDA6IE5vIGNvbW1hbmQuICBUcnkg XGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgMT4mMgotKyAgICAgZXhpdCAxOwot KyAgICAgOzsKLSsgIC1oIHwgLS1oKikKLSsgICAgY2F0IDw8XEVPRgotK1VzYWdlOiBkZXBjb21w IFstLWhlbHBdIFstLXZlcnNpb25dIFBST0dSQU0gW0FSR1NdCi0rCi0rUnVuIFBST0dSQU1TIEFS R1MgdG8gY29tcGlsZSBhIGZpbGUsIGdlbmVyYXRpbmcgZGVwZW5kZW5jaWVzCi0rYXMgc2lkZS1l ZmZlY3RzLgotKwotK0Vudmlyb25tZW50IHZhcmlhYmxlczoKLSsgIGRlcG1vZGUgICAgIERlcGVu ZGVuY3kgdHJhY2tpbmcgbW9kZS4KLSsgIHNvdXJjZSAgICAgIFNvdXJjZSBmaWxlIHJlYWQgYnkg YFBST0dSQU1TIEFSR1MnLgotKyAgb2JqZWN0ICAgICAgT2JqZWN0IGZpbGUgb3V0cHV0IGJ5IGBQ Uk9HUkFNUyBBUkdTJy4KLSsgIERFUERJUiAgICAgIGRpcmVjdG9yeSB3aGVyZSB0byBzdG9yZSBk ZXBlbmRlbmNpZXMuCi0rICBkZXBmaWxlICAgICBEZXBlbmRlbmN5IGZpbGUgdG8gb3V0cHV0Lgot KyAgdG1wZGVwZmlsZSAgVGVtcG9yYXJ5IGZpbGUgdG8gdXNlIHdoZW4gb3V0cHV0aW5nIGRlcGVu ZGVuY2llcy4KLSsgIGxpYnRvb2wgICAgIFdoZXRoZXIgbGlidG9vbCBpcyB1c2VkICh5ZXMvbm8p LgotKwotK1JlcG9ydCBidWdzIHRvIDxidWctYXV0b21ha2VAZ251Lm9yZz4uCi0rRU9GCi0rICAg IGV4aXQgJD8KLSsgICAgOzsKLSsgIC12IHwgLS12KikKLSsgICAgZWNobyAiZGVwY29tcCAkc2Ny aXB0dmVyc2lvbiIKLSsgICAgZXhpdCAkPwotKyAgICA7OwotK2VzYWMKLSsKLStpZiB0ZXN0IC16 ICIkZGVwbW9kZSIgfHwgdGVzdCAteiAiJHNvdXJjZSIgfHwgdGVzdCAteiAiJG9iamVjdCI7IHRo ZW4KLSsgIGVjaG8gImRlcGNvbXA6IFZhcmlhYmxlcyBzb3VyY2UsIG9iamVjdCBhbmQgZGVwbW9k ZSBtdXN0IGJlIHNldCIgMT4mMgotKyAgZXhpdCAxCi0rZmkKLSsKLSsjIERlcGVuZGVuY2llcyBm b3Igc3ViL2Jhci5vIG9yIHN1Yi9iYXIub2JqIGdvIGludG8gc3ViLy5kZXBzL2Jhci5Qby4KLStk ZXBmaWxlPSR7ZGVwZmlsZS1gZWNobyAiJG9iamVjdCIgfAotKyAgc2VkICdzfFteXFwvXSokfCck e0RFUERJUi0uZGVwc30nLyZ8O3N8XC5cKFteLl0qXCkkfC5QXDF8O3N8UG9iaiR8UG98J2B9Ci0r dG1wZGVwZmlsZT0ke3RtcGRlcGZpbGUtYGVjaG8gIiRkZXBmaWxlIiB8IHNlZCAncy9cLlwoW14u XSpcKSQvLlRcMS8nYH0KLSsKLStybSAtZiAiJHRtcGRlcGZpbGUiCi0rCi0rIyBTb21lIG1vZGVz IHdvcmsganVzdCBsaWtlIG90aGVyIG1vZGVzLCBidXQgdXNlIGRpZmZlcmVudCBmbGFncy4gIFdl Ci0rIyBwYXJhbWV0ZXJpemUgaGVyZSwgYnV0IHN0aWxsIGxpc3QgdGhlIG1vZGVzIGluIHRoZSBi aWcgY2FzZSBiZWxvdywKLSsjIHRvIG1ha2UgZGVwZW5kLm00IGVhc2llciB0byB3cml0ZS4gIE5v dGUgdGhhdCB3ZSAqY2Fubm90KiB1c2UgYSBjYXNlCi0rIyBoZXJlLCBiZWNhdXNlIHRoaXMgZmls ZSBjYW4gb25seSBjb250YWluIG9uZSBjYXNlIHN0YXRlbWVudC4KLStpZiB0ZXN0ICIkZGVwbW9k ZSIgPSBocDsgdGhlbgotKyAgIyBIUCBjb21waWxlciB1c2VzIC1NIGFuZCBubyBleHRyYSBhcmcu Ci0rICBnY2NmbGFnPS1NCi0rICBkZXBtb2RlPWdjYwotK2ZpCi0rCi0raWYgdGVzdCAiJGRlcG1v ZGUiID0gZGFzaFhtc3Rkb3V0OyB0aGVuCi0rICAgIyBUaGlzIGlzIGp1c3QgbGlrZSBkYXNobXN0 ZG91dCB3aXRoIGEgZGlmZmVyZW50IGFyZ3VtZW50LgotKyAgIGRhc2htZmxhZz0teE0KLSsgICBk ZXBtb2RlPWRhc2htc3Rkb3V0Ci0rZmkKLSsKLStjeWdwYXRoX3U9ImN5Z3BhdGggLXUgLWYgLSIK LStpZiB0ZXN0ICIkZGVwbW9kZSIgPSBtc3ZjbXN5czsgdGhlbgotKyAgICMgVGhpcyBpcyBqdXN0 IGxpa2UgbXN2aXN1YWxjcHAgYnV0IHcvbyBjeWdwYXRoIHRyYW5zbGF0aW9uLgotKyAgICMgSnVz dCBjb252ZXJ0IHRoZSBiYWNrc2xhc2gtZXNjYXBlZCBiYWNrc2xhc2hlcyB0byBzaW5nbGUgZm9y d2FyZAotKyAgICMgc2xhc2hlcyB0byBzYXRpc2Z5IGRlcGVuZC5tNAotKyAgIGN5Z3BhdGhfdT0i c2VkIHMsXFxcXFxcXFwsLyxnIgotKyAgIGRlcG1vZGU9bXN2aXN1YWxjcHAKLStmaQotKwotK2Nh c2UgIiRkZXBtb2RlIiBpbgotK2djYzMpCi0rIyMgZ2NjIDMgaW1wbGVtZW50cyBkZXBlbmRlbmN5 IHRyYWNraW5nIHRoYXQgZG9lcyBleGFjdGx5IHdoYXQKLSsjIyB3ZSB3YW50LiAgWWF5ISAgTm90 ZTogZm9yIHNvbWUgcmVhc29uIGxpYnRvb2wgMS40IGRvZXNuJ3QgbGlrZQotKyMjIGl0IGlmIC1N RCAtTVAgY29tZXMgYWZ0ZXIgdGhlIC1NRiBzdHVmZi4gIEhtbS4KLSsjIyBVbmZvcnR1bmF0ZWx5 LCBGcmVlQlNEIGM4OSBhY2NlcHRhbmNlIG9mIGZsYWdzIGRlcGVuZHMgdXBvbgotKyMjIHRoZSBj b21tYW5kIGxpbmUgYXJndW1lbnQgb3JkZXI7IHNvIGFkZCB0aGUgZmxhZ3Mgd2hlcmUgdGhleQot KyMjIGFwcGVhciBpbiBkZXBlbmQyLmFtLiAgTm90ZSB0aGF0IHRoZSBzbG93ZG93biBpbmN1cnJl ZCBoZXJlCi0rIyMgYWZmZWN0cyBvbmx5IGNvbmZpZ3VyZTogaW4gbWFrZWZpbGVzLCAlRkFTVERF UCUgc2hvcnRjdXRzIHRoaXMuCi0rICBmb3IgYXJnCi0rICBkbwotKyAgICBjYXNlICRhcmcgaW4K LSsgICAgLWMpIHNldCBmbm9yZCAiJEAiIC1NVCAiJG9iamVjdCIgLU1EIC1NUCAtTUYgIiR0bXBk ZXBmaWxlIiAiJGFyZyIgOzsKLSsgICAgKikgIHNldCBmbm9yZCAiJEAiICIkYXJnIiA7OwotKyAg ICBlc2FjCi0rICAgIHNoaWZ0ICMgZm5vcmQKLSsgICAgc2hpZnQgIyAkYXJnCi0rICBkb25lCi0r ICAiJEAiCi0rICBzdGF0PSQ/Ci0rICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKLSsgIGVs c2UKLSsgICAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgICBleGl0ICRzdGF0Ci0rICBmaQotKyAg bXYgIiR0bXBkZXBmaWxlIiAiJGRlcGZpbGUiCi0rICA7OwotKwotK2djYykKLSsjIyBUaGVyZSBh cmUgdmFyaW91cyB3YXlzIHRvIGdldCBkZXBlbmRlbmN5IG91dHB1dCBmcm9tIGdjYy4gIEhlcmUn cwotKyMjIHdoeSB3ZSBwaWNrIHRoaXMgcmF0aGVyIG9ic2N1cmUgbWV0aG9kOgotKyMjIC0gRG9u J3Qgd2FudCB0byB1c2UgLU1EIGJlY2F1c2Ugd2UnZCBsaWtlIHRoZSBkZXBlbmRlbmNpZXMgdG8g ZW5kCi0rIyMgICB1cCBpbiBhIHN1YmRpci4gIEhhdmluZyB0byByZW5hbWUgYnkgaGFuZCBpcyB1 Z2x5LgotKyMjICAgKFdlIG1pZ2h0IGVuZCB1cCBkb2luZyB0aGlzIGFueXdheSB0byBzdXBwb3J0 IG90aGVyIGNvbXBpbGVycy4pCi0rIyMgLSBUaGUgREVQRU5ERU5DSUVTX09VVFBVVCBlbnZpcm9u bWVudCB2YXJpYWJsZSBtYWtlcyBnY2MgYWN0IGxpa2UKLSsjIyAgIC1NTSwgbm90IC1NIChkZXNw aXRlIHdoYXQgdGhlIGRvY3Mgc2F5KS4KLSsjIyAtIFVzaW5nIC1NIGRpcmVjdGx5IG1lYW5zIHJ1 bm5pbmcgdGhlIGNvbXBpbGVyIHR3aWNlIChldmVuIHdvcnNlCi0rIyMgICB0aGFuIHJlbmFtaW5n KS4KLSsgIGlmIHRlc3QgLXogIiRnY2NmbGFnIjsgdGhlbgotKyAgICBnY2NmbGFnPS1NRCwKLSsg IGZpCi0rICAiJEAiIC1XcCwiJGdjY2ZsYWckdG1wZGVwZmlsZSIKLSsgIHN0YXQ9JD8KLSsgIGlm IHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotKyAgZWxzZQotKyAgICBybSAtZiAiJHRtcGRlcGZp bGUiCi0rICAgIGV4aXQgJHN0YXQKLSsgIGZpCi0rICBybSAtZiAiJGRlcGZpbGUiCi0rICBlY2hv ICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgotKyAgYWxwaGE9QUJDREVGR0hJSktMTU5PUFFS U1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egotKyMjIFRoZSBzZWNvbmQgLWUgZXhw cmVzc2lvbiBoYW5kbGVzIERPUy1zdHlsZSBmaWxlIG5hbWVzIHdpdGggZHJpdmUgbGV0dGVycy4K LSsgIHNlZCAtZSAncy9eW146XSo6IC8gLycgXAotKyAgICAgIC1lICdzL15bJyRhbHBoYSddOlwv W146XSo6IC8gLycgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKLSsjIyBUaGlzIG5leHQg cGllY2Ugb2YgbWFnaWMgYXZvaWRzIHRoZSBgZGVsZXRlZCBoZWFkZXIgZmlsZScgcHJvYmxlbS4K LSsjIyBUaGUgcHJvYmxlbSBpcyB0aGF0IHdoZW4gYSBoZWFkZXIgZmlsZSB3aGljaCBhcHBlYXJz IGluIGEgLlAgZmlsZQotKyMjIGlzIGRlbGV0ZWQsIHRoZSBkZXBlbmRlbmN5IGNhdXNlcyBtYWtl IHRvIGRpZSAoYmVjYXVzZSB0aGVyZSBpcwotKyMjIHR5cGljYWxseSBubyB3YXkgdG8gcmVidWls ZCB0aGUgaGVhZGVyKS4gIFdlIGF2b2lkIHRoaXMgYnkgYWRkaW5nCi0rIyMgZHVtbXkgZGVwZW5k ZW5jaWVzIGZvciBlYWNoIGhlYWRlciBmaWxlLiAgVG9vIGJhZCBnY2MgZG9lc24ndCBkbwotKyMj IHRoaXMgZm9yIHVzIGRpcmVjdGx5LgotKyAgdHIgJyAnICcKLSsnIDwgIiR0bXBkZXBmaWxlIiB8 Ci0rIyMgU29tZSB2ZXJzaW9ucyBvZiBnY2MgcHV0IGEgc3BhY2UgYmVmb3JlIHRoZSBgOicuICBP biB0aGUgdGhlb3J5Ci0rIyMgdGhhdCB0aGUgc3BhY2UgbWVhbnMgc29tZXRoaW5nLCB3ZSBhZGQg YSBzcGFjZSB0byB0aGUgb3V0cHV0IGFzCi0rIyMgd2VsbC4KLSsjIyBTb21lIHZlcnNpb25zIG9m IHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgotKyMjIGNv cnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmth cm91bmQuCi0rICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNl ZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgotKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAg OzsKLSsKLStocCkKLSsgICMgVGhpcyBjYXNlIGV4aXN0cyBvbmx5IHRvIGxldCBkZXBlbmQubTQg ZG8gaXRzIHdvcmsuICBJdCB3b3JrcyBieQotKyAgIyBsb29raW5nIGF0IHRoZSB0ZXh0IG9mIHRo aXMgc2NyaXB0LiAgVGhpcyBjYXNlIHdpbGwgbmV2ZXIgYmUgcnVuLAotKyAgIyBzaW5jZSBpdCBp cyBjaGVja2VkIGZvciBhYm92ZS4KLSsgIGV4aXQgMQotKyAgOzsKLSsKLStzZ2kpCi0rICBpZiB0 ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSsgICAgIiRAIiAiLVdwLC1NRHVwZGF0ZSwkdG1w ZGVwZmlsZSIKLSsgIGVsc2UKLSsgICAgIiRAIiAtTUR1cGRhdGUgIiR0bXBkZXBmaWxlIgotKyAg ZmkKLSsgIHN0YXQ9JD8KLSsgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotKyAgZWxzZQot KyAgICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICAgIGV4aXQgJHN0YXQKLSsgIGZpCi0rICBybSAt ZiAiJGRlcGZpbGUiCi0rCi0rICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4gICMgeWVz LCB0aGUgc291cmNlZmlsZSBkZXBlbmQgb24gb3RoZXIgZmlsZXMKLSsgICAgZWNobyAiJG9iamVj dCA6IFxcIiA+ICIkZGVwZmlsZSIKLSsKLSsgICAgIyBDbGlwIG9mZiB0aGUgaW5pdGlhbCBlbGVt ZW50ICh0aGUgZGVwZW5kZW50KS4gIERvbid0IHRyeSB0byBiZQotKyAgICAjIGNsZXZlciBhbmQg cmVwbGFjZSB0aGlzIHdpdGggc2VkIGNvZGUsIGFzIElSSVggc2VkIHdvbid0IGhhbmRsZQotKyAg ICAjIGxpbmVzIHdpdGggbW9yZSB0aGFuIGEgZml4ZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMgKDQw OTYgaW4KLSsgICAgIyBJUklYIDYuMiBzZWQsIDgxOTIgaW4gSVJJWCA2LjUpLiAgV2UgYWxzbyBy ZW1vdmUgY29tbWVudCBsaW5lczsKLSsgICAgIyB0aGUgSVJJWCBjYyBhZGRzIGNvbW1lbnRzIGxp a2UgYCM6ZmVjJyB0byB0aGUgZW5kIG9mIHRoZQotKyAgICAjIGRlcGVuZGVuY3kgbGluZS4KLSsg ICAgdHIgJyAnICcKLSsnIDwgIiR0bXBkZXBmaWxlIiBcCi0rICAgIHwgc2VkIC1lICdzL14uKlwu bzovLycgLWUgJ3MvIy4qJC8vJyAtZSAnL14kLyBkJyB8IFwKLSsgICAgdHIgJwotKycgJyAnID4+ ICIkZGVwZmlsZSIKLSsgICAgZWNobyA+PiAiJGRlcGZpbGUiCi0rCi0rICAgICMgVGhlIHNlY29u ZCBwYXNzIGdlbmVyYXRlcyBhIGR1bW15IGVudHJ5IGZvciBlYWNoIGhlYWRlciBmaWxlLgotKyAg ICB0ciAnICcgJwotKycgPCAiJHRtcGRlcGZpbGUiIFwKLSsgICB8IHNlZCAtZSAncy9eLipcLm86 Ly8nIC1lICdzLyMuKiQvLycgLWUgJy9eJC8gZCcgLWUgJ3MvJC86LycgXAotKyAgID4+ICIkZGVw ZmlsZSIKLSsgIGVsc2UKLSsgICAgIyBUaGUgc291cmNlZmlsZSBkb2VzIG5vdCBjb250YWluIGFu eSBkZXBlbmRlbmNpZXMsIHNvIGp1c3QKLSsgICAgIyBzdG9yZSBhIGR1bW15IGNvbW1lbnQgbGlu ZSwgdG8gYXZvaWQgZXJyb3JzIHdpdGggdGhlIE1ha2VmaWxlCi0rICAgICMgImluY2x1ZGUgYmFz ZW5hbWUuUGxvIiBzY2hlbWUuCi0rICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCi0rICBm aQotKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgOzsKLSsKLSthaXgpCi0rICAjIFRoZSBDIGZv ciBBSVggQ29tcGlsZXIgdXNlcyAtTSBhbmQgb3V0cHV0cyB0aGUgZGVwZW5kZW5jaWVzCi0rICAj IGluIGEgLnUgZmlsZS4gIEluIG9sZGVyIHZlcnNpb25zLCB0aGlzIGZpbGUgYWx3YXlzIGxpdmVz IGluIHRoZQotKyAgIyBjdXJyZW50IGRpcmVjdG9yeS4gIEFsc28sIHRoZSBBSVggY29tcGlsZXIg cHV0cyBgJG9iamVjdDonIGF0IHRoZQotKyAgIyBzdGFydCBvZiBlYWNoIGxpbmU7ICRvYmplY3Qg ZG9lc24ndCBoYXZlIGRpcmVjdG9yeSBpbmZvcm1hdGlvbi4KLSsgICMgVmVyc2lvbiA2IHVzZXMg dGhlIGRpcmVjdG9yeSBpbiBib3RoIGNhc2VzLgotKyAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNl ZCAtZSAnc3wvW14vXSokfC98J2AKLSsgIHRlc3QgIngkZGlyIiA9ICJ4JG9iamVjdCIgJiYgZGly PQotKyAgYmFzZT1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8Xi4qL3x8JyAtZSAncy9cLm8k Ly8nIC1lICdzL1wubG8kLy8nYAotKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0r ICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS51Ci0rICAgIHRtcGRlcGZpbGUyPSRiYXNlLnUKLSsg ICAgdG1wZGVwZmlsZTM9JGRpci5saWJzLyRiYXNlLnUKLSsgICAgIiRAIiAtV2MsLU0KLSsgIGVs c2UKLSsgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLnUKLSsgICAgdG1wZGVwZmlsZTI9JGRpciRi YXNlLnUKLSsgICAgdG1wZGVwZmlsZTM9JGRpciRiYXNlLnUKLSsgICAgIiRAIiAtTQotKyAgZmkK LSsgIHN0YXQ9JD8KLSsKLSsgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotKyAgZWxzZQot KyAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIgot KyAgICBleGl0ICRzdGF0Ci0rICBmaQotKwotKyAgZm9yIHRtcGRlcGZpbGUgaW4gIiR0bXBkZXBm aWxlMSIgIiR0bXBkZXBmaWxlMiIgIiR0bXBkZXBmaWxlMyIKLSsgIGRvCi0rICAgIHRlc3QgLWYg IiR0bXBkZXBmaWxlIiAmJiBicmVhawotKyAgZG9uZQotKyAgaWYgdGVzdCAtZiAiJHRtcGRlcGZp bGUiOyB0aGVuCi0rICAgICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5k ZW50LmgnLgotKyAgICAjIERvIHR3byBwYXNzZXMsIG9uZSB0byBqdXN0IGNoYW5nZSB0aGVzZSB0 bwotKyAgICAjIGAkb2JqZWN0OiBkZXBlbmRlbnQuaCcgYW5kIG9uZSB0byBzaW1wbHkgYGRlcGVu ZGVudC5oOicuCi0rICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiA8ICIkdG1w ZGVwZmlsZSIgPiAiJGRlcGZpbGUiCi0rICAgICMgVGhhdCdzIGEgdGFiIGFuZCBhIHNwYWNlIGlu IHRoZSBbXS4KLSsgICAgc2VkIC1lICdzLF4uKlwuW2Etel0qOlsJIF0qLCwnIC1lICdzLCQsOiwn IDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCi0rICBlbHNlCi0rICAgICMgVGhlIHNvdXJj ZWZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZGVwZW5kZW5jaWVzLCBzbyBqdXN0Ci0rICAgICMg c3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRvIGF2b2lkIGVycm9ycyB3aXRoIHRoZSBNYWtl ZmlsZQotKyAgICAjICJpbmNsdWRlIGJhc2VuYW1lLlBsbyIgc2NoZW1lLgotKyAgICBlY2hvICIj ZHVtbXkiID4gIiRkZXBmaWxlIgotKyAgZmkKLSsgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgIDs7 Ci0rCi0raWNjKQotKyAgIyBJbnRlbCdzIEMgY29tcGlsZXIgdW5kZXJzdGFuZHMgYC1NRCAtTUYg ZmlsZScuICBIb3dldmVyIG9uCi0rICAjICAgIGljYyAtTUQgLU1GIGZvby5kIC1jIC1vIHN1Yi9m b28ubyBzdWIvZm9vLmMKLSsgICMgSUNDIDcuMCB3aWxsIGZpbGwgZm9vLmQgd2l0aCBzb21ldGhp bmcgbGlrZQotKyAgIyAgICBmb28ubzogc3ViL2Zvby5jCi0rICAjICAgIGZvby5vOiBzdWIvZm9v LmgKLSsgICMgd2hpY2ggaXMgd3JvbmcuICBXZSB3YW50OgotKyAgIyAgICBzdWIvZm9vLm86IHN1 Yi9mb28uYwotKyAgIyAgICBzdWIvZm9vLm86IHN1Yi9mb28uaAotKyAgIyAgICBzdWIvZm9vLmM6 Ci0rICAjICAgIHN1Yi9mb28uaDoKLSsgICMgSUNDIDcuMSB3aWxsIG91dHB1dAotKyAgIyAgICBm b28ubzogc3ViL2Zvby5jIHN1Yi9mb28uaAotKyAgIyBhbmQgd2lsbCB3cmFwIGxvbmcgbGluZXMg dXNpbmcgXCA6Ci0rICAjICAgIGZvby5vOiBzdWIvZm9vLmMgLi4uIFwKLSsgICMgICAgIHN1Yi9m b28uaCAuLi4gXAotKyAgIyAgICAgLi4uCi0rCi0rICAiJEAiIC1NRCAtTUYgIiR0bXBkZXBmaWxl IgotKyAgc3RhdD0kPwotKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6Ci0rICBlbHNlCi0r ICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgICAgZXhpdCAkc3RhdAotKyAgZmkKLSsgIHJtIC1m ICIkZGVwZmlsZSIKLSsgICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5k ZW50LmgnLAotKyAgIyBvciBgZm9vLm86IGRlcDEuaCBkZXAyLmggXCcsIG9yIGAgZGVwMy5oIGRl cDQuaCBcJy4KLSsgICMgRG8gdHdvIHBhc3Nlcywgb25lIHRvIGp1c3QgY2hhbmdlIHRoZXNlIHRv Ci0rICAjIGAkb2JqZWN0OiBkZXBlbmRlbnQuaCcgYW5kIG9uZSB0byBzaW1wbHkgYGRlcGVuZGVu dC5oOicuCi0rICBzZWQgInMsXlteOl0qOiwkb2JqZWN0IDosIiA8ICIkdG1wZGVwZmlsZSIgPiAi JGRlcGZpbGUiCi0rICAjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0 IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCi0rICAjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGlu dG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCi0rICBzZWQgJ3MsXlteOl0q OiBcKC4qXCkkLFwxLDtzL15cXCQvLzsvXiQvZDsvOiQvZCcgPCAiJHRtcGRlcGZpbGUiIHwKLSsg ICAgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCi0rICBybSAtZiAiJHRtcGRlcGZpbGUi Ci0rICA7OwotKwotK2hwMikKLSsgICMgVGhlICJocCIgc3RhbnphIGFib3ZlIGRvZXMgbm90IHdv cmsgd2l0aCBhQ0MgKEMrKykgYW5kIEhQJ3MgaWE2NAotKyAgIyBjb21waWxlcnMsIHdoaWNoIGhh dmUgaW50ZWdyYXRlZCBwcmVwcm9jZXNzb3JzLiAgVGhlIGNvcnJlY3Qgb3B0aW9uCi0rICAjIHRv IHVzZSB3aXRoIHRoZXNlIGlzICtNYWtlZDsgaXQgd3JpdGVzIGRlcGVuZGVuY2llcyB0byBhIGZp bGUgbmFtZWQKLSsgICMgJ2Zvby5kJywgd2hpY2ggbGFuZHMgbmV4dCB0byB0aGUgb2JqZWN0IGZp bGUsIHdoZXJldmVyIHRoYXQKLSsgICMgaGFwcGVucyB0byBiZS4KLSsgICMgTXVjaCBvZiB0aGlz IGlzIHNpbWlsYXIgdG8gdGhlIHRydTY0IGNhc2U7IHNlZSBjb21tZW50cyB0aGVyZS4KLSsgIGRp cj1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8L1teL10qJHwvfCdgCi0rICB0ZXN0ICJ4JGRp ciIgPSAieCRvYmplY3QiICYmIGRpcj0KLSsgIGJhc2U9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1l ICdzfF4uKi98fCcgLWUgJ3MvXC5vJC8vJyAtZSAncy9cLmxvJC8vJ2AKLSsgIGlmIHRlc3QgIiRs aWJ0b29sIiA9IHllczsgdGhlbgotKyAgICB0bXBkZXBmaWxlMT0kZGlyJGJhc2UuZAotKyAgICB0 bXBkZXBmaWxlMj0kZGlyLmxpYnMvJGJhc2UuZAotKyAgICAiJEAiIC1XYywrTWFrZWQKLSsgIGVs c2UKLSsgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLmQKLSsgICAgdG1wZGVwZmlsZTI9JGRpciRi YXNlLmQKLSsgICAgIiRAIiArTWFrZWQKLSsgIGZpCi0rICBzdGF0PSQ/Ci0rICBpZiB0ZXN0ICRz dGF0IC1lcSAwOyB0aGVuIDoKLSsgIGVsc2UKLSsgICAgIHJtIC1mICIkdG1wZGVwZmlsZTEiICIk dG1wZGVwZmlsZTIiCi0rICAgICBleGl0ICRzdGF0Ci0rICBmaQotKwotKyAgZm9yIHRtcGRlcGZp bGUgaW4gIiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIKLSsgIGRvCi0rICAgIHRlc3QgLWYg IiR0bXBkZXBmaWxlIiAmJiBicmVhawotKyAgZG9uZQotKyAgaWYgdGVzdCAtZiAiJHRtcGRlcGZp bGUiOyB0aGVuCi0rICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiAiJHRtcGRl cGZpbGUiID4gIiRkZXBmaWxlIgotKyAgICAjIEFkZCBgZGVwZW5kZW50Lmg6JyBsaW5lcy4KLSsg ICAgc2VkIC1uZSAnMiwkewotKwkgICAgICAgcy9eICovLwotKwkgICAgICAgcy8gXFwqJC8vCi0r CSAgICAgICBzLyQvOi8KLSsJICAgICAgIHAKLSsJICAgICB9JyAiJHRtcGRlcGZpbGUiID4+ICIk ZGVwZmlsZSIKLSsgIGVsc2UKLSsgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKLSsgIGZp Ci0rICBybSAtZiAiJHRtcGRlcGZpbGUiICIkdG1wZGVwZmlsZTIiCi0rICA7OwotKwotK3RydTY0 KQotKyAgICMgVGhlIFRydTY0IGNvbXBpbGVyIHVzZXMgLU1EIHRvIGdlbmVyYXRlIGRlcGVuZGVu Y2llcyBhcyBhIHNpZGUKLSsgICAjIGVmZmVjdC4gIGBjYyAtTUQgLW8gZm9vLm8gLi4uJyBwdXRz IHRoZSBkZXBlbmRlbmNpZXMgaW50byBgZm9vLm8uZCcuCi0rICAgIyBBdCBsZWFzdCBvbiBBbHBo YS9SZWRoYXQgNi4xLCBDb21wYXEgQ0NDIFY2LjItNTA0IHNlZW1zIHRvIHB1dAotKyAgICMgZGVw ZW5kZW5jaWVzIGluIGBmb28uZCcgaW5zdGVhZCwgc28gd2UgY2hlY2sgZm9yIHRoYXQgdG9vLgot KyAgICMgU3ViZGlyZWN0b3JpZXMgYXJlIHJlc3BlY3RlZC4KLSsgICBkaXI9YGVjaG8gIiRvYmpl Y3QiIHwgc2VkIC1lICdzfC9bXi9dKiR8L3wnYAotKyAgIHRlc3QgIngkZGlyIiA9ICJ4JG9iamVj dCIgJiYgZGlyPQotKyAgIGJhc2U9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfF4uKi98fCcg LWUgJ3MvXC5vJC8vJyAtZSAncy9cLmxvJC8vJ2AKLSsKLSsgICBpZiB0ZXN0ICIkbGlidG9vbCIg PSB5ZXM7IHRoZW4KLSsgICAgICAjIFdpdGggVHJ1NjQgY2MsIHNoYXJlZCBvYmplY3RzIGNhbiBh bHNvIGJlIHVzZWQgdG8gbWFrZSBhCi0rICAgICAgIyBzdGF0aWMgbGlicmFyeS4gIFRoaXMgbWVj aGFuaXNtIGlzIHVzZWQgaW4gbGlidG9vbCAxLjQgc2VyaWVzIHRvCi0rICAgICAgIyBoYW5kbGUg Ym90aCBzaGFyZWQgYW5kIHN0YXRpYyBsaWJyYXJpZXMgaW4gYSBzaW5nbGUgY29tcGlsYXRpb24u Ci0rICAgICAgIyBXaXRoIGxpYnRvb2wgMS40LCBkZXBlbmRlbmNpZXMgd2VyZSBvdXRwdXQgaW4g JGRpci5saWJzLyRiYXNlLmxvLmQuCi0rICAgICAgIwotKyAgICAgICMgV2l0aCBsaWJ0b29sIDEu NSB0aGlzIGV4Y2VwdGlvbiB3YXMgcmVtb3ZlZCwgYW5kIGxpYnRvb2wgbm93Ci0rICAgICAgIyBn ZW5lcmF0ZXMgMiBzZXBhcmF0ZSBvYmplY3RzIGZvciB0aGUgMiBsaWJyYXJpZXMuICBUaGVzZSB0 d28KLSsgICAgICAjIGNvbXBpbGF0aW9ucyBvdXRwdXQgZGVwZW5kZW5jaWVzIGluICRkaXIubGli cy8kYmFzZS5vLmQgYW5kCi0rICAgICAgIyBpbiAkZGlyJGJhc2Uuby5kLiAgV2UgaGF2ZSB0byBj aGVjayBmb3IgYm90aCBmaWxlcywgYmVjYXVzZQotKyAgICAgICMgb25lIG9mIHRoZSB0d28gY29t cGlsYXRpb25zIGNhbiBiZSBkaXNhYmxlZC4gIFdlIHNob3VsZCBwcmVmZXIKLSsgICAgICAjICRk aXIkYmFzZS5vLmQgb3ZlciAkZGlyLmxpYnMvJGJhc2Uuby5kIGJlY2F1c2UgdGhlIGxhdHRlciBp cwotKyAgICAgICMgYXV0b21hdGljYWxseSBjbGVhbmVkIHdoZW4gLmxpYnMvIGlzIGRlbGV0ZWQs IHdoaWxlIGlnbm9yaW5nCi0rICAgICAgIyB0aGUgZm9ybWVyIHdvdWxkIGNhdXNlIGEgZGlzdGNs ZWFuY2hlY2sgcGFuaWMuCi0rICAgICAgdG1wZGVwZmlsZTE9JGRpci5saWJzLyRiYXNlLmxvLmQg ICAjIGxpYnRvb2wgMS40Ci0rICAgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLm8uZCAgICAgICAg ICAjIGxpYnRvb2wgMS41Ci0rICAgICAgdG1wZGVwZmlsZTM9JGRpci5saWJzLyRiYXNlLm8uZCAg ICAjIGxpYnRvb2wgMS41Ci0rICAgICAgdG1wZGVwZmlsZTQ9JGRpci5saWJzLyRiYXNlLmQgICAg ICAjIENvbXBhcSBDQ0MgVjYuMi01MDQKLSsgICAgICAiJEAiIC1XYywtTUQKLSsgICBlbHNlCi0r ICAgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLm8uZAotKyAgICAgIHRtcGRlcGZpbGUyPSRkaXIk YmFzZS5kCi0rICAgICAgdG1wZGVwZmlsZTM9JGRpciRiYXNlLmQKLSsgICAgICB0bXBkZXBmaWxl ND0kZGlyJGJhc2UuZAotKyAgICAgICIkQCIgLU1ECi0rICAgZmkKLSsKLSsgICBzdGF0PSQ/Ci0r ICAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6Ci0rICAgZWxzZQotKyAgICAgIHJtIC1mICIk dG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiICIkdG1wZGVwZmlsZTMiICIkdG1wZGVwZmlsZTQi Ci0rICAgICAgZXhpdCAkc3RhdAotKyAgIGZpCi0rCi0rICAgZm9yIHRtcGRlcGZpbGUgaW4gIiR0 bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIgIiR0bXBkZXBmaWxlMyIgIiR0bXBkZXBmaWxlNCIK LSsgICBkbwotKyAgICAgdGVzdCAtZiAiJHRtcGRlcGZpbGUiICYmIGJyZWFrCi0rICAgZG9uZQot KyAgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbgotKyAgICAgIHNlZCAtZSAicyxeLipc LlthLXpdKjosJG9iamVjdDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCi0rICAgICAg IyBUaGF0J3MgYSB0YWIgYW5kIGEgc3BhY2UgaW4gdGhlIFtdLgotKyAgICAgIHNlZCAtZSAncyxe LipcLlthLXpdKjpbCSBdKiwsJyAtZSAncywkLDosJyA8ICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBm aWxlIgotKyAgIGVsc2UKLSsgICAgICBlY2hvICIjZHVtbXkiID4gIiRkZXBmaWxlIgotKyAgIGZp Ci0rICAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgIDs7Ci0rCi0rI25vc2lkZWVmZmVjdCkKLSsg ICMgVGhpcyBjb21tZW50IGFib3ZlIGlzIHVzZWQgYnkgYXV0b21ha2UgdG8gdGVsbCBzaWRlLWVm ZmVjdAotKyAgIyBkZXBlbmRlbmN5IHRyYWNraW5nIG1lY2hhbmlzbXMgZnJvbSBzbG93ZXIgb25l cy4KLSsKLStkYXNobXN0ZG91dCkKLSsgICMgSW1wb3J0YW50IG5vdGU6IGluIG9yZGVyIHRvIHN1 cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVyICptdXN0KgotKyAgIyBhbHdheXMgd3JpdGUgdGhl IHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dCwgcmVnYXJkbGVzcyBvZiAtby4KLSsgICIkQCIg fHwgZXhpdCAkPwotKwotKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KLSsgIGlmIHRl c3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgotKyAgICB3aGlsZSB0ZXN0ICJYJDEiICE9ICdYLS1t b2RlPWNvbXBpbGUnOyBkbwotKyAgICAgIHNoaWZ0Ci0rICAgIGRvbmUKLSsgICAgc2hpZnQKLSsg IGZpCi0rCi0rICAjIFJlbW92ZSBgLW8gJG9iamVjdCcuCi0rICBJRlM9IiAiCi0rICBmb3IgYXJn Ci0rICBkbwotKyAgICBjYXNlICRhcmcgaW4KLSsgICAgLW8pCi0rICAgICAgc2hpZnQKLSsgICAg ICA7OwotKyAgICAkb2JqZWN0KQotKyAgICAgIHNoaWZ0Ci0rICAgICAgOzsKLSsgICAgKikKLSsg ICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyIKLSsgICAgICBzaGlmdCAjIGZub3JkCi0rICAgICAg c2hpZnQgIyAkYXJnCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZG9uZQotKwotKyAgdGVzdCAt eiAiJGRhc2htZmxhZyIgJiYgZGFzaG1mbGFnPS1NCi0rICAjIFJlcXVpcmUgYXQgbGVhc3QgdHdv IGNoYXJhY3RlcnMgYmVmb3JlIHNlYXJjaGluZyBmb3IgYDonCi0rICAjIGluIHRoZSB0YXJnZXQg bmFtZS4gIFRoaXMgaXMgdG8gY29wZSB3aXRoIERPUy1zdHlsZSBmaWxlbmFtZXM6Ci0rICAjIGEg ZGVwZW5kZW5jeSBzdWNoIGFzIGBjOi9mb28vYmFyJyBjb3VsZCBiZSBzZWVuIGFzIHRhcmdldCBg Yycgb3RoZXJ3aXNlLgotKyAgIiRAIiAkZGFzaG1mbGFnIHwKLSsgICAgc2VkICdzOl5bICBdKlte OiBdW146XVteOl0qXDpbICAgIF0qOiciJG9iamVjdCInXDogOicgPiAiJHRtcGRlcGZpbGUiCi0r ICBybSAtZiAiJGRlcGZpbGUiCi0rICBjYXQgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgot KyAgdHIgJyAnICcKLSsnIDwgIiR0bXBkZXBmaWxlIiB8IFwKLSsjIyBTb21lIHZlcnNpb25zIG9m IHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgotKyMjIGNv cnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmth cm91bmQuCi0rICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNl ZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgotKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAg OzsKLSsKLStkYXNoWG1zdGRvdXQpCi0rICAjIFRoaXMgY2FzZSBvbmx5IGV4aXN0cyB0byBzYXRp c2Z5IGRlcGVuZC5tNC4gIEl0IGlzIG5ldmVyIGFjdHVhbGx5Ci0rICAjIHJ1biwgYXMgdGhpcyBt b2RlIGlzIHNwZWNpYWxseSByZWNvZ25pemVkIGluIHRoZSBwcmVhbWJsZS4KLSsgIGV4aXQgMQot KyAgOzsKLSsKLSttYWtlZGVwZW5kKQotKyAgIiRAIiB8fCBleGl0ICQ/Ci0rICAjIFJlbW92ZSBh bnkgTGlidG9vbCBjYWxsCi0rICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSsgICAg d2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1jb21waWxlJzsgZG8KLSsgICAgICBzaGlmdAot KyAgICBkb25lCi0rICAgIHNoaWZ0Ci0rICBmaQotKyAgIyBYIG1ha2VkZXBlbmQKLSsgIHNoaWZ0 Ci0rICBjbGVhcmVkPW5vIGVhdD1ubwotKyAgZm9yIGFyZwotKyAgZG8KLSsgICAgY2FzZSAkY2xl YXJlZCBpbgotKyAgICBubykKLSsgICAgICBzZXQgIiI7IHNoaWZ0Ci0rICAgICAgY2xlYXJlZD15 ZXMgOzsKLSsgICAgZXNhYwotKyAgICBpZiB0ZXN0ICRlYXQgPSB5ZXM7IHRoZW4KLSsgICAgICBl YXQ9bm8KLSsgICAgICBjb250aW51ZQotKyAgICBmaQotKyAgICBjYXNlICIkYXJnIiBpbgotKyAg ICAtRCp8LUkqKQotKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIjsgc2hpZnQgOzsKLSsgICAg IyBTdHJpcCBhbnkgb3B0aW9uIHRoYXQgbWFrZWRlcGVuZCBtYXkgbm90IHVuZGVyc3RhbmQuICBS ZW1vdmUKLSsgICAgIyB0aGUgb2JqZWN0IHRvbywgb3RoZXJ3aXNlIG1ha2VkZXBlbmQgd2lsbCBw YXJzZSBpdCBhcyBhIHNvdXJjZSBmaWxlLgotKyAgICAtYXJjaCkKLSsgICAgICBlYXQ9eWVzIDs7 Ci0rICAgIC0qfCRvYmplY3QpCi0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBzZXQgZm5vcmQg IiRAIiAiJGFyZyI7IHNoaWZ0IDs7Ci0rICAgIGVzYWMKLSsgIGRvbmUKLSsgIG9ial9zdWZmaXg9 YGVjaG8gIiRvYmplY3QiIHwgc2VkICdzL14uKlwuLy4vJ2AKLSsgIHRvdWNoICIkdG1wZGVwZmls ZSIKLSsgICR7TUFLRURFUEVORC1tYWtlZGVwZW5kfSAtbyIkb2JqX3N1ZmZpeCIgLWYiJHRtcGRl cGZpbGUiICIkQCIKLSsgIHJtIC1mICIkZGVwZmlsZSIKLSsgIGNhdCA8ICIkdG1wZGVwZmlsZSIg PiAiJGRlcGZpbGUiCi0rICBzZWQgJzEsMmQnICIkdG1wZGVwZmlsZSIgfCB0ciAnICcgJwotKycg fCBcCi0rIyMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBVWCAxMC4yMCBzZWQgY2FuJ3QgcHJvY2Vz cyB0aGlzIGludm9jYXRpb24KLSsjIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRvIHR3byBz ZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgotKyAgICBzZWQgLWUgJ3MvXlxcJC8vJyAt ZSAnL14kL2QnIC1lICcvOiQvZCcgfCBzZWQgLWUgJ3MvJC8gOi8nID4+ICIkZGVwZmlsZSIKLSsg IHJtIC1mICIkdG1wZGVwZmlsZSIgIiR0bXBkZXBmaWxlIi5iYWsKLSsgIDs7Ci0rCi0rY3BwKQot KyAgIyBJbXBvcnRhbnQgbm90ZTogaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEgY29t cGlsZXIgKm11c3QqCi0rICAjIGFsd2F5cyB3cml0ZSB0aGUgcHJlcHJvY2Vzc2VkIGZpbGUgdG8g c3Rkb3V0LgotKyAgIiRAIiB8fCBleGl0ICQ/Ci0rCi0rICAjIFJlbW92ZSB0aGUgY2FsbCB0byBM aWJ0b29sLgotKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0rICAgIHdoaWxlIHRl c3QgIlgkMSIgIT0gJ1gtLW1vZGU9Y29tcGlsZSc7IGRvCi0rICAgICAgc2hpZnQKLSsgICAgZG9u ZQotKyAgICBzaGlmdAotKyAgZmkKLSsKLSsgICMgUmVtb3ZlIGAtbyAkb2JqZWN0Jy4KLSsgIElG Uz0iICIKLSsgIGZvciBhcmcKLSsgIGRvCi0rICAgIGNhc2UgJGFyZyBpbgotKyAgICAtbykKLSsg ICAgICBzaGlmdAotKyAgICAgIDs7Ci0rICAgICRvYmplY3QpCi0rICAgICAgc2hpZnQKLSsgICAg ICA7OwotKyAgICAqKQotKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIgotKyAgICAgIHNoaWZ0 ICMgZm5vcmQKLSsgICAgICBzaGlmdCAjICRhcmcKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBk b25lCi0rCi0rICAiJEAiIC1FIHwKLSsgICAgc2VkIC1uIC1lICcvXiMgWzAtOV1bMC05XSogIlwo W14iXSpcKSIuKi8gczo6IFwxIFxcOnAnIFwKLSsgICAgICAgLWUgJy9eI2xpbmUgWzAtOV1bMC05 XSogIlwoW14iXSpcKSIuKi8gczo6IFwxIFxcOnAnIHwKLSsgICAgc2VkICckIHM6IFxcJDo6JyA+ ICIkdG1wZGVwZmlsZSIKLSsgIHJtIC1mICIkZGVwZmlsZSIKLSsgIGVjaG8gIiRvYmplY3QgOiBc XCIgPiAiJGRlcGZpbGUiCi0rICBjYXQgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKLSsg IHNlZCA8ICIkdG1wZGVwZmlsZSIgJy9eJC9kO3MvXiAvLztzLyBcXCQvLztzLyQvIDovJyA+PiAi JGRlcGZpbGUiCi0rICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICA7OwotKwotK21zdmlzdWFsY3Bw KQotKyAgIyBJbXBvcnRhbnQgbm90ZTogaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEg Y29tcGlsZXIgKm11c3QqCi0rICAjIGFsd2F5cyB3cml0ZSB0aGUgcHJlcHJvY2Vzc2VkIGZpbGUg dG8gc3Rkb3V0LgotKyAgIiRAIiB8fCBleGl0ICQ/Ci0rCi0rICAjIFJlbW92ZSB0aGUgY2FsbCB0 byBMaWJ0b29sLgotKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0rICAgIHdoaWxl IHRlc3QgIlgkMSIgIT0gJ1gtLW1vZGU9Y29tcGlsZSc7IGRvCi0rICAgICAgc2hpZnQKLSsgICAg ZG9uZQotKyAgICBzaGlmdAotKyAgZmkKLSsKLSsgIElGUz0iICIKLSsgIGZvciBhcmcKLSsgIGRv Ci0rICAgIGNhc2UgIiRhcmciIGluCi0rICAgIC1vKQotKyAgICAgIHNoaWZ0Ci0rICAgICAgOzsK LSsgICAgJG9iamVjdCkKLSsgICAgICBzaGlmdAotKyAgICAgIDs7Ci0rICAgICItR20ifCIvR20i fCItR2kifCIvR2kifCItWkkifCIvWkkiKQotKwlzZXQgZm5vcmQgIiRAIgotKwlzaGlmdAotKwlz aGlmdAotKwk7OwotKyAgICAqKQotKwlzZXQgZm5vcmQgIiRAIiAiJGFyZyIKLSsJc2hpZnQKLSsJ c2hpZnQKLSsJOzsKLSsgICAgZXNhYwotKyAgZG9uZQotKyAgIiRAIiAtRSAyPi9kZXYvbnVsbCB8 Ci0rICBzZWQgLW4gJy9eI2xpbmUgWzAtOV1bMC05XSogIlwoW14iXSpcKSIvIHM6OlwxOnAnIHwg JGN5Z3BhdGhfdSB8IHNvcnQgLXUgPiAiJHRtcGRlcGZpbGUiCi0rICBybSAtZiAiJGRlcGZpbGUi Ci0rICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgotKyAgc2VkIDwgIiR0bXBkZXBm aWxlIiAtbiAtZSAncyUgJVxcICVnJyAtZSAnL15cKC4qXCkkLyBzOjoJXDEgXFw6cCcgPj4gIiRk ZXBmaWxlIgotKyAgZWNobyAiCSIgPj4gIiRkZXBmaWxlIgotKyAgc2VkIDwgIiR0bXBkZXBmaWxl IiAtbiAtZSAncyUgJVxcICVnJyAtZSAnL15cKC4qXCkkLyBzOjpcMVw6OnAnID4+ICIkZGVwZmls ZSIKLSsgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgIDs7Ci0rCi0rbXN2Y21zeXMpCi0rICAjIFRo aXMgY2FzZSBleGlzdHMgb25seSB0byBsZXQgZGVwZW5kLm00IGRvIGl0cyB3b3JrLiAgSXQgd29y a3MgYnkKLSsgICMgbG9va2luZyBhdCB0aGUgdGV4dCBvZiB0aGlzIHNjcmlwdC4gIFRoaXMgY2Fz ZSB3aWxsIG5ldmVyIGJlIHJ1biwKLSsgICMgc2luY2UgaXQgaXMgY2hlY2tlZCBmb3IgYWJvdmUu Ci0rICBleGl0IDEKLSsgIDs7Ci0rCi0rbm9uZSkKLSsgIGV4ZWMgIiRAIgotKyAgOzsKLSsKLSsq KQotKyAgZWNobyAiVW5rbm93biBkZXBtb2RlICRkZXBtb2RlIiAxPiYyCi0rICBleGl0IDEKLSsg IDs7Ci0rZXNhYwotKwotK2V4aXQgMAotKwotKyMgTG9jYWwgVmFyaWFibGVzOgotKyMgbW9kZTog c2hlbGwtc2NyaXB0Ci0rIyBzaC1pbmRlbnRhdGlvbjogMgotKyMgZXZhbDogKGFkZC1ob29rICd3 cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQotKyMgdGltZS1zdGFtcC1zdGFydDogInNjcmlw dHZlcnNpb249IgotKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCi0r IyB0aW1lLXN0YW1wLXRpbWUtem9uZTogIlVUQyIKLSsjIHRpbWUtc3RhbXAtZW5kOiAiOyAjIFVU QyIKLSsjIEVuZDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvaW5zdGFsbC1z aCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2luc3RhbGwtc2gKLS0tLSBzb2NpLTMuMC4wXzQt cGFjay9jb25maWcvaW5zdGFsbC1zaAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvaW5zdGFsbC1zaAkyMDEwLTAxLTIzIDE0 OjQ0OjUwLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw1MjAgQEAKLSsjIS9iaW4vc2gKLSsj IGluc3RhbGwgLSBpbnN0YWxsIGEgcHJvZ3JhbSwgc2NyaXB0LCBvciBkYXRhZmlsZQotKwotK3Nj cmlwdHZlcnNpb249MjAwOS0wNC0yOC4yMTsgIyBVVEMKLSsKLSsjIFRoaXMgb3JpZ2luYXRlcyBm cm9tIFgxMVI1IChtaXQvdXRpbC9zY3JpcHRzL2luc3RhbGwuc2gpLCB3aGljaCB3YXMKLSsjIGxh dGVyIHJlbGVhc2VkIGluIFgxMVI2ICh4Yy9jb25maWcvdXRpbC9pbnN0YWxsLnNoKSB3aXRoIHRo ZQotKyMgZm9sbG93aW5nIGNvcHlyaWdodCBhbmQgbGljZW5zZS4KLSsjCi0rIyBDb3B5cmlnaHQg KEMpIDE5OTQgWCBDb25zb3J0aXVtCi0rIwotKyMgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQotKyMgb2Yg dGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNv ZnR3YXJlIiksIHRvCi0rIyBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9u LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQotKyMgcmlnaHRzIHRvIHVzZSwgY29w eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y Ci0rIyBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0 byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwotKyMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSsjCi0rIyBUaGUgYWJvdmUgY29weXJpZ2h0IG5v dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgotKyMg YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0rIwot KyMgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSsjIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotKyMgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNI QUxMIFRIRQotKyMgWCBDT05TT1JUSVVNIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT IE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTgotKyMgQU4gQUNUSU9OIE9GIENPTlRSQUNU LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDLQot KyMgVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElO IFRIRSBTT0ZUV0FSRS4KLSsjCi0rIyBFeGNlcHQgYXMgY29udGFpbmVkIGluIHRoaXMgbm90aWNl LCB0aGUgbmFtZSBvZiB0aGUgWCBDb25zb3J0aXVtIHNoYWxsIG5vdAotKyMgYmUgdXNlZCBpbiBh ZHZlcnRpc2luZyBvciBvdGhlcndpc2UgdG8gcHJvbW90ZSB0aGUgc2FsZSwgdXNlIG9yIG90aGVy IGRlYWwtCi0rIyBpbmdzIGluIHRoaXMgU29mdHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVuIGF1 dGhvcml6YXRpb24gZnJvbSB0aGUgWCBDb25zb3ItCi0rIyB0aXVtLgotKyMKLSsjCi0rIyBGU0Yg Y2hhbmdlcyB0byB0aGlzIGZpbGUgYXJlIGluIHRoZSBwdWJsaWMgZG9tYWluLgotKyMKLSsjIENh bGxpbmcgdGhpcyBzY3JpcHQgaW5zdGFsbC1zaCBpcyBwcmVmZXJyZWQgb3ZlciBpbnN0YWxsLnNo LCB0byBwcmV2ZW50Ci0rIyBgbWFrZScgaW1wbGljaXQgcnVsZXMgZnJvbSBjcmVhdGluZyBhIGZp bGUgY2FsbGVkIGluc3RhbGwgZnJvbSBpdAotKyMgd2hlbiB0aGVyZSBpcyBubyBNYWtlZmlsZS4K LSsjCi0rIyBUaGlzIHNjcmlwdCBpcyBjb21wYXRpYmxlIHdpdGggdGhlIEJTRCBpbnN0YWxsIHNj cmlwdCwgYnV0IHdhcyB3cml0dGVuCi0rIyBmcm9tIHNjcmF0Y2guCi0rCi0rbmw9JwotKycKLStJ RlM9IiAiIgkkbmwiCi0rCi0rIyBzZXQgRE9JVFBST0cgdG8gZWNobyB0byB0ZXN0IHRoaXMgc2Ny aXB0Ci0rCi0rIyBEb24ndCB1c2UgOi0gc2luY2UgNC4zQlNEIGFuZCBlYXJsaWVyIHNoZWxscyBk b24ndCBsaWtlIGl0LgotK2RvaXQ9JHtET0lUUFJPRy19Ci0raWYgdGVzdCAteiAiJGRvaXQiOyB0 aGVuCi0rICBkb2l0X2V4ZWM9ZXhlYwotK2Vsc2UKLSsgIGRvaXRfZXhlYz0kZG9pdAotK2ZpCi0r Ci0rIyBQdXQgaW4gYWJzb2x1dGUgZmlsZSBuYW1lcyBpZiB5b3UgZG9uJ3QgaGF2ZSB0aGVtIGlu IHlvdXIgcGF0aDsKLSsjIG9yIHVzZSBlbnZpcm9ubWVudCB2YXJzLgotKwotK2NoZ3JwcHJvZz0k e0NIR1JQUFJPRy1jaGdycH0KLStjaG1vZHByb2c9JHtDSE1PRFBST0ctY2htb2R9Ci0rY2hvd25w cm9nPSR7Q0hPV05QUk9HLWNob3dufQotK2NtcHByb2c9JHtDTVBQUk9HLWNtcH0KLStjcHByb2c9 JHtDUFBST0ctY3B9Ci0rbWtkaXJwcm9nPSR7TUtESVJQUk9HLW1rZGlyfQotK212cHJvZz0ke01W UFJPRy1tdn0KLStybXByb2c9JHtSTVBST0ctcm19Ci0rc3RyaXBwcm9nPSR7U1RSSVBQUk9HLXN0 cmlwfQotKwotK3Bvc2l4X2dsb2I9Jz8nCi0raW5pdGlhbGl6ZV9wb3NpeF9nbG9iPScKLSsgIHRl c3QgIiRwb3NpeF9nbG9iIiAhPSAiPyIgfHwgewotKyAgICBpZiAoc2V0IC1mKSAyPi9kZXYvbnVs bDsgdGhlbgotKyAgICAgIHBvc2l4X2dsb2I9Ci0rICAgIGVsc2UKLSsgICAgICBwb3NpeF9nbG9i PToKLSsgICAgZmkKLSsgIH0KLSsnCi0rCi0rcG9zaXhfbWtkaXI9Ci0rCi0rIyBEZXNpcmVkIG1v ZGUgb2YgaW5zdGFsbGVkIGZpbGUuCi0rbW9kZT0wNzU1Ci0rCi0rY2hncnBjbWQ9Ci0rY2htb2Rj bWQ9JGNobW9kcHJvZwotK2Nob3duY21kPQotK212Y21kPSRtdnByb2cKLStybWNtZD0iJHJtcHJv ZyAtZiIKLStzdHJpcGNtZD0KLSsKLStzcmM9Ci0rZHN0PQotK2Rpcl9hcmc9Ci0rZHN0X2FyZz0K LSsKLStjb3B5X29uX2NoYW5nZT1mYWxzZQotK25vX3RhcmdldF9kaXJlY3Rvcnk9Ci0rCi0rdXNh Z2U9IlwKLStVc2FnZTogJDAgW09QVElPTl0uLi4gWy1UXSBTUkNGSUxFIERTVEZJTEUKLSsgICBv cjogJDAgW09QVElPTl0uLi4gU1JDRklMRVMuLi4gRElSRUNUT1JZCi0rICAgb3I6ICQwIFtPUFRJ T05dLi4uIC10IERJUkVDVE9SWSBTUkNGSUxFUy4uLgotKyAgIG9yOiAkMCBbT1BUSU9OXS4uLiAt ZCBESVJFQ1RPUklFUy4uLgotKwotK0luIHRoZSAxc3QgZm9ybSwgY29weSBTUkNGSUxFIHRvIERT VEZJTEUuCi0rSW4gdGhlIDJuZCBhbmQgM3JkLCBjb3B5IGFsbCBTUkNGSUxFUyB0byBESVJFQ1RP UlkuCi0rSW4gdGhlIDR0aCwgY3JlYXRlIERJUkVDVE9SSUVTLgotKwotK09wdGlvbnM6Ci0rICAg ICAtLWhlbHAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0LgotKyAgICAgLS12ZXJzaW9u ICBkaXNwbGF5IHZlcnNpb24gaW5mbyBhbmQgZXhpdC4KLSsKLSsgIC1jICAgICAgICAgICAgKGln bm9yZWQpCi0rICAtQyAgICAgICAgICAgIGluc3RhbGwgb25seSBpZiBkaWZmZXJlbnQgKHByZXNl cnZlIHRoZSBsYXN0IGRhdGEgbW9kaWZpY2F0aW9uIHRpbWUpCi0rICAtZCAgICAgICAgICAgIGNy ZWF0ZSBkaXJlY3RvcmllcyBpbnN0ZWFkIG9mIGluc3RhbGxpbmcgZmlsZXMuCi0rICAtZyBHUk9V UCAgICAgICRjaGdycHByb2cgaW5zdGFsbGVkIGZpbGVzIHRvIEdST1VQLgotKyAgLW0gTU9ERSAg ICAgICAkY2htb2Rwcm9nIGluc3RhbGxlZCBmaWxlcyB0byBNT0RFLgotKyAgLW8gVVNFUiAgICAg ICAkY2hvd25wcm9nIGluc3RhbGxlZCBmaWxlcyB0byBVU0VSLgotKyAgLXMgICAgICAgICAgICAk c3RyaXBwcm9nIGluc3RhbGxlZCBmaWxlcy4KLSsgIC10IERJUkVDVE9SWSAgaW5zdGFsbCBpbnRv IERJUkVDVE9SWS4KLSsgIC1UICAgICAgICAgICAgcmVwb3J0IGFuIGVycm9yIGlmIERTVEZJTEUg aXMgYSBkaXJlY3RvcnkuCi0rCi0rRW52aXJvbm1lbnQgdmFyaWFibGVzIG92ZXJyaWRlIHRoZSBk ZWZhdWx0IGNvbW1hbmRzOgotKyAgQ0hHUlBQUk9HIENITU9EUFJPRyBDSE9XTlBST0cgQ01QUFJP RyBDUFBST0cgTUtESVJQUk9HIE1WUFJPRwotKyAgUk1QUk9HIFNUUklQUFJPRwotKyIKLSsKLSt3 aGlsZSB0ZXN0ICQjIC1uZSAwOyBkbwotKyAgY2FzZSAkMSBpbgotKyAgICAtYykgOzsKLSsKLSsg ICAgLUMpIGNvcHlfb25fY2hhbmdlPXRydWU7OwotKwotKyAgICAtZCkgZGlyX2FyZz10cnVlOzsK LSsKLSsgICAgLWcpIGNoZ3JwY21kPSIkY2hncnBwcm9nICQyIgotKwlzaGlmdDs7Ci0rCi0rICAg IC0taGVscCkgZWNobyAiJHVzYWdlIjsgZXhpdCAkPzs7Ci0rCi0rICAgIC1tKSBtb2RlPSQyCi0r CWNhc2UgJG1vZGUgaW4KLSsJICAqJyAnKiB8IConCScqIHwgKicKLSsnKgkgIHwgKicqJyogfCAq Jz8nKiB8IConWycqKQotKwkgICAgZWNobyAiJDA6IGludmFsaWQgbW9kZTogJG1vZGUiID4mMgot KwkgICAgZXhpdCAxOzsKLSsJZXNhYwotKwlzaGlmdDs7Ci0rCi0rICAgIC1vKSBjaG93bmNtZD0i JGNob3ducHJvZyAkMiIKLSsJc2hpZnQ7OwotKwotKyAgICAtcykgc3RyaXBjbWQ9JHN0cmlwcHJv Zzs7Ci0rCi0rICAgIC10KSBkc3RfYXJnPSQyCi0rCXNoaWZ0OzsKLSsKLSsgICAgLVQpIG5vX3Rh cmdldF9kaXJlY3Rvcnk9dHJ1ZTs7Ci0rCi0rICAgIC0tdmVyc2lvbikgZWNobyAiJDAgJHNjcmlw dHZlcnNpb24iOyBleGl0ICQ/OzsKLSsKLSsgICAgLS0pCXNoaWZ0Ci0rCWJyZWFrOzsKLSsKLSsg ICAgLSopCWVjaG8gIiQwOiBpbnZhbGlkIG9wdGlvbjogJDEiID4mMgotKwlleGl0IDE7OwotKwot KyAgICAqKSAgYnJlYWs7OwotKyAgZXNhYwotKyAgc2hpZnQKLStkb25lCi0rCi0raWYgdGVzdCAk IyAtbmUgMCAmJiB0ZXN0IC16ICIkZGlyX2FyZyRkc3RfYXJnIjsgdGhlbgotKyAgIyBXaGVuIC1k IGlzIHVzZWQsIGFsbCByZW1haW5pbmcgYXJndW1lbnRzIGFyZSBkaXJlY3RvcmllcyB0byBjcmVh dGUuCi0rICAjIFdoZW4gLXQgaXMgdXNlZCwgdGhlIGRlc3RpbmF0aW9uIGlzIGFscmVhZHkgc3Bl Y2lmaWVkLgotKyAgIyBPdGhlcndpc2UsIHRoZSBsYXN0IGFyZ3VtZW50IGlzIHRoZSBkZXN0aW5h dGlvbi4gIFJlbW92ZSBpdCBmcm9tICRALgotKyAgZm9yIGFyZwotKyAgZG8KLSsgICAgaWYgdGVz dCAtbiAiJGRzdF9hcmciOyB0aGVuCi0rICAgICAgIyAkQCBpcyBub3QgZW1wdHk6IGl0IGNvbnRh aW5zIGF0IGxlYXN0ICRhcmcuCi0rICAgICAgc2V0IGZub3JkICIkQCIgIiRkc3RfYXJnIgotKyAg ICAgIHNoaWZ0ICMgZm5vcmQKLSsgICAgZmkKLSsgICAgc2hpZnQgIyBhcmcKLSsgICAgZHN0X2Fy Zz0kYXJnCi0rICBkb25lCi0rZmkKLSsKLStpZiB0ZXN0ICQjIC1lcSAwOyB0aGVuCi0rICBpZiB0 ZXN0IC16ICIkZGlyX2FyZyI7IHRoZW4KLSsgICAgZWNobyAiJDA6IG5vIGlucHV0IGZpbGUgc3Bl Y2lmaWVkLiIgPiYyCi0rICAgIGV4aXQgMQotKyAgZmkKLSsgICMgSXQncyBPSyB0byBjYWxsIGBp bnN0YWxsLXNoIC1kJyB3aXRob3V0IGFyZ3VtZW50LgotKyAgIyBUaGlzIGNhbiBoYXBwZW4gd2hl biBjcmVhdGluZyBjb25kaXRpb25hbCBkaXJlY3Rvcmllcy4KLSsgIGV4aXQgMAotK2ZpCi0rCi0r aWYgdGVzdCAteiAiJGRpcl9hcmciOyB0aGVuCi0rICB0cmFwICcoZXhpdCAkPyk7IGV4aXQnIDEg MiAxMyAxNQotKwotKyAgIyBTZXQgdW1hc2sgc28gYXMgbm90IHRvIGNyZWF0ZSB0ZW1wcyB3aXRo IHRvby1nZW5lcm91cyBtb2Rlcy4KLSsgICMgSG93ZXZlciwgJ3N0cmlwJyByZXF1aXJlcyBib3Ro IHJlYWQgYW5kIHdyaXRlIGFjY2VzcyB0byB0ZW1wcy4KLSsgIGNhc2UgJG1vZGUgaW4KLSsgICAg IyBPcHRpbWl6ZSBjb21tb24gY2FzZXMuCi0rICAgICo2NDQpIGNwX3VtYXNrPTEzMzs7Ci0rICAg ICo3NTUpIGNwX3VtYXNrPTIyOzsKLSsKLSsgICAgKlswLTddKQotKyAgICAgIGlmIHRlc3QgLXog IiRzdHJpcGNtZCI7IHRoZW4KLSsJdV9wbHVzX3J3PQotKyAgICAgIGVsc2UKLSsJdV9wbHVzX3J3 PSclIDIwMCcKLSsgICAgICBmaQotKyAgICAgIGNwX3VtYXNrPWBleHByICcoJyA3NzcgLSAkbW9k ZSAlIDEwMDAgJyknICR1X3BsdXNfcndgOzsKLSsgICAgKikKLSsgICAgICBpZiB0ZXN0IC16ICIk c3RyaXBjbWQiOyB0aGVuCi0rCXVfcGx1c19ydz0KLSsgICAgICBlbHNlCi0rCXVfcGx1c19ydz0s dStydwotKyAgICAgIGZpCi0rICAgICAgY3BfdW1hc2s9JG1vZGUkdV9wbHVzX3J3OzsKLSsgIGVz YWMKLStmaQotKwotK2ZvciBzcmMKLStkbwotKyAgIyBQcm90ZWN0IG5hbWVzIHN0YXJ0aW5nIHdp dGggYC0nLgotKyAgY2FzZSAkc3JjIGluCi0rICAgIC0qKSBzcmM9Li8kc3JjOzsKLSsgIGVzYWMK LSsKLSsgIGlmIHRlc3QgLW4gIiRkaXJfYXJnIjsgdGhlbgotKyAgICBkc3Q9JHNyYwotKyAgICBk c3RkaXI9JGRzdAotKyAgICB0ZXN0IC1kICIkZHN0ZGlyIgotKyAgICBkc3RkaXJfc3RhdHVzPSQ/ Ci0rICBlbHNlCi0rCi0rICAgICMgV2FpdGluZyBmb3IgdGhpcyB0byBiZSBkZXRlY3RlZCBieSB0 aGUgIiRjcHByb2cgJHNyYyAkZHN0dG1wIiBjb21tYW5kCi0rICAgICMgbWlnaHQgY2F1c2UgZGly ZWN0b3JpZXMgdG8gYmUgY3JlYXRlZCwgd2hpY2ggd291bGQgYmUgZXNwZWNpYWxseSBiYWQKLSsg ICAgIyBpZiAkc3JjIChhbmQgdGh1cyAkZHN0dG1wKSBjb250YWlucyAnKicuCi0rICAgIGlmIHRl c3QgISAtZiAiJHNyYyIgJiYgdGVzdCAhIC1kICIkc3JjIjsgdGhlbgotKyAgICAgIGVjaG8gIiQw OiAkc3JjIGRvZXMgbm90IGV4aXN0LiIgPiYyCi0rICAgICAgZXhpdCAxCi0rICAgIGZpCi0rCi0r ICAgIGlmIHRlc3QgLXogIiRkc3RfYXJnIjsgdGhlbgotKyAgICAgIGVjaG8gIiQwOiBubyBkZXN0 aW5hdGlvbiBzcGVjaWZpZWQuIiA+JjIKLSsgICAgICBleGl0IDEKLSsgICAgZmkKLSsKLSsgICAg ZHN0PSRkc3RfYXJnCi0rICAgICMgUHJvdGVjdCBuYW1lcyBzdGFydGluZyB3aXRoIGAtJy4KLSsg ICAgY2FzZSAkZHN0IGluCi0rICAgICAgLSopIGRzdD0uLyRkc3Q7OwotKyAgICBlc2FjCi0rCi0r ICAgICMgSWYgZGVzdGluYXRpb24gaXMgYSBkaXJlY3RvcnksIGFwcGVuZCB0aGUgaW5wdXQgZmls ZW5hbWU7IHdvbid0IHdvcmsKLSsgICAgIyBpZiBkb3VibGUgc2xhc2hlcyBhcmVuJ3QgaWdub3Jl ZC4KLSsgICAgaWYgdGVzdCAtZCAiJGRzdCI7IHRoZW4KLSsgICAgICBpZiB0ZXN0IC1uICIkbm9f dGFyZ2V0X2RpcmVjdG9yeSI7IHRoZW4KLSsJZWNobyAiJDA6ICRkc3RfYXJnOiBJcyBhIGRpcmVj dG9yeSIgPiYyCi0rCWV4aXQgMQotKyAgICAgIGZpCi0rICAgICAgZHN0ZGlyPSRkc3QKLSsgICAg ICBkc3Q9JGRzdGRpci9gYmFzZW5hbWUgIiRzcmMiYAotKyAgICAgIGRzdGRpcl9zdGF0dXM9MAot KyAgICBlbHNlCi0rICAgICAgIyBQcmVmZXIgZGlybmFtZSwgYnV0IGZhbGwgYmFjayBvbiBhIHN1 YnN0aXR1dGUgaWYgZGlybmFtZSBmYWlscy4KLSsgICAgICBkc3RkaXI9YAotKwkoZGlybmFtZSAi JGRzdCIpIDI+L2Rldi9udWxsIHx8Ci0rCWV4cHIgWCIkZHN0IiA6ICdYXCguKlteL11cKS8vKlte L11bXi9dKi8qJCcgXHwgXAotKwkgICAgIFgiJGRzdCIgOiAnWFwoLy9cKVteL10nIFx8IFwKLSsJ ICAgICBYIiRkc3QiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSAgICAgWCIkZHN0IiA6ICdYXCgvXCkn IFx8IC4gMj4vZGV2L251bGwgfHwKLSsJZWNobyBYIiRkc3QiIHwKLSsJICAgIHNlZCAnL15YXCgu KlteL11cKVwvXC8qW14vXVteL10qXC8qJC97Ci0rCQkgICBzLy9cMS8KLSsJCSAgIHEKLSsJCSB9 Ci0rCQkgL15YXChcL1wvXClbXi9dLiovewotKwkJICAgcy8vXDEvCi0rCQkgICBxCi0rCQkgfQot KwkJIC9eWFwoXC9cL1wpJC97Ci0rCQkgICBzLy9cMS8KLSsJCSAgIHEKLSsJCSB9Ci0rCQkgL15Y XChcL1wpLiovewotKwkJICAgcy8vXDEvCi0rCQkgICBxCi0rCQkgfQotKwkJIHMvLiovLi87IHEn Ci0rICAgICAgYAotKwotKyAgICAgIHRlc3QgLWQgIiRkc3RkaXIiCi0rICAgICAgZHN0ZGlyX3N0 YXR1cz0kPwotKyAgICBmaQotKyAgZmkKLSsKLSsgIG9ic29sZXRlX21rZGlyX3VzZWQ9ZmFsc2UK LSsKLSsgIGlmIHRlc3QgJGRzdGRpcl9zdGF0dXMgIT0gMDsgdGhlbgotKyAgICBjYXNlICRwb3Np eF9ta2RpciBpbgotKyAgICAgICcnKQotKwkjIENyZWF0ZSBpbnRlcm1lZGlhdGUgZGlycyB1c2lu ZyBtb2RlIDc1NSBhcyBtb2RpZmllZCBieSB0aGUgdW1hc2suCi0rCSMgVGhpcyBpcyBsaWtlIEZy ZWVCU0QgJ2luc3RhbGwnIGFzIG9mIDE5OTctMTAtMjguCi0rCXVtYXNrPWB1bWFza2AKLSsJY2Fz ZSAkc3RyaXBjbWQuJHVtYXNrIGluCi0rCSAgIyBPcHRpbWl6ZSBjb21tb24gY2FzZXMuCi0rCSAg KlsyMzY3XVsyMzY3XSkgbWtkaXJfdW1hc2s9JHVtYXNrOzsKLSsJICAuKjBbMDJdWzAyXSB8IC5b MDJdWzAyXSB8IC5bMDJdKSBta2Rpcl91bWFzaz0yMjs7Ci0rCi0rCSAgKlswLTddKQotKwkgICAg bWtkaXJfdW1hc2s9YGV4cHIgJHVtYXNrICsgMjIgXAotKwkgICAgICAtICR1bWFzayAlIDEwMCAl IDQwICsgJHVtYXNrICUgMjAgXAotKwkgICAgICAtICR1bWFzayAlIDEwICUgNCArICR1bWFzayAl IDIKLSsJICAgIGA7OwotKwkgICopIG1rZGlyX3VtYXNrPSR1bWFzayxnby13OzsKLSsJZXNhYwot KwotKwkjIFdpdGggLWQsIGNyZWF0ZSB0aGUgbmV3IGRpcmVjdG9yeSB3aXRoIHRoZSB1c2VyLXNw ZWNpZmllZCBtb2RlLgotKwkjIE90aGVyd2lzZSwgcmVseSBvbiAkbWtkaXJfdW1hc2suCi0rCWlm IHRlc3QgLW4gIiRkaXJfYXJnIjsgdGhlbgotKwkgIG1rZGlyX21vZGU9LW0kbW9kZQotKwllbHNl Ci0rCSAgbWtkaXJfbW9kZT0KLSsJZmkKLSsKLSsJcG9zaXhfbWtkaXI9ZmFsc2UKLSsJY2FzZSAk dW1hc2sgaW4KLSsJICAqWzEyMzU2N11bMC03XVswLTddKQotKwkgICAgIyBQT1NJWCBta2RpciAt cCBzZXRzIHUrd3ggYml0cyByZWdhcmRsZXNzIG9mIHVtYXNrLCB3aGljaAotKwkgICAgIyBpcyBp bmNvbXBhdGlibGUgd2l0aCBGcmVlQlNEICdpbnN0YWxsJyB3aGVuICh1bWFzayAmIDMwMCkgIT0g MC4KLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIHRtcGRpcj0ke1RNUERJUi0vdG1wfS9pbnMkUkFO RE9NLSQkCi0rCSAgICB0cmFwICdyZXQ9JD87IHJtZGlyICIkdG1wZGlyL2QiICIkdG1wZGlyIiAy Pi9kZXYvbnVsbDsgZXhpdCAkcmV0JyAwCi0rCi0rCSAgICBpZiAodW1hc2sgJG1rZGlyX3VtYXNr ICYmCi0rCQlleGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiR0bXBkaXIvZCIpID4v ZGV2L251bGwgMj4mMQotKwkgICAgdGhlbgotKwkgICAgICBpZiB0ZXN0IC16ICIkZGlyX2FyZyIg fHwgewotKwkJICAgIyBDaGVjayBmb3IgUE9TSVggaW5jb21wYXRpYmlsaXRpZXMgd2l0aCAtbS4K LSsJCSAgICMgSFAtVVggMTEuMjMgYW5kIElSSVggNi41IG1rZGlyIC1tIC1wIHNldHMgZ3JvdXAt IG9yCi0rCQkgICAjIG90aGVyLXdyaXRlYWJsZSBiaXQgb2YgcGFyZW50IGRpcmVjdG9yeSB3aGVu IGl0IHNob3VsZG4ndC4KLSsJCSAgICMgRnJlZUJTRCA2LjEgbWtkaXIgLW0gLXAgc2V0cyBtb2Rl IG9mIGV4aXN0aW5nIGRpcmVjdG9yeS4KLSsJCSAgIGxzX2xkX3RtcGRpcj1gbHMgLWxkICIkdG1w ZGlyImAKLSsJCSAgIGNhc2UgJGxzX2xkX3RtcGRpciBpbgotKwkJICAgICBkPz8/Py0/ci0qKSBk aWZmZXJlbnRfbW9kZT03MDA7OwotKwkJICAgICBkPz8/Py0/LS0qKSBkaWZmZXJlbnRfbW9kZT03 NTU7OwotKwkJICAgICAqKSBmYWxzZTs7Ci0rCQkgICBlc2FjICYmCi0rCQkgICAkbWtkaXJwcm9n IC1tJGRpZmZlcmVudF9tb2RlIC1wIC0tICIkdG1wZGlyIiAmJiB7Ci0rCQkgICAgIGxzX2xkX3Rt cGRpcl8xPWBscyAtbGQgIiR0bXBkaXIiYAotKwkJICAgICB0ZXN0ICIkbHNfbGRfdG1wZGlyIiA9 ICIkbHNfbGRfdG1wZGlyXzEiCi0rCQkgICB9Ci0rCQkgfQotKwkgICAgICB0aGVuIHBvc2l4X21r ZGlyPToKLSsJICAgICAgZmkKLSsJICAgICAgcm1kaXIgIiR0bXBkaXIvZCIgIiR0bXBkaXIiCi0r CSAgICBlbHNlCi0rCSAgICAgICMgUmVtb3ZlIGFueSBkaXJzIGxlZnQgYmVoaW5kIGJ5IGFuY2ll bnQgbWtkaXIgaW1wbGVtZW50YXRpb25zLgotKwkgICAgICBybWRpciAuLyRta2Rpcl9tb2RlIC4v LXAgLi8tLSAyPi9kZXYvbnVsbAotKwkgICAgZmkKLSsJICAgIHRyYXAgJycgMDs7Ci0rCWVzYWM7 OwotKyAgICBlc2FjCi0rCi0rICAgIGlmCi0rICAgICAgJHBvc2l4X21rZGlyICYmICgKLSsJdW1h c2sgJG1rZGlyX3VtYXNrICYmCi0rCSRkb2l0X2V4ZWMgJG1rZGlycHJvZyAkbWtkaXJfbW9kZSAt cCAtLSAiJGRzdGRpciIKLSsgICAgICApCi0rICAgIHRoZW4gOgotKyAgICBlbHNlCi0rCi0rICAg ICAgIyBUaGUgdW1hc2sgaXMgcmlkaWN1bG91cywgb3IgbWtkaXIgZG9lcyBub3QgY29uZm9ybSB0 byBQT1NJWCwKLSsgICAgICAjIG9yIGl0IGZhaWxlZCBwb3NzaWJseSBkdWUgdG8gYSByYWNlIGNv bmRpdGlvbi4gIENyZWF0ZSB0aGUKLSsgICAgICAjIGRpcmVjdG9yeSB0aGUgc2xvdyB3YXksIHN0 ZXAgYnkgc3RlcCwgY2hlY2tpbmcgZm9yIHJhY2VzIGFzIHdlIGdvLgotKwotKyAgICAgIGNhc2Ug JGRzdGRpciBpbgotKwkvKikgcHJlZml4PScvJzs7Ci0rCS0qKSBwcmVmaXg9Jy4vJzs7Ci0rCSop ICBwcmVmaXg9Jyc7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICBldmFsICIkaW5pdGlhbGl6ZV9w b3NpeF9nbG9iIgotKwotKyAgICAgIG9JRlM9JElGUwotKyAgICAgIElGUz0vCi0rICAgICAgJHBv c2l4X2dsb2Igc2V0IC1mCi0rICAgICAgc2V0IGZub3JkICRkc3RkaXIKLSsgICAgICBzaGlmdAot KyAgICAgICRwb3NpeF9nbG9iIHNldCArZgotKyAgICAgIElGUz0kb0lGUwotKwotKyAgICAgIHBy ZWZpeGVzPQotKwotKyAgICAgIGZvciBkCi0rICAgICAgZG8KLSsJdGVzdCAteiAiJGQiICYmIGNv bnRpbnVlCi0rCi0rCXByZWZpeD0kcHJlZml4JGQKLSsJaWYgdGVzdCAtZCAiJHByZWZpeCI7IHRo ZW4KLSsJICBwcmVmaXhlcz0KLSsJZWxzZQotKwkgIGlmICRwb3NpeF9ta2RpcjsgdGhlbgotKwkg ICAgKHVtYXNrPSRta2Rpcl91bWFzayAmJgotKwkgICAgICRkb2l0X2V4ZWMgJG1rZGlycHJvZyAk bWtkaXJfbW9kZSAtcCAtLSAiJGRzdGRpciIpICYmIGJyZWFrCi0rCSAgICAjIERvbid0IGZhaWwg aWYgdHdvIGluc3RhbmNlcyBhcmUgcnVubmluZyBjb25jdXJyZW50bHkuCi0rCSAgICB0ZXN0IC1k ICIkcHJlZml4IiB8fCBleGl0IDEKLSsJICBlbHNlCi0rCSAgICBjYXNlICRwcmVmaXggaW4KLSsJ ICAgICAgKlwnKikgcXByZWZpeD1gZWNobyAiJHByZWZpeCIgfCBzZWQgInMvJy8nXFxcXFxcXFwn Jy9nImA7OwotKwkgICAgICAqKSBxcHJlZml4PSRwcmVmaXg7OwotKwkgICAgZXNhYwotKwkgICAg cHJlZml4ZXM9IiRwcmVmaXhlcyAnJHFwcmVmaXgnIgotKwkgIGZpCi0rCWZpCi0rCXByZWZpeD0k cHJlZml4LwotKyAgICAgIGRvbmUKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkcHJlZml4ZXMiOyB0 aGVuCi0rCSMgRG9uJ3QgZmFpbCBpZiB0d28gaW5zdGFuY2VzIGFyZSBydW5uaW5nIGNvbmN1cnJl bnRseS4KLSsJKHVtYXNrICRta2Rpcl91bWFzayAmJgotKwkgZXZhbCAiXCRkb2l0X2V4ZWMgXCRt a2RpcnByb2cgJHByZWZpeGVzIikgfHwKLSsJICB0ZXN0IC1kICIkZHN0ZGlyIiB8fCBleGl0IDEK LSsJb2Jzb2xldGVfbWtkaXJfdXNlZD10cnVlCi0rICAgICAgZmkKLSsgICAgZmkKLSsgIGZpCi0r Ci0rICBpZiB0ZXN0IC1uICIkZGlyX2FyZyI7IHRoZW4KLSsgICAgeyB0ZXN0IC16ICIkY2hvd25j bWQiIHx8ICRkb2l0ICRjaG93bmNtZCAiJGRzdCI7IH0gJiYKLSsgICAgeyB0ZXN0IC16ICIkY2hn cnBjbWQiIHx8ICRkb2l0ICRjaGdycGNtZCAiJGRzdCI7IH0gJiYKLSsgICAgeyB0ZXN0ICIkb2Jz b2xldGVfbWtkaXJfdXNlZCRjaG93bmNtZCRjaGdycGNtZCIgPSBmYWxzZSB8fAotKyAgICAgIHRl c3QgLXogIiRjaG1vZGNtZCIgfHwgJGRvaXQgJGNobW9kY21kICRtb2RlICIkZHN0IjsgfSB8fCBl eGl0IDEKLSsgIGVsc2UKLSsKLSsgICAgIyBNYWtlIGEgY291cGxlIG9mIHRlbXAgZmlsZSBuYW1l cyBpbiB0aGUgcHJvcGVyIGRpcmVjdG9yeS4KLSsgICAgZHN0dG1wPSRkc3RkaXIvX2luc3QuJCRf Ci0rICAgIHJtdG1wPSRkc3RkaXIvX3JtLiQkXwotKwotKyAgICAjIFRyYXAgdG8gY2xlYW4gdXAg dGhvc2UgdGVtcCBmaWxlcyBhdCBleGl0LgotKyAgICB0cmFwICdyZXQ9JD87IHJtIC1mICIkZHN0 dG1wIiAiJHJtdG1wIiAmJiBleGl0ICRyZXQnIDAKLSsKLSsgICAgIyBDb3B5IHRoZSBmaWxlIG5h bWUgdG8gdGhlIHRlbXAgbmFtZS4KLSsgICAgKHVtYXNrICRjcF91bWFzayAmJiAkZG9pdF9leGVj ICRjcHByb2cgIiRzcmMiICIkZHN0dG1wIikgJiYKLSsKLSsgICAgIyBhbmQgc2V0IGFueSBvcHRp b25zOyBkbyBjaG1vZCBsYXN0IHRvIHByZXNlcnZlIHNldHVpZCBiaXRzLgotKyAgICAjCi0rICAg ICMgSWYgYW55IG9mIHRoZXNlIGZhaWwsIHdlIGFib3J0IHRoZSB3aG9sZSB0aGluZy4gIElmIHdl IHdhbnQgdG8KLSsgICAgIyBpZ25vcmUgZXJyb3JzIGZyb20gYW55IG9mIHRoZXNlLCBqdXN0IG1h a2Ugc3VyZSBub3QgdG8gaWdub3JlCi0rICAgICMgZXJyb3JzIGZyb20gdGhlIGFib3ZlICIkZG9p dCAkY3Bwcm9nICRzcmMgJGRzdHRtcCIgY29tbWFuZC4KLSsgICAgIwotKyAgICB7IHRlc3QgLXog IiRjaG93bmNtZCIgfHwgJGRvaXQgJGNob3duY21kICIkZHN0dG1wIjsgfSAmJgotKyAgICB7IHRl c3QgLXogIiRjaGdycGNtZCIgfHwgJGRvaXQgJGNoZ3JwY21kICIkZHN0dG1wIjsgfSAmJgotKyAg ICB7IHRlc3QgLXogIiRzdHJpcGNtZCIgfHwgJGRvaXQgJHN0cmlwY21kICIkZHN0dG1wIjsgfSAm JgotKyAgICB7IHRlc3QgLXogIiRjaG1vZGNtZCIgfHwgJGRvaXQgJGNobW9kY21kICRtb2RlICIk ZHN0dG1wIjsgfSAmJgotKwotKyAgICAjIElmIC1DLCBkb24ndCBib3RoZXIgdG8gY29weSBpZiBp dCB3b3VsZG4ndCBjaGFuZ2UgdGhlIGZpbGUuCi0rICAgIGlmICRjb3B5X29uX2NoYW5nZSAmJgot KyAgICAgICBvbGQ9YExDX0FMTD1DIGxzIC1kbEwgIiRkc3QiCTI+L2Rldi9udWxsYCAmJgotKyAg ICAgICBuZXc9YExDX0FMTD1DIGxzIC1kbEwgIiRkc3R0bXAiCTI+L2Rldi9udWxsYCAmJgotKwot KyAgICAgICBldmFsICIkaW5pdGlhbGl6ZV9wb3NpeF9nbG9iIiAmJgotKyAgICAgICAkcG9zaXhf Z2xvYiBzZXQgLWYgJiYKLSsgICAgICAgc2V0IFggJG9sZCAmJiBvbGQ9OiQyOiQ0OiQ1OiQ2ICYm Ci0rICAgICAgIHNldCBYICRuZXcgJiYgbmV3PTokMjokNDokNTokNiAmJgotKyAgICAgICAkcG9z aXhfZ2xvYiBzZXQgK2YgJiYKLSsKLSsgICAgICAgdGVzdCAiJG9sZCIgPSAiJG5ldyIgJiYKLSsg ICAgICAgJGNtcHByb2cgIiRkc3QiICIkZHN0dG1wIiA+L2Rldi9udWxsIDI+JjEKLSsgICAgdGhl bgotKyAgICAgIHJtIC1mICIkZHN0dG1wIgotKyAgICBlbHNlCi0rICAgICAgIyBSZW5hbWUgdGhl IGZpbGUgdG8gdGhlIHJlYWwgZGVzdGluYXRpb24uCi0rICAgICAgJGRvaXQgJG12Y21kIC1mICIk ZHN0dG1wIiAiJGRzdCIgMj4vZGV2L251bGwgfHwKLSsKLSsgICAgICAjIFRoZSByZW5hbWUgZmFp bGVkLCBwZXJoYXBzIGJlY2F1c2UgbXYgY2FuJ3QgcmVuYW1lIHNvbWV0aGluZyBlbHNlCi0rICAg ICAgIyB0byBpdHNlbGYsIG9yIHBlcmhhcHMgYmVjYXVzZSBtdiBpcyBzbyBhbmNpZW50IHRoYXQg aXQgZG9lcyBub3QKLSsgICAgICAjIHN1cHBvcnQgLWYuCi0rICAgICAgewotKwkjIE5vdyByZW1v dmUgb3IgbW92ZSBhc2lkZSBhbnkgb2xkIGZpbGUgYXQgZGVzdGluYXRpb24gbG9jYXRpb24uCi0r CSMgV2UgdHJ5IHRoaXMgdHdvIHdheXMgc2luY2Ugcm0gY2FuJ3QgdW5saW5rIGl0c2VsZiBvbiBz b21lCi0rCSMgc3lzdGVtcyBhbmQgdGhlIGRlc3RpbmF0aW9uIGZpbGUgbWlnaHQgYmUgYnVzeSBm b3Igb3RoZXIKLSsJIyByZWFzb25zLiAgSW4gdGhpcyBjYXNlLCB0aGUgZmluYWwgY2xlYW51cCBt aWdodCBmYWlsIGJ1dCB0aGUgbmV3Ci0rCSMgZmlsZSBzaG91bGQgc3RpbGwgaW5zdGFsbCBzdWNj ZXNzZnVsbHkuCi0rCXsKLSsJICB0ZXN0ICEgLWYgIiRkc3QiIHx8Ci0rCSAgJGRvaXQgJHJtY21k IC1mICIkZHN0IiAyPi9kZXYvbnVsbCB8fAotKwkgIHsgJGRvaXQgJG12Y21kIC1mICIkZHN0IiAi JHJtdG1wIiAyPi9kZXYvbnVsbCAmJgotKwkgICAgeyAkZG9pdCAkcm1jbWQgLWYgIiRybXRtcCIg Mj4vZGV2L251bGw7IDo7IH0KLSsJICB9IHx8Ci0rCSAgeyBlY2hvICIkMDogY2Fubm90IHVubGlu ayBvciByZW5hbWUgJGRzdCIgPiYyCi0rCSAgICAoZXhpdCAxKTsgZXhpdCAxCi0rCSAgfQotKwl9 ICYmCi0rCi0rCSMgTm93IHJlbmFtZSB0aGUgZmlsZSB0byB0aGUgcmVhbCBkZXN0aW5hdGlvbi4K LSsJJGRvaXQgJG12Y21kICIkZHN0dG1wIiAiJGRzdCIKLSsgICAgICB9Ci0rICAgIGZpIHx8IGV4 aXQgMQotKwotKyAgICB0cmFwICcnIDAKLSsgIGZpCi0rZG9uZQotKwotKyMgTG9jYWwgdmFyaWFi bGVzOgotKyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQot KyMgdGltZS1zdGFtcC1zdGFydDogInNjcmlwdHZlcnNpb249IgotKyMgdGltZS1zdGFtcC1mb3Jt YXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCi0rIyB0aW1lLXN0YW1wLXRpbWUtem9uZTogIlVUQyIK LSsjIHRpbWUtc3RhbXAtZW5kOiAiOyAjIFVUQyIKLSsjIEVuZDoKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9jb25maWcvbGlidG9vbC5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2xp YnRvb2wubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbGlidG9vbC5tNAkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25m aWcvbGlidG9vbC5tNAkyMDEwLTAxLTIzIDE0OjQ0OjQ0LjAwMDAwMDAwMCArMDEwMAotQEAgLTAs MCArMSw3MzYwIEBACi0rIyBsaWJ0b29sLm00IC0gQ29uZmlndXJlIGxpYnRvb2wgZm9yIHRoZSBo b3N0IHN5c3RlbS4gLSotQXV0b2NvbmYtKi0KLSsjCi0rIyAgIENvcHlyaWdodCAoQykgMTk5Niwg MTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNSwKLSsjICAgICAg ICAgICAgICAgICAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgotKyMgICBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0LCAxOTk2Ci0rIwotKyMgVGhpcyBm aWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMK LSsjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsIHdp dGggb3Igd2l0aG91dAotKyMgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBp cyBwcmVzZXJ2ZWQuCi0rCi0rbTRfZGVmaW5lKFtfTFRfQ09QWUlOR10sIFtkbmwKLSsjICAgQ29w eXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0 LCAyMDA1LAotKyMgICAgICAgICAgICAgICAgIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyAgIFdyaXR0ZW4gYnkgR29yZG9uIE1hdHppZ2tlaXQsIDE5 OTYKLSsjCi0rIyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBMaWJ0b29sLgotKyMKLSsjIEdO VSBMaWJ0b29sIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v cgotKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMKLSsjIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAyIG9mCi0rIyB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKLSsjIGlmIHlvdSBkaXN0cmlidXRlIHRoaXMg ZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSBvciBsaWJyYXJ5IHRoYXQKLSsjIGlzIGJ1aWx0IHVz aW5nIEdOVSBMaWJ0b29sLCB5b3UgbWF5IGluY2x1ZGUgdGhpcyBmaWxlIHVuZGVyIHRoZQotKyMg c2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0 IHByb2dyYW0uCi0rIwotKyMgR05VIExpYnRvb2wgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBh bG9uZyB3aXRoIEdOVSBMaWJ0b29sOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgYSBj b3B5Ci0rIyBjYW4gYmUgZG93bmxvYWRlZCBmcm9tIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy9ncGwuaHRtbCwgb3IKLSsjIG9idGFpbmVkIGJ5IHdyaXRpbmcgdG8gdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLiwKLSsjIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotK10pCi0rCi0rIyBzZXJpYWwgNTYgTFRfSU5J VAotKwotKwotKyMgTFRfUFJFUkVRKFZFUlNJT04pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSsj IENvbXBsYWluIGFuZCBleGl0IGlmIHRoaXMgbGlidG9vbCB2ZXJzaW9uIGlzIGxlc3MgdGhhdCBW RVJTSU9OLgotK200X2RlZnVuKFtMVF9QUkVSRVFdLAotK1ttNF9pZihtNF92ZXJzaW9uX2NvbXBh cmUobTRfZGVmbihbTFRfUEFDS0FHRV9WRVJTSU9OXSksIFskMV0pLCAtMSwKLSsgICAgICAgW200 X2RlZmF1bHQoWyQzXSwKLSsJCSAgIFttNF9mYXRhbChbTGlidG9vbCB2ZXJzaW9uICQxIG9yIGhp Z2hlciBpcyByZXF1aXJlZF0sCi0rCQkgICAgICAgICAgICAgNjMpXSldLAotKyAgICAgICBbJDJd KV0pCi0rCi0rCi0rIyBfTFRfQ0hFQ0tfQlVJTERESVIKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLQot KyMgQ29tcGxhaW4gaWYgdGhlIGFic29sdXRlIGJ1aWxkIGRpcmVjdG9yeSBuYW1lIGNvbnRhaW5z IHVudXN1YWwgY2hhcmFjdGVycwotK200X2RlZnVuKFtfTFRfQ0hFQ0tfQlVJTERESVJdLAotK1tj YXNlIGBwd2RgIGluCi0rICAqXCAqIHwgKlwJKikKLSsgICAgQUNfTVNHX1dBUk4oW0xpYnRvb2wg ZG9lcyBub3QgY29wZSB3ZWxsIHdpdGggd2hpdGVzcGFjZSBpbiBgcHdkYF0pIDs7Ci0rZXNhYwot K10pCi0rCi0rCi0rIyBMVF9JTklUKFtPUFRJT05TXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLQot K0FDX0RFRlVOKFtMVF9JTklUXSwKLStbQUNfUFJFUkVRKFsyLjU4XSlkbmwgV2UgdXNlIEFDX0lO Q0xVREVTX0RFRkFVTFQKLStBQ19CRUZPUkUoWyQwXSwgW0xUX0xBTkddKWRubAotK0FDX0JFRk9S RShbJDBdLCBbTFRfT1VUUFVUXSlkbmwKLStBQ19CRUZPUkUoWyQwXSwgW0xURExfSU5JVF0pZG5s Ci0rbTRfcmVxdWlyZShbX0xUX0NIRUNLX0JVSUxERElSXSlkbmwKLSsKLStkbmwgQXV0b2NvbmYg ZG9lc24ndCBjYXRjaCB1bmV4cGFuZGVkIExUXyBtYWNyb3MgYnkgZGVmYXVsdDoKLSttNF9wYXR0 ZXJuX2ZvcmJpZChbXl8/TFRfW0EtWl9dKyRdKWRubAotK200X3BhdHRlcm5fYWxsb3coW14oX0xU X0VPRnxMVF9ETEdMT0JBTHxMVF9ETExBWllfT1JfTk9XfExUX01VTFRJX01PRFVMRSkkXSlkbmwK LStkbmwgYWNsb2NhbCBkb2Vzbid0IHB1bGwgbHRvcHRpb25zLm00LCBsdHN1Z2FyLm00LCBvciBs dHZlcnNpb24ubTQKLStkbmwgdW5sZXNzIHdlIHJlcXVpcmUgYW4gQUNfREVGVU5lZCBtYWNybzoK LStBQ19SRVFVSVJFKFtMVE9QVElPTlNfVkVSU0lPTl0pZG5sCi0rQUNfUkVRVUlSRShbTFRTVUdB Ul9WRVJTSU9OXSlkbmwKLStBQ19SRVFVSVJFKFtMVFZFUlNJT05fVkVSU0lPTl0pZG5sCi0rQUNf UkVRVUlSRShbTFRPQlNPTEVURV9WRVJTSU9OXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfUFJPR19M VE1BSU5dKWRubAotKwotK2RubCBQYXJzZSBPUFRJT05TCi0rX0xUX1NFVF9PUFRJT05TKFskMF0s IFskMV0pCi0rCi0rIyBUaGlzIGNhbiBiZSB1c2VkIHRvIHJlYnVpbGQgbGlidG9vbCB3aGVuIG5l ZWRlZAotK0xJQlRPT0xfREVQUz0iJGx0bWFpbiIKLSsKLSsjIEFsd2F5cyB1c2Ugb3VyIG93biBs aWJ0b29sLgotK0xJQlRPT0w9JyQoU0hFTEwpICQodG9wX2J1aWxkZGlyKS9saWJ0b29sJwotK0FD X1NVQlNUKExJQlRPT0wpZG5sCi0rCi0rX0xUX1NFVFVQCi0rCi0rIyBPbmx5IGV4cGFuZCBvbmNl OgotK200X2RlZmluZShbTFRfSU5JVF0pCi0rXSkjIExUX0lOSVQKLSsKLSsjIE9sZCBuYW1lczoK LStBVV9BTElBUyhbQUNfUFJPR19MSUJUT09MXSwgW0xUX0lOSVRdKQotK0FVX0FMSUFTKFtBTV9Q Uk9HX0xJQlRPT0xdLCBbTFRfSU5JVF0pCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21w YXRpYmlsaXR5OgotK2RubCBBQ19ERUZVTihbQUNfUFJPR19MSUJUT09MXSwgW10pCi0rZG5sIEFD X0RFRlVOKFtBTV9QUk9HX0xJQlRPT0xdLCBbXSkKLSsKLSsKLSsjIF9MVF9DQ19CQVNFTkFNRShD QykKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENhbGN1bGF0ZSBjY19iYXNlbmFtZS4gIFNr aXAga25vd24gY29tcGlsZXIgd3JhcHBlcnMgYW5kIGNyb3NzLXByZWZpeC4KLSttNF9kZWZ1bihb X0xUX0NDX0JBU0VOQU1FXSwKLStbZm9yIGNjX3RlbXAgaW4gJDEiIjsgZG8KLSsgIGNhc2UgJGNj X3RlbXAgaW4KLSsgICAgY29tcGlsZSB8ICpbW1xcL11dY29tcGlsZSB8IGNjYWNoZSB8ICpbW1xc L11dY2NhY2hlICkgOzsKLSsgICAgZGlzdGNjIHwgKltbXFwvXV1kaXN0Y2MgfCBwdXJpZnkgfCAq W1tcXC9dXXB1cmlmeSApIDs7Ci0rICAgIFwtKikgOzsKLSsgICAgKikgYnJlYWs7OwotKyAgZXNh YwotK2RvbmUKLStjY19iYXNlbmFtZT1gJEVDSE8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUu Ki8lJScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKLStdKQotKwotKwotKyMgX0xUX0ZJTEVVVElM U19ERUZBVUxUUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgSXQgaXMgb2theSB0byB1 c2UgdGhlc2UgZmlsZSBjb21tYW5kcyBhbmQgYXNzdW1lIHRoZXkgaGF2ZSBiZWVuIHNldAotKyMg c2Vuc2libHkgYWZ0ZXIgYG00X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKScuCi0r bTRfZGVmdW4oW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdLAotK1s6ICR7Q1A9ImNwIC1mIn0KLSs6 ICR7TVY9Im12IC1mIn0KLSs6ICR7Uk09InJtIC1mIn0KLStdKSMgX0xUX0ZJTEVVVElMU19ERUZB VUxUUwotKwotKwotKyMgX0xUX1NFVFVQCi0rIyAtLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX1NF VFVQXSwKLStbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAotK0FDX1JFUVVJUkUo W0FDX0NBTk9OSUNBTF9CVUlMRF0pZG5sCi0rX0xUX0RFQ0woW10sIFtob3N0X2FsaWFzXSwgWzBd LCBbVGhlIGhvc3Qgc3lzdGVtXSlkbmwKLStfTFRfREVDTChbXSwgW2hvc3RdLCBbMF0pZG5sCi0r X0xUX0RFQ0woW10sIFtob3N0X29zXSwgWzBdKWRubAotK2RubAotK19MVF9ERUNMKFtdLCBbYnVp bGRfYWxpYXNdLCBbMF0sIFtUaGUgYnVpbGQgc3lzdGVtXSlkbmwKLStfTFRfREVDTChbXSwgW2J1 aWxkXSwgWzBdKWRubAotK19MVF9ERUNMKFtdLCBbYnVpbGRfb3NdLCBbMF0pZG5sCi0rZG5sCi0r QUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCi0rQUNfUkVRVUlSRShbTFRfUEFUSF9MRF0pZG5s Ci0rQUNfUkVRVUlSRShbTFRfUEFUSF9OTV0pZG5sCi0rZG5sCi0rQUNfUkVRVUlSRShbQUNfUFJP R19MTl9TXSlkbmwKLSt0ZXN0IC16ICIkTE5fUyIgJiYgTE5fUz0ibG4gLXMiCi0rX0xUX0RFQ0wo W10sIFtMTl9TXSwgWzFdLCBbV2hldGhlciB3ZSBuZWVkIHNvZnQgb3IgaGFyZCBsaW5rc10pZG5s Ci0rZG5sCi0rQUNfUkVRVUlSRShbTFRfQ01EX01BWF9MRU5dKWRubAotK19MVF9ERUNMKFtvYmpl eHRdLCBbYWNfb2JqZXh0XSwgWzBdLCBbT2JqZWN0IGZpbGUgc3VmZml4IChub3JtYWxseSAibyIp XSlkbmwKLStfTFRfREVDTChbXSwgW2V4ZWV4dF0sIFswXSwgW0V4ZWN1dGFibGUgZmlsZSBzdWZm aXggKG5vcm1hbGx5ICIiKV0pZG5sCi0rZG5sCi0rbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19E RUZBVUxUU10pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0NIRUNLX1NIRUxMX0ZFQVRVUkVTXSlkbmwK LSttNF9yZXF1aXJlKFtfTFRfQ01EX1JFTE9BRF0pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0NIRUNL X01BR0lDX01FVEhPRF0pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0NNRF9PTERfQVJDSElWRV0pZG5s Ci0rbTRfcmVxdWlyZShbX0xUX0NNRF9HTE9CQUxfU1lNQk9MU10pZG5sCi0rCi0rX0xUX0NPTkZJ R19MSUJUT09MX0lOSVQoWwotKyMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNl dCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKLSsjIGNvbW1hbmRzIHRocm91Z2ggd2l0aG91 dCByZW1vdmFsIG9mIFwgZXNjYXBlcyBJTklULgotK2lmIHRlc3QgLW4gIlwke1pTSF9WRVJTSU9O K3NldH0iIDsgdGhlbgotKyAgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZmkKLStdKQotK2lmIHRl c3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCi0rICAgc2V0b3B0IE5PX0dMT0JfU1VC U1QKLStmaQotKwotK19MVF9DSEVDS19PQkpESVIKLSsKLSttNF9yZXF1aXJlKFtfTFRfVEFHX0NP TVBJTEVSXSlkbmwKLStfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSAotKwotK2Nhc2UgJGhvc3Rfb3Mg aW4KLSthaXgzKikKLSsgICMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0ND IGNvbGxlY3QyIHByb2dyYW0uICBGb3Igc29tZQotKyAgIyByZWFzb24sIGlmIHdlIHNldCB0aGUg Q09MTEVDVF9OQU1FUyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHByb2JsZW1zCi0rICAjIHZh bmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCi0rICBpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3Nl dH0iICE9IFhzZXQ7IHRoZW4KLSsgICAgQ09MTEVDVF9OQU1FUz0KLSsgICAgZXhwb3J0IENPTExF Q1RfTkFNRVMKLSsgIGZpCi0rICA7OwotK2VzYWMKLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24gdGhh dCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCi0rIyBtZXRh Y2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3Ry aW5ncy4KLStzZWRfcXVvdGVfc3Vic3Q9J3MvXChbWyJgJFxcXV1cKS9cXFwxL2cnCi0rCi0rIyBT YW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCi0rZG91 YmxlX3F1b3RlX3N1YnN0PSdzL1woW1siYFxcXV1cKS9cXFwxL2cnCi0rCi0rIyBTZWQgc3Vic3Rp dHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNoZWxsIHZhcmlhYmxlIGlu IGEKLSsjIGRvdWJsZV9xdW90ZV9zdWJzdCdlZCBzdHJpbmcuCi0rZGVsYXlfdmFyaWFibGVfc3Vi c3Q9J3MvXFxcXFxcXFxcXFwkL1xcXFxcXCQvZycKLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24gdG8g ZGVsYXkgZXhwYW5zaW9uIG9mIGFuIGVzY2FwZWQgc2luZ2xlIHF1b3RlLgotK2RlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdD0ncy8nXCcnLydcJ1xcXFxcXFwnXCcnL2cnCi0rCi0rIyBTZWQgc3Vic3Rp dHV0aW9uIHRvIGF2b2lkIGFjY2lkZW50YWwgZ2xvYmJpbmcgaW4gZXZhbGVkIGV4cHJlc3Npb25z Ci0rbm9fZ2xvYl9zdWJzdD0ncy9cKi9cXFwqL2cnCi0rCi0rIyBHbG9iYWwgdmFyaWFibGVzOgot K29maWxlPWxpYnRvb2wKLStjYW5fYnVpbGRfc2hhcmVkPXllcwotKwotKyMgQWxsIGtub3duIGxp bmtlcnMgcmVxdWlyZSBhIGAuYScgYXJjaGl2ZSBmb3Igc3RhdGljIGxpbmtpbmcgKGV4Y2VwdCBN U1ZDLAotKyMgd2hpY2ggbmVlZHMgJy5saWInKS4KLStsaWJleHQ9YQotKwotK3dpdGhfZ251X2xk PSIkbHRfY3ZfcHJvZ19nbnVfbGQiCi0rCi0rb2xkX0NDPSIkQ0MiCi0rb2xkX0NGTEFHUz0iJENG TEFHUyIKLSsKLSsjIFNldCBzYW5lIGRlZmF1bHRzIGZvciB2YXJpb3VzIHZhcmlhYmxlcwotK3Rl c3QgLXogIiRDQyIgJiYgQ0M9Y2MKLSt0ZXN0IC16ICIkTFRDQyIgJiYgTFRDQz0kQ0MKLSt0ZXN0 IC16ICIkTFRDRkxBR1MiICYmIExUQ0ZMQUdTPSRDRkxBR1MKLSt0ZXN0IC16ICIkTEQiICYmIExE PWxkCi0rdGVzdCAteiAiJGFjX29iamV4dCIgJiYgYWNfb2JqZXh0PW8KLSsKLStfTFRfQ0NfQkFT RU5BTUUoWyRjb21waWxlcl0pCi0rCi0rIyBPbmx5IHBlcmZvcm0gdGhlIGNoZWNrIGZvciBmaWxl LCBpZiB0aGUgY2hlY2sgbWV0aG9kIHJlcXVpcmVzIGl0Ci0rdGVzdCAteiAiJE1BR0lDX0NNRCIg JiYgTUFHSUNfQ01EPWZpbGUKLStjYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgotK2ZpbGVf bWFnaWMqKQotKyAgaWYgdGVzdCAiJGZpbGVfbWFnaWNfY21kIiA9ICckTUFHSUNfQ01EJzsgdGhl bgotKyAgICBfTFRfUEFUSF9NQUdJQwotKyAgZmkKLSsgIDs7Ci0rZXNhYwotKwotKyMgVXNlIEMg Zm9yIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gaW4gdGhlIGxpYnRvb2wgc2NyaXB0Ci0rTFRf U1VQUE9SVEVEX1RBRyhbQ0NdKQotK19MVF9MQU5HX0NfQ09ORklHCi0rX0xUX0xBTkdfREVGQVVM VF9DT05GSUcKLStfTFRfQ09ORklHX0NPTU1BTkRTCi0rXSkjIF9MVF9TRVRVUAotKwotKwotKyMg X0xUX1BST0dfTFRNQUlOCi0rIyAtLS0tLS0tLS0tLS0tLS0KLSsjIE5vdGUgdGhhdCB0aGlzIGNv ZGUgaXMgY2FsbGVkIGJvdGggZnJvbSBgY29uZmlndXJlJywgYW5kIGBjb25maWcuc3RhdHVzJwot KyMgbm93IHRoYXQgd2UgdXNlIEFDX0NPTkZJR19DT01NQU5EUyB0byBnZW5lcmF0ZSBsaWJ0b29s LiAgTm90YWJseSwKLSsjIGBjb25maWcuc3RhdHVzJyBoYXMgbm8gdmFsdWUgZm9yIGFjX2F1eF9k aXIgdW5sZXNzIHdlIGFyZSB1c2luZyBBdXRvbWFrZSwKLSsjIHNvIHdlIHBhc3MgYSBjb3B5IGFs b25nIHRvIG1ha2Ugc3VyZSBpdCBoYXMgYSBzZW5zaWJsZSB2YWx1ZSBhbnl3YXkuCi0rbTRfZGVm dW4oW19MVF9QUk9HX0xUTUFJTl0sCi0rW200X2lmZGVmKFtBQ19SRVFVSVJFX0FVWF9GSUxFXSwg W0FDX1JFUVVJUkVfQVVYX0ZJTEUoW2x0bWFpbi5zaF0pXSlkbmwKLStfTFRfQ09ORklHX0xJQlRP T0xfSU5JVChbYWNfYXV4X2Rpcj0nJGFjX2F1eF9kaXInXSkKLStsdG1haW49IiRhY19hdXhfZGly L2x0bWFpbi5zaCIKLStdKSMgX0xUX1BST0dfTFRNQUlOCi0rCi0rCi0rIyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotKyMjIEFjY3VtdWxhdGUgY29kZSBmb3IgY3Jl YXRpbmcgbGlidG9vbC4gIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tICMjCi0rCi0rIyBTbyB0aGF0IHdlIGNhbiByZWNyZWF0ZSBhIGZ1bGwgbGlidG9vbCBzY3Jp cHQgaW5jbHVkaW5nIGFkZGl0aW9uYWwKLSsjIHRhZ3MsIHdlIGFjY3VtdWxhdGUgdGhlIGNodW5r cyBvZiBjb2RlIHRvIHNlbmQgdG8gQUNfQ09ORklHX0NPTU1BTkRTCi0rIyBpbiBtYWNyb3MgYW5k IHRoZW4gbWFrZSBhIHNpbmdsZSBjYWxsIGF0IHRoZSBlbmQgdXNpbmcgdGhlIGBsaWJ0b29sJwot KyMgbGFiZWwuCi0rCi0rCi0rIyBfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbSU5JVC1DT01NQU5E U10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBSZWdp c3RlciBJTklULUNPTU1BTkRTIHRvIGJlIHBhc3NlZCB0byBBQ19DT05GSUdfQ09NTUFORFMgbGF0 ZXIuCi0rbTRfZGVmaW5lKFtfTFRfQ09ORklHX0xJQlRPT0xfSU5JVF0sCi0rW200X2lmdmFsKFsk MV0sCi0rICAgICAgICAgIFttNF9hcHBlbmQoW19MVF9PVVRQVVRfTElCVE9PTF9JTklUXSwKLSsg ICAgICAgICAgICAgICAgICAgICBbJDEKLStdKV0pXSkKLSsKLSsjIEluaXRpYWxpemUuCi0rbTRf ZGVmaW5lKFtfTFRfT1VUUFVUX0xJQlRPT0xfSU5JVF0pCi0rCi0rCi0rIyBfTFRfQ09ORklHX0xJ QlRPT0woW0NPTU1BTkRTXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMg UmVnaXN0ZXIgQ09NTUFORFMgdG8gYmUgcGFzc2VkIHRvIEFDX0NPTkZJR19DT01NQU5EUyBsYXRl ci4KLSttNF9kZWZpbmUoW19MVF9DT05GSUdfTElCVE9PTF0sCi0rW200X2lmdmFsKFskMV0sCi0r ICAgICAgICAgIFttNF9hcHBlbmQoW19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU10sCi0rICAg ICAgICAgICAgICAgICAgICAgWyQxCi0rXSldKV0pCi0rCi0rIyBJbml0aWFsaXplLgotK200X2Rl ZmluZShbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTXSkKLSsKLSsKLSsjIF9MVF9DT05GSUdf U0FWRV9DT01NQU5EUyhbQ09NTUFORFNdLCBbSU5JVF9DT01NQU5EU10pCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZnVuKFtf TFRfQ09ORklHX1NBVkVfQ09NTUFORFNdLAotK1tfTFRfQ09ORklHX0xJQlRPT0woWyQxXSkKLStf TFRfQ09ORklHX0xJQlRPT0xfSU5JVChbJDJdKQotK10pCi0rCi0rCi0rIyBfTFRfRk9STUFUX0NP TU1FTlQoW0NPTU1FTlRdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEFk ZCBsZWFkaW5nIGNvbW1lbnQgbWFya3MgdG8gdGhlIHN0YXJ0IG9mIGVhY2ggbGluZSwgYW5kIGEg dHJhaWxpbmcKLSsjIGZ1bGwtc3RvcCB0byB0aGUgd2hvbGUgY29tbWVudCBpZiBvbmUgaXMgbm90 IHByZXNlbnQgYWxyZWFkeS4KLSttNF9kZWZpbmUoW19MVF9GT1JNQVRfQ09NTUVOVF0sCi0rW200 X2lmdmFsKFskMV0sIFsKLSttNF9icGF0c3Vic3QoW200X2JwYXRzdWJzdChbJDFdLCBbXiAqXSwg WyMgXSldLAotKyAgICAgICAgICAgICAgW1snYCRcXV0sIFtcXFwmXSldbTRfYm1hdGNoKFskMV0s IFtbIT8uXSRdLCBbXSwgWy5dKQotKyldKQotKwotKwotKwotKyMjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSAjIwotKyMjIEZJWE1FOiBFbGltaW5hdGUgVkFSTkFNRSAjIwotKyMjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSAjIwotKwotKwotKyMgX0xUX0RFQ0woW0NPTkZJR05BTUVdLCBWQVJO QU1FLCBWQUxVRSwgW0RFU0NSSVBUSU9OXSwgW0lTLVRBR0dFRD9dKQotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot KyMgQ09ORklHTkFNRSBpcyB0aGUgbmFtZSBnaXZlbiB0byB0aGUgdmFsdWUgaW4gdGhlIGxpYnRv b2wgc2NyaXB0LgotKyMgVkFSTkFNRSBpcyB0aGUgKGJhc2UpIG5hbWUgdXNlZCBpbiB0aGUgY29u ZmlndXJlIHNjcmlwdC4KLSsjIFZBTFVFIG1heSBiZSAwLCAxIG9yIDIgZm9yIGEgY29tcHV0ZWQg cXVvdGUgZXNjYXBlZCB2YWx1ZSBiYXNlZCBvbgotKyMgVkFSTkFNRS4gIEFueSBvdGhlciB2YWx1 ZSB3aWxsIGJlIHVzZWQgZGlyZWN0bHkuCi0rbTRfZGVmaW5lKFtfTFRfREVDTF0sCi0rW2x0X2lm X2FwcGVuZF91bmlxKFtsdF9kZWNsX3Zhcm5hbWVzXSwgWyQyXSwgWywgXSwKLSsgICAgW2x0X2Rp Y3RfYWRkX3N1YmtleShbbHRfZGVjbF9kaWN0XSwgWyQyXSwgW2xpYnRvb2xfbmFtZV0sCi0rCVtt NF9pZnZhbChbJDFdLCBbJDFdLCBbJDJdKV0pCi0rICAgIGx0X2RpY3RfYWRkX3N1YmtleShbbHRf ZGVjbF9kaWN0XSwgWyQyXSwgW3ZhbHVlXSwgWyQzXSkKLSsgICAgbTRfaWZ2YWwoWyQ0XSwKLSsJ W2x0X2RpY3RfYWRkX3N1YmtleShbbHRfZGVjbF9kaWN0XSwgWyQyXSwgW2Rlc2NyaXB0aW9uXSwg WyQ0XSldKQotKyAgICBsdF9kaWN0X2FkZF9zdWJrZXkoW2x0X2RlY2xfZGljdF0sIFskMl0sCi0r CVt0YWdnZWQ/XSwgW200X2lmdmFsKFskNV0sIFt5ZXNdLCBbbm9dKV0pXSkKLStdKQotKwotKwot KyMgX0xUX1RBR0RFQ0woW0NPTkZJR05BTUVdLCBWQVJOQU1FLCBWQUxVRSwgW0RFU0NSSVBUSU9O XSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rbTRfZGVmaW5lKFtfTFRfVEFHREVDTF0sIFtfTFRfREVDTChbJDFdLCBbJDJdLCBb JDNdLCBbJDRdLCBbeWVzXSldKQotKwotKwotKyMgbHRfZGVjbF90YWdfdmFybmFtZXMoW1NFUEFS QVRPUl0sIFtWQVJOQU1FMS4uLl0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZpbmUoW2x0X2RlY2xfdGFnX3Zhcm5hbWVzXSwKLStb X2x0X2RlY2xfZmlsdGVyKFt0YWdnZWQ/XSwgW3llc10sICRAKV0pCi0rCi0rCi0rIyBfbHRfZGVj bF9maWx0ZXIoU1VCS0VZLCBWQUxVRSwgW1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4uXSkKLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot K200X2RlZmluZShbX2x0X2RlY2xfZmlsdGVyXSwKLStbbTRfY2FzZShbJCNdLAotKyAgWzBdLCBb bTRfZmF0YWwoWyQwOiB0b28gZmV3IGFyZ3VtZW50czogJCNdKV0sCi0rICBbMV0sIFttNF9mYXRh bChbJDA6IHRvbyBmZXcgYXJndW1lbnRzOiAkIzogJDFdKV0sCi0rICBbMl0sIFtsdF9kaWN0X2Zp bHRlcihbbHRfZGVjbF9kaWN0XSwgWyQxXSwgWyQyXSwgW10sIGx0X2RlY2xfdmFybmFtZXMpXSwK LSsgIFszXSwgW2x0X2RpY3RfZmlsdGVyKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbJDJdLCBbJDNd LCBsdF9kZWNsX3Zhcm5hbWVzKV0sCi0rICBbbHRfZGljdF9maWx0ZXIoW2x0X2RlY2xfZGljdF0s ICRAKV0pW11kbmwKLStdKQotKwotKwotKyMgbHRfZGVjbF9xdW90ZV92YXJuYW1lcyhbU0VQQVJB VE9SXSwgW1ZBUk5BTUUxLi4uXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtsdF9kZWNsX3F1b3RlX3Zhcm5hbWVzXSwK LStbX2x0X2RlY2xfZmlsdGVyKFt2YWx1ZV0sIFsxXSwgJEApXSkKLSsKLSsKLSsjIGx0X2RlY2xf ZHF1b3RlX3Zhcm5hbWVzKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQotKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFts dF9kZWNsX2RxdW90ZV92YXJuYW1lc10sCi0rW19sdF9kZWNsX2ZpbHRlcihbdmFsdWVdLCBbMl0s ICRAKV0pCi0rCi0rCi0rIyBsdF9kZWNsX3Zhcm5hbWVzX3RhZ2dlZChbU0VQQVJBVE9SXSwgW1ZB Uk5BTUUxLi4uXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotK200X2RlZmluZShbbHRfZGVjbF92YXJuYW1lc190YWdnZWRdLAotK1ttNF9h c3NlcnQoWyQjIDw9IDJdKWRubAotK18kMChtNF9xdW90ZShtNF9kZWZhdWx0KFskMV0sIFtbLCBd XSkpLAotKyAgICBtNF9pZnZhbChbJDJdLCBbWyQyXV0sIFttNF9kcXVvdGUobHRfZGVjbF90YWdf dmFybmFtZXMpXSksCi0rICAgIG00X3NwbGl0KG00X25vcm1hbGl6ZShtNF9xdW90ZShfTFRfVEFH UykpLCBbIF0pKV0pCi0rbTRfZGVmaW5lKFtfbHRfZGVjbF92YXJuYW1lc190YWdnZWRdLAotK1tt NF9pZnZhbChbJDNdLCBbbHRfY29tYmluZShbJDFdLCBbJDJdLCBbX10sICQzKV0pXSkKLSsKLSsK LSsjIGx0X2RlY2xfYWxsX3Zhcm5hbWVzKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQotKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVm aW5lKFtsdF9kZWNsX2FsbF92YXJuYW1lc10sCi0rW18kMChtNF9xdW90ZShtNF9kZWZhdWx0KFsk MV0sIFtbLCBdXSkpLAotKyAgICAgbTRfaWYoWyQyXSwgW10sCi0rCSAgIG00X3F1b3RlKGx0X2Rl Y2xfdmFybmFtZXMpLAotKwltNF9xdW90ZShtNF9zaGlmdCgkQCkpKSlbXWRubAotK10pCi0rbTRf ZGVmaW5lKFtfbHRfZGVjbF9hbGxfdmFybmFtZXNdLAotK1tsdF9qb2luKCRALCBsdF9kZWNsX3Zh cm5hbWVzX3RhZ2dlZChbJDFdLAotKwkJCWx0X2RlY2xfdGFnX3Zhcm5hbWVzKFtbLCBdXSwgbTRf c2hpZnQoJEApKSkpZG5sCi0rXSkKLSsKLSsKLSsjIF9MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkUo W1ZBUk5BTUVdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBR dW90ZSBhIHZhcmlhYmxlIHZhbHVlLCBhbmQgZm9yd2FyZCBpdCB0byBgY29uZmlnLnN0YXR1cycg c28gdGhhdCBpdHMKLSsjIGRlY2xhcmF0aW9uIHRoZXJlIHdpbGwgaGF2ZSB0aGUgc2FtZSB2YWx1 ZSBhcyBpbiBgY29uZmlndXJlJy4gIFZBUk5BTUUKLSsjIG11c3QgaGF2ZSBhIHNpbmdsZSBxdW90 ZSBkZWxpbWl0ZWQgdmFsdWUgZm9yIHRoaXMgdG8gd29yay4KLSttNF9kZWZpbmUoW19MVF9DT05G SUdfU1RBVFVTX0RFQ0xBUkVdLAotK1skMT0nYCRFQ0hPICJYJF1bJDEiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCddKQotKwotKwotKyMgX0xUX0NPTkZJR19TVEFUVVNf REVDTEFSQVRJT05TCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFdlIGRl bGltaXQgbGlidG9vbCBjb25maWcgdmFyaWFibGVzIHdpdGggc2luZ2xlIHF1b3Rlcywgc28gd2hl bgotKyMgd2Ugd3JpdGUgdGhlbSB0byBjb25maWcuc3RhdHVzLCB3ZSBoYXZlIHRvIGJlIHN1cmUg dG8gcXVvdGUgYWxsCi0rIyBlbWJlZGRlZCBzaW5nbGUgcXVvdGVzIHByb3Blcmx5LiAgSW4gY29u ZmlndXJlLCB0aGlzIG1hY3JvIGV4cGFuZHMKLSsjIGVhY2ggdmFyaWFibGUgZGVjbGFyZWQgd2l0 aCBfTFRfREVDTCAoYW5kIF9MVF9UQUdERUNMKSBpbnRvOgotKyMKLSsjICAgIDx2YXI+PSdgJEVD SE8gIlgkPHZhcj4iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStt NF9kZWZ1bihbX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSQVRJT05TXSwKLStbbTRfZm9yZWFjaChb X2x0X3Zhcl0sIG00X3F1b3RlKGx0X2RlY2xfYWxsX3Zhcm5hbWVzKSwKLSsgICAgW200X24oW19M VF9DT05GSUdfU1RBVFVTX0RFQ0xBUkUoX2x0X3ZhcildKV0pXSkKLSsKLSsKLSsjIF9MVF9MSUJU T09MX1RBR1MKLSsjIC0tLS0tLS0tLS0tLS0tLS0KLSsjIE91dHB1dCBjb21tZW50IGFuZCBsaXN0 IG9mIHRhZ3Mgc3VwcG9ydGVkIGJ5IHRoZSBzY3JpcHQKLSttNF9kZWZ1bihbX0xUX0xJQlRPT0xf VEFHU10sCi0rW19MVF9GT1JNQVRfQ09NTUVOVChbVGhlIG5hbWVzIG9mIHRoZSB0YWdnZWQgY29u ZmlndXJhdGlvbnMgc3VwcG9ydGVkIGJ5IHRoaXMgc2NyaXB0XSlkbmwKLSthdmFpbGFibGVfdGFn cz0iX0xUX1RBR1MiZG5sCi0rXSkKLSsKLSsKLSsjIF9MVF9MSUJUT09MX0RFQ0xBUkUoVkFSTkFN RSwgW1RBR10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRXh0 cmFjdCB0aGUgZGljdGlvbmFyeSB2YWx1ZXMgZm9yIFZBUk5BTUUgKG9wdGlvbmFsbHkgd2l0aCBU QUcpIGFuZAotKyMgZXhwYW5kIHRvIGEgY29tbWVudGVkIHNoZWxsIHZhcmlhYmxlIHNldHRpbmc6 Ci0rIwotKyMgICAgIyBTb21lIGNvbW1lbnQgYWJvdXQgd2hhdCBWQVIgaXMgZm9yLgotKyMgICAg dmlzaWJsZV9uYW1lPSRsdF9pbnRlcm5hbF9uYW1lCi0rbTRfZGVmaW5lKFtfTFRfTElCVE9PTF9E RUNMQVJFXSwKLStbX0xUX0ZPUk1BVF9DT01NRU5UKG00X3F1b3RlKGx0X2RpY3RfZmV0Y2goW2x0 X2RlY2xfZGljdF0sIFskMV0sCi0rCQkJCQkgICBbZGVzY3JpcHRpb25dKSkpW11kbmwKLSttNF9w dXNoZGVmKFtfbGlidG9vbF9uYW1lXSwKLSsgICAgbTRfcXVvdGUobHRfZGljdF9mZXRjaChbbHRf ZGVjbF9kaWN0XSwgWyQxXSwgW2xpYnRvb2xfbmFtZV0pKSlbXWRubAotK200X2Nhc2UobTRfcXVv dGUobHRfZGljdF9mZXRjaChbbHRfZGVjbF9kaWN0XSwgWyQxXSwgW3ZhbHVlXSkpLAotKyAgICBb MF0sIFtfbGlidG9vbF9uYW1lPVskXSQxXSwKLSsgICAgWzFdLCBbX2xpYnRvb2xfbmFtZT0kbHRf W10kMV0sCi0rICAgIFsyXSwgW19saWJ0b29sX25hbWU9JGx0X1tdJDFdLAotKyAgICBbX2xpYnRv b2xfbmFtZT1sdF9kaWN0X2ZldGNoKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbdmFsdWVdKV0pW11k bmwKLSttNF9pZnZhbChbJDJdLCBbXyQyXSlbXW00X3BvcGRlZihbX2xpYnRvb2xfbmFtZV0pW11k bmwKLStdKQotKwotKwotKyMgX0xUX0xJQlRPT0xfQ09ORklHX1ZBUlMKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rIyBQcm9kdWNlIGNvbW1lbnRlZCBkZWNsYXJhdGlvbnMgb2Ygbm9uLXRh Z2dlZCBsaWJ0b29sIGNvbmZpZyB2YXJpYWJsZXMKLSsjIHN1aXRhYmxlIGZvciBpbnNlcnRpb24g aW4gdGhlIExJQlRPT0wgQ09ORklHIHNlY3Rpb24gb2YgdGhlIGBsaWJ0b29sJwotKyMgc2NyaXB0 LiAgVGFnZ2VkIGxpYnRvb2wgY29uZmlnIHZhcmlhYmxlcyAoZXZlbiBmb3IgdGhlIExJQlRPT0wg Q09ORklHCi0rIyBzZWN0aW9uKSBhcmUgcHJvZHVjZWQgYnkgX0xUX0xJQlRPT0xfVEFHX1ZBUlMu Ci0rbTRfZGVmdW4oW19MVF9MSUJUT09MX0NPTkZJR19WQVJTXSwKLStbbTRfZm9yZWFjaChbX2x0 X3Zhcl0sCi0rICAgIG00X3F1b3RlKF9sdF9kZWNsX2ZpbHRlcihbdGFnZ2VkP10sIFtub10sIFtd LCBsdF9kZWNsX3Zhcm5hbWVzKSksCi0rICAgIFttNF9uKFtfTFRfTElCVE9PTF9ERUNMQVJFKF9s dF92YXIpXSldKV0pCi0rCi0rCi0rIyBfTFRfTElCVE9PTF9UQUdfVkFSUyhUQUcpCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtfTFRfTElCVE9PTF9UQUdfVkFSU10s Ci0rW200X2ZvcmVhY2goW19sdF92YXJdLCBtNF9xdW90ZShsdF9kZWNsX3RhZ192YXJuYW1lcyks Ci0rICAgIFttNF9uKFtfTFRfTElCVE9PTF9ERUNMQVJFKF9sdF92YXIsIFskMV0pXSldKV0pCi0r Ci0rCi0rIyBfTFRfVEFHVkFSKFZBUk5BTUUsIFtUQUdOQU1FXSkKLSsjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbX0xUX1RBR1ZBUl0sIFttNF9pZnZhbChbJDJd LCBbJDFfJDJdLCBbJDFdKV0pCi0rCi0rCi0rIyBfTFRfQ09ORklHX0NPTU1BTkRTCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tCi0rIyBTZW5kIGFjY3VtdWxhdGVkIG91dHB1dCB0byAkQ09ORklHX1NU QVRVUy4gIFRoYW5rcyB0byB0aGUgbGlzdHMgb2YKLSsjIHZhcmlhYmxlcyBmb3Igc2luZ2xlIGFu ZCBkb3VibGUgcXVvdGUgZXNjYXBpbmcgd2Ugc2F2ZWQgZnJvbSBjYWxscwotKyMgdG8gX0xUX0RF Q0wsIHdlIGNhbiBwdXQgcXVvdGUgZXNjYXBlZCB2YXJpYWJsZXMgZGVjbGFyYXRpb25zCi0rIyBp bnRvIGBjb25maWcuc3RhdHVzJywgYW5kIHRoZW4gdGhlIHNoZWxsIGNvZGUgdG8gcXVvdGUgZXNj YXBlIHRoZW0gaW4KLSsjIGZvciBsb29wcyBpbiBgY29uZmlnLnN0YXR1cycuICBGaW5hbGx5LCBh bnkgYWRkaXRpb25hbCBjb2RlIGFjY3VtdWxhdGVkCi0rIyBmcm9tIGNhbGxzIHRvIF9MVF9DT05G SUdfTElCVE9PTF9JTklUIGlzIGV4cGFuZGVkLgotK200X2RlZnVuKFtfTFRfQ09ORklHX0NPTU1B TkRTXSwKLStbQUNfUFJPVklERV9JRkVMU0UoW0xUX09VVFBVVF0sCi0rCWRubCBJZiB0aGUgbGli dG9vbCBnZW5lcmF0aW9uIGNvZGUgaGFzIGJlZW4gcGxhY2VkIGluICRDT05GSUdfTFQsCi0rCWRu bCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0IGFsbCBvdmVyIGFnYWluIGludG8gY29uZmlnLnN0 YXR1cywKLSsJZG5sIHRoZW4gd2Ugd2lsbCBoYXZlIGNvbmZpZy5zdGF0dXMgcnVuICRDT05GSUdf TFQgbGF0ZXIsIHNvIGl0Ci0rCWRubCBuZWVkcyB0byBrbm93IHdoYXQgbmFtZSBpcyBzdG9yZWQg dGhlcmU6Ci0rICAgICAgICBbQUNfQ09ORklHX0NPTU1BTkRTKFtsaWJ0b29sXSwKLSsgICAgICAg ICAgICBbJFNIRUxMICRDT05GSUdfTFQgfHwgQVNfRVhJVCgxKV0sIFtDT05GSUdfTFQ9JyRDT05G SUdfTFQnXSldLAotKyAgICBkbmwgSWYgdGhlIGxpYnRvb2wgZ2VuZXJhdGlvbiBjb2RlIGlzIGRl c3RpbmVkIGZvciBjb25maWcuc3RhdHVzLAotKyAgICBkbmwgZXhwYW5kIHRoZSBhY2N1bXVsYXRl ZCBjb21tYW5kcyBhbmQgaW5pdCBjb2RlIG5vdzoKLSsgICAgW0FDX0NPTkZJR19DT01NQU5EUyhb bGlidG9vbF0sCi0rICAgICAgICBbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTXSwgW19MVF9P VVRQVVRfTElCVE9PTF9DT01NQU5EU19JTklUXSldKQotK10pI19MVF9DT05GSUdfQ09NTUFORFMK LSsKLSsKLSsjIEluaXRpYWxpemUuCi0rbTRfZGVmaW5lKFtfTFRfT1VUUFVUX0xJQlRPT0xfQ09N TUFORFNfSU5JVF0sCi0rWwotKwotKyMgVGhlIEhQLVVYIGtzaCBhbmQgUE9TSVggc2hlbGwgcHJp bnQgdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc3Rkb3V0Ci0rIyBpZiBDRFBBVEggaXMgc2V0Lgot Kyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKLSsKLStzZWRf cXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3QnCi0rZG91YmxlX3F1b3RlX3N1YnN0PSckZG91 YmxlX3F1b3RlX3N1YnN0JwotK2RlbGF5X3ZhcmlhYmxlX3N1YnN0PSckZGVsYXlfdmFyaWFibGVf c3Vic3QnCi0rX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSQVRJT05TCi0rTFRDQz0nJExUQ0MnCi0r TFRDRkxBR1M9JyRMVENGTEFHUycKLStjb21waWxlcj0nJGNvbXBpbGVyX0RFRkFVTFQnCi0rCi0r IyBRdW90ZSBldmFsZWQgc3RyaW5ncy4KLStmb3IgdmFyIGluIGx0X2RlY2xfYWxsX3Zhcm5hbWVz KFtbIFwKLStdXSwgbHRfZGVjbF9xdW90ZV92YXJuYW1lcyk7IGRvCi0rICAgIGNhc2UgXGBldmFs IFxcXFxcJEVDSE8gIlhcXFxcXCRcJHZhciJcYCBpbgotKyAgICAqW1tcXFxcXFxcYFxcIlxcXCRd XSopCi0rICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxcXGBcXFwkRUNITyBcXCJYXFxcJFwk dmFyXFwiIHwgXFxcJFhzZWQgLWUgXFwiXFxcJHNlZF9xdW90ZV9zdWJzdFxcIlxcXGBcXFxcXFwi IgotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxcXCRc JHZhclxcXFxcXCIiCi0rICAgICAgOzsKLSsgICAgZXNhYwotK2RvbmUKLSsKLSsjIERvdWJsZS1x dW90ZSBkb3VibGUtZXZhbGVkIHN0cmluZ3MuCi0rZm9yIHZhciBpbiBsdF9kZWNsX2FsbF92YXJu YW1lcyhbWyBcCi0rXV0sIGx0X2RlY2xfZHF1b3RlX3Zhcm5hbWVzKTsgZG8KLSsgICAgY2FzZSBc YGV2YWwgXFxcXFwkRUNITyAiWFxcXFxcJFwkdmFyIlxgIGluCi0rICAgICpbW1xcXFxcXFxgXFwi XFxcJF1dKikKLSsgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlhc XFwkXCR2YXJcXCIgfCBcXFwkWHNlZCAtZSBcXCJcXFwkZG91YmxlX3F1b3RlX3N1YnN0XFwiIC1l IFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxcJGRlbGF5X3ZhcmlhYmxlX3N1YnN0 XFwiXFxcYFxcXFxcXCIiCi0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBldmFsICJsdF9cJHZh cj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rZG9uZQot KwotKyMgRml4LXVwIGZhbGxiYWNrIGVjaG8gaWYgaXQgd2FzIG1hbmdsZWQgYnkgdGhlIGFib3Zl IHF1b3RpbmcgcnVsZXMuCi0rY2FzZSBcJGx0X0VDSE8gaW4KLSsqJ1xcXFskXTAgLS1mYWxsYmFj ay1lY2hvIicpZG5sICIKLSsgIGx0X0VDSE89XGBcJEVDSE8gIlhcJGx0X0VDSE8iIHwgXCRYc2Vk IC1lICdzL1xcXFxcXFxcXFxcXFxcXFskXTAgLS1mYWxsYmFjay1lY2hvIlxbJF0vXFskXTAgLS1m YWxsYmFjay1lY2hvIi8nXGAKLSsgIDs7Ci0rZXNhYwotKwotK19MVF9PVVRQVVRfTElCVE9PTF9J TklUCi0rXSkKLSsKLSsKLSsjIExUX09VVFBVVAotKyMgLS0tLS0tLS0tCi0rIyBUaGlzIG1hY3Jv IGFsbG93cyBlYXJseSBnZW5lcmF0aW9uIG9mIHRoZSBsaWJ0b29sIHNjcmlwdCAoYmVmb3JlCi0r IyBBQ19PVVRQVVQgaXMgY2FsbGVkKSwgaW5jYXNlIGl0IGlzIHVzZWQgaW4gY29uZmlndXJlIGZv ciBjb21waWxhdGlvbgotKyMgdGVzdHMuCi0rQUNfREVGVU4oW0xUX09VVFBVVF0sCi0rWzogJHtD T05GSUdfTFQ9Li9jb25maWcubHR9Ci0rQUNfTVNHX05PVElDRShbY3JlYXRpbmcgJENPTkZJR19M VF0pCi0rY2F0ID4iJENPTkZJR19MVCIgPDxfTFRFT0YKLSsjISAkU0hFTEwKLSsjIEdlbmVyYXRl ZCBieSAkYXNfbWUuCi0rIyBSdW4gdGhpcyBmaWxlIHRvIHJlY3JlYXRlIGEgbGlidG9vbCBzdHVi IHdpdGggdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4KLSsKLStsdF9jbF9zaWxlbnQ9ZmFsc2UK LStTSEVMTD1cJHtDT05GSUdfU0hFTEwtJFNIRUxMfQotK19MVEVPRgotKwotK2NhdCA+PiIkQ09O RklHX0xUIiA8PFxfTFRFT0YKLStBU19TSEVMTF9TQU5JVElaRQotK19BU19QUkVQQVJFCi0rCi0r ZXhlYyBBU19NRVNTQUdFX0ZEPiYxCi0rZXhlYyBBU19NRVNTQUdFX0xPR19GRD4+Y29uZmlnLmxv ZwotK3sKLSsgIGVjaG8KLSsgIEFTX0JPWChbUnVubmluZyAkYXNfbWUuXSkKLSt9ID4mQVNfTUVT U0FHRV9MT0dfRkQKLSsKLStsdF9jbF9oZWxwPSJcCi0rXGAkYXNfbWUnIGNyZWF0ZXMgYSBsb2Nh bCBsaWJ0b29sIHN0dWIgZnJvbSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLAotK2ZvciB1c2Ug aW4gZnVydGhlciBjb25maWd1cmUgdGltZSB0ZXN0cyBiZWZvcmUgdGhlIHJlYWwgbGlidG9vbCBp cwotK2dlbmVyYXRlZC4KLSsKLStVc2FnZTogJFswXSBbW09QVElPTlNdXQotKwotKyAgLWgsIC0t aGVscCAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0Ci0rICAtViwgLS12ZXJzaW9uICAg cHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAotKyAgLXEsIC0tcXVpZXQgICAgIGRvIG5v dCBwcmludCBwcm9ncmVzcyBtZXNzYWdlcwotKyAgLWQsIC0tZGVidWcgICAgIGRvbid0IHJlbW92 ZSB0ZW1wb3JhcnkgZmlsZXMKLSsKLStSZXBvcnQgYnVncyB0byA8YnVnLWxpYnRvb2xAZ251Lm9y Zz4uIgotKwotK2x0X2NsX3ZlcnNpb249IlwKLSttNF9pZnNldChbQUNfUEFDS0FHRV9OQU1FXSwg W0FDX1BBQ0tBR0VfTkFNRSBdKWNvbmZpZy5sdFtdZG5sCi0rbTRfaWZzZXQoW0FDX1BBQ0tBR0Vf VkVSU0lPTl0sIFsgQUNfUEFDS0FHRV9WRVJTSU9OXSkKLStjb25maWd1cmVkIGJ5ICRbMF0sIGdl bmVyYXRlZCBieSBtNF9QQUNLQUdFX1NUUklORy4KLSsKLStDb3B5cmlnaHQgKEMpIDIwMDggRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rVGhpcyBjb25maWcubHQgc2NyaXB0IGlzIGZy ZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLStnaXZlcyB1bmxpbWl0 ZWQgcGVybWlzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4iCi0rCi0rd2hp bGUgdGVzdCAkWyNdICE9IDAKLStkbwotKyAgY2FzZSAkWzFdIGluCi0rICAgIC0tdmVyc2lvbiB8 IC0tdiogfCAtViApCi0rICAgICAgZWNobyAiJGx0X2NsX3ZlcnNpb24iOyBleGl0IDAgOzsKLSsg ICAgLS1oZWxwIHwgLS1oKiB8IC1oICkKLSsgICAgICBlY2hvICIkbHRfY2xfaGVscCI7IGV4aXQg MCA7OwotKyAgICAtLWRlYnVnIHwgLS1kKiB8IC1kICkKLSsgICAgICBkZWJ1Zz06IDs7Ci0rICAg IC0tcXVpZXQgfCAtLXEqIHwgLS1zaWxlbnQgfCAtLXMqIHwgLXEgKQotKyAgICAgIGx0X2NsX3Np bGVudD06IDs7Ci0rCi0rICAgIC0qKSBBQ19NU0dfRVJST1IoW3VucmVjb2duaXplZCBvcHRpb246 ICRbMV0KLStUcnkgXGAkWzBdIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXSkgOzsKLSsK LSsgICAgKikgQUNfTVNHX0VSUk9SKFt1bnJlY29nbml6ZWQgYXJndW1lbnQ6ICRbMV0KLStUcnkg XGAkWzBdIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXSkgOzsKLSsgIGVzYWMKLSsgIHNo aWZ0Ci0rZG9uZQotKwotK2lmICRsdF9jbF9zaWxlbnQ7IHRoZW4KLSsgIGV4ZWMgQVNfTUVTU0FH RV9GRD4vZGV2L251bGwKLStmaQotK19MVEVPRgotKwotK2NhdCA+PiIkQ09ORklHX0xUIiA8PF9M VEVPRgotK19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU19JTklUCi0rX0xURU9GCi0rCi0rY2F0 ID4+IiRDT05GSUdfTFQiIDw8XF9MVEVPRgotK0FDX01TR19OT1RJQ0UoW2NyZWF0aW5nICRvZmls ZV0pCi0rX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTCi0rQVNfRVhJVCgwKQotK19MVEVPRgot K2NobW9kICt4ICIkQ09ORklHX0xUIgotKwotKyMgY29uZmlndXJlIGlzIHdyaXRpbmcgdG8gY29u ZmlnLmxvZywgYnV0IGNvbmZpZy5sdCBkb2VzIGl0cyBvd24gcmVkaXJlY3Rpb24sCi0rIyBhcHBl bmRpbmcgdG8gY29uZmlnLmxvZywgd2hpY2ggZmFpbHMgb24gRE9TLCBhcyBjb25maWcubG9nIGlz IHN0aWxsIGtlcHQKLSsjIG9wZW4gYnkgY29uZmlndXJlLiAgSGVyZSB3ZSBleGVjIHRoZSBGRCB0 byAvZGV2L251bGwsIGVmZmVjdGl2ZWx5IGNsb3NpbmcKLSsjIGNvbmZpZy5sb2csIHNvIGl0IGNh biBiZSBwcm9wZXJseSAocmUpb3BlbmVkIGFuZCBhcHBlbmRlZCB0byBieSBjb25maWcubHQuCi0r aWYgdGVzdCAiJG5vX2NyZWF0ZSIgIT0geWVzOyB0aGVuCi0rICBsdF9jbF9zdWNjZXNzPToKLSsg IHRlc3QgIiRzaWxlbnQiID0geWVzICYmCi0rICAgIGx0X2NvbmZpZ19sdF9hcmdzPSIkbHRfY29u ZmlnX2x0X2FyZ3MgLS1xdWlldCIKLSsgIGV4ZWMgQVNfTUVTU0FHRV9MT0dfRkQ+L2Rldi9udWxs Ci0rICAkU0hFTEwgIiRDT05GSUdfTFQiICRsdF9jb25maWdfbHRfYXJncyB8fCBsdF9jbF9zdWNj ZXNzPWZhbHNlCi0rICBleGVjIEFTX01FU1NBR0VfTE9HX0ZEPj5jb25maWcubG9nCi0rICAkbHRf Y2xfc3VjY2VzcyB8fCBBU19FWElUKDEpCi0rZmkKLStdKSMgTFRfT1VUUFVUCi0rCi0rCi0rIyBf TFRfQ09ORklHKFRBRykKLSsjIC0tLS0tLS0tLS0tLS0tLQotKyMgSWYgVEFHIGlzIHRoZSBidWls dC1pbiB0YWcsIGNyZWF0ZSBhbiBpbml0aWFsIGxpYnRvb2wgc2NyaXB0IHdpdGggYQotKyMgZGVm YXVsdCBjb25maWd1cmF0aW9uIGZyb20gdGhlIHVudGFnZ2VkIGNvbmZpZyB2YXJzLiAgT3RoZXJ3 aXNlIGFkZCBjb2RlCi0rIyB0byBjb25maWcuc3RhdHVzIGZvciBhcHBlbmRpbmcgdGhlIGNvbmZp Z3VyYXRpb24gbmFtZWQgYnkgVEFHIGZyb20gdGhlCi0rIyBtYXRjaGluZyB0YWdnZWQgY29uZmln IHZhcnMuCi0rbTRfZGVmdW4oW19MVF9DT05GSUddLAotK1ttNF9yZXF1aXJlKFtfTFRfRklMRVVU SUxTX0RFRkFVTFRTXSlkbmwKLStfTFRfQ09ORklHX1NBVkVfQ09NTUFORFMoWwotKyAgbTRfZGVm aW5lKFtfTFRfVEFHXSwgbTRfaWYoWyQxXSwgW10sIFtDXSwgWyQxXSkpZG5sCi0rICBtNF9pZihf TFRfVEFHLCBbQ10sIFsKLSsgICAgIyBTZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQg c2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93IG91cgotKyAgICAjIGNvbW1hbmRzIHRocm91Z2gg d2l0aG91dCByZW1vdmFsIG9mIFwgZXNjYXBlcy4KLSsgICAgaWYgdGVzdCAtbiAiJHtaU0hfVkVS U0lPTitzZXR9IiA7IHRoZW4KLSsgICAgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAotKyAgICBmaQot KwotKyAgICBjZmdmaWxlPSIke29maWxlfVQiCi0rICAgIHRyYXAgIiRSTSBcIiRjZmdmaWxlXCI7 IGV4aXQgMSIgMSAyIDE1Ci0rICAgICRSTSAiJGNmZ2ZpbGUiCi0rCi0rICAgIGNhdCA8PF9MVF9F T0YgPj4gIiRjZmdmaWxlIgotKyMhICRTSEVMTAotKwotKyMgYCRFQ0hPICIkb2ZpbGUiIHwgc2Vk ICdzJV4uKi8lJSdgIC0gUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBv cnQgc2VydmljZXMuCi0rIyBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSAkYXNfbWUgKCRQQUNL QUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KLSsjIExpYnRvb2wgd2FzIGNvbmZpZ3VyZWQgb24gaG9z dCBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWA6Ci0rIyBOT1RF OiBDaGFuZ2VzIG1hZGUgdG8gdGhpcyBmaWxlIHdpbGwgYmUgbG9zdDogbG9vayBhdCBsdG1haW4u c2guCi0rIwotK19MVF9DT1BZSU5HCi0rX0xUX0xJQlRPT0xfVEFHUwotKwotKyMgIyMjIEJFR0lO IExJQlRPT0wgQ09ORklHCi0rX0xUX0xJQlRPT0xfQ09ORklHX1ZBUlMKLStfTFRfTElCVE9PTF9U QUdfVkFSUwotKyMgIyMjIEVORCBMSUJUT09MIENPTkZJRwotKwotK19MVF9FT0YKLSsKLSsgIGNh c2UgJGhvc3Rfb3MgaW4KLSsgIGFpeDMqKQotKyAgICBjYXQgPDxcX0xUX0VPRiA+PiAiJGNmZ2Zp bGUiCi0rIyBBSVggc29tZXRpbWVzIGhhcyBwcm9ibGVtcyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIg cHJvZ3JhbS4gIEZvciBzb21lCi0rIyByZWFzb24sIGlmIHdlIHNldCB0aGUgQ09MTEVDVF9OQU1F UyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHByb2JsZW1zCi0rIyB2YW5pc2ggaW4gYSBwdWZm IG9mIHNtb2tlLgotK2lmIHRlc3QgIlgke0NPTExFQ1RfTkFNRVMrc2V0fSIgIT0gWHNldDsgdGhl bgotKyAgQ09MTEVDVF9OQU1FUz0KLSsgIGV4cG9ydCBDT0xMRUNUX05BTUVTCi0rZmkKLStfTFRf RU9GCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0rICBfTFRfUFJPR19MVE1BSU4KLSsKLSsgICMgV2Ug dXNlIHNlZCBpbnN0ZWFkIG9mIGNhdCBiZWNhdXNlIGJhc2ggb24gREpHUFAgZ2V0cyBjb25mdXNl ZCBpZgotKyAgIyBpZiBmaW5kcyBtaXhlZCBDUi9MRiBhbmQgTEYtb25seSBsaW5lcy4gIFNpbmNl IHNlZCBvcGVyYXRlcyBpbgotKyAgIyB0ZXh0IG1vZGUsIGl0IHByb3Blcmx5IGNvbnZlcnRzIGxp bmVzIHRvIENSL0xGLiAgVGhpcyBiYXNoIHByb2JsZW0KLSsgICMgaXMgcmVwb3J0ZWRseSBmaXhl ZCwgYnV0IHdoeSBub3QgcnVuIG9uIG9sZCB2ZXJzaW9ucyB0b28/Ci0rICBzZWQgJy9eIyBHZW5l cmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUvcScgIiRsdG1haW4iID4+ICIkY2Zn ZmlsZSIgXAotKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQotKwotKyAgX0xUX1BS T0dfWFNJX1NIRUxMRk5TCi0rCi0rICBzZWQgLW4gJy9eIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rp b25zIGluc2VydGVkIGhlcmUvLCRwJyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBcCi0rICAgIHx8 IChybSAtZiAiJGNmZ2ZpbGUiOyBleGl0IDEpCi0rCi0rICBtdiAtZiAiJGNmZ2ZpbGUiICIkb2Zp bGUiIHx8Ci0rICAgIChybSAtZiAiJG9maWxlIiAmJiBjcCAiJGNmZ2ZpbGUiICIkb2ZpbGUiICYm IHJtIC1mICIkY2ZnZmlsZSIpCi0rICBjaG1vZCAreCAiJG9maWxlIgotK10sCi0rW2NhdCA8PF9M VF9FT0YgPj4gIiRvZmlsZSIKLSsKLStkbmwgVW5mb3J0dW5hdGVseSB3ZSBoYXZlIHRvIHVzZSAk MSBoZXJlLCBzaW5jZSBfTFRfVEFHIGlzIG5vdCBleHBhbmRlZAotK2RubCBpbiBhIGNvbW1lbnQg KGllIGFmdGVyIGEgIykuCi0rIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkMQotK19M VF9MSUJUT09MX1RBR19WQVJTKF9MVF9UQUcpCi0rIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJ RzogJDEKLStfTFRfRU9GCi0rXSlkbmwgL200X2lmCi0rXSwKLStbbTRfaWYoWyQxXSwgW10sIFsK LSsgICAgUEFDS0FHRT0nJFBBQ0tBR0UnCi0rICAgIFZFUlNJT049JyRWRVJTSU9OJwotKyAgICBU SU1FU1RBTVA9JyRUSU1FU1RBTVAnCi0rICAgIFJNPSckUk0nCi0rICAgIG9maWxlPSckb2ZpbGUn XSwgW10pCi0rXSlkbmwgL19MVF9DT05GSUdfU0FWRV9DT01NQU5EUwotK10pIyBfTFRfQ09ORklH Ci0rCi0rCi0rIyBMVF9TVVBQT1JURURfVEFHKFRBRykKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LQotKyMgVHJhY2UgdGhpcyBtYWNybyB0byBkaXNjb3ZlciB3aGF0IHRhZ3MgYXJlIHN1cHBvcnRl ZCBieSB0aGUgbGlidG9vbAotKyMgLS10YWcgb3B0aW9uLCB1c2luZzoKLSsjICAgIGF1dG9jb25m IC0tdHJhY2UgJ0xUX1NVUFBPUlRFRF9UQUc6JDEnCi0rQUNfREVGVU4oW0xUX1NVUFBPUlRFRF9U QUddLCBbXSkKLSsKLSsKLSsjIEMgc3VwcG9ydCBpcyBidWlsdC1pbiBmb3Igbm93Ci0rbTRfZGVm aW5lKFtfTFRfTEFOR19DX2VuYWJsZWRdLCBbXSkKLSttNF9kZWZpbmUoW19MVF9UQUdTXSwgW10p Ci0rCi0rCi0rIyBMVF9MQU5HKExBTkcpCi0rIyAtLS0tLS0tLS0tLS0tCi0rIyBFbmFibGUgbGli dG9vbCBzdXBwb3J0IGZvciB0aGUgZ2l2ZW4gbGFuZ3VhZ2UgaWYgbm90IGFscmVhZHkgZW5hYmxl ZC4KLStBQ19ERUZVTihbTFRfTEFOR10sCi0rW0FDX0JFRk9SRShbJDBdLCBbTFRfT1VUUFVUXSlk bmwKLSttNF9jYXNlKFskMV0sCi0rICBbQ10sCQkJW19MVF9MQU5HKEMpXSwKLSsgIFtDKytdLAkJ W19MVF9MQU5HKENYWCldLAotKyAgW0phdmFdLAkJW19MVF9MQU5HKEdDSildLAotKyAgW0ZvcnRy YW4gNzddLAkJW19MVF9MQU5HKEY3NyldLAotKyAgW0ZvcnRyYW5dLAkJW19MVF9MQU5HKEZDKV0s Ci0rICBbV2luZG93cyBSZXNvdXJjZV0sCVtfTFRfTEFORyhSQyldLAotKyAgW200X2lmZGVmKFtf TFRfTEFOR19dJDFbX0NPTkZJR10sCi0rICAgIFtfTFRfTEFORygkMSldLAotKyAgICBbbTRfZmF0 YWwoWyQwOiB1bnN1cHBvcnRlZCBsYW5ndWFnZTogIiQxIl0pXSldKWRubAotK10pIyBMVF9MQU5H Ci0rCi0rCi0rIyBfTFRfTEFORyhMQU5HTkFNRSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLQotK200 X2RlZnVuKFtfTFRfTEFOR10sCi0rW200X2lmZGVmKFtfTFRfTEFOR19dJDFbX2VuYWJsZWRdLCBb XSwKLSsgIFtMVF9TVVBQT1JURURfVEFHKFskMV0pZG5sCi0rICBtNF9hcHBlbmQoW19MVF9UQUdT XSwgWyQxIF0pZG5sCi0rICBtNF9kZWZpbmUoW19MVF9MQU5HX10kMVtfZW5hYmxlZF0sIFtdKWRu bAotKyAgX0xUX0xBTkdfJDFfQ09ORklHKCQxKV0pZG5sCi0rXSkjIF9MVF9MQU5HCi0rCi0rCi0r IyBfTFRfTEFOR19ERUZBVUxUX0NPTkZJRwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStt NF9kZWZ1bihbX0xUX0xBTkdfREVGQVVMVF9DT05GSUddLAotK1tBQ19QUk9WSURFX0lGRUxTRShb QUNfUFJPR19DWFhdLAotKyAgW0xUX0xBTkcoQ1hYKV0sCi0rICBbbTRfZGVmaW5lKFtBQ19QUk9H X0NYWF0sIGRlZm4oW0FDX1BST0dfQ1hYXSlbTFRfTEFORyhDWFgpXSldKQotKwotK0FDX1BST1ZJ REVfSUZFTFNFKFtBQ19QUk9HX0Y3N10sCi0rICBbTFRfTEFORyhGNzcpXSwKLSsgIFttNF9kZWZp bmUoW0FDX1BST0dfRjc3XSwgZGVmbihbQUNfUFJPR19GNzddKVtMVF9MQU5HKEY3NyldKV0pCi0r Ci0rQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfRkNdLAotKyAgW0xUX0xBTkcoRkMpXSwKLSsg IFttNF9kZWZpbmUoW0FDX1BST0dfRkNdLCBkZWZuKFtBQ19QUk9HX0ZDXSlbTFRfTEFORyhGQyld KV0pCi0rCi0rZG5sIFRoZSBjYWxsIHRvIFtBXVtNX1BST0dfR0NKXSBpcyBxdW90ZWQgbGlrZSB0 aGF0IHRvIHN0b3AgYWNsb2NhbAotK2RubCBwdWxsaW5nIHRoaW5ncyBpbiBuZWVkbGVzc2x5Lgot K0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0dDSl0sCi0rICBbTFRfTEFORyhHQ0opXSwKLSsg IFtBQ19QUk9WSURFX0lGRUxTRShbQV1bTV9QUk9HX0dDSl0sCi0rICAgIFtMVF9MQU5HKEdDSild LAotKyAgICBbQUNfUFJPVklERV9JRkVMU0UoW0xUX1BST0dfR0NKXSwKLSsgICAgICBbTFRfTEFO RyhHQ0opXSwKLSsgICAgICBbbTRfaWZkZWYoW0FDX1BST0dfR0NKXSwKLSsJW200X2RlZmluZShb QUNfUFJPR19HQ0pdLCBkZWZuKFtBQ19QUk9HX0dDSl0pW0xUX0xBTkcoR0NKKV0pXSkKLSsgICAg ICAgbTRfaWZkZWYoW0FdW01fUFJPR19HQ0pdLAotKwlbbTRfZGVmaW5lKFtBXVtNX1BST0dfR0NK XSwgZGVmbihbQV1bTV9QUk9HX0dDSl0pW0xUX0xBTkcoR0NKKV0pXSkKLSsgICAgICAgbTRfaWZk ZWYoW0xUX1BST0dfR0NKXSwKLSsJW200X2RlZmluZShbTFRfUFJPR19HQ0pdLCBkZWZuKFtMVF9Q Uk9HX0dDSl0pW0xUX0xBTkcoR0NKKV0pXSldKV0pXSkKLSsKLStBQ19QUk9WSURFX0lGRUxTRShb TFRfUFJPR19SQ10sCi0rICBbTFRfTEFORyhSQyldLAotKyAgW200X2RlZmluZShbTFRfUFJPR19S Q10sIGRlZm4oW0xUX1BST0dfUkNdKVtMVF9MQU5HKFJDKV0pXSkKLStdKSMgX0xUX0xBTkdfREVG QVVMVF9DT05GSUcKLSsKLSsjIE9ic29sZXRlIG1hY3JvczoKLStBVV9ERUZVTihbQUNfTElCVE9P TF9DWFhdLCBbTFRfTEFORyhDKyspXSkKLStBVV9ERUZVTihbQUNfTElCVE9PTF9GNzddLCBbTFRf TEFORyhGb3J0cmFuIDc3KV0pCi0rQVVfREVGVU4oW0FDX0xJQlRPT0xfRkNdLCBbTFRfTEFORyhG b3J0cmFuKV0pCi0rQVVfREVGVU4oW0FDX0xJQlRPT0xfR0NKXSwgW0xUX0xBTkcoSmF2YSldKQot K2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4o W0FDX0xJQlRPT0xfQ1hYXSwgW10pCi0rZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0Y3N10sIFtd KQotK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9GQ10sIFtdKQotK2RubCBBQ19ERUZVTihbQUNf TElCVE9PTF9HQ0pdLCBbXSkKLSsKLSsKLSsjIF9MVF9UQUdfQ09NUElMRVIKLSsjIC0tLS0tLS0t LS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX1RBR19DT01QSUxFUl0sCi0rW0FDX1JFUVVJUkUoW0FD X1BST0dfQ0NdKWRubAotKwotK19MVF9ERUNMKFtMVENDXSwgW0NDXSwgWzFdLCBbQSBDIGNvbXBp bGVyXSlkbmwKLStfTFRfREVDTChbTFRDRkxBR1NdLCBbQ0ZMQUdTXSwgWzFdLCBbTFRDQyBjb21w aWxlciBmbGFnc10pZG5sCi0rX0xUX1RBR0RFQ0woW0NDXSwgW2NvbXBpbGVyXSwgWzFdLCBbQSBs YW5ndWFnZSBzcGVjaWZpYyBjb21waWxlcl0pZG5sCi0rX0xUX1RBR0RFQ0woW3dpdGhfZ2NjXSwg W0dDQ10sIFswXSwgW0lzIHRoZSBjb21waWxlciB0aGUgR05VIGNvbXBpbGVyP10pZG5sCi0rCi0r IyBJZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4KLStMVENDPSR7TFRDQy0i JENDIn0KLSsKLSsjIElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQsIHVzZSBD RkxBR1MuCi0rTFRDRkxBR1M9JHtMVENGTEFHUy0iJENGTEFHUyJ9Ci0rCi0rIyBBbGxvdyBDQyB0 byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KLStjb21waWxlcj0kQ0MKLStdKSMg X0xUX1RBR19DT01QSUxFUgotKwotKwotKyMgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrIGZvciBjb21waWxlciBib2lsZXJwbGF0 ZSBvdXRwdXQgb3Igd2FybmluZ3Mgd2l0aAotKyMgdGhlIHNpbXBsZSBjb21waWxlciB0ZXN0IGNv ZGUuCi0rbTRfZGVmdW4oW19MVF9DT01QSUxFUl9CT0lMRVJQTEFURV0sCi0rW200X3JlcXVpcmUo W19MVF9ERUNMX1NFRF0pZG5sCi0rYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rZWNo byAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKLStldmFs ICIkYWNfY29tcGlsZSIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5j b25mdGVzdC5lcnIKLStfbHRfY29tcGlsZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJg Ci0rJFJNIGNvbmZ0ZXN0KgotK10pIyBfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKLSsKLSsKLSsj IF9MVF9MSU5LRVJfQk9JTEVSUExBVEUKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENo ZWNrIGZvciBsaW5rZXIgYm9pbGVycGxhdGUgb3V0cHV0IG9yIHdhcm5pbmdzIHdpdGgKLSsjIHRo ZSBzaW1wbGUgbGluayB0ZXN0IGNvZGUuCi0rbTRfZGVmdW4oW19MVF9MSU5LRVJfQk9JTEVSUExB VEVdLAotK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAotK2FjX291dGZpbGU9Y29uZnRl c3QuJGFjX29iamV4dAotK2VjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID5jb25mdGVz dC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2xpbmsiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9k OyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCi0rX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZT1gY2F0IGNv bmZ0ZXN0LmVycmAKLSskUk0gLXIgY29uZnRlc3QqCi0rXSkjIF9MVF9MSU5LRVJfQk9JTEVSUExB VEUKLSsKLSsjIF9MVF9SRVFVSVJFRF9EQVJXSU5fQ0hFQ0tTCi0rIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rbTRfZGVmdW5fb25jZShbX0xUX1JFUVVJUkVEX0RBUldJTl9DSEVDS1NdLFsK LSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgcmhhcHNvZHkqIHwgZGFyd2luKikKLSsgICAgQUNf Q0hFQ0tfVE9PTChbRFNZTVVUSUxdLCBbZHN5bXV0aWxdLCBbOl0pCi0rICAgIEFDX0NIRUNLX1RP T0woW05NRURJVF0sIFtubWVkaXRdLCBbOl0pCi0rICAgIEFDX0NIRUNLX1RPT0woW0xJUE9dLCBb bGlwb10sIFs6XSkKLSsgICAgQUNfQ0hFQ0tfVE9PTChbT1RPT0xdLCBbb3Rvb2xdLCBbOl0pCi0r ICAgIEFDX0NIRUNLX1RPT0woW09UT09MNjRdLCBbb3Rvb2w2NF0sIFs6XSkKLSsgICAgX0xUX0RF Q0woW10sIFtEU1lNVVRJTF0sIFsxXSwKLSsgICAgICBbVG9vbCB0byBtYW5pcHVsYXRlIGFyY2hp dmVkIERXQVJGIGRlYnVnIHN5bWJvbCBmaWxlcyBvbiBNYWMgT1MgWF0pCi0rICAgIF9MVF9ERUNM KFtdLCBbTk1FRElUXSwgWzFdLAotKyAgICAgIFtUb29sIHRvIGNoYW5nZSBnbG9iYWwgdG8gbG9j YWwgc3ltYm9scyBvbiBNYWMgT1MgWF0pCi0rICAgIF9MVF9ERUNMKFtdLCBbTElQT10sIFsxXSwK LSsgICAgICBbVG9vbCB0byBtYW5pcHVsYXRlIGZhdCBvYmplY3RzIGFuZCBhcmNoaXZlcyBvbiBN YWMgT1MgWF0pCi0rICAgIF9MVF9ERUNMKFtdLCBbT1RPT0xdLCBbMV0sCi0rICAgICAgW2xkZC9y ZWFkZWxmIGxpa2UgdG9vbCBmb3IgTWFjaC1PIGJpbmFyaWVzIG9uIE1hYyBPUyBYXSkKLSsgICAg X0xUX0RFQ0woW10sIFtPVE9PTDY0XSwgWzFdLAotKyAgICAgIFtsZGQvcmVhZGVsZiBsaWtlIHRv b2wgZm9yIDY0IGJpdCBNYWNoLU8gYmluYXJpZXMgb24gTWFjIE9TIFggMTAuNF0pCi0rCi0rICAg IEFDX0NBQ0hFX0NIRUNLKFtmb3IgLXNpbmdsZV9tb2R1bGUgbGlua2VyIGZsYWddLFtsdF9jdl9h cHBsZV9jY19zaW5nbGVfbW9kXSwKLSsgICAgICBbbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD1u bwotKyAgICAgIGlmIHRlc3QgLXogIiR7TFRfTVVMVElfTU9EVUxFfSI7IHRoZW4KLSsJIyBCeSBk ZWZhdWx0IHdlIHdpbGwgYWRkIHRoZSAtc2luZ2xlX21vZHVsZSBmbGFnLiBZb3UgY2FuIG92ZXJy aWRlCi0rCSMgYnkgZWl0aGVyIHNldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIExUX01V TFRJX01PRFVMRQotKwkjIG5vbi1lbXB0eSBhdCBjb25maWd1cmUgdGltZSwgb3IgYnkgYWRkaW5n IC1tdWx0aV9tb2R1bGUgdG8gdGhlCi0rCSMgbGluayBmbGFncy4KLSsJcm0gLXJmIGxpYmNvbmZ0 ZXN0LmR5bGliKgotKwllY2hvICJpbnQgZm9vKHZvaWQpe3JldHVybiAxO30iID4gY29uZnRlc3Qu YwotKwllY2hvICIkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIg XAotKy1keW5hbWljbGliIC1XbCwtc2luZ2xlX21vZHVsZSBjb25mdGVzdC5jIiA+JkFTX01FU1NB R0VfTE9HX0ZECi0rCSRMVENDICRMVENGTEFHUyAkTERGTEFHUyAtbyBsaWJjb25mdGVzdC5keWxp YiBcCi0rCSAgLWR5bmFtaWNsaWIgLVdsLC1zaW5nbGVfbW9kdWxlIGNvbmZ0ZXN0LmMgMj5jb25m dGVzdC5lcnIKLSsgICAgICAgIF9sdF9yZXN1bHQ9JD8KLSsJaWYgdGVzdCAtZiBsaWJjb25mdGVz dC5keWxpYiAmJiB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyICYmIHRlc3QgJF9sdF9yZXN1bHQgPSAw OyB0aGVuCi0rCSAgbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD15ZXMKLSsJZWxzZQotKwkgIGNh dCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAotKwlmaQotKwlybSAtcmYgbGliY29u ZnRlc3QuZHlsaWIqCi0rCXJtIC1mIGNvbmZ0ZXN0LioKLSsgICAgICBmaV0pCi0rICAgIEFDX0NB Q0hFX0NIRUNLKFtmb3IgLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5rZXIgZmxhZ10sCi0rICAg ICAgW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdF0sCi0rICAgICAgW2x0X2N2X2xkX2V4 cG9ydGVkX3N5bWJvbHNfbGlzdD1ubwotKyAgICAgIHNhdmVfTERGTEFHUz0kTERGTEFHUwotKyAg ICAgIGVjaG8gIl9tYWluIiA+IGNvbmZ0ZXN0LnN5bQotKyAgICAgIExERkxBR1M9IiRMREZMQUdT IC1XbCwtZXhwb3J0ZWRfc3ltYm9sc19saXN0LGNvbmZ0ZXN0LnN5bSIKLSsgICAgICBBQ19MSU5L X0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtdLFtdKV0sCi0rCVtsdF9jdl9sZF9leHBvcnRlZF9z eW1ib2xzX2xpc3Q9eWVzXSwKLSsJW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD1ub10p Ci0rCUxERkxBR1M9IiRzYXZlX0xERkxBR1MiCi0rICAgIF0pCi0rICAgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgICAgcmhhcHNvZHkqIHwgZGFyd2luMS5bWzAxMl1dKQotKyAgICAgIF9sdF9kYXJfYWxs b3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKLSsgICAgZGFy d2luMS4qKQotKyAgICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1mbGF0X25hbWVz cGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKLSsgICAgZGFyd2luKikgIyBk YXJ3aW4gNS54IG9uCi0rICAgICAgIyBpZiBydW5uaW5nIG9uIDEwLjUgb3IgbGF0ZXIsIHRoZSBk ZXBsb3ltZW50IHRhcmdldCBkZWZhdWx0cwotKyAgICAgICMgdG8gdGhlIE9TIHZlcnNpb24sIGlm IG9uIHg4NiwgYW5kIDEwLjQsIHRoZSBkZXBsb3ltZW50Ci0rICAgICAgIyB0YXJnZXQgZGVmYXVs dHMgdG8gMTAuNC4gRG9uJ3QgeW91IGxvdmUgaXQ/Ci0rICAgICAgY2FzZSAke01BQ09TWF9ERVBM T1lNRU5UX1RBUkdFVC0xMC4wfSwkaG9zdCBpbgotKwkxMC4wLCo4NiotZGFyd2luOCp8MTAuMCwq LWRhcndpbltbOTFdXSopCi0rCSAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVm aW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJyA7OwotKwkxMC5bWzAxMl1dKikKLSsJICBfbHRfZGFy X2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7 d2x9c3VwcHJlc3MnIDs7Ci0rCTEwLiopCi0rCSAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7 d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJyA7OwotKyAgICAgIGVzYWMKLSsgICAg OzsKLSsgIGVzYWMKLSsgICAgaWYgdGVzdCAiJGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiID0g InllcyI7IHRoZW4KLSsgICAgICBfbHRfZGFyX3NpbmdsZV9tb2Q9JyRzaW5nbGVfbW9kdWxlJwot KyAgICBmaQotKyAgICBpZiB0ZXN0ICIkbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0IiA9 ICJ5ZXMiOyB0aGVuCi0rICAgICAgX2x0X2Rhcl9leHBvcnRfc3ltcz0nICR7d2x9LWV4cG9ydGVk X3N5bWJvbHNfbGlzdCwkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltJwot KyAgICBlbHNlCi0rICAgICAgX2x0X2Rhcl9leHBvcnRfc3ltcz0nfiROTUVESVQgLXMgJG91dHB1 dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xpYn0nCi0rICAgIGZpCi0rICAg IGlmIHRlc3QgIiREU1lNVVRJTCIgIT0gIjoiOyB0aGVuCi0rICAgICAgX2x0X2RzeW11dGlsPSd+ JERTWU1VVElMICRsaWIgfHwgOicKLSsgICAgZWxzZQotKyAgICAgIF9sdF9kc3ltdXRpbD0KLSsg ICAgZmkKLSsgICAgOzsKLSsgIGVzYWMKLStdKQotKwotKwotKyMgX0xUX0RBUldJTl9MSU5LRVJf RkVBVFVSRVMKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVja3MgZm9yIGxp bmtlciBhbmQgY29tcGlsZXIgZmVhdHVyZXMgb24gZGFyd2luCi0rbTRfZGVmdW4oW19MVF9EQVJX SU5fTElOS0VSX0ZFQVRVUkVTXSwKLStbCi0rICBtNF9yZXF1aXJlKFtfTFRfUkVRVUlSRURfREFS V0lOX0NIRUNLU10pCi0rICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8K LSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfYXV0b21hdGljLCAkMSk9eWVzCi0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0 aF92YXIsICQxKT11bnN1cHBvcnRlZAotKyAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYywgJDEpPScnCi0rICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKLSsg IF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0iJF9sdF9kYXJfYWxsb3dfdW5k ZWZpbmVkIgotKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgIGlmb3J0KikgX2x0X2Rhcl9j YW5fc2hhcmVkPXllcyA7OwotKyAgICAgKikgX2x0X2Rhcl9jYW5fc2hhcmVkPSRHQ0MgOzsKLSsg IGVzYWMKLSsgIGlmIHRlc3QgIiRfbHRfZGFyX2Nhbl9zaGFyZWQiID0gInllcyI7IHRoZW4KLSsg ICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZWNobwotKyAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSJcJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRs aWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRy cGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAkX2x0X2Rhcl9zaW5nbGVfbW9kJHtfbHRfZHN5bXV0 aWx9IgotKyAgICBfTFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9IlwkQ0MgXCRhbGxvd191bmRl ZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxl cl9mbGFncyR7X2x0X2RzeW11dGlsfSIKLSsgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9j bWRzLCAkMSk9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpk aXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3Vu ZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFn cyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJHtfbHRfZGFyX3Np bmdsZV9tb2R9JHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsgICAgX0xU X1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0ic2VkIC1lICdzLF4sXywnIDwgXCRleHBv cnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5c JENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRk ZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0 aWx9IgotKyAgICBtNF9pZihbJDFdLCBbQ1hYXSwKLStbICAgaWYgdGVzdCAiJGx0X2N2X2FwcGxl X2NjX3NpbmdsZV9tb2QiICE9ICJ5ZXMiOyB0aGVuCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0iXCRDQyAtciAta2VlcF9wcml2YXRlX2V4dGVybnMgLW5vc3RkbGliIC1vIFwk e2xpYn0tbWFzdGVyLm8gXCRsaWJvYmpzflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmlu ZWRfZmxhZyAtbyBcJGxpYiBcJHtsaWJ9LW1hc3Rlci5vIFwkZGVwbGlicyBcJGNvbXBpbGVyX2Zs YWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyR7X2x0X2RzeW11 dGlsfSIKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ic2VkICdz LF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1z eW1ib2xzLmV4cHN5bX5cJENDIC1yIC1rZWVwX3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8g XCR7bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVm aW5lZF9mbGFnIC1vIFwkbGliIFwke2xpYn0tbWFzdGVyLm8gXCRkZXBsaWJzIFwkY29tcGlsZXJf ZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nJHtfbHRfZGFy X2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsgICAgZmkKLStdLFtdKQotKyAgZWxzZQot KyAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgZmkKLStdKQotKwotKyMgX0xUX1NZ U19NT0RVTEVfUEFUSF9BSVgKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBMaW5rcyBh IG1pbmltYWwgcHJvZ3JhbSBhbmQgY2hlY2tzIHRoZSBleGVjdXRhYmxlCi0rIyBmb3IgdGhlIHN5 c3RlbSBkZWZhdWx0IGhhcmRjb2RlZCBsaWJyYXJ5IHBhdGguIEluIG1vc3QgY2FzZXMsCi0rIyB0 aGlzIGlzIC91c3IvbGliOi9saWIsIGJ1dCB3aGVuIHRoZSBNUEkgY29tcGlsZXJzIGFyZSB1c2Vk Ci0rIyB0aGUgbG9jYXRpb24gb2YgdGhlIGNvbW11bmljYXRpb24gYW5kIE1QSSBsaWJzIGFyZSBp bmNsdWRlZCB0b28uCi0rIyBJZiB3ZSBkb24ndCBmaW5kIGFueXRoaW5nLCB1c2UgdGhlIGRlZmF1 bHQgbGlicmFyeSBwYXRoIGFjY29yZGluZwotKyMgdG8gdGhlIGFpeCBsZCBtYW51YWwuCi0rbTRf ZGVmdW4oW19MVF9TWVNfTU9EVUxFX1BBVEhfQUlYXSwKLStbbTRfcmVxdWlyZShbX0xUX0RFQ0xf U0VEXSlkbmwKLStBQ19MSU5LX0lGRUxTRShBQ19MQU5HX1BST0dSQU0sWwotK2x0X2FpeF9saWJw YXRoX3NlZD0nCi0rICAgIC9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKLSsJL14wLyB7Ci0r CSAgICBzL14wICAqXCguKlwpJC9cMS8KLSsJICAgIHAKLSsJfQotKyAgICB9JwotK2FpeF9saWJw YXRoPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUg IiRsdF9haXhfbGlicGF0aF9zZWQiYAotKyMgQ2hlY2sgZm9yIGEgNjQtYml0IG9iamVjdCBpZiB3 ZSBkaWRuJ3QgZmluZCBhbnl0aGluZy4KLStpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVu Ci0rICBhaXhfbGlicGF0aD1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251 bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLStmaV0sW10pCi0raWYgdGVz dCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZp Ci0rXSkjIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCi0rCi0rCi0rIyBfTFRfU0hFTExfSU5JVChB UkcpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtfTFRfU0hFTExfSU5JVF0s Ci0rW2lmZGVmKFtBQ19ESVZFUlNJT05fTk9USUNFXSwKLSsJICAgICBbQUNfRElWRVJUX1BVU0go QUNfRElWRVJTSU9OX05PVElDRSldLAotKwkgW0FDX0RJVkVSVF9QVVNIKE5PVElDRSldKQotKyQx Ci0rQUNfRElWRVJUX1BPUAotK10pIyBfTFRfU0hFTExfSU5JVAotKwotKwotKyMgX0xUX1BST0df RUNIT19CQUNLU0xBU0gKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBBZGQgc29tZSBj b2RlIHRvIHRoZSBzdGFydCBvZiB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyZSBzY3JpcHQgd2hpY2gK LSsjIHdpbGwgZmluZCBhbiBlY2hvIGNvbW1hbmQgd2hpY2ggZG9lc24ndCBpbnRlcnByZXQgYmFj a3NsYXNoZXMuCi0rbTRfZGVmdW4oW19MVF9QUk9HX0VDSE9fQkFDS1NMQVNIXSwKLStbX0xUX1NI RUxMX0lOSVQoWwotKyMgQ2hlY2sgdGhhdCB3ZSBhcmUgcnVubmluZyB1bmRlciB0aGUgY29ycmVj dCBzaGVsbC4KLStTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQotKwotK2Nhc2UgWCRsdF9F Q0hPIGluCi0rWCotLWZhbGxiYWNrLWVjaG8pCi0rICAjIFJlbW92ZSBvbmUgbGV2ZWwgb2YgcXVv dGF0aW9uICh3aGljaCB3YXMgcmVxdWlyZWQgZm9yIE1ha2UpLgotKyAgRUNITz1gZWNobyAiJGx0 X0VDSE8iIHwgc2VkICdzLFxcXFxcWyRdXFxbJF0wLCdbJF0wJywnYAotKyAgOzsKLStlc2FjCi0r Ci0rRUNITz0ke2x0X0VDSE8tZWNob30KLStpZiB0ZXN0ICJYWyRdMSIgPSBYLS1uby1yZWV4ZWM7 IHRoZW4KLSsgICMgRGlzY2FyZCB0aGUgLS1uby1yZWV4ZWMgZmxhZywgYW5kIGNvbnRpbnVlLgot KyAgc2hpZnQKLStlbGlmIHRlc3QgIlhbJF0xIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KLSsg ICMgQXZvaWQgaW5saW5lIGRvY3VtZW50IGhlcmUsIGl0IG1heSBiZSBsZWZ0IG92ZXIKLSsgIDoK LStlbGlmIHRlc3QgIlhgeyAkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyA7IHRo ZW4KLSsgICMgWWlwcGVlLCAkRUNITyB3b3JrcyEKLSsgIDoKLStlbHNlCi0rICAjIFJlc3RhcnQg dW5kZXIgdGhlIGNvcnJlY3Qgc2hlbGwuCi0rICBleGVjICRTSEVMTCAiWyRdMCIgLS1uby1yZWV4 ZWMgJHsxKyJbJF1AIn0KLStmaQotKwotK2lmIHRlc3QgIlhbJF0xIiA9IFgtLWZhbGxiYWNrLWVj aG87IHRoZW4KLSsgICMgdXNlZCBhcyBmYWxsYmFjayBlY2hvCi0rICBzaGlmdAotKyAgY2F0IDw8 X0xUX0VPRgotK1skXSoKLStfTFRfRU9GCi0rICBleGl0IDAKLStmaQotKwotKyMgVGhlIEhQLVVY IGtzaCBhbmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc3Rkb3V0 Ci0rIyBpZiBDRFBBVEggaXMgc2V0LgotKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAm JiB1bnNldCBDRFBBVEgKLSsKLStpZiB0ZXN0IC16ICIkbHRfRUNITyI7IHRoZW4KLSsgIGlmIHRl c3QgIlgke2VjaG9fdGVzdF9zdHJpbmcrc2V0fSIgIT0gWHNldDsgdGhlbgotKyAgICAjIGZpbmQg YSBzdHJpbmcgYXMgbGFyZ2UgYXMgcG9zc2libGUsIGFzIGxvbmcgYXMgdGhlIHNoZWxsIGNhbiBj b3BlIHdpdGggaXQKLSsgICAgZm9yIGNtZCBpbiAnc2VkIDUwcSAiWyRdMCInICdzZWQgMjBxICJb JF0wIicgJ3NlZCAxMHEgIlskXTAiJyAnc2VkIDJxICJbJF0wIicgJ2VjaG8gdGVzdCc7IGRvCi0r ICAgICAgIyBleHBlY3RlZCBzaXplczogbGVzcyB0aGFuIDJLYiwgMUtiLCA1MTIgYnl0ZXMsIDE2 IGJ5dGVzLCAuLi4KLSsgICAgICBpZiB7IGVjaG9fdGVzdF9zdHJpbmc9YGV2YWwgJGNtZGA7IH0g Mj4vZGV2L251bGwgJiYKLSsJIHsgdGVzdCAiWCRlY2hvX3Rlc3Rfc3RyaW5nIiA9ICJYJGVjaG9f dGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsCi0rICAgICAgdGhlbgotKyAgICAgICAgYnJlYWsK LSsgICAgICBmaQotKyAgICBkb25lCi0rICBmaQotKwotKyAgaWYgdGVzdCAiWGB7ICRFQ0hPICdc dCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCi0rICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5n PWB7ICRFQ0hPICIkZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251bGxgICYmCi0rICAgICB0 ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4K LSsgICAgOgotKyAgZWxzZQotKyAgICAjIFRoZSBTb2xhcmlzLCBBSVgsIGFuZCBEaWdpdGFsIFVu aXggZGVmYXVsdCBlY2hvIHByb2dyYW1zIHVucXVvdGUKLSsgICAgIyBiYWNrc2xhc2hlcy4gIFRo aXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byBxdW90ZSBiYWNrc2xhc2hlcyB1c2luZwotKyAgICAj ICAgZWNobyAiJHNvbWV0aGluZyIgfCBzZWQgJ3MvXFwvXFxcXC9nJwotKyAgICAjCi0rICAgICMg U28sIGZpcnN0IHdlIGxvb2sgZm9yIGEgd29ya2luZyBlY2hvIGluIHRoZSB1c2VyJ3MgUEFUSC4K LSsKLSsgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rICAgIGZv ciBkaXIgaW4gJFBBVEggL3Vzci91Y2I7IGRvCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0r ICAgICAgaWYgKHRlc3QgLWYgJGRpci9lY2hvIHx8IHRlc3QgLWYgJGRpci9lY2hvJGFjX2V4ZWV4 dCkgJiYKLSsgICAgICAgICB0ZXN0ICJYYCgkZGlyL2VjaG8gJ1x0JykgMj4vZGV2L251bGxgIiA9 ICdYXHQnICYmCi0rICAgICAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRkaXIvZWNobyAiJGVj aG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKLSsgICAgICAgICB0ZXN0ICJYJGVjaG9f dGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsgICAgICAgIEVD SE89IiRkaXIvZWNobyIKLSsgICAgICAgIGJyZWFrCi0rICAgICAgZmkKLSsgICAgZG9uZQotKyAg ICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsKLSsgICAgaWYgdGVzdCAiWCRFQ0hPIiA9IFhlY2hvOyB0 aGVuCi0rICAgICAgIyBXZSBkaWRuJ3QgZmluZCBhIGJldHRlciBlY2hvLCBzbyBsb29rIGZvciBh bHRlcm5hdGl2ZXMuCi0rICAgICAgaWYgdGVzdCAiWGB7IHByaW50IC1yICdcdCc7IH0gMj4vZGV2 L251bGxgIiA9ICdYXHQnICYmCi0rICAgICAgICAgZWNob190ZXN0aW5nX3N0cmluZz1geyBwcmlu dCAtciAiJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsYCAmJgotKyAgICAgICAgIHRl c3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgot KyAgICAgICAgIyBUaGlzIHNoZWxsIGhhcyBhIGJ1aWx0aW4gcHJpbnQgLXIgdGhhdCBkb2VzIHRo ZSB0cmljay4KLSsgICAgICAgIEVDSE89J3ByaW50IC1yJwotKyAgICAgIGVsaWYgeyB0ZXN0IC1m IC9iaW4va3NoIHx8IHRlc3QgLWYgL2Jpbi9rc2gkYWNfZXhlZXh0OyB9ICYmCi0rCSAgIHRlc3Qg IlgkQ09ORklHX1NIRUxMIiAhPSBYL2Jpbi9rc2g7IHRoZW4KLSsgICAgICAgICMgSWYgd2UgaGF2 ZSBrc2gsIHRyeSBydW5uaW5nIGNvbmZpZ3VyZSBhZ2FpbiB3aXRoIGl0LgotKyAgICAgICAgT1JJ R0lOQUxfQ09ORklHX1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9Ci0rICAgICAgICBleHBv cnQgT1JJR0lOQUxfQ09ORklHX1NIRUxMCi0rICAgICAgICBDT05GSUdfU0hFTEw9L2Jpbi9rc2gK LSsgICAgICAgIGV4cG9ydCBDT05GSUdfU0hFTEwKLSsgICAgICAgIGV4ZWMgJENPTkZJR19TSEVM TCAiWyRdMCIgLS1uby1yZWV4ZWMgJHsxKyJbJF1AIn0KLSsgICAgICBlbHNlCi0rICAgICAgICAj IFRyeSB1c2luZyBwcmludGYuCi0rICAgICAgICBFQ0hPPSdwcmludGYgJXNcbicKLSsgICAgICAg IGlmIHRlc3QgIlhgeyAkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotKwkg ICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWB7ICRFQ0hPICIkZWNob190ZXN0X3N0cmluZyI7IH0gMj4v ZGV2L251bGxgICYmCi0rCSAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hv X3Rlc3Rfc3RyaW5nIjsgdGhlbgotKwkgICMgQ29vbCwgcHJpbnRmIHdvcmtzCi0rCSAgOgotKyAg ICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJR19TSEVMTCAi WyRdMCIgLS1mYWxsYmFjay1lY2hvICdcdCcpIDI+L2Rldi9udWxsYCAmJgotKwkgICAgIHRlc3Qg IlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAnWFx0JyAmJgotKwkgICAgIGVjaG9fdGVzdGluZ19z dHJpbmc9YCgkT1JJR0lOQUxfQ09ORklHX1NIRUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8gIiRl Y2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCi0rCSAgICAgdGVzdCAiWCRlY2hvX3Rl c3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rCSAgQ09ORklHX1NI RUxMPSRPUklHSU5BTF9DT05GSUdfU0hFTEwKLSsJICBleHBvcnQgQ09ORklHX1NIRUxMCi0rCSAg U0hFTEw9IiRDT05GSUdfU0hFTEwiCi0rCSAgZXhwb3J0IFNIRUxMCi0rCSAgRUNITz0iJENPTkZJ R19TSEVMTCBbJF0wIC0tZmFsbGJhY2stZWNobyIKLSsgICAgICAgIGVsaWYgZWNob190ZXN0aW5n X3N0cmluZz1gKCRDT05GSUdfU0hFTEwgIlskXTAiIC0tZmFsbGJhY2stZWNobyAnXHQnKSAyPi9k ZXYvbnVsbGAgJiYKLSsJICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gJ1hcdCcg JiYKLSsJICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJENPTkZJR19TSEVMTCAiWyRdMCIgLS1m YWxsYmFjay1lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotKwkgICAg IHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhl bgotKwkgIEVDSE89IiRDT05GSUdfU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8iCi0rICAgICAg ICBlbHNlCi0rCSAgIyBtYXliZSB3aXRoIGEgc21hbGxlciBzdHJpbmcuLi4KLSsJICBwcmV2PToK LSsKLSsJICBmb3IgY21kIGluICdlY2hvIHRlc3QnICdzZWQgMnEgIlskXTAiJyAnc2VkIDEwcSAi WyRdMCInICdzZWQgMjBxICJbJF0wIicgJ3NlZCA1MHEgIlskXTAiJzsgZG8KLSsJICAgIGlmIHsg dGVzdCAiWCRlY2hvX3Rlc3Rfc3RyaW5nIiA9ICJYYGV2YWwgJGNtZGAiOyB9IDI+L2Rldi9udWxs Ci0rCSAgICB0aGVuCi0rCSAgICAgIGJyZWFrCi0rCSAgICBmaQotKwkgICAgcHJldj0iJGNtZCIK LSsJICBkb25lCi0rCi0rCSAgaWYgdGVzdCAiJHByZXYiICE9ICdzZWQgNTBxICJbJF0wIic7IHRo ZW4KLSsJICAgIGVjaG9fdGVzdF9zdHJpbmc9YGV2YWwgJHByZXZgCi0rCSAgICBleHBvcnQgZWNo b190ZXN0X3N0cmluZwotKwkgICAgZXhlYyAke09SSUdJTkFMX0NPTkZJR19TSEVMTC0ke0NPTkZJ R19TSEVMTC0vYmluL3NofX0gIlskXTAiICR7MSsiWyRdQCJ9Ci0rCSAgZWxzZQotKwkgICAgIyBP b3BzLiAgV2UgbG9zdCBjb21wbGV0ZWx5LCBzbyBqdXN0IHN0aWNrIHdpdGggZWNoby4KLSsJICAg IEVDSE89ZWNobwotKwkgIGZpCi0rICAgICAgICBmaQotKyAgICAgIGZpCi0rICAgIGZpCi0rICBm aQotK2ZpCi0rCi0rIyBDb3B5IGVjaG8gYW5kIHF1b3RlIHRoZSBjb3B5IHN1aXRhYmx5IGZvciBw YXNzaW5nIHRvIGxpYnRvb2wgZnJvbQotKyMgdGhlIE1ha2VmaWxlLCBpbnN0ZWFkIG9mIHF1b3Rp bmcgdGhlIG9yaWdpbmFsLCB3aGljaCBpcyB1c2VkIGxhdGVyLgotK2x0X0VDSE89JEVDSE8KLStp ZiB0ZXN0ICJYJGx0X0VDSE8iID0gIlgkQ09ORklHX1NIRUxMIFskXTAgLS1mYWxsYmFjay1lY2hv IjsgdGhlbgotKyAgIGx0X0VDSE89IiRDT05GSUdfU0hFTEwgXFxcJFxbJF0wIC0tZmFsbGJhY2st ZWNobyIKLStmaQotKwotK0FDX1NVQlNUKGx0X0VDSE8pCi0rXSkKLStfTFRfREVDTChbXSwgW1NI RUxMXSwgWzFdLCBbU2hlbGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0c10pCi0r X0xUX0RFQ0woW10sIFtFQ0hPXSwgWzFdLAotKyAgICBbQW4gZWNobyBwcm9ncmFtIHRoYXQgZG9l cyBub3QgaW50ZXJwcmV0IGJhY2tzbGFzaGVzXSkKLStdKSMgX0xUX1BST0dfRUNIT19CQUNLU0xB U0gKLSsKLSsKLSsjIF9MVF9FTkFCTEVfTE9DSwotKyMgLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVm dW4oW19MVF9FTkFCTEVfTE9DS10sCi0rW0FDX0FSR19FTkFCTEUoW2xpYnRvb2wtbG9ja10sCi0r ICBbQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1saWJ0b29sLWxvY2tdLAotKyAgICBbYXZvaWQg bG9ja2luZyAobWlnaHQgYnJlYWsgcGFyYWxsZWwgYnVpbGRzKV0pXSkKLSt0ZXN0ICJ4JGVuYWJs ZV9saWJ0b29sX2xvY2siICE9IHhubyAmJiBlbmFibGVfbGlidG9vbF9sb2NrPXllcwotKwotKyMg U29tZSBmbGFncyBuZWVkIHRvIGJlIHByb3BhZ2F0ZWQgdG8gdGhlIGNvbXBpbGVyIG9yIGxpbmtl ciBmb3IgZ29vZAotKyMgbGlidG9vbCBzdXBwb3J0LgotK2Nhc2UgJGhvc3QgaW4KLStpYTY0LSot aHB1eCopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBlY2hvICdp bnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAotKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7 IHRoZW4KLSsgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgot KyAgICAgICpFTEYtMzIqKQotKwlIUFVYX0lBNjRfTU9ERT0iMzIiCi0rCTs7Ci0rICAgICAgKkVM Ri02NCopCi0rCUhQVVhfSUE2NF9NT0RFPSI2NCIKLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLSsg IHJtIC1yZiBjb25mdGVzdCoKLSsgIDs7Ci0rKi0qLWlyaXg2KikKLSsgICMgRmluZCBvdXQgd2hp Y2ggQUJJIHdlIGFyZSB1c2luZy4KLSsgIGVjaG8gJ1sjXWxpbmUgX19vbGluZV9fICJjb25maWd1 cmUiJyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0 aGVuCi0rICAgIGlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAg ICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCi0rCSozMi1iaXQq KQotKwkgIExEPSIke0xELWxkfSAtbWVsZjMyYnNtaXAiCi0rCSAgOzsKLSsJKk4zMiopCi0rCSAg TEQ9IiR7TEQtbGR9IC1tZWxmMzJibWlwbjMyIgotKwkgIDs7Ci0rCSo2NC1iaXQqKQotKwkgIExE PSIke0xELWxkfSAtbWVsZjY0Ym1pcCIKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgIGVsc2UKLSsg ICAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCi0rCSozMi1i aXQqKQotKwkgIExEPSIke0xELWxkfSAtMzIiCi0rCSAgOzsKLSsJKk4zMiopCi0rCSAgTEQ9IiR7 TEQtbGR9IC1uMzIiCi0rCSAgOzsKLSsJKjY0LWJpdCopCi0rCSAgTEQ9IiR7TEQtbGR9IC02NCIK LSsJICA7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3Qq Ci0rICA7OwotKwotK3g4Nl82NC0qa2ZyZWVic2QqLWdudXx4ODZfNjQtKmxpbnV4KnxwcGMqLSps aW51eCp8cG93ZXJwYyotKmxpbnV4KnwgXAotK3MzOTAqLSpsaW51eCp8czM5MCotKnRwZip8c3Bh cmMqLSpsaW51eCopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBl Y2hvICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAotKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29t cGlsZSk7IHRoZW4KLSsgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC5vYCBpbgotKyAg ICAgICozMi1iaXQqKQotKwljYXNlICRob3N0IGluCi0rCSAgeDg2XzY0LSprZnJlZWJzZCotZ251 KQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl9pMzg2X2Zic2QiCi0rCSAgICA7OwotKwkgIHg4 Nl82NC0qbGludXgqKQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl9pMzg2IgotKwkgICAgOzsK LSsJICBwcGM2NC0qbGludXgqfHBvd2VycGM2NC0qbGludXgqKQotKwkgICAgTEQ9IiR7TEQtbGR9 IC1tIGVsZjMycHBjbGludXgiCi0rCSAgICA7OwotKwkgIHMzOTB4LSpsaW51eCopCi0rCSAgICBM RD0iJHtMRC1sZH0gLW0gZWxmX3MzOTAiCi0rCSAgICA7OwotKwkgIHNwYXJjNjQtKmxpbnV4KikK LSsJICAgIExEPSIke0xELWxkfSAtbSBlbGYzMl9zcGFyYyIKLSsJICAgIDs7Ci0rCWVzYWMKLSsJ OzsKLSsgICAgICAqNjQtYml0KikKLSsJY2FzZSAkaG9zdCBpbgotKwkgIHg4Nl82NC0qa2ZyZWVi c2QqLWdudSkKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGZfeDg2XzY0X2Zic2QiCi0rCSAgICA7 OwotKwkgIHg4Nl82NC0qbGludXgqKQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjQi Ci0rCSAgICA7OwotKwkgIHBwYyotKmxpbnV4Knxwb3dlcnBjKi0qbGludXgqKQotKwkgICAgTEQ9 IiR7TEQtbGR9IC1tIGVsZjY0cHBjIgotKwkgICAgOzsKLSsJICBzMzkwKi0qbGludXgqfHMzOTAq LSp0cGYqKQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0X3MzOTAiCi0rCSAgICA7OwotKwkg IHNwYXJjKi0qbGludXgqKQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0X3NwYXJjIgotKwkg ICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICBlc2FjCi0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0 KgotKyAgOzsKLSsKLSsqLSotc2NvMy4ydjUqKQotKyAgIyBPbiBTQ08gT3BlblNlcnZlciA1LCB3 ZSBuZWVkIC1iZWxmIHRvIGdldCBmdWxsLWZlYXR1cmVkIGJpbmFyaWVzLgotKyAgU0FWRV9DRkxB R1M9IiRDRkxBR1MiCi0rICBDRkxBR1M9IiRDRkxBR1MgLWJlbGYiCi0rICBBQ19DQUNIRV9DSEVD Syhbd2hldGhlciB0aGUgQyBjb21waWxlciBuZWVkcyAtYmVsZl0sIGx0X2N2X2NjX25lZWRzX2Jl bGYsCi0rICAgIFtBQ19MQU5HX1BVU0goQykKLSsgICAgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5H X1BST0dSQU0oW1tdXSxbW11dKV0sW2x0X2N2X2NjX25lZWRzX2JlbGY9eWVzXSxbbHRfY3ZfY2Nf bmVlZHNfYmVsZj1ub10pCi0rICAgICBBQ19MQU5HX1BPUF0pCi0rICBpZiB0ZXN0IHgiJGx0X2N2 X2NjX25lZWRzX2JlbGYiICE9IHgieWVzIjsgdGhlbgotKyAgICAjIHRoaXMgaXMgcHJvYmFibHkg Z2NjIDIuOC4wLCBlZ2NzIDEuMCBvciBuZXdlcjsgbm8gbmVlZCBmb3IgLWJlbGYKLSsgICAgQ0ZM QUdTPSIkU0FWRV9DRkxBR1MiCi0rICBmaQotKyAgOzsKLStzcGFyYyotKnNvbGFyaXMqKQotKyAg IyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgotKyAgZWNobyAnaW50IGk7JyA+IGNv bmZ0ZXN0LiRhY19leHQKLSsgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCi0rICAg IGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qub2AgaW4KLSsgICAgKjY0LWJpdCopCi0rICAg ICAgY2FzZSAkbHRfY3ZfcHJvZ19nbnVfbGQgaW4KLSsgICAgICB5ZXMqKSBMRD0iJHtMRC1sZH0g LW0gZWxmNjRfc3BhcmMiIDs7Ci0rICAgICAgKikKLSsJaWYgJHtMRC1sZH0gLTY0IC1yIC1vIGNv bmZ0ZXN0Mi5vIGNvbmZ0ZXN0Lm8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCSAgTEQ9IiR7TEQt bGR9IC02NCIKLSsJZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsgICAgZXNhYwot KyAgZmkKLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIDs7Ci0rZXNhYwotKwotK25lZWRfbG9ja3M9 IiRlbmFibGVfbGlidG9vbF9sb2NrIgotK10pIyBfTFRfRU5BQkxFX0xPQ0sKLSsKLSsKLSsjIF9M VF9DTURfT0xEX0FSQ0hJVkUKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xU X0NNRF9PTERfQVJDSElWRV0sCi0rW0FDX0NIRUNLX1RPT0woQVIsIGFyLCBmYWxzZSkKLSt0ZXN0 IC16ICIkQVIiICYmIEFSPWFyCi0rdGVzdCAteiAiJEFSX0ZMQUdTIiAmJiBBUl9GTEFHUz1jcnUK LStfTFRfREVDTChbXSwgW0FSXSwgWzFdLCBbVGhlIGFyY2hpdmVyXSkKLStfTFRfREVDTChbXSwg W0FSX0ZMQUdTXSwgWzFdKQotKwotK0FDX0NIRUNLX1RPT0woU1RSSVAsIHN0cmlwLCA6KQotK3Rl c3QgLXogIiRTVFJJUCIgJiYgU1RSSVA9OgotK19MVF9ERUNMKFtdLCBbU1RSSVBdLCBbMV0sIFtB IHN5bWJvbCBzdHJpcHBpbmcgcHJvZ3JhbV0pCi0rCi0rQUNfQ0hFQ0tfVE9PTChSQU5MSUIsIHJh bmxpYiwgOikKLSt0ZXN0IC16ICIkUkFOTElCIiAmJiBSQU5MSUI9OgotK19MVF9ERUNMKFtdLCBb UkFOTElCXSwgWzFdLAotKyAgICBbQ29tbWFuZHMgdXNlZCB0byBpbnN0YWxsIGFuIG9sZC1zdHls ZSBhcmNoaXZlXSkKLSsKLSsjIERldGVybWluZSBjb21tYW5kcyB0byBjcmVhdGUgb2xkLXN0eWxl IHN0YXRpYyBhcmNoaXZlcy4KLStvbGRfYXJjaGl2ZV9jbWRzPSckQVIgJEFSX0ZMQUdTICRvbGRs aWIkb2xkb2JqcycKLStvbGRfcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNjQ0ICRvbGRsaWInCi0r b2xkX3Bvc3R1bmluc3RhbGxfY21kcz0KLSsKLStpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgot KyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgb3BlbmJzZCopCi0rICAgIG9sZF9wb3N0aW5zdGFsbF9j bWRzPSIkb2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgLXQgXCRvbGRsaWIiCi0rICAgIDs7 Ci0rICAqKQotKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRz flwkUkFOTElCIFwkb2xkbGliIgotKyAgICA7OwotKyAgZXNhYwotKyAgb2xkX2FyY2hpdmVfY21k cz0iJG9sZF9hcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCi0rZmkKLStfTFRfREVDTChb XSwgW29sZF9wb3N0aW5zdGFsbF9jbWRzXSwgWzJdKQotK19MVF9ERUNMKFtdLCBbb2xkX3Bvc3R1 bmluc3RhbGxfY21kc10sIFsyXSkKLStfTFRfVEFHREVDTChbXSwgW29sZF9hcmNoaXZlX2NtZHNd LCBbMl0sCi0rICAgIFtDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuIG9sZC1zdHlsZSBhcmNoaXZl XSkKLStdKSMgX0xUX0NNRF9PTERfQVJDSElWRQotKwotKwotKyMgX0xUX0NPTVBJTEVSX09QVElP TihNRVNTQUdFLCBWQVJJQUJMRS1OQU1FLCBGTEFHUywKLSsjCQlbT1VUUFVULUZJTEVdLCBbQUNU SU9OLVNVQ0NFU1NdLCBbQUNUSU9OLUZBSUxVUkVdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgd2hl dGhlciB0aGUgZ2l2ZW4gY29tcGlsZXIgb3B0aW9uIHdvcmtzCi0rQUNfREVGVU4oW19MVF9DT01Q SUxFUl9PUFRJT05dLAotK1ttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwK LSttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAotK0FDX0NBQ0hFX0NIRUNLKFskMV0sIFsk Ml0sCi0rICBbJDI9bm8KLSsgICBtNF9pZihbJDRdLCAsIFthY19vdXRmaWxlPWNvbmZ0ZXN0LiRh Y19vYmpleHRdLCBbYWNfb3V0ZmlsZT0kNF0pCi0rICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxl X3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICAgbHRfY29tcGlsZXJfZmxhZz0iJDMi Ci0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFH UyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0 ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0 c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGgg YSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29y cmVjdGx5LgotKyAgICMgVGhlIG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRv IGF2b2lkIGNvbmZ1c2luZyBzZWQuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUi IHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcg OjsgdCcgXAotKyAgIC1lICdzOiBbW14gXV0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcm OjsgdCcgXAotKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCi0rICAgKGV2YWwgZWNo byAiXCJcJGFzX21lOl9fb2xpbmVfXzogJGx0X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19G RCkKLSsgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQotKyAgIGFjX3N0YXR1 cz0kPwotKyAgIGNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAotKyAgIGVjaG8g IiRhc19tZTpfX29saW5lX186IFwkPyA9ICRhY19zdGF0dXMiID4mQVNfTUVTU0FHRV9MT0dfRkQK LSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4K LSsgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9u IGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2Fybmlu Z3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgotKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBp bGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0LmV4cAotKyAgICAg JFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCi0rICAgICBp ZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVy MiA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAgICQyPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAg ICRSTSBjb25mdGVzdCoKLStdKQotKwotK2lmIHRlc3QgeCJbJF0kMiIgPSB4eWVzOyB0aGVuCi0r ICAgIG00X2lmKFskNV0sICwgOiwgWyQ1XSkKLStlbHNlCi0rICAgIG00X2lmKFskNl0sICwgOiwg WyQ2XSkKLStmaQotK10pIyBfTFRfQ09NUElMRVJfT1BUSU9OCi0rCi0rIyBPbGQgbmFtZToKLStB VV9BTElBUyhbQUNfTElCVE9PTF9DT01QSUxFUl9PUFRJT05dLCBbX0xUX0NPTVBJTEVSX09QVElP Tl0pCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBBQ19E RUZVTihbQUNfTElCVE9PTF9DT01QSUxFUl9PUFRJT05dLCBbXSkKLSsKLSsKLSsjIF9MVF9MSU5L RVJfT1BUSU9OKE1FU1NBR0UsIFZBUklBQkxFLU5BTUUsIEZMQUdTLAotKyMgICAgICAgICAgICAg ICAgICBbQUNUSU9OLVNVQ0NFU1NdLCBbQUNUSU9OLUZBSUxVUkVdKQotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgd2hldGhl ciB0aGUgZ2l2ZW4gbGlua2VyIG9wdGlvbiB3b3JrcwotK0FDX0RFRlVOKFtfTFRfTElOS0VSX09Q VElPTl0sCi0rW200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAotK200X3Jl cXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCi0rQUNfQ0FDSEVfQ0hFQ0soWyQxXSwgWyQyXSwKLSsg IFskMj1ubwotKyAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCi0rICAgTERGTEFHUz0iJExERkxB R1MgJDMiCi0rICAgZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4k YWNfZXh0Ci0rICAgaWYgKGV2YWwgJGFjX2xpbmsgMj5jb25mdGVzdC5lcnIpICYmIHRlc3QgLXMg Y29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCi0rICAgICAjIFRoZSBsaW5rZXIgY2FuIG9ubHkgd2Fy biBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5 IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncwotKyAgICAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7 IHRoZW4KLSsgICAgICAgIyBBcHBlbmQgYW55IGVycm9ycyB0byB0aGUgY29uZmlnLmxvZy4KLSsg ICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiZBU19NRVNTQUdFX0xPR19GRAotKyAgICAgICAkRUNI TyAiWCRfbHRfbGlua2VyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBjb25mdGVz dC5leHAKLSsgICAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRl c3QuZXIyCi0rICAgICAgIGlmIGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9u dWxsOyB0aGVuCi0rICAgICAgICAgJDI9eWVzCi0rICAgICAgIGZpCi0rICAgICBlbHNlCi0rICAg ICAgICQyPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgICRSTSAtciBjb25mdGVzdCoKLSsgICBM REZMQUdTPSIkc2F2ZV9MREZMQUdTIgotK10pCi0rCi0raWYgdGVzdCB4IlskXSQyIiA9IHh5ZXM7 IHRoZW4KLSsgICAgbTRfaWYoWyQ0XSwgLCA6LCBbJDRdKQotK2Vsc2UKLSsgICAgbTRfaWYoWyQ1 XSwgLCA6LCBbJDVdKQotK2ZpCi0rXSkjIF9MVF9MSU5LRVJfT1BUSU9OCi0rCi0rIyBPbGQgbmFt ZToKLStBVV9BTElBUyhbQUNfTElCVE9PTF9MSU5LRVJfT1BUSU9OXSwgW19MVF9MSU5LRVJfT1BU SU9OXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFD X0RFRlVOKFtBQ19MSUJUT09MX0xJTktFUl9PUFRJT05dLCBbXSkKLSsKLSsKLSsjIExUX0NNRF9N QVhfTEVOCi0rIy0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtMVF9DTURfTUFYX0xFTl0sCi0r W0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKLSsjIGZpbmQgdGhlIG1heGltdW0g bGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKLStBQ19NU0dfQ0hFQ0tJTkcoW3RoZSBt YXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzXSkKLStBQ19DQUNIRV9WQUwo W2x0X2N2X3N5c19tYXhfY21kX2xlbl0sIFtkbmwKLSsgIGk9MAotKyAgdGVzdHN0cmluZz0iQUJD RCIKLSsKLSsgIGNhc2UgJGJ1aWxkX29zIGluCi0rICBtc2Rvc2RqZ3BwKikKLSsgICAgIyBPbiBE SkdQUCwgdGhpcyB0ZXN0IGNhbiBibG93IHVwIHByZXR0eSBiYWRseSBkdWUgdG8gcHJvYmxlbXMg aW4gbGliYwotKyAgICAjIChhbnkgc2luZ2xlIGFyZ3VtZW50IGV4Y2VlZGluZyAyMDAwIGJ5dGVz IGNhdXNlcyBhIGJ1ZmZlciBvdmVycnVuCi0rICAgICMgZHVyaW5nIGdsb2IgZXhwYW5zaW9uKS4g IEV2ZW4gaWYgaXQgd2VyZSBmaXhlZCwgdGhlIHJlc3VsdCBvZiB0aGlzCi0rICAgICMgY2hlY2sg d291bGQgYmUgbGFyZ2VyIHRoYW4gaXQgc2hvdWxkIGJlLgotKyAgICBsdF9jdl9zeXNfbWF4X2Nt ZF9sZW49MTIyODg7ICAgICMgMTJLIGlzIGFib3V0IHJpZ2h0Ci0rICAgIDs7Ci0rCi0rICBnbnUq KQotKyAgICAjIFVuZGVyIEdOVSBIdXJkLCB0aGlzIHRlc3QgaXMgbm90IHJlcXVpcmVkIGJlY2F1 c2UgdGhlcmUgaXMKLSsgICAgIyBubyBsaW1pdCB0byB0aGUgbGVuZ3RoIG9mIGNvbW1hbmQgbGlu ZSBhcmd1bWVudHMuCi0rICAgICMgTGlidG9vbCB3aWxsIGludGVycHJldCAtMSBhcyBubyBsaW1p dCB3aGF0c29ldmVyCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0tMTsKLSsgICAgOzsKLSsK LSsgIGN5Z3dpbiogfCBtaW5ndyogfCBjZWdjYyopCi0rICAgICMgT24gV2luOXgvTUUsIHRoaXMg dGVzdCBibG93cyB1cCAtLSBpdCBzdWNjZWVkcywgYnV0IHRha2VzCi0rICAgICMgYWJvdXQgNSBt aW51dGVzIGFzIHRoZSB0ZXN0c3RyaW5nIGdyb3dzIGV4cG9uZW50aWFsbHkuCi0rICAgICMgV29y c2UsIHNpbmNlIDl4L01FIGFyZSBub3QgcHJlLWVtcHRpdmVseSBtdWx0aXRhc2tpbmcsCi0rICAg ICMgeW91IGVuZCB1cCB3aXRoIGEgImZyb3plbiIgY29tcHV0ZXIsIGV2ZW4gdGhvdWdoIHdpdGgg cGF0aWVuY2UKLSsgICAgIyB0aGUgdGVzdCBldmVudHVhbGx5IHN1Y2NlZWRzICh3aXRoIGEgbWF4 IGxpbmUgbGVuZ3RoIG9mIDI1NmspLgotKyAgICAjIEluc3RlYWQsIGxldCdzIGp1c3QgcHVudDog dXNlIHRoZSBtaW5pbXVtIGxpbmVsZW5ndGggcmVwb3J0ZWQgYnkKLSsgICAgIyBhbGwgb2YgdGhl IHN1cHBvcnRlZCBwbGF0Zm9ybXM6IDgxOTIgKG9uIE5ULzJLL1hQKS4KLSsgICAgbHRfY3Zfc3lz X21heF9jbWRfbGVuPTgxOTI7Ci0rICAgIDs7Ci0rCi0rICBhbWlnYW9zKikKLSsgICAgIyBPbiBB bWlnYU9TIHdpdGggcGRrc2gsIHRoaXMgdGVzdCB0YWtlcyBob3VycywgbGl0ZXJhbGx5LgotKyAg ICAjIFNvIHdlIGp1c3QgcHVudCBhbmQgdXNlIGEgbWluaW11bSBsaW5lIGxlbmd0aCBvZiA4MTky LgotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKLSsgICAgOzsKLSsKLSsgIG5ldGJz ZCogfCBmcmVlYnNkKiB8IG9wZW5ic2QqIHwgZGFyd2luKiB8IGRyYWdvbmZseSopCi0rICAgICMg VGhpcyBoYXMgYmVlbiBhcm91bmQgc2luY2UgMzg2QlNELCBhdCBsZWFzdC4gIExpa2VseSBmdXJ0 aGVyLgotKyAgICBpZiB0ZXN0IC14IC9zYmluL3N5c2N0bDsgdGhlbgotKyAgICAgIGx0X2N2X3N5 c19tYXhfY21kX2xlbj1gL3NiaW4vc3lzY3RsIC1uIGtlcm4uYXJnbWF4YAotKyAgICBlbGlmIHRl c3QgLXggL3Vzci9zYmluL3N5c2N0bDsgdGhlbgotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xl bj1gL3Vzci9zYmluL3N5c2N0bCAtbiBrZXJuLmFyZ21heGAKLSsgICAgZWxzZQotKyAgICAgIGx0 X2N2X3N5c19tYXhfY21kX2xlbj02NTUzNgkjIHVzYWJsZSBkZWZhdWx0IGZvciBhbGwgQlNEcwot KyAgICBmaQotKyAgICAjIEFuZCBhZGQgYSBzYWZldHkgem9uZQotKyAgICBsdF9jdl9zeXNfbWF4 X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcLyA0YAotKyAgICBsdF9jdl9z eXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcKiAzYAotKyAgICA7 OwotKwotKyAgaW50ZXJpeCopCi0rICAgICMgV2Uga25vdyB0aGUgdmFsdWUgMjYyMTQ0IGFuZCBo YXJkY29kZSBpdCB3aXRoIGEgc2FmZXR5IHpvbmUgKGxpa2UgQlNEKQotKyAgICBsdF9jdl9zeXNf bWF4X2NtZF9sZW49MTk2NjA4Ci0rICAgIDs7Ci0rCi0rICBvc2YqKQotKyAgICAjIERyLiBIYW5z IEVra2VoYXJkIFBsZXNzZXIgcmVwb3J0cyBzZWVpbmcgYSBrZXJuZWwgcGFuaWMgcnVubmluZyBj b25maWd1cmUKLSsgICAgIyBkdWUgdG8gdGhpcyB0ZXN0IHdoZW4gZXhlY19kaXNhYmxlX2FyZ19s aW1pdCBpcyAxIG9uIFRydTY0LiBJdCBpcyBub3QKLSsgICAgIyBuaWNlIHRvIGNhdXNlIGtlcm5l bCBwYW5pY3Mgc28gbGV0cyBhdm9pZCB0aGUgbG9vcCBiZWxvdy4KLSsgICAgIyBGaXJzdCBzZXQg YSByZWFzb25hYmxlIGRlZmF1bHQuCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xNjM4NAot KyAgICAjCi0rICAgIGlmIHRlc3QgLXggL3NiaW4vc3lzY29uZmlnOyB0aGVuCi0rICAgICAgY2Fz ZSBgL3NiaW4vc3lzY29uZmlnIC1xIHByb2MgZXhlY19kaXNhYmxlX2FyZ19saW1pdGAgaW4KLSsg ICAgICAgICoxKikgbHRfY3Zfc3lzX21heF9jbWRfbGVuPS0xIDs7Ci0rICAgICAgZXNhYwotKyAg ICBmaQotKyAgICA7OwotKyAgc2NvMy4ydjUqKQotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49 MTAyNDAwCi0rICAgIDs7Ci0rICBzeXN2NSogfCBzY281djYqIHwgc3lzdjQuMnV3MiopCi0rICAg IGthcmdtYXg9YGdyZXAgQVJHX01BWCAvZXRjL2NvbmYvY2YuZC9zdHVuZSAyPi9kZXYvbnVsbGAK LSsgICAgaWYgdGVzdCAtbiAiJGthcmdtYXgiOyB0aGVuCi0rICAgICAgbHRfY3Zfc3lzX21heF9j bWRfbGVuPWBlY2hvICRrYXJnbWF4IHwgc2VkICdzLy4qW1sJIF1dLy8nYAotKyAgICBlbHNlCi0r ICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTMyNzY4Ci0rICAgIGZpCi0rICAgIDs7Ci0rICAq KQotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YChnZXRjb25mIEFSR19NQVgpIDI+IC9kZXYv bnVsbGAKLSsgICAgaWYgdGVzdCAtbiAiJGx0X2N2X3N5c19tYXhfY21kX2xlbiI7IHRoZW4KLSsg ICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBc LyA0YAotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9j bWRfbGVuIFwqIDNgCi0rICAgIGVsc2UKLSsgICAgICAjIE1ha2UgdGVzdHN0cmluZyBhIGxpdHRs ZSBiaWdnZXIgYmVmb3JlIHdlIGRvIGFueXRoaW5nIHdpdGggaXQuCi0rICAgICAgIyBhIDFLIHN0 cmluZyBzaG91bGQgYmUgYSByZWFzb25hYmxlIHN0YXJ0LgotKyAgICAgIGZvciBpIGluIDEgMiAz IDQgNSA2IDcgOCA7IGRvCi0rICAgICAgICB0ZXN0c3RyaW5nPSR0ZXN0c3RyaW5nJHRlc3RzdHJp bmcKLSsgICAgICBkb25lCi0rICAgICAgU0hFTEw9JHtTSEVMTC0ke0NPTkZJR19TSEVMTC0vYmlu L3NofX0KLSsgICAgICAjIElmIHRlc3QgaXMgbm90IGEgc2hlbGwgYnVpbHQtaW4sIHdlJ2xsIHBy b2JhYmx5IGVuZCB1cCBjb21wdXRpbmcgYQotKyAgICAgICMgbWF4aW11bSBsZW5ndGggdGhhdCBp cyBvbmx5IGhhbGYgb2YgdGhlIGFjdHVhbCBtYXhpbXVtIGxlbmd0aCwgYnV0Ci0rICAgICAgIyB3 ZSBjYW4ndCB0ZWxsLgotKyAgICAgIHdoaWxlIHsgdGVzdCAiWCJgJFNIRUxMIFskXTAgLS1mYWxs YmFjay1lY2hvICJYJHRlc3RzdHJpbmckdGVzdHN0cmluZyIgMj4vZGV2L251bGxgIFwKLSsJICAg ICAgICAgPSAiWFgkdGVzdHN0cmluZyR0ZXN0c3RyaW5nIjsgfSA+L2Rldi9udWxsIDI+JjEgJiYK LSsJICAgICAgdGVzdCAkaSAhPSAxNyAjIDEvMiBNQiBzaG91bGQgYmUgZW5vdWdoCi0rICAgICAg ZG8KLSsgICAgICAgIGk9YGV4cHIgJGkgKyAxYAotKyAgICAgICAgdGVzdHN0cmluZz0kdGVzdHN0 cmluZyR0ZXN0c3RyaW5nCi0rICAgICAgZG9uZQotKyAgICAgICMgT25seSBjaGVjayB0aGUgc3Ry aW5nIGxlbmd0aCBvdXRzaWRlIHRoZSBsb29wLgotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xl bj1gZXhwciAiWCR0ZXN0c3RyaW5nIiA6ICIuKiIgMj4mMWAKLSsgICAgICB0ZXN0c3RyaW5nPQot KyAgICAgICMgQWRkIGEgc2lnbmlmaWNhbnQgc2FmZXR5IGZhY3RvciBiZWNhdXNlIEMrKyBjb21w aWxlcnMgY2FuIHRhY2sgb24KLSsgICAgICAjIG1hc3NpdmUgYW1vdW50cyBvZiBhZGRpdGlvbmFs IGFyZ3VtZW50cyBiZWZvcmUgcGFzc2luZyB0aGVtIHRvIHRoZQotKyAgICAgICMgbGlua2VyLiAg SXQgYXBwZWFycyBhcyB0aG91Z2ggMS8yIGlzIGEgdXNhYmxlIHZhbHVlLgotKyAgICAgIGx0X2N2 X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDJgCi0rICAg IGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rXSkKLStpZiB0ZXN0IC1uICRsdF9jdl9zeXNfbWF4X2Nt ZF9sZW4gOyB0aGVuCi0rICBBQ19NU0dfUkVTVUxUKCRsdF9jdl9zeXNfbWF4X2NtZF9sZW4pCi0r ZWxzZQotKyAgQUNfTVNHX1JFU1VMVChub25lKQotK2ZpCi0rbWF4X2NtZF9sZW49JGx0X2N2X3N5 c19tYXhfY21kX2xlbgotK19MVF9ERUNMKFtdLCBbbWF4X2NtZF9sZW5dLCBbMF0sCi0rICAgIFtX aGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGNvbW1hbmQ/XSkKLStdKSMgTFRfQ01EX01B WF9MRU4KLSsKLSsjIE9sZCBuYW1lOgotK0FVX0FMSUFTKFtBQ19MSUJUT09MX1NZU19NQVhfQ01E X0xFTl0sIFtMVF9DTURfTUFYX0xFTl0pCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21w YXRpYmlsaXR5OgotK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfTUFYX0NNRF9MRU5dLCBb XSkKLSsKLSsKLSsjIF9MVF9IRUFERVJfRExGQ04KLSsjIC0tLS0tLS0tLS0tLS0tLS0KLSttNF9k ZWZ1bihbX0xUX0hFQURFUl9ETEZDTl0sCi0rW0FDX0NIRUNLX0hFQURFUlMoW2RsZmNuLmhdLCBb XSwgW10sIFtBQ19JTkNMVURFU19ERUZBVUxUXSlkbmwKLStdKSMgX0xUX0hFQURFUl9ETEZDTgot KwotKwotKyMgX0xUX1RSWV9ETE9QRU5fU0VMRiAoQUNUSU9OLUlGLVRSVUUsIEFDVElPTi1JRi1U UlVFLVctVVNDT1JFLAotKyMgICAgICAgICAgICAgICAgICAgICAgQUNUSU9OLUlGLUZBTFNFLCBB Q1RJT04tSUYtQ1JPU1MtQ09NUElMSU5HKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZnVuKFtfTFRfVFJZ X0RMT1BFTl9TRUxGXSwKLStbbTRfcmVxdWlyZShbX0xUX0hFQURFUl9ETEZDTl0pZG5sCi0raWYg dGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4gOgotKyAgWyQ0XQotK2Vsc2UKLSsg IGx0X2RsdW5rbm93bj0wOyBsdF9kbG5vX3VzY29yZT0xOyBsdF9kbG5lZWRfdXNjb3JlPTIKLSsg IGx0X3N0YXR1cz0kbHRfZGx1bmtub3duCi0rICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xU X0VPRgotK1sjbGluZSBfX29saW5lX18gImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMu aCIKLSsKLSsjaWYgSEFWRV9ETEZDTl9ICi0rI2luY2x1ZGUgPGRsZmNuLmg+Ci0rI2VuZGlmCi0r Ci0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rCi0rI2lmZGVmIFJUTERfR0xPQkFMCi0rIyAgZGVmaW5l IExUX0RMR0xPQkFMCQlSVExEX0dMT0JBTAotKyNlbHNlCi0rIyAgaWZkZWYgRExfR0xPQkFMCi0r IyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCURMX0dMT0JBTAotKyMgIGVsc2UKLSsjICAgIGRlZmlu ZSBMVF9ETEdMT0JBTAkJMAotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rLyogV2UgbWF5IGhhdmUg dG8gZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cgaW4gdGhlIGNvbW1hbmQgbGluZSBpZiB3ZQotKyAg IGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29tZSBwbGF0Zm9ybS4gKi8KLSsjaWZuZGVm IExUX0RMTEFaWV9PUl9OT1cKLSsjICBpZmRlZiBSVExEX0xBWlkKLSsjICAgIGRlZmluZSBMVF9E TExBWllfT1JfTk9XCQlSVExEX0xBWlkKLSsjICBlbHNlCi0rIyAgICBpZmRlZiBETF9MQVpZCi0r IyAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlETF9MQVpZCi0rIyAgICBlbHNlCi0rIyAg ICAgIGlmZGVmIFJUTERfTk9XCi0rIyAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJUlRM RF9OT1cKLSsjICAgICAgZWxzZQotKyMgICAgICAgIGlmZGVmIERMX05PVwotKyMgICAgICAgICAg ZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCi0rIyAgICAgICAgZWxzZQotKyMgICAgICAg ICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJMAotKyMgICAgICAgIGVuZGlmCi0rIyAgICAgIGVu ZGlmCi0rIyAgICBlbmRpZgotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rdm9pZCBmbm9yZCgpIHsg aW50IGk9NDI7fQotK2ludCBtYWluICgpCi0rewotKyAgdm9pZCAqc2VsZiA9IGRsb3BlbiAoMCwg TFRfRExHTE9CQUx8TFRfRExMQVpZX09SX05PVyk7Ci0rICBpbnQgc3RhdHVzID0gJGx0X2RsdW5r bm93bjsKLSsKLSsgIGlmIChzZWxmKQotKyAgICB7Ci0rICAgICAgaWYgKGRsc3ltIChzZWxmLCJm bm9yZCIpKSAgICAgICBzdGF0dXMgPSAkbHRfZGxub191c2NvcmU7Ci0rICAgICAgZWxzZSBpZiAo ZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSBzdGF0dXMgPSAkbHRfZGxuZWVkX3VzY29yZTsKLSsgICAg ICAvKiBkbGNsb3NlIChzZWxmKTsgKi8KLSsgICAgfQotKyAgZWxzZQotKyAgICBwdXRzIChkbGVy cm9yICgpKTsKLSsKLSsgIHJldHVybiBzdGF0dXM7Ci0rfV0KLStfTFRfRU9GCi0rICBpZiBBQ19U UllfRVZBTChhY19saW5rKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9IDI+L2Rldi9u dWxsOyB0aGVuCi0rICAgICguL2NvbmZ0ZXN0OyBleGl0OyApID4mQVNfTUVTU0FHRV9MT0dfRkQg Mj4vZGV2L251bGwKLSsgICAgbHRfc3RhdHVzPSQ/Ci0rICAgIGNhc2UgeCRsdF9zdGF0dXMgaW4K LSsgICAgICB4JGx0X2Rsbm9fdXNjb3JlKSAkMSA7OwotKyAgICAgIHgkbHRfZGxuZWVkX3VzY29y ZSkgJDIgOzsKLSsgICAgICB4JGx0X2RsdW5rbm93bnx4KikgJDMgOzsKLSsgICAgZXNhYwotKyAg ZWxzZSA6Ci0rICAgICMgY29tcGlsYXRpb24gZmFpbGVkCi0rICAgICQzCi0rICBmaQotK2ZpCi0r cm0gLWZyIGNvbmZ0ZXN0KgotK10pIyBfTFRfVFJZX0RMT1BFTl9TRUxGCi0rCi0rCi0rIyBMVF9T WVNfRExPUEVOX1NFTEYKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtMVF9TWVNf RExPUEVOX1NFTEZdLAotK1ttNF9yZXF1aXJlKFtfTFRfSEVBREVSX0RMRkNOXSlkbmwKLStpZiB0 ZXN0ICJ4JGVuYWJsZV9kbG9wZW4iICE9IHh5ZXM7IHRoZW4KLSsgIGVuYWJsZV9kbG9wZW49dW5r bm93bgotKyAgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25vd24KLSsgIGVuYWJsZV9kbG9wZW5fc2Vs Zl9zdGF0aWM9dW5rbm93bgotK2Vsc2UKLSsgIGx0X2N2X2Rsb3Blbj1ubwotKyAgbHRfY3ZfZGxv cGVuX2xpYnM9Ci0rCi0rICBjYXNlICRob3N0X29zIGluCi0rICBiZW9zKikKLSsgICAgbHRfY3Zf ZGxvcGVuPSJsb2FkX2FkZF9vbiIKLSsgICAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0rICAgIGx0X2N2 X2Rsb3Blbl9zZWxmPXllcwotKyAgICA7OwotKwotKyAgbWluZ3cqIHwgcHczMiogfCBjZWdjYyop Ci0rICAgIGx0X2N2X2Rsb3Blbj0iTG9hZExpYnJhcnkiCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJz PQotKyAgICA7OwotKwotKyAgY3lnd2luKikKLSsgICAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iCi0r ICAgIGx0X2N2X2Rsb3Blbl9saWJzPQotKyAgICA7OwotKwotKyAgZGFyd2luKikKLSsgICMgaWYg bGliZGwgaXMgaW5zdGFsbGVkIHdlIG5lZWQgdG8gbGluayBhZ2FpbnN0IGl0Ci0rICAgIEFDX0NI RUNLX0xJQihbZGxdLCBbZGxvcGVuXSwKLSsJCVtsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3Zf ZGxvcGVuX2xpYnM9Ii1sZGwiXSxbCi0rICAgIGx0X2N2X2Rsb3Blbj0iZHlsZCIKLSsgICAgbHRf Y3ZfZGxvcGVuX2xpYnM9Ci0rICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcwotKyAgICBdKQotKyAg ICA7OwotKwotKyAgKikKLSsgICAgQUNfQ0hFQ0tfRlVOQyhbc2hsX2xvYWRdLAotKwkgIFtsdF9j dl9kbG9wZW49InNobF9sb2FkIl0sCi0rICAgICAgW0FDX0NIRUNLX0xJQihbZGxkXSwgW3NobF9s b2FkXSwKLSsJICAgIFtsdF9jdl9kbG9wZW49InNobF9sb2FkIiBsdF9jdl9kbG9wZW5fbGlicz0i LWxkbGQiXSwKLSsJW0FDX0NIRUNLX0ZVTkMoW2Rsb3Blbl0sCi0rCSAgICAgIFtsdF9jdl9kbG9w ZW49ImRsb3BlbiJdLAotKwkgIFtBQ19DSEVDS19MSUIoW2RsXSwgW2Rsb3Blbl0sCi0rCQlbbHRf Y3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIl0sCi0rCSAgICBbQUNf Q0hFQ0tfTElCKFtzdmxkXSwgW2Rsb3Blbl0sCi0rCQkgIFtsdF9jdl9kbG9wZW49ImRsb3BlbiIg bHRfY3ZfZGxvcGVuX2xpYnM9Ii1sc3ZsZCJdLAotKwkgICAgICBbQUNfQ0hFQ0tfTElCKFtkbGRd LCBbZGxkX2xpbmtdLAotKwkJICAgIFtsdF9jdl9kbG9wZW49ImRsZF9saW5rIiBsdF9jdl9kbG9w ZW5fbGlicz0iLWxkbGQiXSkKLSsJICAgICAgXSkKLSsJICAgIF0pCi0rCSAgXSkKLSsJXSkKLSsg ICAgICBdKQotKyAgICA7OwotKyAgZXNhYwotKwotKyAgaWYgdGVzdCAieCRsdF9jdl9kbG9wZW4i ICE9IHhubzsgdGhlbgotKyAgICBlbmFibGVfZGxvcGVuPXllcwotKyAgZWxzZQotKyAgICBlbmFi bGVfZGxvcGVuPW5vCi0rICBmaQotKwotKyAgY2FzZSAkbHRfY3ZfZGxvcGVuIGluCi0rICBkbG9w ZW4pCi0rICAgIHNhdmVfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKLSsgICAgdGVzdCAieCRhY19jdl9o ZWFkZXJfZGxmY25faCIgPSB4eWVzICYmIENQUEZMQUdTPSIkQ1BQRkxBR1MgLURIQVZFX0RMRkNO X0giCi0rCi0rICAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCi0rICAgIHdsPSRsdF9wcm9nX2Nv bXBpbGVyX3dsIGV2YWwgTERGTEFHUz1cIlwkTERGTEFHUyAkZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjXCIKLSsKLSsgICAgc2F2ZV9MSUJTPSIkTElCUyIKLSsgICAgTElCUz0iJGx0X2N2X2Rsb3Bl bl9saWJzICRMSUJTIgotKwotKyAgICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciBhIHByb2dyYW0g Y2FuIGRsb3BlbiBpdHNlbGZdLAotKwkgIGx0X2N2X2Rsb3Blbl9zZWxmLCBbZG5sCi0rCSAgX0xU X1RSWV9ETE9QRU5fU0VMRigKLSsJICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcywgbHRfY3ZfZGxv cGVuX3NlbGY9eWVzLAotKwkgICAgbHRfY3ZfZGxvcGVuX3NlbGY9bm8sIGx0X2N2X2Rsb3Blbl9z ZWxmPWNyb3NzKQotKyAgICBdKQotKwotKyAgICBpZiB0ZXN0ICJ4JGx0X2N2X2Rsb3Blbl9zZWxm IiA9IHh5ZXM7IHRoZW4KLSsgICAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxB R1M9XCJcJExERkxBR1MgJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljXCIKLSsgICAgICBBQ19DQUNI RV9DSEVDSyhbd2hldGhlciBhIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW0gY2FuIGRsb3BlbiBp dHNlbGZdLAotKwkgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYywgW2RubAotKwkgIF9MVF9UUllf RExPUEVOX1NFTEYoCi0rCSAgICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9eWVzLCBsdF9jdl9k bG9wZW5fc2VsZl9zdGF0aWM9eWVzLAotKwkgICAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPW5v LCAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPWNyb3NzKQotKyAgICAgIF0pCi0rICAgIGZpCi0r Ci0rICAgIENQUEZMQUdTPSIkc2F2ZV9DUFBGTEFHUyIKLSsgICAgTERGTEFHUz0iJHNhdmVfTERG TEFHUyIKLSsgICAgTElCUz0iJHNhdmVfTElCUyIKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGNh c2UgJGx0X2N2X2Rsb3Blbl9zZWxmIGluCi0rICB5ZXN8bm8pIGVuYWJsZV9kbG9wZW5fc2VsZj0k bHRfY3ZfZGxvcGVuX3NlbGYgOzsKLSsgICopIGVuYWJsZV9kbG9wZW5fc2VsZj11bmtub3duIDs7 Ci0rICBlc2FjCi0rCi0rICBjYXNlICRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMgaW4KLSsgIHll c3xubykgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz0kbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGlj IDs7Ci0rICAqKSBlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPXVua25vd24gOzsKLSsgIGVzYWMK LStmaQotK19MVF9ERUNMKFtkbG9wZW5fc3VwcG9ydF0sIFtlbmFibGVfZGxvcGVuXSwgWzBdLAot KwkgW1doZXRoZXIgZGxvcGVuIGlzIHN1cHBvcnRlZF0pCi0rX0xUX0RFQ0woW2Rsb3Blbl9zZWxm XSwgW2VuYWJsZV9kbG9wZW5fc2VsZl0sIFswXSwKLSsJIFtXaGV0aGVyIGRsb3BlbiBvZiBwcm9n cmFtcyBpcyBzdXBwb3J0ZWRdKQotK19MVF9ERUNMKFtkbG9wZW5fc2VsZl9zdGF0aWNdLCBbZW5h YmxlX2Rsb3Blbl9zZWxmX3N0YXRpY10sIFswXSwKLSsJIFtXaGV0aGVyIGRsb3BlbiBvZiBzdGF0 aWNhbGx5IGxpbmtlZCBwcm9ncmFtcyBpcyBzdXBwb3J0ZWRdKQotK10pIyBMVF9TWVNfRExPUEVO X1NFTEYKLSsKLSsjIE9sZCBuYW1lOgotK0FVX0FMSUFTKFtBQ19MSUJUT09MX0RMT1BFTl9TRUxG XSwgW0xUX1NZU19ETE9QRU5fU0VMRl0pCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21w YXRpYmlsaXR5OgotK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9ETE9QRU5fU0VMRl0sIFtdKQot KwotKwotKyMgX0xUX0NPTVBJTEVSX0NfTyhbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSsjIENoZWNrIHRvIHNlZSBpZiBvcHRpb25zIC1jIGFuZCAtbyBhcmUgc2lt dWx0YW5lb3VzbHkgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyLgotKyMgVGhpcyBtYWNybyBkb2VzIG5v dCBoYXJkIGNvZGUgdGhlIGNvbXBpbGVyIGxpa2UgQUNfUFJPR19DQ19DX08uCi0rbTRfZGVmdW4o W19MVF9DT01QSUxFUl9DX09dLAotK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAotK200 X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAotK200X3JlcXVpcmUoW19MVF9U QUdfQ09NUElMRVJdKWRubAotK0FDX0NBQ0hFX0NIRUNLKFtpZiAkY29tcGlsZXIgc3VwcG9ydHMg LWMgLW8gZmlsZS4kYWNfb2JqZXh0XSwKLSsgIFtfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGls ZXJfY19vLCAkMSldLAotKyAgW19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQx KT1ubwotKyAgICRSTSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAotKyAgIG1rZGlyIGNvbmZ0ZXN0 Ci0rICAgY2QgY29uZnRlc3QKLSsgICBta2RpciBvdXQKLSsgICBlY2hvICIkbHRfc2ltcGxlX2Nv bXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICBsdF9jb21waWxlcl9m bGFnPSItbyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlv biBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgy KSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5k LgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJh Y2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlw aGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgIGx0X2NvbXBpbGU9 YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6 JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW1teIF1dKmNvbmZ0ZXN0XC46 ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxh ZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTpfX29saW5lX186ICRsdF9jb21waWxlXCIi ID4mQVNfTUVTU0FHRV9MT0dfRkQpCi0rICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9jb25m dGVzdC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IG91dC9jb25mdGVzdC5lcnIgPiZB U19NRVNTQUdFX0xPR19GRAotKyAgIGVjaG8gIiRhc19tZTpfX29saW5lX186IFwkPyA9ICRhY19z dGF0dXMiID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0 ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4dAotKyAgIHRoZW4KLSsgICAgICMgVGhlIGNv bXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25p emVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsgICAgICRFQ0hP ICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gb3V0L2Nv bmZ0ZXN0LmV4cAotKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIg Pm91dC9jb25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8 IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4K LSsgICAgICAgX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbywgJDEpPXllcwotKyAg ICAgZmkKLSsgICBmaQotKyAgIGNobW9kIHUrdyAuIDI+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAg JFJNIGNvbmZ0ZXN0KgotKyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rv cnkgb3V0L2lpX2ZpbGVzLyBmb3IKLSsgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KLSsgICB0 ZXN0IC1kIG91dC9paV9maWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lp X2ZpbGVzCi0rICAgJFJNIG91dC8qICYmIHJtZGlyIG91dAotKyAgIGNkIC4uCi0rICAgJFJNIC1y IGNvbmZ0ZXN0Ci0rICAgJFJNIGNvbmZ0ZXN0KgotK10pCi0rX0xUX1RBR0RFQ0woW2NvbXBpbGVy X2Nfb10sIFtsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb10sIFsxXSwKLSsJW0RvZXMgY29tcGlsZXIg c2ltdWx0YW5lb3VzbHkgc3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz9dKQotK10pIyBfTFRfQ09N UElMRVJfQ19PCi0rCi0rCi0rIyBfTFRfQ09NUElMRVJfRklMRV9MT0NLUyhbVEFHTkFNRV0pCi0r IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayB0byBzZWUgaWYg d2UgY2FuIGRvIGhhcmQgbGlua3MgdG8gbG9jayBzb21lIGZpbGVzIGlmIG5lZWRlZAotK200X2Rl ZnVuKFtfTFRfQ09NUElMRVJfRklMRV9MT0NLU10sCi0rW200X3JlcXVpcmUoW19MVF9FTkFCTEVf TE9DS10pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCi0rX0xU X0NPTVBJTEVSX0NfTyhbJDFdKQotKwotK2hhcmRfbGlua3M9Im5vdHRlc3RlZCIKLStpZiB0ZXN0 ICIkX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbywgJDEpIiA9IG5vICYmIHRlc3Qg IiRuZWVkX2xvY2tzIiAhPSBubzsgdGhlbgotKyAgIyBkbyBub3Qgb3ZlcndyaXRlIHRoZSB2YWx1 ZSBvZiBuZWVkX2xvY2tzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyCi0rICBBQ19NU0dfQ0hFQ0tJTkco W2lmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rc10pCi0rICBoYXJkX2xpbmtzPXllcwotKyAg JFJNIGNvbmZ0ZXN0KgotKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYm IGhhcmRfbGlua3M9bm8KLSsgIHRvdWNoIGNvbmZ0ZXN0LmEKLSsgIGxuIGNvbmZ0ZXN0LmEgY29u ZnRlc3QuYiAyPiY1IHx8IGhhcmRfbGlua3M9bm8KLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3Qu YiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0rICBBQ19NU0dfUkVTVUxUKFskaGFyZF9s aW5rc10pCi0rICBpZiB0ZXN0ICIkaGFyZF9saW5rcyIgPSBubzsgdGhlbgotKyAgICBBQ19NU0df V0FSTihbYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBgLWMgLW8nLCBzbyBgbWFrZSAtaicgbWF5IGJl IHVuc2FmZV0pCi0rICAgIG5lZWRfbG9ja3M9d2FybgotKyAgZmkKLStlbHNlCi0rICBuZWVkX2xv Y2tzPW5vCi0rZmkKLStfTFRfREVDTChbXSwgW25lZWRfbG9ja3NdLCBbMV0sIFtNdXN0IHdlIGxv Y2sgZmlsZXMgd2hlbiBkb2luZyBjb21waWxhdGlvbj9dKQotK10pIyBfTFRfQ09NUElMRVJfRklM RV9MT0NLUwotKwotKwotKyMgX0xUX0NIRUNLX09CSkRJUgotKyMgLS0tLS0tLS0tLS0tLS0tLQot K200X2RlZnVuKFtfTFRfQ0hFQ0tfT0JKRElSXSwKLStbQUNfQ0FDSEVfQ0hFQ0soW2ZvciBvYmpk aXJdLCBbbHRfY3Zfb2JqZGlyXSwKLStbcm0gLWYgLmxpYnMgMj4vZGV2L251bGwKLStta2RpciAu bGlicyAyPi9kZXYvbnVsbAotK2lmIHRlc3QgLWQgLmxpYnM7IHRoZW4KLSsgIGx0X2N2X29iamRp cj0ubGlicwotK2Vsc2UKLSsgICMgTVMtRE9TIGRvZXMgbm90IGFsbG93IGZpbGVuYW1lcyB0aGF0 IGJlZ2luIHdpdGggYSBkb3QuCi0rICBsdF9jdl9vYmpkaXI9X2xpYnMKLStmaQotK3JtZGlyIC5s aWJzIDI+L2Rldi9udWxsXSkKLStvYmpkaXI9JGx0X2N2X29iamRpcgotK19MVF9ERUNMKFtdLCBb b2JqZGlyXSwgWzBdLAotKyAgICAgICAgIFtUaGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5IHRoYXQg Y29udGFpbnMgdGVtcG9yYXJ5IGxpYnRvb2wgZmlsZXNdKWRubAotK200X3BhdHRlcm5fYWxsb3co W0xUX09CSkRJUl0pZG5sCi0rQUNfREVGSU5FX1VOUVVPVEVEKExUX09CSkRJUiwgIiRsdF9jdl9v YmpkaXIvIiwKLSsgIFtEZWZpbmUgdG8gdGhlIHN1Yi1kaXJlY3RvcnkgaW4gd2hpY2ggbGlidG9v bCBzdG9yZXMgdW5pbnN0YWxsZWQgbGlicmFyaWVzLl0pCi0rXSkjIF9MVF9DSEVDS19PQkpESVIK LSsKLSsKLSsjIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSChbVEFHTkFNRV0pCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgaGFyZGNvZGluZyBh dHRyaWJ1dGVzLgotK200X2RlZnVuKFtfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEhdLAotK1tB Q19NU0dfQ0hFQ0tJTkcoW2hvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3Jh bXNdKQotK19MVF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSk9Ci0raWYgdGVzdCAtbiAiJF9M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpIiB8fAotKyAgIHRlc3QgLW4g IiRfTFRfVEFHVkFSKHJ1bnBhdGhfdmFyLCAkMSkiIHx8Ci0rICAgdGVzdCAiWCRfTFRfVEFHVkFS KGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpIiA9ICJYeWVzIiA7IHRoZW4KLSsKLSsgICMgV2UgY2Fu IGhhcmRjb2RlIG5vbi1leGlzdGVudCBkaXJlY3Rvcmllcy4KLSsgIGlmIHRlc3QgIiRfTFRfVEFH VkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpIiAhPSBubyAmJgotKyAgICAgIyBJZiB0aGUgb25seSBt ZWNoYW5pc20gdG8gYXZvaWQgaGFyZGNvZGluZyBpcyBzaGxpYnBhdGhfdmFyLCB3ZQotKyAgICAg IyBoYXZlIHRvIHJlbGluaywgb3RoZXJ3aXNlIHdlIG1pZ2h0IGxpbmsgd2l0aCBhbiBpbnN0YWxs ZWQgbGlicmFyeQotKyAgICAgIyB3aGVuIHdlIHNob3VsZCBiZSBsaW5raW5nIHdpdGggYSB5ZXQt dG8tYmUtaW5zdGFsbGVkIG9uZQotKyAgICAgIyMgdGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNvZGVf c2hsaWJwYXRoX3ZhciwgJDEpIiAhPSBubyAmJgotKyAgICAgdGVzdCAiJF9MVF9UQUdWQVIoaGFy ZGNvZGVfbWludXNfTCwgJDEpIiAhPSBubzsgdGhlbgotKyAgICAjIExpbmtpbmcgYWx3YXlzIGhh cmRjb2RlcyB0aGUgdGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0b3J5LgotKyAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX2FjdGlvbiwgJDEpPXJlbGluawotKyAgZWxzZQotKyAgICAjIFdlIGNhbiBsaW5r IHdpdGhvdXQgaGFyZGNvZGluZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlzdGluZyBkaXJz LgotKyAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpPWltbWVkaWF0ZQotKyAgZmkK LStlbHNlCi0rICAjIFdlIGNhbm5vdCBoYXJkY29kZSBhbnl0aGluZywgb3IgZWxzZSB3ZSBjYW4g b25seSBoYXJkY29kZSBleGlzdGluZwotKyAgIyBkaXJlY3Rvcmllcy4KLSsgIF9MVF9UQUdWQVIo aGFyZGNvZGVfYWN0aW9uLCAkMSk9dW5zdXBwb3J0ZWQKLStmaQotK0FDX01TR19SRVNVTFQoWyRf TFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpXSkKLSsKLStpZiB0ZXN0ICIkX0xUX1RBR1ZB UihoYXJkY29kZV9hY3Rpb24sICQxKSIgPSByZWxpbmsgfHwKLSsgICB0ZXN0ICIkX0xUX1RBR1ZB Uihpbmhlcml0X3JwYXRoLCAkMSkiID0geWVzOyB0aGVuCi0rICAjIEZhc3QgaW5zdGFsbGF0aW9u IGlzIG5vdCBzdXBwb3J0ZWQKLSsgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KLStlbGlmIHRlc3Qg IiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzIHx8Ci0rICAgICB0ZXN0ICIkZW5h YmxlX3NoYXJlZCIgPSBubzsgdGhlbgotKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3QgbmVj ZXNzYXJ5Ci0rICBlbmFibGVfZmFzdF9pbnN0YWxsPW5lZWRsZXNzCi0rZmkKLStfTFRfVEFHREVD TChbXSwgW2hhcmRjb2RlX2FjdGlvbl0sIFswXSwKLSsgICAgW0hvdyB0byBoYXJkY29kZSBhIHNo YXJlZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxlXSkKLStdKSMgX0xUX0xJTktFUl9I QVJEQ09ERV9MSUJQQVRICi0rCi0rCi0rIyBfTFRfQ01EX1NUUklQTElCCi0rIyAtLS0tLS0tLS0t LS0tLS0tCi0rbTRfZGVmdW4oW19MVF9DTURfU1RSSVBMSUJdLAotK1ttNF9yZXF1aXJlKFtfTFRf REVDTF9FR1JFUF0pCi0rc3RyaXBsaWI9Ci0rb2xkX3N0cmlwbGliPQotK0FDX01TR19DSEVDS0lO Ryhbd2hldGhlciBzdHJpcHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlXSkKLStpZiB0ZXN0IC1u ICIkU1RSSVAiICYmICRTVFJJUCAtViAyPiYxIHwgJEdSRVAgIkdOVSBzdHJpcCIgPi9kZXYvbnVs bDsgdGhlbgotKyAgdGVzdCAteiAiJG9sZF9zdHJpcGxpYiIgJiYgb2xkX3N0cmlwbGliPSIkU1RS SVAgLS1zdHJpcC1kZWJ1ZyIKLSsgIHRlc3QgLXogIiRzdHJpcGxpYiIgJiYgc3RyaXBsaWI9IiRT VFJJUCAtLXN0cmlwLXVubmVlZGVkIgotKyAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLStlbHNlCi0r IyBGSVhNRSAtIGluc2VydCBzb21lIHJlYWwgdGVzdHMsIGhvc3Rfb3MgaXNuJ3QgcmVhbGx5IGdv b2QgZW5vdWdoCi0rICBjYXNlICRob3N0X29zIGluCi0rICBkYXJ3aW4qKQotKyAgICBpZiB0ZXN0 IC1uICIkU1RSSVAiIDsgdGhlbgotKyAgICAgIHN0cmlwbGliPSIkU1RSSVAgLXgiCi0rICAgICAg b2xkX3N0cmlwbGliPSIkU1RSSVAgLVMiCi0rICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLSsg ICAgZWxzZQotKyAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgZmkKLSsgICAgOzsKLSsg ICopCi0rICAgIEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgOzsKLSsgIGVzYWMKLStmaQotK19M VF9ERUNMKFtdLCBbb2xkX3N0cmlwbGliXSwgWzFdLCBbQ29tbWFuZHMgdG8gc3RyaXAgbGlicmFy aWVzXSkKLStfTFRfREVDTChbXSwgW3N0cmlwbGliXSwgWzFdKQotK10pIyBfTFRfQ01EX1NUUklQ TElCCi0rCi0rCi0rIyBfTFRfU1lTX0RZTkFNSUNfTElOS0VSKFtUQUddKQotKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFBPUlRNRSBGaWxsIGluIHlvdXIgbGQuc28gY2hhcmFj dGVyaXN0aWNzCi0rbTRfZGVmdW4oW19MVF9TWVNfRFlOQU1JQ19MSU5LRVJdLAotK1tBQ19SRVFV SVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBd KWRubAotK200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAotK200X3JlcXVp cmUoW19MVF9ERUNMX09CSkRVTVBdKWRubAotK200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5s Ci0rQUNfTVNHX0NIRUNLSU5HKFtkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3NdKQotK200 X2lmKFskMV0sCi0rCVtdLCBbCi0raWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgIGNhc2Ug JGhvc3Rfb3MgaW4KLSsgICAgZGFyd2luKikgbHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LywvTFIv IiA7OwotKyAgICAqKSBsdF9hd2tfYXJnPSIvXmxpYnJhcmllczovIiA7OwotKyAgZXNhYwotKyAg bHRfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8IGF3ayAkbHRfYXdr X2FyZyB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgInMsPS8sLyxnImAKLSsgIGlmICRF Q0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkR1JFUCAnOycgPi9kZXYvbnVsbCA7IHRoZW4K LSsgICAgIyBpZiB0aGUgcGF0aCBjb250YWlucyAiOyIgdGhlbiB3ZSBhc3N1bWUgaXQgdG8gYmUg dGhlIHNlcGFyYXRvcgotKyAgICAjIG90aGVyd2lzZSBkZWZhdWx0IHRvIHRoZSBzdGFuZGFyZCBw YXRoIHNlcGFyYXRvciAoaS5lLiAiOiIpIC0gaXQgaXMKLSsgICAgIyBhc3N1bWVkIHRoYXQgbm8g cGFydCBvZiBhIG5vcm1hbCBwYXRobmFtZSBjb250YWlucyAiOyIgYnV0IHRoYXQgc2hvdWxkCi0r ICAgICMgb2theSBpbiB0aGUgcmVhbCB3b3JsZCB3aGVyZSAiOyIgaW4gZGlycGF0aHMgaXMgaXRz ZWxmIHByb2JsZW1hdGljLgotKyAgICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3Nl YXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCi0rICBlbHNlCi0rICAgIGx0X3Nl YXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICAtZSAi cy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKLSsgIGZpCi0rICAjIE9rLCBub3cgd2UgaGF2ZSB0aGUg cGF0aCwgc2VwYXJhdGVkIGJ5IHNwYWNlcywgd2UgY2FuIHN0ZXAgdGhyb3VnaCBpdAotKyAgIyBh bmQgYWRkIG11bHRpbGliIGRpciBpZiBuZWNlc3NhcnkuCi0rICBsdF90bXBfbHRfc2VhcmNoX3Bh dGhfc3BlYz0KLSsgIGx0X211bHRpX29zX2Rpcj1gJENDICRDUFBGTEFHUyAkQ0ZMQUdTICRMREZM QUdTIC1wcmludC1tdWx0aS1vcy1kaXJlY3RvcnkgMj4vZGV2L251bGxgCi0rICBmb3IgbHRfc3lz X3BhdGggaW4gJGx0X3NlYXJjaF9wYXRoX3NwZWM7IGRvCi0rICAgIGlmIHRlc3QgLWQgIiRsdF9z eXNfcGF0aC8kbHRfbXVsdGlfb3NfZGlyIjsgdGhlbgotKyAgICAgIGx0X3RtcF9sdF9zZWFyY2hf cGF0aF9zcGVjPSIkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMgJGx0X3N5c19wYXRoLyRsdF9t dWx0aV9vc19kaXIiCi0rICAgIGVsc2UKLSsgICAgICB0ZXN0IC1kICIkbHRfc3lzX3BhdGgiICYm IFwKLSsJbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9IiRsdF90bXBfbHRfc2VhcmNoX3BhdGhf c3BlYyAkbHRfc3lzX3BhdGgiCi0rICAgIGZpCi0rICBkb25lCi0rICBsdF9zZWFyY2hfcGF0aF9z cGVjPWAkRUNITyAkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMgfCBhd2sgJwotK0JFR0lOIHtS Uz0iICI7IEZTPSIvfFxuIjt9IHsKLSsgIGx0X2Zvbz0iIjsKLSsgIGx0X2NvdW50PTA7Ci0rICBm b3IgKGx0X2kgPSBORjsgbHRfaSA+IDA7IGx0X2ktLSkgewotKyAgICBpZiAoJGx0X2kgIT0gIiIg JiYgJGx0X2kgIT0gIi4iKSB7Ci0rICAgICAgaWYgKCRsdF9pID09ICIuLiIpIHsKLSsgICAgICAg IGx0X2NvdW50Kys7Ci0rICAgICAgfSBlbHNlIHsKLSsgICAgICAgIGlmIChsdF9jb3VudCA9PSAw KSB7Ci0rICAgICAgICAgIGx0X2Zvbz0iLyIgJGx0X2kgbHRfZm9vOwotKyAgICAgICAgfSBlbHNl IHsKLSsgICAgICAgICAgbHRfY291bnQtLTsKLSsgICAgICAgIH0KLSsgICAgICB9Ci0rICAgIH0K LSsgIH0KLSsgIGlmIChsdF9mb28gIT0gIiIpIHsgbHRfZnJlcVtbbHRfZm9vXV0rKzsgfQotKyAg aWYgKGx0X2ZyZXFbW2x0X2Zvb11dID09IDEpIHsgcHJpbnQgbHRfZm9vOyB9Ci0rfSdgCi0rICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICRsdF9zZWFyY2hfcGF0aF9zcGVjYAotK2Vs c2UKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiAvdXNyL2xvY2Fs L2xpYiIKLStmaV0pCi0rbGlicmFyeV9uYW1lc19zcGVjPQotK2xpYm5hbWVfc3BlYz0nbGliJG5h bWUnCi0rc29uYW1lX3NwZWM9Ci0rc2hyZXh0X2NtZHM9Ii5zbyIKLStwb3N0aW5zdGFsbF9jbWRz PQotK3Bvc3R1bmluc3RhbGxfY21kcz0KLStmaW5pc2hfY21kcz0KLStmaW5pc2hfZXZhbD0KLStz aGxpYnBhdGhfdmFyPQotK3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD11bmtub3duCi0rdmVy c2lvbl90eXBlPW5vbmUKLStkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCi0rc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIiCi0rbmVlZF9saWJfcHJlZml4PXVu a25vd24KLStoYXJkY29kZV9pbnRvX2xpYnM9bm8KLSsKLSsjIHdoZW4geW91IHNldCBuZWVkX3Zl cnNpb24gdG8gbm8sIG1ha2Ugc3VyZSBpdCBkb2VzIG5vdCBjYXVzZSAtc2V0X3ZlcnNpb24KLSsj IGZsYWdzIHRvIGJlIGxlZnQgd2l0aG91dCBhcmd1bWVudHMKLStuZWVkX3ZlcnNpb249dW5rbm93 bgotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgzKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAot KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICRsaWJuYW1lLmEnCi0rICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsKLSsgICMg QUlYIDMgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28gd2UgYXBwZW5kIGEgbWFqb3IgdmVy c2lvbiB0byB0aGUgbmFtZS4KLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCi0rICA7OwotKwotK2FpeFtbNC05XV0qKQotKyAgdmVyc2lvbl90 eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAg aGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRo ZW4KLSsgICAgIyBBSVggNSBzdXBwb3J0cyBJQTY0Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgZWxzZQotKyAgICAjIFdpdGggR0NDIHVw IHRvIDIuOTUueCwgY29sbGVjdDIgd291bGQgY3JlYXRlIGFuIGltcG9ydCBmaWxlCi0rICAgICMg Zm9yIGRlcGVuZGVuY2UgbGlicmFyaWVzLiAgVGhlIGltcG9ydCBmaWxlIHdvdWxkIHN0YXJ0IHdp dGgKLSsgICAgIyB0aGUgbGluZSBgIyEgLicuICBUaGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5lcmF0 ZWQgbGlicmFyeSB0bwotKyAgICAjIGRlcGVuZCBvbiBgLicsIGFsd2F5cyBhbiBpbnZhbGlkIGxp YnJhcnkuICBUaGlzIHdhcyBmaXhlZCBpbgotKyAgICAjIGRldmVsb3BtZW50IHNuYXBzaG90cyBv ZiBHQ0MgcHJpb3IgdG8gMy4wLgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4NCB8 IGFpeDQuW1swMV1dIHwgYWl4NC5bWzAxXV0uKikKLSsgICAgICBpZiB7IGVjaG8gJyNpZiBfX0dO VUNfXyA+IDIgfHwgKF9fR05VQ19fID09IDIgJiYgX19HTlVDX01JTk9SX18gPj0gOTcpJwotKwkg ICBlY2hvICcgeWVzICcKLSsJICAgZWNobyAnI2VuZGlmJzsgfSB8ICR7Q0N9IC1FIC0gfCAkR1JF UCB5ZXMgPiAvZGV2L251bGw7IHRoZW4KLSsJOgotKyAgICAgIGVsc2UKLSsJY2FuX2J1aWxkX3No YXJlZD1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICAjIEFJWCAob24g UG93ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyBjdXJyZW50bHkgd2UgY2FuIG5v dCBoYXJkY29kZSBjb3JyZWN0Ci0rICAgICMgc29uYW1lIGludG8gZXhlY3V0YWJsZS4gUHJvYmFi bHkgd2UgY2FuIGFkZCB2ZXJzaW9uaW5nIHN1cHBvcnQgdG8KLSsgICAgIyBjb2xsZWN0Miwgc28g YWRkaXRpb25hbCBsaW5rcyBjYW4gYmUgdXNlZnVsIGluIGZ1dHVyZS4KLSsgICAgaWYgdGVzdCAi JGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rICAgICAgIyBJZiB1c2luZyBy dW4gdGltZSBsaW5raW5nIChvbiBBSVggNC4yIG9yIGxhdGVyKSB1c2UgbGliPG5hbWU+LnNvCi0r ICAgICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1lPi5hIHRvIGxldCBwZW9wbGUga25vdyB0aGF0IHRo ZXNlIGFyZSBub3QKLSsgICAgICAjIHR5cGljYWwgQUlYIHNoYXJlZCBsaWJyYXJpZXMuCi0rICAg ICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCi0rICAgIGVsc2UKLSsgICAgICAjIFdlIHByZXNlcnZlIC5hIGFzIGV4 dGVuc2lvbiBmb3Igc2hhcmVkIGxpYnJhcmllcyB0aHJvdWdoIEFJWDQuMgotKyAgICAgICMgYW5k IGxhdGVyIHdoZW4gd2UgYXJlIG5vdCBkb2luZyBydW4gdGltZSBsaW5raW5nLgotKyAgICAgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uYSAkbGlibmFtZS5hJwotKyAg ICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In Ci0rICAgIGZpCi0rICAgIHNobGlicGF0aF92YXI9TElCUEFUSAotKyAgZmkKLSsgIDs7Ci0rCi0r YW1pZ2FvcyopCi0rICBjYXNlICRob3N0X2NwdSBpbgotKyAgcG93ZXJwYykKLSsgICAgIyBTaW5j ZSBKdWx5IDIwMDcgQW1pZ2FPUzQgb2ZmaWNpYWxseSBzdXBwb3J0cyAuc28gbGlicmFyaWVzLgot KyAgICAjIFdoZW4gY29tcGlsaW5nIHRoZSBleGVjdXRhYmxlLCBhZGQgLXVzZS1keW5sZCAtTHNv YmpzOiB0byB0aGUgY29tcGlsZWxpbmUuCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICA7OwotKyAg bTY4aykKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5h bWUuYScKLSsgICAgIyBDcmVhdGUgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSBlbnRyaWVzIGluIC9z eXMvbGlicy4KLSsgICAgZmluaXNoX2V2YWw9J2ZvciBsaWIgaW4gYGxzICRsaWJkaXIvKi5peGxp YnJhcnkgMj4vZGV2L251bGxgOyBkbyBsaWJuYW1lPWAkRUNITyAiWCRsaWIiIHwgJFhzZWQgLWUg J1wnJ3MlXi4qL1woW1teL11dKlwpXC5peGxpYnJhcnkkJVwxJSdcJydgOyB0ZXN0ICRSTSAvc3lz L2xpYnMvJHtsaWJuYW1lfV9peGxpYnJhcnkuYTsgJHNob3cgImNkIC9zeXMvbGlicyAmJiAkTE5f UyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEiOyBjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxp YiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIHx8IGV4aXQgMTsgZG9uZScKLSsgICAgOzsKLSsgIGVz YWMKLSsgIDs7Ci0rCi0rYmVvcyopCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3NoYXJlZF9leHR9JwotKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgotKyAgc2hs aWJwYXRoX3Zhcj1MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rYnNkaVtbNDVdXSopCi0rICB2ZXJz aW9uX3R5cGU9bGludXgKLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBz b25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAg ZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgJGxpYmRpcicKLSsgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL1gxMS9saWIgL3Vzci9jb250cmliL2xpYiAvbGliIC91c3Iv bG9jYWwvbGliIgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xp YiAvdXNyL2xvY2FsL2xpYiIKLSsgICMgdGhlIGRlZmF1bHQgbGQuc28uY29uZiBhbHNvIGNvbnRh aW5zIC91c3IvY29udHJpYi9saWIgYW5kCi0rICAjIC91c3IvWDExUjYvbGliICgvdXNyL1gxMSBp cyBhIGxpbmsgdG8gL3Vzci9YMTFSNiksIGJ1dCBsZXQgdXMgYWxsb3cKLSsgICMgbGlidG9vbCB0 byBoYXJkLWNvZGUgdGhlc2UgaW50byBwcm9ncmFtcwotKyAgOzsKLSsKLStjeWd3aW4qIHwgbWlu Z3cqIHwgcHczMiogfCBjZWdjYyopCi0rICB2ZXJzaW9uX3R5cGU9d2luZG93cwotKyAgc2hyZXh0 X2NtZHM9Ii5kbGwiCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIG5lZWRfbGliX3ByZWZpeD1ubwot KwotKyAgY2FzZSAkR0NDLCRob3N0X29zIGluCi0rICB5ZXMsY3lnd2luKiB8IHllcyxtaW5ndyog fCB5ZXMscHczMiogfCB5ZXMsY2VnY2MqKQotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJu YW1lLmRsbC5hJwotKyAgICAjIERMTCBpcyBpbnN0YWxsZWQgdG8gJChsaWJkaXIpLy4uL2JpbiBi eSBwb3N0aW5zdGFsbF9jbWRzCi0rICAgIHBvc3RpbnN0YWxsX2NtZHM9J2Jhc2VfZmlsZT1gYmFz ZW5hbWUgXCR7ZmlsZX1gfgotKyAgICAgIGRscGF0aD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGRp ci8nXCcnXCR7YmFzZV9maWxlfSdcJydpOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAgICAgZGxk aXI9JGRlc3RkaXIvYGRpcm5hbWUgXCRkbHBhdGhgfgotKyAgICAgIHRlc3QgLWQgXCRkbGRpciB8 fCBta2RpciAtcCBcJGRsZGlyfgotKyAgICAgICRpbnN0YWxsX3Byb2cgJGRpci8kZGxuYW1lIFwk ZGxkaXIvJGRsbmFtZX4KLSsgICAgICBjaG1vZCBhK3ggXCRkbGRpci8kZGxuYW1lfgotKyAgICAg IGlmIHRlc3QgLW4gJ1wnJyRzdHJpcG1lJ1wnJyAmJiB0ZXN0IC1uICdcJyckc3RyaXBsaWInXCcn OyB0aGVuCi0rICAgICAgICBldmFsICdcJyckc3RyaXBsaWIgXCRkbGRpci8kZGxuYW1lJ1wnJyB8 fCBleGl0IFwkPzsKLSsgICAgICBmaScKLSsgICAgcG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRsbD1g JFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGZpbGU7IGVjaG8gXCRkbG5hbWUnXCcnYH4KLSsgICAgICBk bHBhdGg9JGRpci9cJGRsZGxsfgotKyAgICAgICAkUk0gXCRkbHBhdGgnCi0rICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBj eWd3aW4qKQotKyAgICAgICMgQ3lnd2luIERMTHMgdXNlICdjeWcnIHByZWZpeCByYXRoZXIgdGhh biAnbGliJwotKyAgICAgIHNvbmFtZV9zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdz L15saWIvY3lnLydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3Zl cnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0i L3Vzci9saWIgL2xpYi93MzJhcGkgL2xpYiAvdXNyL2xvY2FsL2xpYiIKLSsgICAgICA7OwotKyAg ICBtaW5ndyogfCBjZWdjYyopCi0rICAgICAgIyBNaW5HVyBETExzIHVzZSB0cmFkaXRpb25hbCAn bGliJyBwcmVmaXgKLSsgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFz ZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsg ICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCAk R1JFUCAiXmxpYnJhcmllczoiIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9Lywv LGciYAotKyAgICAgIGlmICRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8IFskR1JF UCAnO1tjLXpDLVpdOi8nID4vZGV2L251bGxdOyB0aGVuCi0rICAgICAgICAjIEl0IGlzIG1vc3Qg cHJvYmFibHkgYSBXaW5kb3dzIGZvcm1hdCBQQVRIIHByaW50ZWQgYnkKLSsgICAgICAgICMgbWlu Z3cgZ2NjLCBidXQgd2UgYXJlIHJ1bm5pbmcgb24gQ3lnd2luLiBHY2MgcHJpbnRzIGl0cyBzZWFy Y2gKLSsgICAgICAgICMgcGF0aCB3aXRoIDsgc2VwYXJhdG9ycywgYW5kIHdpdGggZHJpdmUgbGV0 dGVycy4gV2UgY2FuIGhhbmRsZSB0aGUKLSsgICAgICAgICMgZHJpdmUgbGV0dGVycyAoY3lnd2lu IGZpbGV1dGlscyB1bmRlcnN0YW5kcyB0aGVtKSwgc28gbGVhdmUgdGhlbSwKLSsgICAgICAgICMg ZXNwZWNpYWxseSBhcyB3ZSBtaWdodCBwYXNzIGZpbGVzIGZvdW5kIHRoZXJlIHRvIGEgbWluZ3cg b2JqZHVtcCwKLSsgICAgICAgICMgd2hpY2ggd291bGRuJ3QgdW5kZXJzdGFuZCBhIGN5Z3dpbmlm aWVkIHBhdGguIEFoaC4KLSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8g IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCi0rICAgICAg ZWxzZQotKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKLSsg ICAgICBmaQotKyAgICAgIDs7Ci0rICAgIHB3MzIqKQotKyAgICAgICMgcHczMiBETExzIHVzZSAn cHcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJwotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n YGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8 ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotKyAgICAg IDs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsKLSsgICopCi0rICAgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2 ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCi0rICAgIDs7Ci0rICBlc2FjCi0r ICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJwotKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hv dWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCi0rICBz aGxpYnBhdGhfdmFyPVBBVEgKLSsgIDs7Ci0rCi0rZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgIGR5 bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgotKyAgdmVyc2lvbl90eXBlPWRhcndpbgotKyAg bmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0ICR7bGlibmFtZX0k c2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9 JHNoYXJlZF9leHQnCi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBzaGxp YnBhdGhfdmFyPURZTERfTElCUkFSWV9QQVRICi0rICBzaHJleHRfY21kcz0nYHRlc3QgLiRtb2R1 bGUgPSAueWVzICYmIGVjaG8gLnNvIHx8IGVjaG8gLmR5bGliYCcKLSttNF9pZihbJDFdLCBbXSxb Ci0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMg L3Vzci9sb2NhbC9saWIiXSkKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xv Y2FsL2xpYiAvbGliIC91c3IvbGliJwotKyAgOzsKLSsKLStkZ3V4KikKLSsgIHZlcnNpb25fdHlw ZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUkc2hh cmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgOzsKLSsKLStm cmVlYnNkMSopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLStmcmVlYnNkKiB8IGRy YWdvbmZseSopCi0rICAjIERyYWdvbkZseSBkb2VzIG5vdCBoYXZlIGFvdXQuICBXaGVuL2lmIHRo ZXkgaW1wbGVtZW50IGEgbmV3Ci0rICAjIHZlcnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1c3QgdGhp cy4KLSsgIGlmIHRlc3QgLXggL3Vzci9iaW4vb2JqZm9ybWF0OyB0aGVuCi0rICAgIG9iamZvcm1h dD1gL3Vzci9iaW4vb2JqZm9ybWF0YAotKyAgZWxzZQotKyAgICBjYXNlICRob3N0X29zIGluCi0r ICAgIGZyZWVic2RbWzEyM11dKikgb2JqZm9ybWF0PWFvdXQgOzsKLSsgICAgKikgb2JqZm9ybWF0 PWVsZiA7OwotKyAgICBlc2FjCi0rICBmaQotKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtJG9iamZv cm1hdAotKyAgY2FzZSAkdmVyc2lvbl90eXBlIGluCi0rICAgIGZyZWVic2QtZWxmKikKLSsgICAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFy ZWRfZXh0fScKLSsgICAgICBuZWVkX3ZlcnNpb249bm8KLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgICAgICA7OwotKyAgICBmcmVlYnNkLSopCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICAgICAgbmVlZF92ZXJzaW9uPXllcwotKyAgICAgIDs7 Ci0rICBlc2FjCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgY2FzZSAkaG9z dF9vcyBpbgotKyAgZnJlZWJzZDIqKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 eWVzCi0rICAgIDs7Ci0rICBmcmVlYnNkMy5bWzAxXV0qIHwgZnJlZWJzZGVsZjMuW1swMV1dKikK LSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICBoYXJkY29kZV9pbnRv X2xpYnM9eWVzCi0rICAgIDs7Ci0rICBmcmVlYnNkMy5bWzItOV1dKiB8IGZyZWVic2RlbGYzLltb Mi05XV0qIHwgXAotKyAgZnJlZWJzZDQuW1swLTVdXSB8IGZyZWVic2RlbGY0LltbMC01XV0gfCBm cmVlYnNkNC4xLjEgfCBmcmVlYnNkZWxmNC4xLjEpCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD1ubwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0rICAqKSAj IGZyb20gNC42IG9uLCBhbmQgRHJhZ29uRmx5Ci0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD15ZXMKLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICA7OwotKyAgZXNhYwot KyAgOzsKLSsKLStnbnUqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVm aXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7 OwotKwotK2hwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQotKyAgIyBHaXZlIGEgc29uYW1lIGNv cnJlc3BvbmRpbmcgdG8gdGhlIG1ham9yIHZlcnNpb24gc28gdGhhdCBkbGQuc2wgcmVmdXNlcyB0 bwotKyAgIyBsaW5rIGFnYWluc3Qgb3RoZXIgdmVyc2lvbnMuCi0rICB2ZXJzaW9uX3R5cGU9c3Vu b3MKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBjYXNlICRo b3N0X2NwdSBpbgotKyAgaWE2NCopCi0rICAgIHNocmV4dF9jbWRzPScuc28nCi0rICAgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKLSsgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbyIK LSsgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAgICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtz aGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKLSsgICAgaWYgdGVzdCAiWCRIUFVYX0lBNjRfTU9ERSIgPSBYMzI7IHRo ZW4KLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXgzMiAvdXNy L2xvY2FsL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIiCi0rICAgIGVsc2UKLSsgICAgICBzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXg2NCAvdXNyL2xvY2FsL2xpYi9ocHV4 NjQiCi0rICAgIGZpCi0rICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWMKLSsgICAgOzsKLSsgIGhwcGEqNjQqKQotKyAgICBzaHJleHRfY21kcz0n LnNsJwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIGR5bmFtaWNfbGlua2VyPSIk aG9zdF9vcyBkbGQuc2wiCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRIICMgSG93 IHNob3VsZCB3ZSBoYW5kbGUgU0hMSUJfUEFUSAotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCi0rICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9l eHR9JwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJwotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL3BhMjBfNjQg L3Vzci9jY3MvbGliL3BhMjBfNjQiCi0rICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKLSsgICAgOzsKLSsgICopCi0rICAgIHNocmV4dF9jbWRz PScuc2wnCi0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCi0rICAgIHNobGli cGF0aF92YXI9U0hMSUJfUEFUSAotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8g IyArcyBpcyByZXF1aXJlZCB0byBlbmFibGUgU0hMSUJfUEFUSAotKyAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScK LSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv cicKLSsgICAgOzsKLSsgIGVzYWMKLSsgICMgSFAtVVggcnVucyAqcmVhbGx5KiBzbG93bHkgdW5s ZXNzIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG1vZGUgNTU1LgotKyAgcG9zdGluc3RhbGxfY21kcz0n Y2htb2QgNTU1ICRsaWInCi0rICA7OwotKwotK2ludGVyaXhbWzMtOV1dKikKLSsgIHZlcnNpb25f dHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1l fSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yJwotKyAgZHluYW1pY19saW5rZXI9J0ludGVyaXggMy54IGxkLnNvLjEg KFBFLCBsaWtlIEVMRiknCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0r ICA7OwotKwotK2lyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rICBjYXNlICRob3N0X29z IGluCi0rICAgIG5vbnN0b3B1eCopIHZlcnNpb25fdHlwZT1ub25zdG9wdXggOzsKLSsgICAgKikK LSsJaWYgdGVzdCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgotKwkJdmVyc2lvbl90 eXBlPWxpbnV4Ci0rCWVsc2UKLSsJCXZlcnNpb25fdHlwZT1pcml4Ci0rCWZpIDs7Ci0rICBlc2Fj Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgIGlyaXg1KiB8IG5vbnN0b3B1eCopCi0rICAgIGxpYnN1ZmY9IHNobGlic3VmZj0KLSsg ICAgOzsKLSsgICopCi0rICAgIGNhc2UgJExEIGluICMgbGlidG9vbC5tNCB3aWxsIGFkZCBvbmUg b2YgdGhlc2Ugc3dpdGNoZXMgdG8gTEQKLSsgICAgKi0zMnwqIi0zMiAifCotbWVsZjMyYnNtaXB8 KiItbWVsZjMyYnNtaXAgIikKLSsgICAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPTMy LWJpdDs7Ci0rICAgICotbjMyfCoiLW4zMiAifCotbWVsZjMyYm1pcG4zMnwqIi1tZWxmMzJibWlw bjMyICIpCi0rICAgICAgbGlic3VmZj0zMiBzaGxpYnN1ZmY9TjMyIGxpYm1hZ2ljPU4zMjs7Ci0r ICAgICotNjR8KiItNjQgInwqLW1lbGY2NGJtaXB8KiItbWVsZjY0Ym1pcCAiKQotKyAgICAgIGxp YnN1ZmY9NjQgc2hsaWJzdWZmPTY0IGxpYm1hZ2ljPTY0LWJpdDs7Ci0rICAgICopIGxpYnN1ZmY9 IHNobGlic3VmZj0gbGlibWFnaWM9bmV2ZXItbWF0Y2g7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0r ICBlc2FjCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUlkke3NobGlic3VmZn1fUEFUSAotKyAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGli c3VmZn0iCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9 IC9saWIke2xpYnN1ZmZ9IgotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLSsj IE5vIHNoYXJlZCBsaWIgc3VwcG9ydCBmb3IgTGludXggb2xkbGQsIGFvdXQsIG9yIGNvZmYuCi0r bGludXgqb2xkbGQqIHwgbGludXgqYW91dCogfCBsaW51eCpjb2ZmKikKLSsgIGR5bmFtaWNfbGlu a2VyPW5vCi0rICA7OwotKwotKyMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KLStsaW51eCogfCBr KmJzZCotZ251KQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8K LSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgZmluaXNoX2NtZHM9J1BB VEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW4gJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICMg U29tZSBiaW51dGlscyBsZCBhcmUgcGF0Y2hlZCB0byBzZXQgRFRfUlVOUEFUSAotKyAgc2F2ZV9M REZMQUdTPSRMREZMQUdTCi0rICBzYXZlX2xpYmRpcj0kbGliZGlyCi0rICBldmFsICJsaWJkaXI9 L2Zvbzsgd2w9XCIkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSlcIjsgXAotKyAg ICAgICBMREZMQUdTPVwiXCRMREZMQUdTICRfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKVwiIgotKyAgQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbXSxbXSld LAotKyAgICBbQVNfSUYoWyAoJE9CSkRVTVAgLXAgY29uZnRlc3QkYWNfZXhlZXh0KSAyPi9kZXYv bnVsbCB8IGdyZXAgIlJVTlBBVEguKiRsaWJkaXIiID4vZGV2L251bGxdLAotKyAgICAgICBbc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllc10pXSkKLSsgIExERkxBR1M9JHNhdmVfTERGTEFH UwotKyAgbGliZGlyPSRzYXZlX2xpYmRpcgotKwotKyAgIyBUaGlzIGltcGxpZXMgbm8gZmFzdF9p bnN0YWxsLCB3aGljaCBpcyB1bmFjY2VwdGFibGUuCi0rICAjIFNvbWUgcmV3b3JrIHdpbGwgYmUg bmVlZGVkIHRvIGFsbG93IGZvciBmYXN0X2luc3RhbGwKLSsgICMgYmVmb3JlIHRoaXMgY2FuIGJl IGVuYWJsZWQuCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rCi0rICAjIEFkZCBBQkktc3Bl Y2lmaWMgZGlyZWN0b3JpZXMgdG8gdGhlIHN5c3RlbSBsaWJyYXJ5IHBhdGguCi0rICBzeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYjY0IC91c3IvbGliNjQgL2xpYiAvdXNyL2xpYiIKLSsK LSsgICMgQXBwZW5kIGxkLnNvLmNvbmYgY29udGVudHMgdG8gdGhlIHNlYXJjaCBwYXRoCi0rICBp ZiB0ZXN0IC1mIC9ldGMvbGQuc28uY29uZjsgdGhlbgotKyAgICBsdF9sZF9leHRyYT1gYXdrICcv XmluY2x1ZGUgLyB7IHN5c3RlbShzcHJpbnRmKCJjZCAvZXRjOyBjYXQgJXMgMj4vZGV2L251bGwi LCBcWyRdMikpOyBza2lwID0gMTsgfSB7IGlmICghc2tpcCkgcHJpbnQgXFskXTA7IHNraXAgPSAw OyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bCSBdKmh3Y2FwWwkg XS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nOy9eJC9kJyB8IHRyICdc bicgJyAnYAotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjICRsdF9sZF9leHRyYSIKLSsgIGZpCi0rCi0rICAjIFdlIHVzZWQgdG8gdGVz dCBmb3IgL2xpYi9sZC5zby4xIGFuZCBkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMgb24KLSsgICMg cG93ZXJwYywgYmVjYXVzZSBNa0xpbnV4IG9ubHkgc3VwcG9ydGVkIHNoYXJlZCBsaWJyYXJpZXMg d2l0aCB0aGUKLSsgICMgR05VIGR5bmFtaWMgbGlua2VyLiAgU2luY2UgdGhpcyB3YXMgYnJva2Vu IHdpdGggY3Jvc3MgY29tcGlsZXJzLAotKyAgIyBtb3N0IHBvd2VycGMtbGludXggYm94ZXMgc3Vw cG9ydCBkeW5hbWljIGxpbmtpbmcgdGhlc2UgZGF5cyBhbmQKLSsgICMgcGVvcGxlIGNhbiBhbHdh eXMgLS1kaXNhYmxlLXNoYXJlZCwgdGhlIHRlc3Qgd2FzIHJlbW92ZWQsIGFuZCB3ZQotKyAgIyBh c3N1bWUgdGhlIEdOVS9MaW51eCBkeW5hbWljIGxpbmtlciBpcyBpbiB1c2UuCi0rICBkeW5hbWlj X2xpbmtlcj0nR05VL0xpbnV4IGxkLnNvJwotKyAgOzsKLSsKLStuZXRic2QqKQotKyAgdmVyc2lv bl90eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwot KyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7 IHRoZW4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsg ICAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicK LSsgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCAoYS5vdXQpIGxkLnNvJwotKyAgZWxzZQotKyAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFt ZX0ke3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJwotKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIGxkLmVsZl9z bycKLSsgIGZpCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsK LSsKLStuZXdzb3M2KQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9eWVzCi0rICA7OwotKwotKypudG8qIHwgKnFueCopCi0rICB2ZXJzaW9uX3R5cGU9cW54 Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgZHluYW1pY19s aW5rZXI9J2xkcW54LnNvJwotKyAgOzsKLSsKLStvcGVuYnNkKikKLSsgIHZlcnNpb25fdHlwZT1z dW5vcwotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIgotKyAgbmVlZF9s aWJfcHJlZml4PW5vCi0rICAjIFNvbWUgb2xkZXIgdmVyc2lvbnMgb2YgT3BlbkJTRCAoMy4zIGF0 IGxlYXN0KSAqZG8qIG5lZWQgdmVyc2lvbmVkIGxpYnMuCi0rICBjYXNlICRob3N0X29zIGluCi0r ICAgIG9wZW5ic2QzLjMgfCBvcGVuYnNkMy4zLiopCW5lZWRfdmVyc2lvbj15ZXMgOzsKLSsgICAg KikJCQkJbmVlZF92ZXJzaW9uPW5vICA7OwotKyAgZXNhYwotKyAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3Ni aW4iIGxkY29uZmlnIC1tICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAotKyAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZf X2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsg dGhlbgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgb3BlbmJzZDIuW1s4OV1dIHwgb3Bl bmJzZDIuW1s4OV1dLiopCi0rCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKwk7Owot KyAgICAgICopCi0rCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsJOzsKLSsgICAg ICBlc2FjCi0rICBlbHNlCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsg IGZpCi0rICA7OwotKwotK29zMiopCi0rICBsaWJuYW1lX3NwZWM9JyRuYW1lJwotKyAgc2hyZXh0 X2NtZHM9Ii5kbGwiCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJGxpYm5hbWUke3NoYXJlZF9leHR9ICRsaWJuYW1lLmEnCi0rICBkeW5hbWljX2xpbmtlcj0n T1MvMiBsZC5leGUnCi0rICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsgIDs7Ci0rCi0rb3NmMyog fCBvc2Y0KiB8IG9zZjUqKQotKyAgdmVyc2lvbl90eXBlPW9zZgotKyAgbmVlZF9saWJfcHJlZml4 PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Ivc2hs aWIgL3Vzci9jY3MvbGliIC91c3IvbGliL2NtcGxycy9jYyAvdXNyL2xpYiAvdXNyL2xvY2FsL2xp YiAvdmFyL3NobGliIgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWMiCi0rICA7OwotKwotK3Jkb3MqKQotKyAgZHluYW1pY19saW5rZXI9bm8K LSsgIDs7Ci0rCi0rc29sYXJpcyopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGli X3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgIyBsZGQgY29tcGxhaW5zIHVubGVz cyBsaWJyYXJpZXMgYXJlIGV4ZWN1dGFibGUKLSsgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kICt4 ICRsaWInCi0rICA7OwotKwotK3N1bm9zNCopCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICBmaW5pc2hfY21kcz0n UEFUSD0iXCRQQVRIOi91c3IvZXRjIiBsZGNvbmZpZyAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsg IGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgbmVlZF9saWJfcHJlZml4 PW5vCi0rICBmaQotKyAgbmVlZF92ZXJzaW9uPXllcwotKyAgOzsKLSsKLStzeXN2NCB8IHN5c3Y0 LjMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KLSsgICAgc25p KQotKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICAgIG5lZWRfbGli X3ByZWZpeD1ubwotKyAgICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICi0rICAgICAgOzsKLSsg ICAgc2llbWVucykKLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICA7OwotKyAgICBt b3Rvcm9sYSkKLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICBuZWVkX3ZlcnNpb249 bm8KLSsgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgICBzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWM9Jy9saWIgL3Vzci9saWIgL3Vzci9jY3MvbGliJwotKyAgICAgIDs7 Ci0rICBlc2FjCi0rICA7OwotKwotK3N5c3Y0Kk1QKikKLSsgIGlmIHRlc3QgLWQgL3Vzci9uZWMg O3RoZW4KLSsgICAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JGxpYm5hbWUke3NoYXJlZF9leHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9LiRt YWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPSckbGlibmFtZSR7 c2hhcmVkX2V4dH0uJG1ham9yJwotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAot KyAgZmkKLSsgIDs7Ci0rCi0rc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJl KiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCi0rICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC1lbGYK LSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0r ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgaWYgdGVzdCAiJHdpdGhf Z251X2xkIiA9IHllczsgdGhlbgotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3Iv bG9jYWwvbGliIC91c3IvZ251L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIgL2xpYicKLSsgIGVs c2UKLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Njcy9saWIgL3Vzci9saWIn Ci0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBzY28zLjJ2NSopCi0rICAgICAgICBzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL2xpYiIKLSsJ OzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNy L2xpYicKLSsgIDs7Ci0rCi0rdHBmKikKLSsgICMgVFBGIGlzIGEgY3Jvc3MtdGFyZ2V0IG9ubHku ICBQcmVmZXJyZWQgY3Jvc3MtaG9zdCA9IEdOVS9MaW51eC4KLSsgIHZlcnNpb25fdHlwZT1saW51 eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9l eHR9JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLSt1 dHM0KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rKikKLSsgIGR5bmFtaWNfbGlua2Vy PW5vCi0rICA7OwotK2VzYWMKLStBQ19NU0dfUkVTVUxUKFskZHluYW1pY19saW5rZXJdKQotK3Rl c3QgIiRkeW5hbWljX2xpbmtlciIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCi0rCi0rdmFy aWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IlBBVEggJHNobGlicGF0aF92YXIgJHJ1bnBhdGhfdmFy IgotK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICB2YXJpYWJsZXNfc2F2ZWRfZm9yX3Jl bGluaz0iJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIEdDQ19FWEVDX1BSRUZJWCBDT01QSUxF Ul9QQVRIIExJQlJBUllfUEFUSCIKLStmaQotKwotK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCi0rICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9IiRsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCi0rZmkKLStpZiB0ZXN0ICIk e2x0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCi0rICBz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9z cGVjIgotK2ZpCi0rCi0rX0xUX0RFQ0woW10sIFt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGlua10s IFsxXSwKLSsgICAgW1ZhcmlhYmxlcyB3aG9zZSB2YWx1ZXMgc2hvdWxkIGJlIHNhdmVkIGluIGxp YnRvb2wgd3JhcHBlciBzY3JpcHRzIGFuZAotKyAgICByZXN0b3JlZCBhdCBsaW5rIHRpbWVdKQot K19MVF9ERUNMKFtdLCBbbmVlZF9saWJfcHJlZml4XSwgWzBdLAotKyAgICBbRG8gd2UgbmVlZCB0 aGUgImxpYiIgcHJlZml4IGZvciBtb2R1bGVzP10pCi0rX0xUX0RFQ0woW10sIFtuZWVkX3ZlcnNp b25dLCBbMF0sIFtEbyB3ZSBuZWVkIGEgdmVyc2lvbiBmb3IgbGlicmFyaWVzP10pCi0rX0xUX0RF Q0woW10sIFt2ZXJzaW9uX3R5cGVdLCBbMF0sIFtMaWJyYXJ5IHZlcnNpb25pbmcgdHlwZV0pCi0r X0xUX0RFQ0woW10sIFtydW5wYXRoX3Zhcl0sIFswXSwgIFtTaGFyZWQgbGlicmFyeSBydW50aW1l IHBhdGggdmFyaWFibGVdKQotK19MVF9ERUNMKFtdLCBbc2hsaWJwYXRoX3Zhcl0sIFswXSxbU2hh cmVkIGxpYnJhcnkgcGF0aCB2YXJpYWJsZV0pCi0rX0xUX0RFQ0woW10sIFtzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGhdLCBbMF0sCi0rICAgIFtJcyBzaGxpYnBhdGggc2VhcmNoZWQgYmVmb3Jl IHRoZSBoYXJkLWNvZGVkIGxpYnJhcnkgc2VhcmNoIHBhdGg/XSkKLStfTFRfREVDTChbXSwgW2xp Ym5hbWVfc3BlY10sIFsxXSwgW0Zvcm1hdCBvZiBsaWJyYXJ5IG5hbWUgcHJlZml4XSkKLStfTFRf REVDTChbXSwgW2xpYnJhcnlfbmFtZXNfc3BlY10sIFsxXSwKLSsgICAgW1tMaXN0IG9mIGFyY2hp dmUgbmFtZXMuICBGaXJzdCBuYW1lIGlzIHRoZSByZWFsIG9uZSwgdGhlIHJlc3QgYXJlIGxpbmtz LgotKyAgICBUaGUgbGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2VyIGZpbmRzIHdp dGggLWxOQU1FXV0pCi0rX0xUX0RFQ0woW10sIFtzb25hbWVfc3BlY10sIFsxXSwKLSsgICAgW1tU aGUgY29kZWQgbmFtZSBvZiB0aGUgbGlicmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwg bmFtZV1dKQotK19MVF9ERUNMKFtdLCBbcG9zdGluc3RhbGxfY21kc10sIFsyXSwKLSsgICAgW0Nv bW1hbmQgdG8gdXNlIGFmdGVyIGluc3RhbGxhdGlvbiBvZiBhIHNoYXJlZCBhcmNoaXZlXSkKLStf TFRfREVDTChbXSwgW3Bvc3R1bmluc3RhbGxfY21kc10sIFsyXSwKLSsgICAgW0NvbW1hbmQgdG8g dXNlIGFmdGVyIHVuaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmVdKQotK19MVF9ERUNM KFtdLCBbZmluaXNoX2NtZHNdLCBbMl0sCi0rICAgIFtDb21tYW5kcyB1c2VkIHRvIGZpbmlzaCBh IGxpYnRvb2wgbGlicmFyeSBpbnN0YWxsYXRpb24gaW4gYSBkaXJlY3RvcnldKQotK19MVF9ERUNM KFtdLCBbZmluaXNoX2V2YWxdLCBbMV0sCi0rICAgIFtbQXMgImZpbmlzaF9jbWRzIiwgZXhjZXB0 IGEgc2luZ2xlIHNjcmlwdCBmcmFnbWVudCB0byBiZSBldmFsZWQgYnV0Ci0rICAgIG5vdCBzaG93 bl1dKQotK19MVF9ERUNMKFtdLCBbaGFyZGNvZGVfaW50b19saWJzXSwgWzBdLAotKyAgICBbV2hl dGhlciB3ZSBzaG91bGQgaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIGxpYnJhcmllc10pCi0r X0xUX0RFQ0woW10sIFtzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWNdLCBbMl0sCi0rICAgIFtDb21w aWxlLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXNdKQotK19MVF9ERUNMKFtd LCBbc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWNdLCBbMl0sCi0rICAgIFtSdW4tdGltZSBzeXN0 ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllc10pCi0rXSkjIF9MVF9TWVNfRFlOQU1JQ19MSU5L RVIKLSsKLSsKLSsjIF9MVF9QQVRIX1RPT0xfUFJFRklYKFRPT0wpCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotKyMgZmluZCBhIGZpbGUgcHJvZ3JhbSB3aGljaCBjYW4gcmVjb2duaXpl IHNoYXJlZCBsaWJyYXJ5Ci0rQUNfREVGVU4oW19MVF9QQVRIX1RPT0xfUFJFRklYXSwKLStbbTRf cmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAotK0FDX01TR19DSEVDS0lORyhbZm9yICQxXSkK LStBQ19DQUNIRV9WQUwobHRfY3ZfcGF0aF9NQUdJQ19DTUQsCi0rW2Nhc2UgJE1BR0lDX0NNRCBp bgotK1tbXFwvKl0gfCAgPzpbXFwvXSpdKQotKyAgbHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRNQUdJ Q19DTUQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgotKyAg OzsKLSsqKQotKyAgbHRfc2F2ZV9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiCi0rICBsdF9zYXZlX2lm cz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStkbmwgJGFjX2R1bW15IGZvcmNlcyBzcGxp dHRpbmcgb24gY29uc3RhbnQgdXNlci1zdXBwbGllZCBwYXRocy4KLStkbmwgUE9TSVguMiB3b3Jk IHNwbGl0dGluZyBpcyBkb25lIG9ubHkgb24gdGhlIG91dHB1dCBvZiB3b3JkIGV4cGFuc2lvbnMs Ci0rZG5sIG5vdCBldmVyeSB3b3JkLiAgVGhpcyBjbG9zZXMgYSBsb25nc3RhbmRpbmcgc2ggc2Vj dXJpdHkgaG9sZS4KLSsgIGFjX2R1bW15PSJtNF9pZihbJDJdLCAsICRQQVRILCBbJDJdKSIKLSsg IGZvciBhY19kaXIgaW4gJGFjX2R1bW15OyBkbwotKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsg ICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSsgICAgaWYgdGVzdCAtZiAkYWNfZGly LyQxOyB0aGVuCi0rICAgICAgbHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRhY19kaXIvJDEiCi0rICAg ICAgaWYgdGVzdCAtbiAiJGZpbGVfbWFnaWNfdGVzdF9maWxlIjsgdGhlbgotKwljYXNlICRkZXBs aWJzX2NoZWNrX21ldGhvZCBpbgotKwkiZmlsZV9tYWdpYyAiKikKLSsJICBmaWxlX21hZ2ljX3Jl Z2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogImZpbGVfbWFnaWMgXCguKlwpImAK LSsJICBNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKLSsJICBpZiBldmFsICRmaWxl X21hZ2ljX2NtZCBcJGZpbGVfbWFnaWNfdGVzdF9maWxlIDI+IC9kZXYvbnVsbCB8Ci0rCSAgICAk RUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgotKwkgICAgOgotKwkg IGVsc2UKLSsJICAgIGNhdCA8PF9MVF9FT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiB0aGUgY29t bWFuZCBsaWJ0b29sIHVzZXMgdG8gZGV0ZWN0IHNoYXJlZCBsaWJyYXJpZXMsCi0rKioqICRmaWxl X21hZ2ljX2NtZCwgcHJvZHVjZXMgb3V0cHV0IHRoYXQgbGlidG9vbCBjYW5ub3QgcmVjb2duaXpl LgotKyoqKiBUaGUgcmVzdWx0IGlzIHRoYXQgbGlidG9vbCBtYXkgZmFpbCB0byByZWNvZ25pemUg c2hhcmVkIGxpYnJhcmllcwotKyoqKiBhcyBzdWNoLiAgVGhpcyB3aWxsIGFmZmVjdCB0aGUgY3Jl YXRpb24gb2YgbGlidG9vbCBsaWJyYXJpZXMgdGhhdAotKyoqKiBkZXBlbmQgb24gc2hhcmVkIGxp YnJhcmllcywgYnV0IHByb2dyYW1zIGxpbmtlZCB3aXRoIHN1Y2ggbGlidG9vbAotKyoqKiBsaWJy YXJpZXMgd2lsbCB3b3JrIHJlZ2FyZGxlc3Mgb2YgdGhpcyBwcm9ibGVtLiAgTmV2ZXJ0aGVsZXNz LCB5b3UKLSsqKiogbWF5IHdhbnQgdG8gcmVwb3J0IHRoZSBwcm9ibGVtIHRvIHlvdXIgc3lzdGVt IG1hbmFnZXIgYW5kL29yIHRvCi0rKioqIGJ1Zy1saWJ0b29sQGdudS5vcmcKLSsKLStfTFRfRU9G Ci0rCSAgZmkgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgYnJlYWsKLSsgICAgZmkKLSsg IGRvbmUKLSsgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgTUFHSUNfQ01EPSIkbHRfc2F2ZV9NQUdJ Q19DTUQiCi0rICA7OwotK2VzYWNdKQotK01BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01E IgotK2lmIHRlc3QgLW4gIiRNQUdJQ19DTUQiOyB0aGVuCi0rICBBQ19NU0dfUkVTVUxUKCRNQUdJ Q19DTUQpCi0rZWxzZQotKyAgQUNfTVNHX1JFU1VMVChubykKLStmaQotK19MVF9ERUNMKFtdLCBb TUFHSUNfQ01EXSwgWzBdLAotKwkgW1VzZWQgdG8gZXhhbWluZSBsaWJyYXJpZXMgd2hlbiBmaWxl X21hZ2ljX2NtZCBiZWdpbnMgd2l0aCAiZmlsZSJdKWRubAotK10pIyBfTFRfUEFUSF9UT09MX1BS RUZJWAotKwotKyMgT2xkIG5hbWU6Ci0rQVVfQUxJQVMoW0FDX1BBVEhfVE9PTF9QUkVGSVhdLCBb X0xUX1BBVEhfVE9PTF9QUkVGSVhdKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0 aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX1BBVEhfVE9PTF9QUkVGSVhdLCBbXSkKLSsKLSsK LSsjIF9MVF9QQVRIX01BR0lDCi0rIyAtLS0tLS0tLS0tLS0tLQotKyMgZmluZCBhIGZpbGUgcHJv Z3JhbSB3aGljaCBjYW4gcmVjb2duaXplIGEgc2hhcmVkIGxpYnJhcnkKLSttNF9kZWZ1bihbX0xU X1BBVEhfTUFHSUNdLAotK1tfTFRfUEFUSF9UT09MX1BSRUZJWCgke2FjX3Rvb2xfcHJlZml4fWZp bGUsIC91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgpCi0raWYgdGVzdCAteiAiJGx0X2N2X3Bh dGhfTUFHSUNfQ01EIjsgdGhlbgotKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhl bgotKyAgICBfTFRfUEFUSF9UT09MX1BSRUZJWChmaWxlLCAvdXNyL2JpbiRQQVRIX1NFUEFSQVRP UiRQQVRIKQotKyAgZWxzZQotKyAgICBNQUdJQ19DTUQ9OgotKyAgZmkKLStmaQotK10pIyBfTFRf UEFUSF9NQUdJQwotKwotKwotKyMgTFRfUEFUSF9MRAotKyMgLS0tLS0tLS0tLQotKyMgZmluZCB0 aGUgcGF0aG5hbWUgdG8gdGhlIEdOVSBvciBub24tR05VIGxpbmtlcgotK0FDX0RFRlVOKFtMVF9Q QVRIX0xEXSwKLStbQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCi0rQUNfUkVRVUlSRShbQUNf Q0FOT05JQ0FMX0hPU1RdKWRubAotK0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9CVUlMRF0pZG5s Ci0rbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9F R1JFUF0pZG5sCi0rCi0rQUNfQVJHX1dJVEgoW2dudS1sZF0sCi0rICAgIFtBU19IRUxQX1NUUklO RyhbLS13aXRoLWdudS1sZF0sCi0rCVthc3N1bWUgdGhlIEMgY29tcGlsZXIgdXNlcyBHTlUgbGQg QDw6QGRlZmF1bHQ9bm9AOj5AXSldLAotKyAgICBbdGVzdCAiJHdpdGh2YWwiID0gbm8gfHwgd2l0 aF9nbnVfbGQ9eWVzXSwKLSsgICAgW3dpdGhfZ251X2xkPW5vXSlkbmwKLSsKLSthY19wcm9nPWxk Ci0raWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICMgQ2hlY2sgaWYgZ2NjIC1wcmludC1w cm9nLW5hbWU9bGQgZ2l2ZXMgYSBwYXRoLgotKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgbGQgdXNl ZCBieSAkQ0NdKQotKyAgY2FzZSAkaG9zdCBpbgotKyAgKi0qLW1pbmd3KikKLSsgICAgIyBnY2Mg bGVhdmVzIGEgdHJhaWxpbmcgY2FycmlhZ2UgcmV0dXJuIHdoaWNoIHVwc2V0cyBtaW5ndwotKyAg ICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjUgfCB0ciAtZCAnXDAxNSdg IDs7Ci0rICAqKQotKyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjVg IDs7Ci0rICBlc2FjCi0rICBjYXNlICRhY19wcm9nIGluCi0rICAgICMgQWNjZXB0IGFic29sdXRl IHBhdGhzLgotKyAgICBbW1xcL11dKiB8ID86W1tcXC9dXSopCi0rICAgICAgcmVfZGlyZWx0PScv W1teL11dW1teL11dKi9cLlwuLycKLSsgICAgICAjIENhbm9uaWNhbGl6ZSB0aGUgcGF0aG5hbWUg b2YgbGQKLSsgICAgICBhY19wcm9nPWAkRUNITyAiJGFjX3Byb2cifCAkU0VEICdzJVxcXFwlLyVn J2AKLSsgICAgICB3aGlsZSAkRUNITyAiJGFjX3Byb2ciIHwgJEdSRVAgIiRyZV9kaXJlbHQiID4g L2Rldi9udWxsIDI+JjE7IGRvCi0rCWFjX3Byb2c9YCRFQ0hPICRhY19wcm9nfCAkU0VEICJzJSRy ZV9kaXJlbHQlLyUiYAotKyAgICAgIGRvbmUKLSsgICAgICB0ZXN0IC16ICIkTEQiICYmIExEPSIk YWNfcHJvZyIKLSsgICAgICA7OwotKyAgIiIpCi0rICAgICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJl dGVuZCB3ZSBhcmVuJ3QgdXNpbmcgR0NDLgotKyAgICBhY19wcm9nPWxkCi0rICAgIDs7Ci0rICAq KQotKyAgICAjIElmIGl0IGlzIHJlbGF0aXZlLCB0aGVuIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxk IGluIFBBVEguCi0rICAgIHdpdGhfZ251X2xkPXVua25vd24KLSsgICAgOzsKLSsgIGVzYWMKLStl bGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgIEFDX01TR19DSEVDS0lORyhb Zm9yIEdOVSBsZF0pCi0rZWxzZQotKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3Igbm9uLUdOVSBsZF0p Ci0rZmkKLStBQ19DQUNIRV9WQUwobHRfY3ZfcGF0aF9MRCwKLStbaWYgdGVzdCAteiAiJExEIjsg dGhlbgotKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rICBmb3Ig YWNfZGlyIGluICRQQVRIOyBkbwotKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgdGVzdCAt eiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSsgICAgaWYgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJv ZyIgfHwgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyRhY19leGVleHQiOyB0aGVuCi0rICAgICAg bHRfY3ZfcGF0aF9MRD0iJGFjX2Rpci8kYWNfcHJvZyIKLSsgICAgICAjIENoZWNrIHRvIHNlZSBp ZiB0aGUgcHJvZ3JhbSBpcyBHTlUgbGQuICBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24sCi0rICAg ICAgIyBidXQgYXBwYXJlbnRseSBzb21lIHZhcmlhbnRzIG9mIEdOVSBsZCBvbmx5IGFjY2VwdCAt di4KLSsgICAgICAjIEJyZWFrIG9ubHkgaWYgaXQgd2FzIHRoZSBHTlUvbm9uLUdOVSBsZCB0aGF0 IHdlIHByZWZlci4KLSsgICAgICBjYXNlIGAiJGx0X2N2X3BhdGhfTEQiIC12IDI+JjEgPC9kZXYv bnVsbGAgaW4KLSsgICAgICAqR05VKiB8ICond2l0aCBCRkQnKikKLSsJdGVzdCAiJHdpdGhfZ251 X2xkIiAhPSBubyAmJiBicmVhawotKwk7OwotKyAgICAgICopCi0rCXRlc3QgIiR3aXRoX2dudV9s ZCIgIT0geWVzICYmIGJyZWFrCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBmaQotKyAgZG9uZQot KyAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rZWxzZQotKyAgbHRfY3ZfcGF0aF9MRD0iJExEIiAjIExl dCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KLStmaV0pCi0rTEQ9IiRs dF9jdl9wYXRoX0xEIgotK2lmIHRlc3QgLW4gIiRMRCI7IHRoZW4KLSsgIEFDX01TR19SRVNVTFQo JExEKQotK2Vsc2UKLSsgIEFDX01TR19SRVNVTFQobm8pCi0rZmkKLSt0ZXN0IC16ICIkTEQiICYm IEFDX01TR19FUlJPUihbbm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEhdKQotK19MVF9Q QVRIX0xEX0dOVQotK0FDX1NVQlNUKFtMRF0pCi0rCi0rX0xUX1RBR0RFQ0woW10sIFtMRF0sIFsx XSwgW1RoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBsaWJyYXJpZXNdKQotK10pIyBMVF9QQVRIX0xE Ci0rCi0rIyBPbGQgbmFtZXM6Ci0rQVVfQUxJQVMoW0FNX1BST0dfTERdLCBbTFRfUEFUSF9MRF0p Ci0rQVVfQUxJQVMoW0FDX1BST0dfTERdLCBbTFRfUEFUSF9MRF0pCi0rZG5sIGFjbG9jYWwtMS40 IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBBQ19ERUZVTihbQU1fUFJPR19MRF0sIFtd KQotK2RubCBBQ19ERUZVTihbQUNfUFJPR19MRF0sIFtdKQotKwotKwotKyMgX0xUX1BBVEhfTERf R05VCi0rIy0gLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX1BBVEhfTERfR05VXSwKLStb QUNfQ0FDSEVfQ0hFQ0soW2lmIHRoZSBsaW5rZXIgKCRMRCkgaXMgR05VIGxkXSwgbHRfY3ZfcHJv Z19nbnVfbGQsCi0rWyMgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uIGhlcmUsIGJ1dCBhcHBhcmVu dGx5IHNvbWUgR05VIGxkcyBvbmx5IGFjY2VwdCAtdi4KLStjYXNlIGAkTEQgLXYgMj4mMSA8L2Rl di9udWxsYCBpbgotKypHTlUqIHwgKid3aXRoIEJGRCcqKQotKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9 eWVzCi0rICA7OwotKyopCi0rICBsdF9jdl9wcm9nX2dudV9sZD1ubwotKyAgOzsKLStlc2FjXSkK LSt3aXRoX2dudV9sZD0kbHRfY3ZfcHJvZ19nbnVfbGQKLStdKSMgX0xUX1BBVEhfTERfR05VCi0r Ci0rCi0rIyBfTFRfQ01EX1JFTE9BRAotKyMgLS0tLS0tLS0tLS0tLS0KLSsjIGZpbmQgcmVsb2Fk IGZsYWcgZm9yIGxpbmtlcgotKyMgICAtLSBQT1JUTUUgU29tZSBsaW5rZXJzIG1heSBuZWVkIGEg ZGlmZmVyZW50IHJlbG9hZCBmbGFnLgotK200X2RlZnVuKFtfTFRfQ01EX1JFTE9BRF0sCi0rW0FD X0NBQ0hFX0NIRUNLKFtmb3IgJExEIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzXSwKLSsg IGx0X2N2X2xkX3JlbG9hZF9mbGFnLAotKyAgW2x0X2N2X2xkX3JlbG9hZF9mbGFnPSctciddKQot K3JlbG9hZF9mbGFnPSRsdF9jdl9sZF9yZWxvYWRfZmxhZwotK2Nhc2UgJHJlbG9hZF9mbGFnIGlu Ci0rIiIgfCAiICIqKSA7OwotKyopIHJlbG9hZF9mbGFnPSIgJHJlbG9hZF9mbGFnIiA7OwotK2Vz YWMKLStyZWxvYWRfY21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMn Ci0rY2FzZSAkaG9zdF9vcyBpbgotKyAgZGFyd2luKikKLSsgICAgaWYgdGVzdCAiJEdDQyIgPSB5 ZXM7IHRoZW4KLSsgICAgICByZWxvYWRfY21kcz0nJExUQ0MgJExUQ0ZMQUdTIC1ub3N0ZGxpYiAk e3dsfS1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rICAgIGVsc2UKLSsgICAgICByZWxvYWRf Y21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rICAgIGZpCi0r ICAgIDs7Ci0rZXNhYwotK19MVF9ERUNMKFtdLCBbcmVsb2FkX2ZsYWddLCBbMV0sIFtIb3cgdG8g Y3JlYXRlIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzXSlkbmwKLStfTFRfREVDTChbXSwgW3JlbG9h ZF9jbWRzXSwgWzJdKWRubAotK10pIyBfTFRfQ01EX1JFTE9BRAotKwotKwotKyMgX0xUX0NIRUNL X01BR0lDX01FVEhPRAotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgaG93IHRvIGNoZWNr IGZvciBsaWJyYXJ5IGRlcGVuZGVuY2llcwotKyMgIC0tIFBPUlRNRSBmaWxsIGluIHdpdGggdGhl IGR5bmFtaWMgbGlicmFyeSBjaGFyYWN0ZXJpc3RpY3MKLSttNF9kZWZ1bihbX0xUX0NIRUNLX01B R0lDX01FVEhPRF0sCi0rW200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSkKLSttNF9yZXF1aXJl KFtfTFRfREVDTF9PQkpEVU1QXSkKLStBQ19DQUNIRV9DSEVDSyhbaG93IHRvIHJlY29nbml6ZSBk ZXBlbmRlbnQgbGlicmFyaWVzXSwKLStsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZCwKLStbbHRf Y3ZfZmlsZV9tYWdpY19jbWQ9JyRNQUdJQ19DTUQnCi0rbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2Zp bGU9Ci0rbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J3Vua25vd24nCi0rIyBOZWVkIHRvIHNl dCB0aGUgcHJlY2VkaW5nIHZhcmlhYmxlIG9uIGFsbCBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0Ci0r IyBpbnRlcmxpYnJhcnkgZGVwZW5kZW5jaWVzLgotKyMgJ25vbmUnIC0tIGRlcGVuZGVuY2llcyBu b3Qgc3VwcG9ydGVkLgotKyMgYHVua25vd24nIC0tIHNhbWUgYXMgbm9uZSwgYnV0IGRvY3VtZW50 cyB0aGF0IHdlIHJlYWxseSBkb24ndCBrbm93LgotKyMgJ3Bhc3NfYWxsJyAtLSBhbGwgZGVwZW5k ZW5jaWVzIHBhc3NlZCB3aXRoIG5vIGNoZWNrcy4KLSsjICd0ZXN0X2NvbXBpbGUnIC0tIGNoZWNr IGJ5IG1ha2luZyB0ZXN0IHByb2dyYW0uCi0rIyAnZmlsZV9tYWdpYyBbW3JlZ2V4XV0nIC0tIGNo ZWNrIGJ5IGxvb2tpbmcgZm9yIGZpbGVzIGluIGxpYnJhcnkgcGF0aAotKyMgd2hpY2ggcmVzcG9u ZHMgdG8gdGhlICRmaWxlX21hZ2ljX2NtZCB3aXRoIGEgZ2l2ZW4gZXh0ZW5kZWQgcmVnZXguCi0r IyBJZiB5b3UgaGF2ZSBgZmlsZScgb3IgZXF1aXZhbGVudCBvbiB5b3VyIHN5c3RlbSBhbmQgeW91 J3JlIG5vdCBzdXJlCi0rIyB3aGV0aGVyIGBwYXNzX2FsbCcgd2lsbCAqYWx3YXlzKiB3b3JrLCB5 b3UgcHJvYmFibHkgd2FudCB0aGlzIG9uZS4KLSsKLStjYXNlICRob3N0X29zIGluCi0rYWl4W1s0 LTldXSopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsK LStiZW9zKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7Owot KwotK2JzZGlbWzQ1XV0qKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFn aWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tNTF1dU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1p YyBsaWIpJwotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9Jy91c3IvYmluL2ZpbGUgLUwnCi0rICBs dF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vc2hsaWIvbGliYy5zbwotKyAgOzsKLSsKLStjeWd3 aW4qKQotKyAgIyBmdW5jX3dpbjMyX2xpYmlkIGlzIGEgc2hlbGwgZnVuY3Rpb24gZGVmaW5lZCBp biBsdG1haW4uc2gKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIF54 ODYgYXJjaGl2ZSBpbXBvcnR8Xng4NiBETEwnCi0rICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nZnVu Y193aW4zMl9saWJpZCcKLSsgIDs7Ci0rCi0rbWluZ3cqIHwgcHczMiopCi0rICAjIEJhc2UgTVNZ Uy9NaW5HVyBkbyBub3QgcHJvdmlkZSB0aGUgJ2ZpbGUnIGNvbW1hbmQgbmVlZGVkIGJ5Ci0rICAj IGZ1bmNfd2luMzJfbGliaWQgc2hlbGwgZnVuY3Rpb24sIHNvIHVzZSBhIHdlYWtlciB0ZXN0IGJh c2VkIG9uICdvYmpkdW1wJywKLSsgICMgdW5sZXNzIHdlIGZpbmQgJ2ZpbGUnLCBmb3IgZXhhbXBs ZSBiZWNhdXNlIHdlIGFyZSBjcm9zcy1jb21waWxpbmcuCi0rICBpZiAoIGZpbGUgLyApID4vZGV2 L251bGwgMj4mMTsgdGhlbgotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9t YWdpYyBeeDg2IGFyY2hpdmUgaW1wb3J0fF54ODYgRExMJwotKyAgICBsdF9jdl9maWxlX21hZ2lj X2NtZD0nZnVuY193aW4zMl9saWJpZCcKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgcGVpKi1pMzg2KC4qYXJjaGl0ZWN0dXJl OiBpMzg2KT8nCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKLSsgIGZp Ci0rICA7OwotKwotK2NlZ2NjKQotKyAgIyB1c2UgdGhlIHdlYWtlciB0ZXN0IGJhc2VkIG9uICdv YmpkdW1wJy4gU2VlIG1pbmd3Ki4KLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxl X21hZ2ljIGZpbGUgZm9ybWF0IHBlLWFybS0uKmxpdHRsZSguKmFyY2hpdGVjdHVyZTogYXJtKT8n Ci0rICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE9CSkRVTVAgLWYnCi0rICA7OwotKwotK2Rhcndp biogfCByaGFwc29keSopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAot KyAgOzsKLSsKLStmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICBpZiBlY2hvIF9fRUxGX18gfCAk Q0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPiAvZGV2L251bGw7IHRoZW4KLSsgICAgY2FzZSAkaG9z dF9jcHUgaW4KLSsgICAgaSo4NiApCi0rICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHRoZSBwcmVz ZW5jZSBvZiBPcGVuQlNEIGhlcmUgd2FzIGEgbWlzdGFrZS4KLSsgICAgICAjIExldCdzIGFjY2Vw dCBib3RoIG9mIHRoZW0gdW50aWwgdGhpcyBpcyBjbGVhcmVkIHVwLgotKyAgICAgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChGcmVlQlNEfE9wZW5CU0R8RHJhZ29uRmx5 KS9pW1szLTldXTg2IChjb21wYWN0ICk/ZGVtYW5kIHBhZ2VkIHNoYXJlZCBsaWJyYXJ5JwotKyAg ICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKLSsgICAgICBsdF9jdl9maWxl X21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvLipgCi0rICAgICAgOzsKLSsg ICAgZXNhYwotKyAgZWxzZQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2Fs bAotKyAgZmkKLSsgIDs7Ci0rCi0rZ251KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k PXBhc3NfYWxsCi0rICA7OwotKwotK2hwdXgxMC4yMCogfCBocHV4MTEqKQotKyAgbHRfY3ZfZmls ZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQotKyAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgIGlhNjQq KQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1tbMC05XV1b WzAtOV1dW1swLTldXXxFTEYtW1swLTldXVtbMC05XV0pIHNoYXJlZCBvYmplY3QgZmlsZSAtIElB NjQnCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2hwdXgzMi9saWJj LnNvCi0rICAgIDs7Ci0rICBocHBhKjY0KikKLSsgICAgW2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPSdmaWxlX21hZ2ljIChzWzAtOV1bMC05XVswLTldfEVMRi1bMC05XVswLTldKSBzaGFyZWQg b2JqZWN0IGZpbGUgLSBQQS1SSVNDIFswLTldLlswLTldJ10KLSsgICAgbHRfY3ZfZmlsZV9tYWdp Y190ZXN0X2ZpbGU9L3Vzci9saWIvcGEyMF82NC9saWJjLnNsCi0rICAgIDs7Ci0rICAqKQotKyAg ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1tbMC05XV1bWzAtOV1d W1swLTldXXxQQS1SSVNDW1swLTldXS5bWzAtOV1dKSBzaGFyZWQgbGlicmFyeScKLSsgICAgbHRf Y3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGliYy5zbAotKyAgICA7OwotKyAgZXNh YwotKyAgOzsKLSsKLStpbnRlcml4W1szLTldXSopCi0rICAjIFBJQyBjb2RlIGlzIGJyb2tlbiBv biBJbnRlcml4IDMueCwgdGhhdCdzIHdoeSB8XC5hIG5vdCB8X3BpY1wuYSBoZXJlCi0rICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvfFwu YSkkJwotKyAgOzsKLSsKLStpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKyAgY2FzZSAk TEQgaW4KLSsgICotMzJ8KiItMzIgIikgbGlibWFnaWM9MzItYml0OzsKLSsgICotbjMyfCoiLW4z MiAiKSBsaWJtYWdpYz1OMzI7OwotKyAgKi02NHwqIi02NCAiKSBsaWJtYWdpYz02NC1iaXQ7Owot KyAgKikgbGlibWFnaWM9bmV2ZXItbWF0Y2g7OwotKyAgZXNhYwotKyAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGludXggRUxG LgotK2xpbnV4KiB8IGsqYnNkKi1nbnUpCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1w YXNzX2FsbAotKyAgOzsKLSsKLStuZXRic2QqKQotKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1F IC0gfCAkR1JFUCBfX0VMRl9fID4gL2Rldi9udWxsOyB0aGVuCi0rICAgIGx0X2N2X2RlcGxpYnNf Y2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc29cLltbMC05XV0rXC5b WzAtOV1dK3xfcGljXC5hKSQnCi0rICBlbHNlCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc298X3BpY1wuYSkkJwotKyAgZmkKLSsg IDs7Ci0rCi0rbmV3b3M2KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21h Z2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTUxdXVNCIChleGVjdXRhYmxlfGR5bmFtaWMg bGliKScKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKLSsgIGx0X2N2X2Zp bGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2xpYm5scy5zbwotKyAgOzsKLSsKLSsqbnRvKiB8 ICpxbngqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0r Ci0rb3BlbmJzZCopCi0rICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAk R1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44 LXBvd2VycGMiOyB0aGVuCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9w YXR0ZXJuIC9saWJbW14vXV0rKFwuc29cLltbMC05XV0rXC5bWzAtOV1dK3xcLnNvfF9waWNcLmEp JCcKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRl cm4gL2xpYltbXi9dXSsoXC5zb1wuW1swLTldXStcLltbMC05XV0rfF9waWNcLmEpJCcKLSsgIGZp Ci0rICA7OwotKwotK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK3Jkb3MqKQotKyAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rc29sYXJpcyopCi0rICBsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStzeXN2NSogfCBzY28zLjJ2NSog fCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqIHwgc3lzdjQqdXcyKikKLSsgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK3N5c3Y0IHwgc3lzdjQu MyopCi0rICBjYXNlICRob3N0X3ZlbmRvciBpbgotKyAgbW90b3JvbGEpCi0rICAgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtb TUxdXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliKSBNW1swLTldXVtbMC05XV0qIFZlcnNp b24gW1swLTldXScKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9YGVjaG8gL3Vzci9s aWIvbGliYy5zbypgCi0rICAgIDs7Ci0rICBuY3IpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tf bWV0aG9kPXBhc3NfYWxsCi0rICAgIDs7Ci0rICBzZXF1ZW50KQotKyAgICBsdF9jdl9maWxlX21h Z2ljX2NtZD0nL2Jpbi9maWxlJwotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmls ZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0qLWJpdCBbW0xNXV1TQiAoc2hhcmVkIG9iamVjdHxk eW5hbWljIGxpYiApJwotKyAgICA7OwotKyAgc25pKQotKyAgICBsdF9jdl9maWxlX21hZ2ljX2Nt ZD0nL2Jpbi9maWxlJwotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0iZmlsZV9tYWdp YyBFTEYgW1swLTldXVtbMC05XV0qLWJpdCBbW0xNXV1TQiBkeW5hbWljIGxpYiIKLSsgICAgbHRf Y3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L2xpYi9saWJjLnNvCi0rICAgIDs7Ci0rICBzaWVtZW5z KQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgICA7OwotKyAg cGMpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICAgIDs7Ci0r ICBlc2FjCi0rICA7OwotKwotK3RwZiopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1w YXNzX2FsbAotKyAgOzsKLStlc2FjCi0rXSkKLStmaWxlX21hZ2ljX2NtZD0kbHRfY3ZfZmlsZV9t YWdpY19jbWQKLStkZXBsaWJzX2NoZWNrX21ldGhvZD0kbHRfY3ZfZGVwbGlic19jaGVja19tZXRo b2QKLSt0ZXN0IC16ICIkZGVwbGlic19jaGVja19tZXRob2QiICYmIGRlcGxpYnNfY2hlY2tfbWV0 aG9kPXVua25vd24KLSsKLStfTFRfREVDTChbXSwgW2RlcGxpYnNfY2hlY2tfbWV0aG9kXSwgWzFd LAotKyAgICBbTWV0aG9kIHRvIGNoZWNrIHdoZXRoZXIgZGVwZW5kZW50IGxpYnJhcmllcyBhcmUg c2hhcmVkIG9iamVjdHNdKQotK19MVF9ERUNMKFtdLCBbZmlsZV9tYWdpY19jbWRdLCBbMV0sCi0r ICAgIFtDb21tYW5kIHRvIHVzZSB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID09ICJmaWxlX21h Z2ljIl0pCi0rXSkjIF9MVF9DSEVDS19NQUdJQ19NRVRIT0QKLSsKLSsKLSsjIExUX1BBVEhfTk0K LSsjIC0tLS0tLS0tLS0KLSsjIGZpbmQgdGhlIHBhdGhuYW1lIHRvIGEgQlNELSBvciBNUy1jb21w YXRpYmxlIG5hbWUgbGlzdGVyCi0rQUNfREVGVU4oW0xUX1BBVEhfTk1dLAotK1tBQ19SRVFVSVJF KFtBQ19QUk9HX0NDXSlkbmwKLStBQ19DQUNIRV9DSEVDSyhbZm9yIEJTRC0gb3IgTVMtY29tcGF0 aWJsZSBuYW1lIGxpc3RlciAobm0pXSwgbHRfY3ZfcGF0aF9OTSwKLStbaWYgdGVzdCAtbiAiJE5N IjsgdGhlbgotKyAgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rICBsdF9jdl9w YXRoX05NPSIkTk0iCi0rZWxzZQotKyAgbHRfbm1fdG9fY2hlY2s9IiR7YWNfdG9vbF9wcmVmaXh9 bm0iCi0rICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiICYmIHRlc3QgIiRidWlsZCIgPSAi JGhvc3QiOyB0aGVuCi0rICAgIGx0X25tX3RvX2NoZWNrPSIkbHRfbm1fdG9fY2hlY2sgbm0iCi0r ICBmaQotKyAgZm9yIGx0X3RtcF9ubSBpbiAkbHRfbm1fdG9fY2hlY2s7IGRvCi0rICAgIGx0X3Nh dmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgICBmb3IgYWNfZGlyIGluICRQ QVRIIC91c3IvY2NzL2Jpbi9lbGYgL3Vzci9jY3MvYmluIC91c3IvdWNiIC9iaW47IGRvCi0rICAg ICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGly PS4KLSsgICAgICB0bXBfbm09IiRhY19kaXIvJGx0X3RtcF9ubSIKLSsgICAgICBpZiB0ZXN0IC1m ICIkdG1wX25tIiB8fCB0ZXN0IC1mICIkdG1wX25tJGFjX2V4ZWV4dCIgOyB0aGVuCi0rCSMgQ2hl Y2sgdG8gc2VlIGlmIHRoZSBubSBhY2NlcHRzIGEgQlNELWNvbXBhdCBmbGFnLgotKwkjIEFkZGlu ZyB0aGUgYHNlZCAxcScgcHJldmVudHMgZmFsc2UgcG9zaXRpdmVzIG9uIEhQLVVYLCB3aGljaCBz YXlzOgotKwkjICAgbm06IHVua25vd24gb3B0aW9uICJCIiBpZ25vcmVkCi0rCSMgVHJ1NjQncyBu bSBjb21wbGFpbnMgdGhhdCAvZGV2L251bGwgaXMgYW4gaW52YWxpZCBvYmplY3QgZmlsZQotKwlj YXNlIGAiJHRtcF9ubSIgLUIgL2Rldi9udWxsIDI+JjEgfCBzZWQgJzFxJ2AgaW4KLSsJKi9kZXYv bnVsbCogfCAqJ0ludmFsaWQgZmlsZSBvciBvYmplY3QgdHlwZScqKQotKwkgIGx0X2N2X3BhdGhf Tk09IiR0bXBfbm0gLUIiCi0rCSAgYnJlYWsKLSsJICA7OwotKwkqKQotKwkgIGNhc2UgYCIkdG1w X25tIiAtcCAvZGV2L251bGwgMj4mMSB8IHNlZCAnMXEnYCBpbgotKwkgICovZGV2L251bGwqKQot KwkgICAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtcCIKLSsJICAgIGJyZWFrCi0rCSAgICA7Owot KwkgICopCi0rCSAgICBsdF9jdl9wYXRoX05NPSR7bHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSJ9ICMg a2VlcCB0aGUgZmlyc3QgbWF0Y2gsIGJ1dAotKwkgICAgY29udGludWUgIyBzbyB0aGF0IHdlIGNh biB0cnkgdG8gZmluZCBvbmUgdGhhdCBzdXBwb3J0cyBCU0QgZmxhZ3MKLSsJICAgIDs7Ci0rCSAg ZXNhYwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICBkb25lCi0rICAgIElGUz0iJGx0 X3NhdmVfaWZzIgotKyAgZG9uZQotKyAgOiAke2x0X2N2X3BhdGhfTk09bm99Ci0rZmldKQotK2lm IHRlc3QgIiRsdF9jdl9wYXRoX05NIiAhPSAibm8iOyB0aGVuCi0rICBOTT0iJGx0X2N2X3BhdGhf Tk0iCi0rZWxzZQotKyAgIyBEaWRuJ3QgZmluZCBhbnkgQlNEIGNvbXBhdGlibGUgbmFtZSBsaXN0 ZXIsIGxvb2sgZm9yIGR1bXBiaW4uCi0rICBBQ19DSEVDS19UT09MUyhEVU1QQklOLCBbImR1bXBi aW4gLXN5bWJvbHMiICJsaW5rIC1kdW1wIC1zeW1ib2xzIl0sIDopCi0rICBBQ19TVUJTVChbRFVN UEJJTl0pCi0rICBpZiB0ZXN0ICIkRFVNUEJJTiIgIT0gIjoiOyB0aGVuCi0rICAgIE5NPSIkRFVN UEJJTiIKLSsgIGZpCi0rZmkKLSt0ZXN0IC16ICIkTk0iICYmIE5NPW5tCi0rQUNfU1VCU1QoW05N XSkKLStfTFRfREVDTChbXSwgW05NXSwgWzFdLCBbQSBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFt ZSBsaXN0ZXJdKWRubAotKwotK0FDX0NBQ0hFX0NIRUNLKFt0aGUgbmFtZSBsaXN0ZXIgKCROTSkg aW50ZXJmYWNlXSwgW2x0X2N2X25tX2ludGVyZmFjZV0sCi0rICBbbHRfY3Zfbm1faW50ZXJmYWNl PSJCU0Qgbm0iCi0rICBlY2hvICJpbnQgc29tZV92YXJpYWJsZSA9IDA7IiA+IGNvbmZ0ZXN0LiRh Y19leHQKLSsgIChldmFsIGVjaG8gIlwiXCRhc19tZTpfX29saW5lX186ICRhY19jb21waWxlXCIi ID4mQVNfTUVTU0FHRV9MT0dfRkQpCi0rICAoZXZhbCAiJGFjX2NvbXBpbGUiIDI+Y29uZnRlc3Qu ZXJyKQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAoZXZhbCBl Y2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiAkTk0gXFxcImNvbmZ0ZXN0LiRhY19vYmpleHRcXFwi XCIiID4mQVNfTUVTU0FHRV9MT0dfRkQpCi0rICAoZXZhbCAiJE5NIFwiY29uZnRlc3QuJGFjX29i amV4dFwiIiAyPmNvbmZ0ZXN0LmVyciA+IGNvbmZ0ZXN0Lm91dCkKLSsgIGNhdCBjb25mdGVzdC5l cnIgPiZBU19NRVNTQUdFX0xPR19GRAotKyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVf Xzogb3V0cHV0XCIiID4mQVNfTUVTU0FHRV9MT0dfRkQpCi0rICBjYXQgY29uZnRlc3Qub3V0ID4m QVNfTUVTU0FHRV9MT0dfRkQKLSsgIGlmICRHUkVQICdFeHRlcm5hbC4qc29tZV92YXJpYWJsZScg Y29uZnRlc3Qub3V0ID4gL2Rldi9udWxsOyB0aGVuCi0rICAgIGx0X2N2X25tX2ludGVyZmFjZT0i TVMgZHVtcGJpbiIKLSsgIGZpCi0rICBybSAtZiBjb25mdGVzdCpdKQotK10pIyBMVF9QQVRIX05N Ci0rCi0rIyBPbGQgbmFtZXM6Ci0rQVVfQUxJQVMoW0FNX1BST0dfTk1dLCBbTFRfUEFUSF9OTV0p Ci0rQVVfQUxJQVMoW0FDX1BST0dfTk1dLCBbTFRfUEFUSF9OTV0pCi0rZG5sIGFjbG9jYWwtMS40 IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBBQ19ERUZVTihbQU1fUFJPR19OTV0sIFtd KQotK2RubCBBQ19ERUZVTihbQUNfUFJPR19OTV0sIFtdKQotKwotKwotKyMgTFRfTElCX00KLSsj IC0tLS0tLS0tCi0rIyBjaGVjayBmb3IgbWF0aCBsaWJyYXJ5Ci0rQUNfREVGVU4oW0xUX0xJQl9N XSwKLStbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAotK0xJQk09Ci0rY2FzZSAk aG9zdCBpbgotKyotKi1iZW9zKiB8ICotKi1jeWd3aW4qIHwgKi0qLXB3MzIqIHwgKi0qLWRhcndp biopCi0rICAjIFRoZXNlIHN5c3RlbSBkb24ndCBoYXZlIGxpYm0sIG9yIGRvbid0IG5lZWQgaXQK LSsgIDs7Ci0rKi1uY3Itc3lzdjQuMyopCi0rICBBQ19DSEVDS19MSUIobXcsIF9td3ZhbGlkY2hl Y2tsLCBMSUJNPSItbG13IikKLSsgIEFDX0NIRUNLX0xJQihtLCBjb3MsIExJQk09IiRMSUJNIC1s bSIpCi0rICA7OwotKyopCi0rICBBQ19DSEVDS19MSUIobSwgY29zLCBMSUJNPSItbG0iKQotKyAg OzsKLStlc2FjCi0rQUNfU1VCU1QoW0xJQk1dKQotK10pIyBMVF9MSUJfTQotKwotKyMgT2xkIG5h bWU6Ci0rQVVfQUxJQVMoW0FDX0NIRUNLX0xJQk1dLCBbTFRfTElCX01dKQotK2RubCBhY2xvY2Fs LTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX0NIRUNLX0xJ Qk1dLCBbXSkKLSsKLSsKLSsjIF9MVF9DT01QSUxFUl9OT19SVFRJKFtUQUdOQU1FXSkKLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX0NPTVBJTEVSX05P X1JUVEldLAotK1ttNF9yZXF1aXJlKFtfTFRfVEFHX0NPTVBJTEVSXSlkbmwKLSsKLStfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9Ci0rCi0raWYgdGVzdCAi JEdDQyIgPSB5ZXM7IHRoZW4KLSsgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWls dGluX2ZsYWcsICQxKT0nIC1mbm8tYnVpbHRpbicKLSsKLSsgIF9MVF9DT01QSUxFUl9PUFRJT04o W2lmICRjb21waWxlciBzdXBwb3J0cyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zXSwKLSsgICAg bHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMsCi0rICAgIFstZm5vLXJ0dGkgLWZu by1leGNlcHRpb25zXSwgW10sCi0rICAgIFtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9f YnVpbHRpbl9mbGFnLCAkMSk9IiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRp bl9mbGFnLCAkMSkgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyJdKQotK2ZpCi0rX0xUX1RBR0RF Q0woW25vX2J1aWx0aW5fZmxhZ10sIFtsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ10s IFsxXSwKLSsJW0NvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnNdKQot K10pIyBfTFRfQ09NUElMRVJfTk9fUlRUSQotKwotKwotKyMgX0xUX0NNRF9HTE9CQUxfU1lNQk9M UwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZnVuKFtfTFRfQ01EX0dMT0JBTF9T WU1CT0xTXSwKLStbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAotK0FDX1JFUVVJ UkUoW0FDX1BST0dfQ0NdKWRubAotK0FDX1JFUVVJUkUoW0xUX1BBVEhfTk1dKWRubAotK0FDX1JF UVVJUkUoW0xUX1BBVEhfTERdKWRubAotK200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCi0r bTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAotK200X3JlcXVpcmUoW19MVF9UQUdfQ09N UElMRVJdKWRubAotKwotKyMgQ2hlY2sgZm9yIGNvbW1hbmQgdG8gZ3JhYiB0aGUgcmF3IHN5bWJv bCBuYW1lIGZvbGxvd2VkIGJ5IEMgc3ltYm9sIGZyb20gbm0uCi0rQUNfTVNHX0NIRUNLSU5HKFtj b21tYW5kIHRvIHBhcnNlICROTSBvdXRwdXQgZnJvbSAkY29tcGlsZXIgb2JqZWN0XSkKLStBQ19D QUNIRV9WQUwoW2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGVdLAotK1sKLSsjIFRoZXNlIGFy ZSBzYW5lIGRlZmF1bHRzIHRoYXQgd29yayBvbiBhdCBsZWFzdCBhIGZldyBvbGQgc3lzdGVtcy4K LSsjIFtUaGV5IGNvbWUgZnJvbSBVbHRyaXguICBXaGF0IGNvdWxkIGJlIG9sZGVyIHRoYW4gVWx0 cml4PyEhIDspXQotKwotKyMgQ2hhcmFjdGVyIGNsYXNzIGRlc2NyaWJpbmcgTk0gZ2xvYmFsIHN5 bWJvbCBjb2Rlcy4KLStzeW1jb2RlPSdbW0JDREVHUlNUXV0nCi0rCi0rIyBSZWdleHAgdG8gbWF0 Y2ggc3ltYm9scyB0aGF0IGNhbiBiZSBhY2Nlc3NlZCBkaXJlY3RseSBmcm9tIEMuCi0rc3ltcGF0 PSdcKFtbX0EtWmEtel1dW1tfQS1aYS16MC05XV0qXCknCi0rCi0rIyBEZWZpbmUgc3lzdGVtLXNw ZWNpZmljIHZhcmlhYmxlcy4KLStjYXNlICRob3N0X29zIGluCi0rYWl4KikKLSsgIHN5bWNvZGU9 J1tbQkNEVF1dJwotKyAgOzsKLStjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0r ICBzeW1jb2RlPSdbW0FCQ0RHSVNUV11dJwotKyAgOzsKLStocHV4KikKLSsgIGlmIHRlc3QgIiRo b3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rICAgIHN5bWNvZGU9J1tbQUJDREVHUlNUXV0nCi0rICBm aQotKyAgOzsKLStpcml4KiB8IG5vbnN0b3B1eCopCi0rICBzeW1jb2RlPSdbW0JDREVHUlNUXV0n Ci0rICA7OwotK29zZiopCi0rICBzeW1jb2RlPSdbW0JDREVHUVJTVF1dJwotKyAgOzsKLStzb2xh cmlzKikKLSsgIHN5bWNvZGU9J1tbQkRSVF1dJwotKyAgOzsKLStzY28zLjJ2NSopCi0rICBzeW1j b2RlPSdbW0RUXV0nCi0rICA7OwotK3N5c3Y0LjJ1dzIqKQotKyAgc3ltY29kZT0nW1tEVF1dJwot KyAgOzsKLStzeXN2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqKQotKyAgc3lt Y29kZT0nW1tBQkRUXV0nCi0rICA7OwotK3N5c3Y0KQotKyAgc3ltY29kZT0nW1tERk5TVFVdXScK LSsgIDs7Ci0rZXNhYwotKwotKyMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHVzZSBpdHMg c3RhbmRhcmQgc3ltYm9sIGNvZGVzLgotK2Nhc2UgYCROTSAtViAyPiYxYCBpbgotKypHTlUqIHwg Kid3aXRoIEJGRCcqKQotKyAgc3ltY29kZT0nW1tBQkNER0lSU1RXXV0nIDs7Ci0rZXNhYwotKwot KyMgVHJhbnNmb3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRvIGEgcHJvcGVyIEMgZGVj bGFyYXRpb24uCi0rIyBTb21lIHN5c3RlbXMgKGVzcC4gb24gaWE2NCkgbGluayBkYXRhIGFuZCBj b2RlIHN5bWJvbHMgZGlmZmVyZW50bHksCi0rIyBzbyB1c2UgdGhpcyBnZW5lcmFsIGFwcHJvYWNo LgotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUgJ3MvXlQgLiog XCguKlwpJC9leHRlcm4gaW50IFwxKCk7L3AnIC1lICdzL14kc3ltY29kZSogLiogXCguKlwpJC9l eHRlcm4gY2hhciBcMTsvcCciCi0rCi0rIyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVkIHN5bWJvbCBs aW5lIGludG8gc3ltYm9sIG5hbWUgYW5kIHN5bWJvbCBhZGRyZXNzCi0rbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9InNlZCAtbiAtZSAncy9eOiBcKFtbXiBdXSpcKSAk LyAge1xcXCJcMVxcXCIsICh2b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW1teIF1d KlwpIFwoW1teIF1dKlwpJC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyIKLStsdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSJzZWQgLW4gLWUg J3MvXjogXChbW14gXV0qXCkgJC8gIHtcXFwiXDFcXFwiLCAodm9pZCAqKSAwfSwvcCcgLWUgJ3Mv XiRzeW1jb2RlKiBcKFtbXiBdXSpcKSBcKGxpYltbXiBdXSpcKSQvICB7XCJcMlwiLCAodm9pZCAq KSBcJlwyfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFtbXiBdXSpcKSBcKFtbXiBdXSpcKSQvICB7 XCJsaWJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCciCi0rCi0rIyBIYW5kbGUgQ1JMRiBpbiBtaW5n dyB0b29sIGNoYWluCi0rb3B0X2NyPQotK2Nhc2UgJGJ1aWxkX29zIGluCi0rbWluZ3cqKQotKyAg b3B0X2NyPWAkRUNITyAneFx7MCwxXH0nIHwgdHIgeCAnXDAxNSdgICMgb3B0aW9uIGNyIGluIHJl Z2V4cAotKyAgOzsKLStlc2FjCi0rCi0rIyBUcnkgd2l0aG91dCBhIHByZWZpeCB1bmRlcnNjb3Jl LCB0aGVuIHdpdGggaXQuCi0rZm9yIGFjX3N5bXByZnggaW4gIiIgIl8iOyBkbwotKwotKyAgIyBU cmFuc2Zvcm0gc3ltY29kZSwgc3ltcGF0LCBhbmQgc3ltcHJmeCBpbnRvIGEgcmF3IHN5bWJvbCBh bmQgYSBDIHN5bWJvbC4KLSsgIHN5bXhmcm09IlxcMSAkYWNfc3ltcHJmeFxcMiBcXDIiCi0rCi0r ICAjIFdyaXRlIHRoZSByYXcgYW5kIEMgaWRlbnRpZmllcnMuCi0rICBpZiB0ZXN0ICIkbHRfY3Zf bm1faW50ZXJmYWNlIiA9ICJNUyBkdW1wYmluIjsgdGhlbgotKyAgICAjIEZha2UgaXQgZm9yIGR1 bXBiaW4gYW5kIHNheSBUIGZvciBhbnkgbm9uLXN0YXRpYyBmdW5jdGlvbgotKyAgICAjIGFuZCBE IGZvciBhbnkgZ2xvYmFsIHZhcmlhYmxlLgotKyAgICAjIEFsc28gZmluZCBDKysgYW5kIF9fZmFz dGNhbGwgc3ltYm9scyBmcm9tIE1TVkMrKywKLSsgICAgIyB3aGljaCBzdGFydCB3aXRoIEAgb3Ig Py4KLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0iJEFXSyBbJyJcCi0rIiAgICAg e2xhc3Rfc2VjdGlvbj1zZWN0aW9uOyBzZWN0aW9uPVwkIDN9OyJcCi0rIiAgICAgL1NlY3Rpb24g bGVuZ3RoIC4qI3JlbG9jcy4qKHBpY2sgYW55KS97aGlkZVtsYXN0X3NlY3Rpb25dPTF9OyJcCi0r IiAgICAgXCQgMCF+L0V4dGVybmFsICpcfC97bmV4dH07IlwKLSsiICAgICAvIDArIFVOREVGIC97 bmV4dH07IC8gVU5ERUYgXChbXnxdXCkqKCkve25leHR9OyJcCi0rIiAgICAge2lmKGhpZGVbc2Vj dGlvbl0pIG5leHR9OyJcCi0rIiAgICAge2Y9MH07IFwkIDB+L1woXCkuKlx8L3tmPTF9OyB7cHJp bnRmIGYgPyBcIlQgXCIgOiBcIkQgXCJ9OyJcCi0rIiAgICAge3NwbGl0KFwkIDAsIGEsIC9cfHxc ci8pOyBzcGxpdChhWzJdLCBzKX07IlwKLSsiICAgICBzWzFdfi9eW0A/XS97cHJpbnQgc1sxXSwg c1sxXTsgbmV4dH07IlwKLSsiICAgICBzWzFdfnByZngge3NwbGl0KHNbMV0sdCxcIkBcIik7IHBy aW50IHRbMV0sIHN1YnN0cih0WzFdLGxlbmd0aChwcmZ4KSl9IlwKLSsiICAgICAnIHByZng9XiRh Y19zeW1wcmZ4XSIKLSsgIGVsc2UKLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0i c2VkIC1uIC1lICdzL14uKltbCSBdXVwoJHN5bWNvZGUkc3ltY29kZSpcKVtbCSBdXVtbCSBdXSok YWNfc3ltcHJmeCRzeW1wYXQkb3B0X2NyJC8kc3lteGZybS9wJyIKLSsgIGZpCi0rCi0rICAjIENo ZWNrIHRvIHNlZSB0aGF0IHRoZSBwaXBlIHdvcmtzIGNvcnJlY3RseS4KLSsgIHBpcGVfd29ya3M9 bm8KLSsKLSsgIHJtIC1mIGNvbmZ0ZXN0KgotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9M VF9FT0YKLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiIHsKLSsjZW5kaWYKLStjaGFy IG5tX3Rlc3RfdmFyOwotK3ZvaWQgbm1fdGVzdF9mdW5jKHZvaWQpOwotK3ZvaWQgbm1fdGVzdF9m dW5jKHZvaWQpe30KLSsjaWZkZWYgX19jcGx1c3BsdXMKLSt9Ci0rI2VuZGlmCi0raW50IG1haW4o KXtubV90ZXN0X3Zhcj0nYSc7bm1fdGVzdF9mdW5jKCk7cmV0dXJuKDApO30KLStfTFRfRU9GCi0r Ci0rICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgotKyAgICAjIE5vdyB0cnkgdG8g Z3JhYiB0aGUgc3ltYm9scy4KLSsgICAgbmxpc3Q9Y29uZnRlc3Qubm0KLSsgICAgaWYgQUNfVFJZ X0VWQUwoTk0gY29uZnRlc3QuJGFjX29iamV4dCBcfCAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf cGlwZSBcPiAkbmxpc3QpICYmIHRlc3QgLXMgIiRubGlzdCI7IHRoZW4KLSsgICAgICAjIFRyeSBz b3J0aW5nIGFuZCB1bmlxdWlmeWluZyB0aGUgb3V0cHV0LgotKyAgICAgIGlmIHNvcnQgIiRubGlz dCIgfCB1bmlxID4gIiRubGlzdCJUOyB0aGVuCi0rCW12IC1mICIkbmxpc3QiVCAiJG5saXN0Igot KyAgICAgIGVsc2UKLSsJcm0gLWYgIiRubGlzdCJUCi0rICAgICAgZmkKLSsKLSsgICAgICAjIE1h a2Ugc3VyZSB0aGF0IHdlIHNuYWdnZWQgYWxsIHRoZSBzeW1ib2xzIHdlIG5lZWQuCi0rICAgICAg aWYgJEdSRVAgJyBubV90ZXN0X3ZhciQnICIkbmxpc3QiID4vZGV2L251bGw7IHRoZW4KLSsJaWYg JEdSRVAgJyBubV90ZXN0X2Z1bmMkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCi0rCSAgY2F0 IDw8X0xUX0VPRiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRl cm4gIkMiIHsKLSsjZW5kaWYKLSsKLStfTFRfRU9GCi0rCSAgIyBOb3cgZ2VuZXJhdGUgdGhlIHN5 bWJvbCBmaWxlLgotKwkgIGV2YWwgIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCIn IDwgIiRubGlzdCIgfCAkR1JFUCAtdiBtYWluID4+IGNvbmZ0ZXN0LiRhY19leHQnCi0rCi0rCSAg Y2F0IDw8X0xUX0VPRiA+PiBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rLyogVGhlIG1hcHBpbmcgYmV0 d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICAqLwotK2NvbnN0IHN0cnVjdCB7Ci0rICBj b25zdCBjaGFyICpuYW1lOwotKyAgdm9pZCAgICAgICAqYWRkcmVzczsKLSt9Ci0rbHRfX1BST0dS QU1fX0xUWF9wcmVsb2FkZWRfc3ltYm9sc1tbXV0gPQotK3sKLSsgIHsgIkBQUk9HUkFNQCIsICh2 b2lkICopIDAgfSwKLStfTFRfRU9GCi0rCSAgJFNFRCAicy9eJHN5bWNvZGUkc3ltY29kZSogXCgu KlwpIFwoLipcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvIiA8ICIkbmxpc3QiIHwgJEdS RVAgLXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0Ci0rCSAgY2F0IDw8XF9MVF9FT0YgPj4gY29u ZnRlc3QuJGFjX2V4dAotKyAgezAsICh2b2lkICopIDB9Ci0rfTsKLSsKLSsvKiBUaGlzIHdvcmtz IGFyb3VuZCBhIHByb2JsZW0gaW4gRnJlZUJTRCBsaW5rZXIgKi8KLSsjaWZkZWYgRlJFRUJTRF9X T1JLQVJPVU5ECi0rc3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgpIHsKLSsg IHJldHVybiBsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9zeW1ib2xzOwotK30KLSsjZW5kaWYK LSsKLSsjaWZkZWYgX19jcGx1c3BsdXMKLSt9Ci0rI2VuZGlmCi0rX0xUX0VPRgotKwkgICMgTm93 IHRyeSBsaW5raW5nIHRoZSB0d28gZmlsZXMuCi0rCSAgbXYgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdHN0bS4kYWNfb2JqZXh0Ci0rCSAgbHRfc2F2ZV9MSUJTPSIkTElCUyIKLSsJICBsdF9zYXZl X0NGTEFHUz0iJENGTEFHUyIKLSsJICBMSUJTPSJjb25mdHN0bS4kYWNfb2JqZXh0IgotKwkgIENG TEFHUz0iJENGTEFHUyRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFn LCAkMSkiCi0rCSAgaWYgQUNfVFJZX0VWQUwoYWNfbGluaykgJiYgdGVzdCAtcyBjb25mdGVzdCR7 YWNfZXhlZXh0fTsgdGhlbgotKwkgICAgcGlwZV93b3Jrcz15ZXMKLSsJICBmaQotKwkgIExJQlM9 IiRsdF9zYXZlX0xJQlMiCi0rCSAgQ0ZMQUdTPSIkbHRfc2F2ZV9DRkxBR1MiCi0rCWVsc2UKLSsJ ICBlY2hvICJjYW5ub3QgZmluZCBubV90ZXN0X2Z1bmMgaW4gJG5saXN0IiA+JkFTX01FU1NBR0Vf TE9HX0ZECi0rCWZpCi0rICAgICAgZWxzZQotKwllY2hvICJjYW5ub3QgZmluZCBubV90ZXN0X3Zh ciBpbiAkbmxpc3QiID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICAgICBmaQotKyAgICBlbHNlCi0r ICAgICAgZWNobyAiY2Fubm90IHJ1biAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSIgPiZB U19NRVNTQUdFX0xPR19GRAotKyAgICBmaQotKyAgZWxzZQotKyAgICBlY2hvICIkcHJvZ25hbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICAgY2F0IGNvbmZ0 ZXN0LiRhY19leHQgPiY1Ci0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KiBjb25mdHN0KgotKwot KyAgIyBEbyBub3QgdXNlIHRoZSBnbG9iYWxfc3ltYm9sX3BpcGUgdW5sZXNzIGl0IHdvcmtzLgot KyAgaWYgdGVzdCAiJHBpcGVfd29ya3MiID0geWVzOyB0aGVuCi0rICAgIGJyZWFrCi0rICBlbHNl Ci0rICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9Ci0rICBmaQotK2RvbmUKLStdKQot K2lmIHRlc3QgLXogIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgotKyAgbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9Ci0rZmkKLStpZiB0ZXN0IC16ICIkbHRfY3Zf c3lzX2dsb2JhbF9zeW1ib2xfcGlwZSRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCI7 IHRoZW4KLSsgIEFDX01TR19SRVNVTFQoZmFpbGVkKQotK2Vsc2UKLSsgIEFDX01TR19SRVNVTFQo b2spCi0rZmkKLSsKLStfTFRfREVDTChbZ2xvYmFsX3N5bWJvbF9waXBlXSwgW2x0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3BpcGVdLCBbMV0sCi0rICAgIFtUYWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5k IHByb2R1Y2UgYSBsaXN0aW5nIG9mIHJhdyBzeW1ib2xzIGFuZCBDIG5hbWVzXSkKLStfTFRfREVD TChbZ2xvYmFsX3N5bWJvbF90b19jZGVjbF0sIFtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19j ZGVjbF0sIFsxXSwKLSsgICAgW1RyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgcHJvcGVy IEMgZGVjbGFyYXRpb25dKQotK19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRy ZXNzXSwKLSsgICAgW2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzXSwg WzFdLAotKyAgICBbVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVz cyBwYWlyXSkKLStfTFRfREVDTChbZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJf cHJlZml4XSwKLSsgICAgW2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNz X2xpYl9wcmVmaXhdLCBbMV0sCi0rICAgIFtUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBh IEMgbmFtZSBhZGRyZXNzIHBhaXIgd2hlbiBsaWIgcHJlZml4IGlzIG5lZWRlZF0pCi0rXSkgIyBf TFRfQ01EX0dMT0JBTF9TWU1CT0xTCi0rCi0rCi0rIyBfTFRfQ09NUElMRVJfUElDKFtUQUdOQU1F XSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZnVuKFtfTFRfQ09NUElM RVJfUElDXSwKLStbbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCi0rX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Ci0rX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPQotK19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0KLSsK LStBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDXSkK LSttNF9pZihbJDFdLCBbQ1hYXSwgWwotKyAgIyBDKysgc3BlY2lmaWMgY2FzZXMgZm9yIHBpYywg c3RhdGljLCB3bCwgZXRjLgotKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKLSsKLSsgICAgY2FzZSAkaG9z dF9vcyBpbgotKyAgICBhaXgqKQotKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KLSsgICAg ICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIEFJWCA1IG5vdyBzdXBwb3J0 cyBJQTY0IHByb2Nlc3NvcgotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAk MSk9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0r ICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAgICAgICAgICAgICMg c2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAgICAgICAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJwotKyAgICAgICAgOzsKLSsg ICAgICBtNjhrKQotKyAgICAgICAgICAgICMgRklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAg Y29kZSB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKLSsgICAgICAgICAgICAjIGFkZGlu ZyB0aGUgYC1tNjgwMjAnIGZsYWcgdG8gR0NDIHByZXZlbnRzIGJ1aWxkaW5nIGFueXRoaW5nIGJl dHRlciwKLSsgICAgICAgICAgICAjIGxpa2UgYC1tNjgwNDAnLgotKyAgICAgICAgICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLW02ODAyMCAtcmVzaWRlbnQzMiAtbWFs d2F5cy1yZXN0b3JlLWE0JwotKyAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsK LSsgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0 KiB8IG9zZjUqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgot KyAgICAgIDs7Ci0rICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBvczIqIHwgcHczMiogfCBjZWdjYyop Ci0rICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwg d2hldGhlciBpdCBpcyBiZWluZwotKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRs bCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rICAgICAgIyBBbHRo b3VnaCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9s ZC1zdHlsZQotKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCi0rICAg ICAgbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAotKwlbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkKLSsgICAgICA7OwotKyAgICBkYXJ3aW4qIHwgcmhh cHNvZHkqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KLSsg ICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCi0rICAg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZm5vLWNvbW1vbicKLSsg ICAgICA7OwotKyAgICAqZGpncHAqKQotKyAgICAgICMgREpHUFAgZG9lcyBub3Qgc3VwcG9ydCBz aGFyZWQgbGlicmFyaWVzIGF0IGFsbAotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKT0KLSsgICAgICA7OwotKyAgICBpbnRlcml4W1szLTldXSopCi0rICAgICAgIyBJ bnRlcml4IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4K LSsgICAgICAjIEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGlt ZS4KLSsgICAgICA7OwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNyL25l YzsgdGhlbgotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9LUtjb25mb3Jt X3BpYwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgaHB1eCopCi0rICAgICAgIyBQSUMgaXMg dGhlIGRlZmF1bHQgZm9yIDY0LWJpdCBQQSBIUC1VWCwgYnV0IG5vdCBmb3IgMzItYml0Ci0rICAg ICAgIyBQQSBIUC1VWC4gIE9uIElBNjQgSFAtVVgsIFBJQyBpcyB0aGUgZGVmYXVsdCBidXQgdGhl IHBpYyBmbGFnCi0rICAgICAgIyBzZXRzIHRoZSBkZWZhdWx0IFRMUyBtb2RlbCBhbmQgYWZmZWN0 cyBpbmxpbmluZy4KLSsgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgIGhwcGEqNjQqKQot Kwk7OwotKyAgICAgICopCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0n LWZQSUMnCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rICAgICpxbngqIHwgKm50byop Ci0rICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBv cHRpb24gdG9vLCBvdGhlcndpc2UKLSsgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCi0rICAgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQyAtc2hhcmVkJwotKyAg ICAgIDs7Ci0rICAgICopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctZlBJQycKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBlbHNlCi0rICAgIGNhc2UgJGhv c3Rfb3MgaW4KLSsgICAgICBhaXhbWzQtOV1dKikKLSsJIyBBbGwgQUlYIGNvZGUgaXMgUElDLgot KwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkgICMgQUlYIDUgbm93IHN1cHBv cnRzIElBNjQgcHJvY2Vzc29yCi0rCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YywgJDEpPSctQnN0YXRpYycKLSsJZWxzZQotKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9zdGF0aWMsICQxKT0nLWJuc28gLWJJOi9saWIvc3lzY2FsbHMuZXhwJwotKwlmaQotKwk7Owot KyAgICAgIGNob3J1cyopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCWN4Y2g2OCopCi0rCSAg IyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAjIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9zdGF0aWMsICQxKT0iLS1ub19hdXRvX2luc3RhbnRpYXRpb24gLXUgX19tYWluIC11IF9f cHJlbWFpbiAtdSBfYWJvcnQgLXIgJENPT0xfRElSL2xpYi9saWJPcmIuYSAkTVZNRV9ESVIvbGli L0NDL2xpYkMuYSAkTVZNRV9ESVIvbGliL2NsYXNzaXgvbGliY3gucy5hIgotKwkgIDs7Ci0rCWVz YWMKLSsJOzsKLSsgICAgICBkZ3V4KikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBlYysr KikKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0r CSAgICA7OwotKwkgIGdoY3gqKQotKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJ ICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycKLSsJICAgIDs7 Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBmcmVlYnNkKiB8IGRyYWdv bmZseSopCi0rCSMgRnJlZUJTRCB1c2VzIEdOVSBDKysKLSsJOzsKLSsgICAgICBocHV4OSogfCBo cHV4MTAqIHwgaHB1eDExKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBDQyopCi0rCSAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nJHt3bH0tYSAke3dsfWFyY2hpdmUn Ci0rCSAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KLSsJICAgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPScrWicKLSsJICAgIGZpCi0rCSAgICA7Owot KwkgIGFDQyopCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVds LCcKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nJHt3bH0t YSAke3dsfWFyY2hpdmUnCi0rCSAgICBjYXNlICRob3N0X2NwdSBpbgotKwkgICAgaHBwYSo2NCp8 aWE2NCopCi0rCSAgICAgICMgK1ogdGhlIGRlZmF1bHQKLSsJICAgICAgOzsKLSsJICAgICopCi0r CSAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nK1onCi0rCSAgICAg IDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7 Ci0rICAgICAgaW50ZXJpeCopCi0rCSMgVGhpcyBpcyBjODksIHdoaWNoIGlzIE1TIFZpc3VhbCBD KysgKG5vIHNoYXJlZCBsaWJzKQotKwkjIEFueW9uZSB3YW50cyB0byBkbyBhIHBvcnQ/Ci0rCTs7 Ci0rICAgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsJY2FzZSAkY2NfYmFzZW5h bWUgaW4KLSsJICBDQyopCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQx KT0nLVdsLCcKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0n LW5vbl9zaGFyZWQnCi0rCSAgICAjIENDIHBpYyBmbGFnIC1LUElDIGlzIHRoZSBkZWZhdWx0Lgot KwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIGxpbnV4KiB8 IGsqYnNkKi1nbnUpCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgS0NDKikKLSsJICAgICMg S0FJIEMrKyBDb21waWxlcgotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy0tYmFja2VuZCAtV2wsJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3Bp YywgJDEpPSctZlBJQycKLSsJICAgIDs7Ci0rCSAgZWNwYyogKQotKwkgICAgIyBvbGQgSW50ZWwg QysrIGZvciB4ODZfNjQgd2hpY2ggc3RpbGwgc3VwcG9ydGVkIC1LUElDLgotKwkgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rCSAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3RhdGljJwotKwkgICAgOzsKLSsJICBpY3BjKiApCi0r CSAgICAjIEludGVsIEMrKywgdXNlZCB0byBiZSBpbmNvbXBhdGlibGUgd2l0aCBHQ0MuCi0rCSAg ICAjIElDQyAxMCBkb2Vzbid0IGFjY2VwdCAtS1BJQyBhbnkgbW9yZS4KLSsJICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKLSsJICAgIDs7Ci0rCSAgcGdDQyogfCBwZ2Nw cCopCi0rCSAgICAjIFBvcnRsYW5kIEdyb3VwIEMrKyBjb21waWxlcgotKwkgICAgX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rCSAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mcGljJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsJICAgIDs7Ci0rCSAgY3h4KikKLSsJICAg ICMgQ29tcGFxIEMrKwotKwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGlzIGVtcHR5LiAg SXQgYXBwZWFycyB0aGF0IGFsbCBBbHBoYQotKwkgICAgIyBMaW51eCBhbmQgQ29tcGFxIFRydTY0 IFVuaXggb2JqZWN0cyBhcmUgUElDLgotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPQotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEp PSctbm9uX3NoYXJlZCcKLSsJICAgIDs7Ci0rCSAgeGxjKiB8IHhsQyopCi0rCSAgICAjIElCTSBY TCA4LjAgb24gUFBDCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0n LVdsLCcKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXFwaWMn Ci0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1xc3RhdGlj bGluaycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVx YCBpbgotKwkgICAgKlN1blwgQyopCi0rCSAgICAgICMgU3VuIEMrKyA1LjkKLSsJICAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJICAgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsJICAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICcKLSsJICAgICAg OzsKLSsJICAgIGVzYWMKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBseW54b3MqKQot Kwk7OwotKyAgICAgIG04OGsqKQotKwk7OwotKyAgICAgIG12cyopCi0rCWNhc2UgJGNjX2Jhc2Vu YW1lIGluCi0rCSAgY3h4KikKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMs ICQxKT0nLVcgYyxleHBvcnRhbGwnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2Fj Ci0rCTs7Ci0rICAgICAgbmV0YnNkKikKLSsJOzsKLSsgICAgICAqcW54KiB8ICpudG8qKQotKyAg ICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRp b24gdG9vLCBvdGhlcndpc2UKLSsgICAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KLSsgICAgICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMgLXNoYXJlZCcKLSsg ICAgICAgIDs7Ci0rICAgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKwljYXNlICRjY19iYXNl bmFtZSBpbgotKwkgIEtDQyopCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2ws ICQxKT0nLS1iYWNrZW5kIC1XbCwnCi0rCSAgICA7OwotKwkgIFJDQyopCi0rCSAgICAjIFJhdGlv bmFsIEMrKyAyLjQuMQotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSctcGljJwotKwkgICAgOzsKLSsJICBjeHgqKQotKwkgICAgIyBEaWdpdGFsL0NvbXBhcSBDKysK LSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAg IyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGlzIGVtcHR5LiAgSXQgYXBwZWFycyB0aGF0IGFsbCBB bHBoYQotKwkgICAgIyBMaW51eCBhbmQgQ29tcGFxIFRydTY0IFVuaXggb2JqZWN0cyBhcmUgUElD LgotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQotKwkgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKLSsJICAg IDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBwc29zKikKLSsJOzsK LSsgICAgICBzb2xhcmlzKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBDQyopCi0rCSAg ICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRlcmxpbmUgQysrCi0rCSAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKwkgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsJICAgIF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnCi0rCSAgICA7OwotKwkgIGdjeCop Ci0rCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgotKwkgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPSctUElDJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsK LSsJZXNhYwotKwk7OwotKyAgICAgIHN1bm9zNCopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0r CSAgQ0MqKQotKwkgICAgIyBTdW4gQysrIDQueAotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctcGljJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsJICAgIDs7Ci0rCSAgbGNjKikKLSsJICAgICMgTHVj aWQKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycKLSsJ ICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBzeXN2NSogfCB1 bml4d2FyZSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgT3BlblVOSVgqKQotKwljYXNlICRjY19i YXNlbmFtZSBpbgotKwkgIENDKikKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93 bCwgJDEpPSctV2wsJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSctS1BJQycKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0n LUJzdGF0aWMnCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgdGFuZGVtKikKLSsJY2Fz ZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBOQ0MqKQotKwkgICAgIyBOb25TdG9wLVVYIE5DQyAzLjIw Ci0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKwkg ICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIHZ4d29ya3MqKQot Kwk7OwotKyAgICAgICopCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRf c2hhcmVkLCAkMSk9bm8KLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLStdLAotK1sKLSsgIGlmIHRl c3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93 bCwgJDEpPSctV2wsJwotKyAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAk MSk9Jy1zdGF0aWMnCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBhaXgqKQotKyAg ICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0g aWE2NDsgdGhlbgotKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgotKwlfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIGZp Ci0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4K LSsgICAgICBwb3dlcnBjKQotKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FP UzQgLnNvIHN1cHBvcnQKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSk9Jy1mUElDJwotKyAgICAgICAgOzsKLSsgICAgICBtNjhrKQotKyAgICAgICAgICAg ICMgRklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFyZWQgbGli cmFyaWVzLCBidXQKLSsgICAgICAgICAgICAjIGFkZGluZyB0aGUgYC1tNjgwMjAnIGZsYWcgdG8g R0NDIHByZXZlbnRzIGJ1aWxkaW5nIGFueXRoaW5nIGJldHRlciwKLSsgICAgICAgICAgICAjIGxp a2UgYC1tNjgwNDAnLgotKyAgICAgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9w aWMsICQxKT0nLW02ODAyMCAtcmVzaWRlbnQzMiAtbWFsd2F5cy1yZXN0b3JlLWE0JwotKyAgICAg ICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgYmVvcyogfCBpcml4NSogfCBp cml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgICAgICMgUElD IGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgotKyAgICAgIDs7Ci0rCi0rICAgIG1pbmd3 KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiogfCBjZWdjYyopCi0rICAgICAgIyBUaGlzIGhhY2sg aXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZwot KyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQg c3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBp Z25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQotKyAgICAgICMgKC0t ZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCi0rICAgICAgbTRfaWYoWyQxXSwgW0dDSl0s IFtdLAotKwlbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctRERMTF9FWFBP UlQnXSkKLSsgICAgICA7OwotKwotKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgICAgICMg UElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KLSsgICAgICAjIENvbW1vbiBzeW1i b2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCi0rICAgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZm5vLWNvbW1vbicKLSsgICAgICA7OwotKwotKyAgICBo cHV4KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgNjQtYml0IFBBIEhQLVVYLCBi dXQgbm90IGZvciAzMi1iaXQKLSsgICAgICAjIFBBIEhQLVVYLiAgT24gSUE2NCBIUC1VWCwgUElD IGlzIHRoZSBkZWZhdWx0IGJ1dCB0aGUgcGljIGZsYWcKLSsgICAgICAjIHNldHMgdGhlIGRlZmF1 bHQgVExTIG1vZGVsIGFuZCBhZmZlY3RzIGlubGluaW5nLgotKyAgICAgIGNhc2UgJGhvc3RfY3B1 IGluCi0rICAgICAgaHBwYSo2NCopCi0rCSMgK1ogdGhlIGRlZmF1bHQKLSsJOzsKLSsgICAgICAq KQotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJwotKwk7Owot KyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBpbnRlcml4W1szLTldXSopCi0rICAgICAg IyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29k ZS4KLSsgICAgICAjIEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVu dGltZS4KLSsgICAgICA7OwotKwotKyAgICBtc2Rvc2RqZ3BwKikKLSsgICAgICAjIEp1c3QgYmVj YXVzZSB3ZSB1c2UgR0NDIGRvZXNuJ3QgbWVhbiB3ZSBzdWRkZW5seSBnZXQgc2hhcmVkIGxpYnJh cmllcwotKyAgICAgICMgb24gc3lzdGVtcyB0aGF0IGRvbid0IHN1cHBvcnQgdGhlbS4KLSsgICAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZCwgJDEpPW5vCi0r ICAgICAgZW5hYmxlX3NoYXJlZD1ubwotKyAgICAgIDs7Ci0rCi0rICAgICpudG8qIHwgKnFueCop Ci0rICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBv cHRpb24gdG9vLCBvdGhlcndpc2UKLSsgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCi0rICAgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQyAtc2hhcmVkJwotKyAg ICAgIDs7Ci0rCi0rICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0 aGVuCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0tS2NvbmZvcm1fcGlj Ci0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAgIF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAg ZWxzZQotKyAgICAjIFBPUlRNRSBDaGVjayBmb3IgZmxhZyB0byBwYXNzIGxpbmtlciBmbGFncyB0 aHJvdWdoIHRoZSBzeXN0ZW0gY29tcGlsZXIuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAg YWl4KikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcK LSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIEFJWCA1IG5vdyBz dXBwb3J0cyBJQTY0IHByb2Nlc3NvcgotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYywgJDEpPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCi0rICAgICAg ZmkKLSsgICAgICA7OwotKwotKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgcHczMiogfCBvczIqIHwg Y2VnY2MqKQotKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNh biB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKLSsgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24g aW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgotKyAgICAg IG00X2lmKFskMV0sIFtHQ0pdLCBbXSwKLSsJW19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9w aWMsICQxKT0nLURETExfRVhQT1JUJ10pCi0rICAgICAgOzsKLSsKLSsgICAgaHB1eDkqIHwgaHB1 eDEwKiB8IGhwdXgxMSopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1XbCwnCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIElBNjQgSFAtVVggYW5k IDY0LWJpdCBIUC1VWCwgYnV0Ci0rICAgICAgIyBub3QgZm9yIFBBIEhQLVVYLgotKyAgICAgIGNh c2UgJGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2NCp8aWE2NCopCi0rCSMgK1ogdGhlIGRlZmF1 bHQKLSsJOzsKLSsgICAgICAqKQotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9JytaJwotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICAjIElzIHRoZXJlIGEgYmV0dGVyIGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljIHRoYXQgd29ya3Mgd2l0aCB0aGUgYnVuZGxlZCBDQz8KLSsg ICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9JyR7d2x9LWEgJHt3 bH1hcmNoaXZlJwotKyAgICAgIDs7Ci0rCi0rICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1 eCopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0r ICAgICAgIyBQSUMgKHdpdGggLUtQSUMpIGlzIHRoZSBkZWZhdWx0LgotKyAgICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCi0rICAgICAgOzsK LSsKLSsgICAgbGludXgqIHwgaypic2QqLWdudSkKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBp bgotKyAgICAgICMgb2xkIEludGVsIGZvciB4ODZfNjQgd2hpY2ggc3RpbGwgc3VwcG9ydGVkIC1L UElDLgotKyAgICAgIGVjYyopCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEp PSctV2wsJwotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwot KwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rICAg ICAgICA7OwotKyAgICAgICMgaWNjIHVzZWQgdG8gYmUgaW5jb21wYXRpYmxlIHdpdGggR0NDLgot KyAgICAgICMgSUNDIDEwIGRvZXNuJ3QgYWNjZXB0IC1LUElDIGFueSBtb3JlLgotKyAgICAgIGlj YyogfCBpZm9ydCopCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2ws JwotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJwotKwlfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rICAgICAgICA7 OwotKyAgICAgICMgTGFoZXkgRm9ydHJhbiA4LjEuCi0rICAgICAgbGY5NSopCi0rCV9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwlfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfcGljLCAkMSk9Jy0tc2hhcmVkJwotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfc3RhdGljLCAkMSk9Jy0tc3RhdGljJwotKwk7OwotKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwg cGdmOTAqIHwgcGdmOTUqKQotKyAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBjb21waWxlcnMgKCpu b3QqIHRoZSBQZW50aXVtIGdjYyBjb21waWxlciwKLSsJIyB3aGljaCBsb29rcyB0byBiZSBhIGRl YWQgcHJvamVjdCkKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwn Ci0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZwaWMnCi0rCV9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rICAgICAgICA7 OwotKyAgICAgIGNjYyopCi0rICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2ws ICQxKT0nLVdsLCcKLSsgICAgICAgICMgQWxsIEFscGhhIGNvZGUgaXMgUElDLgotKyAgICAgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKLSsg ICAgICAgIDs7Ci0rICAgICAgeGwqKQotKwkjIElCTSBYTCBDIDguMC9Gb3J0cmFuIDEwLjEgb24g UFBDCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwlfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1xcGljJwotKwlfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1xc3RhdGljbGluaycKLSsJOzsKLSsgICAgICAq KQotKwljYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KLSsJKlN1blwgQyopCi0rCSAgIyBT dW4gQyA1LjkKLSsJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElD JwotKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMn Ci0rCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rCSAgOzsK LSsJKlN1blwgRiopCi0rCSAgIyBTdW4gRm9ydHJhbiA4LjMgcGFzc2VzIGFsbCB1bnJlY29nbml6 ZWQgZmxhZ3MgdG8gdGhlIGxpbmtlcgotKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9w aWMsICQxKT0nLUtQSUMnCi0rCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywg JDEpPSctQnN0YXRpYycKLSsJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0n JwotKwkgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAg bmV3c29zNikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1L UElDJwotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJz dGF0aWMnCi0rICAgICAgOzsKLSsKLSsgICAgKm50byogfCAqcW54KikKLSsgICAgICAjIFFOWCB1 c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVy d2lzZQotKyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KLSsgICAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDIC1zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsgICAg b3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl93bCwgJDEpPSctV2wsJwotKyAgICAgICMgQWxsIE9TRi8xIGNvZGUgaXMgUElDLgotKyAgICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCi0r ICAgICAgOzsKLSsKLSsgICAgcmRvcyopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICBzb2xhcmlz KikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwot KyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMn Ci0rICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICBmNzcqIHwgZjkwKiB8IGY5NSop Ci0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnOzsK LSsgICAgICAqKQotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCc7 OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBzdW5vczQqKQotKyAgICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnCi0rICAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctUElDJwotKyAgICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsK LSsgICAgc3lzdjQgfCBzeXN2NC4ydXcyKiB8IHN5c3Y0LjMqKQotKyAgICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpN UCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgotKwlfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LY29uZm9ybV9waWMnCi0rCV9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rICAgICAgZmkKLSsgICAgICA7Owot KwotKyAgICBzeXN2NSogfCB1bml4d2FyZSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgT3BlblVO SVgqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwot KyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0rICAg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsg ICAgICA7OwotKwotKyAgICB1bmljb3MqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl93bCwgJDEpPSctV2wsJwotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9j YW5fYnVpbGRfc2hhcmVkLCAkMSk9bm8KLSsgICAgICA7OwotKwotKyAgICB1dHM0KikKLSsgICAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMnCi0rICAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsgICAgICA7 OwotKwotKyAgICAqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9jYW5fYnVp bGRfc2hhcmVkLCAkMSk9bm8KLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBmaQotK10pCi0rY2Fz ZSAkaG9zdF9vcyBpbgotKyAgIyBGb3IgcGxhdGZvcm1zIHdoaWNoIGRvIG5vdCBzdXBwb3J0IFBJ QywgLURQSUMgaXMgbWVhbmluZ2xlc3M6Ci0rICAqZGpncHAqKQotKyAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Ci0rICAgIDs7Ci0rICAqKQotKyAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9IiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSlAJnRAbTRfaWYoWyQxXSxbXSxbIC1EUElDXSxbbTRfaWYoWyQxXSxbQ1hYXSxbIC1E UElDXSxbXSldKSIKLSsgICAgOzsKLStlc2FjCi0rQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKV0pCi0rX0xUX1RBR0RFQ0woW3dsXSwgW2x0X3Byb2df Y29tcGlsZXJfd2xdLCBbMV0sCi0rCVtIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2gg dGhlIGNvbXBpbGVyXSkKLSsKLSsjCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIFBJQyBmbGFn IGFjdHVhbGx5IHdvcmtzLgotKyMKLStpZiB0ZXN0IC1uICIkX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpIjsgdGhlbgotKyAgX0xUX0NPTVBJTEVSX09QVElPTihbaWYgJGNvbXBp bGVyIFBJQyBmbGFnICRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkgd29ya3Nd LAotKyAgICBbX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcywgJDEpXSwK LSsgICAgWyRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSlAJnRAbTRfaWYoWyQx XSxbXSxbIC1EUElDXSxbbTRfaWYoWyQxXSxbQ1hYXSxbIC1EUElDXSxbXSldKV0sIFtdLAotKyAg ICBbY2FzZSAkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIGluCi0rICAgICAi IiB8ICIgIiopIDs7Ci0rICAgICAqKSBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9IiAkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIiA7OwotKyAgICAgZXNh Y10sCi0rICAgIFtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Ci0rICAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZCwgJDEpPW5vXSkKLStm aQotK19MVF9UQUdERUNMKFtwaWNfZmxhZ10sIFtsdF9wcm9nX2NvbXBpbGVyX3BpY10sIFsxXSwK LSsJW0FkZGl0aW9uYWwgY29tcGlsZXIgZmxhZ3MgZm9yIGJ1aWxkaW5nIGxpYnJhcnkgb2JqZWN0 c10pCi0rCi0rIwotKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBzdGF0aWMgZmxhZyBhY3R1YWxs eSB3b3Jrcy4KLSsjCi0rd2w9JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpIGV2 YWwgbHRfdG1wX3N0YXRpY19mbGFnPVwiJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0 aWMsICQxKVwiCi0rX0xUX0xJTktFUl9PUFRJT04oW2lmICRjb21waWxlciBzdGF0aWMgZmxhZyAk bHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzXSwKLSsgIF9MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21w aWxlcl9zdGF0aWNfd29ya3MsICQxKSwKLSsgICRsdF90bXBfc3RhdGljX2ZsYWcsCi0rICBbXSwK LSsgIFtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9XSkKLStfTFRfVEFH REVDTChbbGlua19zdGF0aWNfZmxhZ10sIFtsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY10sIFsxXSwK LSsJW0NvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmddKQotK10pIyBfTFRf Q09NUElMRVJfUElDCi0rCi0rCi0rIyBfTFRfTElOS0VSX1NITElCUyhbVEFHTkFNRV0pCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTZWUgaWYgdGhlIGxpbmtlciBzdXBwb3J0 cyBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVzLgotK200X2RlZnVuKFtfTFRfTElOS0VSX1NITElC U10sCi0rW0FDX1JFUVVJUkUoW0xUX1BBVEhfTERdKWRubAotK0FDX1JFUVVJUkUoW0xUX1BBVEhf Tk1dKWRubAotK200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAotK200X3Jl cXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRu bAotK200X3JlcXVpcmUoW19MVF9DTURfR0xPQkFMX1NZTUJPTFNdKWRubAotK200X3JlcXVpcmUo W19MVF9UQUdfQ09NUElMRVJdKWRubAotK0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0aGUgJGNv bXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKLSttNF9pZihb JDFdLCBbQ1hYXSwgWwotKyAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyRO TSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcn cy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIGNhc2UgJGhv c3Rfb3MgaW4KLSsgIGFpeFtbNC05XV0qKQotKyAgICAjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwg dGhlbiB3ZSBkb24ndCB3YW50IHRoZSAiLUMiIG9wdGlvbi4KLSsgICAgIyAtQyBtZWFucyBkZW1h bmdsZSB0byBBSVggbm0sIGJ1dCBtZWFucyBkb24ndCBkZW1hbmdsZSB3aXRoIEdOVSBubQotKyAg ICBpZiAkTk0gLVYgMj4mMSB8ICRHUkVQICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAg X0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQnBnICRsaWJvYmpzICRj b252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQi KSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJp bnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKLSsgICAgZWxzZQot KyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gLUJDcGcgJGxp Ym9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQg MiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChbc3Vic3RyXShcJCAzLDEsMSkgIT0gIi4i KSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKyAg ICBmaQotKyAgICA7OwotKyAgcHczMiopCi0rICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNf Y21kcywgJDEpPSIkbHRkbGxfY21kcyIKLSsgIDs7Ci0rICBjeWd3aW4qIHwgbWluZ3cqIHwgY2Vn Y2MqKQotKyAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJv YmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltb QkNER1JTXV1bWyBdXS9zLy4qW1sgXV1cKFtbXiBdXSpcKS9cMSBEQVRBLzsvXi4qW1sgXV1fX25t X18vcy9eLipbWyBdXV9fbm1fX1woW1teIF1dKlwpW1sgXV1bW14gXV0qL1wxIERBVEEvOy9eSVtb IF1dL2Q7L15bW0FJVFddXVtbIF1dL3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0 X3N5bWJvbHMnCi0rICA7OwotKyAgKikKLSsgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19j bWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBl IHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycK LSsgIDs7Ci0rICBlc2FjCi0rICBfTFRfVEFHVkFSKGV4Y2x1ZGVfZXhwc3ltcywgJDEpPVsnX0dM T0JBTF9PRkZTRVRfVEFCTEVffF9HTE9CQUxfX0ZbSURdXy4qJ10KLStdLCBbCi0rICBydW5wYXRo X3Zhcj0KLSsgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KLSsgIF9MVF9U QUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9Ci0rICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0KLSsg IF9MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIo ZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5vCi0rICBfTFRfVEFHVkFS KGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQotKyAgX0xUX1RBR1ZBUihleHBvcnRfc3lt Ym9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJv bF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3lt Ym9scycKLSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSk9bm8KLSsgIF9MVF9U QUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGly ZWN0X2Fic29sdXRlLCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPQotKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAk MSk9Ci0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KLSsgIF9M VF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGhhcmRjb2Rl X3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRlZAotKyAgX0xUX1RBR1ZBUihpbmhlcml0X3Jw YXRoLCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXVua25vd24K LSsgIF9MVF9UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0KLSsgIF9MVF9UQUdWQVIobW9kdWxlX2V4 cHN5bV9jbWRzLCAkMSk9Ci0rICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMs ICQxKT0KLSsgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMsICQxKT0K LSsgIF9MVF9UQUdWQVIodGhyZWFkX3NhZmVfZmxhZ19zcGVjLCAkMSk9Ci0rICBfTFRfVEFHVkFS KHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Ci0rICAjIGluY2x1ZGVfZXhwc3ltcyBzaG91 bGQgYmUgYSBsaXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBzeW1ib2xzIHRvIGJlICphbHdheXMqCi0r ICAjIGluY2x1ZGVkIGluIHRoZSBzeW1ib2wgbGlzdAotKyAgX0xUX1RBR1ZBUihpbmNsdWRlX2V4 cHN5bXMsICQxKT0KLSsgICMgZXhjbHVkZV9leHBzeW1zIGNhbiBiZSBhbiBleHRlbmRlZCByZWdl eHAgb2Ygc3ltYm9scyB0byBleGNsdWRlCi0rICAjIGl0IHdpbGwgYmUgd3JhcHBlZCBieSBgICgn IGFuZCBgKSQnLCBzbyBvbmUgbXVzdCBub3QgbWF0Y2ggYmVnaW5uaW5nIG9yCi0rICAjIGVuZCBv ZiBsaW5lLiAgRXhhbXBsZTogYGF8YmN8LipkLionIHdpbGwgZXhjbHVkZSB0aGUgc3ltYm9scyBg YScgYW5kIGBiYycsCi0rICAjIGFzIHdlbGwgYXMgYW55IHN5bWJvbCB0aGF0IGNvbnRhaW5zIGBk Jy4KLSsgIF9MVF9UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09GRlNFVF9U QUJMRV98X0dMT0JBTF9fRltJRF1fLionXQotKyAgIyBBbHRob3VnaCBfR0xPQkFMX09GRlNFVF9U QUJMRV8gaXMgYSB2YWxpZCBzeW1ib2wgQyBuYW1lLCBtb3N0IGEub3V0Ci0rICAjIHBsYXRmb3Jt cyAoYWIpdXNlIGl0IGluIFBJQyBjb2RlLCBidXQgdGhlaXIgbGlua2VycyBnZXQgY29uZnVzZWQg aWYKLSsgICMgdGhlIHN5bWJvbCBpcyBleHBsaWNpdGx5IHJlZmVyZW5jZWQuICBTaW5jZSBwb3J0 YWJsZSBjb2RlIGNhbm5vdAotKyAgIyByZWx5IG9uIHRoaXMgc3ltYm9sIG5hbWUsIGl0J3MgcHJv YmFibHkgZmluZSB0byBuZXZlciBpbmNsdWRlIGl0IGluCi0rICAjIHByZWxvYWRlZCBzeW1ib2wg dGFibGVzLgotKyAgIyBFeGNsdWRlIHNoYXJlZCBsaWJyYXJ5IGluaXRpYWxpemF0aW9uL2ZpbmFs aXphdGlvbiBzeW1ib2xzLgotK2RubCBOb3RlIGFsc28gYWRqdXN0IGV4Y2x1ZGVfZXhwc3ltcyBm b3IgQysrIGFib3ZlLgotKyAgZXh0cmFjdF9leHBzeW1zX2NtZHM9Ci0rCi0rICBjYXNlICRob3N0 X29zIGluCi0rICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAgICMgRklY TUU6IHRoZSBNU1ZDKysgcG9ydCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgaW4gYSBsb29vb25nIHRpbWUK LSsgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBh cmUgdXNpbmcKLSsgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KLSsgICAgaWYgdGVzdCAiJEdD QyIgIT0geWVzOyB0aGVuCi0rICAgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgZmkKLSsgICAgOzsK LSsgIGludGVyaXgqKQotKyAgICAjIHdlIGp1c3QgaG9wZS9hc3N1bWUgdGhpcyBpcyBnY2MgYW5k IG5vdCBjODkgKD0gTVNWQysrKQotKyAgICB3aXRoX2dudV9sZD15ZXMKLSsgICAgOzsKLSsgIG9w ZW5ic2QqKQotKyAgICB3aXRoX2dudV9sZD1ubwotKyAgICA7OwotKyAgZXNhYwotKwotKyAgX0xU X1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5 ZXM7IHRoZW4KLSsgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBz aG91bGQgYmUgZW1wdHkKLSsgICAgd2xhcmM9JyR7d2x9JwotKwotKyAgICAjIFNldCBzb21lIGRl ZmF1bHRzIGZvciBHTlUgbGQgd2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQotKyAg ICAjIGFyZSByZXNldCBsYXRlciBpZiBzaGFyZWQgbGlicmFyaWVzIGFyZSBub3Qgc3VwcG9ydGVk LiBQdXR0aW5nIHRoZW0KLSsgICAgIyBoZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRkZW4g aWYgbmVjZXNzYXJ5LgotKyAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKyAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGli ZGlyJwotKyAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3ds fS0tZXhwb3J0LWR5bmFtaWMnCi0rICAgICMgYW5jaWVudCBHTlUgbGQgZGlkbid0IHN1cHBvcnQg LS13aG9sZS1hcmNoaXZlIGV0LiBhbC4KLSsgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAg J25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAgX0xUX1RBR1ZBUih3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252 ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJwotKyAgICBlbHNlCi0rICAgICAg X0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQotKyAgICBmaQotKyAgICBz dXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9bm8KLSsgICAgY2FzZSBgJExEIC12IDI+JjFgIGluCi0r ICAgICAgKlwgW1swMV1dLiogfCAqXCAyLltbMC05XV0uKiB8ICpcIDIuMTAuKikgOzsgIyBjYXRj aCB2ZXJzaW9ucyA8IDIuMTEKLSsgICAgICAqXCAyLjExLjkzLjAuMlwgKikgc3VwcG9ydHNfYW5v bl92ZXJzaW9uaW5nPXllcyA7OyAjIFJINy4zIC4uLgotKyAgICAgICpcIDIuMTEuOTIuMC4xMlwg Kikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIE1hbmRyYWtlIDguMiAuLi4KLSsg ICAgICAqXCAyLjExLiopIDs7ICMgb3RoZXIgMi4xMSB2ZXJzaW9ucwotKyAgICAgICopIHN1cHBv cnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsKLSsgICAgZXNhYwotKwotKyAgICAjIFNlZSBpZiBH TlUgbGQgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgot KyAgICBhaXhbWzMtOV1dKikKLSsgICAgICAjIE9uIEFJWC9QUEMsIHRoZSBHTlUgbGlua2VyIGlz IHZlcnkgYnJva2VuCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0aGVuCi0r CV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJY2F0IDw8X0xUX0VPRiAxPiYyCi0rCi0r KioqIFdhcm5pbmc6IHRoZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuOS4x LCBpcyByZXBvcnRlZAotKyoqKiB0byBiZSB1bmFibGUgdG8gcmVsaWFibHkgY3JlYXRlIHNoYXJl ZCBsaWJyYXJpZXMgb24gQUlYLgotKyoqKiBUaGVyZWZvcmUsIGxpYnRvb2wgaXMgZGlzYWJsaW5n IHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIElmIHlvdQotKyoqKiByZWFsbHkgY2FyZSBmb3Ig c2hhcmVkIGxpYnJhcmllcywgeW91IG1heSB3YW50IHRvIG1vZGlmeSB5b3VyIFBBVEgKLSsqKiog c28gdGhhdCBhIG5vbi1HTlUgbGlua2VyIGlzIGZvdW5kLCBhbmQgdGhlbiByZXN0YXJ0LgotKwot K19MVF9FT0YKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFtaWdhb3MqKQotKyAgICAg IGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgcG93ZXJwYykKLSsgICAgICAgICAgICAjIHNlZSBj b21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0Ci0rICAgICAgICAgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rICAgICAgICAgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JycKLSsgICAgICAgIDs7Ci0rICAg ICAgbTY4aykKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0g JG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBOQU1FICRsaWJu YW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTElC UkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVm aW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRF Q0hPICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxp YnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAk b3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJwotKyAgICAgICAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCi0rICAgICAgICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0rICAgICAgICA7OwotKyAg ICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBiZW9zKikKLSsgICAgICBpZiAkTEQgLS1oZWxw IDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0 aGVuCi0rCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAot KwkjIEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMg b2YgZ2NjCi0rCSMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZl c3RpZ2F0aW9uLiAgRklYTUUKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1u b3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHds JHNvbmFtZSAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3 MzIqIHwgY2VnY2MqKQotKyAgICAgICMgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjLCAkMSkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCi0rICAgICAgIyBhcyB0aGVyZSBpcyBu byBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5k ZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAotKyAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4 cG9ydF9zeW1ib2xzLCAkMSk9bm8KLSsgICAgICBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0 aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1i b2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9s X3BpcGUgfCAkU0VEIC1lICdcJycvXltbQkNER1JTXV1bWyBdXS9zLy4qW1sgXV1cKFtbXiBdXSpc KS9cMSBEQVRBLydcJycgfCAkU0VEIC1lICdcJycvXltbQUlUV11dW1sgXV0vcy8uKltbIF1dLy8n XCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0rCi0rICAgICAgaWYgJExEIC0t aGVscCAyPiYxIHwgJEdSRVAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAg ICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVu YWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWIn Ci0rCSMgSWYgdGhlIGV4cG9ydC1zeW1ib2xzIGZpbGUgYWxyZWFkeSBpcyBhIC5kZWYgZmlsZSAo MXN0IGxpbmUKLSsJIyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFzIGlzOyBvdGhlcndpc2UsIHByZXBl bmQuLi4KLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2lmIHRlc3QgInhg JFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCi0rCSAgY3AgJGV4cG9y dF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKwllbHNlCi0rCSAgZWNobyBF WFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rCSAgY2F0ICRleHBvcnRfc3lt Ym9scyA+PiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJZml+Ci0rCSRDQyAtc2hhcmVk ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1i YXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwotKyAgICAgIGVsc2UKLSsJ X0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsg ICAgaW50ZXJpeFtbMy05XV0qKQotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAk MSk9bm8KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwot KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1y cGF0aCwkbGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj LCAkMSk9JyR7d2x9LUUnCi0rICAgICAgIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90 IGNvbXBpbGUgUElDIGJlY2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgotKyAgICAgICMgSW5zdGVhZCwg c2hhcmVkIGxpYnJhcmllcyBhcmUgbG9hZGVkIGF0IGFuIGltYWdlIGJhc2UgKDB4MTAwMDAwMDAg YnkKLSsgICAgICAjIGRlZmF1bHQpIGFuZCByZWxvY2F0ZWQgaWYgdGhleSBjb25mbGljdCwgd2hp Y2ggaXMgYSBzbG93IHZlcnkgbWVtb3J5Ci0rICAgICAgIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50 aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAotKyAgICAgICMg MjU2IEtpQi1hbGlnbmVkIGltYWdlIGJhc2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMw MDAwIGF0IGxpbmsKLSsgICAgICAjIHRpbWUuICBNb3ZpbmcgdXAgZnJvbSAweDEwMDAwMDAwIGFs c28gYWxsb3dzIG1vcmUgc2JyaygyKSBzcGFjZS4KLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRP TS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJwotKyAgICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdzZWQgInMsXixfLCIgJGV4cG9y dF9zeW1ib2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bX4kQ0MgLXNoYXJlZCAkcGlj X2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAk e3dsfS0tcmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bSAk e3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQg KyAxMzQyMTc3MjgwYCAtbyAkbGliJwotKyAgICAgIDs7Ci0rCi0rICAgIGdudSogfCBsaW51eCog fCB0cGYqIHwgaypic2QqLWdudSkKLSsgICAgICB0bXBfZGlldD1ubwotKyAgICAgIGlmIHRlc3Qg IiRob3N0X29zIiA9IGxpbnV4LWRpZXRsaWJjOyB0aGVuCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGlu Ci0rCSAgZGlldFwgKikgdG1wX2RpZXQ9eWVzOzsJIyBsaW51eC1kaWV0bGliYyB3aXRoIHN0YXRp YyBsaW5raW5nICghZGlldC1keW4pCi0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGlmICRMRCAt LWhlbHAgMj4mMSB8ICRFR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9u dWxsIFwKLSsJICYmIHRlc3QgIiR0bXBfZGlldCIgPSBubwotKyAgICAgIHRoZW4KLSsJdG1wX2Fk ZGZsYWc9Ci0rCXRtcF9zaGFyZWRmbGFnPSctc2hhcmVkJwotKwljYXNlICRjY19iYXNlbmFtZSwk aG9zdF9jcHUgaW4KLSsgICAgICAgIHBnY2MqKQkJCQkjIFBvcnRsYW5kIEdyb3VwIEMgY29tcGls ZXIKLSsJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13 aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwi JGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRv bmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScK LSsJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZycKLSsJICA7OwotKwlwZ2Y3NyogfCBwZ2Y5MCog fCBwZ2Y5NSopCSMgUG9ydGxhbmQgR3JvdXAgZjc3IGFuZCBmOTAgY29tcGlsZXJzCi0rCSAgX0xU X1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2 ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYg bmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBc IiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgdG1wX2Fk ZGZsYWc9JyAkcGljX2ZsYWcgLU1ub21haW4nIDs7Ci0rCWVjYyosaWE2NCogfCBpY2MqLGlhNjQq KQkjIEludGVsIEMgY29tcGlsZXIgb24gaWE2NAotKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1p YycgOzsKLSsJZWZjKixpYTY0KiB8IGlmb3J0KixpYTY0KikJIyBJbnRlbCBGb3J0cmFuIGNvbXBp bGVyIG9uIGlhNjQKLSsJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMgLW5vZm9yX21haW4nIDs7 Ci0rCWlmYyogfCBpZm9ydCopCQkJIyBJbnRlbCBGb3J0cmFuIGNvbXBpbGVyCi0rCSAgdG1wX2Fk ZGZsYWc9JyAtbm9mb3JfbWFpbicgOzsKLSsJbGY5NSopCQkJCSMgTGFoZXkgRm9ydHJhbiA4LjEK LSsJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Ci0rCSAgdG1wX3No YXJlZGZsYWc9Jy0tc2hhcmVkJyA7OwotKwl4bFtbY0NdXSopCQkJIyBJQk0gWEwgQyA4LjAgb24g UFBDIChkZWFsIHdpdGggeGxmIGJlbG93KQotKwkgIHRtcF9zaGFyZWRmbGFnPSctcW1rc2hyb2Jq JwotKwkgIHRtcF9hZGRmbGFnPSA7OwotKwllc2FjCi0rCWNhc2UgYCRDQyAtViAyPiYxIHwgc2Vk IDVxYCBpbgotKwkqU3VuXCBDKikJCQkjIFN1biBDIDUuOQotKwkgIF9MVF9UQUdWQVIod2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmll bmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIg fHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNI TyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgX0xU X1RBR1ZBUihjb21waWxlcl9uZWVkc19vYmplY3QsICQxKT15ZXMKLSsJICB0bXBfc2hhcmVkZmxh Zz0nLUcnIDs7Ci0rCSpTdW5cIEYqKQkJCSMgU3VuIEZvcnRyYW4gOC4zCi0rCSAgdG1wX3NoYXJl ZGZsYWc9Jy1HJyA7OwotKwllc2FjCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAnIiR0bXBfc2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCi0rICAgICAg ICBpZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCi0rICAg ICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2Jh bDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgY2F0ICRleHBvcnRfc3lt Ym9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu dmVyfgotKwkgICAgZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFt ZS52ZXJ+Ci0rCSAgICAkQ0MgJyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3ds fS12ZXJzaW9uLXNjcmlwdCAke3dsfSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGli JwotKyAgICAgICAgZmkKLSsKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJeGxmKikKLSsJICAj IElCTSBYTCBGb3J0cmFuIDEwLjEgb24gUFBDIGNhbm5vdCBjcmVhdGUgc2hhcmVkIGxpYnMgaXRz ZWxmCi0rCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSctLXdob2xl LWFyY2hpdmUkY29udmVuaWVuY2UgLS1uby13aG9sZS1hcmNoaXZlJwotKwkgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPSctcnBhdGggJGxpYmRpcicKLSsJICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIC1vICRsaWInCi0rCSAgaWYgdGVzdCAieCRzdXBwb3J0 c19hbm9uX3ZlcnNpb25pbmciID0geHllczsgdGhlbgotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGli bmFtZS52ZXJ+Ci0rCSAgICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwp L1wxOy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJICAgICAgZWNobyAibG9j YWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCSAgICAgICRMRCAt c2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUg LXZlcnNpb24tc2NyaXB0ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJwotKwkg IGZpCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGVsc2UKLSsgICAgICAgIF9MVF9UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIG5ldGJzZCopCi0r ICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251 bGw7IHRoZW4KLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxl ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLW8gJGxpYicKLSsJd2xhcmM9Ci0rICAg ICAgZWxzZQotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8g JGxpYicKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFt ZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwot KyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAgaWYgJExEIC12 IDI+JjEgfCAkR1JFUCAnQkZEIDJcLjgnID4gL2Rldi9udWxsOyB0aGVuCi0rCV9MVF9UQUdWQVIo bGRfc2hsaWJzLCAkMSk9bm8KLSsJY2F0IDw8X0xUX0VPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6 IFRoZSByZWxlYXNlcyAyLjguKiBvZiB0aGUgR05VIGxpbmtlciBjYW5ub3QgcmVsaWFibHkKLSsq KiogY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU29sYXJpcyBzeXN0ZW1zLiAgVGhlcmVmb3Jl LCBsaWJ0b29sCi0rKioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBX ZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdOVQotKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIuOS4x IG9yIG5ld2VyLiAgQW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5Ci0rKioqIHlvdXIgUEFUSCBv ciBjb21waWxlciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKLSsq KiogdXNlZCwgYW5kIHRoZW4gcmVzdGFydC4KLSsKLStfTFRfRU9GCi0rICAgICAgZWxpZiAkTEQg LS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9u dWxsOyB0aGVuCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAt byAkbGliJwotKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29u YW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWIn Ci0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgICAgZmkK LSsgICAgICA7OwotKwotKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdh cmUqIHwgT3BlblVOSVgqKQotKyAgICAgIGNhc2UgYCRMRCAtdiAyPiYxYCBpbgotKyAgICAgICAg KlwgW1swMV1dLiogfCAqXCAyLltbMC05XV0uKiB8ICpcIDIuMVtbMC01XV0uKikKLSsJX0xUX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwljYXQgPDxfTFRfRU9GIDE+JjIKLSsKLSsqKiogV2Fy bmluZzogUmVsZWFzZXMgb2YgdGhlIEdOVSBsaW5rZXIgcHJpb3IgdG8gMi4xNi45MS4wLjMgY2Fu IG5vdAotKyoqKiByZWxpYWJseSBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBTQ08gc3lzdGVt cy4gIFRoZXJlZm9yZSwgbGlidG9vbAotKyoqKiBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmll cyBzdXBwb3J0LiAgV2UgdXJnZSB5b3UgdG8gdXBncmFkZSBHTlUKLSsqKiogYmludXRpbHMgdG8g cmVsZWFzZSAyLjE2LjkxLjAuMyBvciBuZXdlci4gIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlm eQotKyoqKiB5b3VyIFBBVEggb3IgY29tcGlsZXIgY29uZmlndXJhdGlvbiBzbyB0aGF0IHRoZSBu YXRpdmUgbGlua2VyIGlzCi0rKioqIHVzZWQsIGFuZCB0aGVuIHJlc3RhcnQuCi0rCi0rX0xUX0VP RgotKwk7OwotKwkqKQotKwkgICMgRm9yIHNlY3VyaXR5IHJlYXNvbnMsIGl0IGlzIGhpZ2hseSBy ZWNvbW1lbmRlZCB0aGF0IHlvdSBhbHdheXMKLSsJICAjIHVzZSBhYnNvbHV0ZSBwYXRocyBmb3Ig bmFtaW5nIHNoYXJlZCBsaWJyYXJpZXMsIGFuZCBleGNsdWRlIHRoZQotKwkgICMgRFRfUlVOUEFU SCB0YWcgZnJvbSBleGVjdXRhYmxlcyBhbmQgbGlicmFyaWVzLiAgQnV0IGRvaW5nIHNvCi0rCSAg IyByZXF1aXJlcyB0aGF0IHlvdSBjb21waWxlIGV2ZXJ5dGhpbmcgdHdpY2UsIHdoaWNoIGlzIGEg cGFpbi4KLSsJICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0 czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICBf TFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJl dGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rCSAgZWxzZQot KwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgIGZpCi0rCTs7Ci0rICAgICAg ZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIHN1bm9zNCopCi0rICAgICAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1Cc2hhcmVhYmxlIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICB3bGFyYz0KLSsgICAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAg ICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYn ID4gL2Rldi9udWxsOyB0aGVuCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHds JHNvbmFtZSAtbyAkbGliJwotKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0n JENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xz IC1vICRsaWInCi0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0r ICAgICAgZmkKLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGlmIHRlc3QgIiRfTFRfVEFH VkFSKGxkX3NobGlicywgJDEpIiA9IG5vOyB0aGVuCi0rICAgICAgcnVucGF0aF92YXI9Ci0rICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Ci0rICAgICAgX0xU X1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0KLSsgICAgICBfTFRfVEFHVkFS KHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Ci0rICAgIGZpCi0rICBlbHNlCi0rICAgICMg UE9SVE1FIGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIGxpbmtlciAobm90 IEdOVSBsZCkKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBhaXgzKikKLSsgICAgICBfTFRf VEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKLSsgICAgICBfTFRf VEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckTEQgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1iRTokZXhwb3J0X3N5bWJvbHMgLVQ1MTIg LUg1MTIgLWJNOlNSRX4kQVIgJEFSX0ZMQUdTICRsaWIgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScK LSsgICAgICAjIE5vdGU6IHRoaXMgbGlua2VyIGhhcmRjb2RlcyB0aGUgZGlyZWN0b3JpZXMgaW4g TElCUEFUSCBpZiB0aGVyZQotKyAgICAgICMgYXJlIG5vIGRpcmVjdG9yaWVzIHNwZWNpZmllZCBi eSAtTC4KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgICAg ICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAmJiB0ZXN0IC16ICIkbHRfcHJvZ19jb21waWxlcl9zdGF0 aWMiOyB0aGVuCi0rCSMgTmVpdGhlciBkaXJlY3QgaGFyZGNvZGluZyBub3Igc3RhdGljIGxpbmtp bmcgaXMgc3VwcG9ydGVkIHdpdGggYQotKwkjIGJyb2tlbiBjb2xsZWN0Mi4KLSsJX0xUX1RBR1ZB UihoYXJkY29kZV9kaXJlY3QsICQxKT11bnN1cHBvcnRlZAotKyAgICAgIGZpCi0rICAgICAgOzsK LSsKLSsgICAgYWl4W1s0LTldXSopCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7 IHRoZW4KLSsJIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2luZyBieSBk ZWZhdWx0LCBzbyB3ZSBkb24ndAotKwkjIGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbC4KLSsJ YWl4X3VzZV9ydW50aW1lbGlua2luZz1ubwotKwlleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0JwotKwlu b19lbnRyeV9mbGFnPSIiCi0rICAgICAgZWxzZQotKwkjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwg dGhlbiB3ZSBkb24ndCB3YW50IHRoZSAiLUMiIG9wdGlvbi4KLSsJIyAtQyBtZWFucyBkZW1hbmds ZSB0byBBSVggbm0sIGJ1dCBtZWFucyBkb24ndCBkZW1hbmdsZSB3aXRoIEdOVSBubQotKwlpZiAk Tk0gLVYgMj4mMSB8ICRHUkVQICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgX0xUX1RBR1ZB UihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5j ZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQg MiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9 IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKLSsJZWxzZQotKwkgIF9MVF9UQUdW QVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gLUJDcGcgJGxpYm9ianMgJGNvbnZlbmll bmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChc JCAyID09ICJCIikpICYmIChbc3Vic3RyXShcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAz IH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKwlmaQotKwlhaXhfdXNlX3J1 bnRpbWVsaW5raW5nPW5vCi0rCi0rCSMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4g dGltZSBsaW5raW5nIG9yIG5vcm1hbAotKwkjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBp cyBzb21ld2hlcmUgaW4gTERGTEFHUywgd2UKLSsJIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2lu Zy4KLSsJY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMjNdXXxhaXg0LltbMjNdXS4qfGFpeFtbNS05 XV0qKQotKwkgIGZvciBsZF9mbGFnIGluICRMREZMQUdTOyBkbwotKwkgIGlmICh0ZXN0ICRsZF9m bGFnID0gIi1icnRsIiB8fCB0ZXN0ICRsZF9mbGFnID0gIi1XbCwtYnJ0bCIpOyB0aGVuCi0rCSAg ICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXllcwotKwkgICAgYnJlYWsKLSsJICBmaQotKwkgIGRv bmUKLSsJICA7OwotKwllc2FjCi0rCi0rCWV4cF9zeW1fZmxhZz0nLWJleHBvcnQnCi0rCW5vX2Vu dHJ5X2ZsYWc9Jy1ibm9lbnRyeScKLSsgICAgICBmaQotKwotKyAgICAgICMgV2hlbiBsYXJnZSBl eGVjdXRhYmxlcyBvciBzaGFyZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4KLSsgICAg ICAjIGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgSWYgbGlu a2luZyBhIGxpYnJhcnkKLSsgICAgICAjIG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJyb3IgVE9D IG92ZXJmbG93IiBhZGQgLW1taW5pbWFsLXRvYyB0bwotKyAgICAgICMgQ1hYRkxBR1MvQ0ZMQUdT IGZvciBnKysvZ2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90Ci0rICAgICAgIyBl bm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1iYmlndG9jIHRvIExERkxBR1MuCi0r Ci0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJwotKyAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9k aXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IsICQxKT0nOicKLSsgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMs ICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGZpbGVfbGlzdF9zcGVjLCAkMSk9JyR7d2x9LWYs JwotKwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWNhc2UgJGhvc3Rfb3Mg aW4gYWl4NC5bWzAxMl1dfGFpeDQuW1swMTJdXS4qKQotKwkjIFdlIG9ubHkgd2FudCB0byBkbyB0 aGlzIG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUgY2hlY2sKLSsJIyBiZWxvdyBmb3IgYnJva2Vu IGNvbGxlY3QyIGRvZXNuJ3Qgd29yayB1bmRlciA0LjMrCi0rCSAgY29sbGVjdDJuYW1lPWAke0ND fSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxlY3QyYAotKwkgIGlmIHRlc3QgLWYgIiRjb2xsZWN0Mm5h bWUiICYmCi0rCSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgJEdSRVAgcmVzb2x2ZV9saWJf bmFtZSA+L2Rldi9udWxsCi0rCSAgdGhlbgotKwkgICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xsZWN0 MgotKwkgIDoKLSsJICBlbHNlCi0rCSAgIyBXZSBoYXZlIG9sZCBjb2xsZWN0MgotKwkgIF9MVF9U QUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9dW5zdXBwb3J0ZWQKLSsJICAjIEl0IGZhaWxzIHRv IGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFsbGVkCi0rCSAgIyBw YXRoIGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGxpYnBhdGguICBTZXR0aW5nIGhhcmRjb2RlX21pbnVz X0wKLSsJICAjIHRvIHVuc3VwcG9ydGVkIGZvcmNlcyByZWxpbmtpbmcKLSsJICBfTFRfVEFHVkFS KGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciwgJDEpPQotKwkgIGZpCi0rCSAgOzsKLSsJZXNhYwotKwlzaGFyZWRfZmxh Zz0nLXNoYXJlZCcKLSsJaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0 aGVuCi0rCSAgc2hhcmVkX2ZsYWc9IiRzaGFyZWRfZmxhZyAiJyR7d2x9LUcnCi0rCWZpCi0rICAg ICAgZWxzZQotKwkjIG5vdCB1c2luZyBnY2MKLSsJaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7 IHRoZW4KLSsJIyBWaXN1YWxBZ2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02 NCwgQmV0YSAzIFJlbGVhc2UKLSsJIyBjaG9rZXMgb24gLVdsLC1HLiBUaGUgZm9sbG93aW5nIGxp bmUgaXMgY29ycmVjdDoKLSsJICBzaGFyZWRfZmxhZz0nLUcnCi0rCWVsc2UKLSsJICBpZiB0ZXN0 ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJICAgIHNoYXJlZF9mbGFn PScke3dsfS1HJwotKwkgIGVsc2UKLSsJICAgIHNoYXJlZF9mbGFnPScke3dsfS1iTTpTUkUnCi0r CSAgZmkKLSsJZmkKLSsgICAgICBmaQotKwotKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJleHBhbGwnCi0rICAgICAgIyBJdCBzZWVtcyB0aGF0 IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCi0rICAgICAg IyB1bmRlcnNjb3JlIChfKSwgc28gaXQgaXMgYmV0dGVyIHRvIGdlbmVyYXRlIGEgbGlzdCBvZiBz eW1ib2xzIHRvIGV4cG9ydC4KLSsgICAgICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9s cywgJDEpPXllcwotKyAgICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHll czsgdGhlbgotKwkjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW50aW1lIGxv YWRpbmcgZmxhZ3MgKC1icnRsKSwKLSsJIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3Is IGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgotKwlfTFRfVEFHVkFSKGFsbG93X3Vu ZGVmaW5lZF9mbGFnLCAkMSk9Jy1iZXJvaycKLSsgICAgICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZh dWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgotKyAgICAgICAgIyBlbXB0 eSBleGVjdXRhYmxlLgotKyAgICAgICAgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgKLSsgICAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ibGlicGF0 aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4 cHN5bV9jbWRzLCAkMSk9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRk ZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3Qg Ingke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuICRFQ0hPICJYJHt3bH0ke2Fs bG93X3VuZGVmaW5lZF9mbGFnfSIgfCAkWHNlZDsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5 bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgotKyAgICAgIGVsc2UKLSsJaWYg dGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9saWInCi0rCSAg X0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSIteiBub2RlZnMiCi0rCSAgX0xU X1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8g JG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRy eV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30gJyJc JHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMiCi0rCWVsc2UKLSsJICMgRGV0ZXJt aW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgotKwkg IyBlbXB0eSBleGVjdXRhYmxlLgotKwkgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgKLSsJIF9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ibGlicGF0aDokbGli ZGlyOiciJGFpeF9saWJwYXRoIgotKwkgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90 aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCi0rCSAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhv dXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgotKwkgIF9MVF9UQUdW QVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm5vdG9rJwotKwkgIF9MVF9UQUdW QVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm9rJwotKwkgICMgRXhwb3J0 ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZl cwotKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJGNvbnZlbmll bmNlJwotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT15ZXMKLSsJICAj IFRoaXMgaXMgc2ltaWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFy ZWQgbGlicmFyaWVzLgotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJc JENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRl cGxpYnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3lt Ym9scyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIv JGxpYm5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCi0rCWZpCi0rICAgICAg ZmkKLSsgICAgICA7OwotKwotKyAgICBhbWlnYW9zKikKLSsgICAgICBjYXNlICRob3N0X2NwdSBp bgotKyAgICAgIHBvd2VycGMpCi0rICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWln YU9TNCAuc28gc3VwcG9ydAotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1z b25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPScnCi0rICAgICAgICA7OwotKyAgICAgIG02OGspCi0rICAgICAg ICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyL2Ey aXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTkFNRSAkbGlibmFtZSIgPiAkb3V0cHV0X29i amRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIExJQlJBUllfSUQgMSIgPj4gJG91 dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBWRVJTSU9OICRtYWpv ciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBSRVZJ U0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEFSICRB Ul9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxpYn4oY2QgJG91dHB1dF9vYmpkaXIgJiYg YTJpeGxpYnJhcnkgLTMyKScKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbWludXNfTCwgJDEpPXllcwotKyAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAg OzsKLSsKLSsgICAgYnNkaVtbNDVdXSopCi0rICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1p Y19mbGFnX3NwZWMsICQxKT0tcmR5bmFtaWMKLSsgICAgICA7OwotKwotKyAgICBjeWd3aW4qIHwg bWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdl IGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcKLSsgICAgICAjIE1pY3Jvc29mdCBW aXN1YWwgQysrLgotKyAgICAgICMgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyBpcyBhY3R1YWxs eSBtZWFuaW5nbGVzcywgYXMgdGhlcmUgaXMKLSsgICAgICAjIG5vIHNlYXJjaCBwYXRoIGZvciBE TExzLgotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScg JwotKyAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRl ZAotKyAgICAgICMgVGVsbCBsdG1haW4gdG8gbWFrZSAubGliIGZpbGVzLCBub3QgLmEgZmlsZXMu Ci0rICAgICAgbGliZXh0PWxpYgotKyAgICAgICMgVGVsbCBsdG1haW4gdG8gbWFrZSAuZGxsIGZp bGVzLCBub3QgLnNvIGZpbGVzLgotKyAgICAgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgICAgICMg RklYTUU6IFNldHRpbmcgbGlua25hbWVzIGhlcmUgaXMgYSBiYWQgaGFjay4KLSsgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLW8gJGxpYiAkbGlib2JqcyAkY29tcGlsZXJf ZmxhZ3MgYCRFQ0hPICJYJGRlcGxpYnMiIHwgJFhzZWQgLWUgJ1wnJ3MvIC1sYyQvLydcJydgIC1s aW5rIC1kbGx+bGlua25hbWVzPScKLSsgICAgICAjIFRoZSBsaW5rZXIgd2lsbCBhdXRvbWF0aWNh bGx5IGJ1aWxkIGEgLmxpYiBmaWxlIGlmIHdlIGJ1aWxkIGEgRExMLgotKyAgICAgIF9MVF9UQUdW QVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywgJDEpPSd0cnVlJwotKyAgICAgICMgRklYTUU6 IFNob3VsZCBsZXQgdGhlIHVzZXIgc3BlY2lmeSB0aGUgbGliIHByb2dyYW0uCi0rICAgICAgX0xU X1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9J2xpYiAtT1VUOiRvbGRsaWIkb2xkb2JqcyRv bGRfZGVwbGlicycKLSsgICAgICBfTFRfVEFHVkFSKGZpeF9zcmNmaWxlX3BhdGgsICQxKT0nYGN5 Z3BhdGggLXcgIiRzcmNmaWxlImAnCi0rICAgICAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dp dGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCi0rICAgICAgOzsKLSsKLSsgICAgZGFyd2luKiB8 IHJoYXBzb2R5KikKLSsgICAgICBfTFRfREFSV0lOX0xJTktFUl9GRUFUVVJFUygkMSkKLSsgICAg ICA7OwotKwotKyAgICBkZ3V4KikKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxh Z3MnCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1M JGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1u bwotKyAgICAgIDs7Ci0rCi0rICAgIGZyZWVic2QxKikKLSsgICAgICBfTFRfVEFHVkFSKGxkX3No bGlicywgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgIyBGcmVlQlNEIDIuMi5bMDEyXSBhbGxv d3MgdXMgdG8gaW5jbHVkZSBjKytydDAubyB0byBnZXQgQysrIGNvbnN0cnVjdG9yCi0rICAgICMg c3VwcG9ydC4gIEZ1dHVyZSB2ZXJzaW9ucyBkbyB0aGlzIGF1dG9tYXRpY2FsbHksIGJ1dCBhbiBl eHBsaWNpdCBjKytydDAubwotKyAgICAjIGRvZXMgbm90IGJyZWFrIGFueXRoaW5nLCBhbmQgaGVs cHMgc2lnbmlmaWNhbnRseSAoYXQgdGhlIGNvc3Qgb2YgYSBsaXR0bGUKLSsgICAgIyBleHRyYSBz cGFjZSkuCi0rICAgIGZyZWVic2QyLjIqKQotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3MgL3Vzci9saWIvYysrcnQwLm8nCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X2RpcmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3Zh ciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgIyBVbmZvcnR1bmF0ZWx5LCBvbGRlciB2ZXJz aW9ucyBvZiBGcmVlQlNEIDIgZG8gbm90IGhhdmUgdGhpcyBmZWF0dXJlLgotKyAgICBmcmVlYnNk MiopCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxl IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bWludXNfTCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3Zh ciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgIyBGcmVlQlNEIDMgYW5kIGdyZWF0ZXIgdXNl cyBnY2MgLXNoYXJlZCB0byBkbyBzaGFyZWQgbGlicmFyaWVzLgotKyAgICBmcmVlYnNkKiB8IGRy YWdvbmZseSopCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKLSsgICAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgaHB1eDkq KQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCV9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkIC1mUElD ICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29u YW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0rICAgICAgZWxz ZQotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvJHNv bmFtZX4kTEQgLWIgK2IgJGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25h bWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICBmaQot KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfSti ICR7d2x9JGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3IsICQxKT06Ci0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsK LSsgICAgICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRI LAotKyAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5Lgot KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKyAgICAgIF9MVF9U QUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCi0rICAgICAgOzsK LSsKLSsgICAgaHB1eDEwKikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAiJHdpdGhf Z251X2xkIiA9IG5vOyB0aGVuCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9s aWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAg ZWxzZQotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWIgK2ggJHNvbmFtZSAr YiAkaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdz JwotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0r CV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9 JGxpYmRpcicKLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9 JytiICRsaWJkaXInCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEp PToKLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsJX0xUX1RBR1ZBUiho YXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKLSsJX0xUX1RBR1ZBUihleHBvcnRfZHlu YW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKLSsJIyBoYXJkY29kZV9taW51c19MOiBOb3Qg cmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsJIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRp b24gb2YgdGhlIGxpYnJhcnkuCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXll cwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgaHB1eDExKikKLSsgICAgICBpZiB0ZXN0 ICIkR0NDIiA9IHllcyAtYSAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCWNhc2UgJGhvc3Rf Y3B1IGluCi0rCWhwcGEqNjQqKQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWlhNjQqKQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9 K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JwotKwkgIDs7Ci0rCSopCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xp YmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7Owot Kwllc2FjCi0rICAgICAgZWxzZQotKwljYXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KikKLSsJ ICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJ aWE2NCopCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2gg JHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCSopCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5z dGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0r CSAgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9 IG5vOyB0aGVuCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSck e3dsfStiICR7d2x9JGxpYmRpcicKLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yLCAkMSk9OgotKwotKwljYXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KnxpYTY0KikKLSsJ ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rCSAgX0xUX1RBR1ZBUihoYXJk Y29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsJICA7OwotKwkqKQotKwkgIF9MVF9UQUdWQVIo aGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3Rf YWJzb2x1dGUsICQxKT15ZXMKLSsJICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl YywgJDEpPScke3dsfS1FJwotKwotKwkgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBp biB0aGUgc2VhcmNoIFBBVEgsCi0rCSAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2Yg dGhlIGxpYnJhcnkuCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0r CSAgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgaXJpeDUqIHwgaXJp eDYqIHwgbm9uc3RvcHV4KikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZl cnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwg JFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9j YXRpb25zIC1vICRsaWInCi0rCSMgVHJ5IHRvIHVzZSB0aGUgLWV4cG9ydGVkX3N5bWJvbCBsZCBv cHRpb24sIGlmIGl0IGRvZXMgbm90Ci0rCSMgd29yaywgYXNzdW1lIHRoYXQgLWV4cG9ydHNfZmls ZSBkb2VzIG5vdCB3b3JrIGVpdGhlciBhbmQKLSsJIyBpbXBsaWNpdGx5IGV4cG9ydCBhbGwgc3lt Ym9scy4KLSsgICAgICAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCi0rICAgICAgICBMREZMQUdT PSIkTERGTEFHUyAtc2hhcmVkICR7d2x9LWV4cG9ydGVkX3N5bWJvbCAke3dsfWZvbyAke3dsfS11 cGRhdGVfcmVnaXN0cnkgJHt3bH0vZGV2L251bGwiCi0rICAgICAgICBBQ19MSU5LX0lGRUxTRShp bnQgZm9vKHZvaWQpIHt9LAotKyAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJY JHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVf cmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAke3dsfS1leHBvcnRz X2ZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsgICAgICAgICkKLSsgICAgICAg IExERkxBR1M9IiRzYXZlX0xERkxBR1MiCi0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRf dmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29i amRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg LXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVy c2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRp cn0vc29fbG9jYXRpb25zIC1leHBvcnRzX2ZpbGUgJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0r ICAgICAgZmkKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9J25v JwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3ds fS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yLCAkMSk9OgotKyAgICAgIF9MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPXll cwotKyAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcwotKyAgICAgIDs7 Ci0rCi0rICAgIG5ldGJzZCopCi0rICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAk R1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFncycgICMgYS5vdXQKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRMRCAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycg ICAgICAjIEVMRgotKyAgICAgIGZpCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2Rp cmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3Zhciwg JDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgbmV3c29zNikKLSsgICAgICBfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQx KT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0n JHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciwgJDEpPToKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0 aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICpudG8qIHwgKnFueCopCi0rICAgICAg OzsKLSsKLSsgICAgb3BlbmJzZCopCi0rICAgICAgaWYgdGVzdCAtZiAvdXNyL2xpYmV4ZWMvbGQu c287IHRoZW4KLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsJX0xUX1RB R1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsJX0xUX1RBR1ZBUihoYXJkY29k ZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKLSsJaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8 ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIg PSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncycKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0n JENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzJwotKwkgIF9M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGli ZGlyJwotKwkgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9 LUUnCi0rCWVsc2UKLSsJICBjYXNlICRob3N0X29zIGluCi0rCSAgIG9wZW5ic2RbWzAxXV0uKiB8 IG9wZW5ic2QyLltbMC03XV0gfCBvcGVuYnNkMi5bWzAtN11dLiopCi0rCSAgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJwotKwkgICAgIDs7Ci0rCSAgICopCi0rCSAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgICAg IDs7Ci0rCSAgZXNhYwotKwlmaQotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgb3MyKikKLSsgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwotKyAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIo YWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAotKyAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRFQ0hPICJMSUJSQVJZICRsaWJuYW1lIElOSVRJTlNUQU5DRSIg PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gIkRFU0NSSVBUSU9OIFwiJGxpYm5h bWVcIiIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPIERBVEEgPj4gJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPICIgU0lOR0xFIE5PTlNIQVJFRCIgPj4gJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPIEVYUE9SVFMgPj4gJG91dHB1dF9vYmpkaXIvJGxp Ym5hbWUuZGVmfmVteGV4cCAkbGlib2JqcyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ JENDIC1aZGxsIC1aY3J0ZGxsIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKLSsgICAgICBfTFRfVEFHVkFSKG9sZF9h cmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0nZW14aW1wIC1vICRvdXRwdXRfb2JqZGlyLyRsaWJu YW1lLmEgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJwotKyAgICAgIDs7Ci0rCi0rICAgIG9z ZjMqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCV9MVF9UQUdWQVIoYWxs b3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XCon Ci0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRl ZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0 X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkg JHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKyAgICAgIGVsc2UK LSsJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgLWV4cGVjdF91bnJlc29s dmVkIFwqJwotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29u YW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9u ICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9z b19sb2NhdGlvbnMgLW8gJGxpYicKLSsgICAgICBmaQotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzX25lZWRfbGMsICQxKT0nbm8nCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rICAgICAgOzsKLSsKLSsg ICAgb3NmNCogfCBvc2Y1KikJIyBhcyBvc2YzKiB3aXRoIHRoZSBhZGRpdGlvbiBvZiAtbXN5bSBm bGFnCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJX0xUX1RBR1ZBUihhbGxv d191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicK LSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVm aW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAk e3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAi WCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRl X3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJ X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7 d2x9JGxpYmRpcicKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2Zs YWcsICQxKT0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVy c3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBk YXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCV9M VF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdmb3IgaSBpbiBgY2F0ICRleHBvcnRf c3ltYm9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4g JGxpYi5leHA7IGRvbmU7IHByaW50ZiAiJXNcXG4iICItaGlkZGVuIj4+ICRsaWIuZXhwfgotKwkk Q0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICR7d2x9LWlucHV0ICR7d2x9JGxpYi5l eHAgJGNvbXBpbGVyX2ZsYWdzICRsaWJvYmpzICRkZXBsaWJzIC1zb25hbWUgJHNvbmFtZSBgdGVz dCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAk WHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAk bGlifiRSTSAkbGliLmV4cCcKLSsKLSsJIyBCb3RoIGMgYW5kIGN4eCBjb21waWxlciBzdXBwb3J0 IC1ycGF0aCBkaXJlY3RseQotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0nLXJwYXRoICRsaWJkaXInCi0rICAgICAgZmkKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kc19uZWVkX2xjLCAkMSk9J25vJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciwgJDEpPToKLSsgICAgICA7OwotKwotKyAgICBzb2xhcmlzKikKLSsgICAg ICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAteiBkZWZzJwotKyAgICAgIGlm IHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCXdsYXJjPScke3dsfScKLSsJX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0teiAke3dsfXRleHQgJHt3bH0taCAk e3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0r CV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4g JGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+Ci0rCSAgJENDIC1zaGFy ZWQgJHt3bH0teiAke3dsfXRleHQgJHt3bH0tTSAke3dsfSRsaWIuZXhwICR7d2x9LWggJHt3bH0k c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGli LmV4cCcKLSsgICAgICBlbHNlCi0rCWNhc2UgYCRDQyAtViAyPiYxYCBpbgotKwkqIkNvbXBpbGVy cyA1LjAiKikKLSsJICB3bGFyYz0nJwotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9s cyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9 OyIgPj4gJGxpYi5leHB+Ci0rCSAgJExEIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLU0gJGxp Yi5leHAgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+ JFJNICRsaWIuZXhwJwotKwkgIDs7Ci0rCSopCi0rCSAgd2xhcmM9JyR7d2x9JwotKwkgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1o ICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAg X0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAk bGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4g JGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJICAkQ0MgLUcke2Fs bG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsJICA7OwotKwllc2Fj Ci0rICAgICAgZmkKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0nLVIkbGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3Zh ciwgJDEpPW5vCi0rICAgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIHNvbGFyaXMyLltbMC01 XV0gfCBzb2xhcmlzMi5bWzAtNV1dLiopIDs7Ci0rICAgICAgKikKLSsJIyBUaGUgY29tcGlsZXIg ZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKLSsJIyBidXQg dW5kZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFnJy4gIEdDQyBkaXNjYXJkcyBpdCB3aXRob3V0IGAk d2wnLAotKwkjIGJ1dCBpcyBjYXJlZnVsIGVub3VnaCBub3QgdG8gcmVvcmRlci4KLSsJIyBTdXBw b3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKLSsJaWYgdGVzdCAiJEdDQyIg PSB5ZXM7IHRoZW4KLSsJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0 ZXh0cmFjdCcKLSsJZWxzZQotKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKLSsJZmkK LSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAk MSk9eWVzCi0rICAgICAgOzsKLSsKLSsgICAgc3Vub3M0KikKLSsgICAgICBpZiB0ZXN0ICJ4JGhv c3RfdmVuZG9yIiA9IHhzZXF1ZW50OyB0aGVuCi0rCSMgVXNlICRDQyB0byBsaW5rIHVuZGVyIHNl cXVlbnQsIGJlY2F1c2UgaXQgdGhyb3dzIGluIHNvbWUgZXh0cmEgLm8KLSsJIyBmaWxlcyB0aGF0 IG1ha2UgLmluaXQgYW5kIC5maW5pIHNlY3Rpb25zIHdvcmsuCi0rCV9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzdGF0aWMgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bWludXNfTCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3Zh ciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQpCi0rICAgICAgY2FzZSAkaG9zdF92 ZW5kb3IgaW4KLSsJc25pKQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAt RyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJ ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcyAjIGlzIHRoaXMgcmVhbGx5IHRy dWU/Pz8KLSsJOzsKLSsJc2llbWVucykKLSsJICAjIyBMRCBpcyBsZCBpdCBtYWtlcyBhIFBMQU1M SUIKLSsJICAjIyBDQyBqdXN0IG1ha2VzIGEgR3Jvc3NNb2R1bGUuCi0rCSAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFncycKLSsJICBfTFRfVEFHVkFSKHJlbG9hZF9jbWRzLCAkMSk9JyRDQyAtciAtbyAkb3V0 cHV0JHJlbG9hZF9vYmpzJwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8K LSsgICAgICAgIDs7Ci0rCW1vdG9yb2xhKQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFncycKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vICNNb3Rvcm9sYSBt YW51YWwgc2F5cyB5ZXMsIGJ1dCBteSB0ZXN0cyBzYXkgdGhleSBsaWUKLSsJOzsKLSsgICAgICBl c2FjCi0rICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJwotKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQu MyopCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgX0xUX1RBR1ZBUihl eHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nLUJleHBvcnQnCi0rICAgICAgOzsKLSsKLSsg ICAgc3lzdjQqTVAqKQotKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KLSsJX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0 aF92YXIsICQxKT1ubwotKwlydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKwloYXJkY29kZV9ydW5w YXRoX3Zhcj15ZXMKLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKLSsgICAgICBmaQot KyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5c3Y1VW5p eFdhcmU3LltbMDFdXS5bWzEwXV0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuW1swMjRdXSop Ci0rICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LHRleHQn Ci0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICBydW5wYXRo X3Zhcj0nTERfUlVOX1BBVEgnCi0rCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4K LSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlfTFRfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDok ZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncycKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRD QyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICA7 OwotKwotKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQotKyAgICAgICMgTm90ZTog V2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8g bm90Ci0rICAgICAgIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3lt Ym9scyB1c2VkIGZyb20gbGliYyB0bwotKyAgICAgICMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdo aWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3b3VsZAotKyAgICAgICMgZXZlciBsaW5r IGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKLSsg ICAgICAjIHRob3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24n dCBhcyBoZWF2eS1oYW5kZWQKLSsgICAgICAjIGFzIC16IGRlZnMuCi0rICAgICAgX0xUX1RBR1ZB Uihub191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LHRleHQnCi0rICAgICAgX0xUX1RBR1ZB UihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LG5vZGVmcycKLSsgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLSsgICAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1SLCRsaWJkaXInCi0rICAgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9JzonCi0rICAgICAgX0xUX1RBR1ZBUihs aW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1p Y19mbGFnX3NwZWMsICQxKT0nJHt3bH0tQmV4cG9ydCcKLSsgICAgICBydW5wYXRoX3Zhcj0nTERf UlVOX1BBVEgnCi0rCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5 bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEND IC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncycKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3ds fS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAg ICB1dHM0KikKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWgg JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7 Ci0rCi0rICAgICopCi0rICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAg IDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgaWYgdGVzdCB4JGhvc3RfdmVuZG9yID0geHNuaTsgdGhl bgotKyAgICAgIGNhc2UgJGhvc3QgaW4KLSsgICAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwgc3lz djQuMyogfCBzeXN2NSopCi0rCV9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAk MSk9JyR7d2x9LUJsYXJnZWR5bnN5bScKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rICBm aQotK10pCi0rQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSldKQotK3Rl c3QgIiRfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9 bm8KLSsKLStfTFRfVEFHVkFSKHdpdGhfZ251X2xkLCAkMSk9JHdpdGhfZ251X2xkCi0rCi0rX0xU X0RFQ0woW10sIFtsaWJleHRdLCBbMF0sIFtPbGQgYXJjaGl2ZSBzdWZmaXggKG5vcm1hbGx5ICJh IildKWRubAotK19MVF9ERUNMKFtdLCBbc2hyZXh0X2NtZHNdLCBbMV0sIFtTaGFyZWQgbGlicmFy eSBzdWZmaXggKG5vcm1hbGx5ICIuc28iKV0pZG5sCi0rX0xUX0RFQ0woW10sIFtleHRyYWN0X2V4 cHN5bXNfY21kc10sIFsyXSwKLSsgICAgW1RoZSBjb21tYW5kcyB0byBleHRyYWN0IHRoZSBleHBv cnRlZCBzeW1ib2wgbGlzdCBmcm9tIGEgc2hhcmVkIGFyY2hpdmVdKQotKwotKyMKLSsjIERvIHdl IG5lZWQgdG8gZXhwbGljaXRseSBsaW5rIGxpYmM/Ci0rIwotK2Nhc2UgIngkX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpIiBpbgotK3h8eHllcykKLSsgICMgQXNzdW1lIC1sYyBz aG91bGQgYmUgYWRkZWQKLSsgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT15 ZXMKLSsKLSsgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIkR0NDIiA9 IHllczsgdGhlbgotKyAgICBjYXNlICRfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpIGluCi0r ICAgIConficqKQotKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRlYWwgd2l0aCBtdWx0 aS1jb21tYW5kIHNlcXVlbmNlcy4KLSsgICAgICA7OwotKyAgICAnJENDICcqKQotKyAgICAgICMg VGVzdCB3aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdpdGggLWxjIHNpbmNl IG9uIHNvbWUKLSsgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21lIGJlZm9yZSAtbGMu IElmIGdjYyBhbHJlYWR5IHBhc3NlcyAtbGMKLSsgICAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxj IGJlZm9yZSAtbGdjYy4KLSsgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgLWxjIHNob3Vs ZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbl0pCi0rICAgICAgJFJNIGNvbmZ0ZXN0KgotKyAgICAg IGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAot KwotKyAgICAgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXJyOyB0aGVu Ci0rICAgICAgICBzb25hbWU9Y29uZnRlc3QKLSsgICAgICAgIGxpYj1jb25mdGVzdAotKyAgICAg ICAgbGlib2Jqcz1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rICAgICAgICBkZXBsaWJzPQotKyAgICAg ICAgd2w9JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpCi0rCXBpY19mbGFnPSRf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkKLSsgICAgICAgIGNvbXBpbGVyX2Zs YWdzPS12Ci0rICAgICAgICBsaW5rZXJfZmxhZ3M9LXYKLSsgICAgICAgIHZlcnN0cmluZz0KLSsg ICAgICAgIG91dHB1dF9vYmpkaXI9LgotKyAgICAgICAgbGlibmFtZT1jb25mdGVzdAotKyAgICAg ICAgbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZz0kX0xUX1RBR1ZBUihhbGxvd191bmRlZmlu ZWRfZmxhZywgJDEpCi0rICAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAk MSk9Ci0rICAgICAgICBpZiBBQ19UUllfRVZBTChfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp IDJcPlwmMSBcfCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxKQotKyAgICAgICAg dGhlbgotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwotKyAgICAg ICAgZWxzZQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT15ZXMKLSsg ICAgICAgIGZpCi0rICAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9 JGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKLSsgICAgICBlbHNlCi0rICAgICAgICBjYXQg Y29uZnRlc3QuZXJyIDE+JjUKLSsgICAgICBmaQotKyAgICAgICRSTSBjb25mdGVzdCoKLSsgICAg ICBBQ19NU0dfUkVTVUxUKFskX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpXSkK LSsgICAgICA7OwotKyAgICBlc2FjCi0rICBmaQotKyAgOzsKLStlc2FjCi0rCi0rX0xUX1RBR0RF Q0woW2J1aWxkX2xpYnRvb2xfbmVlZF9sY10sIFthcmNoaXZlX2NtZHNfbmVlZF9sY10sIFswXSwK LSsgICAgW1doZXRoZXIgb3Igbm90IHRvIGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJy YXJpZXNdKQotK19MVF9UQUdERUNMKFthbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVu dGltZXNdLAotKyAgICBbZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc10sIFswXSwK LSsgICAgW1doZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93IHNoYXJlZCBsaWJzIHdoZW4gcnVudGlt ZSBsaWJzIGFyZSBzdGF0aWNdKQotK19MVF9UQUdERUNMKFtdLCBbZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjXSwgWzFdLAotKyAgICBbQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxv cGVuc10pCi0rX0xUX1RBR0RFQ0woW10sIFt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY10sIFsxXSwK LSsgICAgW0NvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgc2hhcmVkIG9iamVjdHMgZGlyZWN0bHkg ZnJvbSBhcmNoaXZlc10pCi0rX0xUX1RBR0RFQ0woW10sIFtjb21waWxlcl9uZWVkc19vYmplY3Rd LCBbMV0sCi0rICAgIFtXaGV0aGVyIHRoZSBjb21waWxlciBjb3BlcyB3aXRoIHBhc3Npbmcgbm8g b2JqZWN0cyBkaXJlY3RseV0pCi0rX0xUX1RBR0RFQ0woW10sIFtvbGRfYXJjaGl2ZV9mcm9tX25l d19jbWRzXSwgWzJdLAotKyAgICBbQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBz aGFyZWQgYXJjaGl2ZV0pCi0rX0xUX1RBR0RFQ0woW10sIFtvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5 bXNfY21kc10sIFsyXSwKLSsgICAgW0NyZWF0ZSBhIHRlbXBvcmFyeSBvbGQtc3R5bGUgYXJjaGl2 ZSB0byBsaW5rIGluc3RlYWQgb2YgYSBzaGFyZWQgYXJjaGl2ZV0pCi0rX0xUX1RBR0RFQ0woW10s IFthcmNoaXZlX2NtZHNdLCBbMl0sIFtDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgc2hhcmVkIGFy Y2hpdmVdKQotK19MVF9UQUdERUNMKFtdLCBbYXJjaGl2ZV9leHBzeW1fY21kc10sIFsyXSkKLStf TFRfVEFHREVDTChbXSwgW21vZHVsZV9jbWRzXSwgWzJdLAotKyAgICBbQ29tbWFuZHMgdXNlZCB0 byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBidWlsZGluZwotKyAg ICBhIHNoYXJlZCBhcmNoaXZlLl0pCi0rX0xUX1RBR0RFQ0woW10sIFttb2R1bGVfZXhwc3ltX2Nt ZHNdLCBbMl0pCi0rX0xUX1RBR0RFQ0woW10sIFt3aXRoX2dudV9sZF0sIFsxXSwKLSsgICAgW1do ZXRoZXIgd2UgYXJlIGJ1aWxkaW5nIHdpdGggR05VIGxkIG9yIG5vdF0pCi0rX0xUX1RBR0RFQ0wo W10sIFthbGxvd191bmRlZmluZWRfZmxhZ10sIFsxXSwKLSsgICAgW0ZsYWcgdGhhdCBhbGxvd3Mg c2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0XSkKLStf TFRfVEFHREVDTChbXSwgW25vX3VuZGVmaW5lZF9mbGFnXSwgWzFdLAotKyAgICBbRmxhZyB0aGF0 IGVuZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzXSkKLStfTFRfVEFHREVDTChbXSwgW2hhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNdLCBbMV0sCi0rICAgIFtGbGFnIHRvIGhhcmRjb2RlICRsaWJk aXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KLSsgICAgVGhpcyBtdXN0IHdvcmsgZXZl biBpZiAkbGliZGlyIGRvZXMgbm90IGV4aXN0XSkKLStfTFRfVEFHREVDTChbXSwgW2hhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfbGRdLCBbMV0sCi0rICAgIFtbSWYgbGQgaXMgdXNlZCB3aGVuIGxp bmtpbmcsIGZsYWcgdG8gaGFyZGNvZGUgJGxpYmRpciBpbnRvIGEgYmluYXJ5Ci0rICAgIGR1cmlu ZyBsaW5raW5nLiAgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiAkbGliZGlyIGRvZXMgbm90IGV4aXN0 XV0pCi0rX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yXSwgWzFdLAot KyAgICBbV2hldGhlciB3ZSBuZWVkIGEgc2luZ2xlICItcnBhdGgiIGZsYWcgd2l0aCBhIHNlcGFy YXRlZCBhcmd1bWVudF0pCi0rX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9kaXJlY3RdLCBbMF0s Ci0rICAgIFtTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9IGR1 cmluZyBsaW5raW5nIGhhcmRjb2RlcwotKyAgICBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFy eV0pCi0rX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVdLCBbMF0sCi0r ICAgIFtTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9IGR1cmlu ZyBsaW5raW5nIGhhcmRjb2RlcwotKyAgICBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeSBh bmQgdGhlIHJlc3VsdGluZyBsaWJyYXJ5IGRlcGVuZGVuY3kgaXMKLSsgICAgImFic29sdXRlIiwg aS5lIGltcG9zc2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgJHtzaGxpYnBhdGhfdmFyfSBpZiB0 aGUKLSsgICAgbGlicmFyeSBpcyByZWxvY2F0ZWRdKQotK19MVF9UQUdERUNMKFtdLCBbaGFyZGNv ZGVfbWludXNfTF0sIFswXSwKLSsgICAgW1NldCB0byAieWVzIiBpZiB1c2luZyB0aGUgLUxESVIg ZmxhZyBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCi0rICAgIGludG8gdGhlIHJlc3VsdGlu ZyBiaW5hcnldKQotK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl0sIFsw XSwKLSsgICAgW1NldCB0byAieWVzIiBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJUiBkdXJpbmcg bGlua2luZyBoYXJkY29kZXMgRElSCi0rICAgIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnldKQot K19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfYXV0b21hdGljXSwgWzBdLAotKyAgICBbU2V0IHRv ICJ5ZXMiIGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29k ZXMgRElSCi0rICAgIGludG8gdGhlIGxpYnJhcnkgYW5kIGFsbCBzdWJzZXF1ZW50IGxpYnJhcmll cyBhbmQgZXhlY3V0YWJsZXMgbGlua2VkCi0rICAgIGFnYWluc3QgaXRdKQotK19MVF9UQUdERUNM KFtdLCBbaW5oZXJpdF9ycGF0aF0sIFswXSwKLSsgICAgW1NldCB0byB5ZXMgaWYgbGlua2VyIGFk ZHMgcnVudGltZSBwYXRocyBvZiBkZXBlbmRlbnQgbGlicmFyaWVzCi0rICAgIHRvIHJ1bnRpbWUg cGF0aCBsaXN0XSkKLStfTFRfVEFHREVDTChbXSwgW2xpbmtfYWxsX2RlcGxpYnNdLCBbMF0sCi0r ICAgIFtXaGV0aGVyIGxpYnRvb2wgbXVzdCBsaW5rIGEgcHJvZ3JhbSBhZ2FpbnN0IGFsbCBpdHMg ZGVwZW5kZW5jeSBsaWJyYXJpZXNdKQotK19MVF9UQUdERUNMKFtdLCBbZml4X3NyY2ZpbGVfcGF0 aF0sIFsxXSwKLSsgICAgW0ZpeCB0aGUgc2hlbGwgdmFyaWFibGUgJHNyY2ZpbGUgZm9yIHRoZSBj b21waWxlcl0pCi0rX0xUX1RBR0RFQ0woW10sIFthbHdheXNfZXhwb3J0X3N5bWJvbHNdLCBbMF0s Ci0rICAgIFtTZXQgdG8gInllcyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWRdKQot K19MVF9UQUdERUNMKFtdLCBbZXhwb3J0X3N5bWJvbHNfY21kc10sIFsyXSwKLSsgICAgW1RoZSBj b21tYW5kcyB0byBsaXN0IGV4cG9ydGVkIHN5bWJvbHNdKQotK19MVF9UQUdERUNMKFtdLCBbZXhj bHVkZV9leHBzeW1zXSwgWzFdLAotKyAgICBbU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlz dGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9sc10pCi0rX0xUX1RBR0RFQ0woW10sIFtpbmNsdWRl X2V4cHN5bXNdLCBbMV0sCi0rICAgIFtTeW1ib2xzIHRoYXQgbXVzdCBhbHdheXMgYmUgZXhwb3J0 ZWRdKQotK19MVF9UQUdERUNMKFtdLCBbcHJlbGlua19jbWRzXSwgWzJdLAotKyAgICBbQ29tbWFu ZHMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHByb2dyYW1zIChhZ2FpbnN0IGxpYnJhcmllcykgd2l0 aCB0ZW1wbGF0ZXNdKQotK19MVF9UQUdERUNMKFtdLCBbZmlsZV9saXN0X3NwZWNdLCBbMV0sCi0r ICAgIFtTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXNdKQotK2RubCBGSVhN RTogTm90IHlldCBpbXBsZW1lbnRlZAotK2RubCBfTFRfVEFHREVDTChbXSwgW3RocmVhZF9zYWZl X2ZsYWdfc3BlY10sIFsxXSwKLStkbmwgICAgW0NvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgdGhy ZWFkIHNhZmUgb2JqZWN0c10pCi0rXSkjIF9MVF9MSU5LRVJfU0hMSUJTCi0rCi0rCi0rIyBfTFRf TEFOR19DX0NPTkZJRyhbVEFHXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRW5z dXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEMgY29tcGlsZXIgYXJl IHN1aXRhYmx5Ci0rIyBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkg dXNlZCBieSBfTFRfQ09ORklHIHRvIHdyaXRlCi0rIyB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlv biB0byBgbGlidG9vbCcuCi0rbTRfZGVmdW4oW19MVF9MQU5HX0NfQ09ORklHXSwKLStbbTRfcmVx dWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAotK2x0X3NhdmVfQ0M9IiRDQyIKLStBQ19MQU5HX1BV U0goQykKLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQyB0ZXN0IHNvdXJjZXMuCi0r YWNfZXh0PWMKLSsKLSsjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgQyB0ZXN0 IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKLSsK LSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwotK2x0X3NpbXBsZV9j b21waWxlX3Rlc3RfY29kZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKLSsKLSsjIENvZGUgdG8g YmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0n aW50IG1haW4oKXtyZXR1cm4oMCk7fScKLSsKLStfTFRfVEFHX0NPTVBJTEVSCi0rIyBTYXZlIHRo ZSBkZWZhdWx0IGNvbXBpbGVyLCBzaW5jZSBpdCBnZXRzIG92ZXJ3cml0dGVuIHdoZW4gdGhlIG90 aGVyCi0rIyB0YWdzIGFyZSBiZWluZyB0ZXN0ZWQsIGFuZCBfTFRfVEFHVkFSKGNvbXBpbGVyLCBb XSkgaXMgYSBOT1AuCi0rY29tcGlsZXJfREVGQVVMVD0kQ0MKLSsKLSsjIHNhdmUgd2FybmluZ3Mv Ym9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQotK19MVF9DT01QSUxFUl9CT0lMRVJQTEFU RQotK19MVF9MSU5LRVJfQk9JTEVSUExBVEUKLSsKLSsjIyBDQVZFQVQgRU1QVE9SOgotKyMjIFRo ZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBu b3QgY2hhbmdlCi0rIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBh cm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKLSsjIyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4K LStpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCi0rICBfTFRfQ09NUElMRVJfTk9fUlRUSSgk MSkKLSsgIF9MVF9DT01QSUxFUl9QSUMoJDEpCi0rICBfTFRfQ09NUElMRVJfQ19PKCQxKQotKyAg X0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoJDEpCi0rICBfTFRfTElOS0VSX1NITElCUygkMSkKLSsg IF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCi0rICBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBB VEgoJDEpCi0rICBMVF9TWVNfRExPUEVOX1NFTEYKLSsgIF9MVF9DTURfU1RSSVBMSUIKLSsKLSsg ICMgUmVwb3J0IHdoaWNoIGxpYnJhcnkgdHlwZXMgd2lsbCBhY3R1YWxseSBiZSBidWlsdAotKyAg QUNfTVNHX0NIRUNLSU5HKFtpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQot KyAgQUNfTVNHX1JFU1VMVChbJGNhbl9idWlsZF9zaGFyZWRdKQotKwotKyAgQUNfTVNHX0NIRUNL SU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQotKyAgdGVzdCAiJGNhbl9i dWlsZF9zaGFyZWQiID0gIm5vIiAmJiBlbmFibGVfc2hhcmVkPW5vCi0rCi0rICAjIE9uIEFJWCwg c2hhcmVkIGxpYnJhcmllcyBhbmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUgbmFtZXNw YWNlLCBhbmQKLSsgICMgYXJlIGFsbCBidWlsdCBmcm9tIFBJQy4KLSsgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgIGFpeDMqKQotKyAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxl X3N0YXRpYz1ubwotKyAgICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgotKyAgICAgIGFyY2hp dmVfY21kcz0iJGFyY2hpdmVfY21kc35cJFJBTkxJQiBcJGxpYiIKLSsgICAgICBwb3N0aW5zdGFs bF9jbWRzPSckUkFOTElCICRsaWInCi0rICAgIGZpCi0rICAgIDs7Ci0rCi0rICBhaXhbWzQtOV1d KikKLSsgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1 bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgotKyAgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9 IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rICBB Q19NU0dfUkVTVUxUKFskZW5hYmxlX3NoYXJlZF0pCi0rCi0rICBBQ19NU0dfQ0hFQ0tJTkcoW3do ZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCi0rICAjIE1ha2Ugc3VyZSBlaXRoZXIg ZW5hYmxlX3NoYXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4KLSsgIHRlc3QgIiRlbmFibGVf c2hhcmVkIiA9IHllcyB8fCBlbmFibGVfc3RhdGljPXllcwotKyAgQUNfTVNHX1JFU1VMVChbJGVu YWJsZV9zdGF0aWNdKQotKwotKyAgX0xUX0NPTkZJRygkMSkKLStmaQotK0FDX0xBTkdfUE9QCi0r Q0M9IiRsdF9zYXZlX0NDIgotK10pIyBfTFRfTEFOR19DX0NPTkZJRwotKwotKwotKyMgX0xUX1BS T0dfQ1hYCi0rIyAtLS0tLS0tLS0tLS0KLSsjIFNpbmNlIEFDX1BST0dfQ1hYIGlzIGJyb2tlbiwg aW4gdGhhdCBpdCByZXR1cm5zIGcrKyBpZiB0aGVyZSBpcyBubyBjKysKLSsjIGNvbXBpbGVyLCB3 ZSBoYXZlIG91ciBvd24gdmVyc2lvbiBoZXJlLgotK200X2RlZnVuKFtfTFRfUFJPR19DWFhdLAot K1sKLStwdXNoZGVmKFtBQ19NU0dfRVJST1JdLCBbX2x0X2NhdWdodF9DWFhfZXJyb3I9eWVzXSkK LStBQ19QUk9HX0NYWAotK2lmIHRlc3QgLW4gIiRDWFgiICYmICggdGVzdCAiWCRDWFgiICE9ICJY bm8iICYmCi0rICAgICggKHRlc3QgIlgkQ1hYIiA9ICJYZysrIiAmJiBgZysrIC12ID4vZGV2L251 bGwgMj4mMWAgKSB8fAotKyAgICAodGVzdCAiWCRDWFgiICE9ICJYZysrIikpKSA7IHRoZW4KLSsg IEFDX1BST0dfQ1hYQ1BQCi0rZWxzZQotKyAgX2x0X2NhdWdodF9DWFhfZXJyb3I9eWVzCi0rZmkK LStwb3BkZWYoW0FDX01TR19FUlJPUl0pCi0rXSkjIF9MVF9QUk9HX0NYWAotKwotK2RubCBhY2xv Y2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW19MVF9QUk9H X0NYWF0sIFtdKQotKwotKwotKyMgX0xUX0xBTkdfQ1hYX0NPTkZJRyhbVEFHXSkKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2 YXJpYWJsZXMgZm9yIGEgQysrIGNvbXBpbGVyIGFyZSBzdWl0YWJseQotKyMgZGVmaW5lZC4gIFRo ZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRyB0byB3cml0 ZQotKyMgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgotK200X2RlZnVu KFtfTFRfTEFOR19DWFhfQ09ORklHXSwKLStbQUNfUkVRVUlSRShbX0xUX1BST0dfQ1hYXSlkbmwK LSttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKLSttNF9yZXF1aXJlKFtf TFRfREVDTF9FR1JFUF0pZG5sCi0rCi0rQUNfTEFOR19QVVNIKEMrKykKLStfTFRfVEFHVkFSKGFy Y2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLStfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9m bGFnLCAkMSk9Ci0rX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubwotK19M VF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPQotK19MVF9UQUdWQVIoY29tcGlsZXJf bmVlZHNfb2JqZWN0LCAkMSk9bm8KLStfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl YywgJDEpPQotK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KLStfTFRfVEFHVkFS KGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPW5vCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSk9Ci0rX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX2xkLCAkMSk9Ci0rX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9 Ci0rX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9bm8KLStfTFRfVEFHVkFSKGhhcmRj b2RlX3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRlZAotK19MVF9UQUdWQVIoaGFyZGNvZGVf YXV0b21hdGljLCAkMSk9bm8KLStfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT1ubwotK19M VF9UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0KLStfTFRfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21k cywgJDEpPQotK19MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXVua25vd24KLStfTFRf VEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0kb2xkX2FyY2hpdmVfY21kcwotK19MVF9UQUdW QVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0KLStfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjLCAkMSk9Ci0rX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRp bWVzLCAkMSk9bm8KLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQysrIHRlc3Qgc291 cmNlcy4KLSthY19leHQ9Y3BwCi0rCi0rIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBp bGVkIEMrKyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStfTFRfVEFHVkFSKG9iamV4dCwgJDEp PSRvYmpleHQKLSsKLSsjIE5vIHNlbnNlIGluIHJ1bm5pbmcgYWxsIHRoZXNlIHRlc3RzIGlmIHdl IGFscmVhZHkgZGV0ZXJtaW5lZCB0aGF0Ci0rIyB0aGUgQ1hYIGNvbXBpbGVyIGlzbid0IHdvcmtp bmcuICBTb21lIHZhcmlhYmxlcyAobGlrZSBlbmFibGVfc2hhcmVkKQotKyMgYXJlIGN1cnJlbnRs eSBhc3N1bWVkIHRvIGFwcGx5IHRvIGFsbCBjb21waWxlcnMgb24gdGhpcyBwbGF0Zm9ybSwKLSsj IGFuZCB3aWxsIGJlIGNvcnJ1cHRlZCBieSBzZXR0aW5nIHRoZW0gYmFzZWQgb24gYSBub24td29y a2luZyBjb21waWxlci4KLStpZiB0ZXN0ICIkX2x0X2NhdWdodF9DWFhfZXJyb3IiICE9IHllczsg dGhlbgotKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKLSsgIGx0 X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKLSsKLSsg ICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCi0rICBsdF9zaW1wbGVfbGlu a190ZXN0X2NvZGU9J2ludCBtYWluKGludCwgY2hhciAqW1tdXSkgeyByZXR1cm4oMCk7IH0nCi0r Ci0rICAjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28g bWFrZSBzdXJlICRDQyBpcyBzZXQuCi0rICBfTFRfVEFHX0NPTVBJTEVSCi0rCi0rICAjIHNhdmUg d2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQotKyAgX0xUX0NPTVBJTEVS X0JPSUxFUlBMQVRFCi0rICBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCi0rCi0rICAjIEFsbG93IEND IHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgotKyAgbHRfc2F2ZV9DQz0kQ0MK LSsgIGx0X3NhdmVfTEQ9JExECi0rICBsdF9zYXZlX0dDQz0kR0NDCi0rICBHQ0M9JEdYWAotKyAg bHRfc2F2ZV93aXRoX2dudV9sZD0kd2l0aF9nbnVfbGQKLSsgIGx0X3NhdmVfcGF0aF9MRD0kbHRf Y3ZfcGF0aF9MRAotKyAgaWYgdGVzdCAtbiAiJHtsdF9jdl9wcm9nX2dudV9sZGN4eCtzZXR9Ijsg dGhlbgotKyAgICBsdF9jdl9wcm9nX2dudV9sZD0kbHRfY3ZfcHJvZ19nbnVfbGRjeHgKLSsgIGVs c2UKLSsgICAgJGFzX3Vuc2V0IGx0X2N2X3Byb2dfZ251X2xkCi0rICBmaQotKyAgaWYgdGVzdCAt biAiJHtsdF9jdl9wYXRoX0xEQ1hYK3NldH0iOyB0aGVuCi0rICAgIGx0X2N2X3BhdGhfTEQ9JGx0 X2N2X3BhdGhfTERDWFgKLSsgIGVsc2UKLSsgICAgJGFzX3Vuc2V0IGx0X2N2X3BhdGhfTEQKLSsg IGZpCi0rICB0ZXN0IC16ICIke0xEQ1hYK3NldH0iIHx8IExEPSRMRENYWAotKyAgQ0M9JHtDWFgt ImMrKyJ9Ci0rICBjb21waWxlcj0kQ0MKLSsgIF9MVF9UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MK LSsgIF9MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKLSsKLSsgIGlmIHRlc3QgLW4gIiRjb21w aWxlciI7IHRoZW4KLSsgICAgIyBXZSBkb24ndCB3YW50IC1mbm8tZXhjZXB0aW9uIHdoZW4gY29t cGlsaW5nIEMrKyBjb2RlLCBzbyBzZXQgdGhlCi0rICAgICMgbm9fYnVpbHRpbl9mbGFnIHNlcGFy YXRlbHkKLSsgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9JyAtZm5vLWJ1aWx0aW4nCi0r ICAgIGVsc2UKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9m bGFnLCAkMSk9Ci0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0r ICAgICAgIyBTZXQgdXAgZGVmYXVsdCBHTlUgQysrIGNvbmZpZ3VyYXRpb24KLSsKLSsgICAgICBM VF9QQVRIX0xECi0rCi0rICAgICAgIyBDaGVjayBpZiBHTlUgQysrIHVzZXMgR05VIGxkIGFzIHRo ZSB1bmRlcmx5aW5nIGxpbmtlciwgc2luY2UgdGhlCi0rICAgICAgIyBhcmNoaXZpbmcgY29tbWFu ZHMgYmVsb3cgYXNzdW1lIHRoYXQgR05VIGxkIGlzIGJlaW5nIHVzZWQuCi0rICAgICAgaWYgdGVz dCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHdsJHNvbmFtZSAtbyAkbGliJwotKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3 bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8g JGxpYicKLSsKLSsgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywg JDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgICBfTFRfVEFHVkFSKGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCi0rCi0rICAg ICAgICAjIElmIGFyY2hpdmVfY21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBl bXB0eQotKyAgICAgICAgIyBYWFggSSB0aGluayB3bGFyYyBjYW4gYmUgZWxpbWluYXRlZCBpbiBs dGNmLWN4eCwgYnV0IEkgbmVlZCB0bwotKyAgICAgICAgIyAgICAgaW52ZXN0aWdhdGUgaXQgYSBs aXR0bGUgYml0IG1vcmUuIChNTSkKLSsgICAgICAgIHdsYXJjPScke3dsfScKLSsKLSsgICAgICAg ICMgYW5jaWVudCBHTlUgbGQgZGlkbid0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlIGV0LiBhbC4K LSsgICAgICAgIGlmIGV2YWwgImAkQ0MgLXByaW50LXByb2ctbmFtZT1sZGAgLS1oZWxwIDI+JjEi IHwKLSsJICAkR1JFUCAnbm8td2hvbGUtYXJjaGl2ZScgPiAvZGV2L251bGw7IHRoZW4KLSsgICAg ICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSIkd2xhcmMiJy0t d2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJwot KyAgICAgICAgZWxzZQotKyAgICAgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19z cGVjLCAkMSk9Ci0rICAgICAgICBmaQotKyAgICAgIGVsc2UKLSsgICAgICAgIHdpdGhfZ251X2xk PW5vCi0rICAgICAgICB3bGFyYz0KLSsKLSsgICAgICAgICMgQSBnZW5lcmljIGFuZCB2ZXJ5IHNp bXBsZSBkZWZhdWx0IHNoYXJlZCBsaWJyYXJ5IGNyZWF0aW9uCi0rICAgICAgICAjIGNvbW1hbmQg Zm9yIEdOVSBDKysgZm9yIHRoZSBjYXNlIHdoZXJlIGl0IHVzZXMgdGhlIG5hdGl2ZQotKyAgICAg ICAgIyBsaW5rZXIsIGluc3RlYWQgb2YgR05VIGxkLiAgSWYgcG9zc2libGUsIHRoaXMgc2V0dGlu ZyBzaG91bGQKLSsgICAgICAgICMgb3ZlcnJpZGRlbiB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGUg bmF0aXZlIGxpbmtlciBmZWF0dXJlcyBvbgotKyAgICAgICAgIyB0aGUgcGxhdGZvcm0gaXQgaXMg YmVpbmcgdXNlZCBvbi4KLSsgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJGxpYicKLSsgICAgICBmaQotKwotKyAg ICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRo YXQgbGlzdHMKLSsgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMg YW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFy eS4KLSsgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAt diBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKLSsKLSsgICAgZWxzZQotKyAg ICAgIEdYWD1ubwotKyAgICAgIHdpdGhfZ251X2xkPW5vCi0rICAgICAgd2xhcmM9Ci0rICAgIGZp Ci0rCi0rICAgICMgUE9SVE1FOiBmaWxsIGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBzeXN0ZW0n cyBDKysgbGluayBjaGFyYWN0ZXJpc3RpY3MKLSsgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVy IHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQot KyAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPXllcwotKyAgICBjYXNlICRob3N0X29zIGlu Ci0rICAgICAgYWl4MyopCi0rICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJy YXJ5IHN1cHBvcnQKLSsgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAg ICAgIDs7Ci0rICAgICAgYWl4W1s0LTldXSopCi0rICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUi ID0gaWE2NDsgdGhlbgotKyAgICAgICAgICAjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9lcyBydW4g dGltZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0Ci0rICAgICAgICAgICMgaGF2ZSB0 byBkbyBhbnl0aGluZyBzcGVjaWFsLgotKyAgICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5n PW5vCi0rICAgICAgICAgIGV4cF9zeW1fZmxhZz0nLUJleHBvcnQnCi0rICAgICAgICAgIG5vX2Vu dHJ5X2ZsYWc9IiIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlu a2luZz1ubwotKwotKyAgICAgICAgICAjIFRlc3QgaWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVu IHRpbWUgbGlua2luZyBvciBub3JtYWwKLSsgICAgICAgICAgIyBBSVggc3R5bGUgbGlua2luZy4g SWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExERkxBR1MsIHdlCi0rICAgICAgICAgICMgbmVlZCB0 byBkbyBydW50aW1lIGxpbmtpbmcuCi0rICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5b WzIzXV18YWl4NC5bWzIzXV0uKnxhaXhbWzUtOV1dKikKLSsJICAgIGZvciBsZF9mbGFnIGluICRM REZMQUdTOyBkbwotKwkgICAgICBjYXNlICRsZF9mbGFnIGluCi0rCSAgICAgICotYnJ0bCopCi0r CSAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz15ZXMKLSsJICAgICAgICBicmVhawotKwkg ICAgICAgIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGRvbmUKLSsJICAgIDs7Ci0rICAgICAgICAg IGVzYWMKLSsKLSsgICAgICAgICAgZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKLSsgICAgICAgICAg bm9fZW50cnlfZmxhZz0nLWJub2VudHJ5JwotKyAgICAgICAgZmkKLSsKLSsgICAgICAgICMgV2hl biBsYXJnZSBleGVjdXRhYmxlcyBvciBzaGFyZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBj YW4KLSsgICAgICAgICMgaGF2ZSBwcm9ibGVtcyBjcmVhdGluZyB0aGUgdGFibGUgb2YgY29udGVu dHMuICBJZiBsaW5raW5nIGEgbGlicmFyeQotKyAgICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMg aW4gImVycm9yIFRPQyBvdmVyZmxvdyIgYWRkIC1tbWluaW1hbC10b2MgdG8KLSsgICAgICAgICMg Q1hYRkxBR1MvQ0ZMQUdTIGZvciBnKysvZ2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMg bm90Ci0rICAgICAgICAjIGVub3VnaCB0byBmaXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJiaWd0 b2MgdG8gTERGTEFHUy4KLSsKLSsgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JycKLSsgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rICAgICAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcwotKyAgICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9JzonCi0rICAgICAgICBf TFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKLSsgICAgICAgIF9MVF9UQUdWQVIo ZmlsZV9saXN0X3NwZWMsICQxKT0nJHt3bH0tZiwnCi0rCi0rICAgICAgICBpZiB0ZXN0ICIkR1hY IiA9IHllczsgdGhlbgotKyAgICAgICAgICBjYXNlICRob3N0X29zIGluIGFpeDQuW1swMTJdXXxh aXg0LltbMDEyXV0uKikKLSsgICAgICAgICAgIyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBB SVggNC4yIGFuZCBsb3dlciwgdGhlIGNoZWNrCi0rICAgICAgICAgICMgYmVsb3cgZm9yIGJyb2tl biBjb2xsZWN0MiBkb2Vzbid0IHdvcmsgdW5kZXIgNC4zKwotKwkgIGNvbGxlY3QybmFtZT1gJHtD Q30gLXByaW50LXByb2ctbmFtZT1jb2xsZWN0MmAKLSsJICBpZiB0ZXN0IC1mICIkY29sbGVjdDJu YW1lIiAmJgotKwkgICAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgJEdSRVAgcmVzb2x2ZV9s aWJfbmFtZSA+L2Rldi9udWxsCi0rCSAgdGhlbgotKwkgICAgIyBXZSBoYXZlIHJld29ya2VkIGNv bGxlY3QyCi0rCSAgICA6Ci0rCSAgZWxzZQotKwkgICAgIyBXZSBoYXZlIG9sZCBjb2xsZWN0Mgot KwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT11bnN1cHBvcnRlZAotKwkgICAg IyBJdCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRoZSB1bmluc3Rh bGxlZAotKwkgICAgIyBwYXRoIGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGxpYnBhdGguICBTZXR0aW5n IGhhcmRjb2RlX21pbnVzX0wKLSsJICAgICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2lu ZwotKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0rCSAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwotKwkgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9Ci0rCSAgZmkKLSsgICAg ICAgICAgZXNhYwotKyAgICAgICAgICBzaGFyZWRfZmxhZz0nLXNoYXJlZCcKLSsJICBpZiB0ZXN0 ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJICAgIHNoYXJlZF9mbGFn PSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJwotKwkgIGZpCi0rICAgICAgICBlbHNlCi0rICAgICAg ICAgICMgbm90IHVzaW5nIGdjYwotKyAgICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2 NDsgdGhlbgotKwkgICMgVmlzdWFsQWdlIEMrKywgVmVyc2lvbiA1LjUgZm9yIEFJWCA1TCBmb3Ig SUEtNjQsIEJldGEgMyBSZWxlYXNlCi0rCSAgIyBjaG9rZXMgb24gLVdsLC1HLiBUaGUgZm9sbG93 aW5nIGxpbmUgaXMgY29ycmVjdDoKLSsJICBzaGFyZWRfZmxhZz0nLUcnCi0rICAgICAgICAgIGVs c2UKLSsJICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgot KwkgICAgICBzaGFyZWRfZmxhZz0nJHt3bH0tRycKLSsJICAgIGVsc2UKLSsJICAgICAgc2hhcmVk X2ZsYWc9JyR7d2x9LWJNOlNSRScKLSsJICAgIGZpCi0rICAgICAgICAgIGZpCi0rICAgICAgICBm aQotKwotKyAgICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0n JHt3bH0tYmV4cGFsbCcKLSsgICAgICAgICMgSXQgc2VlbXMgdGhhdCAtYmV4cGFsbCBkb2VzIG5v dCBleHBvcnQgc3ltYm9scyBiZWdpbm5pbmcgd2l0aAotKyAgICAgICAgIyB1bmRlcnNjb3JlIChf KSwgc28gaXQgaXMgYmV0dGVyIHRvIGdlbmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xzIHRvCi0rCSMg ZXhwb3J0LgotKyAgICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT15 ZXMKLSsgICAgICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhl bgotKyAgICAgICAgICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW50aW1l IGxvYWRpbmcgZmxhZ3MgKC1icnRsKSwKLSsgICAgICAgICAgIyAtYmVyb2sgd2lsbCBsaW5rIHdp dGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgotKyAgICAgICAg ICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Jy1iZXJvaycKLSsgICAgICAg ICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVk IGluIGFuIGVtcHR5Ci0rICAgICAgICAgICMgZXhlY3V0YWJsZS4KLSsgICAgICAgICAgX0xUX1NZ U19NT0RVTEVfUEFUSF9BSVgKLSsgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCi0r Ci0rICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLW8g JG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRy eV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxh Z30iICE9ICJ4IjsgdGhlbiAkRUNITyAiWCR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iIHwg JFhzZWQ7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xz ICRzaGFyZWRfZmxhZyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgaWYgdGVzdCAiJGhvc3Rf Y3B1IiA9IGlhNjQ7IHRoZW4KLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPScke3dsfS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicKLSsJICAgIF9MVF9UQUdW QVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0iLXogbm9kZWZzIgotKwkgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1 dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFn IicgJGNvbXBpbGVyX2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30gJyJcJHt3bH0k ZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMiCi0rICAgICAgICAgIGVsc2UKLSsJICAgICMg RGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBh bgotKwkgICAgIyBlbXB0eSBleGVjdXRhYmxlLgotKwkgICAgX0xUX1NZU19NT0RVTEVfUEFUSF9B SVgKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3ds fS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwkgICAgIyBXYXJuaW5nIC0gd2l0 aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywKLSsJICAgICMgLWJl cm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGli cmFyeS4KLSsJICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJl cm5vdG9rJwotKwkgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3 bH0tYmVyb2snCi0rCSAgICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNo YXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKLSsJICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWMsICQxKT0nJGNvbnZlbmllbmNlJwotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHNfbmVlZF9sYywgJDEpPXllcwotKwkgICAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJ WCB0cmFkaXRpb25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkCi0rCSAgICAjIGxpYnJhcmllcy4KLSsJ ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxh ZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5v ZW50cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5k ZWZpbmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFz ZS5hICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCi0rICAgICAgICAgIGZpCi0rICAgICAgICBmaQot KyAgICAgICAgOzsKLSsKLSsgICAgICBiZW9zKikKLSsJaWYgJExEIC0taGVscCAyPiYxIHwgJEdS RVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgIF9M VF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAotKwkgICMgSm9z ZXBoIEJlY2tlbmJhY2ggPGpyYjNAYmVzdC5jb20+IHNheXMgc29tZSByZWxlYXNlcyBvZiBnY2MK LSsJICAjIHN1cHBvcnQgLS11bmRlZmluZWQuICBUaGlzIGRlc2VydmVzIHNvbWUgaW52ZXN0aWdh dGlvbi4gIEZJWE1FCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1ub3N0 YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNv bmFtZSAtbyAkbGliJwotKwllbHNlCi0rCSAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwot KwlmaQotKwk7OwotKwotKyAgICAgIGNob3J1cyopCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFt ZSBpbgotKyAgICAgICAgICAqKQotKwkgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh cnkgc3VwcG9ydAotKwkgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICA7OwotKyAg ICAgICAgZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHcz MiogfCBjZWdjYyopCi0rICAgICAgICAjIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLAotKyAgICAgICAgIyBhcyB0aGVyZSBp cyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCi0rICAgICAgICBfTFRfVEFHVkFSKGFs bG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKLSsgICAgICAgIF9MVF9UQUdWQVIo YWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KLSsgICAgICAgIF9MVF9UQUdWQVIoZW5hYmxl X3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPXllcwotKwotKyAgICAgICAgaWYgJExE IC0taGVscCAyPiYxIHwgJEdSRVAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgotKyAg ICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRs aWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRv LWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCi0rICAgICAg ICAgICMgSWYgdGhlIGV4cG9ydC1zeW1ib2xzIGZpbGUgYWxyZWFkeSBpcyBhIC5kZWYgZmlsZSAo MXN0IGxpbmUKLSsgICAgICAgICAgIyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFzIGlzOyBvdGhlcndp c2UsIHByZXBlbmQuLi4KLSsgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRz LCAkMSk9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0 aGVuCi0rCSAgICBjcCAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7 Ci0rICAgICAgICAgIGVsc2UKLSsJICAgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRz b25hbWUuZGVmOwotKwkgICAgY2F0ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29iamRpci8k c29uYW1lLmRlZjsKLSsgICAgICAgICAgZml+Ci0rICAgICAgICAgICRDQyAtc2hhcmVkIC1ub3N0 ZGxpYiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpk aXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1p bXBsaWIgLVhsaW5rZXIgJGxpYicKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgX0xUX1RBR1ZB UihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgICAgZmkKLSsgICAgICAgIDs7Ci0rICAgICAgZGFy d2luKiB8IHJoYXBzb2R5KikKLSsgICAgICAgIF9MVF9EQVJXSU5fTElOS0VSX0ZFQVRVUkVTKCQx KQotKwk7OwotKwotKyAgICAgIGRndXgqKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4K LSsgICAgICAgICAgZWMrKyopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJy YXJ5IHN1cHBvcnQKLSsJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIDs7 Ci0rICAgICAgICAgIGdoY3gqKQotKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJ ICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xU X1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgICAgOzsKLSsgICAgICAgICAgKikKLSsJICAg ICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAg IDs7Ci0rCi0rICAgICAgZnJlZWJzZFtbMTJdXSopCi0rICAgICAgICAjIEMrKyBzaGFyZWQgbGli cmFyaWVzIHJlcG9ydGVkIHRvIGJlIGZhaXJseSBicm9rZW4gYmVmb3JlCi0rCSMgc3dpdGNoIHRv IEVMRgotKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgICAgOzsK LSsKLSsgICAgICBmcmVlYnNkLWVsZiopCi0rICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k c19uZWVkX2xjLCAkMSk9bm8KLSsgICAgICAgIDs7Ci0rCi0rICAgICAgZnJlZWJzZCogfCBkcmFn b25mbHkqKQotKyAgICAgICAgIyBGcmVlQlNEIDMgYW5kIGxhdGVyIHVzZSBHTlUgQysrIGFuZCBH TlUgbGQgd2l0aCBzdGFuZGFyZCBFTEYKLSsgICAgICAgICMgY29udmVudGlvbnMKLSsgICAgICAg IF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9eWVzCi0rICAgICAgICA7OwotKwotKyAgICAgIGdu dSopCi0rICAgICAgICA7OwotKwotKyAgICAgIGhwdXg5KikKLSsgICAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsg ICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsgICAg ICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCi0r ICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzICMgTm90IGluIHRoZSBzZWFyY2ggUEFU SCwKLSsJCQkJICAgICAgICAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0Ci0rCQkJCSAgICAgICAg ICAgICAjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotKwotKyAgICAgICAgY2FzZSAkY2NfYmFz ZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKyAgICAgICAgICAgICMgRklYTUU6IGluc2VydCBw cm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hs aWJzLCAkMSk9bm8KLSsgICAgICAgICAgICA7OwotKyAgICAgICAgICBhQ0MqKQotKyAgICAgICAg ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29u YW1lfiRDQyAtYiAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVj dHMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwg bXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwotKyAgICAgICAgICAgICMgQ29tbWFuZHMg dG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsgICAg ICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdz IGFyZSB1c2VkIHdoZW4KLSsgICAgICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4K LSsgICAgICAgICAgICAjCi0rICAgICAgICAgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBi ZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKyAgICAgICAgICAgICMgZXhw bGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0 aGVtCi0rICAgICAgICAgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdl dCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQotKyAgICAgICAgICAgICMgZGVwZW5kZW5jaWVzLgot KyAgICAgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gKCRDQyAtYiAk Q0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSkgfCAkRUdSRVAgIlwtTCJgOyBsaXN0PSIi OyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlz dD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9u ZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKLSsgICAgICAgICAgICA7OwotKyAgICAgICAgICAq KQotKyAgICAgICAgICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgICAgICAgICAg ICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZX4kQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRp ciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGly LyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAg ICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBs aWJyYXJ5IHN1cHBvcnQKLSsgICAgICAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9 bm8KLSsgICAgICAgICAgICBmaQotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAg ICAgICA7OwotKwotKyAgICAgIGhwdXgxMCp8aHB1eDExKikKLSsgICAgICAgIGlmIHRlc3QgJHdp dGhfZ251X2xkID0gbm87IHRoZW4KLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKwotKyAgICAgICAgICBjYXNlICRob3N0X2NwdSBp bgotKyAgICAgICAgICAgIGhwcGEqNjQqfGlhNjQqKQotKyAgICAgICAgICAgICAgOzsKLSsgICAg ICAgICAgICAqKQotKwkgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywg JDEpPScke3dsfS1FJwotKyAgICAgICAgICAgICAgOzsKLSsgICAgICAgICAgZXNhYwotKyAgICAg ICAgZmkKLSsgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgICAgIGhwcGEqNjQqfGlh NjQqKQotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KLSsg ICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAg ICAgICAgICAgIDs7Ci0rICAgICAgICAgICopCi0rICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2Rp cmVjdF9hYnNvbHV0ZSwgJDEpPXllcwotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bWludXNfTCwgJDEpPXllcyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rCQkJCQkgICAgICAg ICAjIGJ1dCBhcyB0aGUgZGVmYXVsdAotKwkJCQkJICAgICAgICAgIyBsb2NhdGlvbiBvZiB0aGUg bGlicmFyeS4KLSsgICAgICAgICAgICA7OwotKyAgICAgICAgZXNhYwotKwotKyAgICAgICAgY2Fz ZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0 IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywg JDEpPW5vCi0rCSAgICA7OwotKyAgICAgICAgICBhQ0MqKQotKwkgICAgY2FzZSAkaG9zdF9jcHUg aW4KLSsJICAgICAgaHBwYSo2NCopCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkg ICAgICAgIDs7Ci0rCSAgICAgIGlhNjQqKQotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0 aCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAgICA7OwotKwkgICAgICAqKQotKwkgICAgICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFt ZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAg ICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJv ZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAjIHdoYXQgImhpZGRlbiIgbGli cmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICMgbGlu a2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAgIwotKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFw cGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkgICAgIyBl eHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlw IHRoZW0KLSsJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5j bHVkZWQgaW4gdGhlIGxpYnJhcnkKLSsJICAgICMgZGVwZW5kZW5jaWVzLgotKwkgICAgb3V0cHV0 X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3Qu JG9iamV4dCAyPiYxKSB8ICRHUkVQICJcLUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0 OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9i amV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwg JFhzZWQnCi0rCSAgICA7OwotKyAgICAgICAgICAqKQotKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5 ZXM7IHRoZW4KLSsJICAgICAgaWYgdGVzdCAkd2l0aF9nbnVfbGQgPSBubzsgdGhlbgotKwkgICAg ICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rCSAgICAgICAgICBocHBhKjY0KikKLSsJICAgICAgICAg ICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1m UElDICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICAgICAg ICA7OwotKwkgICAgICAgICAgaWE2NCopCi0rCSAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNv bmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAgICAg ICAgOzsKLSsJICAgICAgICAgICopCi0rCSAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFt ZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAg ICAgICAgICA7OwotKwkgICAgICAgIGVzYWMKLSsJICAgICAgZmkKLSsJICAgIGVsc2UKLSsJICAg ICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICAgIF9M VF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIGZpCi0rCSAgICA7OwotKyAgICAgICAg ZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgICBpbnRlcml4W1szLTldXSopCi0rCV9MVF9UQUdW QVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBh dGhfdmFyLCAkMSk9bm8KLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCV9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LUUnCi0rCSMgSGFjazogT24gSW50ZXJpeCAzLngsIHdlIGNhbm5v dCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEgYnJva2VuIGdjYy4KLSsJIyBJbnN0ZWFkLCBzaGFy ZWQgbGlicmFyaWVzIGFyZSBsb2FkZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQot KwkjIGRlZmF1bHQpIGFuZCByZWxvY2F0ZWQgaWYgdGhleSBjb25mbGljdCwgd2hpY2ggaXMgYSBz bG93IHZlcnkgbWVtb3J5Ci0rCSMgY29uc3VtaW5nIGFuZCBmcmFnbWVudGluZyBwcm9jZXNzLiAg VG8gYXZvaWQgdGhpcywgd2UgcGljayBhIHJhbmRvbSwKLSsJIyAyNTYgS2lCLWFsaWduZWQgaW1h Z2UgYmFzZSBiZXR3ZWVuIDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQgbGluawotKwkjIHRp bWUuICBNb3ZpbmcgdXAgZnJvbSAweDEwMDAwMDAwIGFsc28gYWxsb3dzIG1vcmUgc2JyaygyKSBz cGFjZS4KLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19m bGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3 bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsg MTM0MjE3NzI4MGAgLW8gJGxpYicKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAk MSk9J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRwdXRfb2JqZGlyLyRzb25hbWUu ZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3ltYm9scy1maWxlLCRvdXRwdXRf b2JqZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQk fSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCi0rCTs7Ci0rICAg ICAgaXJpeDUqIHwgaXJpeDYqKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAg ICAgICAgQ0MqKQotKwkgICAgIyBTR0kgQysrCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAtYWxsIC1tdWx0aWdvdCAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29u YW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3Ry aW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRp b25zIC1vICRsaWInCi0rCi0rCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBm aWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICMgIkNDIC1hciIsIHdoZXJlICJDQyIg aXMgdGhlIElSSVggQysrIGNvbXBpbGVyLiAgVGhpcyBpcwotKwkgICAgIyBuZWNlc3NhcnkgdG8g bWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCi0rCSAgICAjIGlu IHRoZSBhcmNoaXZlLgotKwkgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtYXIgLVdSLC11IC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgICA7OwotKyAgICAgICAgICAq KQotKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsJICAgICAgaWYgdGVzdCAiJHdp dGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0k c29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9u ICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtv dXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJICAgICAgZWxzZQotKwkgICAg ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIg JiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgIC1v ICRsaWInCi0rCSAgICAgIGZpCi0rCSAgICBmaQotKwkgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9k ZXBsaWJzLCAkMSk9eWVzCi0rCSAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxp YmRpcicKLSsgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEp PToKLSsgICAgICAgIF9MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPXllcwotKyAgICAgICAg OzsKLSsKLSsgICAgICBsaW51eCogfCBrKmJzZCotZ251KQotKyAgICAgICAgY2FzZSAkY2NfYmFz ZW5hbWUgaW4KLSsgICAgICAgICAgS0NDKikKLSsJICAgICMgS3VjayBhbmQgQXNzb2NpYXRlcywg SW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKLSsKLSsJICAgICMgS0NDIHdpbGwgb25seSBjcmVhdGUg YSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKLSsJICAgICMgZW5kcyB3aXRoICIu c28iIChvciAiLnNsIiBmb3IgSFAtVVgpLCBzbyByZW5hbWUgdGhlIGxpYnJhcnkKLSsJICAgICMg dG8gaXRzIHByb3BlciBuYW1lICh3aXRoIHZlcnNpb24pIGFmdGVyIGxpbmtpbmcuCi0rCSAgICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwg JFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBs aWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWIn Ci0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ndGVtcGV4dD1gZWNo byAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbW14oKTAtOUEtWmEtent9XV1cKS9cXFxc XDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4u Ki8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWIgJHt3 bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHM7IG12IFwkdGVtcGxpYiAkbGli JwotKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRw dXQgdGhhdCBsaXN0cwotKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZp bGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGli cmFyeS4KLSsJICAgICMKLSsJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkg dG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KLSsJICAgICMgZXhwbGljaXRseSBsaW5raW5n IHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCi0rCSAgICAjIGZy b20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJy YXJ5Ci0rCSAgICAjIGRlcGVuZGVuY2llcy4KLSsJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21k PSd0ZW1wbGlzdD1gJENDICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVz dCRzaGFyZWRfZXh0IDI+JjEgfCAkR1JFUCAibGQiYDsgcm0gLWYgbGliY29uZnRlc3Qkc2hhcmVk X2V4dDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0 LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAk eiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCi0rCi0rCSAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicK LSsJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1l eHBvcnQtZHluYW1pYycKLSsKLSsJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0 IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZwotKwkgICAgIyAiQ0MgLUJzdGF0aWMiLCB3aGVy ZSAiQ0MiIGlzIHRoZSBLQUkgQysrIGNvbXBpbGVyLgotKwkgICAgX0xUX1RBR1ZBUihvbGRfYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtQnN0YXRpYyAtbyAkb2xkbGliICRvbGRvYmpzJwotKwkgICAg OzsKLSsJICBpY3BjKiB8IGVjcGMqICkKLSsJICAgICMgSW50ZWwgQysrCi0rCSAgICB3aXRoX2du dV9sZD15ZXMKLSsJICAgICMgdmVyc2lvbiA4LjAgYW5kIGFib3ZlIG9mIGljcGMgY2hva2Ugb24g bXVsdGlwbHkgZGVmaW5lZCBzeW1ib2xzCi0rCSAgICAjIGlmIHdlIGFkZCAkcHJlZGVwX29iamVj dHMgYW5kICRwb3N0ZGVwX29iamVjdHMsIGhvd2V2ZXIgNy4xIGFuZAotKwkgICAgIyBlYXJsaWVy IGRvIG5vdCBhZGQgdGhlIG9iamVjdHMgdGhlbXNlbHZlcy4KLSsJICAgIGNhc2UgYCRDQyAtViAy PiYxYCBpbgotKwkgICAgICAqIlZlcnNpb24gNy4iKikKLSsJICAgICAgICBfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRz b25hbWUgLW8gJGxpYicKLSsJCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSck Q0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWlu LXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJCTs7Ci0rCSAgICAg ICopICAjIFZlcnNpb24gOC4wIG9yIG5ld2VyCi0rCSAgICAgICAgdG1wX2lkeW49Ci0rCSAgICAg ICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsJCSAgaWE2NCopIHRtcF9pZHluPScgLWlfZHluYW1pYyc7 OwotKwkJZXNhYwotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkJyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBz eW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCciJHRtcF9pZHluIicgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1i b2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rCQk7OwotKwkgICAgZXNhYwot KwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rCSAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRp cicKLSsJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9 LS1leHBvcnQtZHluYW1pYycKLSsJICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJHt3bH0tLW5vLXdob2xl LWFyY2hpdmUnCi0rCSAgICA7OwotKyAgICAgICAgICBwZ0NDKiB8IHBnY3BwKikKLSsgICAgICAg ICAgICAjIFBvcnRsYW5kIEdyb3VwIEMrKyBjb21waWxlcgotKwkgICAgY2FzZSBgJENDIC1WYCBp bgotKwkgICAgKnBnQ0NcIFtbMS01XV0qIHwgKnBnY3BwXCBbWzEtNV1dKikKLSsJICAgICAgX0xU X1RBR1ZBUihwcmVsaW5rX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KLSsJCXJtIC1y ZiAkdHBsZGlyfgotKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIg JHRwbGRpciAkb2JqcyAkbGlib2JqcyAkY29tcGlsZV9kZXBsaWJzfgotKwkJY29tcGlsZV9jb21t YW5kPSIkY29tcGlsZV9jb21tYW5kIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGAi JwotKwkgICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBs YXRlLmRpcn4KLSsJCXJtIC1yZiAkdHBsZGlyfgotKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0t aW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkb2xkb2JqcyRvbGRfZGVwbGlic34KLSsJCSRBUiAk QVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUg XCoubyB8ICROTDJTUGB+Ci0rCQkkUkFOTElCICRvbGRsaWInCi0rCSAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+Ci0rCQlybSAtcmYgJHRwbGRp cn4KLSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRjb252ZW5pZW5jZSAkcG9zdGRlcF9v YmplY3RzfgotKwkJJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCAkTkwyU1BgICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgLW8gJGxpYicK LSsJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J3RwbGRpcj1UZW1w bGF0ZS5kaXJ+Ci0rCQlybSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAt LWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzICRjb252ZW5pZW5jZSAkcG9zdGRlcF9vYmplY3RzfgotKwkJJENDIC1zaGFyZWQgJHBpY19m bGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1l IFwqLm8gfCAkTkwyU1BgICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAke3dsfSRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRf c3ltYm9scyAtbyAkbGliJwotKwkgICAgICA7OwotKwkgICAgKikgIyBWZXJzaW9uIDYgd2lsbCB1 c2Ugd2VhayBzeW1ib2xzCi0rCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAt byAkbGliJwotKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJEND IC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7 d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJ ICAgICAgOzsKLSsJICAgIGVzYWMKLSsKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgJDEpPScke3dsfS0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkgICAgX0xUX1RB R1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWlj JwotKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0t d2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBc IiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBk b25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUn Ci0rICAgICAgICAgICAgOzsKLSsJICBjeHgqKQotKwkgICAgIyBDb21wYXEgQysrCi0rCSAgICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBz eW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25h bWUgIC1vICRsaWIgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMn Ci0rCi0rCSAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKwkgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1ycGF0aCAkbGliZGlyJwotKwkgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKwotKwkgICAgIyBDb21tYW5k cyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkg ICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUg dXNlZCB3aGVuCi0rCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAgICMKLSsJ ICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNv bXBpbGVyIGZyb20KLSsJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmls ZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCi0rCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0 aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSAgICAjIGRlcGVu ZGVuY2llcy4KLSsJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1z aGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAibGQiYDsgdGVt cGxpc3Q9YCRFQ0hPICJYJHRlbXBsaXN0IiB8ICRYc2VkIC1lICJzL1woXi4qbGQuKlwpXCggLips ZCAuKiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGlu IGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0 PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCi0rCSAgICA7 OwotKwkgIHhsKikKLSsJICAgICMgSUJNIFhMIDguMCBvbiBQUEMsIHdpdGggR05VIGxkCi0rCSAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgg JHt3bH0kbGliZGlyJwotKwkgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMs ICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1xbWtzaHJvYmogJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICBpZiB0ZXN0ICJ4JHN1cHBv cnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCi0rCSAgICAgIF9MVF9UQUdWQVIoYXJj aGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIv JGxpYm5hbWUudmVyfgotKwkJY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkv XDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkJZWNobyAibG9jYWw6ICo7 IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCQkkQ0MgLXFta3Nocm9iaiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg JHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8g JGxpYicKLSsJICAgIGZpCi0rCSAgICA7OwotKwkgICopCi0rCSAgICBjYXNlIGAkQ0MgLVYgMj4m MSB8IHNlZCA1cWAgaW4KLSsJICAgICpTdW5cIEMqKQotKwkgICAgICAjIFN1biBDKysgNS45Ci0r CSAgICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC16ZGVmcycKLSsJICAg ICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191bmRlZmluZWRf ZmxhZ30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICBfTFRfVEFHVkFSKGFy Y2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgk c29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0k ZXhwb3J0X3N5bWJvbHMnCi0rCSAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPSctUiRsaWJkaXInCi0rCSAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9m bGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9y IGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2Nv bnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdf Y29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgICAgIF9MVF9UQUdW QVIoY29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9eWVzCi0rCi0rCSAgICAgICMgTm90IHN1cmUg d2hldGhlciBzb21ldGhpbmcgYmFzZWQgb24KLSsJICAgICAgIyAkQ0MgJENGTEFHUyAtdiBjb25m dGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMQotKwkgICAgICAjIHdv dWxkIGJlIGJldHRlci4KLSsJICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCi0r Ci0rCSAgICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUg Y3JlYXRlZCB1c2luZwotKwkgICAgICAjICJDQyAteGFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgU3Vu IEMrKyBjb21waWxlci4gIFRoaXMgaXMKLSsJICAgICAgIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJl IGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCi0rCSAgICAgICMgaW4gdGhlIGFy Y2hpdmUuCi0rCSAgICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLXhh ciAtbyAkb2xkbGliICRvbGRvYmpzJwotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAgOzsK LSsJZXNhYwotKwk7OwotKwotKyAgICAgIGx5bnhvcyopCi0rICAgICAgICAjIEZJWE1FOiBpbnNl cnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubwotKwk7OwotKwotKyAgICAgIG04OGsqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHBy b3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywg JDEpPW5vCi0rCTs7Ci0rCi0rICAgICAgbXZzKikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1l IGluCi0rICAgICAgICAgIGN4eCopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBs aWJyYXJ5IHN1cHBvcnQKLSsJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAg IDs7Ci0rCSAgKikKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgICAgOzsKLSsJZXNh YwotKwk7OwotKwotKyAgICAgIG5ldGJzZCopCi0rICAgICAgICBpZiBlY2hvIF9fRUxGX18gfCAk Q0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKwkgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAgLW8gJGxpYiAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkbGlua2VyX2ZsYWdzJwotKwkg IHdsYXJjPQotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSct UiRsaWJkaXInCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsJICBf TFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKwlmaQotKwkjIFdvcmth cm91bmQgc29tZSBicm9rZW4gcHJlLTEuNSB0b29sY2hhaW5zCi0rCW91dHB1dF92ZXJib3NlX2xp bmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRH UkVQIGNvbmZ0ZXN0LiRvYmpleHQgfCAkU0VEIC1lICJzOi1sZ2NjIC1sYyAtbGdjYzo6IicKLSsJ OzsKLSsKLSsgICAgICAqbnRvKiB8ICpxbngqKQotKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxp YnMsICQxKT15ZXMKLSsJOzsKLSsKLSsgICAgICBvcGVuYnNkMiopCi0rICAgICAgICAjIEMrKyBz aGFyZWQgbGlicmFyaWVzIGFyZSBmYWlybHkgYnJva2VuCi0rCV9MVF9UQUdWQVIobGRfc2hsaWJz LCAkMSk9bm8KLSsJOzsKLSsKLSsgICAgICBvcGVuYnNkKikKLSsJaWYgdGVzdCAtZiAvdXNyL2xp YmV4ZWMvbGQuc287IHRoZW4KLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXll cwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rCSAgX0xU X1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKLSsJICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRs aWInCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9 LXJwYXRoLCRsaWJkaXInCi0rCSAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAt IHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNk Mi44LXBvd2VycGMiOyB0aGVuCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9s cy1maWxlLCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwkgICAgX0xUX1RBR1ZBUihleHBvcnRf ZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKLSsJICAgIF9MVF9UQUdWQVIod2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVu Y2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKLSsJICBmaQotKwkgIG91dHB1dF92ZXJi b3NlX2xpbmtfY21kPWVjaG8KLSsJZWxzZQotKwkgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9 bm8KLSsJZmkKLSsJOzsKLSsKLSsgICAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICAgICAg ICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBLQ0MqKQotKwkgICAgIyBLdWNrIGFu ZCBBc3NvY2lhdGVzLCBJbmMuIChLQUkpIEMrKyBDb21waWxlcgotKwotKwkgICAgIyBLQ0Mgd2ls bCBvbmx5IGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5IGlmIHRoZSBvdXRwdXQgZmlsZQotKwkgICAg IyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBIUC1VWCksIHNvIHJlbmFtZSB0aGUgbGli cmFyeQotKwkgICAgIyB0byBpdHMgcHJvcGVyIG5hbWUgKHdpdGggdmVyc2lvbikgYWZ0ZXIgbGlu a2luZy4KLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9J3RlbXBleHQ9YGVjaG8g JHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW1teKCkwLTlBLVphLXp7fV1dXCkvXFxcXFwx L2cnXCcnYDsgdGVtcGxpYj1gZWNobyAiJGxpYiIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4u Ki8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12 IFwkdGVtcGxpYiAkbGliJwotKwotKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rCi0rCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5p bmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICMgdGhlIEtB SSBDKysgY29tcGlsZXIuCi0rCSAgICBjYXNlICRob3N0IGluCi0rCSAgICAgIG9zZjMqKSBfTFRf VEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1Cc3RhdGljIC1vICRvbGRsaWIgJG9s ZG9ianMnIDs7Ci0rCSAgICAgICopIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSck Q0MgLW8gJG9sZGxpYiAkb2xkb2JqcycgOzsKLSsJICAgIGVzYWMKLSsJICAgIDs7Ci0rICAgICAg ICAgIFJDQyopCi0rCSAgICAjIFJhdGlvbmFsIEMrKyAyLjQuMQotKwkgICAgIyBGSVhNRTogaW5z ZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGli cywgJDEpPW5vCi0rCSAgICA7OwotKyAgICAgICAgICBjeHgqKQotKwkgICAgY2FzZSAkaG9zdCBp bgotKwkgICAgICBvc2YzKikKLSsJICAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9m bGFnLCAkMSk9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwotKwkgICAgICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRf ZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5n IiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRh dGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJICAg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBh dGggJHt3bH0kbGliZGlyJwotKwkJOzsKLSsJICAgICAgKikKLSsJICAgICAgICBfTFRfVEFHVkFS KGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0rCSAg ICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3Vu ZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIk dmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAt dXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0r CSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2ZvciBpIGluIGBj YXQgJGV4cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJv bCAiXCRpIiA+PiAkbGliLmV4cDsgZG9uZX4KLSsJICAgICAgICAgIGVjaG8gIi1oaWRkZW4iPj4g JGxpYi5leHB+Ci0rCSAgICAgICAgICAkQ0MgLXNoYXJlZCRhbGxvd191bmRlZmluZWRfZmxhZyAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lICR7d2x9LWlucHV0ICR7d2x9JGxpYi5leHAg IGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5n IiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25z IC1vICRsaWJ+Ci0rCSAgICAgICAgICAkUk0gJGxpYi5leHAnCi0rCSAgICAgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1ycGF0aCAkbGliZGlyJwotKwkJOzsK LSsJICAgIGVzYWMKLSsKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv ciwgJDEpPToKLSsKLSsJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZl cmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMs IG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgIyBsaW5raW5nIGEg c2hhcmVkIGxpYnJhcnkuCi0rCSAgICAjCi0rCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRv IGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCi0rCSAgICAjIGV4cGxpY2l0 bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQot KwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBp biB0aGUgbGlicmFyeQotKwkgICAgIyBkZXBlbmRlbmNpZXMuCi0rCSAgICBvdXRwdXRfdmVyYm9z ZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9i amV4dCAyPiYxIHwgJEdSRVAgImxkIiB8ICRHUkVQIC12ICJsZDoiYDsgdGVtcGxpc3Q9YCRFQ0hP ICJYJHRlbXBsaXN0IiB8ICRYc2VkIC1lICJzL1woXi4qbGQuKlwpXCggLipsZC4qJFwpL1wxLyJg OyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9i amV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7 ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKLSsJICAgIDs7Ci0rCSAgKikKLSsJ ICAgIGlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhl bgotKwkgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1l eHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwotKwkgICAgICBjYXNlICRob3N0IGluCi0rCSAgICAg ICAgb3NmMyopCi0rCSAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAtbm9zdGRsaWIgJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3 bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVn aXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkJICA7 OwotKwkgICAgICAgICopCi0rCSAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmlu ZyIgJiYgJEVDSE8gIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAg JHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMg LW8gJGxpYicKLSsJCSAgOzsKLSsJICAgICAgZXNhYwotKwotKwkgICAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwot KwkgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rCi0r CSAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0 IHRoYXQgbGlzdHMKLSsJICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZp bGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAgICMgbGlua2luZyBhIHNoYXJlZCBs aWJyYXJ5LgotKwkgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENG TEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKLSsKLSsJICAgIGVs c2UKLSsJICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0r CSAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIGZpCi0rCSAgICA7Owot KyAgICAgICAgZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgICBwc29zKikKLSsgICAgICAgICMg RklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgX0xUX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgICAgOzsKLSsKLSsgICAgICBzdW5vczQqKQot KyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAgIyBT dW4gQysrIDQueAotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBw b3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7OwotKyAgICAg ICAgICBsY2MqKQotKwkgICAgIyBMdWNpZAotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0r CSAgICA7OwotKyAgICAgICAgICAqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAg ICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgICBzb2xhcmlzKikKLSsg ICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIENDKikKLSsJICAgICMgU3Vu IEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKLSsgICAgICAgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kc19uZWVkX2xjLCQxKT15ZXMKLSsJICAgIF9MVF9UQUdWQVIobm9fdW5kZWZp bmVkX2ZsYWcsICQxKT0nIC16ZGVmcycKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICAtaCRzb25hbWUgLW8gJGxpYiAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MnCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAi eyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1wo LipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgot KwkgICAgICAkQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAke3dsfS1NICR7d2x9JGxpYi5l eHAgLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsKLSsJICAgIF9M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rCSAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKwkgICAgY2FzZSAk aG9zdF9vcyBpbgotKwkgICAgICBzb2xhcmlzMi5bWzAtNV1dIHwgc29sYXJpczIuW1swLTVdXS4q KSA7OwotKwkgICAgICAqKQotKwkJIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBh bmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKLSsJCSMgYnV0IHVuZGVyc3RhbmRzIGAteiBsaW5r ZXJfZmxhZycuCi0rCSAgICAgICAgIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJl IDIuNS4xPykKLSsJCV9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nLXog YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKLSsJICAgICAgICA7Owot KwkgICAgZXNhYwotKwkgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0r Ci0rCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKLSsKLSsJICAgICMgQXJjaGl2 ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZwotKwkg ICAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29tcGlsZXIuICBUaGlz IGlzCi0rCSAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRl cyBhcmUgaW5jbHVkZWQKLSsJICAgICMgaW4gdGhlIGFyY2hpdmUuCi0rCSAgICBfTFRfVEFHVkFS KG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC14YXIgLW8gJG9sZGxpYiAkb2xkb2JqcycKLSsJ ICAgIDs7Ci0rICAgICAgICAgIGdjeCopCi0rCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxl cgotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJwotKwotKwkgICAgIyBUaGUgQysrIGNvbXBp bGVyIG11c3QgYmUgdXNlZCB0byBjcmVhdGUgdGhlIGFyY2hpdmUuCi0rCSAgICBfTFRfVEFHVkFS KG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDICRMREZMQUdTIC1hcmNoaXZlIC1vICRvbGRsaWIg JG9sZG9ianMnCi0rCSAgICA7OwotKyAgICAgICAgICAqKQotKwkgICAgIyBHTlUgQysrIGNvbXBp bGVyIHdpdGggU29sYXJpcyBsaW5rZXIKLSsJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRl c3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwkgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVm aW5lZF9mbGFnLCAkMSk9JyAke3dsfS16ICR7d2x9ZGVmcycKLSsJICAgICAgaWYgJENDIC0tdmVy c2lvbiB8ICRHUkVQIC12ICdeMlwuNycgPiAvZGV2L251bGw7IHRoZW4KLSsJICAgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJExERkxBR1Mg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJwotKwkgICAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+ Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhw fmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+Ci0rCQkgICRDQyAtc2hhcmVkIC1ub3N0 ZGxpYiAke3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcK LSsKLSsJICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3Nl IG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywg b2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAgICAgIyBsaW5raW5n IGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRD QyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCIn Ci0rCSAgICAgIGVsc2UKLSsJICAgICAgICAjIGcrKyAyLjcgYXBwZWFycyB0byByZXF1aXJlIGAt RycgTk9UIGAtc2hhcmVkJyBvbiB0aGlzCi0rCSAgICAgICAgIyBwbGF0Zm9ybS4KLSsJICAgICAg ICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgLW5vc3RkbGliICRMREZMQUdT ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicKLSsJICAgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhw fmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4 cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkJICAkQ0MgLUcgLW5vc3RkbGli ICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwotKwot KwkgICAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0 cHV0IHRoYXQgbGlzdHMKLSsJICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmpl Y3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICAgICAjIGxpbmtpbmcgYSBz aGFyZWQgbGlicmFyeS4KLSsJICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1H ICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCi0rCSAgICAg IGZpCi0rCi0rCSAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEp PScke3dsfS1SICR3bCRsaWJkaXInCi0rCSAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsJCXNvbGFy aXMyLltbMC01XV0gfCBzb2xhcmlzMi5bWzAtNV1dLiopIDs7Ci0rCQkqKQotKwkJICBfTFRfVEFH VkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0 JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKLSsJCSAgOzsKLSsJICAg ICAgZXNhYwotKwkgICAgZmkKLSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7Owot KwotKyAgICBzeXN2NCp1dzIqIHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJlNy5bWzAx XV0uW1sxMF1dKiB8IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLltbMDI0XV0qKQotKyAgICAgIF9M VF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nJHt3bH0teix0ZXh0JwotKyAgICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwotKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgcnVucGF0aF92YXI9J0xEX1JV Tl9QQVRIJwotKwotKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICBDQyopCi0r CSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICBfTFRfVEFHVkFS KGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9z eW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKLSsJICA7OwotKwkqKQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncycKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0n JENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rICAg ICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2 KikKLSsJIyBOb3RlOiBXZSBjYW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwg YmVjYXVzZSB3ZSBkbyBub3QKLSsJIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVz ZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGliYyB0bwotKwkjIGFsd2F5cyBiZSB1bnJlc29sdmVk LCB3aGljaCBtZWFucyBqdXN0IGFib3V0IG5vIGxpYnJhcnkgd291bGQKLSsJIyBldmVyIGxpbmsg Y29ycmVjdGx5LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAotKwkj IHRob3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBo ZWF2eS1oYW5kZWQKLSsJIyBhcyAteiBkZWZzLgotKwlfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9m bGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKLSsJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxh ZywgJDEpPScke3dsfS16LG5vZGVmcycKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9s YywgJDEpPW5vCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0r CV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1SLCRsaWJk aXInCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPSc6JwotKwlf TFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKLSsJX0xUX1RBR1ZBUihleHBvcnRf ZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tQmV4cG9ydCcKLSsJcnVucGF0aF92YXI9J0xE X1JVTl9QQVRIJwotKwotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBDQyopCi0r CSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBv cnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3 bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwot KwkgICAgOzsKLSsJZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgICAgdGFuZGVtKikKLSsgICAgICAg IGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIE5DQyopCi0rCSAgICAjIE5vblN0b3At VVggTkNDIDMuMjAKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgICAgOzsKLSsgICAg ICAgICAgKikKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9y dAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgICAgOzsKLSsgICAgICAg IGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgdnh3b3JrcyopCi0rICAgICAgICAjIEZJWE1F OiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgICAgIF9MVF9UQUdWQVIo bGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICAgIDs7Ci0rCi0rICAgICAgKikKLSsgICAgICAgICMg RklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgX0xUX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICBB Q19NU0dfUkVTVUxUKFskX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKV0pCi0rICAgIHRlc3QgIiRf TFRfVEFHVkFSKGxkX3NobGlicywgJDEpIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KLSsK LSsgICAgX0xUX1RBR1ZBUihHQ0MsICQxKT0iJEdYWCIKLSsgICAgX0xUX1RBR1ZBUihMRCwgJDEp PSIkTEQiCi0rCi0rICAgICMjIENBVkVBVCBFTVBUT1I6Ci0rICAgICMjIFRoZXJlIGlzIG5vIGVu Y2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCi0r ICAgICMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVu bGVzcyB5b3Uga25vdyBleGFjdGx5Ci0rICAgICMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgotKyAg ICBfTFRfU1lTX0hJRERFTl9MSUJERVBTKCQxKQotKyAgICBfTFRfQ09NUElMRVJfUElDKCQxKQot KyAgICBfTFRfQ09NUElMRVJfQ19PKCQxKQotKyAgICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygk MSkKLSsgICAgX0xUX0xJTktFUl9TSExJQlMoJDEpCi0rICAgIF9MVF9TWVNfRFlOQU1JQ19MSU5L RVIoJDEpCi0rICAgIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSCgkMSkKLSsKLSsgICAgX0xU X0NPTkZJRygkMSkKLSsgIGZpICMgdGVzdCAtbiAiJGNvbXBpbGVyIgotKwotKyAgQ0M9JGx0X3Nh dmVfQ0MKLSsgIExEQ1hYPSRMRAotKyAgTEQ9JGx0X3NhdmVfTEQKLSsgIEdDQz0kbHRfc2F2ZV9H Q0MKLSsgIHdpdGhfZ251X2xkPSRsdF9zYXZlX3dpdGhfZ251X2xkCi0rICBsdF9jdl9wYXRoX0xE Q1hYPSRsdF9jdl9wYXRoX0xECi0rICBsdF9jdl9wYXRoX0xEPSRsdF9zYXZlX3BhdGhfTEQKLSsg IGx0X2N2X3Byb2dfZ251X2xkY3h4PSRsdF9jdl9wcm9nX2dudV9sZAotKyAgbHRfY3ZfcHJvZ19n bnVfbGQ9JGx0X3NhdmVfd2l0aF9nbnVfbGQKLStmaSAjIHRlc3QgIiRfbHRfY2F1Z2h0X0NYWF9l cnJvciIgIT0geWVzCi0rCi0rQUNfTEFOR19QT1AKLStdKSMgX0xUX0xBTkdfQ1hYX0NPTkZJRwot KwotKwotKyMgX0xUX1NZU19ISURERU5fTElCREVQUyhbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEZpZ3VyZSBvdXQgImhpZGRlbiIgbGlicmFyeSBk ZXBlbmRlbmNpZXMgZnJvbSB2ZXJib3NlCi0rIyBjb21waWxlciBvdXRwdXQgd2hlbiBsaW5raW5n IGEgc2hhcmVkIGxpYnJhcnkuCi0rIyBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRy YWN0IHRoZSBuZWNlc3NhcnkKLSsjIG9iamVjdHMsIGxpYnJhcmllcyBhbmQgbGlicmFyeSBmbGFn cy4KLSttNF9kZWZ1bihbX0xUX1NZU19ISURERU5fTElCREVQU10sCi0rW200X3JlcXVpcmUoW19M VF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9y ZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdCBiZWluZyBsaW5rZWQ6Ci0rX0xUX1RBR1ZBUihwcmVkZXBf b2JqZWN0cywgJDEpPQotK19MVF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSk9Ci0rX0xUX1RB R1ZBUihwcmVkZXBzLCAkMSk9Ci0rX0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpPQotK19MVF9UQUdW QVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSk9Ci0rCi0rZG5sIHdlIGNhbid0IHVzZSB0 aGUgbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIGhlcmUsCi0rZG5sIGJlY2F1c2UgaXQgY29u dGFpbnMgY29kZSBpbnRlbmRlZCBmb3IgYW4gZXhlY3V0YWJsZSwKLStkbmwgbm90IGEgbGlicmFy eS4gIEl0J3MgcG9zc2libGUgd2Ugc2hvdWxkIGxldCBlYWNoCi0rZG5sIHRhZyBkZWZpbmUgYSBu ZXcgbHRfPz8/P19saW5rX3Rlc3RfY29kZSB2YXJpYWJsZSwKLStkbmwgYnV0IGl0J3Mgb25seSB1 c2VkIGhlcmUuLi4KLSttNF9pZihbJDFdLCBbXSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxf TFRfRU9GCi0raW50IGE7Ci0rdm9pZCBmb28gKHZvaWQpIHsgYSA9IDA7IH0KLStfTFRfRU9GCi0r XSwgWyQxXSwgW0NYWF0sIFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgotK2NsYXNz IEZvbwotK3sKLStwdWJsaWM6Ci0rICBGb28gKHZvaWQpIHsgYSA9IDA7IH0KLStwcml2YXRlOgot KyAgaW50IGE7Ci0rfTsKLStfTFRfRU9GCi0rXSwgWyQxXSwgW0Y3N10sIFtjYXQgPiBjb25mdGVz dC4kYWNfZXh0IDw8X0xUX0VPRgotKyAgICAgIHN1YnJvdXRpbmUgZm9vCi0rICAgICAgaW1wbGlj aXQgbm9uZQotKyAgICAgIGludGVnZXIqNCBhCi0rICAgICAgYT0wCi0rICAgICAgcmV0dXJuCi0r ICAgICAgZW5kCi0rX0xUX0VPRgotK10sIFskMV0sIFtGQ10sIFtjYXQgPiBjb25mdGVzdC4kYWNf ZXh0IDw8X0xUX0VPRgotKyAgICAgIHN1YnJvdXRpbmUgZm9vCi0rICAgICAgaW1wbGljaXQgbm9u ZQotKyAgICAgIGludGVnZXIgYQotKyAgICAgIGE9MAotKyAgICAgIHJldHVybgotKyAgICAgIGVu ZAotK19MVF9FT0YKLStdLCBbJDFdLCBbR0NKXSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxf TFRfRU9GCi0rcHVibGljIGNsYXNzIGZvbyB7Ci0rICBwcml2YXRlIGludCBhOwotKyAgcHVibGlj IHZvaWQgYmFyICh2b2lkKSB7Ci0rICAgIGEgPSAwOwotKyAgfQotK307Ci0rX0xUX0VPRgotK10p Ci0rZG5sIFBhcnNlIHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2Fy eQotK2RubCBvYmplY3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxhZ3MuCi0raWYgQUNfVFJZ X0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KLSsgICMgUGFyc2UgdGhlIGNvbXBpbGVyIG91dHB1dCBh bmQgZXh0cmFjdCB0aGUgbmVjZXNzYXJ5Ci0rICAjIG9iamVjdHMsIGxpYnJhcmllcyBhbmQgbGli cmFyeSBmbGFncy4KLSsKLSsgICMgU2VudGluZWwgdXNlZCB0byBrZWVwIHRyYWNrIG9mIHdoZXRo ZXIgb3Igbm90IHdlIGFyZSBiZWZvcmUKLSsgICMgdGhlIGNvbmZ0ZXN0IG9iamVjdCBmaWxlLgot KyAgcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZT1ubwotKwotKyAgZm9yIHAgaW4gYGV2YWwgIiRv dXRwdXRfdmVyYm9zZV9saW5rX2NtZCJgOyBkbwotKyAgICBjYXNlICRwIGluCi0rCi0rICAgIC1M KiB8IC1SKiB8IC1sKikKLSsgICAgICAgIyBTb21lIGNvbXBpbGVycyBwbGFjZSBzcGFjZSBiZXR3 ZWVuICIte0wsUn0iIGFuZCB0aGUgcGF0aC4KLSsgICAgICAgIyBSZW1vdmUgdGhlIHNwYWNlLgot KyAgICAgICBpZiB0ZXN0ICRwID0gIi1MIiB8fAotKyAgICAgICAgICB0ZXN0ICRwID0gIi1SIjsg dGhlbgotKwkgcHJldj0kcAotKwkgY29udGludWUKLSsgICAgICAgZWxzZQotKwkgcHJldj0KLSsg ICAgICAgZmkKLSsKLSsgICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUi ID0gbm87IHRoZW4KLSsJIGNhc2UgJHAgaW4KLSsJIC1MKiB8IC1SKikKLSsJICAgIyBJbnRlcm5h bCBjb21waWxlciBsaWJyYXJ5IHBhdGhzIHNob3VsZCBjb21lIGFmdGVyIHRob3NlCi0rCSAgICMg cHJvdmlkZWQgdGhlIHVzZXIuICBUaGUgcG9zdGRlcHMgYWxyZWFkeSBjb21lIGFmdGVyIHRoZQot KwkgICAjIHVzZXIgc3VwcGxpZWQgbGlicyBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHByb2Nlc3Mg dGhlbS4KLSsJICAgaWYgdGVzdCAteiAiJF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9w YXRoLCAkMSkiOyB0aGVuCi0rCSAgICAgX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3Bh dGgsICQxKT0iJHtwcmV2fSR7cH0iCi0rCSAgIGVsc2UKLSsJICAgICBfTFRfVEFHVkFSKGNvbXBp bGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpPSIke19MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJj aF9wYXRoLCAkMSl9ICR7cHJldn0ke3B9IgotKwkgICBmaQotKwkgICA7OwotKwkgIyBUaGUgIi1s IiBjYXNlIHdvdWxkIG5ldmVyIGNvbWUgYmVmb3JlIHRoZSBvYmplY3QgYmVpbmcKLSsJICMgbGlu a2VkLCBzbyBkb24ndCBib3RoZXIgaGFuZGxpbmcgdGhpcyBjYXNlLgotKwkgZXNhYwotKyAgICAg ICBlbHNlCi0rCSBpZiB0ZXN0IC16ICIkX0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpIjsgdGhlbgot KwkgICBfTFRfVEFHVkFSKHBvc3RkZXBzLCAkMSk9IiR7cHJldn0ke3B9IgotKwkgZWxzZQotKwkg ICBfTFRfVEFHVkFSKHBvc3RkZXBzLCAkMSk9IiR7X0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpfSAk e3ByZXZ9JHtwfSIKLSsJIGZpCi0rICAgICAgIGZpCi0rICAgICAgIDs7Ci0rCi0rICAgICouJG9i amV4dCkKLSsgICAgICAgIyBUaGlzIGFzc3VtZXMgdGhhdCB0aGUgdGVzdCBvYmplY3QgZmlsZSBv bmx5IHNob3dzIHVwCi0rICAgICAgICMgb25jZSBpbiB0aGUgY29tcGlsZXIgb3V0cHV0LgotKyAg ICAgICBpZiB0ZXN0ICIkcCIgPSAiY29uZnRlc3QuJG9iamV4dCI7IHRoZW4KLSsJIHByZV90ZXN0 X29iamVjdF9kZXBzX2RvbmU9eWVzCi0rCSBjb250aW51ZQotKyAgICAgICBmaQotKwotKyAgICAg ICBpZiB0ZXN0ICIkcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZSIgPSBubzsgdGhlbgotKwkgaWYg dGVzdCAteiAiJF9MVF9UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKSI7IHRoZW4KLSsJICAgX0xU X1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpPSIkcCIKLSsJIGVsc2UKLSsJICAgX0xUX1RBR1ZB UihwcmVkZXBfb2JqZWN0cywgJDEpPSIkX0xUX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpICRw IgotKwkgZmkKLSsgICAgICAgZWxzZQotKwkgaWYgdGVzdCAteiAiJF9MVF9UQUdWQVIocG9zdGRl cF9vYmplY3RzLCAkMSkiOyB0aGVuCi0rCSAgIF9MVF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAk MSk9IiRwIgotKwkgZWxzZQotKwkgICBfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpPSIk X0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKSAkcCIKLSsJIGZpCi0rICAgICAgIGZpCi0r ICAgICAgIDs7Ci0rCi0rICAgICopIDs7ICMgSWdub3JlIHRoZSByZXN0LgotKwotKyAgICBlc2Fj Ci0rICBkb25lCi0rCi0rICAjIENsZWFuIHVwLgotKyAgcm0gLWYgYS5vdXQgYS5leGUKLStlbHNl Ci0rICBlY2hvICJsaWJ0b29sLm00OiBlcnJvcjogcHJvYmxlbSBjb21waWxpbmcgJDEgdGVzdCBw cm9ncmFtIgotK2ZpCi0rCi0rJFJNIC1mIGNvbmZlc3QuJG9iamV4dAotKwotKyMgUE9SVE1FOiBv dmVycmlkZSBhYm92ZSB0ZXN0IG9uIHN5c3RlbXMgd2hlcmUgaXQgaXMgYnJva2VuCi0rbTRfaWYo WyQxXSwgW0NYWF0sCi0rW2Nhc2UgJGhvc3Rfb3MgaW4KLStpbnRlcml4W1szLTldXSopCi0rICAj IEludGVyaXggMy41IGluc3RhbGxzIGNvbXBsZXRlbHkgaG9zZWQgLmxhIGZpbGVzIGZvciBDKyss IHNvIHJhdGhlciB0aGFuCi0rICAjIGhhY2sgYWxsIGFyb3VuZCBpdCwgbGV0J3MganVzdCB0cnVz dCAiZysrIiB0byBEVFJULgotKyAgX0xUX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywkMSk9Ci0rICBf TFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywkMSk9Ci0rICBfTFRfVEFHVkFSKHBvc3RkZXBzLCQx KT0KLSsgIDs7Ci0rCi0rbGludXgqKQotKyAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGlu Ci0rICAqU3VuXCBDKikKLSsgICAgIyBTdW4gQysrIDUuOQotKwotKyAgICAjIFRoZSBtb3JlIHN0 YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKLSsgICAgIyBpbmNvbXBhdGli bGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCi0rICAgICMgaXQgaWYg aXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4gYXMKLSsgICAgIyAtbGlicmFyeT1zdGxw b3J0NCBkZXBlbmRzIG9uIGl0LgotKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBpbgotKyAg ICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKLSsgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15 ZXMKLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGlmIHRlc3QgIiRzb2xhcmlzX3VzZV9z dGxwb3J0NCIgIT0geWVzOyB0aGVuCi0rICAgICAgX0xUX1RBR1ZBUihwb3N0ZGVwcywkMSk9Jy1s aWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKLSsgICAgZmkKLSsgICAgOzsKLSsgIGVzYWMKLSsg IDs7Ci0rCi0rc29sYXJpcyopCi0rICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgQ0MqKQotKyAg ICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKLSsg ICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5n Ci0rICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4gYXMKLSsgICAg IyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0LgotKyAgICBjYXNlICIgJENYWCAkQ1hY RkxBR1MgIiBpbgotKyAgICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKLSsgICAgICBzb2xhcmlz X3VzZV9zdGxwb3J0ND15ZXMKLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgICMgQWRkaW5n IHRoaXMgcmVxdWlyZXMgYSBrbm93bi1nb29kIHNldHVwIG9mIHNoYXJlZCBsaWJyYXJpZXMgZm9y Ci0rICAgICMgU3VuIGNvbXBpbGVyIHZlcnNpb25zIGJlZm9yZSA1LjYsIGVsc2UgUElDIG9iamVj dHMgZnJvbSBhbiBvbGQKLSsgICAgIyBhcmNoaXZlIHdpbGwgYmUgbGlua2VkIGludG8gdGhlIG91 dHB1dCwgbGVhZGluZyB0byBzdWJ0bGUgYnVncy4KLSsgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNl X3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KLSsgICAgICBfTFRfVEFHVkFSKHBvc3RkZXBzLCQxKT0n LWxpYnJhcnk9Q3N0ZCAtbGlicmFyeT1DcnVuJwotKyAgICBmaQotKyAgICA7OwotKyAgZXNhYwot KyAgOzsKLStlc2FjCi0rXSkKLSsKLStjYXNlICIgJF9MVF9UQUdWQVIocG9zdGRlcHMsICQxKSAi IGluCi0rKiIgLWxjICIqKSBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8g OzsKLStlc2FjCi0rIF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzLCAkMSk9Ci0r aWYgdGVzdCAtbiAiJHtfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpfSI7 IHRoZW4KLSsgX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX2RpcnMsICQxKT1gZWNobyAi ICR7X0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKX0iIHwgJHtTRUR9IC1l ICdzISAtTCEgIWcnIC1lICdzIV4gISEnYAotK2ZpCi0rX0xUX1RBR0RFQ0woW10sIFtjb21waWxl cl9saWJfc2VhcmNoX2RpcnNdLCBbMV0sCi0rICAgIFtUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQg YnkgdGhpcyBjb21waWxlciB3aGVuIGNyZWF0aW5nIGEgc2hhcmVkIGxpYnJhcnldKQotK19MVF9U QUdERUNMKFtdLCBbcHJlZGVwX29iamVjdHNdLCBbMV0sCi0rICAgIFtEZXBlbmRlbmNpZXMgdG8g cGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KLSsgICAg Y3JlYXRlIGEgc2hhcmVkIGxpYnJhcnldKQotK19MVF9UQUdERUNMKFtdLCBbcG9zdGRlcF9vYmpl Y3RzXSwgWzFdKQotK19MVF9UQUdERUNMKFtdLCBbcHJlZGVwc10sIFsxXSkKLStfTFRfVEFHREVD TChbXSwgW3Bvc3RkZXBzXSwgWzFdKQotK19MVF9UQUdERUNMKFtdLCBbY29tcGlsZXJfbGliX3Nl YXJjaF9wYXRoXSwgWzFdLAotKyAgICBbVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGggdXNlZCBpbnRl cm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcKLSsgICAgYSBzaGFyZWQgbGlicmFy eV0pCi0rXSkjIF9MVF9TWVNfSElEREVOX0xJQkRFUFMKLSsKLSsKLSsjIF9MVF9QUk9HX0Y3Nwot KyMgLS0tLS0tLS0tLS0tCi0rIyBTaW5jZSBBQ19QUk9HX0Y3NyBpcyBicm9rZW4sIGluIHRoYXQg aXQgcmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nCi0rIyBpZiB0aGVyZSBpcyBubyBmb3J0cmFuIGNv bXBpbGVyLCB3ZSBoYXZlIG91ciBvd24gdmVyc2lvbiBoZXJlLgotK200X2RlZnVuKFtfTFRfUFJP R19GNzddLAotK1sKLStwdXNoZGVmKFtBQ19NU0dfRVJST1JdLCBbX2x0X2Rpc2FibGVfRjc3PXll c10pCi0rQUNfUFJPR19GNzcKLStpZiB0ZXN0IC16ICIkRjc3IiB8fCB0ZXN0ICJYJEY3NyIgPSAi WG5vIjsgdGhlbgotKyAgX2x0X2Rpc2FibGVfRjc3PXllcwotK2ZpCi0rcG9wZGVmKFtBQ19NU0df RVJST1JdKQotK10pIyBfTFRfUFJPR19GNzcKLSsKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRz IGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtfTFRfUFJPR19GNzddLCBbXSkKLSsKLSsK LSsjIF9MVF9MQU5HX0Y3N19DT05GSUcoW1RBR10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEZv cnRyYW4gNzcgY29tcGlsZXIgYXJlCi0rIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFyaWFi bGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHCi0rIyB0byB3cml0ZSB0aGUg Y29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCi0rbTRfZGVmdW4oW19MVF9MQU5H X0Y3N19DT05GSUddLAotK1tBQ19SRVFVSVJFKFtfTFRfUFJPR19GNzddKWRubAotK0FDX0xBTkdf UFVTSChGb3J0cmFuIDc3KQotKwotK19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQx KT1ubwotK19MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KLStfTFRfVEFHVkFS KGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCi0rX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9Ci0rX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0K LStfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihoYXJkY29k ZV9kaXJlY3RfYWJzb2x1dGUsICQxKT1ubwotK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPQotK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwg JDEpPQotK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQotK19MVF9U QUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRv bWF0aWMsICQxKT1ubwotK19MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPW5vCi0rX0xUX1RB R1ZBUihtb2R1bGVfY21kcywgJDEpPQotK19MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAk MSk9Ci0rX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgotK19MVF9UQUdW QVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCi0rX0xUX1RBR1ZBUihu b191bmRlZmluZWRfZmxhZywgJDEpPQotK19MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWMsICQxKT0KLStfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMs ICQxKT1ubwotKwotKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBmNzcgdGVzdCBzb3VyY2Vz LgotK2FjX2V4dD1mCi0rCi0rIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIGY3 NyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpl eHQKLSsKLSsjIE5vIHNlbnNlIGluIHJ1bm5pbmcgYWxsIHRoZXNlIHRlc3RzIGlmIHdlIGFscmVh ZHkgZGV0ZXJtaW5lZCB0aGF0Ci0rIyB0aGUgRjc3IGNvbXBpbGVyIGlzbid0IHdvcmtpbmcuICBT b21lIHZhcmlhYmxlcyAobGlrZSBlbmFibGVfc2hhcmVkKQotKyMgYXJlIGN1cnJlbnRseSBhc3N1 bWVkIHRvIGFwcGx5IHRvIGFsbCBjb21waWxlcnMgb24gdGhpcyBwbGF0Zm9ybSwKLSsjIGFuZCB3 aWxsIGJlIGNvcnJ1cHRlZCBieSBzZXR0aW5nIHRoZW0gYmFzZWQgb24gYSBub24td29ya2luZyBj b21waWxlci4KLStpZiB0ZXN0ICIkX2x0X2Rpc2FibGVfRjc3IiAhPSB5ZXM7IHRoZW4KLSsgICMg Q29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCi0rICBsdF9zaW1wbGVfY29t cGlsZV90ZXN0X2NvZGU9IlwKLSsgICAgICBzdWJyb3V0aW5lIHQKLSsgICAgICByZXR1cm4KLSsg ICAgICBlbmQKLSsiCi0rCi0rICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0 cwotKyAgbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSJcCi0rICAgICAgcHJvZ3JhbSB0Ci0rICAg ICAgZW5kCi0rIgotKwotKyAgIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZp Z3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgotKyAgX0xUX1RBR19DT01QSUxFUgot KwotKyAgIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLSsg IF9MVF9DT01QSUxFUl9CT0lMRVJQTEFURQotKyAgX0xUX0xJTktFUl9CT0lMRVJQTEFURQotKwot KyAgIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KLSsgIGx0 X3NhdmVfQ0M9IiRDQyIKLSsgIGx0X3NhdmVfR0NDPSRHQ0MKLSsgIENDPSR7Rjc3LSJmNzcifQot KyAgY29tcGlsZXI9JENDCi0rICBfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCi0rICBfTFRf Q0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCi0rICBHQ0M9JEc3NwotKyAgaWYgdGVzdCAtbiAiJGNv bXBpbGVyIjsgdGhlbgotKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGxpYnRvb2wgc3VwcG9ydHMg c2hhcmVkIGxpYnJhcmllc10pCi0rICAgIEFDX01TR19SRVNVTFQoWyRjYW5fYnVpbGRfc2hhcmVk XSkKLSsKLSsgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJy YXJpZXNdKQotKyAgICB0ZXN0ICIkY2FuX2J1aWxkX3NoYXJlZCIgPSAibm8iICYmIGVuYWJsZV9z aGFyZWQ9bm8KLSsKLSsgICAgIyBPbiBBSVgsIHNoYXJlZCBsaWJyYXJpZXMgYW5kIHN0YXRpYyBs aWJyYXJpZXMgdXNlIHRoZSBzYW1lIG5hbWVzcGFjZSwgYW5kCi0rICAgICMgYXJlIGFsbCBidWls dCBmcm9tIFBJQy4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeDMqKQotKyAgICAg ICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KLSsgICAg ICAgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCi0rICAgICAgICAgIGFyY2hpdmVfY21kcz0i JGFyY2hpdmVfY21kc35cJFJBTkxJQiBcJGxpYiIKLSsgICAgICAgICAgcG9zdGluc3RhbGxfY21k cz0nJFJBTkxJQiAkbGliJwotKyAgICAgICAgZmkKLSsgICAgICAgIDs7Ci0rICAgICAgYWl4W1s0 LTldXSopCi0rCWlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NCAmJiB0ZXN0ICIkYWl4X3VzZV9y dW50aW1lbGlua2luZyIgPSBubyA7IHRoZW4KLSsJICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5 ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwotKwlmaQotKyAgICAgICAgOzsKLSsgICAgZXNhYwotKyAg ICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3NoYXJlZF0pCi0rCi0rICAgIEFDX01TR19DSEVDS0lO Ryhbd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzXSkKLSsgICAgIyBNYWtlIHN1cmUg ZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCi0rICAgIHRlc3Qg IiRlbmFibGVfc2hhcmVkIiA9IHllcyB8fCBlbmFibGVfc3RhdGljPXllcwotKyAgICBBQ19NU0df UkVTVUxUKFskZW5hYmxlX3N0YXRpY10pCi0rCi0rICAgIF9MVF9UQUdWQVIoR0NDLCAkMSk9IiRH NzciCi0rICAgIF9MVF9UQUdWQVIoTEQsICQxKT0iJExEIgotKwotKyAgICAjIyBDQVZFQVQgRU1Q VE9SOgotKyAgICAjIyBUaGVyZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93 aW5nIG1hY3JvcywgZG8gbm90IGNoYW5nZQotKyAgICAjIyB0aGUgcnVubmluZyBvcmRlciBvciBv dGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQotKyAgICAj IyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KLSsgICAgX0xUX0NPTVBJTEVSX1BJQygkMSkKLSsgICAg X0xUX0NPTVBJTEVSX0NfTygkMSkKLSsgICAgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoJDEpCi0r ICAgIF9MVF9MSU5LRVJfU0hMSUJTKCQxKQotKyAgICBfTFRfU1lTX0RZTkFNSUNfTElOS0VSKCQx KQotKyAgICBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgoJDEpCi0rCi0rICAgIF9MVF9DT05G SUcoJDEpCi0rICBmaSAjIHRlc3QgLW4gIiRjb21waWxlciIKLSsKLSsgIEdDQz0kbHRfc2F2ZV9H Q0MKLSsgIENDPSIkbHRfc2F2ZV9DQyIKLStmaSAjIHRlc3QgIiRfbHRfZGlzYWJsZV9GNzciICE9 IHllcwotKwotK0FDX0xBTkdfUE9QCi0rXSkjIF9MVF9MQU5HX0Y3N19DT05GSUcKLSsKLSsKLSsj IF9MVF9QUk9HX0ZDCi0rIyAtLS0tLS0tLS0tLQotKyMgU2luY2UgQUNfUFJPR19GQyBpcyBicm9r ZW4sIGluIHRoYXQgaXQgcmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nCi0rIyBpZiB0aGVyZSBpcyBu byBmb3J0cmFuIGNvbXBpbGVyLCB3ZSBoYXZlIG91ciBvd24gdmVyc2lvbiBoZXJlLgotK200X2Rl ZnVuKFtfTFRfUFJPR19GQ10sCi0rWwotK3B1c2hkZWYoW0FDX01TR19FUlJPUl0sIFtfbHRfZGlz YWJsZV9GQz15ZXNdKQotK0FDX1BST0dfRkMKLStpZiB0ZXN0IC16ICIkRkMiIHx8IHRlc3QgIlgk RkMiID0gIlhubyI7IHRoZW4KLSsgIF9sdF9kaXNhYmxlX0ZDPXllcwotK2ZpCi0rcG9wZGVmKFtB Q19NU0dfRVJST1JdKQotK10pIyBfTFRfUFJPR19GQwotKwotK2RubCBhY2xvY2FsLTEuNCBiYWNr d2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW19MVF9QUk9HX0ZDXSwgW10pCi0r Ci0rCi0rIyBfTFRfTEFOR19GQ19DT05GSUcoW1RBR10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIGEg Rm9ydHJhbiBjb21waWxlciBhcmUKLSsjIHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJpYWJs ZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcKLSsjIHRvIHdyaXRlIHRoZSBj b21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KLSttNF9kZWZ1bihbX0xUX0xBTkdf RkNfQ09ORklHXSwKLStbQUNfUkVRVUlSRShbX0xUX1BST0dfRkNdKWRubAotK0FDX0xBTkdfUFVT SChGb3J0cmFuKQotKwotK19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwot K19MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KLStfTFRfVEFHVkFSKGFsd2F5 c19leHBvcnRfc3ltYm9scywgJDEpPW5vCi0rX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRz LCAkMSk9Ci0rX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0KLStfTFRf VEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJl Y3RfYWJzb2x1dGUsICQxKT1ubwotK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YywgJDEpPQotK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPQot K19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQotK19MVF9UQUdWQVIo aGFyZGNvZGVfbWludXNfTCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMs ICQxKT1ubwotK19MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPW5vCi0rX0xUX1RBR1ZBUiht b2R1bGVfY21kcywgJDEpPQotK19MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9Ci0r X0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgotK19MVF9UQUdWQVIob2xk X2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCi0rX0xUX1RBR1ZBUihub191bmRl ZmluZWRfZmxhZywgJDEpPQotK19MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQx KT0KLStfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1u bwotKwotKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBmYyB0ZXN0IHNvdXJjZXMuCi0rYWNf ZXh0PSR7YWNfZmNfc3JjZXh0LWZ9Ci0rCi0rIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNv bXBpbGVkIGZjIHRlc3Qgc291cmNlcy4KLStvYmpleHQ9bwotK19MVF9UQUdWQVIob2JqZXh0LCAk MSk9JG9iamV4dAotKwotKyMgTm8gc2Vuc2UgaW4gcnVubmluZyBhbGwgdGhlc2UgdGVzdHMgaWYg d2UgYWxyZWFkeSBkZXRlcm1pbmVkIHRoYXQKLSsjIHRoZSBGQyBjb21waWxlciBpc24ndCB3b3Jr aW5nLiAgU29tZSB2YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKLSsjIGFyZSBjdXJyZW50 bHkgYXNzdW1lZCB0byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9uIHRoaXMgcGxhdGZvcm0sCi0r IyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9uIGEgbm9uLXdv cmtpbmcgY29tcGlsZXIuCi0raWYgdGVzdCAiJF9sdF9kaXNhYmxlX0ZDIiAhPSB5ZXM7IHRoZW4K LSsgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCi0rICBsdF9zaW1w bGVfY29tcGlsZV90ZXN0X2NvZGU9IlwKLSsgICAgICBzdWJyb3V0aW5lIHQKLSsgICAgICByZXR1 cm4KLSsgICAgICBlbmQKLSsiCi0rCi0rICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGlu ayB0ZXN0cwotKyAgbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSJcCi0rICAgICAgcHJvZ3JhbSB0 Ci0rICAgICAgZW5kCi0rIgotKwotKyAgIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2Vk IGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgotKyAgX0xUX1RBR19DT01Q SUxFUgotKwotKyAgIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNv ZGUKLSsgIF9MVF9DT01QSUxFUl9CT0lMRVJQTEFURQotKyAgX0xUX0xJTktFUl9CT0lMRVJQTEFU RQotKwotKyAgIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4K LSsgIGx0X3NhdmVfQ0M9IiRDQyIKLSsgIGx0X3NhdmVfR0NDPSRHQ0MKLSsgIENDPSR7RkMtImY5 NSJ9Ci0rICBjb21waWxlcj0kQ0MKLSsgIEdDQz0kYWNfY3ZfZmNfY29tcGlsZXJfZ251Ci0rCi0r ICBfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCi0rICBfTFRfQ0NfQkFTRU5BTUUoWyRjb21w aWxlcl0pCi0rCi0rICBpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCi0rICAgIEFDX01TR19D SEVDS0lORyhbaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKLSsgICAgQUNf TVNHX1JFU1VMVChbJGNhbl9idWlsZF9zaGFyZWRdKQotKwotKyAgICBBQ19NU0dfQ0hFQ0tJTkco W3doZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCi0rICAgIHRlc3QgIiRjYW5fYnVp bGRfc2hhcmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubwotKwotKyAgICAjIE9uIEFJWCwg c2hhcmVkIGxpYnJhcmllcyBhbmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUgbmFtZXNw YWNlLCBhbmQKLSsgICAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgotKyAgICBjYXNlICRob3N0 X29zIGluCi0rICAgICAgYWl4MyopCi0rICAgICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5 ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwotKyAgICAgICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRo ZW4KLSsgICAgICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGli IgotKyAgICAgICAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWInCi0rICAgICAgICBm aQotKyAgICAgICAgOzsKLSsgICAgICBhaXhbWzQtOV1dKikKLSsJaWYgdGVzdCAiJGhvc3RfY3B1 IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgot KwkgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rCWZp Ci0rICAgICAgICA7OwotKyAgICBlc2FjCi0rICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc2hh cmVkXSkKLSsKLSsgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBs aWJyYXJpZXNdKQotKyAgICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3NoYXJlZCBvciBlbmFi bGVfc3RhdGljIGlzIHllcy4KLSsgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVu YWJsZV9zdGF0aWM9eWVzCi0rICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc3RhdGljXSkKLSsK LSsgICAgX0xUX1RBR1ZBUihHQ0MsICQxKT0iJGFjX2N2X2ZjX2NvbXBpbGVyX2dudSIKLSsgICAg X0xUX1RBR1ZBUihMRCwgJDEpPSIkTEQiCi0rCi0rICAgICMjIENBVkVBVCBFTVBUT1I6Ci0rICAg ICMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9z LCBkbyBub3QgY2hhbmdlCi0rICAgICMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBt b3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5Ci0rICAgICMjIHdoYXQgeW91 IGFyZSBkb2luZy4uLgotKyAgICBfTFRfU1lTX0hJRERFTl9MSUJERVBTKCQxKQotKyAgICBfTFRf Q09NUElMRVJfUElDKCQxKQotKyAgICBfTFRfQ09NUElMRVJfQ19PKCQxKQotKyAgICBfTFRfQ09N UElMRVJfRklMRV9MT0NLUygkMSkKLSsgICAgX0xUX0xJTktFUl9TSExJQlMoJDEpCi0rICAgIF9M VF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCi0rICAgIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFU SCgkMSkKLSsKLSsgICAgX0xUX0NPTkZJRygkMSkKLSsgIGZpICMgdGVzdCAtbiAiJGNvbXBpbGVy IgotKwotKyAgR0NDPSRsdF9zYXZlX0dDQwotKyAgQ0M9IiRsdF9zYXZlX0NDIgotK2ZpICMgdGVz dCAiJF9sdF9kaXNhYmxlX0ZDIiAhPSB5ZXMKLSsKLStBQ19MQU5HX1BPUAotK10pIyBfTFRfTEFO R19GQ19DT05GSUcKLSsKLSsKLSsjIF9MVF9MQU5HX0dDSl9DT05GSUcoW1RBR10pCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24g dmFyaWFibGVzIGZvciB0aGUgR05VIEphdmEgQ29tcGlsZXIgY29tcGlsZXIKLSsjIGFyZSBzdWl0 YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBf TFRfQ09ORklHCi0rIyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGli dG9vbCcuCi0rbTRfZGVmdW4oW19MVF9MQU5HX0dDSl9DT05GSUddLAotK1tBQ19SRVFVSVJFKFtM VF9QUk9HX0dDSl0pZG5sCi0rQUNfTEFOR19TQVZFCi0rCi0rIyBTb3VyY2UgZmlsZSBleHRlbnNp b24gZm9yIEphdmEgdGVzdCBzb3VyY2VzLgotK2FjX2V4dD1qYXZhCi0rCi0rIyBPYmplY3QgZmls ZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEphdmEgdGVzdCBzb3VyY2VzLgotK29iamV4dD1vCi0r X0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0Ci0rCi0rIyBDb2RlIHRvIGJlIHVzZWQgaW4g c2ltcGxlIGNvbXBpbGUgdGVzdHMKLStsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImNsYXNz IGZvbyB7fSIKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotK2x0 X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0ncHVibGljIGNsYXNzIGNvbmZ0ZXN0IHsgcHVibGljIHN0 YXRpYyB2b2lkIG1haW4oU3RyaW5nW1tdXSBhcmd2KSB7fTsgfScKLSsKLSsjIGx0bWFpbiBvbmx5 IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBz ZXQuCi0rX0xUX1RBR19DT01QSUxFUgotKwotKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBv ZiBzaW1wbGUgdGVzdCBjb2RlCi0rX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCi0rX0xUX0xJTktF Ul9CT0lMRVJQTEFURQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmd1bWVudHMuCi0rbHRfc2F2ZV9DQz0iJENDIgotK2x0X3NhdmVfR0NDPSRHQ0MKLStHQ0M9eWVz Ci0rQ0M9JHtHQ0otImdjaiJ9Ci0rY29tcGlsZXI9JENDCi0rX0xUX1RBR1ZBUihjb21waWxlciwg JDEpPSRDQwotK19MVF9UQUdWQVIoTEQsICQxKT0iJExEIgotK19MVF9DQ19CQVNFTkFNRShbJGNv bXBpbGVyXSkKLSsKLSsjIEdDSiBkaWQgbm90IGV4aXN0IGF0IHRoZSB0aW1lIEdDQyBkaWRuJ3Qg aW1wbGljaXRseSBsaW5rIGxpYmMgaW4uCi0rX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9s YywgJDEpPW5vCi0rCi0rX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNo aXZlX2NtZHMKLSsKLSsjIyBDQVZFQVQgRU1QVE9SOgotKyMjIFRoZXJlIGlzIG5vIGVuY2Fwc3Vs YXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCi0rIyMgdGhl IHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBr bm93IGV4YWN0bHkKLSsjIyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KLStpZiB0ZXN0IC1uICIkY29t cGlsZXIiOyB0aGVuCi0rICBfTFRfQ09NUElMRVJfTk9fUlRUSSgkMSkKLSsgIF9MVF9DT01QSUxF Ul9QSUMoJDEpCi0rICBfTFRfQ09NUElMRVJfQ19PKCQxKQotKyAgX0xUX0NPTVBJTEVSX0ZJTEVf TE9DS1MoJDEpCi0rICBfTFRfTElOS0VSX1NITElCUygkMSkKLSsgIF9MVF9MSU5LRVJfSEFSRENP REVfTElCUEFUSCgkMSkKLSsKLSsgIF9MVF9DT05GSUcoJDEpCi0rZmkKLSsKLStBQ19MQU5HX1JF U1RPUkUKLSsKLStHQ0M9JGx0X3NhdmVfR0NDCi0rQ0M9IiRsdF9zYXZlX0NDIgotK10pIyBfTFRf TEFOR19HQ0pfQ09ORklHCi0rCi0rCi0rIyBfTFRfTEFOR19SQ19DT05GSUcoW1RBR10pCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlv biB2YXJpYWJsZXMgZm9yIHRoZSBXaW5kb3dzIHJlc291cmNlIGNvbXBpbGVyCi0rIyBhcmUgc3Vp dGFibHkgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQgYnkg X0xUX0NPTkZJRwotKyMgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxp YnRvb2wnLgotK200X2RlZnVuKFtfTFRfTEFOR19SQ19DT05GSUddLAotK1tBQ19SRVFVSVJFKFtM VF9QUk9HX1JDXSlkbmwKLStBQ19MQU5HX1NBVkUKLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lv biBmb3IgUkMgdGVzdCBzb3VyY2VzLgotK2FjX2V4dD1yYwotKwotKyMgT2JqZWN0IGZpbGUgZXh0 ZW5zaW9uIGZvciBjb21waWxlZCBSQyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStfTFRfVEFH VkFSKG9iamV4dCwgJDEpPSRvYmpleHQKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUg Y29tcGlsZSB0ZXN0cwotK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0nc2FtcGxlIE1FTlUg eyBNRU5VSVRFTSAiJlNvdXAiLCAxMDAsIENIRUNLRUQgfScKLSsKLSsjIENvZGUgdG8gYmUgdXNl ZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iJGx0X3Np bXBsZV9jb21waWxlX3Rlc3RfY29kZSIKLSsKLSsjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0 YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCi0rX0xUX1RBR19D T01QSUxFUgotKwotKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBj b2RlCi0rX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCi0rX0xUX0xJTktFUl9CT0lMRVJQTEFURQot KwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rbHRf c2F2ZV9DQz0iJENDIgotK2x0X3NhdmVfR0NDPSRHQ0MKLStHQ0M9Ci0rQ0M9JHtSQy0id2luZHJl cyJ9Ci0rY29tcGlsZXI9JENDCi0rX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQwotK19MVF9D Q19CQVNFTkFNRShbJGNvbXBpbGVyXSkKLStfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJf Y19vLCAkMSk9eWVzCi0rCi0raWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgotKyAgOgotKyAg X0xUX0NPTkZJRygkMSkKLStmaQotKwotK0dDQz0kbHRfc2F2ZV9HQ0MKLStBQ19MQU5HX1JFU1RP UkUKLStDQz0iJGx0X3NhdmVfQ0MiCi0rXSkjIF9MVF9MQU5HX1JDX0NPTkZJRwotKwotKwotKyMg TFRfUFJPR19HQ0oKLSsjIC0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW0xUX1BST0dfR0NKXSwKLStb bTRfaWZkZWYoW0FDX1BST0dfR0NKXSwgW0FDX1BST0dfR0NKXSwKLSsgIFttNF9pZmRlZihbQV1b TV9QUk9HX0dDSl0sIFtBXVtNX1BST0dfR0NKXSwKLSsgICAgW0FDX0NIRUNLX1RPT0woR0NKLCBn Y2osKQotKyAgICAgIHRlc3QgIngke0dDSkZMQUdTK3NldH0iID0geHNldCB8fCBHQ0pGTEFHUz0i LWcgLU8yIgotKyAgICAgIEFDX1NVQlNUKEdDSkZMQUdTKV0pXSlbXWRubAotK10pCi0rCi0rIyBP bGQgbmFtZToKLStBVV9BTElBUyhbTFRfQUNfUFJPR19HQ0pdLCBbTFRfUFJPR19HQ0pdKQotK2Ru bCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0xU X0FDX1BST0dfR0NKXSwgW10pCi0rCi0rCi0rIyBMVF9QUk9HX1JDCi0rIyAtLS0tLS0tLS0tCi0r QUNfREVGVU4oW0xUX1BST0dfUkNdLAotK1tBQ19DSEVDS19UT09MKFJDLCB3aW5kcmVzLCkKLStd KQotKwotKyMgT2xkIG5hbWU6Ci0rQVVfQUxJQVMoW0xUX0FDX1BST0dfUkNdLCBbTFRfUFJPR19S Q10pCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBBQ19E RUZVTihbTFRfQUNfUFJPR19SQ10sIFtdKQotKwotKwotKyMgX0xUX0RFQ0xfRUdSRVAKLSsjIC0t LS0tLS0tLS0tLS0tCi0rIyBJZiB3ZSBkb24ndCBoYXZlIGEgbmV3IGVub3VnaCBBdXRvY29uZiB0 byBjaG9vc2UgdGhlIGJlc3QgZ3JlcAotKyMgYXZhaWxhYmxlLCBjaG9vc2UgdGhlIG9uZSBmaXJz dCBpbiB0aGUgdXNlcidzIFBBVEguCi0rbTRfZGVmdW4oW19MVF9ERUNMX0VHUkVQXSwKLStbQUNf UkVRVUlSRShbQUNfUFJPR19FR1JFUF0pZG5sCi0rQUNfUkVRVUlSRShbQUNfUFJPR19GR1JFUF0p ZG5sCi0rdGVzdCAteiAiJEdSRVAiICYmIEdSRVA9Z3JlcAotK19MVF9ERUNMKFtdLCBbR1JFUF0s IFsxXSwgW0EgZ3JlcCBwcm9ncmFtIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzXSkKLStfTFRfREVD TChbXSwgW0VHUkVQXSwgWzFdLCBbQW4gRVJFIG1hdGNoZXJdKQotK19MVF9ERUNMKFtdLCBbRkdS RVBdLCBbMV0sIFtBIGxpdGVyYWwgc3RyaW5nIG1hdGNoZXJdKQotK2RubCBOb24tYmxlZWRpbmct ZWRnZSBhdXRvY29uZiBkb2Vzbid0IHN1YnN0IEdSRVAsIHNvIGRvIGl0IGhlcmUgdG9vCi0rQUNf U1VCU1QoW0dSRVBdKQotK10pCi0rCi0rCi0rIyBfTFRfREVDTF9PQkpEVU1QCi0rIyAtLS0tLS0t LS0tLS0tLQotKyMgSWYgd2UgZG9uJ3QgaGF2ZSBhIG5ldyBlbm91Z2ggQXV0b2NvbmYgdG8gY2hv b3NlIHRoZSBiZXN0IG9iamR1bXAKLSsjIGF2YWlsYWJsZSwgY2hvb3NlIHRoZSBvbmUgZmlyc3Qg aW4gdGhlIHVzZXIncyBQQVRILgotK200X2RlZnVuKFtfTFRfREVDTF9PQkpEVU1QXSwKLStbQUNf Q0hFQ0tfVE9PTChPQkpEVU1QLCBvYmpkdW1wLCBmYWxzZSkKLSt0ZXN0IC16ICIkT0JKRFVNUCIg JiYgT0JKRFVNUD1vYmpkdW1wCi0rX0xUX0RFQ0woW10sIFtPQkpEVU1QXSwgWzFdLCBbQW4gb2Jq ZWN0IHN5bWJvbCBkdW1wZXJdKQotK0FDX1NVQlNUKFtPQkpEVU1QXSkKLStdKQotKwotKwotKyMg X0xUX0RFQ0xfU0VECi0rIyAtLS0tLS0tLS0tLS0KLSsjIENoZWNrIGZvciBhIGZ1bGx5LWZ1bmN0 aW9uYWwgc2VkIHByb2dyYW0sIHRoYXQgdHJ1bmNhdGVzCi0rIyBhcyBmZXcgY2hhcmFjdGVycyBh cyBwb3NzaWJsZS4gIFByZWZlciBHTlUgc2VkIGlmIGZvdW5kLgotK200X2RlZnVuKFtfTFRfREVD TF9TRURdLAotK1tBQ19QUk9HX1NFRAotK3Rlc3QgLXogIiRTRUQiICYmIFNFRD1zZWQKLStYc2Vk PSIkU0VEIC1lIDFzL15YLy8iCi0rX0xUX0RFQ0woW10sIFtTRURdLCBbMV0sIFtBIHNlZCBwcm9n cmFtIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0XSkKLStfTFRfREVDTChbXSwgW1hzZWRd LCBbIlwkU0VEIC1lIDFzL15YLy8iXSwKLSsgICAgW1NlZCB0aGF0IGhlbHBzIHVzIGF2b2lkIGFj Y2lkZW50YWxseSB0cmlnZ2VyaW5nIGVjaG8oMSkgb3B0aW9ucyBsaWtlIC1uXSkKLStdKSMgX0xU X0RFQ0xfU0VECi0rCi0rbTRfaWZuZGVmKFtBQ19QUk9HX1NFRF0sIFsKLSsjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSsjIE5PVEU6 IFRoaXMgbWFjcm8gaGFzIGJlZW4gc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW50byAgICMKLSsj ICBHTlUgQXV0b2NvbmYgYXMgQUNfUFJPR19TRUQuICBXaGVuIGl0IGlzIGF2YWlsYWJsZSBpbiAg ICMKLSsjICBhIHJlbGVhc2VkIHZlcnNpb24gb2YgQXV0b2NvbmYgd2Ugc2hvdWxkIHJlbW92ZSB0 aGlzICAgICMKLSsjICBtYWNybyBhbmQgdXNlIGl0IGluc3RlYWQuICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMKLSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKLSsKLSttNF9kZWZ1bihbQUNfUFJPR19TRURdLAotK1tBQ19N U0dfQ0hFQ0tJTkcoW2ZvciBhIHNlZCB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dF0pCi0r QUNfQ0FDSEVfVkFMKGx0X2N2X3BhdGhfU0VELAotK1sjIExvb3AgdGhyb3VnaCB0aGUgdXNlcidz IHBhdGggYW5kIHRlc3QgZm9yIHNlZCBhbmQgZ3NlZC4KLSsjIFRoZW4gdXNlIHRoYXQgbGlzdCBv ZiBzZWQncyBhcyBvbmVzIHRvIHRlc3QgZm9yIHRydW5jYXRpb24uCi0rYXNfc2F2ZV9JRlM9JElG UzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZT PSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBs dF9hY19wcm9nIGluIHNlZCBnc2VkOyBkbwotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgICAgICBpZiAkYXNfZXhlY3V0YWJsZV9wICIk YXNfZGlyLyRsdF9hY19wcm9nJGFjX2V4ZWNfZXh0IjsgdGhlbgotKyAgICAgICAgbHRfYWNfc2Vk X2xpc3Q9IiRsdF9hY19zZWRfbGlzdCAkYXNfZGlyLyRsdF9hY19wcm9nJGFjX2V4ZWNfZXh0Igot KyAgICAgIGZpCi0rICAgIGRvbmUKLSsgIGRvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwot K2x0X2FjX21heD0wCi0rbHRfYWNfY291bnQ9MAotKyMgQWRkIC91c3IveHBnNC9iaW4vc2VkIGFz IGl0IGlzIHR5cGljYWxseSBmb3VuZCBvbiBTb2xhcmlzCi0rIyBhbG9uZyB3aXRoIC9iaW4vc2Vk IHRoYXQgdHJ1bmNhdGVzIG91dHB1dC4KLStmb3IgbHRfYWNfc2VkIGluICRsdF9hY19zZWRfbGlz dCAvdXNyL3hwZzQvYmluL3NlZDsgZG8KLSsgIHRlc3QgISAtZiAkbHRfYWNfc2VkICYmIGNvbnRp bnVlCi0rICBjYXQgL2Rldi9udWxsID4gY29uZnRlc3QuaW4KLSsgIGx0X2FjX2NvdW50PTAKLSsg IGVjaG8gJEVDSE9fTiAiMDEyMzQ1Njc4OSRFQ0hPX0MiID5jb25mdGVzdC5pbgotKyAgIyBDaGVj ayBmb3IgR05VIHNlZCBhbmQgc2VsZWN0IGl0IGlmIGl0IGlzIGZvdW5kLgotKyAgaWYgIiRsdF9h Y19zZWQiIC0tdmVyc2lvbiAyPiYxIDwgL2Rldi9udWxsIHwgZ3JlcCAnR05VJyA+IC9kZXYvbnVs bDsgdGhlbgotKyAgICBsdF9jdl9wYXRoX1NFRD0kbHRfYWNfc2VkCi0rICAgIGJyZWFrCi0rICBm aQotKyAgd2hpbGUgdHJ1ZTsgZG8KLSsgICAgY2F0IGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0LmluID5j b25mdGVzdC50bXAKLSsgICAgbXYgY29uZnRlc3QudG1wIGNvbmZ0ZXN0LmluCi0rICAgIGNwIGNv bmZ0ZXN0LmluIGNvbmZ0ZXN0Lm5sCi0rICAgIGVjaG8gPj5jb25mdGVzdC5ubAotKyAgICAkbHRf YWNfc2VkIC1lICdzL2EkLy8nIDwgY29uZnRlc3QubmwgPmNvbmZ0ZXN0Lm91dCB8fCBicmVhawot KyAgICBjbXAgLXMgY29uZnRlc3Qub3V0IGNvbmZ0ZXN0Lm5sIHx8IGJyZWFrCi0rICAgICMgMTAw MDAgY2hhcnMgYXMgaW5wdXQgc2VlbXMgbW9yZSB0aGFuIGVub3VnaAotKyAgICB0ZXN0ICRsdF9h Y19jb3VudCAtZ3QgMTAgJiYgYnJlYWsKLSsgICAgbHRfYWNfY291bnQ9YGV4cHIgJGx0X2FjX2Nv dW50ICsgMWAKLSsgICAgaWYgdGVzdCAkbHRfYWNfY291bnQgLWd0ICRsdF9hY19tYXg7IHRoZW4K LSsgICAgICBsdF9hY19tYXg9JGx0X2FjX2NvdW50Ci0rICAgICAgbHRfY3ZfcGF0aF9TRUQ9JGx0 X2FjX3NlZAotKyAgICBmaQotKyAgZG9uZQotK2RvbmUKLStdKQotK1NFRD0kbHRfY3ZfcGF0aF9T RUQKLStBQ19TVUJTVChbU0VEXSkKLStBQ19NU0dfUkVTVUxUKFskU0VEXSkKLStdKSNBQ19QUk9H X1NFRAotK10pI200X2lmbmRlZgotKwotKyMgT2xkIG5hbWU6Ci0rQVVfQUxJQVMoW0xUX0FDX1BS T0dfU0VEXSwgW0FDX1BST0dfU0VEXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBh dGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtMVF9BQ19QUk9HX1NFRF0sIFtdKQotKwotKwotKyMg X0xUX0NIRUNLX1NIRUxMX0ZFQVRVUkVTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsj IEZpbmQgb3V0IHdoZXRoZXIgdGhlIHNoZWxsIGlzIEJvdXJuZSBvciBYU0kgY29tcGF0aWJsZSwK LSsjIG9yIGhhcyBzb21lIG90aGVyIHVzZWZ1bCBmZWF0dXJlcy4KLSttNF9kZWZ1bihbX0xUX0NI RUNLX1NIRUxMX0ZFQVRVUkVTXSwKLStbQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSBzaGVs bCB1bmRlcnN0YW5kcyBzb21lIFhTSSBjb25zdHJ1Y3RzXSkKLSsjIFRyeSBzb21lIFhTSSBmZWF0 dXJlcwotK3hzaV9zaGVsbD1ubwotKyggX2x0X2R1bW15PSJhL2IvYyIKLSsgIHRlc3QgIiR7X2x0 X2R1bW15IyMqL30sJHtfbHRfZHVtbXklLyp9LCIke19sdF9kdW1teSUiJF9sdF9kdW1teSJ9LCBc Ci0rICAgICAgPSBjLGEvYiwsIFwKLSsgICAgJiYgZXZhbCAndGVzdCAkKCggMSArIDEgKSkgLWVx IDIgXAotKyAgICAmJiB0ZXN0ICIkeyNfbHRfZHVtbXl9IiAtZXEgNScgKSA+L2Rldi9udWxsIDI+ JjEgXAotKyAgJiYgeHNpX3NoZWxsPXllcwotK0FDX01TR19SRVNVTFQoWyR4c2lfc2hlbGxdKQot K19MVF9DT05GSUdfTElCVE9PTF9JTklUKFt4c2lfc2hlbGw9JyR4c2lfc2hlbGwnXSkKLSsKLStB Q19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzICIrPSJdKQotK2x0 X3NoZWxsX2FwcGVuZD1ubwotKyggZm9vPWJhcjsgc2V0IGZvbyBiYXo7IGV2YWwgIiRbMV0rPVwk WzJdIiAmJiB0ZXN0ICIkZm9vIiA9IGJhcmJheiApIFwKLSsgICAgPi9kZXYvbnVsbCAyPiYxIFwK LSsgICYmIGx0X3NoZWxsX2FwcGVuZD15ZXMKLStBQ19NU0dfUkVTVUxUKFskbHRfc2hlbGxfYXBw ZW5kXSkKLStfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbbHRfc2hlbGxfYXBwZW5kPSckbHRfc2hl bGxfYXBwZW5kJ10pCi0rCi0raWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9k ZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBsdF91bnNldD11bnNldAotK2Vsc2UKLSsgIGx0X3Vuc2V0 PWZhbHNlCi0rZmkKLStfTFRfREVDTChbXSwgW2x0X3Vuc2V0XSwgWzBdLCBbd2hldGhlciB0aGUg c2hlbGwgdW5kZXJzdGFuZHMgInVuc2V0Il0pZG5sCi0rCi0rIyB0ZXN0IEVCQ0RJQyBvciBBU0NJ SQotK2Nhc2UgYGVjaG8gWHx0ciBYICdcMTAxJ2AgaW4KLSsgQSkgIyBBU0NJSSBiYXNlZCBzeXN0 ZW0KLSsgICAgIyBcbiBpcyBub3QgaW50ZXJwcmV0ZWQgY29ycmVjdGx5IGJ5IFNvbGFyaXMgOCAv dXNyL3VjYi90cgotKyAgbHRfU1AyTkw9J3RyIFwwNDAgXDAxMicKLSsgIGx0X05MMlNQPSd0ciBc MDE1XDAxMiBcMDQwXDA0MCcKLSsgIDs7Ci0rICopICMgRUJDRElDIGJhc2VkIHN5c3RlbQotKyAg bHRfU1AyTkw9J3RyIFwxMDAgXG4nCi0rICBsdF9OTDJTUD0ndHIgXHJcbiBcMTAwXDEwMCcKLSsg IDs7Ci0rZXNhYwotK19MVF9ERUNMKFtTUDJOTF0sIFtsdF9TUDJOTF0sIFsxXSwgW3R1cm4gc3Bh Y2VzIGludG8gbmV3bGluZXNdKWRubAotK19MVF9ERUNMKFtOTDJTUF0sIFtsdF9OTDJTUF0sIFsx XSwgW3R1cm4gbmV3bGluZXMgaW50byBzcGFjZXNdKWRubAotK10pIyBfTFRfQ0hFQ0tfU0hFTExf RkVBVFVSRVMKLSsKLSsKLSsjIF9MVF9QUk9HX1hTSV9TSEVMTEZOUwotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBCb3VybmUgYW5kIFhTSSBjb21wYXRpYmxlIHZhcmlhbnRzIG9mIHNvbWUg dXNlZnVsIHNoZWxsIGZ1bmN0aW9ucy4KLSttNF9kZWZ1bihbX0xUX1BST0dfWFNJX1NIRUxMRk5T XSwKLStbY2FzZSAkeHNpX3NoZWxsIGluCi0rICB5ZXMpCi0rICAgIGNhdCA8PCBcX0xUX0VPRiA+ PiAiJGNmZ2ZpbGUiCi0rCi0rIyBmdW5jX2Rpcm5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxh Y2VtZW50Ci0rIyBDb21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwgYWRk IEFQUEVORCB0byB0aGUgcmVzdWx0LAotKyMgb3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9ORElS X1JFUExBQ0VNRU5ULgotK2Z1bmNfZGlybmFtZSAoKQotK3sKLSsgIGNhc2UgJHsxfSBpbgotKyAg ICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9IiA7OwotKyAgICAqICApIGZ1 bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iIDs7Ci0rICBlc2FjCi0rfQotKwotKyMgZnVuY19iYXNl bmFtZSBmaWxlCi0rZnVuY19iYXNlbmFtZSAoKQotK3sKLSsgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0 PSIkezEjIyovfSIKLSt9Ci0rCi0rIyBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lIGZpbGUgYXBw ZW5kIG5vbmRpcl9yZXBsYWNlbWVudAotKyMgcGVyZm9ybSBmdW5jX2Jhc2VuYW1lIGFuZCBmdW5j X2Rpcm5hbWUgaW4gYSBzaW5nbGUgZnVuY3Rpb24KLSsjIGNhbGw6Ci0rIyAgIGRpcm5hbWU6ICBD b21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwKLSsjICAgICAgICAgICAg IGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwgb3RoZXJ3aXNlIHNldCByZXN1bHQKLSsjICAgICAg ICAgICAgIHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KLSsjICAgICAgICAgICAgIHZhbHVlIHJldHVy bmVkIGluICIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSsjICAgYmFzZW5hbWU6IENvbXB1dGUgZmls ZW5hbWUgb2YgRklMRS4KLSsjICAgICAgICAgICAgIHZhbHVlIHJldHVuZWQgaW4gIiRmdW5jX2Jh c2VuYW1lX3Jlc3VsdCIKLSsjIEltcGxlbWVudGF0aW9uIG11c3QgYmUga2VwdCBzeW5jaHJvbml6 ZWQgd2l0aCBmdW5jX2Rpcm5hbWUKLSsjIGFuZCBmdW5jX2Jhc2VuYW1lLiBGb3IgZWZmaWNpZW5j eSwgd2UgZG8gbm90IGRlbGVnYXRlIHRvCi0rIyB0aG9zZSBmdW5jdGlvbnMgYnV0IGluc3RlYWQg ZHVwbGljYXRlIHRoZSBmdW5jdGlvbmFsaXR5IGhlcmUuCi0rZnVuY19kaXJuYW1lX2FuZF9iYXNl bmFtZSAoKQotK3sKLSsgIGNhc2UgJHsxfSBpbgotKyAgICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1 bHQ9IiR7MSUvKn0kezJ9IiA7OwotKyAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30i IDs7Ci0rICBlc2FjCi0rICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD0iJHsxIyMqL30iCi0rfQotKwot KyMgZnVuY19zdHJpcG5hbWUgcHJlZml4IHN1ZmZpeCBuYW1lCi0rIyBzdHJpcCBQUkVGSVggYW5k IFNVRkZJWCBvZmYgb2YgTkFNRS4KLSsjIFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNvbnRh aW4gZ2xvYmJpbmcgb3IgcmVnZXggc3BlY2lhbAotKyMgY2hhcmFjdGVycywgaGFzaGVzLCBwZXJj ZW50IHNpZ25zLCBidXQgU1VGRklYIG1heSBjb250YWluIGEgbGVhZGluZwotKyMgZG90IChpbiB3 aGljaCBjYXNlIHRoYXQgbWF0Y2hlcyBvbmx5IGEgZG90KS4KLStmdW5jX3N0cmlwbmFtZSAoKQot K3sKLSsgICMgcGRrc2ggNS4yLjE0IGRvZXMgbm90IGRvICR7WCUkWX0gY29ycmVjdGx5IGlmIGJv dGggWCBhbmQgWSBhcmUKLSsgICMgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLCBzbyBhc3NpZ24gb25l IHRvIG9yZGluYXJ5IHBhcmFtZXRlciBmaXJzdC4KLSsgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0k ezN9Ci0rICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQjIiR7 MX0ifQotKyAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0JSIk ezJ9In0KLSt9Ci0rCi0rIyBmdW5jX29wdF9zcGxpdAotK2Z1bmNfb3B0X3NwbGl0ICgpCi0rewot KyAgZnVuY19vcHRfc3BsaXRfb3B0PSR7MSUlPSp9Ci0rICBmdW5jX29wdF9zcGxpdF9hcmc9JHsx Iyo9fQotK30KLSsKLSsjIGZ1bmNfbG8ybyBvYmplY3QKLStmdW5jX2xvMm8gKCkKLSt7Ci0rICBj YXNlICR7MX0gaW4KLSsgICAgKi5sbykgZnVuY19sbzJvX3Jlc3VsdD0kezElLmxvfS4ke29iamV4 dH0gOzsKLSsgICAgKikgICAgZnVuY19sbzJvX3Jlc3VsdD0kezF9IDs7Ci0rICBlc2FjCi0rfQot KwotKyMgZnVuY194Zm9ybSBsaWJvYmotb3Itc291cmNlCi0rZnVuY194Zm9ybSAoKQotK3sKLSsg IGZ1bmNfeGZvcm1fcmVzdWx0PSR7MSUuKn0ubG8KLSt9Ci0rCi0rIyBmdW5jX2FyaXRoIGFyaXRo bWV0aWMtdGVybS4uLgotK2Z1bmNfYXJpdGggKCkKLSt7Ci0rICBmdW5jX2FyaXRoX3Jlc3VsdD0k KCggJFsqXSApKQotK30KLSsKLSsjIGZ1bmNfbGVuIHN0cmluZwotKyMgU1RSSU5HIG1heSBub3Qg c3RhcnQgd2l0aCBhIGh5cGhlbi4KLStmdW5jX2xlbiAoKQotK3sKLSsgIGZ1bmNfbGVuX3Jlc3Vs dD0keyMxfQotK30KLSsKLStfTFRfRU9GCi0rICAgIDs7Ci0rICAqKSAjIEJvdXJuZSBjb21wYXRp YmxlIGZ1bmN0aW9ucy4KLSsgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsKLSsj IGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKLSsjIENvbXB1dGUg dGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1 bHQsCi0rIyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFDRU1FTlQuCi0rZnVu Y19kaXJuYW1lICgpCi0rewotKyAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1 bWVudC4KLSsgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAi JGRpcm5hbWUiYAotKyAgaWYgdGVzdCAiWCRmdW5jX2Rpcm5hbWVfcmVzdWx0IiA9ICJYJHsxfSI7 IHRoZW4KLSsgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIKLSsgIGVsc2UKLSsgICAgZnVu Y19kaXJuYW1lX3Jlc3VsdD0iJGZ1bmNfZGlybmFtZV9yZXN1bHQkezJ9IgotKyAgZmkKLSt9Ci0r Ci0rIyBmdW5jX2Jhc2VuYW1lIGZpbGUKLStmdW5jX2Jhc2VuYW1lICgpCi0rewotKyAgZnVuY19i YXNlbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKLSt9 Ci0rCi0rZG5sIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUKLStkbmwgQSBwb3J0YWJsZSB2ZXJz aW9uIG9mIHRoaXMgZnVuY3Rpb24gaXMgYWxyZWFkeSBkZWZpbmVkIGluIGdlbmVyYWwubTRzaAot K2RubCBzbyB0aGVyZSBpcyBubyBuZWVkIGZvciBpdCBoZXJlLgotKwotKyMgZnVuY19zdHJpcG5h bWUgcHJlZml4IHN1ZmZpeCBuYW1lCi0rIyBzdHJpcCBQUkVGSVggYW5kIFNVRkZJWCBvZmYgb2Yg TkFNRS4KLSsjIFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNvbnRhaW4gZ2xvYmJpbmcgb3Ig cmVnZXggc3BlY2lhbAotKyMgY2hhcmFjdGVycywgaGFzaGVzLCBwZXJjZW50IHNpZ25zLCBidXQg U1VGRklYIG1heSBjb250YWluIGEgbGVhZGluZwotKyMgZG90IChpbiB3aGljaCBjYXNlIHRoYXQg bWF0Y2hlcyBvbmx5IGEgZG90KS4KLSsjIGZ1bmNfc3RyaXBfc3VmZml4IHByZWZpeCBuYW1lCi0r ZnVuY19zdHJpcG5hbWUgKCkKLSt7Ci0rICBjYXNlICR7Mn0gaW4KLSsgICAgLiopIGZ1bmNfc3Ry aXBuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezN9IiBcCi0rICAgICAgICAgICB8ICRYc2VkIC1lICJz JV4kezF9JSUiIC1lICJzJVxcXFwkezJ9XCQlJSJgOzsKLSsgICAgKikgIGZ1bmNfc3RyaXBuYW1l X3Jlc3VsdD1gJEVDSE8gIlgkezN9IiBcCi0rICAgICAgICAgICB8ICRYc2VkIC1lICJzJV4kezF9 JSUiIC1lICJzJSR7Mn1cJCUlImA7OwotKyAgZXNhYwotK30KLSsKLSsjIHNlZCBzY3JpcHRzOgot K215X3NlZF9sb25nX29wdD0nMXMvXlwoLVtbXj1dXSpcKT0uKi9cMS87cScKLStteV9zZWRfbG9u Z19hcmc9JzFzL14tW1tePV1dKj0vLycKLSsKLSsjIGZ1bmNfb3B0X3NwbGl0Ci0rZnVuY19vcHRf c3BsaXQgKCkKLSt7Ci0rICBmdW5jX29wdF9zcGxpdF9vcHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNl ZCAtZSAiJG15X3NlZF9sb25nX29wdCJgCi0rICBmdW5jX29wdF9zcGxpdF9hcmc9YCRFQ0hPICJY JHsxfSIgfCAkWHNlZCAtZSAiJG15X3NlZF9sb25nX2FyZyJgCi0rfQotKwotKyMgZnVuY19sbzJv IG9iamVjdAotK2Z1bmNfbG8ybyAoKQotK3sKLSsgIGZ1bmNfbG8yb19yZXN1bHQ9YCRFQ0hPICJY JHsxfSIgfCAkWHNlZCAtZSAiJGxvMm8iYAotK30KLSsKLSsjIGZ1bmNfeGZvcm0gbGlib2JqLW9y LXNvdXJjZQotK2Z1bmNfeGZvcm0gKCkKLSt7Ci0rICBmdW5jX3hmb3JtX3Jlc3VsdD1gJEVDSE8g IlgkezF9IiB8ICRYc2VkIC1lICdzL1wuW1teLl1dKiQvLmxvLydgCi0rfQotKwotKyMgZnVuY19h cml0aCBhcml0aG1ldGljLXRlcm0uLi4KLStmdW5jX2FyaXRoICgpCi0rewotKyAgZnVuY19hcml0 aF9yZXN1bHQ9YGV4cHIgIiRbQF0iYAotK30KLSsKLSsjIGZ1bmNfbGVuIHN0cmluZwotKyMgU1RS SU5HIG1heSBub3Qgc3RhcnQgd2l0aCBhIGh5cGhlbi4KLStmdW5jX2xlbiAoKQotK3sKLSsgIGZ1 bmNfbGVuX3Jlc3VsdD1gZXhwciAiJFsxXSIgOiAiLioiIDI+L2Rldi9udWxsIHx8IGVjaG8gJG1h eF9jbWRfbGVuYAotK30KLSsKLStfTFRfRU9GCi0rZXNhYwotKwotK2Nhc2UgJGx0X3NoZWxsX2Fw cGVuZCBpbgotKyAgeWVzKQotKyAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgotKwot KyMgZnVuY19hcHBlbmQgdmFyIHZhbHVlCi0rIyBBcHBlbmQgVkFMVUUgdG8gdGhlIGVuZCBvZiBz aGVsbCB2YXJpYWJsZSBWQVIuCi0rZnVuY19hcHBlbmQgKCkKLSt7Ci0rICBldmFsICIkWzFdKz1c JFsyXSIKLSt9Ci0rX0xUX0VPRgotKyAgICA7OwotKyAgKikKLSsgICAgY2F0IDw8IFxfTFRfRU9G ID4+ICIkY2ZnZmlsZSIKLSsKLSsjIGZ1bmNfYXBwZW5kIHZhciB2YWx1ZQotKyMgQXBwZW5kIFZB TFVFIHRvIHRoZSBlbmQgb2Ygc2hlbGwgdmFyaWFibGUgVkFSLgotK2Z1bmNfYXBwZW5kICgpCi0r ewotKyAgZXZhbCAiJFsxXT1cJCRbMV1cJFsyXSIKLSt9Ci0rCi0rX0xUX0VPRgotKyAgICA7Owot KyAgZXNhYwotK10pCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0bWFpbi5z aCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0bWFpbi5zaAotLS0tIHNvY2ktMy4wLjBfNC1w YWNrL2NvbmZpZy9sdG1haW4uc2gJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0bWFpbi5zaAkyMDEwLTAxLTIzIDE0OjQ0 OjQzLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw4NDA2IEBACi0rIyBHZW5lcmF0ZWQgZnJv bSBsdG1haW4ubTRzaC4KLSsKLSsjIGx0bWFpbi5zaCAoR05VIGxpYnRvb2wpIDIuMi42YgotKyMg V3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCA8Z29yZEBnbnUuYWkubWl0LmVkdT4sIDE5OTYK LSsKLSsjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwg MjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgotKyMgVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29w eWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KLSsjIHdhcnJhbnR5OyBub3QgZXZlbiBmb3Ig TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgotKwot KyMgR05VIExpYnRvb2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24g dG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAotKyMgaWYgeW91IGRpc3RyaWJ1dGUg dGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIG9yIGxpYnJhcnkgdGhhdAotKyMgaXMgYnVp bHQgdXNpbmcgR05VIExpYnRvb2wsIHlvdSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhl Ci0rIyBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9m IHRoYXQgcHJvZ3JhbS4KLSsjCi0rIyBHTlUgTGlidG9vbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKLSsjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rIyBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK LSsjIGFsb25nIHdpdGggR05VIExpYnRvb2w7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90 LCBhIGNvcHkKLSsjIGNhbiBiZSBkb3dubG9hZGVkIGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzL2dwbC5odG1sLAotKyMgb3Igb2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAotKyMgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG bG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0rCi0rIyBVc2FnZTogJHByb2duYW1l IFtPUFRJT05dLi4uIFtNT0RFLUFSR10uLi4KLSsjCi0rIyBQcm92aWRlIGdlbmVyYWxpemVkIGxp YnJhcnktYnVpbGRpbmcgc3VwcG9ydCBzZXJ2aWNlcy4KLSsjCi0rIyAgICAgLS1jb25maWcgICAg ICAgICAgICAgc2hvdyBhbGwgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMKLSsjICAgICAtLWRlYnVn ICAgICAgICAgICAgICBlbmFibGUgdmVyYm9zZSBzaGVsbCB0cmFjaW5nCi0rIyAtbiwgLS1kcnkt cnVuICAgICAgICAgICAgZGlzcGxheSBjb21tYW5kcyB3aXRob3V0IG1vZGlmeWluZyBhbnkgZmls ZXMKLSsjICAgICAtLWZlYXR1cmVzICAgICAgICAgICBkaXNwbGF5IGJhc2ljIGNvbmZpZ3VyYXRp b24gaW5mb3JtYXRpb24gYW5kIGV4aXQKLSsjICAgICAtLW1vZGU9TU9ERSAgICAgICAgICB1c2Ug b3BlcmF0aW9uIG1vZGUgTU9ERQotKyMgICAgIC0tcHJlc2VydmUtZHVwLWRlcHMgIGRvbid0IHJl bW92ZSBkdXBsaWNhdGUgZGVwZW5kZW5jeSBsaWJyYXJpZXMKLSsjICAgICAtLXF1aWV0LCAtLXNp bGVudCAgICBkb24ndCBwcmludCBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzCi0rIyAgICAgLS10YWc9 VEFHICAgICAgICAgICAgdXNlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZyb20gdGFnIFRBRwot KyMgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHByaW50IGluZm9ybWF0aW9uYWwgbWVzc2FnZXMg KGRlZmF1bHQpCi0rIyAgICAgLS12ZXJzaW9uICAgICAgICAgICAgcHJpbnQgdmVyc2lvbiBpbmZv cm1hdGlvbgotKyMgLWgsIC0taGVscCAgICAgICAgICAgICAgIHByaW50IHNob3J0IG9yIGxvbmcg aGVscCBtZXNzYWdlCi0rIwotKyMgTU9ERSBtdXN0IGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOgot KyMKLSsjICAgICAgIGNsZWFuICAgICAgICAgICAgICByZW1vdmUgZmlsZXMgZnJvbSB0aGUgYnVp bGQgZGlyZWN0b3J5Ci0rIyAgICAgICBjb21waWxlICAgICAgICAgICAgY29tcGlsZSBhIHNvdXJj ZSBmaWxlIGludG8gYSBsaWJ0b29sIG9iamVjdAotKyMgICAgICAgZXhlY3V0ZSAgICAgICAgICAg IGF1dG9tYXRpY2FsbHkgc2V0IGxpYnJhcnkgcGF0aCwgdGhlbiBydW4gYSBwcm9ncmFtCi0rIyAg ICAgICBmaW5pc2ggICAgICAgICAgICAgY29tcGxldGUgdGhlIGluc3RhbGxhdGlvbiBvZiBsaWJ0 b29sIGxpYnJhcmllcwotKyMgICAgICAgaW5zdGFsbCAgICAgICAgICAgIGluc3RhbGwgbGlicmFy aWVzIG9yIGV4ZWN1dGFibGVzCi0rIyAgICAgICBsaW5rICAgICAgICAgICAgICAgY3JlYXRlIGEg bGlicmFyeSBvciBhbiBleGVjdXRhYmxlCi0rIyAgICAgICB1bmluc3RhbGwgICAgICAgICAgcmVt b3ZlIGxpYnJhcmllcyBmcm9tIGFuIGluc3RhbGxlZCBkaXJlY3RvcnkKLSsjCi0rIyBNT0RFLUFS R1MgdmFyeSBkZXBlbmRpbmcgb24gdGhlIE1PREUuCi0rIyBUcnkgYCRwcm9nbmFtZSAtLWhlbHAg LS1tb2RlPU1PREUnIGZvciBhIG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgTU9ERS4KLSsj Ci0rIyBXaGVuIHJlcG9ydGluZyBhIGJ1ZywgcGxlYXNlIGRlc2NyaWJlIGEgdGVzdCBjYXNlIHRv IHJlcHJvZHVjZSBpdCBhbmQKLSsjIGluY2x1ZGUgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoK LSsjCi0rIyAgICAgICBob3N0LXRyaXBsZXQ6CSRob3N0Ci0rIyAgICAgICBzaGVsbDoJCSRTSEVM TAotKyMgICAgICAgY29tcGlsZXI6CQkkTFRDQwotKyMgICAgICAgY29tcGlsZXIgZmxhZ3M6CQkk TFRDRkxBR1MKLSsjICAgICAgIGxpbmtlcjoJCSRMRCAoZ251PyAkd2l0aF9nbnVfbGQpCi0rIyAg ICAgICAkcHJvZ25hbWU6CQkoR05VIGxpYnRvb2wpIDIuMi42YgotKyMgICAgICAgYXV0b21ha2U6 CQkkYXV0b21ha2VfdmVyc2lvbgotKyMgICAgICAgYXV0b2NvbmY6CQkkYXV0b2NvbmZfdmVyc2lv bgotKyMKLSsjIFJlcG9ydCBidWdzIHRvIDxidWctbGlidG9vbEBnbnUub3JnPi4KLSsKLStQUk9H UkFNPWx0bWFpbi5zaAotK1BBQ0tBR0U9bGlidG9vbAotK1ZFUlNJT049Mi4yLjZiCi0rVElNRVNU QU1QPSIiCi0rcGFja2FnZV9yZXZpc2lvbj0xLjMwMTcKLSsKLSsjIEJlIEJvdXJuZSBjb21wYXRp YmxlCi0raWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9k ZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBlbXVsYXRlIHNoCi0rICBOVUxMQ01EPToKLSsgICMgWnNo IDMueCBhbmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gK LSsgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCi0r ICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKLSsgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0r ZWxzZQotKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGluICpwb3NpeCopIHNldCAtbyBw b3NpeDs7IGVzYWMKLStmaQotK0JJTl9TSD14cGc0OyBleHBvcnQgQklOX1NIICMgZm9yIFRydTY0 Ci0rRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAotKwotKyMgTkxTIG51 aXNhbmNlczogV2Ugc2F2ZSB0aGUgb2xkIHZhbHVlcyB0byByZXN0b3JlIGR1cmluZyBleGVjdXRl IG1vZGUuCi0rIyBPbmx5IHNldCBMQU5HIGFuZCBMQ19BTEwgdG8gQyBpZiBhbHJlYWR5IHNldC4K LSsjIFRoZXNlIG11c3Qgbm90IGJlIHNldCB1bmNvbmRpdGlvbmFsbHkgYmVjYXVzZSBub3QgYWxs IHN5c3RlbXMgdW5kZXJzdGFuZAotKyMgZS5nLiBMQU5HPUMgKG5vdGFibHkgU0NPKS4KLStsdF91 c2VyX2xvY2FsZT0KLStsdF9zYWZlX2xvY2FsZT0KLStmb3IgbHRfdmFyIGluIExBTkcgTEFOR1VB R0UgTENfQUxMIExDX0NUWVBFIExDX0NPTExBVEUgTENfTUVTU0FHRVMKLStkbwotKyAgZXZhbCAi aWYgdGVzdCBcIlwkeyRsdF92YXIrc2V0fVwiID0gc2V0OyB0aGVuCi0rICAgICAgICAgIHNhdmVf JGx0X3Zhcj1cJCRsdF92YXIKLSsgICAgICAgICAgJGx0X3Zhcj1DCi0rCSAgZXhwb3J0ICRsdF92 YXIKLSsJICBsdF91c2VyX2xvY2FsZT1cIiRsdF92YXI9XFxcJHNhdmVfXCRsdF92YXI7IFwkbHRf dXNlcl9sb2NhbGVcIgotKwkgIGx0X3NhZmVfbG9jYWxlPVwiJGx0X3Zhcj1DOyBcJGx0X3NhZmVf bG9jYWxlXCIKLSsJZmkiCi0rZG9uZQotKwotKyRsdF91bnNldCBDRFBBVEgKLSsKLSsKLSsKLSsK LSsKLSs6ICR7Q1A9ImNwIC1mIn0KLSs6ICR7RUNITz0iZWNobyJ9Ci0rOiAke0VHUkVQPSIvYmlu L2dyZXAgLUUifQotKzogJHtGR1JFUD0iL2Jpbi9ncmVwIC1GIn0KLSs6ICR7R1JFUD0iL2Jpbi9n cmVwIn0KLSs6ICR7TE5fUz0ibG4gLXMifQotKzogJHtNQUtFPSJtYWtlIn0KLSs6ICR7TUtESVI9 Im1rZGlyIn0KLSs6ICR7TVY9Im12IC1mIn0KLSs6ICR7Uk09InJtIC1mIn0KLSs6ICR7U0VEPSIv YmluL3NlZCJ9Ci0rOiAke1NIRUxMPSIke0NPTkZJR19TSEVMTC0vYmluL3NofSJ9Ci0rOiAke1hz ZWQ9IiRTRUQgLWUgMXMvXlgvLyJ9Ci0rCi0rIyBHbG9iYWwgdmFyaWFibGVzOgotK0VYSVRfU1VD Q0VTUz0wCi0rRVhJVF9GQUlMVVJFPTEKLStFWElUX01JU01BVENIPTYzICAjICQ/ID0gNjMgaXMg dXNlZCB0byBpbmRpY2F0ZSB2ZXJzaW9uIG1pc21hdGNoIHRvIG1pc3NpbmcuCi0rRVhJVF9TS0lQ PTc3CSAgIyAkPyA9IDc3IGlzIHVzZWQgdG8gaW5kaWNhdGUgYSBza2lwcGVkIHRlc3QgdG8gYXV0 b21ha2UuCi0rCi0rZXhpdF9zdGF0dXM9JEVYSVRfU1VDQ0VTUwotKwotKyMgTWFrZSBzdXJlIElG UyBoYXMgYSBzZW5zaWJsZSBkZWZhdWx0Ci0rbHRfbmw9JwotKycKLStJRlM9IiAJJGx0X25sIgot KwotK2Rpcm5hbWU9InMsL1teL10qJCwsIgotK2Jhc2VuYW1lPSJzLF4uKi8sLCIKLSsKLSsjIGZ1 bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50Ci0r IyBwZXJmb3JtIGZ1bmNfYmFzZW5hbWUgYW5kIGZ1bmNfZGlybmFtZSBpbiBhIHNpbmdsZSBmdW5j dGlvbgotKyMgY2FsbDoKLSsjICAgZGlybmFtZTogIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklM RS4gIElmIG5vbmVtcHR5LAotKyMgICAgICAgICAgICAgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0 LCBvdGhlcndpc2Ugc2V0IHJlc3VsdAotKyMgICAgICAgICAgICAgdG8gTk9ORElSX1JFUExBQ0VN RU5ULgotKyMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVfcmVz dWx0IgotKyMgICBiYXNlbmFtZTogQ29tcHV0ZSBmaWxlbmFtZSBvZiBGSUxFLgotKyMgICAgICAg ICAgICAgdmFsdWUgcmV0dW5lZCBpbiAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKyMgSW1wbGVt ZW50YXRpb24gbXVzdCBiZSBrZXB0IHN5bmNocm9uaXplZCB3aXRoIGZ1bmNfZGlybmFtZQotKyMg YW5kIGZ1bmNfYmFzZW5hbWUuIEZvciBlZmZpY2llbmN5LCB3ZSBkbyBub3QgZGVsZWdhdGUgdG8K LSsjIHRob3NlIGZ1bmN0aW9ucyBidXQgaW5zdGVhZCBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9uYWxp dHkgaGVyZS4KLStmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgpCi0rewotKyAgIyBFeHRyYWN0 IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KLSsgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9 YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGRpcm5hbWUiYAotKyAgaWYgdGVzdCAiWCRmdW5j X2Rpcm5hbWVfcmVzdWx0IiA9ICJYJHsxfSI7IHRoZW4KLSsgICAgZnVuY19kaXJuYW1lX3Jlc3Vs dD0iJHszfSIKLSsgIGVsc2UKLSsgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJGZ1bmNfZGlybmFt ZV9yZXN1bHQkezJ9IgotKyAgZmkKLSsgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PWAkRUNITyAiWCR7 MX0iIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCi0rfQotKwotKyMgR2VuZXJhdGVkIHNoZWxsIGZ1 bmN0aW9ucyBpbnNlcnRlZCBoZXJlLgotKwotKyMgV29yayBhcm91bmQgYmFja3dhcmQgY29tcGF0 aWJpbGl0eSBpc3N1ZSBvbiBJUklYIDYuNS4gT24gSVJJWCA2LjQrLCBzaAotKyMgaXMga3NoIGJ1 dCB3aGVuIHRoZSBzaGVsbCBpcyBpbnZva2VkIGFzICJzaCIgYW5kIHRoZSBjdXJyZW50IHZhbHVl IG9mCi0rIyB0aGUgX1hQRyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3QgZXF1YWwgdG8gMSAo b25lKSwgdGhlIHNwZWNpYWwKLSsjIHBvc2l0aW9uYWwgcGFyYW1ldGVyICQwLCB3aXRoaW4gYSBm dW5jdGlvbiBjYWxsLCBpcyB0aGUgbmFtZSBvZiB0aGUKLSsjIGZ1bmN0aW9uLgotK3Byb2dwYXRo PSIkMCIKLSsKLSsjIFRoZSBuYW1lIG9mIHRoaXMgcHJvZ3JhbToKLSsjIEluIHRoZSB1bmxpa2Vs eSBldmVudCAkcHJvZ25hbWUgYmVnYW4gd2l0aCBhICctJywgaXQgd291bGQgcGxheSBoYXZvYyB3 aXRoCi0rIyBmdW5jX2VjaG8gKGltYWdpbmUgcHJvZ25hbWU9LW4pLCBzbyB3ZSBwcmVwZW5kIC4v IGluIHRoYXQgY2FzZToKLStmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICIkcHJvZ3BhdGgiCi0r cHJvZ25hbWU9JGZ1bmNfYmFzZW5hbWVfcmVzdWx0Ci0rY2FzZSAkcHJvZ25hbWUgaW4KLSsgIC0q KSBwcm9nbmFtZT0uLyRwcm9nbmFtZSA7OwotK2VzYWMKLSsKLSsjIE1ha2Ugc3VyZSB3ZSBoYXZl IGFuIGFic29sdXRlIHBhdGggZm9yIHJlZXhlY3V0aW9uOgotK2Nhc2UgJHByb2dwYXRoIGluCi0r ICBbXFwvXSp8W0EtWmEtel06XFwqKSA7OwotKyAgKltcXC9dKikKLSsgICAgIHByb2dkaXI9JGZ1 bmNfZGlybmFtZV9yZXN1bHQKLSsgICAgIHByb2dkaXI9YGNkICIkcHJvZ2RpciIgJiYgcHdkYAot KyAgICAgcHJvZ3BhdGg9IiRwcm9nZGlyLyRwcm9nbmFtZSIKLSsgICAgIDs7Ci0rICAqKQotKyAg ICAgc2F2ZV9JRlM9IiRJRlMiCi0rICAgICBJRlM9OgotKyAgICAgZm9yIHByb2dkaXIgaW4gJFBB VEg7IGRvCi0rICAgICAgIElGUz0iJHNhdmVfSUZTIgotKyAgICAgICB0ZXN0IC14ICIkcHJvZ2Rp ci8kcHJvZ25hbWUiICYmIGJyZWFrCi0rICAgICBkb25lCi0rICAgICBJRlM9IiRzYXZlX0lGUyIK LSsgICAgIHRlc3QgLW4gIiRwcm9nZGlyIiB8fCBwcm9nZGlyPWBwd2RgCi0rICAgICBwcm9ncGF0 aD0iJHByb2dkaXIvJHByb2duYW1lIgotKyAgICAgOzsKLStlc2FjCi0rCi0rIyBTZWQgc3Vic3Rp dHV0aW9uIHRoYXQgaGVscHMgdXMgZG8gcm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xhc2hpZmll cwotKyMgbWV0YWNoYXJhY3RlcnMgdGhhdCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUt cXVvdGVkIHN0cmluZ3MuCi0rWHNlZD0iJHtTRUR9IicgLWUgMXMvXlgvLycKLStzZWRfcXVvdGVf c3Vic3Q9J3MvXChbYCIkXFxdXCkvXFxcMS9nJwotKwotKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGRv IG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgotK2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9c KFsiYFxcXVwpL1xcXDEvZycKLSsKLSsjIFJlLWBcJyBwYXJhbWV0ZXIgZXhwYW5zaW9ucyBpbiBv dXRwdXQgb2YgZG91YmxlX3F1b3RlX3N1YnN0IHRoYXQgd2VyZQotKyMgYFwnLWVkIGluIGlucHV0 IHRvIHRoZSBzYW1lLiAgSWYgYW4gb2RkIG51bWJlciBvZiBgXCcgcHJlY2VkZWQgYSAnJCcKLSsj IGluIGlucHV0IHRvIGRvdWJsZV9xdW90ZV9zdWJzdCwgdGhhdCAnJCcgd2FzIHByb3RlY3RlZCBm cm9tIGV4cGFuc2lvbi4KLSsjIFNpbmNlIGVhY2ggaW5wdXQgYFwnIGlzIG5vdyB0d28gYFwncywg bG9vayBmb3IgYW55IG51bWJlciBvZiBydW5zIG9mCi0rIyBmb3VyIGBcJ3MgZm9sbG93ZWQgYnkg dHdvIGBcJ3MgYW5kIHRoZW4gYSAnJCcuICBgXCcgdGhhdCAnJCcuCi0rYnM9J1xcJwotK2JzMj0n XFxcXCcKLSticzQ9J1xcXFxcXFxcJwotK2RvbGxhcj0nXCQnCi0rc2VkX2RvdWJsZV9iYWNrc2xh c2g9IlwKLSsgIHMvJGJzNC8mXFwKLSsvZwotKyAgcy9eJGJzMiRkb2xsYXIvJGJzJi8KLSsgIHMv XFwoW14kYnNdXFwpJGJzMiRkb2xsYXIvXFwxJGJzMiRicyRkb2xsYXIvZwotKyAgcy9cbi8vZyIK LSsKLSsjIFN0YW5kYXJkIG9wdGlvbnM6Ci0rb3B0X2RyeV9ydW49ZmFsc2UKLStvcHRfaGVscD1m YWxzZQotK29wdF9xdWlldD1mYWxzZQotK29wdF92ZXJib3NlPWZhbHNlCi0rb3B0X3dhcm5pbmc9 OgotKwotKyMgZnVuY19lY2hvIGFyZy4uLgotKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQg bWVzc2FnZSwgYWxvbmcgd2l0aCB0aGUgY3VycmVudCBtb2RlCi0rIyBuYW1lIGlmIGl0IGhhcyBi ZWVuIHNldCB5ZXQuCi0rZnVuY19lY2hvICgpCi0rewotKyAgICAkRUNITyAiJHByb2duYW1lJHtt b2RlKzogfSRtb2RlOiAkKiIKLSt9Ci0rCi0rIyBmdW5jX3ZlcmJvc2UgYXJnLi4uCi0rIyBFY2hv IHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIGluIHZlcmJvc2UgbW9kZSBvbmx5LgotK2Z1 bmNfdmVyYm9zZSAoKQotK3sKLSsgICAgJG9wdF92ZXJib3NlICYmIGZ1bmNfZWNobyAkezErIiRA In0KLSsKLSsgICAgIyBBIGJ1ZyBpbiBiYXNoIGhhbHRzIHRoZSBzY3JpcHQgaWYgdGhlIGxhc3Qg bGluZSBvZiBhIGZ1bmN0aW9uCi0rICAgICMgZmFpbHMgd2hlbiBzZXQgLWUgaXMgaW4gZm9yY2Us IHNvIHdlIG5lZWQgYW5vdGhlciBjb21tYW5kIHRvCi0rICAgICMgd29yayBhcm91bmQgdGhhdDoK LSsgICAgOgotK30KLSsKLSsjIGZ1bmNfZXJyb3IgYXJnLi4uCi0rIyBFY2hvIHByb2dyYW0gbmFt ZSBwcmVmaXhlZCBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yLgotK2Z1bmNfZXJyb3IgKCkKLSt7 Ci0rICAgICRFQ0hPICIkcHJvZ25hbWUke21vZGUrOiB9JG1vZGU6ICIkezErIiRAIn0gMT4mMgot K30KLSsKLSsjIGZ1bmNfd2FybmluZyBhcmcuLi4KLSsjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZp eGVkIHdhcm5pbmcgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvci4KLStmdW5jX3dhcm5pbmcgKCkK LSt7Ci0rICAgICRvcHRfd2FybmluZyAmJiAkRUNITyAiJHByb2duYW1lJHttb2RlKzogfSRtb2Rl OiB3YXJuaW5nOiAiJHsxKyIkQCJ9IDE+JjIKLSsKLSsgICAgIyBiYXNoIGJ1ZyBhZ2FpbjoKLSsg ICAgOgotK30KLSsKLSsjIGZ1bmNfZmF0YWxfZXJyb3IgYXJnLi4uCi0rIyBFY2hvIHByb2dyYW0g bmFtZSBwcmVmaXhlZCBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yLCBhbmQgZXhpdC4KLStmdW5j X2ZhdGFsX2Vycm9yICgpCi0rewotKyAgICBmdW5jX2Vycm9yICR7MSsiJEAifQotKyAgICBleGl0 ICRFWElUX0ZBSUxVUkUKLSt9Ci0rCi0rIyBmdW5jX2ZhdGFsX2hlbHAgYXJnLi4uCi0rIyBFY2hv IHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yLCBmb2xsb3dl ZCBieQotKyMgYSBoZWxwIGhpbnQsIGFuZCBleGl0LgotK2Z1bmNfZmF0YWxfaGVscCAoKQotK3sK LSsgICAgZnVuY19lcnJvciAkezErIiRAIn0KLSsgICAgZnVuY19mYXRhbF9lcnJvciAiJGhlbHAi Ci0rfQotK2hlbHA9IlRyeSBcYCRwcm9nbmFtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9u LiIgICMjIGRlZmF1bHQKLSsKLSsKLSsjIGZ1bmNfZ3JlcCBleHByZXNzaW9uIGZpbGVuYW1lCi0r IyBDaGVjayB3aGV0aGVyIEVYUFJFU1NJT04gbWF0Y2hlcyBhbnkgbGluZSBvZiBGSUxFTkFNRSwg d2l0aG91dCBvdXRwdXQuCi0rZnVuY19ncmVwICgpCi0rewotKyAgICAkR1JFUCAiJDEiICIkMiIg Pi9kZXYvbnVsbCAyPiYxCi0rfQotKwotKwotKyMgZnVuY19ta2Rpcl9wIGRpcmVjdG9yeS1wYXRo Ci0rIyBNYWtlIHN1cmUgdGhlIGVudGlyZSBwYXRoIHRvIERJUkVDVE9SWS1QQVRIIGlzIGF2YWls YWJsZS4KLStmdW5jX21rZGlyX3AgKCkKLSt7Ci0rICAgIG15X2RpcmVjdG9yeV9wYXRoPSIkMSIK LSsgICAgbXlfZGlyX2xpc3Q9Ci0rCi0rICAgIGlmIHRlc3QgLW4gIiRteV9kaXJlY3RvcnlfcGF0 aCIgJiYgdGVzdCAiJG9wdF9kcnlfcnVuIiAhPSAiOiI7IHRoZW4KLSsKLSsgICAgICAjIFByb3Rl Y3QgZGlyZWN0b3J5IG5hbWVzIHN0YXJ0aW5nIHdpdGggYC0nCi0rICAgICAgY2FzZSAkbXlfZGly ZWN0b3J5X3BhdGggaW4KLSsgICAgICAgIC0qKSBteV9kaXJlY3RvcnlfcGF0aD0iLi8kbXlfZGly ZWN0b3J5X3BhdGgiIDs7Ci0rICAgICAgZXNhYwotKwotKyAgICAgICMgV2hpbGUgc29tZSBwb3J0 aW9uIG9mIERJUiBkb2VzIG5vdCB5ZXQgZXhpc3QuLi4KLSsgICAgICB3aGlsZSB0ZXN0ICEgLWQg IiRteV9kaXJlY3RvcnlfcGF0aCI7IGRvCi0rICAgICAgICAjIC4uLm1ha2UgYSBsaXN0IGluIHRv cG1vc3QgZmlyc3Qgb3JkZXIuICBVc2UgYSBjb2xvbiBkZWxpbWl0ZWQKLSsJIyBsaXN0IGluY2Fz ZSBzb21lIHBvcnRpb24gb2YgcGF0aCBjb250YWlucyB3aGl0ZXNwYWNlLgotKyAgICAgICAgbXlf ZGlyX2xpc3Q9IiRteV9kaXJlY3RvcnlfcGF0aDokbXlfZGlyX2xpc3QiCi0rCi0rICAgICAgICAj IElmIHRoZSBsYXN0IHBvcnRpb24gYWRkZWQgaGFzIG5vIHNsYXNoIGluIGl0LCB0aGUgbGlzdCBp cyBkb25lCi0rICAgICAgICBjYXNlICRteV9kaXJlY3RvcnlfcGF0aCBpbiAqLyopIDs7ICopIGJy ZWFrIDs7IGVzYWMKLSsKLSsgICAgICAgICMgLi4ub3RoZXJ3aXNlIHRocm93IGF3YXkgdGhlIGNo aWxkIGRpcmVjdG9yeSBhbmQgbG9vcAotKyAgICAgICAgbXlfZGlyZWN0b3J5X3BhdGg9YCRFQ0hP ICJYJG15X2RpcmVjdG9yeV9wYXRoIiB8ICRYc2VkIC1lICIkZGlybmFtZSJgCi0rICAgICAgZG9u ZQotKyAgICAgIG15X2Rpcl9saXN0PWAkRUNITyAiWCRteV9kaXJfbGlzdCIgfCAkWHNlZCAtZSAn cyw6KiQsLCdgCi0rCi0rICAgICAgc2F2ZV9ta2Rpcl9wX0lGUz0iJElGUyI7IElGUz0nOicKLSsg ICAgICBmb3IgbXlfZGlyIGluICRteV9kaXJfbGlzdDsgZG8KLSsJSUZTPSIkc2F2ZV9ta2Rpcl9w X0lGUyIKLSsgICAgICAgICMgbWtkaXIgY2FuIGZhaWwgd2l0aCBhIGBGaWxlIGV4aXN0JyBlcnJv ciBpZiB0d28gcHJvY2Vzc2VzCi0rICAgICAgICAjIHRyeSB0byBjcmVhdGUgb25lIG9mIHRoZSBk aXJlY3RvcmllcyBjb25jdXJyZW50bHkuICBEb24ndAotKyAgICAgICAgIyBzdG9wIGluIHRoYXQg Y2FzZSEKLSsgICAgICAgICRNS0RJUiAiJG15X2RpciIgMj4vZGV2L251bGwgfHwgOgotKyAgICAg IGRvbmUKLSsgICAgICBJRlM9IiRzYXZlX21rZGlyX3BfSUZTIgotKwotKyAgICAgICMgQmFpbCBv dXQgaWYgd2UgKG9yIHNvbWUgb3RoZXIgcHJvY2VzcykgZmFpbGVkIHRvIGNyZWF0ZSBhIGRpcmVj dG9yeS4KLSsgICAgICB0ZXN0IC1kICIkbXlfZGlyZWN0b3J5X3BhdGgiIHx8IFwKLSsgICAgICAg IGZ1bmNfZmF0YWxfZXJyb3IgIkZhaWxlZCB0byBjcmVhdGUgXGAkMSciCi0rICAgIGZpCi0rfQot KwotKwotKyMgZnVuY19ta3RlbXBkaXIgW3N0cmluZ10KLSsjIE1ha2UgYSB0ZW1wb3JhcnkgZGly ZWN0b3J5IHRoYXQgd29uJ3QgY2xhc2ggd2l0aCBvdGhlciBydW5uaW5nCi0rIyBsaWJ0b29sIHBy b2Nlc3NlcywgYW5kIGF2b2lkcyByYWNlIGNvbmRpdGlvbnMgaWYgcG9zc2libGUuICBJZgotKyMg Z2l2ZW4sIFNUUklORyBpcyB0aGUgYmFzZW5hbWUgZm9yIHRoYXQgZGlyZWN0b3J5LgotK2Z1bmNf bWt0ZW1wZGlyICgpCi0rewotKyAgICBteV90ZW1wbGF0ZT0iJHtUTVBESVItL3RtcH0vJHsxLSRw cm9nbmFtZX0iCi0rCi0rICAgIGlmIHRlc3QgIiRvcHRfZHJ5X3J1biIgPSAiOiI7IHRoZW4KLSsg ICAgICAjIFJldHVybiBhIGRpcmVjdG9yeSBuYW1lLCBidXQgZG9uJ3QgY3JlYXRlIGl0IGluIGRy eS1ydW4gbW9kZQotKyAgICAgIG15X3RtcGRpcj0iJHtteV90ZW1wbGF0ZX0tJCQiCi0rICAgIGVs c2UKLSsKLSsgICAgICAjIElmIG1rdGVtcCB3b3JrcywgdXNlIHRoYXQgZmlyc3QgYW5kIGZvcmVt b3N0Ci0rICAgICAgbXlfdG1wZGlyPWBta3RlbXAgLWQgIiR7bXlfdGVtcGxhdGV9LVhYWFhYWFhY IiAyPi9kZXYvbnVsbGAKLSsKLSsgICAgICBpZiB0ZXN0ICEgLWQgIiRteV90bXBkaXIiOyB0aGVu Ci0rICAgICAgICAjIEZhaWxpbmcgdGhhdCwgYXQgbGVhc3QgdHJ5IGFuZCB1c2UgJFJBTkRPTSB0 byBhdm9pZCBhIHJhY2UKLSsgICAgICAgIG15X3RtcGRpcj0iJHtteV90ZW1wbGF0ZX0tJHtSQU5E T00tMH0kJCIKLSsKLSsgICAgICAgIHNhdmVfbWt0ZW1wZGlyX3VtYXNrPWB1bWFza2AKLSsgICAg ICAgIHVtYXNrIDAwNzcKLSsgICAgICAgICRNS0RJUiAiJG15X3RtcGRpciIKLSsgICAgICAgIHVt YXNrICRzYXZlX21rdGVtcGRpcl91bWFzawotKyAgICAgIGZpCi0rCi0rICAgICAgIyBJZiB3ZSdy ZSBub3QgaW4gZHJ5LXJ1biBtb2RlLCBib21iIG91dCBvbiBmYWlsdXJlCi0rICAgICAgdGVzdCAt ZCAiJG15X3RtcGRpciIgfHwgXAotKyAgICAgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGNy ZWF0ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IFxgJG15X3RtcGRpciciCi0rICAgIGZpCi0rCi0rICAg ICRFQ0hPICJYJG15X3RtcGRpciIgfCAkWHNlZAotK30KLSsKLSsKLSsjIGZ1bmNfcXVvdGVfZm9y X2V2YWwgYXJnCi0rIyBBZXN0aGV0aWNhbGx5IHF1b3RlIEFSRyB0byBiZSBldmFsZWQgbGF0ZXIu Ci0rIyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdHdvIHZhbHVlczogRlVOQ19RVU9URV9GT1JfRVZB TF9SRVNVTFQKLSsjIGlzIGRvdWJsZS1xdW90ZWQsIHN1aXRhYmxlIGZvciBhIHN1YnNlcXVlbnQg ZXZhbCwgd2hlcmVhcwotKyMgRlVOQ19RVU9URV9GT1JfRVZBTF9VTlFVT1RFRF9SRVNVTFQgaGFz IG1lcmVseSBhbGwgY2hhcmFjdGVycwotKyMgd2hpY2ggYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4g ZG91YmxlIHF1b3RlcyBiYWNrc2xhc2hpZmllZC4KLStmdW5jX3F1b3RlX2Zvcl9ldmFsICgpCi0r ewotKyAgICBjYXNlICQxIGluCi0rICAgICAgKltcXFxgXCJcJF0qKQotKwlmdW5jX3F1b3RlX2Zv cl9ldmFsX3VucXVvdGVkX3Jlc3VsdD1gJEVDSE8gIlgkMSIgfCAkWHNlZCAtZSAiJHNlZF9xdW90 ZV9zdWJzdCJgIDs7Ci0rICAgICAgKikKLSsgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5x dW90ZWRfcmVzdWx0PSIkMSIgOzsKLSsgICAgZXNhYwotKwotKyAgICBjYXNlICRmdW5jX3F1b3Rl X2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdCBpbgotKyAgICAgICMgRG91YmxlLXF1b3RlIGFyZ3Mg Y29udGFpbmluZyBzaGVsbCBtZXRhY2hhcmFjdGVycyB0byBkZWxheQotKyAgICAgICMgd29yZCBz cGxpdHRpbmcsIGNvbW1hbmQgc3Vic3RpdHV0aW9uIGFuZCBhbmQgdmFyaWFibGUKLSsgICAgICAj IGV4cGFuc2lvbiBmb3IgYSBzdWJzZXF1ZW50IGV2YWwuCi0rICAgICAgIyBNYW55IEJvdXJuZSBz aGVsbHMgY2Fubm90IGhhbmRsZSBjbG9zZSBicmFja2V0cyBjb3JyZWN0bHkKLSsgICAgICAjIGlu IHNjYW4gc2V0cywgc28gd2Ugc3BlY2lmeSBpdCBzZXBhcmF0ZWx5LgotKyAgICAgICpbXFtcflwj XF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQotKyAgICAgICAgZnVuY19x dW90ZV9mb3JfZXZhbF9yZXN1bHQ9IlwiJGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVz dWx0XCIiCi0rICAgICAgICA7OwotKyAgICAgICopCi0rICAgICAgICBmdW5jX3F1b3RlX2Zvcl9l dmFsX3Jlc3VsdD0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0IgotKyAgICBl c2FjCi0rfQotKwotKwotKyMgZnVuY19xdW90ZV9mb3JfZXhwYW5kIGFyZwotKyMgQWVzdGhldGlj YWxseSBxdW90ZSBBUkcgdG8gYmUgZXZhbGVkIGxhdGVyOyBzYW1lIGFzIGFib3ZlLAotKyMgYnV0 IGRvIG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgotK2Z1bmNfcXVvdGVfZm9yX2V4cGFu ZCAoKQotK3sKLSsgICAgY2FzZSAkMSBpbgotKyAgICAgICpbXFxcYFwiXSopCi0rCW15X2FyZz1g JEVDSE8gIlgkMSIgfCAkWHNlZCBcCi0rCSAgICAtZSAiJGRvdWJsZV9xdW90ZV9zdWJzdCIgLWUg IiRzZWRfZG91YmxlX2JhY2tzbGFzaCJgIDs7Ci0rICAgICAgKikKLSsgICAgICAgIG15X2FyZz0i JDEiIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgY2FzZSAkbXlfYXJnIGluCi0rICAgICAgIyBEb3Vi bGUtcXVvdGUgYXJncyBjb250YWluaW5nIHNoZWxsIG1ldGFjaGFyYWN0ZXJzIHRvIGRlbGF5Ci0r ICAgICAgIyB3b3JkIHNwbGl0dGluZyBhbmQgY29tbWFuZCBzdWJzdGl0dXRpb24gZm9yIGEgc3Vi c2VxdWVudCBldmFsLgotKyAgICAgICMgTWFueSBCb3VybmUgc2hlbGxzIGNhbm5vdCBoYW5kbGUg Y2xvc2UgYnJhY2tldHMgY29ycmVjdGx5Ci0rICAgICAgIyBpbiBzY2FuIHNldHMsIHNvIHdlIHNw ZWNpZnkgaXQgc2VwYXJhdGVseS4KLSsgICAgICAqW1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8 XD5cP1wnXCBcCV0qfCpdKnwiIikKLSsgICAgICAgIG15X2FyZz0iXCIkbXlfYXJnXCIiCi0rICAg ICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQ9 IiRteV9hcmciCi0rfQotKwotKwotKyMgZnVuY19zaG93X2V2YWwgY21kIFtmYWlsX2V4cF0KLSsj IFVubGVzcyBvcHRfc2lsZW50IGlzIHRydWUsIHRoZW4gb3V0cHV0IENNRC4gIFRoZW4sIGlmIG9w dF9kcnlydW4gaXMKLSsjIG5vdCB0cnVlLCBldmFsdWF0ZSBDTUQuICBJZiB0aGUgZXZhbHVhdGlv biBvZiBDTUQgZmFpbHMsIGFuZCBGQUlMX0VYUAotKyMgaXMgZ2l2ZW4sIHRoZW4gZXZhbHVhdGUg aXQuCi0rZnVuY19zaG93X2V2YWwgKCkKLSt7Ci0rICAgIG15X2NtZD0iJDEiCi0rICAgIG15X2Zh aWxfZXhwPSIkezItOn0iCi0rCi0rICAgICR7b3B0X3NpbGVudC1mYWxzZX0gfHwgewotKyAgICAg IGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAiJG15X2NtZCIKLSsgICAgICBldmFsICJmdW5jX2VjaG8g JGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQiCi0rICAgIH0KLSsKLSsgICAgaWYgJHtvcHRf ZHJ5X3J1bi1mYWxzZX07IHRoZW4gOjsgZWxzZQotKyAgICAgIGV2YWwgIiRteV9jbWQiCi0rICAg ICAgbXlfc3RhdHVzPSQ/Ci0rICAgICAgaWYgdGVzdCAiJG15X3N0YXR1cyIgLWVxIDA7IHRoZW4g OjsgZWxzZQotKwlldmFsICIoZXhpdCAkbXlfc3RhdHVzKTsgJG15X2ZhaWxfZXhwIgotKyAgICAg IGZpCi0rICAgIGZpCi0rfQotKwotKwotKyMgZnVuY19zaG93X2V2YWxfbG9jYWxlIGNtZCBbZmFp bF9leHBdCi0rIyBVbmxlc3Mgb3B0X3NpbGVudCBpcyB0cnVlLCB0aGVuIG91dHB1dCBDTUQuICBU aGVuLCBpZiBvcHRfZHJ5cnVuIGlzCi0rIyBub3QgdHJ1ZSwgZXZhbHVhdGUgQ01ELiAgSWYgdGhl IGV2YWx1YXRpb24gb2YgQ01EIGZhaWxzLCBhbmQgRkFJTF9FWFAKLSsjIGlzIGdpdmVuLCB0aGVu IGV2YWx1YXRlIGl0LiAgVXNlIHRoZSBzYXZlZCBsb2NhbGUgZm9yIGV2YWx1YXRpb24uCi0rZnVu Y19zaG93X2V2YWxfbG9jYWxlICgpCi0rewotKyAgICBteV9jbWQ9IiQxIgotKyAgICBteV9mYWls X2V4cD0iJHsyLTp9IgotKwotKyAgICAke29wdF9zaWxlbnQtZmFsc2V9IHx8IHsKLSsgICAgICBm dW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRteV9jbWQiCi0rICAgICAgZXZhbCAiZnVuY19lY2hvICRm dW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgotKyAgICB9Ci0rCi0rICAgIGlmICR7b3B0X2Ry eV9ydW4tZmFsc2V9OyB0aGVuIDo7IGVsc2UKLSsgICAgICBldmFsICIkbHRfdXNlcl9sb2NhbGUK LSsJICAgICRteV9jbWQiCi0rICAgICAgbXlfc3RhdHVzPSQ/Ci0rICAgICAgZXZhbCAiJGx0X3Nh ZmVfbG9jYWxlIgotKyAgICAgIGlmIHRlc3QgIiRteV9zdGF0dXMiIC1lcSAwOyB0aGVuIDo7IGVs c2UKLSsJZXZhbCAiKGV4aXQgJG15X3N0YXR1cyk7ICRteV9mYWlsX2V4cCIKLSsgICAgICBmaQot KyAgICBmaQotK30KLSsKLSsKLSsKLSsKLSsKLSsjIGZ1bmNfdmVyc2lvbgotKyMgRWNobyB2ZXJz aW9uIG1lc3NhZ2UgdG8gc3RhbmRhcmQgb3V0cHV0IGFuZCBleGl0LgotK2Z1bmNfdmVyc2lvbiAo KQotK3sKLSsgICAgJFNFRCAtbiAnL14jICckUFJPR1JBTScgKEdOVSAvLC8jIHdhcnJhbnR5OyAv IHsKLSsgICAgICAgIHMvXiMgLy8KLSsJcy9eIyAqJC8vCi0rICAgICAgICBzL1woKEMpXClbIDAt OSwtXSpcKCBbMS05XVswLTldKlwpL1wxXDIvCi0rICAgICAgICBwCi0rICAgICB9JyA8ICIkcHJv Z3BhdGgiCi0rICAgICBleGl0ICQ/Ci0rfQotKwotKyMgZnVuY191c2FnZQotKyMgRWNobyBzaG9y dCBoZWxwIG1lc3NhZ2UgdG8gc3RhbmRhcmQgb3V0cHV0IGFuZCBleGl0LgotK2Z1bmNfdXNhZ2Ug KCkKLSt7Ci0rICAgICRTRUQgLW4gJy9eIyBVc2FnZTovLC8jIC1oLyB7Ci0rICAgICAgICBzL14j IC8vCi0rCXMvXiMgKiQvLwotKwlzL1wkcHJvZ25hbWUvJyRwcm9nbmFtZScvCi0rCXAKLSsgICAg fScgPCAiJHByb2dwYXRoIgotKyAgICAkRUNITwotKyAgICAkRUNITyAicnVuIFxgJHByb2duYW1l IC0taGVscCB8IG1vcmUnIGZvciBmdWxsIHVzYWdlIgotKyAgICBleGl0ICQ/Ci0rfQotKwotKyMg ZnVuY19oZWxwCi0rIyBFY2hvIGxvbmcgaGVscCBtZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dCBh bmQgZXhpdC4KLStmdW5jX2hlbHAgKCkKLSt7Ci0rICAgICRTRUQgLW4gJy9eIyBVc2FnZTovLC8j IFJlcG9ydCBidWdzIHRvLyB7Ci0rICAgICAgICBzL14jIC8vCi0rCXMvXiMgKiQvLwotKwlzKlwk cHJvZ25hbWUqJyRwcm9nbmFtZScqCi0rCXMqXCRob3N0KiciJGhvc3QiJyoKLSsJcypcJFNIRUxM KiciJFNIRUxMIicqCi0rCXMqXCRMVENDKiciJExUQ0MiJyoKLSsJcypcJExUQ0ZMQUdTKiciJExU Q0ZMQUdTIicqCi0rCXMqXCRMRConIiRMRCInKgotKwlzL1wkd2l0aF9nbnVfbGQvJyIkd2l0aF9n bnVfbGQiJy8KLSsJcy9cJGF1dG9tYWtlX3ZlcnNpb24vJyJgKGF1dG9tYWtlIC0tdmVyc2lvbikg Mj4vZGV2L251bGwgfCRTRUQgMXFgIicvCi0rCXMvXCRhdXRvY29uZl92ZXJzaW9uLyciYChhdXRv Y29uZiAtLXZlcnNpb24pIDI+L2Rldi9udWxsIHwkU0VEIDFxYCInLwotKwlwCi0rICAgICB9JyA8 ICIkcHJvZ3BhdGgiCi0rICAgIGV4aXQgJD8KLSt9Ci0rCi0rIyBmdW5jX21pc3NpbmdfYXJnIGFy Z25hbWUKLSsjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQg ZXJyb3IgYW5kIHNldCBnbG9iYWwKLSsjIGV4aXRfY21kLgotK2Z1bmNfbWlzc2luZ19hcmcgKCkK LSt7Ci0rICAgIGZ1bmNfZXJyb3IgIm1pc3NpbmcgYXJndW1lbnQgZm9yICQxIgotKyAgICBleGl0 X2NtZD1leGl0Ci0rfQotKwotK2V4aXRfY21kPToKLSsKLSsKLSsKLSsKLSsKLSsjIENoZWNrIHRo YXQgd2UgaGF2ZSBhIHdvcmtpbmcgJEVDSE8uCi0raWYgdGVzdCAiWCQxIiA9IFgtLW5vLXJlZXhl YzsgdGhlbgotKyAgIyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUu Ci0rICBzaGlmdAotK2VsaWYgdGVzdCAiWCQxIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KLSsg ICMgQXZvaWQgaW5saW5lIGRvY3VtZW50IGhlcmUsIGl0IG1heSBiZSBsZWZ0IG92ZXIKLSsgIDoK LStlbGlmIHRlc3QgIlhgeyAkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JzsgdGhl bgotKyAgIyBZaXBwZWUsICRFQ0hPIHdvcmtzIQotKyAgOgotK2Vsc2UKLSsgICMgUmVzdGFydCB1 bmRlciB0aGUgY29ycmVjdCBzaGVsbCwgYW5kIHRoZW4gbWF5YmUgJEVDSE8gd2lsbCB3b3JrLgot KyAgZXhlYyAkU0hFTEwgIiRwcm9ncGF0aCIgLS1uby1yZWV4ZWMgJHsxKyIkQCJ9Ci0rZmkKLSsK LStpZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgotKyAgIyB1c2VkIGFzIGZh bGxiYWNrIGVjaG8KLSsgIHNoaWZ0Ci0rICBjYXQgPDxFT0YKLSskKgotK0VPRgotKyAgZXhpdCAk RVhJVF9TVUNDRVNTCi0rZmkKLSsKLSttYWdpYz0iJSUlTUFHSUMgdmFyaWFibGUlJSUiCi0rbWFn aWNfZXhlPSIlJSVNQUdJQyBFWEUgdmFyaWFibGUlJSUiCi0rCi0rIyBHbG9iYWwgdmFyaWFibGVz LgotKyMgJG1vZGUgaXMgdW5zZXQKLStub25vcHQ9Ci0rZXhlY3V0ZV9kbGZpbGVzPQotK3ByZXNl cnZlX2FyZ3M9Ci0rbG8ybz0icy9cXC5sb1wkLy4ke29iamV4dH0vIgotK28ybG89InMvXFwuJHtv YmpleHR9XCQvLmxvLyIKLStleHRyYWN0ZWRfYXJjaGl2ZXM9Ci0rZXh0cmFjdGVkX3NlcmlhbD0w Ci0rCi0rb3B0X2RyeV9ydW49ZmFsc2UKLStvcHRfZHVwbGljYXRlX2RlcHM9ZmFsc2UKLStvcHRf c2lsZW50PWZhbHNlCi0rb3B0X2RlYnVnPToKLSsKLSsjIElmIHRoaXMgdmFyaWFibGUgaXMgc2V0 IGluIGFueSBvZiB0aGUgYWN0aW9ucywgdGhlIGNvbW1hbmQgaW4gaXQKLSsjIHdpbGwgYmUgZXhl Y2VkIGF0IHRoZSBlbmQuICBUaGlzIHByZXZlbnRzIGhlcmUtZG9jdW1lbnRzIGZyb20gYmVpbmcK LSsjIGxlZnQgb3ZlciBieSBzaGVsbHMuCi0rZXhlY19jbWQ9Ci0rCi0rIyBmdW5jX2ZhdGFsX2Nv bmZpZ3VyYXRpb24gYXJnLi4uCi0rIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdl IHRvIHN0YW5kYXJkIGVycm9yLCBmb2xsb3dlZCBieQotKyMgYSBjb25maWd1cmF0aW9uIGZhaWx1 cmUgaGludCwgYW5kIGV4aXQuCi0rZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICgpCi0rewotKyAg ICBmdW5jX2Vycm9yICR7MSsiJEAifQotKyAgICBmdW5jX2Vycm9yICJTZWUgdGhlICRQQUNLQUdF IGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uIgotKyAgICBmdW5jX2ZhdGFsX2Vy cm9yICJGYXRhbCBjb25maWd1cmF0aW9uIGVycm9yLiIKLSt9Ci0rCi0rCi0rIyBmdW5jX2NvbmZp ZwotKyMgRGlzcGxheSB0aGUgY29uZmlndXJhdGlvbiBmb3IgYWxsIHRoZSB0YWdzIGluIHRoaXMg c2NyaXB0LgotK2Z1bmNfY29uZmlnICgpCi0rewotKyAgICByZV9iZWdpbmNmPSdeIyAjIyMgQkVH SU4gTElCVE9PTCcKLSsgICAgcmVfZW5kY2Y9J14jICMjIyBFTkQgTElCVE9PTCcKLSsKLSsgICAg IyBEZWZhdWx0IGNvbmZpZ3VyYXRpb24uCi0rICAgICRTRUQgIjEsLyRyZV9iZWdpbmNmIENPTkZJ Ry9kOy8kcmVfZW5kY2YgQ09ORklHLyxcJGQiIDwgIiRwcm9ncGF0aCIKLSsKLSsgICAgIyBOb3cg cHJpbnQgdGhlIGNvbmZpZ3VyYXRpb25zIGZvciB0aGUgdGFncy4KLSsgICAgZm9yIHRhZ25hbWUg aW4gJHRhZ2xpc3Q7IGRvCi0rICAgICAgJFNFRCAtbiAiLyRyZV9iZWdpbmNmIFRBRyBDT05GSUc6 ICR0YWduYW1lXCQvLC8kcmVfZW5kY2YgVEFHIENPTkZJRzogJHRhZ25hbWVcJC9wIiA8ICIkcHJv Z3BhdGgiCi0rICAgIGRvbmUKLSsKLSsgICAgZXhpdCAkPwotK30KLSsKLSsjIGZ1bmNfZmVhdHVy ZXMKLSsjIERpc3BsYXkgdGhlIGZlYXR1cmVzIHN1cHBvcnRlZCBieSB0aGlzIHNjcmlwdC4KLStm dW5jX2ZlYXR1cmVzICgpCi0rewotKyAgICAkRUNITyAiaG9zdDogJGhvc3QiCi0rICAgIGlmIHRl c3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCi0rICAgICAgJEVDSE8gImVuYWJs ZSBzaGFyZWQgbGlicmFyaWVzIgotKyAgICBlbHNlCi0rICAgICAgJEVDSE8gImRpc2FibGUgc2hh cmVkIGxpYnJhcmllcyIKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9 IHllczsgdGhlbgotKyAgICAgICRFQ0hPICJlbmFibGUgc3RhdGljIGxpYnJhcmllcyIKLSsgICAg ZWxzZQotKyAgICAgICRFQ0hPICJkaXNhYmxlIHN0YXRpYyBsaWJyYXJpZXMiCi0rICAgIGZpCi0r Ci0rICAgIGV4aXQgJD8KLSt9Ci0rCi0rIyBmdW5jX2VuYWJsZV90YWcgdGFnbmFtZQotKyMgVmVy aWZ5IHRoYXQgVEFHTkFNRSBpcyB2YWxpZCwgYW5kIGVpdGhlciBmbGFnIGFuIGVycm9yIGFuZCBl eGl0LCBvcgotKyMgZW5hYmxlIHRoZSBUQUdOQU1FIHRhZy4gIFdlIGFsc28gYWRkIFRBR05BTUUg dG8gdGhlIGdsb2JhbCAkdGFnbGlzdAotKyMgdmFyaWFibGUgaGVyZS4KLStmdW5jX2VuYWJsZV90 YWcgKCkKLSt7Ci0rICAjIEdsb2JhbCB2YXJpYWJsZToKLSsgIHRhZ25hbWU9IiQxIgotKwotKyAg cmVfYmVnaW5jZj0iXiMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogJHRhZ25hbWVcJCIK LSsgIHJlX2VuZGNmPSJeIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogJHRhZ25hbWVcJCIK LSsgIHNlZF9leHRyYWN0Y2Y9Ii8kcmVfYmVnaW5jZi8sLyRyZV9lbmRjZi9wIgotKwotKyAgIyBW YWxpZGF0ZSB0YWduYW1lLgotKyAgY2FzZSAkdGFnbmFtZSBpbgotKyAgICAqWyEtX0EtWmEtejAt OSwvXSopCi0rICAgICAgZnVuY19mYXRhbF9lcnJvciAiaW52YWxpZCB0YWcgbmFtZTogJHRhZ25h bWUiCi0rICAgICAgOzsKLSsgIGVzYWMKLSsKLSsgICMgRG9uJ3QgdGVzdCBmb3IgdGhlICJkZWZh dWx0IiBDIHRhZywgYXMgd2Uga25vdyBpdCdzCi0rICAjIHRoZXJlIGJ1dCBub3Qgc3BlY2lhbGx5 IG1hcmtlZC4KLSsgIGNhc2UgJHRhZ25hbWUgaW4KLSsgICAgQ0MpIDs7Ci0rICAgICopCi0rICAg ICAgaWYgJEdSRVAgIiRyZV9iZWdpbmNmIiAiJHByb2dwYXRoIiA+L2Rldi9udWxsIDI+JjE7IHRo ZW4KLSsJdGFnbGlzdD0iJHRhZ2xpc3QgJHRhZ25hbWUiCi0rCi0rCSMgRXZhbHVhdGUgdGhlIGNv bmZpZ3VyYXRpb24uICBCZSBjYXJlZnVsIHRvIHF1b3RlIHRoZSBwYXRoCi0rCSMgYW5kIHRoZSBz ZWQgc2NyaXB0LCB0byBhdm9pZCBzcGxpdHRpbmcgb24gd2hpdGVzcGFjZSwgYnV0Ci0rCSMgYWxz byBkb24ndCB1c2Ugbm9uLXBvcnRhYmxlIHF1b3RlcyB3aXRoaW4gYmFja3F1b3RlcyB3aXRoaW4K LSsJIyBxdW90ZXMgd2UgaGF2ZSB0byBkbyBpdCBpbiAyIHN0ZXBzOgotKwlleHRyYWN0ZWRjZj1g JFNFRCAtbiAtZSAiJHNlZF9leHRyYWN0Y2YiIDwgIiRwcm9ncGF0aCJgCi0rCWV2YWwgIiRleHRy YWN0ZWRjZiIKLSsgICAgICBlbHNlCi0rCWZ1bmNfZXJyb3IgImlnbm9yaW5nIHVua25vd24gdGFn ICR0YWduYW1lIgotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgIGVzYWMKLSt9Ci0rCi0rIyBQYXJz ZSBvcHRpb25zIG9uY2UsIHRob3JvdWdobHkuICBUaGlzIGNvbWVzIGFzIHNvb24gYXMgcG9zc2li bGUgaW4KLSsjIHRoZSBzY3JpcHQgdG8gbWFrZSB0aGluZ3MgbGlrZSBgbGlidG9vbCAtLXZlcnNp b24nIGhhcHBlbiBxdWlja2x5LgotK3sKLSsKLSsgICMgU2hvcnRoYW5kIGZvciAtLW1vZGU9Zm9v LCBvbmx5IHZhbGlkIGFzIHRoZSBmaXJzdCBhcmd1bWVudAotKyAgY2FzZSAkMSBpbgotKyAgY2xl YW58Y2xlYXxjbGV8Y2wpCi0rICAgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGNsZWFuICR7MSsi JEAifTsgc2hpZnQKLSsgICAgOzsKLSsgIGNvbXBpbGV8Y29tcGlsfGNvbXBpfGNvbXB8Y29tfGNv fGMpCi0rICAgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGNvbXBpbGUgJHsxKyIkQCJ9OyBzaGlm dAotKyAgICA7OwotKyAgZXhlY3V0ZXxleGVjdXR8ZXhlY3V8ZXhlY3xleGV8ZXh8ZSkKLSsgICAg c2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgZXhlY3V0ZSAkezErIiRAIn07IHNoaWZ0Ci0rICAgIDs7 Ci0rICBmaW5pc2h8ZmluaXN8ZmluaXxmaW58Zml8ZikKLSsgICAgc2hpZnQ7IHNldCBkdW1teSAt LW1vZGUgZmluaXNoICR7MSsiJEAifTsgc2hpZnQKLSsgICAgOzsKLSsgIGluc3RhbGx8aW5zdGFs fGluc3RhfGluc3R8aW5zfGlufGkpCi0rICAgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGluc3Rh bGwgJHsxKyIkQCJ9OyBzaGlmdAotKyAgICA7OwotKyAgbGlua3xsaW58bGl8bCkKLSsgICAgc2hp ZnQ7IHNldCBkdW1teSAtLW1vZGUgbGluayAkezErIiRAIn07IHNoaWZ0Ci0rICAgIDs7Ci0rICB1 bmluc3RhbGx8dW5pbnN0YWx8dW5pbnN0YXx1bmluc3R8dW5pbnN8dW5pbnx1bml8dW58dSkKLSsg ICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgdW5pbnN0YWxsICR7MSsiJEAifTsgc2hpZnQKLSsg ICAgOzsKLSsgIGVzYWMKLSsKLSsgICMgUGFyc2Ugbm9uLW1vZGUgc3BlY2lmaWMgYXJndW1lbnRz OgotKyAgd2hpbGUgdGVzdCAiJCMiIC1ndCAwOyBkbwotKyAgICBvcHQ9IiQxIgotKyAgICBzaGlm dAotKwotKyAgICBjYXNlICRvcHQgaW4KLSsgICAgICAtLWNvbmZpZykJCWZ1bmNfY29uZmlnCQkJ CQk7OwotKwotKyAgICAgIC0tZGVidWcpCQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAk b3B0IgotKwkJCWZ1bmNfZWNobyAiZW5hYmxpbmcgc2hlbGwgdHJhY2UgbW9kZSIKLSsJCQlvcHRf ZGVidWc9J3NldCAteCcKLSsJCQkkb3B0X2RlYnVnCi0rCQkJOzsKLSsKLSsgICAgICAtZGxvcGVu KQkJdGVzdCAiJCMiIC1lcSAwICYmIGZ1bmNfbWlzc2luZ19hcmcgIiRvcHQiICYmIGJyZWFrCi0r CQkJZXhlY3V0ZV9kbGZpbGVzPSIkZXhlY3V0ZV9kbGZpbGVzICQxIgotKwkJCXNoaWZ0Ci0rCQkJ OzsKLSsKLSsgICAgICAtLWRyeS1ydW4gfCAtbikJb3B0X2RyeV9ydW49OgkJCQkJOzsKLSsgICAg ICAtLWZlYXR1cmVzKSAgICAgICBmdW5jX2ZlYXR1cmVzCQkJCQk7OwotKyAgICAgIC0tZmluaXNo KQkJbW9kZT0iZmluaXNoIgkJCQkJOzsKLSsKLSsgICAgICAtLW1vZGUpCQl0ZXN0ICIkIyIgLWVx IDAgJiYgZnVuY19taXNzaW5nX2FyZyAiJG9wdCIgJiYgYnJlYWsKLSsJCQljYXNlICQxIGluCi0r CQkJICAjIFZhbGlkIG1vZGUgYXJndW1lbnRzOgotKwkJCSAgY2xlYW4pCTs7Ci0rCQkJICBjb21w aWxlKQk7OwotKwkJCSAgZXhlY3V0ZSkJOzsKLSsJCQkgIGZpbmlzaCkJOzsKLSsJCQkgIGluc3Rh bGwpCTs7Ci0rCQkJICBsaW5rKQkJOzsKLSsJCQkgIHJlbGluaykJOzsKLSsJCQkgIHVuaW5zdGFs bCkJOzsKLSsKLSsJCQkgICMgQ2F0Y2ggYW55dGhpbmcgZWxzZSBhcyBhbiBlcnJvcgotKwkJCSAg KikgZnVuY19lcnJvciAiaW52YWxpZCBhcmd1bWVudCBmb3IgJG9wdCIKLSsJCQkgICAgIGV4aXRf Y21kPWV4aXQKLSsJCQkgICAgIGJyZWFrCi0rCQkJICAgICA7OwotKwkJICAgICAgICBlc2FjCi0r Ci0rCQkJbW9kZT0iJDEiCi0rCQkJc2hpZnQKLSsJCQk7OwotKwotKyAgICAgIC0tcHJlc2VydmUt ZHVwLWRlcHMpCi0rCQkJb3B0X2R1cGxpY2F0ZV9kZXBzPToJCQkJOzsKLSsKLSsgICAgICAtLXF1 aWV0fC0tc2lsZW50KQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0IgotKwkJCW9w dF9zaWxlbnQ9OgotKwkJCTs7Ci0rCi0rICAgICAgLS12ZXJib3NlfCAtdikJcHJlc2VydmVfYXJn cz0iJHByZXNlcnZlX2FyZ3MgJG9wdCIKLSsJCQlvcHRfc2lsZW50PWZhbHNlCi0rCQkJOzsKLSsK LSsgICAgICAtLXRhZykJCXRlc3QgIiQjIiAtZXEgMCAmJiBmdW5jX21pc3NpbmdfYXJnICIkb3B0 IiAmJiBicmVhawotKwkJCXByZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2ZV9hcmdzICRvcHQgJDEiCi0r CQkJZnVuY19lbmFibGVfdGFnICIkMSIJIyB0YWduYW1lIGlzIHNldCBoZXJlCi0rCQkJc2hpZnQK LSsJCQk7OwotKwotKyAgICAgICMgU2VwYXJhdGUgb3B0YXJncyB0byBsb25nIG9wdGlvbnM6Ci0r ICAgICAgLWRsb3Blbj0qfC0tbW9kZT0qfC0tdGFnPSopCi0rCQkJZnVuY19vcHRfc3BsaXQgIiRv cHQiCi0rCQkJc2V0IGR1bW15ICIkZnVuY19vcHRfc3BsaXRfb3B0IiAiJGZ1bmNfb3B0X3NwbGl0 X2FyZyIgJHsxKyIkQCJ9Ci0rCQkJc2hpZnQKLSsJCQk7OwotKwotKyAgICAgIC1cP3wtaCkJCWZ1 bmNfdXNhZ2UJCQkJCTs7Ci0rICAgICAgLS1oZWxwKQkJb3B0X2hlbHA9OgkJCQkJOzsKLSsgICAg ICAtLXZlcnNpb24pCWZ1bmNfdmVyc2lvbgkJCQkJOzsKLSsKLSsgICAgICAtKikJCWZ1bmNfZmF0 YWxfaGVscCAidW5yZWNvZ25pemVkIG9wdGlvbiBcYCRvcHQnIgk7OwotKwotKyAgICAgICopCQlu b25vcHQ9IiRvcHQiCi0rCQkJYnJlYWsKLSsJCQk7OwotKyAgICBlc2FjCi0rICBkb25lCi0rCi0r Ci0rICBjYXNlICRob3N0IGluCi0rICAgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpwdzMyKiB8ICpj ZWdjYyopCi0rICAgICAgIyBkb24ndCBlbGltaW5hdGUgZHVwbGljYXRpb25zIGluICRwb3N0ZGVw cyBhbmQgJHByZWRlcHMKLSsgICAgICBvcHRfZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9k ZXBzPToKLSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIG9wdF9kdXBsaWNhdGVfY29tcGlsZXJf Z2VuZXJhdGVkX2RlcHM9JG9wdF9kdXBsaWNhdGVfZGVwcwotKyAgICAgIDs7Ci0rICBlc2FjCi0r Ci0rICAjIEhhdmluZyB3YXJuZWQgYWJvdXQgYWxsIG1pcy1zcGVjaWZpZWQgb3B0aW9ucywgYmFp bCBvdXQgaWYKLSsgICMgYW55dGhpbmcgd2FzIHdyb25nLgotKyAgJGV4aXRfY21kICRFWElUX0ZB SUxVUkUKLSt9Ci0rCi0rIyBmdW5jX2NoZWNrX3ZlcnNpb25fbWF0Y2gKLSsjIEVuc3VyZSB0aGF0 IHdlIGFyZSB1c2luZyBtNCBtYWNyb3MsIGFuZCBsaWJ0b29sIHNjcmlwdCBmcm9tIHRoZSBzYW1l Ci0rIyByZWxlYXNlIG9mIGxpYnRvb2wuCi0rZnVuY19jaGVja192ZXJzaW9uX21hdGNoICgpCi0r ewotKyAgaWYgdGVzdCAiJHBhY2thZ2VfcmV2aXNpb24iICE9ICIkbWFjcm9fcmV2aXNpb24iOyB0 aGVuCi0rICAgIGlmIHRlc3QgIiRWRVJTSU9OIiAhPSAiJG1hY3JvX3ZlcnNpb24iOyB0aGVuCi0r ICAgICAgaWYgdGVzdCAteiAiJG1hY3JvX3ZlcnNpb24iOyB0aGVuCi0rICAgICAgICBjYXQgPiYy IDw8X0xUX0VPRgotKyRwcm9nbmFtZTogVmVyc2lvbiBtaXNtYXRjaCBlcnJvci4gIFRoaXMgaXMg JFBBQ0tBR0UgJFZFUlNJT04sIGJ1dCB0aGUKLSskcHJvZ25hbWU6IGRlZmluaXRpb24gb2YgdGhp cyBMVF9JTklUIGNvbWVzIGZyb20gYW4gb2xkZXIgcmVsZWFzZS4KLSskcHJvZ25hbWU6IFlvdSBz aG91bGQgcmVjcmVhdGUgYWNsb2NhbC5tNCB3aXRoIG1hY3JvcyBmcm9tICRQQUNLQUdFICRWRVJT SU9OCi0rJHByb2duYW1lOiBhbmQgcnVuIGF1dG9jb25mIGFnYWluLgotK19MVF9FT0YKLSsgICAg ICBlbHNlCi0rICAgICAgICBjYXQgPiYyIDw8X0xUX0VPRgotKyRwcm9nbmFtZTogVmVyc2lvbiBt aXNtYXRjaCBlcnJvci4gIFRoaXMgaXMgJFBBQ0tBR0UgJFZFUlNJT04sIGJ1dCB0aGUKLSskcHJv Z25hbWU6IGRlZmluaXRpb24gb2YgdGhpcyBMVF9JTklUIGNvbWVzIGZyb20gJFBBQ0tBR0UgJG1h Y3JvX3ZlcnNpb24uCi0rJHByb2duYW1lOiBZb3Ugc2hvdWxkIHJlY3JlYXRlIGFjbG9jYWwubTQg d2l0aCBtYWNyb3MgZnJvbSAkUEFDS0FHRSAkVkVSU0lPTgotKyRwcm9nbmFtZTogYW5kIHJ1biBh dXRvY29uZiBhZ2Fpbi4KLStfTFRfRU9GCi0rICAgICAgZmkKLSsgICAgZWxzZQotKyAgICAgIGNh dCA+JjIgPDxfTFRfRU9GCi0rJHByb2duYW1lOiBWZXJzaW9uIG1pc21hdGNoIGVycm9yLiAgVGhp cyBpcyAkUEFDS0FHRSAkVkVSU0lPTiwgcmV2aXNpb24gJHBhY2thZ2VfcmV2aXNpb24sCi0rJHBy b2duYW1lOiBidXQgdGhlIGRlZmluaXRpb24gb2YgdGhpcyBMVF9JTklUIGNvbWVzIGZyb20gcmV2 aXNpb24gJG1hY3JvX3JldmlzaW9uLgotKyRwcm9nbmFtZTogWW91IHNob3VsZCByZWNyZWF0ZSBh Y2xvY2FsLm00IHdpdGggbWFjcm9zIGZyb20gcmV2aXNpb24gJHBhY2thZ2VfcmV2aXNpb24KLSsk cHJvZ25hbWU6IG9mICRQQUNLQUdFICRWRVJTSU9OIGFuZCBydW4gYXV0b2NvbmYgYWdhaW4uCi0r X0xUX0VPRgotKyAgICBmaQotKwotKyAgICBleGl0ICRFWElUX01JU01BVENICi0rICBmaQotK30K LSsKLSsKLSsjIyAtLS0tLS0tLS0tLSAjIwotKyMjICAgIE1haW4uICAgICMjCi0rIyMgLS0tLS0t LS0tLS0gIyMKLSsKLSskb3B0X2hlbHAgfHwgewotKyAgIyBTYW5pdHkgY2hlY2tzIGZpcnN0Ogot KyAgZnVuY19jaGVja192ZXJzaW9uX21hdGNoCi0rCi0rICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9v bF9saWJzIiAhPSB5ZXMgJiYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiAhPSB5ZXM7IHRoZW4KLSsg ICAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJub3QgY29uZmlndXJlZCB0byBidWlsZCBhbnkg a2luZCBvZiBsaWJyYXJ5IgotKyAgZmkKLSsKLSsgIHRlc3QgLXogIiRtb2RlIiAmJiBmdW5jX2Zh dGFsX2Vycm9yICJlcnJvcjogeW91IG11c3Qgc3BlY2lmeSBhIE1PREUuIgotKwotKwotKyAgIyBE YXJ3aW4gc3Vja3MKLSsgIGV2YWwgc3RkX3NocmV4dD1cIiRzaHJleHRfY21kc1wiCi0rCi0rCi0r ICAjIE9ubHkgZXhlY3V0ZSBtb2RlIGlzIGFsbG93ZWQgdG8gaGF2ZSAtZGxvcGVuIGZsYWdzLgot KyAgaWYgdGVzdCAtbiAiJGV4ZWN1dGVfZGxmaWxlcyIgJiYgdGVzdCAiJG1vZGUiICE9IGV4ZWN1 dGU7IHRoZW4KLSsgICAgZnVuY19lcnJvciAidW5yZWNvZ25pemVkIG9wdGlvbiBcYC1kbG9wZW4n IgotKyAgICAkRUNITyAiJGhlbHAiIDE+JjIKLSsgICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rICBm aQotKwotKyAgIyBDaGFuZ2UgdGhlIGhlbHAgbWVzc2FnZSB0byBhIG1vZGUtc3BlY2lmaWMgb25l LgotKyAgZ2VuZXJpY19oZWxwPSIkaGVscCIKLSsgIGhlbHA9IlRyeSBcYCRwcm9nbmFtZSAtLWhl bHAgLS1tb2RlPSRtb2RlJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCi0rfQotKwotKwotKyMgZnVu Y19sYWxpYl9wIGZpbGUKLSsjIFRydWUgaWZmIEZJTEUgaXMgYSBsaWJ0b29sIGAubGEnIGxpYnJh cnkgb3IgYC5sbycgb2JqZWN0IGZpbGUuCi0rIyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYSBiYXNp YyBzYW5pdHkgY2hlY2s7IGl0IHdpbGwgaGFyZGx5IGZsdXNoIG91dAotKyMgZGV0ZXJtaW5lZCBp bXBvc3RlcnMuCi0rZnVuY19sYWxpYl9wICgpCi0rewotKyAgICB0ZXN0IC1mICIkMSIgJiYKLSsg ICAgICAkU0VEIC1lIDRxICIkMSIgMj4vZGV2L251bGwgXAotKyAgICAgICAgfCAkR1JFUCAiXiMg R2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiID4gL2Rldi9udWxsIDI+JjEKLSt9Ci0rCi0rIyBmdW5j X2xhbGliX3Vuc2FmZV9wIGZpbGUKLSsjIFRydWUgaWZmIEZJTEUgaXMgYSBsaWJ0b29sIGAubGEn IGxpYnJhcnkgb3IgYC5sbycgb2JqZWN0IGZpbGUuCi0rIyBUaGlzIGZ1bmN0aW9uIGltcGxlbWVu dHMgdGhlIHNhbWUgY2hlY2sgYXMgZnVuY19sYWxpYl9wIHdpdGhvdXQKLSsjIHJlc29ydGluZyB0 byBleHRlcm5hbCBwcm9ncmFtcy4gIFRvIHRoaXMgZW5kLCBpdCByZWRpcmVjdHMgc3RkaW4gYW5k Ci0rIyBjbG9zZXMgaXQgYWZ0ZXJ3YXJkcywgd2l0aG91dCBzYXZpbmcgdGhlIG9yaWdpbmFsIGZp bGUgZGVzY3JpcHRvci4KLSsjIEFzIGEgc2FmZXR5IG1lYXN1cmUsIHVzZSBpdCBvbmx5IHdoZXJl IGEgbmVnYXRpdmUgcmVzdWx0IHdvdWxkIGJlCi0rIyBmYXRhbCBhbnl3YXkuICBXb3JrcyBpZiBg ZmlsZScgZG9lcyBub3QgZXhpc3QuCi0rZnVuY19sYWxpYl91bnNhZmVfcCAoKQotK3sKLSsgICAg bGFsaWJfcD1ubwotKyAgICBpZiB0ZXN0IC1mICIkMSIgJiYgdGVzdCAtciAiJDEiICYmIGV4ZWMg NTwmMCA8IiQxIjsgdGhlbgotKwlmb3IgbGFsaWJfcF9sIGluIDEgMiAzIDQKLSsJZG8KLSsJICAg IHJlYWQgbGFsaWJfcF9saW5lCi0rCSAgICBjYXNlICIkbGFsaWJfcF9saW5lIiBpbgotKwkJXCNc IEdlbmVyYXRlZFwgYnlcICokUEFDS0FHRSogKSBsYWxpYl9wPXllczsgYnJlYWs7OwotKwkgICAg ZXNhYwotKwlkb25lCi0rCWV4ZWMgMDwmNSA1PCYtCi0rICAgIGZpCi0rICAgIHRlc3QgIiRsYWxp Yl9wIiA9IHllcwotK30KLSsKLSsjIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wIGZpbGUKLSsjIFRy dWUgaWZmIEZJTEUgaXMgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0Ci0rIyBUaGlzIGZ1bmN0aW9u IGlzIG9ubHkgYSBiYXNpYyBzYW5pdHkgY2hlY2s7IGl0IHdpbGwgaGFyZGx5IGZsdXNoIG91dAot KyMgZGV0ZXJtaW5lZCBpbXBvc3RlcnMuCi0rZnVuY19sdHdyYXBwZXJfc2NyaXB0X3AgKCkKLSt7 Ci0rICAgIGZ1bmNfbGFsaWJfcCAiJDEiCi0rfQotKwotKyMgZnVuY19sdHdyYXBwZXJfZXhlY3V0 YWJsZV9wIGZpbGUKLSsjIFRydWUgaWZmIEZJTEUgaXMgYSBsaWJ0b29sIHdyYXBwZXIgZXhlY3V0 YWJsZQotKyMgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3 aWxsIGhhcmRseSBmbHVzaCBvdXQKLSsjIGRldGVybWluZWQgaW1wb3N0ZXJzLgotK2Z1bmNfbHR3 cmFwcGVyX2V4ZWN1dGFibGVfcCAoKQotK3sKLSsgICAgZnVuY19sdHdyYXBwZXJfZXhlY19zdWZm aXg9Ci0rICAgIGNhc2UgJDEgaW4KLSsgICAgKi5leGUpIDs7Ci0rICAgICopIGZ1bmNfbHR3cmFw cGVyX2V4ZWNfc3VmZml4PS5leGUgOzsKLSsgICAgZXNhYwotKyAgICAkR1JFUCAiJG1hZ2ljX2V4 ZSIgIiQxJGZ1bmNfbHR3cmFwcGVyX2V4ZWNfc3VmZml4IiA+L2Rldi9udWxsIDI+JjEKLSt9Ci0r Ci0rIyBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lIGZpbGUKLSsjIEFzc3VtZXMgZmlsZSBpcyBh biBsdHdyYXBwZXJfZXhlY3V0YWJsZQotKyMgdXNlcyAkZmlsZSB0byBkZXRlcm1pbmUgdGhlIGFw cHJvcHJpYXRlIGZpbGVuYW1lIGZvciBhCi0rIyB0ZW1wb3JhcnkgbHR3cmFwcGVyX3NjcmlwdC4K LStmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICgpCi0rewotKyAgICBmdW5jX2x0d3JhcHBlcl9z Y3JpcHRuYW1lX3Jlc3VsdD0iIgotKyAgICBpZiBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3Ag IiQxIjsgdGhlbgotKwlmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICIkMSIgIiIgIi4iCi0rCWZ1 bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKwlmdW5jX2x0 d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdD0iJGZ1bmNfZGlybmFtZV9yZXN1bHQvJG9iamRpci8k e2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdH1fbHRzaHdyYXBwZXIiCi0rICAgIGZpCi0rfQotKwotKyMg ZnVuY19sdHdyYXBwZXJfcCBmaWxlCi0rIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCB3cmFw cGVyIHNjcmlwdCBvciB3cmFwcGVyIGV4ZWN1dGFibGUKLSsjIFRoaXMgZnVuY3Rpb24gaXMgb25s eSBhIGJhc2ljIHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1c2ggb3V0Ci0rIyBkZXRl cm1pbmVkIGltcG9zdGVycy4KLStmdW5jX2x0d3JhcHBlcl9wICgpCi0rewotKyAgICBmdW5jX2x0 d3JhcHBlcl9zY3JpcHRfcCAiJDEiIHx8IGZ1bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJDEi Ci0rfQotKwotKwotKyMgZnVuY19leGVjdXRlX2NtZHMgY29tbWFuZHMgZmFpbF9jbWQKLSsjIEV4 ZWN1dGUgdGlsZGUtZGVsaW1pdGVkIENPTU1BTkRTLgotKyMgSWYgRkFJTF9DTUQgaXMgZ2l2ZW4s IGV2YWwgdGhhdCB1cG9uIGZhaWx1cmUuCi0rIyBGQUlMX0NNRCBtYXkgcmVhZC1hY2Nlc3MgdGhl IGN1cnJlbnQgY29tbWFuZCBpbiB2YXJpYWJsZSBDTUQhCi0rZnVuY19leGVjdXRlX2NtZHMgKCkK LSt7Ci0rICAgICRvcHRfZGVidWcKLSsgICAgc2F2ZV9pZnM9JElGUzsgSUZTPSd+JwotKyAgICBm b3IgY21kIGluICQxOyBkbwotKyAgICAgIElGUz0kc2F2ZV9pZnMKLSsgICAgICBldmFsIGNtZD1c IiRjbWRcIgotKyAgICAgIGZ1bmNfc2hvd19ldmFsICIkY21kIiAiJHsyLTp9IgotKyAgICBkb25l Ci0rICAgIElGUz0kc2F2ZV9pZnMKLSt9Ci0rCi0rCi0rIyBmdW5jX3NvdXJjZSBmaWxlCi0rIyBT b3VyY2UgRklMRSwgYWRkaW5nIGRpcmVjdG9yeSBjb21wb25lbnQgaWYgbmVjZXNzYXJ5LgotKyMg Tm90ZSB0aGF0IGl0IGlzIG5vdCBuZWNlc3Nhcnkgb24gY3lnd2luL21pbmd3IHRvIGFwcGVuZCBh IGRvdCB0bwotKyMgRklMRSBldmVuIGlmIGJvdGggRklMRSBhbmQgRklMRS5leGUgZXhpc3Q6IGF1 dG9tYXRpYy1hcHBlbmQtLmV4ZQotKyMgYmVoYXZpb3IgaGFwcGVucyBvbmx5IGZvciBleGVjKDMp LCBub3QgZm9yIG9wZW4oMikhICBBbHNvLCBzb3VyY2luZwotKyMgYEZJTEUuJyBkb2VzIG5vdCB3 b3JrIG9uIGN5Z3dpbiBtYW5hZ2VkIG1vdW50cy4KLStmdW5jX3NvdXJjZSAoKQotK3sKLSsgICAg JG9wdF9kZWJ1ZwotKyAgICBjYXNlICQxIGluCi0rICAgICovKiB8ICpcXCopCS4gIiQxIiA7Owot KyAgICAqKQkJLiAiLi8kMSIgOzsKLSsgICAgZXNhYwotK30KLSsKLSsKLSsjIGZ1bmNfaW5mZXJf dGFnIGFyZwotKyMgSW5mZXIgdGFnZ2VkIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGlmIGFueSBhcmUg YXZhaWxhYmxlIGFuZAotKyMgaWYgb25lIHdhc24ndCBjaG9zZW4gdmlhIHRoZSAiLS10YWciIGNv bW1hbmQgbGluZSBvcHRpb24uCi0rIyBPbmx5IGF0dGVtcHQgdGhpcyBpZiB0aGUgY29tcGlsZXIg aW4gdGhlIGJhc2UgY29tcGlsZQotKyMgY29tbWFuZCBkb2Vzbid0IG1hdGNoIHRoZSBkZWZhdWx0 IGNvbXBpbGVyLgotKyMgYXJnIGlzIHVzdWFsbHkgb2YgdGhlIGZvcm0gJ2djYyAuLi4nCi0rZnVu Y19pbmZlcl90YWcgKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsgICAgaWYgdGVzdCAtbiAiJGF2 YWlsYWJsZV90YWdzIiAmJiB0ZXN0IC16ICIkdGFnbmFtZSI7IHRoZW4KLSsgICAgICBDQ19xdW90 ZWQ9Ci0rICAgICAgZm9yIGFyZyBpbiAkQ0M7IGRvCi0rICAgICAgICBmdW5jX3F1b3RlX2Zvcl9l dmFsICIkYXJnIgotKwlDQ19xdW90ZWQ9IiRDQ19xdW90ZWQgJGZ1bmNfcXVvdGVfZm9yX2V2YWxf cmVzdWx0IgotKyAgICAgIGRvbmUKLSsgICAgICBjYXNlICRAIGluCi0rICAgICAgIyBCbGFua3Mg aW4gdGhlIGNvbW1hbmQgbWF5IGhhdmUgYmVlbiBzdHJpcHBlZCBieSB0aGUgY2FsbGluZyBzaGVs bCwKLSsgICAgICAjIGJ1dCBub3QgZnJvbSB0aGUgQ0MgZW52aXJvbm1lbnQgdmFyaWFibGUgd2hl biBjb25maWd1cmUgd2FzIHJ1bi4KLSsgICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiIGAkRUNI TyAkQ0NgICIqIHwgImAkRUNITyAkQ0NgICIqIHwgIiAkQ0NfcXVvdGVkIiogfCAiJENDX3F1b3Rl ZCAiKiB8ICIgYCRFQ0hPICRDQ19xdW90ZWRgICIqIHwgImAkRUNITyAkQ0NfcXVvdGVkYCAiKikg OzsKLSsgICAgICAjIEJsYW5rcyBhdCB0aGUgc3RhcnQgb2YgJGJhc2VfY29tcGlsZSB3aWxsIGNh dXNlIHRoaXMgdG8gZmFpbAotKyAgICAgICMgaWYgd2UgZG9uJ3QgY2hlY2sgZm9yIHRoZW0gYXMg d2VsbC4KLSsgICAgICAqKQotKwlmb3IgeiBpbiAkYXZhaWxhYmxlX3RhZ3M7IGRvCi0rCSAgaWYg JEdSRVAgIl4jICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICR6JCIgPCAiJHByb2dwYXRo IiA+IC9kZXYvbnVsbDsgdGhlbgotKwkgICAgIyBFdmFsdWF0ZSB0aGUgY29uZmlndXJhdGlvbi4K LSsJICAgIGV2YWwgImAke1NFRH0gLW4gLWUgJy9eIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09O RklHOiAnJHonJC8sL14jICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAnJHonJC9wJyA8ICRw cm9ncGF0aGAiCi0rCSAgICBDQ19xdW90ZWQ9Ci0rCSAgICBmb3IgYXJnIGluICRDQzsgZG8KLSsJ ICAgICAgIyBEb3VibGUtcXVvdGUgYXJncyBjb250YWluaW5nIG90aGVyIHNoZWxsIG1ldGFjaGFy YWN0ZXJzLgotKwkgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgotKwkgICAgICBDQ19x dW90ZWQ9IiRDQ19xdW90ZWQgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKwkgICAgZG9u ZQotKwkgICAgY2FzZSAiJEAgIiBpbgotKwkgICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiIGAk RUNITyAkQ0NgICIqIHwgImAkRUNITyAkQ0NgICIqIHwgIiAkQ0NfcXVvdGVkIiogfCAiJENDX3F1 b3RlZCAiKiB8ICIgYCRFQ0hPICRDQ19xdW90ZWRgICIqIHwgImAkRUNITyAkQ0NfcXVvdGVkYCAi KikKLSsJICAgICAgIyBUaGUgY29tcGlsZXIgaW4gdGhlIGJhc2UgY29tcGlsZSBjb21tYW5kIG1h dGNoZXMKLSsJICAgICAgIyB0aGUgb25lIGluIHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbi4KLSsJ ICAgICAgIyBBc3N1bWUgdGhpcyBpcyB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24gd2Ugd2FudC4K LSsJICAgICAgdGFnbmFtZT0kegotKwkgICAgICBicmVhawotKwkgICAgICA7OwotKwkgICAgZXNh YwotKwkgIGZpCi0rCWRvbmUKLSsJIyBJZiAkdGFnbmFtZSBzdGlsbCBpc24ndCBzZXQsIHRoZW4g bm8gdGFnZ2VkIGNvbmZpZ3VyYXRpb24KLSsJIyB3YXMgZm91bmQgYW5kIGxldCB0aGUgdXNlciBr bm93IHRoYXQgdGhlICItLXRhZyIgY29tbWFuZAotKwkjIGxpbmUgb3B0aW9uIG11c3QgYmUgdXNl ZC4KLSsJaWYgdGVzdCAteiAiJHRhZ25hbWUiOyB0aGVuCi0rCSAgZnVuY19lY2hvICJ1bmFibGUg dG8gaW5mZXIgdGFnZ2VkIGNvbmZpZ3VyYXRpb24iCi0rCSAgZnVuY19mYXRhbF9lcnJvciAic3Bl Y2lmeSBhIHRhZyB3aXRoIFxgLS10YWcnIgotKyMJZWxzZQotKyMJICBmdW5jX3ZlcmJvc2UgInVz aW5nICR0YWduYW1lIHRhZ2dlZCBjb25maWd1cmF0aW9uIgotKwlmaQotKwk7OwotKyAgICAgIGVz YWMKLSsgICAgZmkKLSt9Ci0rCi0rCi0rCi0rIyBmdW5jX3dyaXRlX2xpYnRvb2xfb2JqZWN0IG91 dHB1dF9uYW1lIHBpY19uYW1lIG5vbnBpY19uYW1lCi0rIyBDcmVhdGUgYSBsaWJ0b29sIG9iamVj dCBmaWxlIChhbmFsb2dvdXMgdG8gYSAiLmxhIiBmaWxlKSwKLSsjIGJ1dCBkb24ndCBjcmVhdGUg aXQgaWYgd2UncmUgZG9pbmcgYSBkcnkgcnVuLgotK2Z1bmNfd3JpdGVfbGlidG9vbF9vYmplY3Qg KCkKLSt7Ci0rICAgIHdyaXRlX2xpYm9iaj0kezF9Ci0rICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0 b29sX2xpYnMiID0geWVzOyB0aGVuCi0rICAgICAgd3JpdGVfbG9iaj1cJyR7Mn1cJwotKyAgICBl bHNlCi0rICAgICAgd3JpdGVfbG9iaj1ub25lCi0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgIiRi dWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsgICAgICB3cml0ZV9vbGRvYmo9XCckezN9XCcK LSsgICAgZWxzZQotKyAgICAgIHdyaXRlX29sZG9iaj1ub25lCi0rICAgIGZpCi0rCi0rICAgICRv cHRfZHJ5X3J1biB8fCB7Ci0rICAgICAgY2F0ID4ke3dyaXRlX2xpYm9ian1UIDw8RU9GCi0rIyAk d3JpdGVfbGlib2JqIC0gYSBsaWJ0b29sIG9iamVjdCBmaWxlCi0rIyBHZW5lcmF0ZWQgYnkgJFBS T0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCi0rIwotKyMgUGxlYXNlIERP IE5PVCBkZWxldGUgdGhpcyBmaWxlIQotKyMgSXQgaXMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHRo ZSBsaWJyYXJ5LgotKwotKyMgTmFtZSBvZiB0aGUgUElDIG9iamVjdC4KLStwaWNfb2JqZWN0PSR3 cml0ZV9sb2JqCi0rCi0rIyBOYW1lIG9mIHRoZSBub24tUElDIG9iamVjdAotK25vbl9waWNfb2Jq ZWN0PSR3cml0ZV9vbGRvYmoKLSsKLStFT0YKLSsgICAgICAkTVYgIiR7d3JpdGVfbGlib2JqfVQi ICIke3dyaXRlX2xpYm9ian0iCi0rICAgIH0KLSt9Ci0rCi0rIyBmdW5jX21vZGVfY29tcGlsZSBh cmcuLi4KLStmdW5jX21vZGVfY29tcGlsZSAoKQotK3sKLSsgICAgJG9wdF9kZWJ1ZwotKyAgICAj IEdldCB0aGUgY29tcGlsYXRpb24gY29tbWFuZCBhbmQgdGhlIHNvdXJjZSBmaWxlLgotKyAgICBi YXNlX2NvbXBpbGU9Ci0rICAgIHNyY2ZpbGU9IiRub25vcHQiICAjICBhbHdheXMga2VlcCBhIG5v bi1lbXB0eSB2YWx1ZSBpbiAic3JjZmlsZSIKLSsgICAgc3VwcHJlc3Nfb3B0PXllcwotKyAgICBz dXBwcmVzc19vdXRwdXQ9Ci0rICAgIGFyZ19tb2RlPW5vcm1hbAotKyAgICBsaWJvYmo9Ci0rICAg IGxhdGVyPQotKyAgICBwaWVfZmxhZz0KLSsKLSsgICAgZm9yIGFyZwotKyAgICBkbwotKyAgICAg IGNhc2UgJGFyZ19tb2RlIGluCi0rICAgICAgYXJnICApCi0rCSMgZG8gbm90ICJjb250aW51ZSIu ICBJbnN0ZWFkLCBhZGQgdGhpcyB0byBiYXNlX2NvbXBpbGUKLSsJbGFzdGFyZz0iJGFyZyIKLSsJ YXJnX21vZGU9bm9ybWFsCi0rCTs7Ci0rCi0rICAgICAgdGFyZ2V0ICkKLSsJbGlib2JqPSIkYXJn IgotKwlhcmdfbW9kZT1ub3JtYWwKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICBub3JtYWwg KQotKwkjIEFjY2VwdCBhbnkgY29tbWFuZC1saW5lIG9wdGlvbnMuCi0rCWNhc2UgJGFyZyBpbgot KwktbykKLSsJICB0ZXN0IC1uICIkbGlib2JqIiAmJiBcCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9y ICJ5b3UgY2Fubm90IHNwZWNpZnkgXGAtbycgbW9yZSB0aGFuIG9uY2UiCi0rCSAgYXJnX21vZGU9 dGFyZ2V0Ci0rCSAgY29udGludWUKLSsJICA7OwotKwotKwktcGllIHwgLWZwaWUgfCAtZlBJRSkK LSsgICAgICAgICAgcGllX2ZsYWc9IiRwaWVfZmxhZyAkYXJnIgotKwkgIGNvbnRpbnVlCi0rCSAg OzsKLSsKLSsJLXNoYXJlZCB8IC1zdGF0aWMgfCAtcHJlZmVyLXBpYyB8IC1wcmVmZXItbm9uLXBp YykKLSsJICBsYXRlcj0iJGxhdGVyICRhcmciCi0rCSAgY29udGludWUKLSsJICA7OwotKwotKwkt bm8tc3VwcHJlc3MpCi0rCSAgc3VwcHJlc3Nfb3B0PW5vCi0rCSAgY29udGludWUKLSsJICA7Owot KwotKwktWGNvbXBpbGVyKQotKwkgIGFyZ19tb2RlPWFyZyAgIyAgdGhlIG5leHQgb25lIGdvZXMg aW50byB0aGUgImJhc2VfY29tcGlsZSIgYXJnIGxpc3QKLSsJICBjb250aW51ZSAgICAgICMgIFRo ZSBjdXJyZW50ICJzcmNmaWxlIiB3aWxsIGVpdGhlciBiZSByZXRhaW5lZCBvcgotKwkgIDs7ICAg ICAgICAgICAgIyAgcmVwbGFjZWQgbGF0ZXIuICBJIHdvdWxkIGd1ZXNzIHRoYXQgd291bGQgYmUg YSBidWcuCi0rCi0rCS1XYywqKQotKwkgIGZ1bmNfc3RyaXBuYW1lICctV2MsJyAnJyAiJGFyZyIK LSsJICBhcmdzPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICBsYXN0YXJnPQotKwkgIHNhdmVf aWZzPSIkSUZTIjsgSUZTPScsJwotKwkgIGZvciBhcmcgaW4gJGFyZ3M7IGRvCi0rCSAgICBJRlM9 IiRzYXZlX2lmcyIKLSsJICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCi0rCSAgICBsYXN0 YXJnPSIkbGFzdGFyZyAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0rCSAgZG9uZQotKwkg IElGUz0iJHNhdmVfaWZzIgotKwkgIGZ1bmNfc3RyaXBuYW1lICcgJyAnJyAiJGxhc3RhcmciCi0r CSAgbGFzdGFyZz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCi0rCSAgIyBBZGQgdGhlIGFyZ3Vt ZW50cyB0byBiYXNlX2NvbXBpbGUuCi0rCSAgYmFzZV9jb21waWxlPSIkYmFzZV9jb21waWxlICRs YXN0YXJnIgotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsKLSsJKikKLSsJICAjIEFjY2VwdCB0aGUg Y3VycmVudCBhcmd1bWVudCBhcyB0aGUgc291cmNlIGZpbGUuCi0rCSAgIyBUaGUgcHJldmlvdXMg InNyY2ZpbGUiIGJlY29tZXMgdGhlIGN1cnJlbnQgYXJndW1lbnQuCi0rCSAgIwotKwkgIGxhc3Rh cmc9IiRzcmNmaWxlIgotKwkgIHNyY2ZpbGU9IiRhcmciCi0rCSAgOzsKLSsJZXNhYyAgIyAgY2Fz ZSAkYXJnCi0rCTs7Ci0rICAgICAgZXNhYyAgICAjICBjYXNlICRhcmdfbW9kZQotKwotKyAgICAg ICMgQWVzdGhldGljYWxseSBxdW90ZSB0aGUgcHJldmlvdXMgYXJndW1lbnQuCi0rICAgICAgZnVu Y19xdW90ZV9mb3JfZXZhbCAiJGxhc3RhcmciCi0rICAgICAgYmFzZV9jb21waWxlPSIkYmFzZV9j b21waWxlICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsgICAgZG9uZSAjIGZvciBhcmcK LSsKLSsgICAgY2FzZSAkYXJnX21vZGUgaW4KLSsgICAgYXJnKQotKyAgICAgIGZ1bmNfZmF0YWxf ZXJyb3IgInlvdSBtdXN0IHNwZWNpZnkgYW4gYXJndW1lbnQgZm9yIC1YY29tcGlsZSIKLSsgICAg ICA7OwotKyAgICB0YXJnZXQpCi0rICAgICAgZnVuY19mYXRhbF9lcnJvciAieW91IG11c3Qgc3Bl Y2lmeSBhIHRhcmdldCB3aXRoIFxgLW8nIgotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgIyBH ZXQgdGhlIG5hbWUgb2YgdGhlIGxpYnJhcnkgb2JqZWN0LgotKyAgICAgIHRlc3QgLXogIiRsaWJv YmoiICYmIHsKLSsJZnVuY19iYXNlbmFtZSAiJHNyY2ZpbGUiCi0rCWxpYm9iaj0iJGZ1bmNfYmFz ZW5hbWVfcmVzdWx0IgotKyAgICAgIH0KLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgICMg UmVjb2duaXplIHNldmVyYWwgZGlmZmVyZW50IGZpbGUgc3VmZml4ZXMuCi0rICAgICMgSWYgdGhl IHVzZXIgc3BlY2lmaWVzIC1vIGZpbGUubywgaXQgaXMgcmVwbGFjZWQgd2l0aCBmaWxlLmxvCi0r ICAgIGNhc2UgJGxpYm9iaiBpbgotKyAgICAqLltjQ0ZTaWZtc29dIHwgXAotKyAgICAqLmFkYSB8 ICouYWRiIHwgKi5hZHMgfCAqLmFzbSB8IFwKLSsgICAgKi5jKysgfCAqLmNjIHwgKi5paSB8ICou Y2xhc3MgfCAqLmNwcCB8ICouY3h4IHwgXAotKyAgICAqLltmRl1bMDldPyB8ICouZm9yIHwgKi5q YXZhIHwgKi5vYmogfCAqLnN4KQotKyAgICAgIGZ1bmNfeGZvcm0gIiRsaWJvYmoiCi0rICAgICAg bGlib2JqPSRmdW5jX3hmb3JtX3Jlc3VsdAotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAg Y2FzZSAkbGlib2JqIGluCi0rICAgICoubG8pIGZ1bmNfbG8ybyAiJGxpYm9iaiI7IG9iaj0kZnVu Y19sbzJvX3Jlc3VsdCA7OwotKyAgICAqKQotKyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5v dCBkZXRlcm1pbmUgbmFtZSBvZiBsaWJyYXJ5IG9iamVjdCBmcm9tIFxgJGxpYm9iaiciCi0rICAg ICAgOzsKLSsgICAgZXNhYwotKwotKyAgICBmdW5jX2luZmVyX3RhZyAkYmFzZV9jb21waWxlCi0r Ci0rICAgIGZvciBhcmcgaW4gJGxhdGVyOyBkbwotKyAgICAgIGNhc2UgJGFyZyBpbgotKyAgICAg IC1zaGFyZWQpCi0rCXRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllcyAmJiBcCi0rCSAg ZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJjYW4gbm90IGJ1aWxkIGEgc2hhcmVkIGxpYnJhcnki Ci0rCWJ1aWxkX29sZF9saWJzPW5vCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLXN0YXRp YykKLSsJYnVpbGRfbGlidG9vbF9saWJzPW5vCi0rCWJ1aWxkX29sZF9saWJzPXllcwotKwljb250 aW51ZQotKwk7OwotKwotKyAgICAgIC1wcmVmZXItcGljKQotKwlwaWNfbW9kZT15ZXMKLSsJY29u dGludWUKLSsJOzsKLSsKLSsgICAgICAtcHJlZmVyLW5vbi1waWMpCi0rCXBpY19tb2RlPW5vCi0r CWNvbnRpbnVlCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBkb25lCi0rCi0rICAgIGZ1bmNfcXVv dGVfZm9yX2V2YWwgIiRsaWJvYmoiCi0rICAgIHRlc3QgIlgkbGlib2JqIiAhPSAiWCRmdW5jX3F1 b3RlX2Zvcl9ldmFsX3Jlc3VsdCIgXAotKyAgICAgICYmICRFQ0hPICJYJGxpYm9iaiIgfCAkR1JF UCAnW11+I14qe307PD4/IiciJyInCSAmKCl8YCRbXScgXAotKyAgICAgICYmIGZ1bmNfd2Fybmlu ZyAibGlib2JqIG5hbWUgXGAkbGlib2JqJyBtYXkgbm90IGNvbnRhaW4gc2hlbGwgc3BlY2lhbCBj aGFyYWN0ZXJzLiIKLSsgICAgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJG9iaiIgIi8iICIi Ci0rICAgIG9iam5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsgICAgeGRpcj0iJGZ1bmNf ZGlybmFtZV9yZXN1bHQiCi0rICAgIGxvYmo9JHt4ZGlyfSRvYmpkaXIvJG9iam5hbWUKLSsKLSsg ICAgdGVzdCAteiAiJGJhc2VfY29tcGlsZSIgJiYgXAotKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAi eW91IG11c3Qgc3BlY2lmeSBhIGNvbXBpbGF0aW9uIGNvbW1hbmQiCi0rCi0rICAgICMgRGVsZXRl IGFueSBsZWZ0b3ZlciBsaWJyYXJ5IG9iamVjdHMuCi0rICAgIGlmIHRlc3QgIiRidWlsZF9vbGRf bGlicyIgPSB5ZXM7IHRoZW4KLSsgICAgICByZW1vdmVsaXN0PSIkb2JqICRsb2JqICRsaWJvYmog JHtsaWJvYmp9VCIKLSsgICAgZWxzZQotKyAgICAgIHJlbW92ZWxpc3Q9IiRsb2JqICRsaWJvYmog JHtsaWJvYmp9VCIKLSsgICAgZmkKLSsKLSsgICAgIyBPbiBDeWd3aW4gdGhlcmUncyBubyAicmVh bCIgUElDIGZsYWcgc28gd2UgbXVzdCBidWlsZCBib3RoIG9iamVjdCB0eXBlcwotKyAgICBjYXNl ICRob3N0X29zIGluCi0rICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IG9zMiogfCBjZWdj YyopCi0rICAgICAgcGljX21vZGU9ZGVmYXVsdAotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAg aWYgdGVzdCAiJHBpY19tb2RlIiA9IG5vICYmIHRlc3QgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIg IT0gcGFzc19hbGw7IHRoZW4KLSsgICAgICAjIG5vbi1QSUMgY29kZSBpbiBzaGFyZWQgbGlicmFy aWVzIGlzIG5vdCBzdXBwb3J0ZWQKLSsgICAgICBwaWNfbW9kZT1kZWZhdWx0Ci0rICAgIGZpCi0r Ci0rICAgICMgQ2FsY3VsYXRlIHRoZSBmaWxlbmFtZSBvZiB0aGUgb3V0cHV0IG9iamVjdCBpZiBj b21waWxlciBkb2VzCi0rICAgICMgbm90IHN1cHBvcnQgLW8gd2l0aCAtYwotKyAgICBpZiB0ZXN0 ICIkY29tcGlsZXJfY19vIiA9IG5vOyB0aGVuCi0rICAgICAgb3V0cHV0X29iaj1gJEVDSE8gIlgk c3JjZmlsZSIgfCAkWHNlZCAtZSAncyVeLiovJSUnIC1lICdzJVwuW14uXSokJSUnYC4ke29iamV4 dH0KLSsgICAgICBsb2NrZmlsZT0iJG91dHB1dF9vYmoubG9jayIKLSsgICAgZWxzZQotKyAgICAg IG91dHB1dF9vYmo9Ci0rICAgICAgbmVlZF9sb2Nrcz1ubwotKyAgICAgIGxvY2tmaWxlPQotKyAg ICBmaQotKwotKyAgICAjIExvY2sgdGhpcyBjcml0aWNhbCBzZWN0aW9uIGlmIGl0IGlzIG5lZWRl ZAotKyAgICAjIFdlIHVzZSB0aGlzIHNjcmlwdCBmaWxlIHRvIG1ha2UgdGhlIGxpbmssIGl0IGF2 b2lkcyBjcmVhdGluZyBhIG5ldyBmaWxlCi0rICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHll czsgdGhlbgotKyAgICAgIHVudGlsICRvcHRfZHJ5X3J1biB8fCBsbiAiJHByb2dwYXRoIiAiJGxv Y2tmaWxlIiAyPi9kZXYvbnVsbDsgZG8KLSsJZnVuY19lY2hvICJXYWl0aW5nIGZvciAkbG9ja2Zp bGUgdG8gYmUgcmVtb3ZlZCIKLSsJc2xlZXAgMgotKyAgICAgIGRvbmUKLSsgICAgZWxpZiB0ZXN0 ICIkbmVlZF9sb2NrcyIgPSB3YXJuOyB0aGVuCi0rICAgICAgaWYgdGVzdCAtZiAiJGxvY2tmaWxl IjsgdGhlbgotKwkkRUNITyAiXAotKyoqKiBFUlJPUiwgJGxvY2tmaWxlIGV4aXN0cyBhbmQgY29u dGFpbnM6Ci0rYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgCi0rCi0rVGhpcyBpbmRpY2F0ZXMg dGhhdCBhbm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5nIHRvIHVzZSB0aGUgc2FtZQotK3RlbXBvcmFy eSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1 c2UKLSt5b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBvcnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0 aGVyLiAgSWYgeW91Ci0rcmVwZWF0IHRoaXMgY29tcGlsYXRpb24sIGl0IG1heSBzdWNjZWVkLCBi eSBjaGFuY2UsIGJ1dCB5b3UgaGFkIGJldHRlcgotK2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFr ZSAtaikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCi0rY29tcGlsZXIuIgotKwot Kwkkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0Ci0rCWV4aXQgJEVYSVRfRkFJTFVSRQot KyAgICAgIGZpCi0rICAgICAgcmVtb3ZlbGlzdD0iJHJlbW92ZWxpc3QgJG91dHB1dF9vYmoiCi0r ICAgICAgJEVDSE8gIiRzcmNmaWxlIiA+ICIkbG9ja2ZpbGUiCi0rICAgIGZpCi0rCi0rICAgICRv cHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3QKLSsgICAgcmVtb3ZlbGlzdD0iJHJlbW92ZWxp c3QgJGxvY2tmaWxlIgotKyAgICB0cmFwICckb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0 OyBleGl0ICRFWElUX0ZBSUxVUkUnIDEgMiAxNQotKwotKyAgICBpZiB0ZXN0IC1uICIkZml4X3Ny Y2ZpbGVfcGF0aCI7IHRoZW4KLSsgICAgICBldmFsIHNyY2ZpbGU9XCIkZml4X3NyY2ZpbGVfcGF0 aFwiCi0rICAgIGZpCi0rICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRzcmNmaWxlIgotKyAgICBx c3JjZmlsZT0kZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQKLSsKLSsgICAgIyBPbmx5IGJ1aWxk IGEgUElDIG9iamVjdCBpZiB3ZSBhcmUgYnVpbGRpbmcgbGlidG9vbCBsaWJyYXJpZXMuCi0rICAg IGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCi0rICAgICAgIyBXaXRo b3V0IHRoaXMgYXNzaWdubWVudCwgYmFzZV9jb21waWxlIGdldHMgZW1wdGllZC4KLSsgICAgICBm YnNkX2hpZGVvdXNfc2hfYnVnPSRiYXNlX2NvbXBpbGUKLSsKLSsgICAgICBpZiB0ZXN0ICIkcGlj X21vZGUiICE9IG5vOyB0aGVuCi0rCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlICRw aWNfZmxhZyIKLSsgICAgICBlbHNlCi0rCSMgRG9uJ3QgYnVpbGQgUElDIGNvZGUKLSsJY29tbWFu ZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUiCi0rICAgICAgZmkKLSsKLSsgICAgICBmdW5jX21r ZGlyX3AgIiR4ZGlyJG9iamRpciIKLSsKLSsgICAgICBpZiB0ZXN0IC16ICIkb3V0cHV0X29iaiI7 IHRoZW4KLSsJIyBQbGFjZSBQSUMgb2JqZWN0cyBpbiAkb2JqZGlyCi0rCWNvbW1hbmQ9IiRjb21t YW5kIC1vICRsb2JqIgotKyAgICAgIGZpCi0rCi0rICAgICAgZnVuY19zaG93X2V2YWxfbG9jYWxl ICIkY29tbWFuZCIJXAotKyAgICAgICAgICAndGVzdCAtbiAiJG91dHB1dF9vYmoiICYmICRSTSAk cmVtb3ZlbGlzdDsgZXhpdCAkRVhJVF9GQUlMVVJFJwotKwotKyAgICAgIGlmIHRlc3QgIiRuZWVk X2xvY2tzIiA9IHdhcm4gJiYKLSsJIHRlc3QgIlhgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAi ICE9ICJYJHNyY2ZpbGUiOyB0aGVuCi0rCSRFQ0hPICJcCi0rKioqIEVSUk9SLCAkbG9ja2ZpbGUg Y29udGFpbnM6Ci0rYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgCi0rCi0rYnV0IGl0IHNob3Vs ZCBjb250YWluOgotKyRzcmNmaWxlCi0rCi0rVGhpcyBpbmRpY2F0ZXMgdGhhdCBhbm90aGVyIHBy b2Nlc3MgaXMgdHJ5aW5nIHRvIHVzZSB0aGUgc2FtZQotK3RlbXBvcmFyeSBvYmplY3QgZmlsZSwg YW5kIGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKLSt5b3VyIGNvbXBp bGVyIGRvZXMgbm90IHN1cHBvcnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91Ci0r cmVwZWF0IHRoaXMgY29tcGlsYXRpb24sIGl0IG1heSBzdWNjZWVkLCBieSBjaGFuY2UsIGJ1dCB5 b3UgaGFkIGJldHRlcgotK2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBw bGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCi0rY29tcGlsZXIuIgotKwotKwkkb3B0X2RyeV9ydW4g fHwgJFJNICRyZW1vdmVsaXN0Ci0rCWV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICAgIGZpCi0rCi0r ICAgICAgIyBKdXN0IG1vdmUgdGhlIG9iamVjdCBpZiBuZWVkZWQsIHRoZW4gZ28gb24gdG8gY29t cGlsZSB0aGUgbmV4dCBvbmUKLSsgICAgICBpZiB0ZXN0IC1uICIkb3V0cHV0X29iaiIgJiYgdGVz dCAiWCRvdXRwdXRfb2JqIiAhPSAiWCRsb2JqIjsgdGhlbgotKwlmdW5jX3Nob3dfZXZhbCAnJE1W ICIkb3V0cHV0X29iaiIgIiRsb2JqIicgXAotKwkgICdlcnJvcj0kPzsgJG9wdF9kcnlfcnVuIHx8 ICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAkZXJyb3InCi0rICAgICAgZmkKLSsKLSsgICAgICAjIEFs bG93IGVycm9yIG1lc3NhZ2VzIG9ubHkgZnJvbSB0aGUgZmlyc3QgY29tcGlsYXRpb24uCi0rICAg ICAgaWYgdGVzdCAiJHN1cHByZXNzX29wdCIgPSB5ZXM7IHRoZW4KLSsJc3VwcHJlc3Nfb3V0cHV0 PScgPi9kZXYvbnVsbCAyPiYxJwotKyAgICAgIGZpCi0rICAgIGZpCi0rCi0rICAgICMgT25seSBi dWlsZCBhIHBvc2l0aW9uLWRlcGVuZGVudCBvYmplY3QgaWYgd2UgYnVpbGQgb2xkIGxpYnJhcmll cy4KLSsgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgotKyAgICAgIGlm IHRlc3QgIiRwaWNfbW9kZSIgIT0geWVzOyB0aGVuCi0rCSMgRG9uJ3QgYnVpbGQgUElDIGNvZGUK LSsJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUkcGllX2ZsYWciCi0rICAgICAgZWxz ZQotKwljb21tYW5kPSIkYmFzZV9jb21waWxlICRxc3JjZmlsZSAkcGljX2ZsYWciCi0rICAgICAg ZmkKLSsgICAgICBpZiB0ZXN0ICIkY29tcGlsZXJfY19vIiA9IHllczsgdGhlbgotKwljb21tYW5k PSIkY29tbWFuZCAtbyAkb2JqIgotKyAgICAgIGZpCi0rCi0rICAgICAgIyBTdXBwcmVzcyBjb21w aWxlciBvdXRwdXQgaWYgd2UgYWxyZWFkeSBkaWQgYSBQSUMgY29tcGlsYXRpb24uCi0rICAgICAg Y29tbWFuZD0iJGNvbW1hbmQkc3VwcHJlc3Nfb3V0cHV0IgotKyAgICAgIGZ1bmNfc2hvd19ldmFs X2xvY2FsZSAiJGNvbW1hbmQiIFwKLSsgICAgICAgICckb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1v dmVsaXN0OyBleGl0ICRFWElUX0ZBSUxVUkUnCi0rCi0rICAgICAgaWYgdGVzdCAiJG5lZWRfbG9j a3MiID0gd2FybiAmJgotKwkgdGVzdCAiWGBjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYCIgIT0g Ilgkc3JjZmlsZSI7IHRoZW4KLSsJJEVDSE8gIlwKLSsqKiogRVJST1IsICRsb2NrZmlsZSBjb250 YWluczoKLStgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAKLSsKLStidXQgaXQgc2hvdWxkIGNv bnRhaW46Ci0rJHNyY2ZpbGUKLSsKLStUaGlzIGluZGljYXRlcyB0aGF0IGFub3RoZXIgcHJvY2Vz cyBpcyB0cnlpbmcgdG8gdXNlIHRoZSBzYW1lCi0rdGVtcG9yYXJ5IG9iamVjdCBmaWxlLCBhbmQg bGlidG9vbCBjb3VsZCBub3Qgd29yayBhcm91bmQgaXQgYmVjYXVzZQotK3lvdXIgY29tcGlsZXIg ZG9lcyBub3Qgc3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKLStyZXBl YXQgdGhpcyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0IHlvdSBo YWQgYmV0dGVyCi0rYXZvaWQgcGFyYWxsZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0aGlzIHBsYXRm b3JtLCBvciBnZXQgYSBiZXR0ZXIKLStjb21waWxlci4iCi0rCi0rCSRvcHRfZHJ5X3J1biB8fCAk Uk0gJHJlbW92ZWxpc3QKLSsJZXhpdCAkRVhJVF9GQUlMVVJFCi0rICAgICAgZmkKLSsKLSsgICAg ICAjIEp1c3QgbW92ZSB0aGUgb2JqZWN0IGlmIG5lZWRlZAotKyAgICAgIGlmIHRlc3QgLW4gIiRv dXRwdXRfb2JqIiAmJiB0ZXN0ICJYJG91dHB1dF9vYmoiICE9ICJYJG9iaiI7IHRoZW4KLSsJZnVu Y19zaG93X2V2YWwgJyRNViAiJG91dHB1dF9vYmoiICIkb2JqIicgXAotKwkgICdlcnJvcj0kPzsg JG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAkZXJyb3InCi0rICAgICAgZmkK LSsgICAgZmkKLSsKLSsgICAgJG9wdF9kcnlfcnVuIHx8IHsKLSsgICAgICBmdW5jX3dyaXRlX2xp YnRvb2xfb2JqZWN0ICIkbGlib2JqIiAiJG9iamRpci8kb2JqbmFtZSIgIiRvYmpuYW1lIgotKwot KyAgICAgICMgVW5sb2NrIHRoZSBjcml0aWNhbCBzZWN0aW9uIGlmIGl0IHdhcyBsb2NrZWQKLSsg ICAgICBpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KLSsJcmVtb3ZlbGlzdD0kbG9j a2ZpbGUKLSsgICAgICAgICRSTSAiJGxvY2tmaWxlIgotKyAgICAgIGZpCi0rICAgIH0KLSsKLSsg ICAgZXhpdCAkRVhJVF9TVUNDRVNTCi0rfQotKwotKyRvcHRfaGVscCB8fCB7Ci0rdGVzdCAiJG1v ZGUiID0gY29tcGlsZSAmJiBmdW5jX21vZGVfY29tcGlsZSAkezErIiRAIn0KLSt9Ci0rCi0rZnVu Y19tb2RlX2hlbHAgKCkKLSt7Ci0rICAgICMgV2UgbmVlZCB0byBkaXNwbGF5IGhlbHAgZm9yIGVh Y2ggb2YgdGhlIG1vZGVzLgotKyAgICBjYXNlICRtb2RlIGluCi0rICAgICAgIiIpCi0rICAgICAg ICAjIEdlbmVyaWMgaGVscCBpcyBleHRyYWN0ZWQgZnJvbSB0aGUgdXNhZ2UgY29tbWVudHMKLSsg ICAgICAgICMgYXQgdGhlIHN0YXJ0IG9mIHRoaXMgZmlsZS4KLSsgICAgICAgIGZ1bmNfaGVscAot KyAgICAgICAgOzsKLSsKLSsgICAgICBjbGVhbikKLSsgICAgICAgICRFQ0hPIFwKLSsiVXNhZ2U6 ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9Y2xlYW4gUk0gW1JNLU9QVElPTl0uLi4gRklM RS4uLgotKwotK1JlbW92ZSBmaWxlcyBmcm9tIHRoZSBidWlsZCBkaXJlY3RvcnkuCi0rCi0rUk0g aXMgdGhlIG5hbWUgb2YgdGhlIHByb2dyYW0gdG8gdXNlIHRvIGRlbGV0ZSBmaWxlcyBhc3NvY2lh dGVkIHdpdGggZWFjaCBGSUxFCi0rKHR5cGljYWxseSBcYC9iaW4vcm0nKS4gIFJNLU9QVElPTlMg YXJlIG9wdGlvbnMgKHN1Y2ggYXMgXGAtZicpIHRvIGJlIHBhc3NlZAotK3RvIFJNLgotKwotK0lm IEZJTEUgaXMgYSBsaWJ0b29sIGxpYnJhcnksIG9iamVjdCBvciBwcm9ncmFtLCBhbGwgdGhlIGZp bGVzIGFzc29jaWF0ZWQKLSt3aXRoIGl0IGFyZSBkZWxldGVkLiBPdGhlcndpc2UsIG9ubHkgRklM RSBpdHNlbGYgaXMgZGVsZXRlZCB1c2luZyBSTS4iCi0rICAgICAgICA7OwotKwotKyAgICAgIGNv bXBpbGUpCi0rICAgICAgJEVDSE8gXAotKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0t bW9kZT1jb21waWxlIENPTVBJTEUtQ09NTUFORC4uLiBTT1VSQ0VGSUxFCi0rCi0rQ29tcGlsZSBh IHNvdXJjZSBmaWxlIGludG8gYSBsaWJ0b29sIGxpYnJhcnkgb2JqZWN0LgotKwotK1RoaXMgbW9k ZSBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBvcHRpb25zOgotKwotKyAgLW8gT1VU UFVULUZJTEUgICAgc2V0IHRoZSBvdXRwdXQgZmlsZSBuYW1lIHRvIE9VVFBVVC1GSUxFCi0rICAt bm8tc3VwcHJlc3MgICAgICBkbyBub3Qgc3VwcHJlc3MgY29tcGlsZXIgb3V0cHV0IGZvciBtdWx0 aXBsZSBwYXNzZXMKLSsgIC1wcmVmZXItcGljICAgICAgIHRyeSB0byBidWlsZGluZyBQSUMgb2Jq ZWN0cyBvbmx5Ci0rICAtcHJlZmVyLW5vbi1waWMgICB0cnkgdG8gYnVpbGRpbmcgbm9uLVBJQyBv YmplY3RzIG9ubHkKLSsgIC1zaGFyZWQgICAgICAgICAgIGRvIG5vdCBidWlsZCBhIFxgLm8nIGZp bGUgc3VpdGFibGUgZm9yIHN0YXRpYyBsaW5raW5nCi0rICAtc3RhdGljICAgICAgICAgICBvbmx5 IGJ1aWxkIGEgXGAubycgZmlsZSBzdWl0YWJsZSBmb3Igc3RhdGljIGxpbmtpbmcKLSsKLStDT01Q SUxFLUNPTU1BTkQgaXMgYSBjb21tYW5kIHRvIGJlIHVzZWQgaW4gY3JlYXRpbmcgYSBcYHN0YW5k YXJkJyBvYmplY3QgZmlsZQotK2Zyb20gdGhlIGdpdmVuIFNPVVJDRUZJTEUuCi0rCi0rVGhlIG91 dHB1dCBmaWxlIG5hbWUgaXMgZGV0ZXJtaW5lZCBieSByZW1vdmluZyB0aGUgZGlyZWN0b3J5IGNv bXBvbmVudCBmcm9tCi0rU09VUkNFRklMRSwgdGhlbiBzdWJzdGl0dXRpbmcgdGhlIEMgc291cmNl IGNvZGUgc3VmZml4IFxgLmMnIHdpdGggdGhlCi0rbGlicmFyeSBvYmplY3Qgc3VmZml4LCBcYC5s bycuIgotKyAgICAgICAgOzsKLSsKLSsgICAgICBleGVjdXRlKQotKyAgICAgICAgJEVDSE8gXAot KyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1leGVjdXRlIENPTU1BTkQgW0FS R1NdLi4uCi0rCi0rQXV0b21hdGljYWxseSBzZXQgbGlicmFyeSBwYXRoLCB0aGVuIHJ1biBhIHBy b2dyYW0uCi0rCi0rVGhpcyBtb2RlIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIG9w dGlvbnM6Ci0rCi0rICAtZGxvcGVuIEZJTEUgICAgICBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWlu aW5nIEZJTEUgdG8gdGhlIGxpYnJhcnkgcGF0aAotKwotK1RoaXMgbW9kZSBzZXRzIHRoZSBsaWJy YXJ5IHBhdGggZW52aXJvbm1lbnQgdmFyaWFibGUgYWNjb3JkaW5nIHRvIFxgLWRsb3BlbicKLStm bGFncy4KLSsKLStJZiBhbnkgb2YgdGhlIEFSR1MgYXJlIGxpYnRvb2wgZXhlY3V0YWJsZSB3cmFw cGVycywgdGhlbiB0aGV5IGFyZSB0cmFuc2xhdGVkCi0raW50byB0aGVpciBjb3JyZXNwb25kaW5n IHVuaW5zdGFsbGVkIGJpbmFyeSwgYW5kIGFueSBvZiB0aGVpciByZXF1aXJlZCBsaWJyYXJ5Ci0r ZGlyZWN0b3JpZXMgYXJlIGFkZGVkIHRvIHRoZSBsaWJyYXJ5IHBhdGguCi0rCi0rVGhlbiwgQ09N TUFORCBpcyBleGVjdXRlZCwgd2l0aCBBUkdTIGFzIGFyZ3VtZW50cy4iCi0rICAgICAgICA7Owot KwotKyAgICAgIGZpbmlzaCkKLSsgICAgICAgICRFQ0hPIFwKLSsiVXNhZ2U6ICRwcm9nbmFtZSBb T1BUSU9OXS4uLiAtLW1vZGU9ZmluaXNoIFtMSUJESVJdLi4uCi0rCi0rQ29tcGxldGUgdGhlIGlu c3RhbGxhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcy4KLSsKLStFYWNoIExJQkRJUiBpcyBhIGRp cmVjdG9yeSB0aGF0IGNvbnRhaW5zIGxpYnRvb2wgbGlicmFyaWVzLgotKwotK1RoZSBjb21tYW5k cyB0aGF0IHRoaXMgbW9kZSBleGVjdXRlcyBtYXkgcmVxdWlyZSBzdXBlcnVzZXIgcHJpdmlsZWdl cy4gIFVzZQotK3RoZSBcYC0tZHJ5LXJ1bicgb3B0aW9uIGlmIHlvdSBqdXN0IHdhbnQgdG8gc2Vl IHdoYXQgd291bGQgYmUgZXhlY3V0ZWQuIgotKyAgICAgICAgOzsKLSsKLSsgICAgICBpbnN0YWxs KQotKyAgICAgICAgJEVDSE8gXAotKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9k ZT1pbnN0YWxsIElOU1RBTEwtQ09NTUFORC4uLgotKwotK0luc3RhbGwgZXhlY3V0YWJsZXMgb3Ig bGlicmFyaWVzLgotKwotK0lOU1RBTEwtQ09NTUFORCBpcyB0aGUgaW5zdGFsbGF0aW9uIGNvbW1h bmQuICBUaGUgZmlyc3QgY29tcG9uZW50IHNob3VsZCBiZQotK2VpdGhlciB0aGUgXGBpbnN0YWxs JyBvciBcYGNwJyBwcm9ncmFtLgotKwotK1RoZSBmb2xsb3dpbmcgY29tcG9uZW50cyBvZiBJTlNU QUxMLUNPTU1BTkQgYXJlIHRyZWF0ZWQgc3BlY2lhbGx5OgotKwotKyAgLWluc3QtcHJlZml4IFBS RUZJWC1ESVIgIFVzZSBQUkVGSVgtRElSIGFzIGEgc3RhZ2luZyBhcmVhIGZvciBpbnN0YWxsYXRp b24KLSsKLStUaGUgcmVzdCBvZiB0aGUgY29tcG9uZW50cyBhcmUgaW50ZXJwcmV0ZWQgYXMgYXJn dW1lbnRzIHRvIHRoYXQgY29tbWFuZCAob25seQotK0JTRC1jb21wYXRpYmxlIGluc3RhbGwgb3B0 aW9ucyBhcmUgcmVjb2duaXplZCkuIgotKyAgICAgICAgOzsKLSsKLSsgICAgICBsaW5rKQotKyAg ICAgICAgJEVDSE8gXAotKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1saW5r IExJTkstQ09NTUFORC4uLgotKwotK0xpbmsgb2JqZWN0IGZpbGVzIG9yIGxpYnJhcmllcyB0b2dl dGhlciB0byBmb3JtIGFub3RoZXIgbGlicmFyeSwgb3IgdG8KLStjcmVhdGUgYW4gZXhlY3V0YWJs ZSBwcm9ncmFtLgotKwotK0xJTkstQ09NTUFORCBpcyBhIGNvbW1hbmQgdXNpbmcgdGhlIEMgY29t cGlsZXIgdGhhdCB5b3Ugd291bGQgdXNlIHRvIGNyZWF0ZQotK2EgcHJvZ3JhbSBmcm9tIHNldmVy YWwgb2JqZWN0IGZpbGVzLgotKwotK1RoZSBmb2xsb3dpbmcgY29tcG9uZW50cyBvZiBMSU5LLUNP TU1BTkQgYXJlIHRyZWF0ZWQgc3BlY2lhbGx5OgotKwotKyAgLWFsbC1zdGF0aWMgICAgICAgZG8g bm90IGRvIGFueSBkeW5hbWljIGxpbmtpbmcgYXQgYWxsCi0rICAtYXZvaWQtdmVyc2lvbiAgICBk byBub3QgYWRkIGEgdmVyc2lvbiBzdWZmaXggaWYgcG9zc2libGUKLSsgIC1kbG9wZW4gRklMRSAg ICAgIFxgLWRscHJlb3BlbicgRklMRSBpZiBpdCBjYW5ub3QgYmUgZGxvcGVuZWQgYXQgcnVudGlt ZQotKyAgLWRscHJlb3BlbiBGSUxFICAgbGluayBpbiBGSUxFIGFuZCBhZGQgaXRzIHN5bWJvbHMg dG8gbHRfcHJlbG9hZGVkX3N5bWJvbHMKLSsgIC1leHBvcnQtZHluYW1pYyAgIGFsbG93IHN5bWJv bHMgZnJvbSBPVVRQVVQtRklMRSB0byBiZSByZXNvbHZlZCB3aXRoIGRsc3ltKDMpCi0rICAtZXhw b3J0LXN5bWJvbHMgU1lNRklMRQotKyAgICAgICAgICAgICAgICAgICAgdHJ5IHRvIGV4cG9ydCBv bmx5IHRoZSBzeW1ib2xzIGxpc3RlZCBpbiBTWU1GSUxFCi0rICAtZXhwb3J0LXN5bWJvbHMtcmVn ZXggUkVHRVgKLSsgICAgICAgICAgICAgICAgICAgIHRyeSB0byBleHBvcnQgb25seSB0aGUgc3lt Ym9scyBtYXRjaGluZyBSRUdFWAotKyAgLUxMSUJESVIgICAgICAgICAgc2VhcmNoIExJQkRJUiBm b3IgcmVxdWlyZWQgaW5zdGFsbGVkIGxpYnJhcmllcwotKyAgLWxOQU1FICAgICAgICAgICAgT1VU UFVULUZJTEUgcmVxdWlyZXMgdGhlIGluc3RhbGxlZCBsaWJyYXJ5IGxpYk5BTUUKLSsgIC1tb2R1 bGUgICAgICAgICAgIGJ1aWxkIGEgbGlicmFyeSB0aGF0IGNhbiBkbG9wZW5lZAotKyAgLW5vLWZh c3QtaW5zdGFsbCAgZGlzYWJsZSB0aGUgZmFzdC1pbnN0YWxsIG1vZGUKLSsgIC1uby1pbnN0YWxs ICAgICAgIGxpbmsgYSBub3QtaW5zdGFsbGFibGUgZXhlY3V0YWJsZQotKyAgLW5vLXVuZGVmaW5l ZCAgICAgZGVjbGFyZSB0aGF0IGEgbGlicmFyeSBkb2VzIG5vdCByZWZlciB0byBleHRlcm5hbCBz eW1ib2xzCi0rICAtbyBPVVRQVVQtRklMRSAgICBjcmVhdGUgT1VUUFVULUZJTEUgZnJvbSB0aGUg c3BlY2lmaWVkIG9iamVjdHMKLSsgIC1vYmplY3RsaXN0IEZJTEUgIFVzZSBhIGxpc3Qgb2Ygb2Jq ZWN0IGZpbGVzIGZvdW5kIGluIEZJTEUgdG8gc3BlY2lmeSBvYmplY3RzCi0rICAtcHJlY2lvdXMt ZmlsZXMtcmVnZXggUkVHRVgKLSsgICAgICAgICAgICAgICAgICAgIGRvbid0IHJlbW92ZSBvdXRw dXQgZmlsZXMgbWF0Y2hpbmcgUkVHRVgKLSsgIC1yZWxlYXNlIFJFTEVBU0UgIHNwZWNpZnkgcGFj a2FnZSByZWxlYXNlIGluZm9ybWF0aW9uCi0rICAtcnBhdGggTElCRElSICAgICB0aGUgY3JlYXRl ZCBsaWJyYXJ5IHdpbGwgZXZlbnR1YWxseSBiZSBpbnN0YWxsZWQgaW4gTElCRElSCi0rICAtUlsg XUxJQkRJUiAgICAgICBhZGQgTElCRElSIHRvIHRoZSBydW50aW1lIHBhdGggb2YgcHJvZ3JhbXMg YW5kIGxpYnJhcmllcwotKyAgLXNoYXJlZCAgICAgICAgICAgb25seSBkbyBkeW5hbWljIGxpbmtp bmcgb2YgbGlidG9vbCBsaWJyYXJpZXMKLSsgIC1zaHJleHQgU1VGRklYICAgIG92ZXJyaWRlIHRo ZSBzdGFuZGFyZCBzaGFyZWQgbGlicmFyeSBmaWxlIGV4dGVuc2lvbgotKyAgLXN0YXRpYyAgICAg ICAgICAgZG8gbm90IGRvIGFueSBkeW5hbWljIGxpbmtpbmcgb2YgdW5pbnN0YWxsZWQgbGlidG9v bCBsaWJyYXJpZXMKLSsgIC1zdGF0aWMtbGlidG9vbC1saWJzCi0rICAgICAgICAgICAgICAgICAg ICBkbyBub3QgZG8gYW55IGR5bmFtaWMgbGlua2luZyBvZiBsaWJ0b29sIGxpYnJhcmllcwotKyAg LXZlcnNpb24taW5mbyBDVVJSRU5UWzpSRVZJU0lPTls6QUdFXV0KLSsgICAgICAgICAgICAgICAg ICAgIHNwZWNpZnkgbGlicmFyeSB2ZXJzaW9uIGluZm8gW2VhY2ggdmFyaWFibGUgZGVmYXVsdHMg dG8gMF0KLSsgIC13ZWFrIExJQk5BTUUgICAgIGRlY2xhcmUgdGhhdCB0aGUgdGFyZ2V0IHByb3Zp ZGVzIHRoZSBMSUJOQU1FIGludGVyZmFjZQotKwotK0FsbCBvdGhlciBvcHRpb25zIChhcmd1bWVu dHMgYmVnaW5uaW5nIHdpdGggXGAtJykgYXJlIGlnbm9yZWQuCi0rCi0rRXZlcnkgb3RoZXIgYXJn dW1lbnQgaXMgdHJlYXRlZCBhcyBhIGZpbGVuYW1lLiAgRmlsZXMgZW5kaW5nIGluIFxgLmxhJyBh cmUKLSt0cmVhdGVkIGFzIHVuaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzLCBvdGhlciBmaWxl cyBhcmUgc3RhbmRhcmQgb3IgbGlicmFyeQotK29iamVjdCBmaWxlcy4KLSsKLStJZiB0aGUgT1VU UFVULUZJTEUgZW5kcyBpbiBcYC5sYScsIHRoZW4gYSBsaWJ0b29sIGxpYnJhcnkgaXMgY3JlYXRl ZCwKLStvbmx5IGxpYnJhcnkgb2JqZWN0cyAoXGAubG8nIGZpbGVzKSBtYXkgYmUgc3BlY2lmaWVk LCBhbmQgXGAtcnBhdGgnIGlzCi0rcmVxdWlyZWQsIGV4Y2VwdCB3aGVuIGNyZWF0aW5nIGEgY29u dmVuaWVuY2UgbGlicmFyeS4KLSsKLStJZiBPVVRQVVQtRklMRSBlbmRzIGluIFxgLmEnIG9yIFxg LmxpYicsIHRoZW4gYSBzdGFuZGFyZCBsaWJyYXJ5IGlzIGNyZWF0ZWQKLSt1c2luZyBcYGFyJyBh bmQgXGByYW5saWInLCBvciBvbiBXaW5kb3dzIHVzaW5nIFxgbGliJy4KLSsKLStJZiBPVVRQVVQt RklMRSBlbmRzIGluIFxgLmxvJyBvciBcYC4ke29iamV4dH0nLCB0aGVuIGEgcmVsb2FkYWJsZSBv YmplY3QgZmlsZQotK2lzIGNyZWF0ZWQsIG90aGVyd2lzZSBhbiBleGVjdXRhYmxlIHByb2dyYW0g aXMgY3JlYXRlZC4iCi0rICAgICAgICA7OwotKwotKyAgICAgIHVuaW5zdGFsbCkKLSsgICAgICAg ICRFQ0hPIFwKLSsiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9dW5pbnN0YWxs IFJNIFtSTS1PUFRJT05dLi4uIEZJTEUuLi4KLSsKLStSZW1vdmUgbGlicmFyaWVzIGZyb20gYW4g aW5zdGFsbGF0aW9uIGRpcmVjdG9yeS4KLSsKLStSTSBpcyB0aGUgbmFtZSBvZiB0aGUgcHJvZ3Jh bSB0byB1c2UgdG8gZGVsZXRlIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIEZJTEUKLSsodHlw aWNhbGx5IFxgL2Jpbi9ybScpLiAgUk0tT1BUSU9OUyBhcmUgb3B0aW9ucyAoc3VjaCBhcyBcYC1m JykgdG8gYmUgcGFzc2VkCi0rdG8gUk0uCi0rCi0rSWYgRklMRSBpcyBhIGxpYnRvb2wgbGlicmFy eSwgYWxsIHRoZSBmaWxlcyBhc3NvY2lhdGVkIHdpdGggaXQgYXJlIGRlbGV0ZWQuCi0rT3RoZXJ3 aXNlLCBvbmx5IEZJTEUgaXRzZWxmIGlzIGRlbGV0ZWQgdXNpbmcgUk0uIgotKyAgICAgICAgOzsK LSsKLSsgICAgICAqKQotKyAgICAgICAgZnVuY19mYXRhbF9oZWxwICJpbnZhbGlkIG9wZXJhdGlv biBtb2RlIFxgJG1vZGUnIgotKyAgICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICAkRUNITwot KyAgICAkRUNITyAiVHJ5IFxgJHByb2duYW1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24g YWJvdXQgb3RoZXIgbW9kZXMuIgotKwotKyAgICBleGl0ICQ/Ci0rfQotKwotKyAgIyBOb3cgdGhh dCB3ZSd2ZSBjb2xsZWN0ZWQgYSBwb3NzaWJsZSAtLW1vZGUgYXJnLCBzaG93IGhlbHAgaWYgbmVj ZXNzYXJ5Ci0rICAkb3B0X2hlbHAgJiYgZnVuY19tb2RlX2hlbHAKLSsKLSsKLSsjIGZ1bmNfbW9k ZV9leGVjdXRlIGFyZy4uLgotK2Z1bmNfbW9kZV9leGVjdXRlICgpCi0rewotKyAgICAkb3B0X2Rl YnVnCi0rICAgICMgVGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSBjb21tYW5kIG5hbWUuCi0rICAg IGNtZD0iJG5vbm9wdCIKLSsgICAgdGVzdCAteiAiJGNtZCIgJiYgXAotKyAgICAgIGZ1bmNfZmF0 YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhIENPTU1BTkQiCi0rCi0rICAgICMgSGFuZGxlIC1k bG9wZW4gZmxhZ3MgaW1tZWRpYXRlbHkuCi0rICAgIGZvciBmaWxlIGluICRleGVjdXRlX2RsZmls ZXM7IGRvCi0rICAgICAgdGVzdCAtZiAiJGZpbGUiIFwKLSsJfHwgZnVuY19mYXRhbF9oZWxwICJc YCRmaWxlJyBpcyBub3QgYSBmaWxlIgotKwotKyAgICAgIGRpcj0KLSsgICAgICBjYXNlICRmaWxl IGluCi0rICAgICAgKi5sYSkKLSsJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBh IGxpYnRvb2wgYXJjaGl2ZS4KLSsJZnVuY19sYWxpYl91bnNhZmVfcCAiJGZpbGUiIFwKLSsJICB8 fCBmdW5jX2ZhdGFsX2hlbHAgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZl IgotKwotKwkjIFJlYWQgdGhlIGxpYnRvb2wgbGlicmFyeS4KLSsJZGxuYW1lPQotKwlsaWJyYXJ5 X25hbWVzPQotKwlmdW5jX3NvdXJjZSAiJGZpbGUiCi0rCi0rCSMgU2tpcCB0aGlzIGxpYnJhcnkg aWYgaXQgY2Fubm90IGJlIGRsb3BlbmVkLgotKwlpZiB0ZXN0IC16ICIkZGxuYW1lIjsgdGhlbgot KwkgICMgV2FybiBpZiBpdCB3YXMgYSBzaGFyZWQgbGlicmFyeS4KLSsJICB0ZXN0IC1uICIkbGli cmFyeV9uYW1lcyIgJiYgXAotKwkgICAgZnVuY193YXJuaW5nICJcYCRmaWxlJyB3YXMgbm90IGxp bmtlZCB3aXRoIFxgLWV4cG9ydC1keW5hbWljJyIKLSsJICBjb250aW51ZQotKwlmaQotKwotKwlm dW5jX2Rpcm5hbWUgIiRmaWxlIiAiIiAiLiIKLSsJZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIK LSsKLSsJaWYgdGVzdCAtZiAiJGRpci8kb2JqZGlyLyRkbG5hbWUiOyB0aGVuCi0rCSAgZGlyPSIk ZGlyLyRvYmpkaXIiCi0rCWVsc2UKLSsJICBpZiB0ZXN0ICEgLWYgIiRkaXIvJGRsbmFtZSI7IHRo ZW4KLSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIFxgJGRsbmFtZScgaW4gXGAk ZGlyJyBvciBcYCRkaXIvJG9iamRpciciCi0rCSAgZmkKLSsJZmkKLSsJOzsKLSsKLSsgICAgICAq LmxvKQotKwkjIEp1c3QgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgLmxvIGZpbGUu Ci0rCWZ1bmNfZGlybmFtZSAiJGZpbGUiICIiICIuIgotKwlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVz dWx0IgotKwk7OwotKwotKyAgICAgICopCi0rCWZ1bmNfd2FybmluZyAiXGAtZGxvcGVuJyBpcyBp Z25vcmVkIGZvciBub24tbGlidG9vbCBsaWJyYXJpZXMgYW5kIG9iamVjdHMiCi0rCWNvbnRpbnVl Ci0rCTs7Ci0rICAgICAgZXNhYwotKwotKyAgICAgICMgR2V0IHRoZSBhYnNvbHV0ZSBwYXRobmFt ZS4KLSsgICAgICBhYnNkaXI9YGNkICIkZGlyIiAmJiBwd2RgCi0rICAgICAgdGVzdCAtbiAiJGFi c2RpciIgJiYgZGlyPSIkYWJzZGlyIgotKwotKyAgICAgICMgTm93IGFkZCB0aGUgZGlyZWN0b3J5 IHRvIHNobGlicGF0aF92YXIuCi0rICAgICAgaWYgZXZhbCAidGVzdCAteiBcIlwkJHNobGlicGF0 aF92YXJcIiI7IHRoZW4KLSsJZXZhbCAiJHNobGlicGF0aF92YXI9XCJcJGRpclwiIgotKyAgICAg IGVsc2UKLSsJZXZhbCAiJHNobGlicGF0aF92YXI9XCJcJGRpcjpcJCRzaGxpYnBhdGhfdmFyXCIi Ci0rICAgICAgZmkKLSsgICAgZG9uZQotKwotKyAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMgd3Jh cHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHNobGlicGF0aF92YXIKLSsgICAgIyByYXRoZXIgdGhh biBydW5uaW5nIHRoZWlyIHByb2dyYW1zLgotKyAgICBsaWJ0b29sX2V4ZWN1dGVfbWFnaWM9IiRt YWdpYyIKLSsKLSsgICAgIyBDaGVjayBpZiBhbnkgb2YgdGhlIGFyZ3VtZW50cyBpcyBhIHdyYXBw ZXIgc2NyaXB0LgotKyAgICBhcmdzPQotKyAgICBmb3IgZmlsZQotKyAgICBkbwotKyAgICAgIGNh c2UgJGZpbGUgaW4KLSsgICAgICAtKikgOzsKLSsgICAgICAqKQotKwkjIERvIGEgdGVzdCB0byBz ZWUgaWYgdGhpcyBpcyByZWFsbHkgYSBsaWJ0b29sIHByb2dyYW0uCi0rCWlmIGZ1bmNfbHR3cmFw cGVyX3NjcmlwdF9wICIkZmlsZSI7IHRoZW4KLSsJICBmdW5jX3NvdXJjZSAiJGZpbGUiCi0rCSAg IyBUcmFuc2Zvcm0gYXJnIHRvIHdyYXBwZWQgbmFtZS4KLSsJICBmaWxlPSIkcHJvZ2Rpci8kcHJv Z3JhbSIKLSsJZWxpZiBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgIiRmaWxlIjsgdGhlbgot KwkgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgIiRmaWxlIgotKwkgIGZ1bmNfc291cmNlICIk ZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQiCi0rCSAgIyBUcmFuc2Zvcm0gYXJnIHRv IHdyYXBwZWQgbmFtZS4KLSsJICBmaWxlPSIkcHJvZ2Rpci8kcHJvZ3JhbSIKLSsJZmkKLSsJOzsK LSsgICAgICBlc2FjCi0rICAgICAgIyBRdW90ZSBhcmd1bWVudHMgKHRvIHByZXNlcnZlIHNoZWxs IG1ldGFjaGFyYWN0ZXJzKS4KLSsgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkZmlsZSIKLSsg ICAgICBhcmdzPSIkYXJncyAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0rICAgIGRvbmUK LSsKLSsgICAgaWYgdGVzdCAiWCRvcHRfZHJ5X3J1biIgPSBYZmFsc2U7IHRoZW4KLSsgICAgICBp ZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KLSsJIyBFeHBvcnQgdGhlIHNobGlicGF0 aF92YXIuCi0rCWV2YWwgImV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKLSsgICAgICBmaQotKwotKyAg ICAgICMgUmVzdG9yZSBzYXZlZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMKLSsgICAgICBmb3IgbHRf dmFyIGluIExBTkcgTEFOR1VBR0UgTENfQUxMIExDX0NUWVBFIExDX0NPTExBVEUgTENfTUVTU0FH RVMKLSsgICAgICBkbwotKwlldmFsICJpZiB0ZXN0IFwiXCR7c2F2ZV8kbHRfdmFyK3NldH1cIiA9 IHNldDsgdGhlbgotKyAgICAgICAgICAgICAgICAkbHRfdmFyPVwkc2F2ZV8kbHRfdmFyOyBleHBv cnQgJGx0X3ZhcgotKwkgICAgICBlbHNlCi0rCQkkbHRfdW5zZXQgJGx0X3ZhcgotKwkgICAgICBm aSIKLSsgICAgICBkb25lCi0rCi0rICAgICAgIyBOb3cgcHJlcGFyZSB0byBhY3R1YWxseSBleGVj IHRoZSBjb21tYW5kLgotKyAgICAgIGV4ZWNfY21kPSJcJGNtZCRhcmdzIgotKyAgICBlbHNlCi0r ICAgICAgIyBEaXNwbGF5IHdoYXQgd291bGQgYmUgZG9uZS4KLSsgICAgICBpZiB0ZXN0IC1uICIk c2hsaWJwYXRoX3ZhciI7IHRoZW4KLSsJZXZhbCAiXCRFQ0hPIFwiXCRzaGxpYnBhdGhfdmFyPVwk JHNobGlicGF0aF92YXJcIiIKLSsJJEVDSE8gImV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKLSsgICAg ICBmaQotKyAgICAgICRFQ0hPICIkY21kJGFyZ3MiCi0rICAgICAgZXhpdCAkRVhJVF9TVUNDRVNT Ci0rICAgIGZpCi0rfQotKwotK3Rlc3QgIiRtb2RlIiA9IGV4ZWN1dGUgJiYgZnVuY19tb2RlX2V4 ZWN1dGUgJHsxKyIkQCJ9Ci0rCi0rCi0rIyBmdW5jX21vZGVfZmluaXNoIGFyZy4uLgotK2Z1bmNf bW9kZV9maW5pc2ggKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsgICAgbGliZGlycz0iJG5vbm9w dCIKLSsgICAgYWRtaW5jbWRzPQotKwotKyAgICBpZiB0ZXN0IC1uICIkZmluaXNoX2NtZHMkZmlu aXNoX2V2YWwiICYmIHRlc3QgLW4gIiRsaWJkaXJzIjsgdGhlbgotKyAgICAgIGZvciBkaXIKLSsg ICAgICBkbwotKwlsaWJkaXJzPSIkbGliZGlycyAkZGlyIgotKyAgICAgIGRvbmUKLSsKLSsgICAg ICBmb3IgbGliZGlyIGluICRsaWJkaXJzOyBkbwotKwlpZiB0ZXN0IC1uICIkZmluaXNoX2NtZHMi OyB0aGVuCi0rCSAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIGZpbmlzaCBjb21tYW5kcy4KLSsJ ICBmdW5jX2V4ZWN1dGVfY21kcyAiJGZpbmlzaF9jbWRzIiAnYWRtaW5jbWRzPSIkYWRtaW5jbWRz Ci0rJyIkY21kIiciJwotKwlmaQotKwlpZiB0ZXN0IC1uICIkZmluaXNoX2V2YWwiOyB0aGVuCi0r CSAgIyBEbyB0aGUgc2luZ2xlIGZpbmlzaF9ldmFsLgotKwkgIGV2YWwgY21kcz1cIiRmaW5pc2hf ZXZhbFwiCi0rCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgIiRjbWRzIiB8fCBhZG1pbmNtZHM9IiRh ZG1pbmNtZHMKLSsgICAgICAgJGNtZHMiCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICBmaQotKwot KyAgICAjIEV4aXQgaGVyZSBpZiB0aGV5IHdhbnRlZCBzaWxlbnQgbW9kZS4KLSsgICAgJG9wdF9z aWxlbnQgJiYgZXhpdCAkRVhJVF9TVUNDRVNTCi0rCi0rICAgICRFQ0hPICJYLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSIgfCAkWHNlZAotKyAgICAkRUNITyAiTGlicmFyaWVzIGhhdmUgYmVlbiBpbnN0YWxsZWQgaW46 IgotKyAgICBmb3IgbGliZGlyIGluICRsaWJkaXJzOyBkbwotKyAgICAgICRFQ0hPICIgICAkbGli ZGlyIgotKyAgICBkb25lCi0rICAgICRFQ0hPCi0rICAgICRFQ0hPICJJZiB5b3UgZXZlciBoYXBw ZW4gdG8gd2FudCB0byBsaW5rIGFnYWluc3QgaW5zdGFsbGVkIGxpYnJhcmllcyIKLSsgICAgJEVD SE8gImluIGEgZ2l2ZW4gZGlyZWN0b3J5LCBMSUJESVIsIHlvdSBtdXN0IGVpdGhlciB1c2UgbGli dG9vbCwgYW5kIgotKyAgICAkRUNITyAic3BlY2lmeSB0aGUgZnVsbCBwYXRobmFtZSBvZiB0aGUg bGlicmFyeSwgb3IgdXNlIHRoZSBcYC1MTElCRElSJyIKLSsgICAgJEVDSE8gImZsYWcgZHVyaW5n IGxpbmtpbmcgYW5kIGRvIGF0IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nOiIKLSsgICAgaWYg dGVzdCAtbiAiJHNobGlicGF0aF92YXIiOyB0aGVuCi0rICAgICAgJEVDSE8gIiAgIC0gYWRkIExJ QkRJUiB0byB0aGUgXGAkc2hsaWJwYXRoX3ZhcicgZW52aXJvbm1lbnQgdmFyaWFibGUiCi0rICAg ICAgJEVDSE8gIiAgICAgZHVyaW5nIGV4ZWN1dGlvbiIKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAt biAiJHJ1bnBhdGhfdmFyIjsgdGhlbgotKyAgICAgICRFQ0hPICIgICAtIGFkZCBMSUJESVIgdG8g dGhlIFxgJHJ1bnBhdGhfdmFyJyBlbnZpcm9ubWVudCB2YXJpYWJsZSIKLSsgICAgICAkRUNITyAi ICAgICBkdXJpbmcgbGlua2luZyIKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCi0rICAgICAgbGliZGlyPUxJQkRJUgotKyAgICAgIGV2 YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKLSsKLSsgICAgICAkRUNITyAi ICAgLSB1c2UgdGhlIFxgJGZsYWcnIGxpbmtlciBmbGFnIgotKyAgICBmaQotKyAgICBpZiB0ZXN0 IC1uICIkYWRtaW5jbWRzIjsgdGhlbgotKyAgICAgICRFQ0hPICIgICAtIGhhdmUgeW91ciBzeXN0 ZW0gYWRtaW5pc3RyYXRvciBydW4gdGhlc2UgY29tbWFuZHM6JGFkbWluY21kcyIKLSsgICAgZmkK LSsgICAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KLSsgICAgICAkRUNITyAiICAg LSBoYXZlIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgYWRkIExJQkRJUiB0byBcYC9ldGMvbGQu c28uY29uZiciCi0rICAgIGZpCi0rICAgICRFQ0hPCi0rCi0rICAgICRFQ0hPICJTZWUgYW55IG9w ZXJhdGluZyBzeXN0ZW0gZG9jdW1lbnRhdGlvbiBhYm91dCBzaGFyZWQgbGlicmFyaWVzIGZvciIK LSsgICAgY2FzZSAkaG9zdCBpbgotKyAgICAgIHNvbGFyaXMyLls2Nzg5XXxzb2xhcmlzMi4xWzAt OV0pCi0rICAgICAgICAkRUNITyAibW9yZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgbGQoMSks IGNybGUoMSkgYW5kIGxkLnNvKDgpIG1hbnVhbCIKLSsJJEVDSE8gInBhZ2VzLiIKLSsJOzsKLSsg ICAgICAqKQotKyAgICAgICAgJEVDSE8gIm1vcmUgaW5mb3JtYXRpb24sIHN1Y2ggYXMgdGhlIGxk KDEpIGFuZCBsZC5zbyg4KSBtYW51YWwgcGFnZXMuIgotKyAgICAgICAgOzsKLSsgICAgZXNhYwot KyAgICAkRUNITyAiWC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIHwgJFhzZWQKLSsgICAgZXhpdCAkRVhJVF9TVUND RVNTCi0rfQotKwotK3Rlc3QgIiRtb2RlIiA9IGZpbmlzaCAmJiBmdW5jX21vZGVfZmluaXNoICR7 MSsiJEAifQotKwotKwotKyMgZnVuY19tb2RlX2luc3RhbGwgYXJnLi4uCi0rZnVuY19tb2RlX2lu c3RhbGwgKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsgICAgIyBUaGVyZSBtYXkgYmUgYW4gb3B0 aW9uYWwgc2goMSkgYXJndW1lbnQgYXQgdGhlIGJlZ2lubmluZyBvZgotKyAgICAjIGluc3RhbGxf cHJvZyAoZXNwZWNpYWxseSBvbiBXaW5kb3dzIE5UKS4KLSsgICAgaWYgdGVzdCAiJG5vbm9wdCIg PSAiJFNIRUxMIiB8fCB0ZXN0ICIkbm9ub3B0IiA9IC9iaW4vc2ggfHwKLSsgICAgICAgIyBBbGxv dyB0aGUgdXNlIG9mIEdOVSBzaHRvb2wncyBpbnN0YWxsIGNvbW1hbmQuCi0rICAgICAgICRFQ0hP ICJYJG5vbm9wdCIgfCAkR1JFUCBzaHRvb2wgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICMgQWVz dGhldGljYWxseSBxdW90ZSBpdC4KLSsgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkbm9ub3B0 IgotKyAgICAgIGluc3RhbGxfcHJvZz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0ICIKLSsg ICAgICBhcmc9JDEKLSsgICAgICBzaGlmdAotKyAgICBlbHNlCi0rICAgICAgaW5zdGFsbF9wcm9n PQotKyAgICAgIGFyZz0kbm9ub3B0Ci0rICAgIGZpCi0rCi0rICAgICMgVGhlIHJlYWwgZmlyc3Qg YXJndW1lbnQgc2hvdWxkIGJlIHRoZSBuYW1lIG9mIHRoZSBpbnN0YWxsYXRpb24gcHJvZ3JhbS4K LSsgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIGl0LgotKyAgICBmdW5jX3F1b3RlX2Zvcl9ldmFs ICIkYXJnIgotKyAgICBpbnN0YWxsX3Byb2c9IiRpbnN0YWxsX3Byb2ckZnVuY19xdW90ZV9mb3Jf ZXZhbF9yZXN1bHQiCi0rCi0rICAgICMgV2UgbmVlZCB0byBhY2NlcHQgYXQgbGVhc3QgYWxsIHRo ZSBCU0QgaW5zdGFsbCBmbGFncy4KLSsgICAgZGVzdD0KLSsgICAgZmlsZXM9Ci0rICAgIG9wdHM9 Ci0rICAgIHByZXY9Ci0rICAgIGluc3RhbGxfdHlwZT0KLSsgICAgaXNkaXI9bm8KLSsgICAgc3Ry aXBtZT0KLSsgICAgZm9yIGFyZwotKyAgICBkbwotKyAgICAgIGlmIHRlc3QgLW4gIiRkZXN0Ijsg dGhlbgotKwlmaWxlcz0iJGZpbGVzICRkZXN0IgotKwlkZXN0PSRhcmcKLSsJY29udGludWUKLSsg ICAgICBmaQotKwotKyAgICAgIGNhc2UgJGFyZyBpbgotKyAgICAgIC1kKSBpc2Rpcj15ZXMgOzsK LSsgICAgICAtZikKLSsJY2FzZSAiICRpbnN0YWxsX3Byb2cgIiBpbgotKwkqW1xcXCAvXWNwXCAq KSA7OwotKwkqKSBwcmV2PSRhcmcgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIC1nIHwgLW0gfCAt bykKLSsJcHJldj0kYXJnCi0rCTs7Ci0rICAgICAgLXMpCi0rCXN0cmlwbWU9IiAtcyIKLSsJY29u dGludWUKLSsJOzsKLSsgICAgICAtKikKLSsJOzsKLSsgICAgICAqKQotKwkjIElmIHRoZSBwcmV2 aW91cyBvcHRpb24gbmVlZGVkIGFuIGFyZ3VtZW50LCB0aGVuIHNraXAgaXQuCi0rCWlmIHRlc3Qg LW4gIiRwcmV2IjsgdGhlbgotKwkgIHByZXY9Ci0rCWVsc2UKLSsJICBkZXN0PSRhcmcKLSsJICBj b250aW51ZQotKwlmaQotKwk7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICAjIEFlc3RoZXRpY2Fs bHkgcXVvdGUgdGhlIGFyZ3VtZW50LgotKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmci Ci0rICAgICAgaW5zdGFsbF9wcm9nPSIkaW5zdGFsbF9wcm9nICRmdW5jX3F1b3RlX2Zvcl9ldmFs X3Jlc3VsdCIKLSsgICAgZG9uZQotKwotKyAgICB0ZXN0IC16ICIkaW5zdGFsbF9wcm9nIiAmJiBc Ci0rICAgICAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGFuIGluc3RhbGwgcHJv Z3JhbSIKLSsKLSsgICAgdGVzdCAtbiAiJHByZXYiICYmIFwKLSsgICAgICBmdW5jX2ZhdGFsX2hl bHAgInRoZSBcYCRwcmV2JyBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQiCi0rCi0rICAgIGlm IHRlc3QgLXogIiRmaWxlcyI7IHRoZW4KLSsgICAgICBpZiB0ZXN0IC16ICIkZGVzdCI7IHRoZW4K LSsJZnVuY19mYXRhbF9oZWxwICJubyBmaWxlIG9yIGRlc3RpbmF0aW9uIHNwZWNpZmllZCIKLSsg ICAgICBlbHNlCi0rCWZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhIGRlc3RpbmF0 aW9uIgotKyAgICAgIGZpCi0rICAgIGZpCi0rCi0rICAgICMgU3RyaXAgYW55IHRyYWlsaW5nIHNs YXNoIGZyb20gdGhlIGRlc3RpbmF0aW9uLgotKyAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLycgIiRk ZXN0IgotKyAgICBkZXN0PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsKLSsgICAgIyBDaGVjayB0 byBzZWUgdGhhdCB0aGUgZGVzdGluYXRpb24gaXMgYSBkaXJlY3RvcnkuCi0rICAgIHRlc3QgLWQg IiRkZXN0IiAmJiBpc2Rpcj15ZXMKLSsgICAgaWYgdGVzdCAiJGlzZGlyIiA9IHllczsgdGhlbgot KyAgICAgIGRlc3RkaXI9IiRkZXN0IgotKyAgICAgIGRlc3RuYW1lPQotKyAgICBlbHNlCi0rICAg ICAgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJGRlc3QiICIiICIuIgotKyAgICAgIGRlc3Rk aXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKyAgICAgIGRlc3RuYW1lPSIkZnVuY19iYXNlbmFt ZV9yZXN1bHQiCi0rCi0rICAgICAgIyBOb3QgYSBkaXJlY3RvcnksIHNvIGNoZWNrIHRvIHNlZSB0 aGF0IHRoZXJlIGlzIG9ubHkgb25lIGZpbGUgc3BlY2lmaWVkLgotKyAgICAgIHNldCBkdW1teSAk ZmlsZXM7IHNoaWZ0Ci0rICAgICAgdGVzdCAiJCMiIC1ndCAxICYmIFwKLSsJZnVuY19mYXRhbF9o ZWxwICJcYCRkZXN0JyBpcyBub3QgYSBkaXJlY3RvcnkiCi0rICAgIGZpCi0rICAgIGNhc2UgJGRl c3RkaXIgaW4KLSsgICAgW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7OwotKyAgICAqKQotKyAg ICAgIGZvciBmaWxlIGluICRmaWxlczsgZG8KLSsJY2FzZSAkZmlsZSBpbgotKwkqLmxvKSA7Owot KwkqKQotKwkgIGZ1bmNfZmF0YWxfaGVscCAiXGAkZGVzdGRpcicgbXVzdCBiZSBhbiBhYnNvbHV0 ZSBkaXJlY3RvcnkgbmFtZSIKLSsJICA7OwotKwllc2FjCi0rICAgICAgZG9uZQotKyAgICAgIDs7 Ci0rICAgIGVzYWMKLSsKLSsgICAgIyBUaGlzIHZhcmlhYmxlIHRlbGxzIHdyYXBwZXIgc2NyaXB0 cyBqdXN0IHRvIHNldCB2YXJpYWJsZXMgcmF0aGVyCi0rICAgICMgdGhhbiBydW5uaW5nIHRoZWly IHByb2dyYW1zLgotKyAgICBsaWJ0b29sX2luc3RhbGxfbWFnaWM9IiRtYWdpYyIKLSsKLSsgICAg c3RhdGljbGlicz0KLSsgICAgZnV0dXJlX2xpYmRpcnM9Ci0rICAgIGN1cnJlbnRfbGliZGlycz0K LSsgICAgZm9yIGZpbGUgaW4gJGZpbGVzOyBkbwotKwotKyAgICAgICMgRG8gZWFjaCBpbnN0YWxs YXRpb24uCi0rICAgICAgY2FzZSAkZmlsZSBpbgotKyAgICAgICouJGxpYmV4dCkKLSsJIyBEbyB0 aGUgc3RhdGljIGxpYnJhcmllcyBsYXRlci4KLSsJc3RhdGljbGlicz0iJHN0YXRpY2xpYnMgJGZp bGUiCi0rCTs7Ci0rCi0rICAgICAgKi5sYSkKLSsJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJl YWxseSBpcyBhIGxpYnRvb2wgYXJjaGl2ZS4KLSsJZnVuY19sYWxpYl91bnNhZmVfcCAiJGZpbGUi IFwKLSsJICB8fCBmdW5jX2ZhdGFsX2hlbHAgIlxgJGZpbGUnIGlzIG5vdCBhIHZhbGlkIGxpYnRv b2wgYXJjaGl2ZSIKLSsKLSsJbGlicmFyeV9uYW1lcz0KLSsJb2xkX2xpYnJhcnk9Ci0rCXJlbGlu a19jb21tYW5kPQotKwlmdW5jX3NvdXJjZSAiJGZpbGUiCi0rCi0rCSMgQWRkIHRoZSBsaWJkaXIg dG8gY3VycmVudF9saWJkaXJzIGlmIGl0IGlzIHRoZSBkZXN0aW5hdGlvbi4KLSsJaWYgdGVzdCAi WCRkZXN0ZGlyIiA9ICJYJGxpYmRpciI7IHRoZW4KLSsJICBjYXNlICIkY3VycmVudF9saWJkaXJz ICIgaW4KLSsJICAqIiAkbGliZGlyICIqKSA7OwotKwkgICopIGN1cnJlbnRfbGliZGlycz0iJGN1 cnJlbnRfbGliZGlycyAkbGliZGlyIiA7OwotKwkgIGVzYWMKLSsJZWxzZQotKwkgICMgTm90ZSB0 aGUgbGliZGlyIGFzIGEgZnV0dXJlIGxpYmRpci4KLSsJICBjYXNlICIkZnV0dXJlX2xpYmRpcnMg IiBpbgotKwkgICoiICRsaWJkaXIgIiopIDs7Ci0rCSAgKikgZnV0dXJlX2xpYmRpcnM9IiRmdXR1 cmVfbGliZGlycyAkbGliZGlyIiA7OwotKwkgIGVzYWMKLSsJZmkKLSsKLSsJZnVuY19kaXJuYW1l ICIkZmlsZSIgIi8iICIiCi0rCWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rCWRpcj0iJGRp ciRvYmpkaXIiCi0rCi0rCWlmIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4KLSsJICAj IERldGVybWluZSB0aGUgcHJlZml4IHRoZSB1c2VyIGhhcyBhcHBsaWVkIHRvIG91ciBmdXR1cmUg ZGlyLgotKwkgIGluc3RfcHJlZml4X2Rpcj1gJEVDSE8gIlgkZGVzdGRpciIgfCAkWHNlZCAtZSAi cyUkbGliZGlyXCQlJSJgCi0rCi0rCSAgIyBEb24ndCBhbGxvdyB0aGUgdXNlciB0byBwbGFjZSB1 cyBvdXRzaWRlIG9mIG91ciBleHBlY3RlZAotKwkgICMgbG9jYXRpb24gYi9jIHRoaXMgcHJldmVu dHMgZmluZGluZyBkZXBlbmRlbnQgbGlicmFyaWVzIHRoYXQKLSsJICAjIGFyZSBpbnN0YWxsZWQg dG8gdGhlIHNhbWUgcHJlZml4LgotKwkgICMgQXQgcHJlc2VudCwgdGhpcyBjaGVjayBkb2Vzbid0 IGFmZmVjdCB3aW5kb3dzIC5kbGwncyB0aGF0Ci0rCSAgIyBhcmUgaW5zdGFsbGVkIGludG8gJGxp YmRpci8uLi9iaW4gKGN1cnJlbnRseSwgdGhhdCB3b3JrcyBmaW5lKQotKwkgICMgYnV0IGl0J3Mg c29tZXRoaW5nIHRvIGtlZXAgYW4gZXllIG9uLgotKwkgIHRlc3QgIiRpbnN0X3ByZWZpeF9kaXIi ID0gIiRkZXN0ZGlyIiAmJiBcCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJlcnJvcjogY2Fubm90 IGluc3RhbGwgXGAkZmlsZScgdG8gYSBkaXJlY3Rvcnkgbm90IGVuZGluZyBpbiAkbGliZGlyIgot KwotKwkgIGlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiOyB0aGVuCi0rCSAgICAjIFN0aWNr IHRoZSBpbnN0X3ByZWZpeF9kaXIgZGF0YSBpbnRvIHRoZSBsaW5rIGNvbW1hbmQuCi0rCSAgICBy ZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQGlu c3RfcHJlZml4X2RpckAlLWluc3QtcHJlZml4LWRpciAkaW5zdF9wcmVmaXhfZGlyJSJgCi0rCSAg ZWxzZQotKwkgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRY c2VkIC1lICJzJUBpbnN0X3ByZWZpeF9kaXJAJSUiYAotKwkgIGZpCi0rCi0rCSAgZnVuY193YXJu aW5nICJyZWxpbmtpbmcgXGAkZmlsZSciCi0rCSAgZnVuY19zaG93X2V2YWwgIiRyZWxpbmtfY29t bWFuZCIgXAotKwkgICAgJ2Z1bmNfZmF0YWxfZXJyb3IgImVycm9yOiByZWxpbmsgXGAkZmlsZSdc Jycgd2l0aCB0aGUgYWJvdmUgY29tbWFuZCBiZWZvcmUgaW5zdGFsbGluZyBpdCInCi0rCWZpCi0r Ci0rCSMgU2VlIHRoZSBuYW1lcyBvZiB0aGUgc2hhcmVkIGxpYnJhcnkuCi0rCXNldCBkdW1teSAk bGlicmFyeV9uYW1lczsgc2hpZnQKLSsJaWYgdGVzdCAtbiAiJDEiOyB0aGVuCi0rCSAgcmVhbG5h bWU9IiQxIgotKwkgIHNoaWZ0Ci0rCi0rCSAgc3JjbmFtZT0iJHJlYWxuYW1lIgotKwkgIHRlc3Qg LW4gIiRyZWxpbmtfY29tbWFuZCIgJiYgc3JjbmFtZT0iJHJlYWxuYW1lIlQKLSsKLSsJICAjIElu c3RhbGwgdGhlIHNoYXJlZCBsaWJyYXJ5IGFuZCBidWlsZCB0aGUgc3ltbGlua3MuCi0rCSAgZnVu Y19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgJGRpci8kc3JjbmFtZSAkZGVzdGRpci8kcmVhbG5h bWUiIFwKLSsJICAgICAgJ2V4aXQgJD8nCi0rCSAgdHN0cmlwbWU9IiRzdHJpcG1lIgotKwkgIGNh c2UgJGhvc3Rfb3MgaW4KLSsJICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0r CSAgICBjYXNlICRyZWFsbmFtZSBpbgotKwkgICAgKi5kbGwuYSkKLSsJICAgICAgdHN0cmlwbWU9 IiIKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIGlmIHRl c3QgLW4gIiR0c3RyaXBtZSIgJiYgdGVzdCAtbiAiJHN0cmlwbGliIjsgdGhlbgotKwkgICAgZnVu Y19zaG93X2V2YWwgIiRzdHJpcGxpYiAkZGVzdGRpci8kcmVhbG5hbWUiICdleGl0ICQ/JwotKwkg IGZpCi0rCi0rCSAgaWYgdGVzdCAiJCMiIC1ndCAwOyB0aGVuCi0rCSAgICAjIERlbGV0ZSB0aGUg b2xkIHN5bWxpbmtzLCBhbmQgY3JlYXRlIG5ldyBvbmVzLgotKwkgICAgIyBUcnkgYGxuIC1zZicg Zmlyc3QsIGJlY2F1c2UgdGhlIGBsbicgYmluYXJ5IG1pZ2h0IGRlcGVuZCBvbgotKwkgICAgIyB0 aGUgc3ltbGluayB3ZSByZXBsYWNlISAgU29sYXJpcyAvYmluL2xuIGRvZXMgbm90IHVuZGVyc3Rh bmQgLWYsCi0rCSAgICAjIHNvIHdlIGFsc28gbmVlZCB0byB0cnkgcm0gJiYgbG4gLXMuCi0rCSAg ICBmb3IgbGlua25hbWUKLSsJICAgIGRvCi0rCSAgICAgIHRlc3QgIiRsaW5rbmFtZSIgIT0gIiRy ZWFsbmFtZSIgXAotKwkJJiYgZnVuY19zaG93X2V2YWwgIihjZCAkZGVzdGRpciAmJiB7ICRMTl9T IC1mICRyZWFsbmFtZSAkbGlua25hbWUgfHwgeyAkUk0gJGxpbmtuYW1lICYmICRMTl9TICRyZWFs bmFtZSAkbGlua25hbWU7IH07IH0pIgotKwkgICAgZG9uZQotKwkgIGZpCi0rCi0rCSAgIyBEbyBl YWNoIGNvbW1hbmQgaW4gdGhlIHBvc3RpbnN0YWxsIGNvbW1hbmRzLgotKwkgIGxpYj0iJGRlc3Rk aXIvJHJlYWxuYW1lIgotKwkgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkcG9zdGluc3RhbGxfY21kcyIg J2V4aXQgJD8nCi0rCWZpCi0rCi0rCSMgSW5zdGFsbCB0aGUgcHNldWRvLWxpYnJhcnkgZm9yIGlu Zm9ybWF0aW9uIHB1cnBvc2VzLgotKwlmdW5jX2Jhc2VuYW1lICIkZmlsZSIKLSsJbmFtZT0iJGZ1 bmNfYmFzZW5hbWVfcmVzdWx0IgotKwlpbnN0bmFtZT0iJGRpci8kbmFtZSJpCi0rCWZ1bmNfc2hv d19ldmFsICIkaW5zdGFsbF9wcm9nICRpbnN0bmFtZSAkZGVzdGRpci8kbmFtZSIgJ2V4aXQgJD8n Ci0rCi0rCSMgTWF5YmUgaW5zdGFsbCB0aGUgc3RhdGljIGxpYnJhcnksIHRvby4KLSsJdGVzdCAt biAiJG9sZF9saWJyYXJ5IiAmJiBzdGF0aWNsaWJzPSIkc3RhdGljbGlicyAkZGlyLyRvbGRfbGli cmFyeSIKLSsJOzsKLSsKLSsgICAgICAqLmxvKQotKwkjIEluc3RhbGwgKGkuZS4gY29weSkgYSBs aWJ0b29sIG9iamVjdC4KLSsKLSsJIyBGaWd1cmUgb3V0IGRlc3RpbmF0aW9uIGZpbGUgbmFtZSwg aWYgaXQgd2Fzbid0IGFscmVhZHkgc3BlY2lmaWVkLgotKwlpZiB0ZXN0IC1uICIkZGVzdG5hbWUi OyB0aGVuCi0rCSAgZGVzdGZpbGU9IiRkZXN0ZGlyLyRkZXN0bmFtZSIKLSsJZWxzZQotKwkgIGZ1 bmNfYmFzZW5hbWUgIiRmaWxlIgotKwkgIGRlc3RmaWxlPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQi Ci0rCSAgZGVzdGZpbGU9IiRkZXN0ZGlyLyRkZXN0ZmlsZSIKLSsJZmkKLSsKLSsJIyBEZWR1Y2Ug dGhlIG5hbWUgb2YgdGhlIGRlc3RpbmF0aW9uIG9sZC1zdHlsZSBvYmplY3QgZmlsZS4KLSsJY2Fz ZSAkZGVzdGZpbGUgaW4KLSsJKi5sbykKLSsJICBmdW5jX2xvMm8gIiRkZXN0ZmlsZSIKLSsJICBz dGF0aWNkZXN0PSRmdW5jX2xvMm9fcmVzdWx0Ci0rCSAgOzsKLSsJKi4kb2JqZXh0KQotKwkgIHN0 YXRpY2Rlc3Q9IiRkZXN0ZmlsZSIKLSsJICBkZXN0ZmlsZT0KLSsJICA7OwotKwkqKQotKwkgIGZ1 bmNfZmF0YWxfaGVscCAiY2Fubm90IGNvcHkgYSBsaWJ0b29sIG9iamVjdCB0byBcYCRkZXN0Zmls ZSciCi0rCSAgOzsKLSsJZXNhYwotKwotKwkjIEluc3RhbGwgdGhlIGxpYnRvb2wgb2JqZWN0IGlm IHJlcXVlc3RlZC4KLSsJdGVzdCAtbiAiJGRlc3RmaWxlIiAmJiBcCi0rCSAgZnVuY19zaG93X2V2 YWwgIiRpbnN0YWxsX3Byb2cgJGZpbGUgJGRlc3RmaWxlIiAnZXhpdCAkPycKLSsKLSsJIyBJbnN0 YWxsIHRoZSBvbGQgb2JqZWN0IGlmIGVuYWJsZWQuCi0rCWlmIHRlc3QgIiRidWlsZF9vbGRfbGli cyIgPSB5ZXM7IHRoZW4KLSsJICAjIERlZHVjZSB0aGUgbmFtZSBvZiB0aGUgb2xkLXN0eWxlIG9i amVjdCBmaWxlLgotKwkgIGZ1bmNfbG8ybyAiJGZpbGUiCi0rCSAgc3RhdGljb2JqPSRmdW5jX2xv Mm9fcmVzdWx0Ci0rCSAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgXCRzdGF0aWNvYmog XCRzdGF0aWNkZXN0IiAnZXhpdCAkPycKLSsJZmkKLSsJZXhpdCAkRVhJVF9TVUNDRVNTCi0rCTs7 Ci0rCi0rICAgICAgKikKLSsJIyBGaWd1cmUgb3V0IGRlc3RpbmF0aW9uIGZpbGUgbmFtZSwgaWYg aXQgd2Fzbid0IGFscmVhZHkgc3BlY2lmaWVkLgotKwlpZiB0ZXN0IC1uICIkZGVzdG5hbWUiOyB0 aGVuCi0rCSAgZGVzdGZpbGU9IiRkZXN0ZGlyLyRkZXN0bmFtZSIKLSsJZWxzZQotKwkgIGZ1bmNf YmFzZW5hbWUgIiRmaWxlIgotKwkgIGRlc3RmaWxlPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0r CSAgZGVzdGZpbGU9IiRkZXN0ZGlyLyRkZXN0ZmlsZSIKLSsJZmkKLSsKLSsJIyBJZiB0aGUgZmls ZSBpcyBtaXNzaW5nLCBhbmQgdGhlcmUgaXMgYSAuZXhlIG9uIHRoZSBlbmQsIHN0cmlwIGl0Ci0r CSMgYmVjYXVzZSBpdCBpcyBtb3N0IGxpa2VseSBhIGxpYnRvb2wgc2NyaXB0IHdlIGFjdHVhbGx5 IHdhbnQgdG8KLSsJIyBpbnN0YWxsCi0rCXN0cmlwcGVkX2V4dD0iIgotKwljYXNlICRmaWxlIGlu Ci0rCSAgKi5leGUpCi0rCSAgICBpZiB0ZXN0ICEgLWYgIiRmaWxlIjsgdGhlbgotKwkgICAgICBm dW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRmaWxlIgotKwkgICAgICBmaWxlPSRmdW5jX3N0cmlw bmFtZV9yZXN1bHQKLSsJICAgICAgc3RyaXBwZWRfZXh0PSIuZXhlIgotKwkgICAgZmkKLSsJICAg IDs7Ci0rCWVzYWMKLSsKLSsJIyBEbyBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgcmVhbGx5IGEg bGlidG9vbCBwcm9ncmFtLgotKwljYXNlICRob3N0IGluCi0rCSpjeWd3aW4qIHwgKm1pbmd3KikK LSsJICAgIGlmIGZ1bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJGZpbGUiOyB0aGVuCi0rCSAg ICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgIiRmaWxlIgotKwkgICAgICB3cmFwcGVyPSRm dW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAotKwkgICAgZWxzZQotKwkgICAgICBmdW5j X3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRmaWxlIgotKwkgICAgICB3cmFwcGVyPSRmdW5jX3N0cmlw bmFtZV9yZXN1bHQKLSsJICAgIGZpCi0rCSAgICA7OwotKwkqKQotKwkgICAgd3JhcHBlcj0kZmls ZQotKwkgICAgOzsKLSsJZXNhYwotKwlpZiBmdW5jX2x0d3JhcHBlcl9zY3JpcHRfcCAiJHdyYXBw ZXIiOyB0aGVuCi0rCSAgbm90aW5zdF9kZXBsaWJzPQotKwkgIHJlbGlua19jb21tYW5kPQotKwot KwkgIGZ1bmNfc291cmNlICIkd3JhcHBlciIKLSsKLSsJICAjIENoZWNrIHRoZSB2YXJpYWJsZXMg dGhhdCBzaG91bGQgaGF2ZSBiZWVuIHNldC4KLSsJICB0ZXN0IC16ICIkZ2VuZXJhdGVkX2J5X2xp YnRvb2xfdmVyc2lvbiIgJiYgXAotKwkgICAgZnVuY19mYXRhbF9lcnJvciAiaW52YWxpZCBsaWJ0 b29sIHdyYXBwZXIgc2NyaXB0IFxgJHdyYXBwZXInIgotKwotKwkgIGZpbmFsaXplPXllcwotKwkg IGZvciBsaWIgaW4gJG5vdGluc3RfZGVwbGliczsgZG8KLSsJICAgICMgQ2hlY2sgdG8gc2VlIHRo YXQgZWFjaCBsaWJyYXJ5IGlzIGluc3RhbGxlZC4KLSsJICAgIGxpYmRpcj0KLSsJICAgIGlmIHRl c3QgLWYgIiRsaWIiOyB0aGVuCi0rCSAgICAgIGZ1bmNfc291cmNlICIkbGliIgotKwkgICAgZmkK LSsJICAgIGxpYmZpbGU9IiRsaWJkaXIvImAkRUNITyAiWCRsaWIiIHwgJFhzZWQgLWUgJ3MlXi4q LyUlZydgICMjIyB0ZXN0c3VpdGU6IHNraXAgbmVzdGVkIHF1b3RpbmcgdGVzdAotKwkgICAgaWYg dGVzdCAtbiAiJGxpYmRpciIgJiYgdGVzdCAhIC1mICIkbGliZmlsZSI7IHRoZW4KLSsJICAgICAg ZnVuY193YXJuaW5nICJcYCRsaWInIGhhcyBub3QgYmVlbiBpbnN0YWxsZWQgaW4gXGAkbGliZGly JyIKLSsJICAgICAgZmluYWxpemU9bm8KLSsJICAgIGZpCi0rCSAgZG9uZQotKwotKwkgIHJlbGlu a19jb21tYW5kPQotKwkgIGZ1bmNfc291cmNlICIkd3JhcHBlciIKLSsKLSsJICBvdXRwdXRuYW1l PQotKwkgIGlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0gbm8gJiYgdGVzdCAtbiAiJHJlbGlua19j b21tYW5kIjsgdGhlbgotKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKLSsJICAgICAgaWYgdGVzdCAi JGZpbmFsaXplIiA9IHllczsgdGhlbgotKwkgICAgICAgIHRtcGRpcj1gZnVuY19ta3RlbXBkaXJg Ci0rCQlmdW5jX2Jhc2VuYW1lICIkZmlsZSRzdHJpcHBlZF9leHQiCi0rCQlmaWxlPSIkZnVuY19i YXNlbmFtZV9yZXN1bHQiCi0rCSAgICAgICAgb3V0cHV0bmFtZT0iJHRtcGRpci8kZmlsZSIKLSsJ ICAgICAgICAjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCi0rCSAgICAg ICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICdz JUBPVVRQVVRAJSciJG91dHB1dG5hbWUiJyVnJ2AKLSsKLSsJICAgICAgICAkb3B0X3NpbGVudCB8 fCB7Ci0rCSAgICAgICAgICBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRyZWxpbmtfY29tbWFuZCIK LSsJCSAgZXZhbCAiZnVuY19lY2hvICRmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgotKwkg ICAgICAgIH0KLSsJICAgICAgICBpZiBldmFsICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuIDoKLSsJ ICAgICAgICAgIGVsc2UKLSsJCSAgZnVuY19lcnJvciAiZXJyb3I6IHJlbGluayBcYCRmaWxlJyB3 aXRoIHRoZSBhYm92ZSBjb21tYW5kIGJlZm9yZSBpbnN0YWxsaW5nIGl0IgotKwkJICAkb3B0X2Ry eV9ydW4gfHwgJHtSTX1yICIkdG1wZGlyIgotKwkJICBjb250aW51ZQotKwkgICAgICAgIGZpCi0r CSAgICAgICAgZmlsZT0iJG91dHB1dG5hbWUiCi0rCSAgICAgIGVsc2UKLSsJICAgICAgICBmdW5j X3dhcm5pbmcgImNhbm5vdCByZWxpbmsgXGAkZmlsZSciCi0rCSAgICAgIGZpCi0rCSAgICB9Ci0r CSAgZWxzZQotKwkgICAgIyBJbnN0YWxsIHRoZSBiaW5hcnkgdGhhdCB3ZSBjb21waWxlZCBlYXJs aWVyLgotKwkgICAgZmlsZT1gJEVDSE8gIlgkZmlsZSRzdHJpcHBlZF9leHQiIHwgJFhzZWQgLWUg InMlXChbXi9dKlwpJCUkb2JqZGlyL1wxJSJgCi0rCSAgZmkKLSsJZmkKLSsKLSsJIyByZW1vdmUg LmV4ZSBzaW5jZSBjeWd3aW4gL3Vzci9iaW4vaW5zdGFsbCB3aWxsIGFwcGVuZCBhbm90aGVyCi0r CSMgb25lIGFueXdheQotKwljYXNlICRpbnN0YWxsX3Byb2csJGhvc3QgaW4KLSsJKi91c3IvYmlu L2luc3RhbGwqLCpjeWd3aW4qKQotKwkgIGNhc2UgJGZpbGU6JGRlc3RmaWxlIGluCi0rCSAgKi5l eGU6Ki5leGUpCi0rCSAgICAjIHRoaXMgaXMgb2sKLSsJICAgIDs7Ci0rCSAgKi5leGU6KikKLSsJ ICAgIGRlc3RmaWxlPSRkZXN0ZmlsZS5leGUKLSsJICAgIDs7Ci0rCSAgKjoqLmV4ZSkKLSsJICAg IGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGRlc3RmaWxlIgotKwkgICAgZGVzdGZpbGU9JGZ1 bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwot KwlmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZ1wkc3RyaXBtZSBcJGZpbGUgXCRkZXN0Zmls ZSIgJ2V4aXQgJD8nCi0rCSRvcHRfZHJ5X3J1biB8fCBpZiB0ZXN0IC1uICIkb3V0cHV0bmFtZSI7 IHRoZW4KLSsJICAke1JNfXIgIiR0bXBkaXIiCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAg ICBkb25lCi0rCi0rICAgIGZvciBmaWxlIGluICRzdGF0aWNsaWJzOyBkbwotKyAgICAgIGZ1bmNf YmFzZW5hbWUgIiRmaWxlIgotKyAgICAgIG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsK LSsgICAgICAjIFNldCB1cCB0aGUgcmFubGliIHBhcmFtZXRlcnMuCi0rICAgICAgb2xkbGliPSIk ZGVzdGRpci8kbmFtZSIKLSsKLSsgICAgICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyBc JGZpbGUgXCRvbGRsaWIiICdleGl0ICQ/JwotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRzdHJpcG1l IiAmJiB0ZXN0IC1uICIkb2xkX3N0cmlwbGliIjsgdGhlbgotKwlmdW5jX3Nob3dfZXZhbCAiJG9s ZF9zdHJpcGxpYiAkb2xkbGliIiAnZXhpdCAkPycKLSsgICAgICBmaQotKwotKyAgICAgICMgRG8g ZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0aW5zdGFsbCBjb21tYW5kcy4KLSsgICAgICBmdW5jX2V4 ZWN1dGVfY21kcyAiJG9sZF9wb3N0aW5zdGFsbF9jbWRzIiAnZXhpdCAkPycKLSsgICAgZG9uZQot KwotKyAgICB0ZXN0IC1uICIkZnV0dXJlX2xpYmRpcnMiICYmIFwKLSsgICAgICBmdW5jX3dhcm5p bmcgInJlbWVtYmVyIHRvIHJ1biBcYCRwcm9nbmFtZSAtLWZpbmlzaCRmdXR1cmVfbGliZGlycyci Ci0rCi0rICAgIGlmIHRlc3QgLW4gIiRjdXJyZW50X2xpYmRpcnMiOyB0aGVuCi0rICAgICAgIyBN YXliZSBqdXN0IGRvIGEgZHJ5IHJ1bi4KLSsgICAgICAkb3B0X2RyeV9ydW4gJiYgY3VycmVudF9s aWJkaXJzPSIgLW4kY3VycmVudF9saWJkaXJzIgotKyAgICAgIGV4ZWNfY21kPSckU0hFTEwgJHBy b2dwYXRoICRwcmVzZXJ2ZV9hcmdzIC0tZmluaXNoJGN1cnJlbnRfbGliZGlycycKLSsgICAgZWxz ZQotKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwotKyAgICBmaQotK30KLSsKLSt0ZXN0ICIkbW9k ZSIgPSBpbnN0YWxsICYmIGZ1bmNfbW9kZV9pbnN0YWxsICR7MSsiJEAifQotKwotKwotKyMgZnVu Y19nZW5lcmF0ZV9kbHN5bXMgb3V0cHV0bmFtZSBvcmlnaW5hdG9yIHBpY19wCi0rIyBFeHRyYWN0 IHN5bWJvbHMgZnJvbSBkbHByZWZpbGVzIGFuZCBjcmVhdGUgJHtvdXRwdXRuYW1lfVMubyB3aXRo Ci0rIyBhIGRscHJlb3BlbiBzeW1ib2wgdGFibGUuCi0rZnVuY19nZW5lcmF0ZV9kbHN5bXMgKCkK LSt7Ci0rICAgICRvcHRfZGVidWcKLSsgICAgbXlfb3V0cHV0bmFtZT0iJDEiCi0rICAgIG15X29y aWdpbmF0b3I9IiQyIgotKyAgICBteV9waWNfcD0iJHszLW5vfSIKLSsgICAgbXlfcHJlZml4PWAk RUNITyAiJG15X29yaWdpbmF0b3IiIHwgc2VkICdzJVteYS16QS1aMC05XSVfJWcnYAotKyAgICBt eV9kbHN5bXM9Ci0rCi0rICAgIGlmIHRlc3QgLW4gIiRkbGZpbGVzJGRscHJlZmlsZXMiIHx8IHRl c3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCi0rICAgICAgaWYgdGVzdCAtbiAiJE5NIiAmJiB0ZXN0 IC1uICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgotKwlteV9kbHN5bXM9IiR7bXlfb3V0cHV0 bmFtZX1TLmMiCi0rICAgICAgZWxzZQotKwlmdW5jX2Vycm9yICJub3QgY29uZmlndXJlZCB0byBl eHRyYWN0IGdsb2JhbCBzeW1ib2xzIGZyb20gZGxwcmVvcGVuZWQgZmlsZXMiCi0rICAgICAgZmkK LSsgICAgZmkKLSsKLSsgICAgaWYgdGVzdCAtbiAiJG15X2Rsc3ltcyI7IHRoZW4KLSsgICAgICBj YXNlICRteV9kbHN5bXMgaW4KLSsgICAgICAiIikgOzsKLSsgICAgICAqLmMpCi0rCSMgRGlzY292 ZXIgdGhlIG5saXN0IG9mIGVhY2ggb2YgdGhlIGRsZmlsZXMuCi0rCW5saXN0PSIkb3V0cHV0X29i amRpci8ke215X291dHB1dG5hbWV9Lm5tIgotKwotKwlmdW5jX3Nob3dfZXZhbCAiJFJNICRubGlz dCAke25saXN0fVMgJHtubGlzdH1UIgotKwotKwkjIFBhcnNlIHRoZSBuYW1lIGxpc3QgaW50byBh IHNvdXJjZSBmaWxlLgotKwlmdW5jX3ZlcmJvc2UgImNyZWF0aW5nICRvdXRwdXRfb2JqZGlyLyRt eV9kbHN5bXMiCi0rCi0rCSRvcHRfZHJ5X3J1biB8fCAkRUNITyA+ICIkb3V0cHV0X29iamRpci8k bXlfZGxzeW1zIiAiXAotKy8qICRteV9kbHN5bXMgLSBzeW1ib2wgcmVzb2x1dGlvbiB0YWJsZSBm b3IgXGAkbXlfb3V0cHV0bmFtZScgZGxzeW0gZW11bGF0aW9uLiAqLwotKy8qIEdlbmVyYXRlZCBi eSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04gKi8KLSsKLSsjaWZk ZWYgX19jcGx1c3BsdXMKLStleHRlcm4gXCJDXCIgewotKyNlbmRpZgotKwotKy8qIEV4dGVybmFs IHN5bWJvbCBkZWNsYXJhdGlvbnMgZm9yIHRoZSBjb21waWxlci4gKi9cCi0rIgotKwotKwlpZiB0 ZXN0ICIkZGxzZWxmIiA9IHllczsgdGhlbgotKwkgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBz eW1ib2wgbGlzdCBmb3IgXGAkb3V0cHV0JyIKLSsKLSsJICAkb3B0X2RyeV9ydW4gfHwgZWNobyAn OiBAUFJPR1JBTUAgJyA+ICIkbmxpc3QiCi0rCi0rCSAgIyBBZGQgb3VyIG93biBwcm9ncmFtIG9i amVjdHMgdG8gdGhlIHN5bWJvbCBsaXN0LgotKwkgIHByb2dmaWxlcz1gJEVDSE8gIlgkb2JqcyRv bGRfZGVwbGlicyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAotKwkgIGZv ciBwcm9nZmlsZSBpbiAkcHJvZ2ZpbGVzOyBkbwotKwkgICAgZnVuY192ZXJib3NlICJleHRyYWN0 aW5nIGdsb2JhbCBDIHN5bWJvbHMgZnJvbSBcYCRwcm9nZmlsZSciCi0rCSAgICAkb3B0X2RyeV9y dW4gfHwgZXZhbCAiJE5NICRwcm9nZmlsZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgPj4gJyRubGlz dCciCi0rCSAgZG9uZQotKwotKwkgIGlmIHRlc3QgLW4gIiRleGNsdWRlX2V4cHN5bXMiOyB0aGVu Ci0rCSAgICAkb3B0X2RyeV9ydW4gfHwgewotKwkgICAgICBldmFsICckRUdSRVAgLXYgIiAoJGV4 Y2x1ZGVfZXhwc3ltcykkIiAiJG5saXN0IiA+ICIkbmxpc3QiVCcKLSsJICAgICAgZXZhbCAnJE1W ICIkbmxpc3QiVCAiJG5saXN0IicKLSsJICAgIH0KLSsJICBmaQotKwotKwkgIGlmIHRlc3QgLW4g IiRleHBvcnRfc3ltYm9sc19yZWdleCI7IHRoZW4KLSsJICAgICRvcHRfZHJ5X3J1biB8fCB7Ci0r CSAgICAgIGV2YWwgJyRFR1JFUCAtZSAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IiAiJG5saXN0IiA+ ICIkbmxpc3QiVCcKLSsJICAgICAgZXZhbCAnJE1WICIkbmxpc3QiVCAiJG5saXN0IicKLSsJICAg IH0KLSsJICBmaQotKwotKwkgICMgUHJlcGFyZSB0aGUgbGlzdCBvZiBleHBvcnRlZCBzeW1ib2xz Ci0rCSAgaWYgdGVzdCAteiAiJGV4cG9ydF9zeW1ib2xzIjsgdGhlbgotKwkgICAgZXhwb3J0X3N5 bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCIKLSsJICAgICRvcHRfZHJ5X3J1 biB8fCB7Ci0rCSAgICAgICRSTSAkZXhwb3J0X3N5bWJvbHMKLSsJICAgICAgZXZhbCAiJHtTRUR9 IC1uIC1lICcvXjogQFBST0dSQU1AICQvZCcgLWUgJ3MvXi4qIFwoLipcKSQvXDEvcCcgIic8ICIk bmxpc3QiID4gIiRleHBvcnRfc3ltYm9scyInCi0rCSAgICAgIGNhc2UgJGhvc3QgaW4KLSsJICAg ICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiApCi0rICAgICAgICAgICAgICAgIGV2YWwg ImVjaG8gRVhQT1JUUyAiJz4gIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmRlZiInCi0rICAg ICAgICAgICAgICAgIGV2YWwgJ2NhdCAiJGV4cG9ydF9zeW1ib2xzIiA+PiAiJG91dHB1dF9vYmpk aXIvJG91dHB1dG5hbWUuZGVmIicKLSsJICAgICAgICA7OwotKwkgICAgICBlc2FjCi0rCSAgICB9 Ci0rCSAgZWxzZQotKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKLSsJICAgICAgZXZhbCAiJHtTRUR9 IC1lICdzL1woW10uWypeJF1cKS9cXFxcXDEvZycgLWUgJ3MvXi8gLycgLWUgJ3MvJC8kLyciJyA8 ICIkZXhwb3J0X3N5bWJvbHMiID4gIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCInCi0r CSAgICAgIGV2YWwgJyRHUkVQIC1mICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5leHAiIDwg IiRubGlzdCIgPiAiJG5saXN0IlQnCi0rCSAgICAgIGV2YWwgJyRNViAiJG5saXN0IlQgIiRubGlz dCInCi0rCSAgICAgIGNhc2UgJGhvc3QgaW4KLSsJICAgICAgICAqY3lnd2luIHwgKm1pbmd3KiB8 ICpjZWdjYyogKQotKwkgICAgICAgICAgZXZhbCAiZWNobyBFWFBPUlRTICInPiAiJG91dHB1dF9v YmpkaXIvJG91dHB1dG5hbWUuZGVmIicKLSsJICAgICAgICAgIGV2YWwgJ2NhdCAiJG5saXN0IiA+ PiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVmIicKLSsJICAgICAgICAgIDs7Ci0rCSAg ICAgIGVzYWMKLSsJICAgIH0KLSsJICBmaQotKwlmaQotKwotKwlmb3IgZGxwcmVmaWxlIGluICRk bHByZWZpbGVzOyBkbwotKwkgIGZ1bmNfdmVyYm9zZSAiZXh0cmFjdGluZyBnbG9iYWwgQyBzeW1i b2xzIGZyb20gXGAkZGxwcmVmaWxlJyIKLSsJICBmdW5jX2Jhc2VuYW1lICIkZGxwcmVmaWxlIgot KwkgIG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJICAkb3B0X2RyeV9ydW4gfHwgewot KwkgICAgZXZhbCAnJEVDSE8gIjogJG5hbWUgIiA+PiAiJG5saXN0IicKLSsJICAgIGV2YWwgIiRO TSAkZGxwcmVmaWxlIDI+L2Rldi9udWxsIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSA+PiAnJG5saXN0 JyIKLSsJICB9Ci0rCWRvbmUKLSsKLSsJJG9wdF9kcnlfcnVuIHx8IHsKLSsJICAjIE1ha2Ugc3Vy ZSB3ZSBoYXZlIGF0IGxlYXN0IGFuIGVtcHR5IGZpbGUuCi0rCSAgdGVzdCAtZiAiJG5saXN0IiB8 fCA6ID4gIiRubGlzdCIKLSsKLSsJICBpZiB0ZXN0IC1uICIkZXhjbHVkZV9leHBzeW1zIjsgdGhl bgotKwkgICAgJEVHUkVQIC12ICIgKCRleGNsdWRlX2V4cHN5bXMpJCIgIiRubGlzdCIgPiAiJG5s aXN0IlQKLSsJICAgICRNViAiJG5saXN0IlQgIiRubGlzdCIKLSsJICBmaQotKwotKwkgICMgVHJ5 IHNvcnRpbmcgYW5kIHVuaXF1aWZ5aW5nIHRoZSBvdXRwdXQuCi0rCSAgaWYgJEdSRVAgLXYgIl46 ICIgPCAiJG5saXN0IiB8Ci0rCSAgICAgIGlmIHNvcnQgLWsgMyA8L2Rldi9udWxsID4vZGV2L251 bGwgMj4mMTsgdGhlbgotKwkJc29ydCAtayAzCi0rCSAgICAgIGVsc2UKLSsJCXNvcnQgKzIKLSsJ ICAgICAgZmkgfAotKwkgICAgICB1bmlxID4gIiRubGlzdCJTOyB0aGVuCi0rCSAgICA6Ci0rCSAg ZWxzZQotKwkgICAgJEdSRVAgLXYgIl46ICIgPCAiJG5saXN0IiA+ICIkbmxpc3QiUwotKwkgIGZp Ci0rCi0rCSAgaWYgdGVzdCAtZiAiJG5saXN0IlM7IHRoZW4KLSsJICAgIGV2YWwgIiRnbG9iYWxf c3ltYm9sX3RvX2NkZWNsIicgPCAiJG5saXN0IlMgPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5 bXMiJwotKwkgIGVsc2UKLSsJICAgICRFQ0hPICcvKiBOT05FICovJyA+PiAiJG91dHB1dF9vYmpk aXIvJG15X2Rsc3ltcyIKLSsJICBmaQotKwotKwkgICRFQ0hPID4+ICIkb3V0cHV0X29iamRpci8k bXlfZGxzeW1zIiAiXAotKwotKy8qIFRoZSBtYXBwaW5nIGJldHdlZW4gc3ltYm9sIG5hbWVzIGFu ZCBzeW1ib2xzLiAgKi8KLSt0eXBlZGVmIHN0cnVjdCB7Ci0rICBjb25zdCBjaGFyICpuYW1lOwot KyAgdm9pZCAqYWRkcmVzczsKLSt9IGx0X2Rsc3ltbGlzdDsKLSsiCi0rCSAgY2FzZSAkaG9zdCBp bgotKwkgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQotKwkgICAgJEVDSE8gPj4gIiRv dXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCi0rLyogREFUQSBpbXBvcnRzIGZyb20gRExMcyBv biBXSU4zMiBjb24ndCBiZSBjb25zdCwgYmVjYXVzZQotKyAgIHJ1bnRpbWUgcmVsb2NhdGlvbnMg YXJlIHBlcmZvcm1lZCAtLSBzZWUgbGQncyBkb2N1bWVudGF0aW9uCi0rICAgb24gcHNldWRvLXJl bG9jcy4gICovIgotKwkgICAgbHRfZGxzeW1fY29uc3Q9IDs7Ci0rCSAgKm9zZjUqKQotKwkgICAg ZWNobyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwKLSsvKiBUaGlzIHN5c3RlbSBk b2VzIG5vdCBjb3BlIHdlbGwgd2l0aCByZWxvY2F0aW9ucyBpbiBjb25zdCBkYXRhICovIgotKwkg ICAgbHRfZGxzeW1fY29uc3Q9IDs7Ci0rCSAgKikKLSsJICAgIGx0X2Rsc3ltX2NvbnN0PWNvbnN0 IDs7Ci0rCSAgZXNhYwotKwotKwkgICRFQ0hPID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1z IiAiXAotK2V4dGVybiAkbHRfZGxzeW1fY29uc3QgbHRfZGxzeW1saXN0Ci0rbHRfJHtteV9wcmVm aXh9X0xUWF9wcmVsb2FkZWRfc3ltYm9sc1tdOwotKyRsdF9kbHN5bV9jb25zdCBsdF9kbHN5bWxp c3QKLStsdF8ke215X3ByZWZpeH1fTFRYX3ByZWxvYWRlZF9zeW1ib2xzW10gPQotK3tcCi0rICB7 IFwiJG15X29yaWdpbmF0b3JcIiwgKHZvaWQgKikgMCB9LCIKLSsKLSsJICBjYXNlICRuZWVkX2xp Yl9wcmVmaXggaW4KLSsJICBubykKLSsJICAgIGV2YWwgIiRnbG9iYWxfc3ltYm9sX3RvX2NfbmFt ZV9hZGRyZXNzIiA8ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIgotKwkg ICAgOzsKLSsJICAqKQotKwkgICAgZXZhbCAiJGdsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJl c3NfbGliX3ByZWZpeCIgPCAiJG5saXN0IiA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIK LSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgICRFQ0hPID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxz eW1zIiAiXAotKyAgezAsICh2b2lkICopIDB9Ci0rfTsKLSsKLSsvKiBUaGlzIHdvcmtzIGFyb3Vu ZCBhIHByb2JsZW0gaW4gRnJlZUJTRCBsaW5rZXIgKi8KLSsjaWZkZWYgRlJFRUJTRF9XT1JLQVJP VU5ECi0rc3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgpIHsKLSsgIHJldHVy biBsdF8ke215X3ByZWZpeH1fTFRYX3ByZWxvYWRlZF9zeW1ib2xzOwotK30KLSsjZW5kaWYKLSsK LSsjaWZkZWYgX19jcGx1c3BsdXMKLSt9Ci0rI2VuZGlmXAotKyIKLSsJfSAjICEkb3B0X2RyeV9y dW4KLSsKLSsJcGljX2ZsYWdfZm9yX3N5bXRhYmxlPQotKwljYXNlICIkY29tcGlsZV9jb21tYW5k ICIgaW4KLSsJKiIgLXN0YXRpYyAiKikgOzsKLSsJKikKLSsJICBjYXNlICRob3N0IGluCi0rCSAg IyBjb21waWxpbmcgdGhlIHN5bWJvbCB0YWJsZSBmaWxlIHdpdGggcGljX2ZsYWcgd29ya3MgYXJv dW5kCi0rCSAgIyBhIEZyZWVCU0QgYnVnIHRoYXQgY2F1c2VzIHByb2dyYW1zIHRvIGNyYXNoIHdo ZW4gLWxtIGlzCi0rCSAgIyBsaW5rZWQgYmVmb3JlIGFueSBvdGhlciBQSUMgb2JqZWN0LiAgQnV0 IHdlIG11c3Qgbm90IHVzZQotKwkgICMgcGljX2ZsYWcgd2hlbiBsaW5raW5nIHdpdGggLXN0YXRp Yy4gIFRoZSBwcm9ibGVtIGV4aXN0cyBpbgotKwkgICMgRnJlZUJTRCAyLjIuNiBhbmQgaXMgZml4 ZWQgaW4gRnJlZUJTRCAzLjEuCi0rCSAgKi0qLWZyZWVic2QyKnwqLSotZnJlZWJzZDMuMCp8Ki0q LWZyZWVic2RlbGYzLjAqKQotKwkgICAgcGljX2ZsYWdfZm9yX3N5bXRhYmxlPSIgJHBpY19mbGFn IC1ERlJFRUJTRF9XT1JLQVJPVU5EIiA7OwotKwkgICotKi1ocHV4KikKLSsJICAgIHBpY19mbGFn X2Zvcl9zeW10YWJsZT0iICRwaWNfZmxhZyIgIDs7Ci0rCSAgKikKLSsJICAgIGlmIHRlc3QgIlgk bXlfcGljX3AiICE9IFhubzsgdGhlbgotKwkgICAgICBwaWNfZmxhZ19mb3Jfc3ltdGFibGU9IiAk cGljX2ZsYWciCi0rCSAgICBmaQotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwot KwlzeW10YWJfY2ZsYWdzPQotKwlmb3IgYXJnIGluICRMVENGTEFHUzsgZG8KLSsJICBjYXNlICRh cmcgaW4KLSsJICAtcGllIHwgLWZwaWUgfCAtZlBJRSkgOzsKLSsJICAqKSBzeW10YWJfY2ZsYWdz PSIkc3ltdGFiX2NmbGFncyAkYXJnIiA7OwotKwkgIGVzYWMKLSsJZG9uZQotKwotKwkjIE5vdyBj b21waWxlIHRoZSBkeW5hbWljIHN5bWJvbCBmaWxlLgotKwlmdW5jX3Nob3dfZXZhbCAnKGNkICRv dXRwdXRfb2JqZGlyICYmICRMVENDJHN5bXRhYl9jZmxhZ3MgLWMkbm9fYnVpbHRpbl9mbGFnJHBp Y19mbGFnX2Zvcl9zeW10YWJsZSAiJG15X2Rsc3ltcyIpJyAnZXhpdCAkPycKLSsKLSsJIyBDbGVh biB1cCB0aGUgZ2VuZXJhdGVkIGZpbGVzLgotKwlmdW5jX3Nob3dfZXZhbCAnJFJNICIkb3V0cHV0 X29iamRpci8kbXlfZGxzeW1zIiAiJG5saXN0IiAiJHtubGlzdH1TIiAiJHtubGlzdH1UIicKLSsK LSsJIyBUcmFuc2Zvcm0gdGhlIHN5bWJvbCBmaWxlIGludG8gdGhlIGNvcnJlY3QgbmFtZS4KLSsJ c3ltZmlsZW9iaj0iJG91dHB1dF9vYmpkaXIvJHtteV9vdXRwdXRuYW1lfVMuJG9iamV4dCIKLSsJ Y2FzZSAkaG9zdCBpbgotKwkqY3lnd2luKiB8ICptaW5ndyogfCAqY2VnY2MqICkKLSsJICBpZiB0 ZXN0IC1mICIkb3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYiOyB0aGVuCi0rCSAgICBj b21waWxlX2NvbW1hbmQ9YCRFQ0hPICJYJGNvbXBpbGVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVA U1lNRklMRUAlJG91dHB1dF9vYmpkaXIvJG15X291dHB1dG5hbWUuZGVmICRzeW1maWxlb2JqJSJg Ci0rCSAgICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8ICRY c2VkIC1lICJzJUBTWU1GSUxFQCUkb3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYgJHN5 bWZpbGVvYmolImAKLSsJICBlbHNlCi0rCSAgICBjb21waWxlX2NvbW1hbmQ9YCRFQ0hPICJYJGNv bXBpbGVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJHN5bWZpbGVvYmolImAKLSsJ ICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFhzZWQg LWUgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCi0rCSAgZmkKLSsJICA7OwotKwkqKQotKwkg IGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJz JUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAotKwkgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICJY JGZpbmFsaXplX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJg Ci0rCSAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgICopCi0rCWZ1bmNfZmF0YWxfZXJyb3IgInVu a25vd24gc3VmZml4IGZvciBcYCRteV9kbHN5bXMnIgotKwk7OwotKyAgICAgIGVzYWMKLSsgICAg ZWxzZQotKyAgICAgICMgV2Uga2VlcCBnb2luZyBqdXN0IGluIGNhc2UgdGhlIHVzZXIgZGlkbid0 IHJlZmVyIHRvCi0rICAgICAgIyBsdF9wcmVsb2FkZWRfc3ltYm9scy4gIFRoZSBsaW5rZXIgd2ls bCBmYWlsIGlmIGdsb2JhbF9zeW1ib2xfcGlwZQotKyAgICAgICMgcmVhbGx5IHdhcyByZXF1aXJl ZC4KLSsKLSsgICAgICAjIE51bGxpZnkgdGhlIHN5bWJvbCBmaWxlLgotKyAgICAgIGNvbXBpbGVf Y29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJSBAU1lNRklM RUAlJSJgCi0rICAgICAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVfY29tbWFu ZCIgfCAkWHNlZCAtZSAicyUgQFNZTUZJTEVAJSUiYAotKyAgICBmaQotK30KLSsKLSsjIGZ1bmNf d2luMzJfbGliaWQgYXJnCi0rIyByZXR1cm4gdGhlIGxpYnJhcnkgdHlwZSBvZiBmaWxlICdhcmcn Ci0rIwotKyMgTmVlZCBhIGxvdCBvZiBnb28gdG8gaGFuZGxlICpib3RoKiBETExzIGFuZCBpbXBv cnQgbGlicwotKyMgSGFzIHRvIGJlIGEgc2hlbGwgZnVuY3Rpb24gaW4gb3JkZXIgdG8gJ2VhdCcg dGhlIGFyZ3VtZW50Ci0rIyB0aGF0IGlzIHN1cHBsaWVkIHdoZW4gJGZpbGVfbWFnaWNfY29tbWFu ZCBpcyBjYWxsZWQuCi0rZnVuY193aW4zMl9saWJpZCAoKQotK3sKLSsgICRvcHRfZGVidWcKLSsg IHdpbjMyX2xpYmlkX3R5cGU9InVua25vd24iCi0rICB3aW4zMl9maWxlcmVzPWBmaWxlIC1MICQx IDI+L2Rldi9udWxsYAotKyAgY2FzZSAkd2luMzJfZmlsZXJlcyBpbgotKyAgKmFyXCBhcmNoaXZl XCBpbXBvcnRcIGxpYnJhcnkqKSAjIGRlZmluaXRlbHkgaW1wb3J0Ci0rICAgIHdpbjMyX2xpYmlk X3R5cGU9Ing4NiBhcmNoaXZlIGltcG9ydCIKLSsgICAgOzsKLSsgICphclwgYXJjaGl2ZSopICMg Y291bGQgYmUgYW4gaW1wb3J0LCBvciBzdGF0aWMKLSsgICAgaWYgZXZhbCAkT0JKRFVNUCAtZiAk MSB8ICRTRUQgLWUgJzEwcScgMj4vZGV2L251bGwgfAotKyAgICAgICAkRUdSRVAgJ2ZpbGUgZm9y bWF0IHBlLWkzODYoLiphcmNoaXRlY3R1cmU6IGkzODYpPycgPi9kZXYvbnVsbCA7IHRoZW4KLSsg ICAgICB3aW4zMl9ubXJlcz1gZXZhbCAkTk0gLWYgcG9zaXggLUEgJDEgfAotKwkkU0VEIC1uIC1l ICcKLSsJICAgIDEsMTAwewotKwkJLyBJIC97Ci0rCQkgICAgcywuKixpbXBvcnQsCi0rCQkgICAg cAotKwkJICAgIHEKLSsJCX0KLSsJICAgIH0nYAotKyAgICAgIGNhc2UgJHdpbjMyX25tcmVzIGlu Ci0rICAgICAgaW1wb3J0KikgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZlIGltcG9ydCI7 OwotKyAgICAgICopICAgICAgICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgYXJjaGl2ZSBzdGF0aWMi OzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rICAgIDs7Ci0rICAqRExMKikKLSsgICAgd2luMzJf bGliaWRfdHlwZT0ieDg2IERMTCIKLSsgICAgOzsKLSsgICpleGVjdXRhYmxlKikgIyBidXQgc2hl bGwgc2NyaXB0cyBhcmUgImV4ZWN1dGFibGUiIHRvby4uLgotKyAgICBjYXNlICR3aW4zMl9maWxl cmVzIGluCi0rICAgICpNU1wgV2luZG93c1wgUEVcIEludGVsKikKLSsgICAgICB3aW4zMl9saWJp ZF90eXBlPSJ4ODYgRExMIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsgIGVzYWMK LSsgICRFQ0hPICIkd2luMzJfbGliaWRfdHlwZSIKLSt9Ci0rCi0rCi0rCi0rIyBmdW5jX2V4dHJh Y3RfYW5fYXJjaGl2ZSBkaXIgb2xkbGliCi0rZnVuY19leHRyYWN0X2FuX2FyY2hpdmUgKCkKLSt7 Ci0rICAgICRvcHRfZGVidWcKLSsgICAgZl9leF9hbl9hcl9kaXI9IiQxIjsgc2hpZnQKLSsgICAg Zl9leF9hbl9hcl9vbGRsaWI9IiQxIgotKyAgICBmdW5jX3Nob3dfZXZhbCAiKGNkIFwkZl9leF9h bl9hcl9kaXIgJiYgJEFSIHggXCJcJGZfZXhfYW5fYXJfb2xkbGliXCIpIiAnZXhpdCAkPycKLSsg ICAgaWYgKCRBUiB0ICIkZl9leF9hbl9hcl9vbGRsaWIiIHwgc29ydCB8IHNvcnQgLXVjID4vZGV2 L251bGwgMj4mMSk7IHRoZW4KLSsgICAgIDoKLSsgICAgZWxzZQotKyAgICAgIGZ1bmNfZmF0YWxf ZXJyb3IgIm9iamVjdCBuYW1lIGNvbmZsaWN0cyBpbiBhcmNoaXZlOiAkZl9leF9hbl9hcl9kaXIv JGZfZXhfYW5fYXJfb2xkbGliIgotKyAgICBmaQotK30KLSsKLSsKLSsjIGZ1bmNfZXh0cmFjdF9h cmNoaXZlcyBnZW50b3Agb2xkbGliIC4uLgotK2Z1bmNfZXh0cmFjdF9hcmNoaXZlcyAoKQotK3sK LSsgICAgJG9wdF9kZWJ1ZwotKyAgICBteV9nZW50b3A9IiQxIjsgc2hpZnQKLSsgICAgbXlfb2xk bGlicz0kezErIiRAIn0KLSsgICAgbXlfb2xkb2Jqcz0iIgotKyAgICBteV94bGliPSIiCi0rICAg IG15X3hhYnM9IiIKLSsgICAgbXlfeGRpcj0iIgotKwotKyAgICBmb3IgbXlfeGxpYiBpbiAkbXlf b2xkbGliczsgZG8KLSsgICAgICAjIEV4dHJhY3QgdGhlIG9iamVjdHMuCi0rICAgICAgY2FzZSAk bXlfeGxpYiBpbgotKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIG15X3hhYnM9IiRteV94bGli IiA7OwotKwkqKSBteV94YWJzPWBwd2RgIi8kbXlfeGxpYiIgOzsKLSsgICAgICBlc2FjCi0rICAg ICAgZnVuY19iYXNlbmFtZSAiJG15X3hsaWIiCi0rICAgICAgbXlfeGxpYj0iJGZ1bmNfYmFzZW5h bWVfcmVzdWx0IgotKyAgICAgIG15X3hsaWJfdT0kbXlfeGxpYgotKyAgICAgIHdoaWxlIDo7IGRv Ci0rICAgICAgICBjYXNlICIgJGV4dHJhY3RlZF9hcmNoaXZlcyAiIGluCi0rCSoiICRteV94bGli X3UgIiopCi0rCSAgZnVuY19hcml0aCAkZXh0cmFjdGVkX3NlcmlhbCArIDEKLSsJICBleHRyYWN0 ZWRfc2VyaWFsPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkgIG15X3hsaWJfdT1sdCRleHRyYWN0ZWRf c2VyaWFsLSRteV94bGliIDs7Ci0rCSopIGJyZWFrIDs7Ci0rCWVzYWMKLSsgICAgICBkb25lCi0r ICAgICAgZXh0cmFjdGVkX2FyY2hpdmVzPSIkZXh0cmFjdGVkX2FyY2hpdmVzICRteV94bGliX3Ui Ci0rICAgICAgbXlfeGRpcj0iJG15X2dlbnRvcC8kbXlfeGxpYl91IgotKwotKyAgICAgIGZ1bmNf bWtkaXJfcCAiJG15X3hkaXIiCi0rCi0rICAgICAgY2FzZSAkaG9zdCBpbgotKyAgICAgICotZGFy d2luKikKLSsJZnVuY192ZXJib3NlICJFeHRyYWN0aW5nICRteV94YWJzIgotKwkjIERvIG5vdCBi b3RoZXIgZG9pbmcgYW55dGhpbmcgaWYganVzdCBhIGRyeSBydW4KLSsJJG9wdF9kcnlfcnVuIHx8 IHsKLSsJICBkYXJ3aW5fb3JpZ19kaXI9YHB3ZGAKLSsJICBjZCAkbXlfeGRpciB8fCBleGl0ICQ/ Ci0rCSAgZGFyd2luX2FyY2hpdmU9JG15X3hhYnMKLSsJICBkYXJ3aW5fY3VyZGlyPWBwd2RgCi0r CSAgZGFyd2luX2Jhc2VfYXJjaGl2ZT1gYmFzZW5hbWUgIiRkYXJ3aW5fYXJjaGl2ZSJgCi0rCSAg ZGFyd2luX2FyY2hlcz1gJExJUE8gLWluZm8gIiRkYXJ3aW5fYXJjaGl2ZSIgMj4vZGV2L251bGwg fCAkR1JFUCBBcmNoaXRlY3R1cmVzIDI+L2Rldi9udWxsIHx8IHRydWVgCi0rCSAgaWYgdGVzdCAt biAiJGRhcndpbl9hcmNoZXMiOyB0aGVuCi0rCSAgICBkYXJ3aW5fYXJjaGVzPWAkRUNITyAiJGRh cndpbl9hcmNoZXMiIHwgJFNFRCAtZSAncy8uKmFyZTovLydgCi0rCSAgICBkYXJ3aW5fYXJjaD0K LSsJICAgIGZ1bmNfdmVyYm9zZSAiJGRhcndpbl9iYXNlX2FyY2hpdmUgaGFzIG11bHRpcGxlIGFy Y2hpdGVjdHVyZXMgJGRhcndpbl9hcmNoZXMiCi0rCSAgICBmb3IgZGFyd2luX2FyY2ggaW4gICRk YXJ3aW5fYXJjaGVzIDsgZG8KLSsJICAgICAgZnVuY19ta2Rpcl9wICJ1bmZhdC0kJC8ke2Rhcndp bl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9IgotKwkgICAgICAkTElQTyAtdGhpbiAkZGFy d2luX2FyY2ggLW91dHB1dCAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndp bl9hcmNofS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9IiAiJHtkYXJ3aW5fYXJjaGl2ZX0iCi0rCSAg ICAgIGNkICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9Igot KwkgICAgICBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAiYHB3ZGAiICIke2Rhcndpbl9iYXNlX2Fy Y2hpdmV9IgotKwkgICAgICBjZCAiJGRhcndpbl9jdXJkaXIiCi0rCSAgICAgICRSTSAidW5mYXQt JCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9iYXNlX2Fy Y2hpdmV9IgotKwkgICAgZG9uZSAjICRkYXJ3aW5fYXJjaGVzCi0rICAgICAgICAgICAgIyMgT2th eSBub3cgd2UndmUgYSBidW5jaCBvZiB0aGluIG9iamVjdHMsIGdvdHRhIGZhdHRlbiB0aGVtIHVw IDopCi0rCSAgICBkYXJ3aW5fZmlsZWxpc3Q9YGZpbmQgdW5mYXQtJCQgLXR5cGUgZiAtbmFtZSBc Ki5vIC1wcmludCAtbyAtbmFtZSBcKi5sbyAtcHJpbnQgfCAkU0VEIC1lICIkYmFzZW5hbWUiIHwg c29ydCAtdWAKLSsJICAgIGRhcndpbl9maWxlPQotKwkgICAgZGFyd2luX2ZpbGVzPQotKwkgICAg Zm9yIGRhcndpbl9maWxlIGluICRkYXJ3aW5fZmlsZWxpc3Q7IGRvCi0rCSAgICAgIGRhcndpbl9m aWxlcz1gZmluZCB1bmZhdC0kJCAtbmFtZSAkZGFyd2luX2ZpbGUgLXByaW50IHwgJE5MMlNQYAot KwkgICAgICAkTElQTyAtY3JlYXRlIC1vdXRwdXQgIiRkYXJ3aW5fZmlsZSIgJGRhcndpbl9maWxl cwotKwkgICAgZG9uZSAjICRkYXJ3aW5fZmlsZWxpc3QKLSsJICAgICRSTSAtcmYgdW5mYXQtJCQK LSsJICAgIGNkICIkZGFyd2luX29yaWdfZGlyIgotKwkgIGVsc2UKLSsJICAgIGNkICRkYXJ3aW5f b3JpZ19kaXIKLSsJICAgIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlfeGRpciIgIiRteV94 YWJzIgotKwkgIGZpICMgJGRhcndpbl9hcmNoZXMKLSsJfSAjICEkb3B0X2RyeV9ydW4KLSsJOzsK LSsgICAgICAqKQotKyAgICAgICAgZnVuY19leHRyYWN0X2FuX2FyY2hpdmUgIiRteV94ZGlyIiAi JG15X3hhYnMiCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIG15X29sZG9ianM9IiRteV9vbGRv YmpzICJgZmluZCAkbXlfeGRpciAtbmFtZSBcKi4kb2JqZXh0IC1wcmludCAtbyAtbmFtZSBcKi5s byAtcHJpbnQgfCAkTkwyU1BgCi0rICAgIGRvbmUKLSsKLSsgICAgZnVuY19leHRyYWN0X2FyY2hp dmVzX3Jlc3VsdD0iJG15X29sZG9ianMiCi0rfQotKwotKwotKwotKyMgZnVuY19lbWl0X3dyYXBw ZXJfcGFydDEgW2FyZz1ub10KLSsjCi0rIyBFbWl0IHRoZSBmaXJzdCBwYXJ0IG9mIGEgbGlidG9v bCB3cmFwcGVyIHNjcmlwdCBvbiBzdGRvdXQuCi0rIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2Vl IHRoZSBkZXNjcmlwdGlvbiBhc3NvY2lhdGVkIHdpdGgKLSsjIGZ1bmNfZW1pdF93cmFwcGVyKCks IGJlbG93LgotK2Z1bmNfZW1pdF93cmFwcGVyX3BhcnQxICgpCi0rewotKwlmdW5jX2VtaXRfd3Jh cHBlcl9wYXJ0MV9hcmcxPW5vCi0rCWlmIHRlc3QgLW4gIiQxIiA7IHRoZW4KLSsJICBmdW5jX2Vt aXRfd3JhcHBlcl9wYXJ0MV9hcmcxPSQxCi0rCWZpCi0rCi0rCSRFQ0hPICJcCi0rIyEgJFNIRUxM Ci0rCi0rIyAkb3V0cHV0IC0gdGVtcG9yYXJ5IHdyYXBwZXIgc2NyaXB0IGZvciAkb2JqZGlyLyRv dXRwdXRuYW1lCi0rIyBHZW5lcmF0ZWQgYnkgJFBST0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RB TVApICRWRVJTSU9OCi0rIwotKyMgVGhlICRvdXRwdXQgcHJvZ3JhbSBjYW5ub3QgYmUgZGlyZWN0 bHkgZXhlY3V0ZWQgdW50aWwgYWxsIHRoZSBsaWJ0b29sCi0rIyBsaWJyYXJpZXMgdGhhdCBpdCBk ZXBlbmRzIG9uIGFyZSBpbnN0YWxsZWQuCi0rIwotKyMgVGhpcyB3cmFwcGVyIHNjcmlwdCBzaG91 bGQgbmV2ZXIgYmUgbW92ZWQgb3V0IG9mIHRoZSBidWlsZCBkaXJlY3RvcnkuCi0rIyBJZiBpdCBp cywgaXQgd2lsbCBub3Qgb3BlcmF0ZSBjb3JyZWN0bHkuCi0rCi0rIyBTZWQgc3Vic3RpdHV0aW9u IHRoYXQgaGVscHMgdXMgZG8gcm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xhc2hpZmllcwotKyMg bWV0YWNoYXJhY3RlcnMgdGhhdCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUtcXVvdGVk IHN0cmluZ3MuCi0rWHNlZD0nJHtTRUR9IC1lIDFzL15YLy8nCi0rc2VkX3F1b3RlX3N1YnN0PSck c2VkX3F1b3RlX3N1YnN0JwotKwotKyMgQmUgQm91cm5lIGNvbXBhdGlibGUKLStpZiB0ZXN0IC1u IFwiXCR7WlNIX1ZFUlNJT04rc2V0fVwiICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KLSsgIGVtdWxhdGUgc2gKLSsgIE5VTExDTUQ9OgotKyAgIyBac2ggMy54IGFuZCA0Lngg cGVyZm9ybXMgd29yZCBzcGxpdHRpbmcgb24gXCR7MStcIlwkQFwifSwgd2hpY2gKLSsgICMgaXMg Y29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCi0rICBhbGlhcyAt ZyAnXCR7MStcIlwkQFwifSc9J1wiXCRAXCInCi0rICBzZXRvcHQgTk9fR0xPQl9TVUJTVAotK2Vs c2UKLSsgIGNhc2UgXGAoc2V0IC1vKSAyPi9kZXYvbnVsbFxgIGluICpwb3NpeCopIHNldCAtbyBw b3NpeDs7IGVzYWMKLStmaQotK0JJTl9TSD14cGc0OyBleHBvcnQgQklOX1NIICMgZm9yIFRydTY0 Ci0rRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAotKwotKyMgVGhlIEhQ LVVYIGtzaCBhbmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc3Rk b3V0Ci0rIyBpZiBDRFBBVEggaXMgc2V0LgotKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4m MSAmJiB1bnNldCBDRFBBVEgKLSsKLStyZWxpbmtfY29tbWFuZD1cIiRyZWxpbmtfY29tbWFuZFwi Ci0rCi0rIyBUaGlzIGVudmlyb25tZW50IHZhcmlhYmxlIGRldGVybWluZXMgb3VyIG9wZXJhdGlv biBtb2RlLgotK2lmIHRlc3QgXCJcJGxpYnRvb2xfaW5zdGFsbF9tYWdpY1wiID0gXCIkbWFnaWNc IjsgdGhlbgotKyAgIyBpbnN0YWxsIG1vZGUgbmVlZHMgdGhlIGZvbGxvd2luZyB2YXJpYWJsZXM6 Ci0rICBnZW5lcmF0ZWRfYnlfbGlidG9vbF92ZXJzaW9uPSckbWFjcm9fdmVyc2lvbicKLSsgIG5v dGluc3RfZGVwbGlicz0nJG5vdGluc3RfZGVwbGlicycKLStlbHNlCi0rICAjIFdoZW4gd2UgYXJl IHNvdXJjZWQgaW4gZXhlY3V0ZSBtb2RlLCBcJGZpbGUgYW5kIFwkRUNITyBhcmUgYWxyZWFkeSBz ZXQuCi0rICBpZiB0ZXN0IFwiXCRsaWJ0b29sX2V4ZWN1dGVfbWFnaWNcIiAhPSBcIiRtYWdpY1wi OyB0aGVuCi0rICAgIEVDSE89XCIkcWVjaG9cIgotKyAgICBmaWxlPVwiXCQwXCIKLSsgICAgIyBN YWtlIHN1cmUgZWNobyB3b3Jrcy4KLSsgICAgaWYgdGVzdCBcIlhcJDFcIiA9IFgtLW5vLXJlZXhl YzsgdGhlbgotKyAgICAgICMgRGlzY2FyZCB0aGUgLS1uby1yZWV4ZWMgZmxhZywgYW5kIGNvbnRp bnVlLgotKyAgICAgIHNoaWZ0Ci0rICAgIGVsaWYgdGVzdCBcIlhcYHsgXCRFQ0hPICdcdCc7IH0g Mj4vZGV2L251bGxcYFwiID0gJ1hcdCc7IHRoZW4KLSsgICAgICAjIFlpcHBlZSwgXCRFQ0hPIHdv cmtzIQotKyAgICAgIDoKLSsgICAgZWxzZQotKyAgICAgICMgUmVzdGFydCB1bmRlciB0aGUgY29y cmVjdCBzaGVsbCwgYW5kIHRoZW4gbWF5YmUgXCRFQ0hPIHdpbGwgd29yay4KLSsgICAgICBleGVj ICRTSEVMTCBcIlwkMFwiIC0tbm8tcmVleGVjIFwkezErXCJcJEBcIn0KLSsgICAgZmkKLSsgIGZp XAotKyIKLSsJJEVDSE8gIlwKLSsKLSsgICMgRmluZCB0aGUgZGlyZWN0b3J5IHRoYXQgdGhpcyBz Y3JpcHQgbGl2ZXMgaW4uCi0rICB0aGlzZGlyPVxgXCRFQ0hPIFwiWFwkZmlsZVwiIHwgXCRYc2Vk IC1lICdzJS9bXi9dKiQlJSdcYAotKyAgdGVzdCBcInhcJHRoaXNkaXJcIiA9IFwieFwkZmlsZVwi ICYmIHRoaXNkaXI9LgotKwotKyAgIyBGb2xsb3cgc3ltYm9saWMgbGlua3MgdW50aWwgd2UgZ2V0 IHRvIHRoZSByZWFsIHRoaXNkaXIuCi0rICBmaWxlPVxgbHMgLWxkIFwiXCRmaWxlXCIgfCAke1NF RH0gLW4gJ3MvLiotPiAvL3AnXGAKLSsgIHdoaWxlIHRlc3QgLW4gXCJcJGZpbGVcIjsgZG8KLSsg ICAgZGVzdGRpcj1cYFwkRUNITyBcIlhcJGZpbGVcIiB8IFwkWHNlZCAtZSAncyUvW14vXSpcJCUl J1xgCi0rCi0rICAgICMgSWYgdGhlcmUgd2FzIGEgZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBj aGFuZ2UgdGhpc2Rpci4KLSsgICAgaWYgdGVzdCBcInhcJGRlc3RkaXJcIiAhPSBcInhcJGZpbGVc IjsgdGhlbgotKyAgICAgIGNhc2UgXCJcJGRlc3RkaXJcIiBpbgotKyAgICAgIFtcXFxcL10qIHwg W0EtWmEtel06W1xcXFwvXSopIHRoaXNkaXI9XCJcJGRlc3RkaXJcIiA7OwotKyAgICAgICopIHRo aXNkaXI9XCJcJHRoaXNkaXIvXCRkZXN0ZGlyXCIgOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0r Ci0rICAgIGZpbGU9XGBcJEVDSE8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlXi4qLyUlJ1xg Ci0rICAgIGZpbGU9XGBscyAtbGQgXCJcJHRoaXNkaXIvXCRmaWxlXCIgfCAke1NFRH0gLW4gJ3Mv LiotPiAvL3AnXGAKLSsgIGRvbmUKLSsiCi0rfQotKyMgZW5kOiBmdW5jX2VtaXRfd3JhcHBlcl9w YXJ0MQotKwotKyMgZnVuY19lbWl0X3dyYXBwZXJfcGFydDIgW2FyZz1ub10KLSsjCi0rIyBFbWl0 IHRoZSBzZWNvbmQgcGFydCBvZiBhIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgb24gc3Rkb3V0Lgot KyMgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZGVzY3JpcHRpb24gYXNzb2NpYXRlZCB3 aXRoCi0rIyBmdW5jX2VtaXRfd3JhcHBlcigpLCBiZWxvdy4KLStmdW5jX2VtaXRfd3JhcHBlcl9w YXJ0MiAoKQotK3sKLSsJZnVuY19lbWl0X3dyYXBwZXJfcGFydDJfYXJnMT1ubwotKwlpZiB0ZXN0 IC1uICIkMSIgOyB0aGVuCi0rCSAgZnVuY19lbWl0X3dyYXBwZXJfcGFydDJfYXJnMT0kMQotKwlm aQotKwotKwkkRUNITyAiXAotKwotKyAgIyBVc3VhbGx5ICdubycsIGV4Y2VwdCBvbiBjeWd3aW4v bWluZ3cgd2hlbiBlbWJlZGRlZCBpbnRvCi0rICAjIHRoZSBjd3JhcHBlci4KLSsgIFdSQVBQRVJf U0NSSVBUX0JFTE9OR1NfSU5fT0JKRElSPSRmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0Ml9hcmcxCi0r ICBpZiB0ZXN0IFwiXCRXUkFQUEVSX1NDUklQVF9CRUxPTkdTX0lOX09CSkRJUlwiID0gXCJ5ZXNc IjsgdGhlbgotKyAgICAjIHNwZWNpYWwgY2FzZSBmb3IgJy4nCi0rICAgIGlmIHRlc3QgXCJcJHRo aXNkaXJcIiA9IFwiLlwiOyB0aGVuCi0rICAgICAgdGhpc2Rpcj1cYHB3ZFxgCi0rICAgIGZpCi0r ICAgICMgcmVtb3ZlIC5saWJzIGZyb20gdGhpc2RpcgotKyAgICBjYXNlIFwiXCR0aGlzZGlyXCIg aW4KLSsgICAgKltcXFxcL10kb2JqZGlyICkgdGhpc2Rpcj1cYFwkRUNITyBcIlhcJHRoaXNkaXJc IiB8IFwkWHNlZCAtZSAncyVbXFxcXC9dW15cXFxcL10qJCUlJ1xgIDs7Ci0rICAgICRvYmpkaXIg KSAgIHRoaXNkaXI9LiA7OwotKyAgICBlc2FjCi0rICBmaQotKwotKyAgIyBUcnkgdG8gZ2V0IHRo ZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZS4KLSsgIGFic2Rpcj1cYGNkIFwiXCR0aGlzZGlyXCIg JiYgcHdkXGAKLSsgIHRlc3QgLW4gXCJcJGFic2RpclwiICYmIHRoaXNkaXI9XCJcJGFic2Rpclwi Ci0rIgotKwotKwlpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IHllczsgdGhlbgotKwkgICRFQ0hP ICJcCi0rICBwcm9ncmFtPWx0LSckb3V0cHV0bmFtZSckZXhlZXh0Ci0rICBwcm9nZGlyPVwiXCR0 aGlzZGlyLyRvYmpkaXJcIgotKwotKyAgaWYgdGVzdCAhIC1mIFwiXCRwcm9nZGlyL1wkcHJvZ3Jh bVwiIHx8Ci0rICAgICB7IGZpbGU9XGBscyAtMWR0IFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiIFwi XCRwcm9nZGlyLy4uL1wkcHJvZ3JhbVwiIDI+L2Rldi9udWxsIHwgJHtTRUR9IDFxXGA7IFxcCi0r ICAgICAgIHRlc3QgXCJYXCRmaWxlXCIgIT0gXCJYXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOyB9OyB0 aGVuCi0rCi0rICAgIGZpbGU9XCJcJFwkLVwkcHJvZ3JhbVwiCi0rCi0rICAgIGlmIHRlc3QgISAt ZCBcIlwkcHJvZ2RpclwiOyB0aGVuCi0rICAgICAgJE1LRElSIFwiXCRwcm9nZGlyXCIKLSsgICAg ZWxzZQotKyAgICAgICRSTSBcIlwkcHJvZ2Rpci9cJGZpbGVcIgotKyAgICBmaSIKLSsKLSsJICAk RUNITyAiXAotKwotKyAgICAjIHJlbGluayBleGVjdXRhYmxlIGlmIG5lY2Vzc2FyeQotKyAgICBp ZiB0ZXN0IC1uIFwiXCRyZWxpbmtfY29tbWFuZFwiOyB0aGVuCi0rICAgICAgaWYgcmVsaW5rX2Nv bW1hbmRfb3V0cHV0PVxgZXZhbCBcJHJlbGlua19jb21tYW5kIDI+JjFcYDsgdGhlbiA6Ci0rICAg ICAgZWxzZQotKwkkRUNITyBcIlwkcmVsaW5rX2NvbW1hbmRfb3V0cHV0XCIgPiYyCi0rCSRSTSBc IlwkcHJvZ2Rpci9cJGZpbGVcIgotKwlleGl0IDEKLSsgICAgICBmaQotKyAgICBmaQotKwotKyAg ICAkTVYgXCJcJHByb2dkaXIvXCRmaWxlXCIgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgMj4vZGV2 L251bGwgfHwKLSsgICAgeyAkUk0gXCJcJHByb2dkaXIvXCRwcm9ncmFtXCI7Ci0rICAgICAgJE1W IFwiXCRwcm9nZGlyL1wkZmlsZVwiIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOyB9Ci0rICAgICRS TSBcIlwkcHJvZ2Rpci9cJGZpbGVcIgotKyAgZmkiCi0rCWVsc2UKLSsJICAkRUNITyAiXAotKyAg cHJvZ3JhbT0nJG91dHB1dG5hbWUnCi0rICBwcm9nZGlyPVwiXCR0aGlzZGlyLyRvYmpkaXJcIgot KyIKLSsJZmkKLSsKLSsJJEVDSE8gIlwKLSsKLSsgIGlmIHRlc3QgLWYgXCJcJHByb2dkaXIvXCRw cm9ncmFtXCI7IHRoZW4iCi0rCi0rCSMgRXhwb3J0IG91ciBzaGxpYnBhdGhfdmFyIGlmIHdlIGhh dmUgb25lLgotKwlpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHllcyAm JiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciIgJiYgdGVzdCAtbiAiJHRlbXBfcnBhdGgiOyB0aGVu Ci0rCSAgJEVDSE8gIlwKLSsgICAgIyBBZGQgb3VyIG93biBsaWJyYXJ5IHBhdGggdG8gJHNobGli cGF0aF92YXIKLSsgICAgJHNobGlicGF0aF92YXI9XCIkdGVtcF9ycGF0aFwkJHNobGlicGF0aF92 YXJcIgotKwotKyAgICAjIFNvbWUgc3lzdGVtcyBjYW5ub3QgY29wZSB3aXRoIGNvbG9uLXRlcm1p bmF0ZWQgJHNobGlicGF0aF92YXIKLSsgICAgIyBUaGUgc2Vjb25kIGNvbG9uIGlzIGEgd29ya2Fy b3VuZCBmb3IgYSBidWcgaW4gQmVPUyBSNCBzZWQKLSsgICAgJHNobGlicGF0aF92YXI9XGBcJEVD SE8gXCJYXCQkc2hsaWJwYXRoX3ZhclwiIHwgXCRYc2VkIC1lICdzLzo6KlwkLy8nXGAKLSsKLSsg ICAgZXhwb3J0ICRzaGxpYnBhdGhfdmFyCi0rIgotKwlmaQotKwotKwkjIGZpeHVwIHRoZSBkbGwg c2VhcmNocGF0aCBpZiB3ZSBuZWVkIHRvLgotKwlpZiB0ZXN0IC1uICIkZGxsc2VhcmNocGF0aCI7 IHRoZW4KLSsJICAkRUNITyAiXAotKyAgICAjIEFkZCB0aGUgZGxsIHNlYXJjaCBwYXRoIGNvbXBv bmVudHMgdG8gdGhlIGV4ZWN1dGFibGUgUEFUSAotKyAgICBQQVRIPSRkbGxzZWFyY2hwYXRoOlwk UEFUSAotKyIKLSsJZmkKLSsKLSsJJEVDSE8gIlwKLSsgICAgaWYgdGVzdCBcIlwkbGlidG9vbF9l eGVjdXRlX21hZ2ljXCIgIT0gXCIkbWFnaWNcIjsgdGhlbgotKyAgICAgICMgUnVuIHRoZSBhY3R1 YWwgcHJvZ3JhbSB3aXRoIG91ciBhcmd1bWVudHMuCi0rIgotKwljYXNlICRob3N0IGluCi0rCSMg QmFja3NsYXNoZXMgc2VwYXJhdGUgZGlyZWN0b3JpZXMgb24gcGxhaW4gd2luZG93cwotKwkqLSot bWluZ3cgfCAqLSotb3MyKiB8ICotY2VnY2MqKQotKwkgICRFQ0hPICJcCi0rICAgICAgZXhlYyBc IlwkcHJvZ2RpclxcXFxcJHByb2dyYW1cIiBcJHsxK1wiXCRAXCJ9Ci0rIgotKwkgIDs7Ci0rCi0r CSopCi0rCSAgJEVDSE8gIlwKLSsgICAgICBleGVjIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiIFwk ezErXCJcJEBcIn0KLSsiCi0rCSAgOzsKLSsJZXNhYwotKwkkRUNITyAiXAotKyAgICAgIFwkRUNI TyBcIlwkMDogY2Fubm90IGV4ZWMgXCRwcm9ncmFtIFwkKlwiIDE+JjIKLSsgICAgICBleGl0IDEK LSsgICAgZmkKLSsgIGVsc2UKLSsgICAgIyBUaGUgcHJvZ3JhbSBkb2Vzbid0IGV4aXN0LgotKyAg ICBcJEVDSE8gXCJcJDA6IGVycm9yOiBcXFxgXCRwcm9nZGlyL1wkcHJvZ3JhbScgZG9lcyBub3Qg ZXhpc3RcIiAxPiYyCi0rICAgIFwkRUNITyBcIlRoaXMgc2NyaXB0IGlzIGp1c3QgYSB3cmFwcGVy IGZvciBcJHByb2dyYW0uXCIgMT4mMgotKyAgICAkRUNITyBcIlNlZSB0aGUgJFBBQ0tBR0UgZG9j dW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cIiAxPiYyCi0rICAgIGV4aXQgMQotKyAg ZmkKLStmaVwKLSsiCi0rfQotKyMgZW5kOiBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MgotKwotKwot KyMgZnVuY19lbWl0X3dyYXBwZXIgW2FyZz1ub10KLSsjCi0rIyBFbWl0IGEgbGlidG9vbCB3cmFw cGVyIHNjcmlwdCBvbiBzdGRvdXQuCi0rIyBEb24ndCBkaXJlY3RseSBvcGVuIGEgZmlsZSBiZWNh dXNlIHdlIG1heSB3YW50IHRvCi0rIyBpbmNvcnBvcmF0ZSB0aGUgc2NyaXB0IGNvbnRlbnRzIHdp dGhpbiBhIGN5Z3dpbi9taW5ndwotKyMgd3JhcHBlciBleGVjdXRhYmxlLiAgTXVzdCBPTkxZIGJl IGNhbGxlZCBmcm9tIHdpdGhpbgotKyMgZnVuY19tb2RlX2xpbmsgYmVjYXVzZSBpdCBkZXBlbmRz IG9uIGEgbnVtYmVyIG9mIHZhcmlhYmxlcwotKyMgc2V0IHRoZXJlaW4uCi0rIwotKyMgQVJHIGlz IHRoZSB2YWx1ZSB0aGF0IHRoZSBXUkFQUEVSX1NDUklQVF9CRUxPTkdTX0lOX09CSkRJUgotKyMg dmFyaWFibGUgd2lsbCB0YWtlLiAgSWYgJ3llcycsIHRoZW4gdGhlIGVtaXR0ZWQgc2NyaXB0Ci0r IyB3aWxsIGFzc3VtZSB0aGF0IHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggaXQgaXMgc3RvcmVkIGlz Ci0rIyB0aGUgJG9iamRpciBkaXJlY3RvcnkuICBUaGlzIGlzIGEgY3lnd2luL21pbmd3LXNwZWNp ZmljCi0rIyBiZWhhdmlvci4KLStmdW5jX2VtaXRfd3JhcHBlciAoKQotK3sKLSsJZnVuY19lbWl0 X3dyYXBwZXJfYXJnMT1ubwotKwlpZiB0ZXN0IC1uICIkMSIgOyB0aGVuCi0rCSAgZnVuY19lbWl0 X3dyYXBwZXJfYXJnMT0kMQotKwlmaQotKwotKwkjIHNwbGl0IHRoaXMgdXAgc28gdGhhdCBmdW5j X2VtaXRfY3dyYXBwZXJleGVfc3JjCi0rCSMgY2FuIGNhbGwgZWFjaCBwYXJ0IGluZGVwZW5kZW50 bHkuCi0rCWZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxICIke2Z1bmNfZW1pdF93cmFwcGVyX2FyZzF9 IgotKwlmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MiAiJHtmdW5jX2VtaXRfd3JhcHBlcl9hcmcxfSIK LSt9Ci0rCi0rCi0rIyBmdW5jX3RvX2hvc3RfcGF0aCBhcmcKLSsjCi0rIyBDb252ZXJ0IHBhdGhz IHRvIGhvc3QgZm9ybWF0IHdoZW4gdXNlZCB3aXRoIGJ1aWxkIHRvb2xzLgotKyMgSW50ZW5kZWQg Zm9yIHVzZSB3aXRoICJuYXRpdmUiIG1pbmd3ICh3aGVyZSBsaWJ0b29sIGl0c2VsZgotKyMgaXMg cnVubmluZyB1bmRlciB0aGUgbXN5cyBzaGVsbCksIG9yIGluIHRoZSBmb2xsb3dpbmcgY3Jvc3Mt Ci0rIyBidWlsZCBlbnZpcm9ubWVudHM6Ci0rIyAgICAkYnVpbGQgICAgICAgICAgJGhvc3QKLSsj ICAgIG1pbmd3IChtc3lzKSAgICBtaW5ndyAgW2UuZy4gbmF0aXZlXQotKyMgICAgY3lnd2luICAg ICAgICAgIG1pbmd3Ci0rIyAgICAqbml4ICsgd2luZSAgICAgbWluZ3cKLSsjIHdoZXJlIHdpbmUg aXMgZXF1aXBwZWQgd2l0aCB0aGUgYHdpbmVwYXRoJyBleGVjdXRhYmxlLgotKyMgSW4gdGhlIG5h dGl2ZSBtaW5ndyBjYXNlLCB0aGUgKG1zeXMpIHNoZWxsIGF1dG9tYXRpY2FsbHkKLSsjIGNvbnZl cnRzIHBhdGhzIGZvciBhbnkgbm9uLW1zeXMgYXBwbGljYXRpb25zIGl0IGxhdW5jaGVzLAotKyMg YnV0IHRoYXQgZmFjaWxpdHkgaXNuJ3QgYXZhaWxhYmxlIGZyb20gaW5zaWRlIHRoZSBjd3JhcHBl ci4KLSsjIFNpbWlsYXIgYWNjb21tb2RhdGlvbnMgYXJlIG5lY2Vzc2FyeSBmb3IgJGhvc3QgbWlu Z3cgYW5kCi0rIyAkYnVpbGQgY3lnd2luLiAgQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGRvZXMgbm8g aGFybSBmb3Igb3RoZXIKLSsjICRob3N0LyRidWlsZCBjb21iaW5hdGlvbnMgbm90IGxpc3RlZCBh Ym92ZS4KLSsjCi0rIyBBUkcgaXMgdGhlIHBhdGggKG9uICRidWlsZCkgdGhhdCBzaG91bGQgYmUg Y29udmVydGVkIHRvCi0rIyB0aGUgcHJvcGVyIHJlcHJlc2VudGF0aW9uIGZvciAkaG9zdC4gVGhl IHJlc3VsdCBpcyBzdG9yZWQKLSsjIGluICRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQuCi0rZnVu Y190b19ob3N0X3BhdGggKCkKLSt7Ci0rICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQxIgot KyAgaWYgdGVzdCAtbiAiJDEiIDsgdGhlbgotKyAgICBjYXNlICRob3N0IGluCi0rICAgICAgKm1p bmd3KiApCi0rICAgICAgICBsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5PSdzfFxcXFwqfFxcfGc7 c3wvfFxcfGc7c3xcXHxcXFxcfGcnCi0rICAgICAgICBjYXNlICRidWlsZCBpbgotKyAgICAgICAg ICAqbWluZ3cqICkgIyBhY3R1YWxseSwgbXN5cwotKyAgICAgICAgICAgICMgYXdrd2FyZDogY21k IGFwcGVuZHMgc3BhY2VzIHRvIHJlc3VsdAotKyAgICAgICAgICAgIGx0X3NlZF9zdHJpcF90cmFp bGluZ19zcGFjZXM9InMvWyBdKlwkLy8iCi0rICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhf dG1wMT1gKCBjbWQgLy9jIGVjaG8gIiQxIiB8XAotKyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0 X3NlZF9zdHJpcF90cmFpbGluZ19zcGFjZXMiICkgMj4vZGV2L251bGwgfHwgZWNobyAiImAKLSsg ICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3Rf cGF0aF90bXAxIiB8XAotKyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNr c2xhc2hpZnkiYAotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICpjeWd3aW4qICkKLSsgICAg ICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAxPWBjeWdwYXRoIC13ICIkMSJgCi0rICAgICAg ICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhf dG1wMSIgfFwKLSsgICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNo aWZ5ImAKLSsgICAgICAgICAgICA7OwotKyAgICAgICAgICAqICkKLSsgICAgICAgICAgICAjIFVu Zm9ydHVuYXRlbHksIHdpbmVwYXRoIGRvZXMgbm90IGV4aXQgd2l0aCBhIG5vbi16ZXJvCi0rICAg ICAgICAgICAgIyBlcnJvciBjb2RlLCBzbyB3ZSBhcmUgZm9yY2VkIHRvIGNoZWNrIHRoZSBjb250 ZW50cyBvZgotKyAgICAgICAgICAgICMgc3Rkb3V0LiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgdGhl IGNvbW1hbmQgaXMgbm90Ci0rICAgICAgICAgICAgIyBmb3VuZCwgdGhlIHNoZWxsIHdpbGwgc2V0 IGFuIGV4aXQgY29kZSBvZiAxMjcgYW5kIHByaW50Ci0rICAgICAgICAgICAgIyAqYW4gZXJyb3Ig bWVzc2FnZSogdG8gc3Rkb3V0LiBTbyB3ZSBtdXN0IGNoZWNrIGZvciBib3RoCi0rICAgICAgICAg ICAgIyBlcnJvciBjb2RlIG9mIHplcm8gQU5EIG5vbi1lbXB0eSBzdGRvdXQsIHdoaWNoIGV4cGxh aW5zCi0rICAgICAgICAgICAgIyB0aGUgb2RkIGNvbnN0cnVjdGlvbjoKLSsgICAgICAgICAgICBm dW5jX3RvX2hvc3RfcGF0aF90bXAxPWB3aW5lcGF0aCAtdyAiJDEiIDI+L2Rldi9udWxsYAotKyAg ICAgICAgICAgIGlmIHRlc3QgIiQ/IiAtZXEgMCAmJiB0ZXN0IC1uICIke2Z1bmNfdG9faG9zdF9w YXRoX3RtcDF9IjsgdGhlbgotKyAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0 PWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIgfFwKLSsgICAgICAgICAgICAgICAgJFNF RCAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAotKyAgICAgICAgICAgIGVsc2UKLSsg ICAgICAgICAgICAgICMgQWxsb3cgd2FybmluZyBiZWxvdy4KLSsgICAgICAgICAgICAgIGZ1bmNf dG9faG9zdF9wYXRoX3Jlc3VsdD0iIgotKyAgICAgICAgICAgIGZpCi0rICAgICAgICAgICAgOzsK LSsgICAgICAgIGVzYWMKLSsgICAgICAgIGlmIHRlc3QgLXogIiRmdW5jX3RvX2hvc3RfcGF0aF9y ZXN1bHQiIDsgdGhlbgotKyAgICAgICAgICBmdW5jX2Vycm9yICJDb3VsZCBub3QgZGV0ZXJtaW5l IGhvc3QgcGF0aCBjb3JyZXNwb25kaW5nIHRvIgotKyAgICAgICAgICBmdW5jX2Vycm9yICIgICck MSciCi0rICAgICAgICAgIGZ1bmNfZXJyb3IgIkNvbnRpbnVpbmcsIGJ1dCB1bmluc3RhbGxlZCBl eGVjdXRhYmxlcyBtYXkgbm90IHdvcmsuIgotKyAgICAgICAgICAjIEZhbGxiYWNrOgotKyAgICAg ICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQxIgotKyAgICAgICAgZmkKLSsgICAgICAg IDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rfQotKyMgZW5kOiBmdW5jX3RvX2hvc3RfcGF0aAotKwot KyMgZnVuY190b19ob3N0X3BhdGhsaXN0IGFyZwotKyMKLSsjIENvbnZlcnQgcGF0aGxpc3RzIHRv IGhvc3QgZm9ybWF0IHdoZW4gdXNlZCB3aXRoIGJ1aWxkIHRvb2xzLgotKyMgU2VlIGZ1bmNfdG9f aG9zdF9wYXRoKCksIGFib3ZlLiBUaGlzIGZ1bmN0aW9uIHN1cHBvcnRzIHRoZQotKyMgZm9sbG93 aW5nICRidWlsZC8kaG9zdCBjb21iaW5hdGlvbnMgKGJ1dCBkb2VzIG5vIGhhcm0gZm9yCi0rIyBj b21iaW5hdGlvbnMgbm90IGxpc3RlZCBoZXJlKToKLSsjICAgICRidWlsZCAgICAgICAgICAkaG9z dAotKyMgICAgbWluZ3cgKG1zeXMpICAgIG1pbmd3ICBbZS5nLiBuYXRpdmVdCi0rIyAgICBjeWd3 aW4gICAgICAgICAgbWluZ3cKLSsjICAgICpuaXggKyB3aW5lICAgICBtaW5ndwotKyMKLSsjIFBh dGggc2VwYXJhdG9ycyBhcmUgYWxzbyBjb252ZXJ0ZWQgZnJvbSAkYnVpbGQgZm9ybWF0IHRvCi0r IyAkaG9zdCBmb3JtYXQuIElmIEFSRyBiZWdpbnMgb3IgZW5kcyB3aXRoIGEgcGF0aCBzZXBhcmF0 b3IKLSsjIGNoYXJhY3RlciwgaXQgaXMgcHJlc2VydmVkIChidXQgY29udmVydGVkIHRvICRob3N0 IGZvcm1hdCkKLSsjIG9uIG91dHB1dC4KLSsjCi0rIyBBUkcgaXMgYSBwYXRobGlzdCAob24gJGJ1 aWxkKSB0aGF0IHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8KLSsjIHRoZSBwcm9wZXIgcmVwcmVzZW50 YXRpb24gb24gJGhvc3QuIFRoZSByZXN1bHQgaXMgc3RvcmVkCi0rIyBpbiAkZnVuY190b19ob3N0 X3BhdGhsaXN0X3Jlc3VsdC4KLStmdW5jX3RvX2hvc3RfcGF0aGxpc3QgKCkKLSt7Ci0rICBmdW5j X3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSIkMSIKLSsgIGlmIHRlc3QgLW4gIiQxIiA7IHRoZW4K LSsgICAgY2FzZSAkaG9zdCBpbgotKyAgICAgICptaW5ndyogKQotKyAgICAgICAgbHRfc2VkX25h aXZlX2JhY2tzbGFzaGlmeT0nc3xcXFxcKnxcXHxnO3N8L3xcXHxnO3N8XFx8XFxcXHxnJwotKyAg ICAgICAgIyBSZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgcGF0aCBzZXBhcmF0b3IgY2hhcmFj dGVycyBmcm9tCi0rICAgICAgICAjIEFSRy4gbXN5cyBiZWhhdmlvciBpcyBpbmNvbnNpc3RlbnQg aGVyZSwgY3lncGF0aCB0dXJucyB0aGVtCi0rICAgICAgICAjIGludG8gJy47JyBhbmQgJzsuJywg YW5kIHdpbmVwYXRoIGlnbm9yZXMgdGhlbSBjb21wbGV0ZWx5LgotKyAgICAgICAgZnVuY190b19o b3N0X3BhdGhsaXN0X3RtcDI9IiQxIgotKyAgICAgICAgIyBPbmNlIHNldCBmb3IgdGhpcyBjYWxs LCB0aGlzIHZhcmlhYmxlIHNob3VsZCBub3QgYmUKLSsgICAgICAgICMgcmVhc3NpZ25lZC4gSXQg aXMgdXNlZCBpbiB0aGEgZmFsbGJhY2sgY2FzZS4KLSsgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRo bGlzdF90bXAxPWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDIiIHxcCi0rICAgICAg ICAgICRTRUQgLWUgJ3N8XjoqfHwnIC1lICdzfDoqJHx8J2AKLSsgICAgICAgIGNhc2UgJGJ1aWxk IGluCi0rICAgICAgICAgICptaW5ndyogKSAjIEFjdHVhbGx5LCBtc3lzLgotKyAgICAgICAgICAg ICMgQXdrd2FyZDogY21kIGFwcGVuZHMgc3BhY2VzIHRvIHJlc3VsdC4KLSsgICAgICAgICAgICBs dF9zZWRfc3RyaXBfdHJhaWxpbmdfc3BhY2VzPSJzL1sgXSpcJC8vIgotKyAgICAgICAgICAgIGZ1 bmNfdG9faG9zdF9wYXRobGlzdF90bXAyPWAoIGNtZCAvL2MgZWNobyAiJGZ1bmNfdG9faG9zdF9w YXRobGlzdF90bXAxIiB8XAotKyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9zdHJpcF90 cmFpbGluZ19zcGFjZXMiICkgMj4vZGV2L251bGwgfHwgZWNobyAiImAKLSsgICAgICAgICAgICBm dW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhsaXN0 X3RtcDIiIHxcCi0rICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFz aGlmeSJgCi0rICAgICAgICAgICAgOzsKLSsgICAgICAgICAgKmN5Z3dpbiogKQotKyAgICAgICAg ICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAyPWBjeWdwYXRoIC13IC1wICIkZnVuY190b19o b3N0X3BhdGhsaXN0X3RtcDEiYAotKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9y ZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMiIgfFwKLSsgICAgICAgICAg ICAgICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKLSsgICAgICAgICAgICA7 OwotKyAgICAgICAgICAqICkKLSsgICAgICAgICAgICAjIHVuZm9ydHVuYXRlbHksIHdpbmVwYXRo IGRvZXNuJ3QgY29udmVydCBwYXRobGlzdHMKLSsgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0 aGxpc3RfcmVzdWx0PSIiCi0rICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X29sZElG Uz0kSUZTCi0rICAgICAgICAgICAgSUZTPToKLSsgICAgICAgICAgICBmb3IgZnVuY190b19ob3N0 X3BhdGhsaXN0X2YgaW4gJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAxIDsgZG8KLSsgICAgICAg ICAgICAgIElGUz0kZnVuY190b19ob3N0X3BhdGhsaXN0X29sZElGUwotKyAgICAgICAgICAgICAg aWYgdGVzdCAtbiAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9mIiA7IHRoZW4KLSsgICAgICAgICAg ICAgICAgZnVuY190b19ob3N0X3BhdGggIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfZiIKLSsgICAg ICAgICAgICAgICAgaWYgdGVzdCAtbiAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIgOyB0aGVu Ci0rICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9y ZXN1bHQiIDsgdGhlbgotKyAgICAgICAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0 X3Jlc3VsdD0iJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKLSsgICAgICAgICAgICAgICAgICBl bHNlCi0rICAgICAgICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSIk ZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdDskZnVuY190b19ob3N0X3BhdGhfcmVzdWx0Igot KyAgICAgICAgICAgICAgICAgIGZpCi0rICAgICAgICAgICAgICAgIGZpCi0rICAgICAgICAgICAg ICBmaQotKyAgICAgICAgICAgICAgSUZTPToKLSsgICAgICAgICAgICBkb25lCi0rICAgICAgICAg ICAgSUZTPSRmdW5jX3RvX2hvc3RfcGF0aGxpc3Rfb2xkSUZTCi0rICAgICAgICAgICAgOzsKLSsg ICAgICAgIGVzYWMKLSsgICAgICAgIGlmIHRlc3QgLXogIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3Rf cmVzdWx0IiA7IHRoZW4KLSsgICAgICAgICAgZnVuY19lcnJvciAiQ291bGQgbm90IGRldGVybWlu ZSB0aGUgaG9zdCBwYXRoKHMpIGNvcnJlc3BvbmRpbmcgdG8iCi0rICAgICAgICAgIGZ1bmNfZXJy b3IgIiAgJyQxJyIKLSsgICAgICAgICAgZnVuY19lcnJvciAiQ29udGludWluZywgYnV0IHVuaW5z dGFsbGVkIGV4ZWN1dGFibGVzIG1heSBub3Qgd29yay4iCi0rICAgICAgICAgICMgRmFsbGJhY2su IFRoaXMgbWF5IGJyZWFrIGlmICQxIGNvbnRhaW5zIERPUy1zdHlsZSBkcml2ZQotKyAgICAgICAg ICAjIHNwZWNpZmljYXRpb25zLiBUaGUgZml4IGlzIG5vdCB0byBjb21wbGljYXRlIHRoZSBleHBy ZXNzaW9uCi0rICAgICAgICAgICMgYmVsb3csIGJ1dCBmb3IgdGhlIHVzZXIgdG8gcHJvdmlkZSBh IHdvcmtpbmcgd2luZSBpbnN0YWxsYXRpb24KLSsgICAgICAgICAgIyB3aXRoIHdpbmVwYXRoIHNv IHRoYXQgcGF0aCB0cmFuc2xhdGlvbiBpbiB0aGUgY3Jvc3MtdG8tbWluZ3cKLSsgICAgICAgICAg IyBjYXNlIHdvcmtzIHByb3Blcmx5LgotKyAgICAgICAgICBsdF9yZXBsYWNlX3BhdGhzZXBfbml4 X3RvX2Rvcz0ic3w6fDt8ZyIKLSsgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3Vs dD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAxIiB8XAotKyAgICAgICAgICAgICRT RUQgLWUgIiRsdF9yZXBsYWNlX3BhdGhzZXBfbml4X3RvX2RvcyJgCi0rICAgICAgICBmaQotKyAg ICAgICAgIyBOb3csIGFkZCB0aGUgbGVhZGluZyBhbmQgdHJhaWxpbmcgcGF0aCBzZXBhcmF0b3Jz IGJhY2sKLSsgICAgICAgIGNhc2UgIiQxIiBpbgotKyAgICAgICAgICA6KiApIGZ1bmNfdG9faG9z dF9wYXRobGlzdF9yZXN1bHQ9IjskZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCIKLSsgICAg ICAgICAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgY2FzZSAiJDEiIGluCi0rICAgICAg ICAgICo6ICkgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iJGZ1bmNfdG9faG9zdF9wYXRo bGlzdF9yZXN1bHQ7IgotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7 OwotKyAgICBlc2FjCi0rICBmaQotK30KLSsjIGVuZDogZnVuY190b19ob3N0X3BhdGhsaXN0Ci0r Ci0rIyBmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjCi0rIyBlbWl0IHRoZSBzb3VyY2UgY29kZSBm b3IgYSB3cmFwcGVyIGV4ZWN1dGFibGUgb24gc3Rkb3V0Ci0rIyBNdXN0IE9OTFkgYmUgY2FsbGVk IGZyb20gd2l0aGluIGZ1bmNfbW9kZV9saW5rIGJlY2F1c2UKLSsjIGl0IGRlcGVuZHMgb24gYSBu dW1iZXIgb2YgdmFyaWFibGUgc2V0IHRoZXJlaW4uCi0rZnVuY19lbWl0X2N3cmFwcGVyZXhlX3Ny YyAoKQotK3sKLSsJY2F0IDw8RU9GCi0rCi0rLyogJGN3cmFwcGVyc291cmNlIC0gdGVtcG9yYXJ5 IHdyYXBwZXIgZXhlY3V0YWJsZSBmb3IgJG9iamRpci8kb3V0cHV0bmFtZQotKyAgIEdlbmVyYXRl ZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KLSsKLSsgICBU aGUgJG91dHB1dCBwcm9ncmFtIGNhbm5vdCBiZSBkaXJlY3RseSBleGVjdXRlZCB1bnRpbCBhbGwg dGhlIGxpYnRvb2wKLSsgICBsaWJyYXJpZXMgdGhhdCBpdCBkZXBlbmRzIG9uIGFyZSBpbnN0YWxs ZWQuCi0rCi0rICAgVGhpcyB3cmFwcGVyIGV4ZWN1dGFibGUgc2hvdWxkIG5ldmVyIGJlIG1vdmVk IG91dCBvZiB0aGUgYnVpbGQgZGlyZWN0b3J5LgotKyAgIElmIGl0IGlzLCBpdCB3aWxsIG5vdCBv cGVyYXRlIGNvcnJlY3RseS4KLSsKLSsgICBDdXJyZW50bHksIGl0IHNpbXBseSBleGVjcyB0aGUg d3JhcHBlciAqc2NyaXB0KiAiJFNIRUxMICRvdXRwdXQiLAotKyAgIGJ1dCBjb3VsZCBldmVudHVh bGx5IGFic29yYiBhbGwgb2YgdGhlIHNjcmlwdHMgZnVuY3Rpb25hbGl0eSBhbmQKLSsgICBleGVj ICRvYmpkaXIvJG91dHB1dG5hbWUgZGlyZWN0bHkuCi0rKi8KLStFT0YKLSsJICAgIGNhdCA8PCJF T0YiCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpZmRlZiBf TVNDX1ZFUgotKyMgaW5jbHVkZSA8ZGlyZWN0Lmg+Ci0rIyBpbmNsdWRlIDxwcm9jZXNzLmg+Ci0r IyBpbmNsdWRlIDxpby5oPgotKyMgZGVmaW5lIHNldG1vZGUgX3NldG1vZGUKLSsjZWxzZQotKyMg aW5jbHVkZSA8dW5pc3RkLmg+Ci0rIyBpbmNsdWRlIDxzdGRpbnQuaD4KLSsjIGlmZGVmIF9fQ1lH V0lOX18KLSsjICBpbmNsdWRlIDxpby5oPgotKyMgIGRlZmluZSBIQVZFX1NFVEVOVgotKyMgIGlm ZGVmIF9fU1RSSUNUX0FOU0lfXwotK2NoYXIgKnJlYWxwYXRoIChjb25zdCBjaGFyICosIGNoYXIg Kik7Ci0raW50IHB1dGVudiAoY2hhciAqKTsKLStpbnQgc2V0ZW52IChjb25zdCBjaGFyICosIGNv bnN0IGNoYXIgKiwgaW50KTsKLSsjICBlbmRpZgotKyMgZW5kaWYKLSsjZW5kaWYKLSsjaW5jbHVk ZSA8bWFsbG9jLmg+Ci0rI2luY2x1ZGUgPHN0ZGFyZy5oPgotKyNpbmNsdWRlIDxhc3NlcnQuaD4K LSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rI2luY2x1ZGUgPGN0eXBlLmg+Ci0rI2luY2x1ZGUgPGVy cm5vLmg+Ci0rI2luY2x1ZGUgPGZjbnRsLmg+Ci0rI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0rCi0r I2lmIGRlZmluZWQoUEFUSF9NQVgpCi0rIyBkZWZpbmUgTFRfUEFUSE1BWCBQQVRIX01BWAotKyNl bGlmIGRlZmluZWQoTUFYUEFUSExFTikKLSsjIGRlZmluZSBMVF9QQVRITUFYIE1BWFBBVEhMRU4K LSsjZWxzZQotKyMgZGVmaW5lIExUX1BBVEhNQVggMTAyNAotKyNlbmRpZgotKwotKyNpZm5kZWYg U19JWE9USAotKyMgZGVmaW5lIFNfSVhPVEggMAotKyNlbmRpZgotKyNpZm5kZWYgU19JWEdSUAot KyMgZGVmaW5lIFNfSVhHUlAgMAotKyNlbmRpZgotKwotKyNpZmRlZiBfTVNDX1ZFUgotKyMgZGVm aW5lIFNfSVhVU1IgX1NfSUVYRUMKLSsjIGRlZmluZSBzdGF0IF9zdGF0Ci0rIyBpZm5kZWYgX0lO VFBUUl9UX0RFRklORUQKLSsjICBkZWZpbmUgaW50cHRyX3QgaW50Ci0rIyBlbmRpZgotKyNlbmRp ZgotKwotKyNpZm5kZWYgRElSX1NFUEFSQVRPUgotKyMgZGVmaW5lIERJUl9TRVBBUkFUT1IgJy8n Ci0rIyBkZWZpbmUgUEFUSF9TRVBBUkFUT1IgJzonCi0rI2VuZGlmCi0rCi0rI2lmIGRlZmluZWQg KF9XSU4zMikgfHwgZGVmaW5lZCAoX19NU0RPU19fKSB8fCBkZWZpbmVkIChfX0RKR1BQX18pIHx8 IFwKLSsgIGRlZmluZWQgKF9fT1MyX18pCi0rIyBkZWZpbmUgSEFWRV9ET1NfQkFTRURfRklMRV9T WVNURU0KLSsjIGRlZmluZSBGT1BFTl9XQiAid2IiCi0rIyBpZm5kZWYgRElSX1NFUEFSQVRPUl8y Ci0rIyAgZGVmaW5lIERJUl9TRVBBUkFUT1JfMiAnXFwnCi0rIyBlbmRpZgotKyMgaWZuZGVmIFBB VEhfU0VQQVJBVE9SXzIKLSsjICBkZWZpbmUgUEFUSF9TRVBBUkFUT1JfMiAnOycKLSsjIGVuZGlm Ci0rI2VuZGlmCi0rCi0rI2lmbmRlZiBESVJfU0VQQVJBVE9SXzIKLSsjIGRlZmluZSBJU19ESVJf U0VQQVJBVE9SKGNoKSAoKGNoKSA9PSBESVJfU0VQQVJBVE9SKQotKyNlbHNlIC8qIERJUl9TRVBB UkFUT1JfMiAqLwotKyMgZGVmaW5lIElTX0RJUl9TRVBBUkFUT1IoY2gpIFwKLSsJKCgoY2gpID09 IERJUl9TRVBBUkFUT1IpIHx8ICgoY2gpID09IERJUl9TRVBBUkFUT1JfMikpCi0rI2VuZGlmIC8q IERJUl9TRVBBUkFUT1JfMiAqLwotKwotKyNpZm5kZWYgUEFUSF9TRVBBUkFUT1JfMgotKyMgZGVm aW5lIElTX1BBVEhfU0VQQVJBVE9SKGNoKSAoKGNoKSA9PSBQQVRIX1NFUEFSQVRPUikKLSsjZWxz ZSAvKiBQQVRIX1NFUEFSQVRPUl8yICovCi0rIyBkZWZpbmUgSVNfUEFUSF9TRVBBUkFUT1IoY2gp ICgoY2gpID09IFBBVEhfU0VQQVJBVE9SXzIpCi0rI2VuZGlmIC8qIFBBVEhfU0VQQVJBVE9SXzIg Ki8KLSsKLSsjaWZkZWYgX19DWUdXSU5fXwotKyMgZGVmaW5lIEZPUEVOX1dCICJ3YiIKLSsjZW5k aWYKLSsKLSsjaWZuZGVmIEZPUEVOX1dCCi0rIyBkZWZpbmUgRk9QRU5fV0IgInciCi0rI2VuZGlm Ci0rI2lmbmRlZiBfT19CSU5BUlkKLSsjIGRlZmluZSBfT19CSU5BUlkgMAotKyNlbmRpZgotKwot KyNkZWZpbmUgWE1BTExPQyh0eXBlLCBudW0pICAgICAgKCh0eXBlICopIHhtYWxsb2MgKChudW0p ICogc2l6ZW9mKHR5cGUpKSkKLSsjZGVmaW5lIFhGUkVFKHN0YWxlKSBkbyB7IFwKLSsgIGlmIChz dGFsZSkgeyBmcmVlICgodm9pZCAqKSBzdGFsZSk7IHN0YWxlID0gMDsgfSBcCi0rfSB3aGlsZSAo MCkKLSsKLSsjdW5kZWYgTFRXUkFQUEVSX0RFQlVHUFJJTlRGCi0rI2lmIGRlZmluZWQgREVCVUdX UkFQUEVSCi0rIyBkZWZpbmUgTFRXUkFQUEVSX0RFQlVHUFJJTlRGKGFyZ3MpIGx0d3JhcHBlcl9k ZWJ1Z3ByaW50ZiBhcmdzCi0rc3RhdGljIHZvaWQKLStsdHdyYXBwZXJfZGVidWdwcmludGYgKGNv bnN0IGNoYXIgKmZtdCwgLi4uKQotK3sKLSsgICAgdmFfbGlzdCBhcmdzOwotKyAgICB2YV9zdGFy dCAoYXJncywgZm10KTsKLSsgICAgKHZvaWQpIHZmcHJpbnRmIChzdGRlcnIsIGZtdCwgYXJncyk7 Ci0rICAgIHZhX2VuZCAoYXJncyk7Ci0rfQotKyNlbHNlCi0rIyBkZWZpbmUgTFRXUkFQUEVSX0RF QlVHUFJJTlRGKGFyZ3MpCi0rI2VuZGlmCi0rCi0rY29uc3QgY2hhciAqcHJvZ3JhbV9uYW1lID0g TlVMTDsKLSsKLSt2b2lkICp4bWFsbG9jIChzaXplX3QgbnVtKTsKLStjaGFyICp4c3RyZHVwIChj b25zdCBjaGFyICpzdHJpbmcpOwotK2NvbnN0IGNoYXIgKmJhc2VfbmFtZSAoY29uc3QgY2hhciAq bmFtZSk7Ci0rY2hhciAqZmluZF9leGVjdXRhYmxlIChjb25zdCBjaGFyICp3cmFwcGVyKTsKLStj aGFyICpjaGFzZV9zeW1saW5rcyAoY29uc3QgY2hhciAqcGF0aHNwZWMpOwotK2ludCBtYWtlX2V4 ZWN1dGFibGUgKGNvbnN0IGNoYXIgKnBhdGgpOwotK2ludCBjaGVja19leGVjdXRhYmxlIChjb25z dCBjaGFyICpwYXRoKTsKLStjaGFyICpzdHJlbmR6YXAgKGNoYXIgKnN0ciwgY29uc3QgY2hhciAq cGF0KTsKLSt2b2lkIGx0X2ZhdGFsIChjb25zdCBjaGFyICptZXNzYWdlLCAuLi4pOwotK3ZvaWQg bHRfc2V0ZW52IChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSk7Ci0rY2hhciAq bHRfZXh0ZW5kX3N0ciAoY29uc3QgY2hhciAqb3JpZ192YWx1ZSwgY29uc3QgY2hhciAqYWRkLCBp bnQgdG9fZW5kKTsKLSt2b2lkIGx0X29wdF9wcm9jZXNzX2Vudl9zZXQgKGNvbnN0IGNoYXIgKmFy Zyk7Ci0rdm9pZCBsdF9vcHRfcHJvY2Vzc19lbnZfcHJlcGVuZCAoY29uc3QgY2hhciAqYXJnKTsK LSt2b2lkIGx0X29wdF9wcm9jZXNzX2Vudl9hcHBlbmQgKGNvbnN0IGNoYXIgKmFyZyk7Ci0raW50 IGx0X3NwbGl0X25hbWVfdmFsdWUgKGNvbnN0IGNoYXIgKmFyZywgY2hhcioqIG5hbWUsIGNoYXIq KiB2YWx1ZSk7Ci0rdm9pZCBsdF91cGRhdGVfZXhlX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNv bnN0IGNoYXIgKnZhbHVlKTsKLSt2b2lkIGx0X3VwZGF0ZV9saWJfcGF0aCAoY29uc3QgY2hhciAq bmFtZSwgY29uc3QgY2hhciAqdmFsdWUpOwotKwotK3N0YXRpYyBjb25zdCBjaGFyICpzY3JpcHRf dGV4dF9wYXJ0MSA9Ci0rRU9GCi0rCi0rCSAgICBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MSB5ZXMg fAotKwkgICAgICAgICRTRUQgLWUgJ3MvXChbXFwiXVwpL1xcXDEvZycgXAotKwkgICAgICAgICAg ICAgLWUgJ3MvXi8gICIvJyAtZSAncy8kL1xcbiIvJwotKwkgICAgZWNobyAiOyIKLSsJICAgIGNh dCA8PEVPRgotKwotK3N0YXRpYyBjb25zdCBjaGFyICpzY3JpcHRfdGV4dF9wYXJ0MiA9Ci0rRU9G Ci0rCSAgICBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MiB5ZXMgfAotKwkgICAgICAgICRTRUQgLWUg J3MvXChbXFwiXVwpL1xcXDEvZycgXAotKwkgICAgICAgICAgICAgLWUgJ3MvXi8gICIvJyAtZSAn cy8kL1xcbiIvJwotKwkgICAgZWNobyAiOyIKLSsKLSsJICAgIGNhdCA8PEVPRgotK2NvbnN0IGNo YXIgKiBNQUdJQ19FWEUgPSAiJG1hZ2ljX2V4ZSI7Ci0rY29uc3QgY2hhciAqIExJQl9QQVRIX1ZB Uk5BTUUgPSAiJHNobGlicGF0aF92YXIiOwotK0VPRgotKwotKwkgICAgaWYgdGVzdCAiJHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgJiYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIi ICYmIHRlc3QgLW4gIiR0ZW1wX3JwYXRoIjsgdGhlbgotKyAgICAgICAgICAgICAgZnVuY190b19o b3N0X3BhdGhsaXN0ICIkdGVtcF9ycGF0aCIKLSsJICAgICAgY2F0IDw8RU9GCi0rY29uc3QgY2hh ciAqIExJQl9QQVRIX1ZBTFVFICAgPSAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiOwot K0VPRgotKwkgICAgZWxzZQotKwkgICAgICBjYXQgPDwiRU9GIgotK2NvbnN0IGNoYXIgKiBMSUJf UEFUSF9WQUxVRSAgID0gIiI7Ci0rRU9GCi0rCSAgICBmaQotKwotKwkgICAgaWYgdGVzdCAtbiAi JGRsbHNlYXJjaHBhdGgiOyB0aGVuCi0rICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxp c3QgIiRkbGxzZWFyY2hwYXRoOiIKLSsJICAgICAgY2F0IDw8RU9GCi0rY29uc3QgY2hhciAqIEVY RV9QQVRIX1ZBUk5BTUUgPSAiUEFUSCI7Ci0rY29uc3QgY2hhciAqIEVYRV9QQVRIX1ZBTFVFICAg PSAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiOwotK0VPRgotKwkgICAgZWxzZQotKwkg ICAgICBjYXQgPDwiRU9GIgotK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQVJOQU1FID0gIiI7Ci0r Y29uc3QgY2hhciAqIEVYRV9QQVRIX1ZBTFVFICAgPSAiIjsKLStFT0YKLSsJICAgIGZpCi0rCi0r CSAgICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IHllczsgdGhlbgotKwkgICAgICBjYXQgPDxF T0YKLStjb25zdCBjaGFyICogVEFSR0VUX1BST0dSQU1fTkFNRSA9ICJsdC0kb3V0cHV0bmFtZSI7 IC8qIGhvcGVmdWxseSwgbm8gLmV4ZSAqLwotK0VPRgotKwkgICAgZWxzZQotKwkgICAgICBjYXQg PDxFT0YKLStjb25zdCBjaGFyICogVEFSR0VUX1BST0dSQU1fTkFNRSA9ICIkb3V0cHV0bmFtZSI7 IC8qIGhvcGVmdWxseSwgbm8gLmV4ZSAqLwotK0VPRgotKwkgICAgZmkKLSsKLSsKLSsJICAgIGNh dCA8PCJFT0YiCi0rCi0rI2RlZmluZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAgICAgICAgICIt LWx0LSIKLSsjZGVmaW5lIExUV1JBUFBFUl9PUFRJT05fUFJFRklYX0xFTkdUSCAgNQotKwotK3N0 YXRpYyBjb25zdCBzaXplX3Qgb3B0X3ByZWZpeF9sZW4gICAgICAgICA9IExUV1JBUFBFUl9PUFRJ T05fUFJFRklYX0xFTkdUSDsKLStzdGF0aWMgY29uc3QgY2hhciAqbHR3cmFwcGVyX29wdGlvbl9w cmVmaXggPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWDsKLSsKLStzdGF0aWMgY29uc3QgY2hhciAq ZHVtcHNjcmlwdF9vcHQgICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZHVtcC1zY3Jp cHQiOwotKwotK3N0YXRpYyBjb25zdCBzaXplX3QgZW52X3NldF9vcHRfbGVuICAgICA9IExUV1JB UFBFUl9PUFRJT05fUFJFRklYX0xFTkdUSCArIDc7Ci0rc3RhdGljIGNvbnN0IGNoYXIgKmVudl9z ZXRfb3B0ICAgICAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVggImVudi1zZXQiOwotKyAg LyogYXJndW1lbnQgaXMgcHV0ZW52LXN0eWxlICJmb289YmFyIiwgdmFsdWUgb2YgZm9vIGlzIHNl dCB0byBiYXIgKi8KLSsKLStzdGF0aWMgY29uc3Qgc2l6ZV90IGVudl9wcmVwZW5kX29wdF9sZW4g PSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWF9MRU5HVEggKyAxMTsKLStzdGF0aWMgY29uc3QgY2hh ciAqZW52X3ByZXBlbmRfb3B0ICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZW52LXBy ZXBlbmQiOwotKyAgLyogYXJndW1lbnQgaXMgcHV0ZW52LXN0eWxlICJmb289YmFyIiwgbmV3IHZh bHVlIG9mIGZvbyBpcyBiYXIke2Zvb30gKi8KLSsKLStzdGF0aWMgY29uc3Qgc2l6ZV90IGVudl9h cHBlbmRfb3B0X2xlbiAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWF9MRU5HVEggKyAxMDsKLStz dGF0aWMgY29uc3QgY2hhciAqZW52X2FwcGVuZF9vcHQgICAgICAgPSBMVFdSQVBQRVJfT1BUSU9O X1BSRUZJWCAiZW52LWFwcGVuZCI7Ci0rICAvKiBhcmd1bWVudCBpcyBwdXRlbnYtc3R5bGUgImZv bz1iYXIiLCBuZXcgdmFsdWUgb2YgZm9vIGlzICR7Zm9vfWJhciAqLwotKwotK2ludAotK21haW4g KGludCBhcmdjLCBjaGFyICphcmd2W10pCi0rewotKyAgY2hhciAqKm5ld2FyZ3o7Ci0rICBpbnQg IG5ld2FyZ2M7Ci0rICBjaGFyICp0bXBfcGF0aHNwZWM7Ci0rICBjaGFyICphY3R1YWxfY3dyYXBw ZXJfcGF0aDsKLSsgIGNoYXIgKmFjdHVhbF9jd3JhcHBlcl9uYW1lOwotKyAgY2hhciAqdGFyZ2V0 X25hbWU7Ci0rICBjaGFyICpsdF9hcmd2X3plcm87Ci0rICBpbnRwdHJfdCBydmFsID0gMTI3Owot KwotKyAgaW50IGk7Ci0rCi0rICBwcm9ncmFtX25hbWUgPSAoY2hhciAqKSB4c3RyZHVwIChiYXNl X25hbWUgKGFyZ3ZbMF0pKTsKLSsgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgYXJn dlswXSAgICAgIDogJXNcbiIsIGFyZ3ZbMF0pKTsKLSsgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAo KCIobWFpbikgcHJvZ3JhbV9uYW1lIDogJXNcbiIsIHByb2dyYW1fbmFtZSkpOwotKwotKyAgLyog dmVyeSBzaW1wbGUgYXJnIHBhcnNpbmc7IGRvbid0IHdhbnQgdG8gcmVseSBvbiBnZXRvcHQgKi8K LSsgIGZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspCi0rICAgIHsKLSsgICAgICBpZiAoc3RyY21w IChhcmd2W2ldLCBkdW1wc2NyaXB0X29wdCkgPT0gMCkKLSsJewotK0VPRgotKwkgICAgY2FzZSAi JGhvc3QiIGluCi0rCSAgICAgICptaW5ndyogfCAqY3lnd2luKiApCi0rCQkjIG1ha2Ugc3Rkb3V0 IHVzZSAidW5peCIgbGluZSBlbmRpbmdzCi0rCQllY2hvICIgICAgICAgICAgc2V0bW9kZSgxLF9P X0JJTkFSWSk7IgotKwkJOzsKLSsJICAgICAgZXNhYwotKwotKwkgICAgY2F0IDw8IkVPRiIKLSsJ ICBwcmludGYgKCIlcyIsIHNjcmlwdF90ZXh0X3BhcnQxKTsKLSsJICBwcmludGYgKCIlcyIsIHNj cmlwdF90ZXh0X3BhcnQyKTsKLSsJICByZXR1cm4gMDsKLSsJfQotKyAgICB9Ci0rCi0rICBuZXdh cmd6ID0gWE1BTExPQyAoY2hhciAqLCBhcmdjICsgMSk7Ci0rICB0bXBfcGF0aHNwZWMgPSBmaW5k X2V4ZWN1dGFibGUgKGFyZ3ZbMF0pOwotKyAgaWYgKHRtcF9wYXRoc3BlYyA9PSBOVUxMKQotKyAg ICBsdF9mYXRhbCAoIkNvdWxkbid0IGZpbmQgJXMiLCBhcmd2WzBdKTsKLSsgIExUV1JBUFBFUl9E RUJVR1BSSU5URiAoKCIobWFpbikgZm91bmQgZXhlIChiZWZvcmUgc3ltbGluayBjaGFzZSkgYXQg OiAlc1xuIiwKLSsJCQkgIHRtcF9wYXRoc3BlYykpOwotKwotKyAgYWN0dWFsX2N3cmFwcGVyX3Bh dGggPSBjaGFzZV9zeW1saW5rcyAodG1wX3BhdGhzcGVjKTsKLSsgIExUV1JBUFBFUl9ERUJVR1BS SU5URiAoKCIobWFpbikgZm91bmQgZXhlIChhZnRlciBzeW1saW5rIGNoYXNlKSBhdCA6ICVzXG4i LAotKwkJCSAgYWN0dWFsX2N3cmFwcGVyX3BhdGgpKTsKLSsgIFhGUkVFICh0bXBfcGF0aHNwZWMp OwotKwotKyAgYWN0dWFsX2N3cmFwcGVyX25hbWUgPSB4c3RyZHVwKCBiYXNlX25hbWUgKGFjdHVh bF9jd3JhcHBlcl9wYXRoKSk7Ci0rICBzdHJlbmR6YXAgKGFjdHVhbF9jd3JhcHBlcl9wYXRoLCBh Y3R1YWxfY3dyYXBwZXJfbmFtZSk7Ci0rCi0rICAvKiB3cmFwcGVyIG5hbWUgdHJhbnNmb3JtcyAq LwotKyAgc3RyZW5kemFwIChhY3R1YWxfY3dyYXBwZXJfbmFtZSwgIi5leGUiKTsKLSsgIHRtcF9w YXRoc3BlYyA9IGx0X2V4dGVuZF9zdHIgKGFjdHVhbF9jd3JhcHBlcl9uYW1lLCAiLmV4ZSIsIDEp OwotKyAgWEZSRUUgKGFjdHVhbF9jd3JhcHBlcl9uYW1lKTsKLSsgIGFjdHVhbF9jd3JhcHBlcl9u YW1lID0gdG1wX3BhdGhzcGVjOwotKyAgdG1wX3BhdGhzcGVjID0gMDsKLSsKLSsgIC8qIHRhcmdl dF9uYW1lIHRyYW5zZm9ybXMgLS0gdXNlIGFjdHVhbCB0YXJnZXQgcHJvZ3JhbSBuYW1lOyBtaWdo dCBoYXZlIGx0LSBwcmVmaXggKi8KLSsgIHRhcmdldF9uYW1lID0geHN0cmR1cCAoYmFzZV9uYW1l IChUQVJHRVRfUFJPR1JBTV9OQU1FKSk7Ci0rICBzdHJlbmR6YXAgKHRhcmdldF9uYW1lLCAiLmV4 ZSIpOwotKyAgdG1wX3BhdGhzcGVjID0gbHRfZXh0ZW5kX3N0ciAodGFyZ2V0X25hbWUsICIuZXhl IiwgMSk7Ci0rICBYRlJFRSAodGFyZ2V0X25hbWUpOwotKyAgdGFyZ2V0X25hbWUgPSB0bXBfcGF0 aHNwZWM7Ci0rICB0bXBfcGF0aHNwZWMgPSAwOwotKwotKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRG ICgoIihtYWluKSBsaWJ0b29sIHRhcmdldCBuYW1lOiAlc1xuIiwKLSsJCQkgIHRhcmdldF9uYW1l KSk7Ci0rRU9GCi0rCi0rCSAgICBjYXQgPDxFT0YKLSsgIG5ld2FyZ3pbMF0gPQotKyAgICBYTUFM TE9DIChjaGFyLCAoc3RybGVuIChhY3R1YWxfY3dyYXBwZXJfcGF0aCkgKwotKwkJICAgIHN0cmxl biAoIiRvYmpkaXIiKSArIDEgKyBzdHJsZW4gKGFjdHVhbF9jd3JhcHBlcl9uYW1lKSArIDEpKTsK LSsgIHN0cmNweSAobmV3YXJnelswXSwgYWN0dWFsX2N3cmFwcGVyX3BhdGgpOwotKyAgc3RyY2F0 IChuZXdhcmd6WzBdLCAiJG9iamRpciIpOwotKyAgc3RyY2F0IChuZXdhcmd6WzBdLCAiLyIpOwot K0VPRgotKwotKwkgICAgY2F0IDw8IkVPRiIKLSsgIC8qIHN0b3AgaGVyZSwgYW5kIGNvcHkgc28g d2UgZG9uJ3QgaGF2ZSB0byBkbyB0aGlzIHR3aWNlICovCi0rICB0bXBfcGF0aHNwZWMgPSB4c3Ry ZHVwIChuZXdhcmd6WzBdKTsKLSsKLSsgIC8qIGRvIE5PVCB3YW50IHRoZSBsdC0gcHJlZml4IGhl cmUsIHNvIHVzZSBhY3R1YWxfY3dyYXBwZXJfbmFtZSAqLwotKyAgc3RyY2F0IChuZXdhcmd6WzBd LCBhY3R1YWxfY3dyYXBwZXJfbmFtZSk7Ci0rCi0rICAvKiBETyB3YW50IHRoZSBsdC0gcHJlZml4 IGhlcmUgaWYgaXQgZXhpc3RzLCBzbyB1c2UgdGFyZ2V0X25hbWUgKi8KLSsgIGx0X2FyZ3ZfemVy byA9IGx0X2V4dGVuZF9zdHIgKHRtcF9wYXRoc3BlYywgdGFyZ2V0X25hbWUsIDEpOwotKyAgWEZS RUUgKHRtcF9wYXRoc3BlYyk7Ci0rICB0bXBfcGF0aHNwZWMgPSBOVUxMOwotK0VPRgotKwotKwkg ICAgY2FzZSAkaG9zdF9vcyBpbgotKwkgICAgICBtaW5ndyopCi0rCSAgICBjYXQgPDwiRU9GIgot KyAgewotKyAgICBjaGFyKiBwOwotKyAgICB3aGlsZSAoKHAgPSBzdHJjaHIgKG5ld2FyZ3pbMF0s ICdcXCcpKSAhPSBOVUxMKQotKyAgICAgIHsKLSsJKnAgPSAnLyc7Ci0rICAgICAgfQotKyAgICB3 aGlsZSAoKHAgPSBzdHJjaHIgKGx0X2FyZ3ZfemVybywgJ1xcJykpICE9IE5VTEwpCi0rICAgICAg ewotKwkqcCA9ICcvJzsKLSsgICAgICB9Ci0rICB9Ci0rRU9GCi0rCSAgICA7OwotKwkgICAgZXNh YwotKwotKwkgICAgY2F0IDw8IkVPRiIKLSsgIFhGUkVFICh0YXJnZXRfbmFtZSk7Ci0rICBYRlJF RSAoYWN0dWFsX2N3cmFwcGVyX3BhdGgpOwotKyAgWEZSRUUgKGFjdHVhbF9jd3JhcHBlcl9uYW1l KTsKLSsKLSsgIGx0X3NldGVudiAoIkJJTl9TSCIsICJ4cGc0Iik7IC8qIGZvciBUcnU2NCAqLwot KyAgbHRfc2V0ZW52ICgiRFVBTENBU0UiLCAiMSIpOyAgLyogZm9yIE1TSyBzaCAqLwotKyAgbHRf dXBkYXRlX2xpYl9wYXRoIChMSUJfUEFUSF9WQVJOQU1FLCBMSUJfUEFUSF9WQUxVRSk7Ci0rICBs dF91cGRhdGVfZXhlX3BhdGggKEVYRV9QQVRIX1ZBUk5BTUUsIEVYRV9QQVRIX1ZBTFVFKTsKLSsK LSsgIG5ld2FyZ2M9MDsKLSsgIGZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspCi0rICAgIHsKLSsg ICAgICBpZiAoc3RybmNtcCAoYXJndltpXSwgZW52X3NldF9vcHQsIGVudl9zZXRfb3B0X2xlbikg PT0gMCkKLSsgICAgICAgIHsKLSsgICAgICAgICAgaWYgKGFyZ3ZbaV1bZW52X3NldF9vcHRfbGVu XSA9PSAnPScpCi0rICAgICAgICAgICAgewotKyAgICAgICAgICAgICAgY29uc3QgY2hhciAqcCA9 IGFyZ3ZbaV0gKyBlbnZfc2V0X29wdF9sZW4gKyAxOwotKyAgICAgICAgICAgICAgbHRfb3B0X3By b2Nlc3NfZW52X3NldCAocCk7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICBlbHNlIGlmIChh cmd2W2ldW2Vudl9zZXRfb3B0X2xlbl0gPT0gJ1wwJyAmJiBpICsgMSA8IGFyZ2MpCi0rICAgICAg ICAgICAgewotKyAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X3NldCAoYXJndlsrK2ld KTsgLyogZG9uJ3QgY29weSAqLwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgZWxzZQotKyAg ICAgICAgICAgIGx0X2ZhdGFsICgiJXMgbWlzc2luZyByZXF1aXJlZCBhcmd1bWVudCIsIGVudl9z ZXRfb3B0KTsKLSsgICAgICAgICAgY29udGludWU7Ci0rICAgICAgICB9Ci0rICAgICAgaWYgKHN0 cm5jbXAgKGFyZ3ZbaV0sIGVudl9wcmVwZW5kX29wdCwgZW52X3ByZXBlbmRfb3B0X2xlbikgPT0g MCkKLSsgICAgICAgIHsKLSsgICAgICAgICAgaWYgKGFyZ3ZbaV1bZW52X3ByZXBlbmRfb3B0X2xl bl0gPT0gJz0nKQotKyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnAg PSBhcmd2W2ldICsgZW52X3ByZXBlbmRfb3B0X2xlbiArIDE7Ci0rICAgICAgICAgICAgICBsdF9v cHRfcHJvY2Vzc19lbnZfcHJlcGVuZCAocCk7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICBl bHNlIGlmIChhcmd2W2ldW2Vudl9wcmVwZW5kX29wdF9sZW5dID09ICdcMCcgJiYgaSArIDEgPCBh cmdjKQotKyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgIGx0X29wdF9wcm9jZXNzX2Vudl9w cmVwZW5kIChhcmd2WysraV0pOyAvKiBkb24ndCBjb3B5ICovCi0rICAgICAgICAgICAgfQotKyAg ICAgICAgICBlbHNlCi0rICAgICAgICAgICAgbHRfZmF0YWwgKCIlcyBtaXNzaW5nIHJlcXVpcmVk IGFyZ3VtZW50IiwgZW52X3ByZXBlbmRfb3B0KTsKLSsgICAgICAgICAgY29udGludWU7Ci0rICAg ICAgICB9Ci0rICAgICAgaWYgKHN0cm5jbXAgKGFyZ3ZbaV0sIGVudl9hcHBlbmRfb3B0LCBlbnZf YXBwZW5kX29wdF9sZW4pID09IDApCi0rICAgICAgICB7Ci0rICAgICAgICAgIGlmIChhcmd2W2ld W2Vudl9hcHBlbmRfb3B0X2xlbl0gPT0gJz0nKQotKyAgICAgICAgICAgIHsKLSsgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKnAgPSBhcmd2W2ldICsgZW52X2FwcGVuZF9vcHRfbGVuICsgMTsKLSsg ICAgICAgICAgICAgIGx0X29wdF9wcm9jZXNzX2Vudl9hcHBlbmQgKHApOwotKyAgICAgICAgICAg IH0KLSsgICAgICAgICAgZWxzZSBpZiAoYXJndltpXVtlbnZfYXBwZW5kX29wdF9sZW5dID09ICdc MCcgJiYgaSArIDEgPCBhcmdjKQotKyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgIGx0X29w dF9wcm9jZXNzX2Vudl9hcHBlbmQgKGFyZ3ZbKytpXSk7IC8qIGRvbid0IGNvcHkgKi8KLSsgICAg ICAgICAgICB9Ci0rICAgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBsdF9mYXRhbCAoIiVzIG1p c3NpbmcgcmVxdWlyZWQgYXJndW1lbnQiLCBlbnZfYXBwZW5kX29wdCk7Ci0rICAgICAgICAgIGNv bnRpbnVlOwotKyAgICAgICAgfQotKyAgICAgIGlmIChzdHJuY21wIChhcmd2W2ldLCBsdHdyYXBw ZXJfb3B0aW9uX3ByZWZpeCwgb3B0X3ByZWZpeF9sZW4pID09IDApCi0rICAgICAgICB7Ci0rICAg ICAgICAgIC8qIGhvd2V2ZXIsIGlmIHRoZXJlIGlzIGFuIG9wdGlvbiBpbiB0aGUgTFRXUkFQUEVS X09QVElPTl9QUkVGSVgKLSsgICAgICAgICAgICAgbmFtZXNwYWNlLCBidXQgaXQgaXMgbm90IG9u ZSBvZiB0aGUgb25lcyB3ZSBrbm93IGFib3V0IGFuZAotKyAgICAgICAgICAgICBoYXZlIGFscmVh ZHkgZGVhbHQgd2l0aCwgYWJvdmUgKGlubHVkaW5nIGR1bXAtc2NyaXB0KSwgdGhlbgotKyAgICAg ICAgICAgICByZXBvcnQgYW4gZXJyb3IuIE90aGVyd2lzZSwgdGFyZ2V0cyBtaWdodCBiZWdpbiB0 byBiZWxpZXZlCi0rICAgICAgICAgICAgIHRoZXkgYXJlIGFsbG93ZWQgdG8gdXNlIG9wdGlvbnMg aW4gdGhlIExUV1JBUFBFUl9PUFRJT05fUFJFRklYCi0rICAgICAgICAgICAgIG5hbWVzcGFjZS4g VGhlIGZpcnN0IHRpbWUgYW55IHVzZXIgY29tcGxhaW5zIGFib3V0IHRoaXMsIHdlJ2xsCi0rICAg ICAgICAgICAgIG5lZWQgdG8gbWFrZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCBhIGNvbmZpZ3Vy ZS10aW1lIG9wdGlvbgotKyAgICAgICAgICAgICBvciBhIGNvbmZpZ3VyZS5hYy1zZXR0YWJsZSB2 YWx1ZS4KLSsgICAgICAgICAgICovCi0rICAgICAgICAgIGx0X2ZhdGFsICgiVW5yZWNvZ25pemVk IG9wdGlvbiBpbiAlcyBuYW1lc3BhY2U6ICclcyciLAotKyAgICAgICAgICAgICAgICAgICAgbHR3 cmFwcGVyX29wdGlvbl9wcmVmaXgsIGFyZ3ZbaV0pOwotKyAgICAgICAgfQotKyAgICAgIC8qIG90 aGVyd2lzZSAuLi4gKi8KLSsgICAgICBuZXdhcmd6WysrbmV3YXJnY10gPSB4c3RyZHVwIChhcmd2 W2ldKTsKLSsgICAgfQotKyAgbmV3YXJnelsrK25ld2FyZ2NdID0gTlVMTDsKLSsKLSsgIExUV1JB UFBFUl9ERUJVR1BSSU5URiAgICAgKCgiKG1haW4pIGx0X2FyZ3ZfemVybyA6ICVzXG4iLCAobHRf YXJndl96ZXJvID8gbHRfYXJndl96ZXJvIDogIjxOVUxMPiIpKSk7Ci0rICBmb3IgKGkgPSAwOyBp IDwgbmV3YXJnYzsgaSsrKQotKyAgICB7Ci0rICAgICAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgo IihtYWluKSBuZXdhcmd6WyVkXSAgIDogJXNcbiIsIGksIChuZXdhcmd6W2ldID8gbmV3YXJneltp XSA6ICI8TlVMTD4iKSkpOwotKyAgICB9Ci0rCi0rRU9GCi0rCi0rCSAgICBjYXNlICRob3N0X29z IGluCi0rCSAgICAgIG1pbmd3KikKLSsJCWNhdCA8PCJFT0YiCi0rICAvKiBleGVjdiBkb2Vzbid0 IGFjdHVhbGx5IHdvcmsgb24gbWluZ3cgYXMgZXhwZWN0ZWQgb24gdW5peCAqLwotKyAgcnZhbCA9 IF9zcGF3bnYgKF9QX1dBSVQsIGx0X2FyZ3ZfemVybywgKGNvbnN0IGNoYXIgKiBjb25zdCAqKSBu ZXdhcmd6KTsKLSsgIGlmIChydmFsID09IC0xKQotKyAgICB7Ci0rICAgICAgLyogZmFpbGVkIHRv IHN0YXJ0IHByb2Nlc3MgKi8KLSsgICAgICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4p IGZhaWxlZCB0byBsYXVuY2ggdGFyZ2V0IFwiJXNcIjogZXJybm8gPSAlZFxuIiwgbHRfYXJndl96 ZXJvLCBlcnJubykpOwotKyAgICAgIHJldHVybiAxMjc7Ci0rICAgIH0KLSsgIHJldHVybiBydmFs OwotK0VPRgotKwkJOzsKLSsJICAgICAgKikKLSsJCWNhdCA8PCJFT0YiCi0rICBleGVjdiAobHRf YXJndl96ZXJvLCBuZXdhcmd6KTsKLSsgIHJldHVybiBydmFsOyAvKiA9MTI3LCBidXQgYXZvaWRz IHVudXNlZCB2YXJpYWJsZSB3YXJuaW5nICovCi0rRU9GCi0rCQk7OwotKwkgICAgZXNhYwotKwot KwkgICAgY2F0IDw8IkVPRiIKLSt9Ci0rCi0rdm9pZCAqCi0reG1hbGxvYyAoc2l6ZV90IG51bSkK LSt7Ci0rICB2b2lkICpwID0gKHZvaWQgKikgbWFsbG9jIChudW0pOwotKyAgaWYgKCFwKQotKyAg ICBsdF9mYXRhbCAoIk1lbW9yeSBleGhhdXN0ZWQiKTsKLSsKLSsgIHJldHVybiBwOwotK30KLSsK LStjaGFyICoKLSt4c3RyZHVwIChjb25zdCBjaGFyICpzdHJpbmcpCi0rewotKyAgcmV0dXJuIHN0 cmluZyA/IHN0cmNweSAoKGNoYXIgKikgeG1hbGxvYyAoc3RybGVuIChzdHJpbmcpICsgMSksCi0r CQkJICBzdHJpbmcpIDogTlVMTDsKLSt9Ci0rCi0rY29uc3QgY2hhciAqCi0rYmFzZV9uYW1lIChj b25zdCBjaGFyICpuYW1lKQotK3sKLSsgIGNvbnN0IGNoYXIgKmJhc2U7Ci0rCi0rI2lmIGRlZmlu ZWQgKEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQotKyAgLyogU2tpcCBvdmVyIHRoZSBkaXNr IG5hbWUgaW4gTVNET1MgcGF0aG5hbWVzLiAqLwotKyAgaWYgKGlzYWxwaGEgKCh1bnNpZ25lZCBj aGFyKSBuYW1lWzBdKSAmJiBuYW1lWzFdID09ICc6JykKLSsgICAgbmFtZSArPSAyOwotKyNlbmRp ZgotKwotKyAgZm9yIChiYXNlID0gbmFtZTsgKm5hbWU7IG5hbWUrKykKLSsgICAgaWYgKElTX0RJ Ul9TRVBBUkFUT1IgKCpuYW1lKSkKLSsgICAgICBiYXNlID0gbmFtZSArIDE7Ci0rICByZXR1cm4g YmFzZTsKLSt9Ci0rCi0raW50Ci0rY2hlY2tfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0aCkK LSt7Ci0rICBzdHJ1Y3Qgc3RhdCBzdDsKLSsKLSsgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIo Y2hlY2tfZXhlY3V0YWJsZSkgIDogJXNcbiIsCi0rCQkJICBwYXRoID8gKCpwYXRoID8gcGF0aCA6 ICJFTVBUWSEiKSA6ICJOVUxMISIpKTsKLSsgIGlmICgoIXBhdGgpIHx8ICghKnBhdGgpKQotKyAg ICByZXR1cm4gMDsKLSsKLSsgIGlmICgoc3RhdCAocGF0aCwgJnN0KSA+PSAwKQotKyAgICAgICYm IChzdC5zdF9tb2RlICYgKFNfSVhVU1IgfCBTX0lYR1JQIHwgU19JWE9USCkpKQotKyAgICByZXR1 cm4gMTsKLSsgIGVsc2UKLSsgICAgcmV0dXJuIDA7Ci0rfQotKwotK2ludAotK21ha2VfZXhlY3V0 YWJsZSAoY29uc3QgY2hhciAqcGF0aCkKLSt7Ci0rICBpbnQgcnZhbCA9IDA7Ci0rICBzdHJ1Y3Qg c3RhdCBzdDsKLSsKLSsgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFrZV9leGVjdXRhYmxl KSAgIDogJXNcbiIsCi0rCQkJICBwYXRoID8gKCpwYXRoID8gcGF0aCA6ICJFTVBUWSEiKSA6ICJO VUxMISIpKTsKLSsgIGlmICgoIXBhdGgpIHx8ICghKnBhdGgpKQotKyAgICByZXR1cm4gMDsKLSsK LSsgIGlmIChzdGF0IChwYXRoLCAmc3QpID49IDApCi0rICAgIHsKLSsgICAgICBydmFsID0gY2ht b2QgKHBhdGgsIHN0LnN0X21vZGUgfCBTX0lYT1RIIHwgU19JWEdSUCB8IFNfSVhVU1IpOwotKyAg ICB9Ci0rICByZXR1cm4gcnZhbDsKLSt9Ci0rCi0rLyogU2VhcmNoZXMgZm9yIHRoZSBmdWxsIHBh dGggb2YgdGhlIHdyYXBwZXIuICBSZXR1cm5zCi0rICAgbmV3bHkgYWxsb2NhdGVkIGZ1bGwgcGF0 aCBuYW1lIGlmIGZvdW5kLCBOVUxMIG90aGVyd2lzZQotKyAgIERvZXMgbm90IGNoYXNlIHN5bWxp bmtzLCBldmVuIG9uIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQgdGhlbS4KLSsqLwotK2NoYXIgKgot K2ZpbmRfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqd3JhcHBlcikKLSt7Ci0rICBpbnQgaGFzX3Ns YXNoID0gMDsKLSsgIGNvbnN0IGNoYXIgKnA7Ci0rICBjb25zdCBjaGFyICpwX25leHQ7Ci0rICAv KiBzdGF0aWMgYnVmZmVyIGZvciBnZXRjd2QgKi8KLSsgIGNoYXIgdG1wW0xUX1BBVEhNQVggKyAx XTsKLSsgIGludCB0bXBfbGVuOwotKyAgY2hhciAqY29uY2F0X25hbWU7Ci0rCi0rICBMVFdSQVBQ RVJfREVCVUdQUklOVEYgKCgiKGZpbmRfZXhlY3V0YWJsZSkgICA6ICVzXG4iLAotKwkJCSAgd3Jh cHBlciA/ICgqd3JhcHBlciA/IHdyYXBwZXIgOiAiRU1QVFkhIikgOiAiTlVMTCEiKSk7Ci0rCi0r ICBpZiAoKHdyYXBwZXIgPT0gTlVMTCkgfHwgKCp3cmFwcGVyID09ICdcMCcpKQotKyAgICByZXR1 cm4gTlVMTDsKLSsKLSsgIC8qIEFic29sdXRlIHBhdGg/ICovCi0rI2lmIGRlZmluZWQgKEhBVkVf RE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQotKyAgaWYgKGlzYWxwaGEgKCh1bnNpZ25lZCBjaGFyKSB3 cmFwcGVyWzBdKSAmJiB3cmFwcGVyWzFdID09ICc6JykKLSsgICAgewotKyAgICAgIGNvbmNhdF9u YW1lID0geHN0cmR1cCAod3JhcHBlcik7Ci0rICAgICAgaWYgKGNoZWNrX2V4ZWN1dGFibGUgKGNv bmNhdF9uYW1lKSkKLSsJcmV0dXJuIGNvbmNhdF9uYW1lOwotKyAgICAgIFhGUkVFIChjb25jYXRf bmFtZSk7Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgewotKyNlbmRpZgotKyAgICAgIGlmIChJU19E SVJfU0VQQVJBVE9SICh3cmFwcGVyWzBdKSkKLSsJewotKwkgIGNvbmNhdF9uYW1lID0geHN0cmR1 cCAod3JhcHBlcik7Ci0rCSAgaWYgKGNoZWNrX2V4ZWN1dGFibGUgKGNvbmNhdF9uYW1lKSkKLSsJ ICAgIHJldHVybiBjb25jYXRfbmFtZTsKLSsJICBYRlJFRSAoY29uY2F0X25hbWUpOwotKwl9Ci0r I2lmIGRlZmluZWQgKEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQotKyAgICB9Ci0rI2VuZGlm Ci0rCi0rICBmb3IgKHAgPSB3cmFwcGVyOyAqcDsgcCsrKQotKyAgICBpZiAoKnAgPT0gJy8nKQot KyAgICAgIHsKLSsJaGFzX3NsYXNoID0gMTsKLSsJYnJlYWs7Ci0rICAgICAgfQotKyAgaWYgKCFo YXNfc2xhc2gpCi0rICAgIHsKLSsgICAgICAvKiBubyBzbGFzaGVzOyBzZWFyY2ggUEFUSCAqLwot KyAgICAgIGNvbnN0IGNoYXIgKnBhdGggPSBnZXRlbnYgKCJQQVRIIik7Ci0rICAgICAgaWYgKHBh dGggIT0gTlVMTCkKLSsJewotKwkgIGZvciAocCA9IHBhdGg7ICpwOyBwID0gcF9uZXh0KQotKwkg ICAgewotKwkgICAgICBjb25zdCBjaGFyICpxOwotKwkgICAgICBzaXplX3QgcF9sZW47Ci0rCSAg ICAgIGZvciAocSA9IHA7ICpxOyBxKyspCi0rCQlpZiAoSVNfUEFUSF9TRVBBUkFUT1IgKCpxKSkK LSsJCSAgYnJlYWs7Ci0rCSAgICAgIHBfbGVuID0gcSAtIHA7Ci0rCSAgICAgIHBfbmV4dCA9ICgq cSA9PSAnXDAnID8gcSA6IHEgKyAxKTsKLSsJICAgICAgaWYgKHBfbGVuID09IDApCi0rCQl7Ci0r CQkgIC8qIGVtcHR5IHBhdGg6IGN1cnJlbnQgZGlyZWN0b3J5ICovCi0rCQkgIGlmIChnZXRjd2Qg KHRtcCwgTFRfUEFUSE1BWCkgPT0gTlVMTCkKLSsJCSAgICBsdF9mYXRhbCAoImdldGN3ZCBmYWls ZWQiKTsKLSsJCSAgdG1wX2xlbiA9IHN0cmxlbiAodG1wKTsKLSsJCSAgY29uY2F0X25hbWUgPQot KwkJICAgIFhNQUxMT0MgKGNoYXIsIHRtcF9sZW4gKyAxICsgc3RybGVuICh3cmFwcGVyKSArIDEp OwotKwkJICBtZW1jcHkgKGNvbmNhdF9uYW1lLCB0bXAsIHRtcF9sZW4pOwotKwkJICBjb25jYXRf bmFtZVt0bXBfbGVuXSA9ICcvJzsKLSsJCSAgc3RyY3B5IChjb25jYXRfbmFtZSArIHRtcF9sZW4g KyAxLCB3cmFwcGVyKTsKLSsJCX0KLSsJICAgICAgZWxzZQotKwkJewotKwkJICBjb25jYXRfbmFt ZSA9Ci0rCQkgICAgWE1BTExPQyAoY2hhciwgcF9sZW4gKyAxICsgc3RybGVuICh3cmFwcGVyKSAr IDEpOwotKwkJICBtZW1jcHkgKGNvbmNhdF9uYW1lLCBwLCBwX2xlbik7Ci0rCQkgIGNvbmNhdF9u YW1lW3BfbGVuXSA9ICcvJzsKLSsJCSAgc3RyY3B5IChjb25jYXRfbmFtZSArIHBfbGVuICsgMSwg d3JhcHBlcik7Ci0rCQl9Ci0rCSAgICAgIGlmIChjaGVja19leGVjdXRhYmxlIChjb25jYXRfbmFt ZSkpCi0rCQlyZXR1cm4gY29uY2F0X25hbWU7Ci0rCSAgICAgIFhGUkVFIChjb25jYXRfbmFtZSk7 Ci0rCSAgICB9Ci0rCX0KLSsgICAgICAvKiBub3QgZm91bmQgaW4gUEFUSDsgYXNzdW1lIGN1cmRp ciAqLwotKyAgICB9Ci0rICAvKiBSZWxhdGl2ZSBwYXRoIHwgbm90IGZvdW5kIGluIHBhdGg6IHBy ZXBlbmQgY3dkICovCi0rICBpZiAoZ2V0Y3dkICh0bXAsIExUX1BBVEhNQVgpID09IE5VTEwpCi0r ICAgIGx0X2ZhdGFsICgiZ2V0Y3dkIGZhaWxlZCIpOwotKyAgdG1wX2xlbiA9IHN0cmxlbiAodG1w KTsKLSsgIGNvbmNhdF9uYW1lID0gWE1BTExPQyAoY2hhciwgdG1wX2xlbiArIDEgKyBzdHJsZW4g KHdyYXBwZXIpICsgMSk7Ci0rICBtZW1jcHkgKGNvbmNhdF9uYW1lLCB0bXAsIHRtcF9sZW4pOwot KyAgY29uY2F0X25hbWVbdG1wX2xlbl0gPSAnLyc7Ci0rICBzdHJjcHkgKGNvbmNhdF9uYW1lICsg dG1wX2xlbiArIDEsIHdyYXBwZXIpOwotKwotKyAgaWYgKGNoZWNrX2V4ZWN1dGFibGUgKGNvbmNh dF9uYW1lKSkKLSsgICAgcmV0dXJuIGNvbmNhdF9uYW1lOwotKyAgWEZSRUUgKGNvbmNhdF9uYW1l KTsKLSsgIHJldHVybiBOVUxMOwotK30KLSsKLStjaGFyICoKLStjaGFzZV9zeW1saW5rcyAoY29u c3QgY2hhciAqcGF0aHNwZWMpCi0rewotKyNpZm5kZWYgU19JU0xOSwotKyAgcmV0dXJuIHhzdHJk dXAgKHBhdGhzcGVjKTsKLSsjZWxzZQotKyAgY2hhciBidWZbTFRfUEFUSE1BWF07Ci0rICBzdHJ1 Y3Qgc3RhdCBzOwotKyAgY2hhciAqdG1wX3BhdGhzcGVjID0geHN0cmR1cCAocGF0aHNwZWMpOwot KyAgY2hhciAqcDsKLSsgIGludCBoYXNfc3ltbGlua3MgPSAwOwotKyAgd2hpbGUgKHN0cmxlbiAo dG1wX3BhdGhzcGVjKSAmJiAhaGFzX3N5bWxpbmtzKQotKyAgICB7Ci0rICAgICAgTFRXUkFQUEVS X0RFQlVHUFJJTlRGICgoImNoZWNraW5nIHBhdGggY29tcG9uZW50IGZvciBzeW1saW5rczogJXNc biIsCi0rCQkJICAgICAgdG1wX3BhdGhzcGVjKSk7Ci0rICAgICAgaWYgKGxzdGF0ICh0bXBfcGF0 aHNwZWMsICZzKSA9PSAwKQotKwl7Ci0rCSAgaWYgKFNfSVNMTksgKHMuc3RfbW9kZSkgIT0gMCkK LSsJICAgIHsKLSsJICAgICAgaGFzX3N5bWxpbmtzID0gMTsKLSsJICAgICAgYnJlYWs7Ci0rCSAg ICB9Ci0rCi0rCSAgLyogc2VhcmNoIGJhY2t3YXJkcyBmb3IgbGFzdCBESVJfU0VQQVJBVE9SICov Ci0rCSAgcCA9IHRtcF9wYXRoc3BlYyArIHN0cmxlbiAodG1wX3BhdGhzcGVjKSAtIDE7Ci0rCSAg d2hpbGUgKChwID4gdG1wX3BhdGhzcGVjKSAmJiAoIUlTX0RJUl9TRVBBUkFUT1IgKCpwKSkpCi0r CSAgICBwLS07Ci0rCSAgaWYgKChwID09IHRtcF9wYXRoc3BlYykgJiYgKCFJU19ESVJfU0VQQVJB VE9SICgqcCkpKQotKwkgICAgewotKwkgICAgICAvKiBubyBtb3JlIERJUl9TRVBBUkFUT1JTIGxl ZnQgKi8KLSsJICAgICAgYnJlYWs7Ci0rCSAgICB9Ci0rCSAgKnAgPSAnXDAnOwotKwl9Ci0rICAg ICAgZWxzZQotKwl7Ci0rCSAgY2hhciAqZXJyc3RyID0gc3RyZXJyb3IgKGVycm5vKTsKLSsJICBs dF9mYXRhbCAoIkVycm9yIGFjY2Vzc2luZyBmaWxlICVzICglcykiLCB0bXBfcGF0aHNwZWMsIGVy cnN0cik7Ci0rCX0KLSsgICAgfQotKyAgWEZSRUUgKHRtcF9wYXRoc3BlYyk7Ci0rCi0rICBpZiAo IWhhc19zeW1saW5rcykKLSsgICAgewotKyAgICAgIHJldHVybiB4c3RyZHVwIChwYXRoc3BlYyk7 Ci0rICAgIH0KLSsKLSsgIHRtcF9wYXRoc3BlYyA9IHJlYWxwYXRoIChwYXRoc3BlYywgYnVmKTsK LSsgIGlmICh0bXBfcGF0aHNwZWMgPT0gMCkKLSsgICAgewotKyAgICAgIGx0X2ZhdGFsICgiQ291 bGQgbm90IGZvbGxvdyBzeW1saW5rcyBmb3IgJXMiLCBwYXRoc3BlYyk7Ci0rICAgIH0KLSsgIHJl dHVybiB4c3RyZHVwICh0bXBfcGF0aHNwZWMpOwotKyNlbmRpZgotK30KLSsKLStjaGFyICoKLStz dHJlbmR6YXAgKGNoYXIgKnN0ciwgY29uc3QgY2hhciAqcGF0KQotK3sKLSsgIHNpemVfdCBsZW4s IHBhdGxlbjsKLSsKLSsgIGFzc2VydCAoc3RyICE9IE5VTEwpOwotKyAgYXNzZXJ0IChwYXQgIT0g TlVMTCk7Ci0rCi0rICBsZW4gPSBzdHJsZW4gKHN0cik7Ci0rICBwYXRsZW4gPSBzdHJsZW4gKHBh dCk7Ci0rCi0rICBpZiAocGF0bGVuIDw9IGxlbikKLSsgICAgewotKyAgICAgIHN0ciArPSBsZW4g LSBwYXRsZW47Ci0rICAgICAgaWYgKHN0cmNtcCAoc3RyLCBwYXQpID09IDApCi0rCSpzdHIgPSAn XDAnOwotKyAgICB9Ci0rICByZXR1cm4gc3RyOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2x0X2Vy cm9yX2NvcmUgKGludCBleGl0X3N0YXR1cywgY29uc3QgY2hhciAqbW9kZSwKLSsJICAgICAgIGNv bnN0IGNoYXIgKm1lc3NhZ2UsIHZhX2xpc3QgYXApCi0rewotKyAgZnByaW50ZiAoc3RkZXJyLCAi JXM6ICVzOiAiLCBwcm9ncmFtX25hbWUsIG1vZGUpOwotKyAgdmZwcmludGYgKHN0ZGVyciwgbWVz c2FnZSwgYXApOwotKyAgZnByaW50ZiAoc3RkZXJyLCAiLlxuIik7Ci0rCi0rICBpZiAoZXhpdF9z dGF0dXMgPj0gMCkKLSsgICAgZXhpdCAoZXhpdF9zdGF0dXMpOwotK30KLSsKLSt2b2lkCi0rbHRf ZmF0YWwgKGNvbnN0IGNoYXIgKm1lc3NhZ2UsIC4uLikKLSt7Ci0rICB2YV9saXN0IGFwOwotKyAg dmFfc3RhcnQgKGFwLCBtZXNzYWdlKTsKLSsgIGx0X2Vycm9yX2NvcmUgKEVYSVRfRkFJTFVSRSwg IkZBVEFMIiwgbWVzc2FnZSwgYXApOwotKyAgdmFfZW5kIChhcCk7Ci0rfQotKwotK3ZvaWQKLSts dF9zZXRlbnYgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQotK3sKLSsgIExU V1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobHRfc2V0ZW52KSBzZXR0aW5nICclcycgdG8gJyVzJ1xu IiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lID8gbmFtZSA6ICI8TlVMTD4iKSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA/IHZhbHVlIDogIjxOVUxMPiIpKSk7 Ci0rICB7Ci0rI2lmZGVmIEhBVkVfU0VURU5WCi0rICAgIC8qIGFsd2F5cyBtYWtlIGEgY29weSwg Zm9yIGNvbnNpc3RlbmN5IHdpdGggIUhBVkVfU0VURU5WICovCi0rICAgIGNoYXIgKnN0ciA9IHhz dHJkdXAgKHZhbHVlKTsKLSsgICAgc2V0ZW52IChuYW1lLCBzdHIsIDEpOwotKyNlbHNlCi0rICAg IGludCBsZW4gPSBzdHJsZW4gKG5hbWUpICsgMSArIHN0cmxlbiAodmFsdWUpICsgMTsKLSsgICAg Y2hhciAqc3RyID0gWE1BTExPQyAoY2hhciwgbGVuKTsKLSsgICAgc3ByaW50ZiAoc3RyLCAiJXM9 JXMiLCBuYW1lLCB2YWx1ZSk7Ci0rICAgIGlmIChwdXRlbnYgKHN0cikgIT0gRVhJVF9TVUNDRVNT KQotKyAgICAgIHsKLSsgICAgICAgIFhGUkVFIChzdHIpOwotKyAgICAgIH0KLSsjZW5kaWYKLSsg IH0KLSt9Ci0rCi0rY2hhciAqCi0rbHRfZXh0ZW5kX3N0ciAoY29uc3QgY2hhciAqb3JpZ192YWx1 ZSwgY29uc3QgY2hhciAqYWRkLCBpbnQgdG9fZW5kKQotK3sKLSsgIGNoYXIgKm5ld192YWx1ZTsK LSsgIGlmIChvcmlnX3ZhbHVlICYmICpvcmlnX3ZhbHVlKQotKyAgICB7Ci0rICAgICAgaW50IG9y aWdfdmFsdWVfbGVuID0gc3RybGVuIChvcmlnX3ZhbHVlKTsKLSsgICAgICBpbnQgYWRkX2xlbiA9 IHN0cmxlbiAoYWRkKTsKLSsgICAgICBuZXdfdmFsdWUgPSBYTUFMTE9DIChjaGFyLCBhZGRfbGVu ICsgb3JpZ192YWx1ZV9sZW4gKyAxKTsKLSsgICAgICBpZiAodG9fZW5kKQotKyAgICAgICAgewot KyAgICAgICAgICBzdHJjcHkgKG5ld192YWx1ZSwgb3JpZ192YWx1ZSk7Ci0rICAgICAgICAgIHN0 cmNweSAobmV3X3ZhbHVlICsgb3JpZ192YWx1ZV9sZW4sIGFkZCk7Ci0rICAgICAgICB9Ci0rICAg ICAgZWxzZQotKyAgICAgICAgewotKyAgICAgICAgICBzdHJjcHkgKG5ld192YWx1ZSwgYWRkKTsK LSsgICAgICAgICAgc3RyY3B5IChuZXdfdmFsdWUgKyBhZGRfbGVuLCBvcmlnX3ZhbHVlKTsKLSsg ICAgICAgIH0KLSsgICAgfQotKyAgZWxzZQotKyAgICB7Ci0rICAgICAgbmV3X3ZhbHVlID0geHN0 cmR1cCAoYWRkKTsKLSsgICAgfQotKyAgcmV0dXJuIG5ld192YWx1ZTsKLSt9Ci0rCi0raW50Ci0r bHRfc3BsaXRfbmFtZV92YWx1ZSAoY29uc3QgY2hhciAqYXJnLCBjaGFyKiogbmFtZSwgY2hhcioq IHZhbHVlKQotK3sKLSsgIGNvbnN0IGNoYXIgKnA7Ci0rICBpbnQgbGVuOwotKyAgaWYgKCFhcmcg fHwgISphcmcpCi0rICAgIHJldHVybiAxOwotKwotKyAgcCA9IHN0cmNociAoYXJnLCAoaW50KSc9 Jyk7Ci0rCi0rICBpZiAoIXApCi0rICAgIHJldHVybiAxOwotKwotKyAgKnZhbHVlID0geHN0cmR1 cCAoKytwKTsKLSsKLSsgIGxlbiA9IHN0cmxlbiAoYXJnKSAtIHN0cmxlbiAoKnZhbHVlKTsKLSsg ICpuYW1lID0gWE1BTExPQyAoY2hhciwgbGVuKTsKLSsgIHN0cm5jcHkgKCpuYW1lLCBhcmcsIGxl bi0xKTsKLSsgICgqbmFtZSlbbGVuIC0gMV0gPSAnXDAnOwotKwotKyAgcmV0dXJuIDA7Ci0rfQot KwotK3ZvaWQKLStsdF9vcHRfcHJvY2Vzc19lbnZfc2V0IChjb25zdCBjaGFyICphcmcpCi0rewot KyAgY2hhciAqbmFtZSA9IE5VTEw7Ci0rICBjaGFyICp2YWx1ZSA9IE5VTEw7Ci0rCi0rICBpZiAo bHRfc3BsaXRfbmFtZV92YWx1ZSAoYXJnLCAmbmFtZSwgJnZhbHVlKSAhPSAwKQotKyAgICB7Ci0r ICAgICAgWEZSRUUgKG5hbWUpOwotKyAgICAgIFhGUkVFICh2YWx1ZSk7Ci0rICAgICAgbHRfZmF0 YWwgKCJiYWQgYXJndW1lbnQgZm9yICVzOiAnJXMnIiwgZW52X3NldF9vcHQsIGFyZyk7Ci0rICAg IH0KLSsKLSsgIGx0X3NldGVudiAobmFtZSwgdmFsdWUpOwotKyAgWEZSRUUgKG5hbWUpOwotKyAg WEZSRUUgKHZhbHVlKTsKLSt9Ci0rCi0rdm9pZAotK2x0X29wdF9wcm9jZXNzX2Vudl9wcmVwZW5k IChjb25zdCBjaGFyICphcmcpCi0rewotKyAgY2hhciAqbmFtZSA9IE5VTEw7Ci0rICBjaGFyICp2 YWx1ZSA9IE5VTEw7Ci0rICBjaGFyICpuZXdfdmFsdWUgPSBOVUxMOwotKwotKyAgaWYgKGx0X3Nw bGl0X25hbWVfdmFsdWUgKGFyZywgJm5hbWUsICZ2YWx1ZSkgIT0gMCkKLSsgICAgewotKyAgICAg IFhGUkVFIChuYW1lKTsKLSsgICAgICBYRlJFRSAodmFsdWUpOwotKyAgICAgIGx0X2ZhdGFsICgi YmFkIGFyZ3VtZW50IGZvciAlczogJyVzJyIsIGVudl9wcmVwZW5kX29wdCwgYXJnKTsKLSsgICAg fQotKwotKyAgbmV3X3ZhbHVlID0gbHRfZXh0ZW5kX3N0ciAoZ2V0ZW52IChuYW1lKSwgdmFsdWUs IDApOwotKyAgbHRfc2V0ZW52IChuYW1lLCBuZXdfdmFsdWUpOwotKyAgWEZSRUUgKG5ld192YWx1 ZSk7Ci0rICBYRlJFRSAobmFtZSk7Ci0rICBYRlJFRSAodmFsdWUpOwotK30KLSsKLSt2b2lkCi0r bHRfb3B0X3Byb2Nlc3NfZW52X2FwcGVuZCAoY29uc3QgY2hhciAqYXJnKQotK3sKLSsgIGNoYXIg Km5hbWUgPSBOVUxMOwotKyAgY2hhciAqdmFsdWUgPSBOVUxMOwotKyAgY2hhciAqbmV3X3ZhbHVl ID0gTlVMTDsKLSsKLSsgIGlmIChsdF9zcGxpdF9uYW1lX3ZhbHVlIChhcmcsICZuYW1lLCAmdmFs dWUpICE9IDApCi0rICAgIHsKLSsgICAgICBYRlJFRSAobmFtZSk7Ci0rICAgICAgWEZSRUUgKHZh bHVlKTsKLSsgICAgICBsdF9mYXRhbCAoImJhZCBhcmd1bWVudCBmb3IgJXM6ICclcyciLCBlbnZf YXBwZW5kX29wdCwgYXJnKTsKLSsgICAgfQotKwotKyAgbmV3X3ZhbHVlID0gbHRfZXh0ZW5kX3N0 ciAoZ2V0ZW52IChuYW1lKSwgdmFsdWUsIDEpOwotKyAgbHRfc2V0ZW52IChuYW1lLCBuZXdfdmFs dWUpOwotKyAgWEZSRUUgKG5ld192YWx1ZSk7Ci0rICBYRlJFRSAobmFtZSk7Ci0rICBYRlJFRSAo dmFsdWUpOwotK30KLSsKLSt2b2lkCi0rbHRfdXBkYXRlX2V4ZV9wYXRoIChjb25zdCBjaGFyICpu YW1lLCBjb25zdCBjaGFyICp2YWx1ZSkKLSt7Ci0rICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgi KGx0X3VwZGF0ZV9leGVfcGF0aCkgbW9kaWZ5aW5nICclcycgYnkgcHJlcGVuZGluZyAnJXMnXG4i LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUgPyBuYW1lIDogIjxOVUxMPiIpLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlID8gdmFsdWUgOiAiPE5VTEw+IikpKTsK LSsKLSsgIGlmIChuYW1lICYmICpuYW1lICYmIHZhbHVlICYmICp2YWx1ZSkKLSsgICAgewotKyAg ICAgIGNoYXIgKm5ld192YWx1ZSA9IGx0X2V4dGVuZF9zdHIgKGdldGVudiAobmFtZSksIHZhbHVl LCAwKTsKLSsgICAgICAvKiBzb21lIHN5c3RlbXMgY2FuJ3QgY29wZSB3aXRoIGEgJzonLXRlcm1p bmF0ZWQgcGF0aCAjJyAqLwotKyAgICAgIGludCBsZW4gPSBzdHJsZW4gKG5ld192YWx1ZSk7Ci0r ICAgICAgd2hpbGUgKCgobGVuID0gc3RybGVuIChuZXdfdmFsdWUpKSA+IDApICYmIElTX1BBVEhf U0VQQVJBVE9SIChuZXdfdmFsdWVbbGVuLTFdKSkKLSsgICAgICAgIHsKLSsgICAgICAgICAgbmV3 X3ZhbHVlW2xlbi0xXSA9ICdcMCc7Ci0rICAgICAgICB9Ci0rICAgICAgbHRfc2V0ZW52IChuYW1l LCBuZXdfdmFsdWUpOwotKyAgICAgIFhGUkVFIChuZXdfdmFsdWUpOwotKyAgICB9Ci0rfQotKwot K3ZvaWQKLStsdF91cGRhdGVfbGliX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIg KnZhbHVlKQotK3sKLSsgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobHRfdXBkYXRlX2xpYl9w YXRoKSBtb2RpZnlpbmcgJyVzJyBieSBwcmVwZW5kaW5nICclcydcbiIsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAobmFtZSA/IG5hbWUgOiAiPE5VTEw+IiksCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAodmFsdWUgPyB2YWx1ZSA6ICI8TlVMTD4iKSkpOwotKwotKyAgaWYgKG5hbWUg JiYgKm5hbWUgJiYgdmFsdWUgJiYgKnZhbHVlKQotKyAgICB7Ci0rICAgICAgY2hhciAqbmV3X3Zh bHVlID0gbHRfZXh0ZW5kX3N0ciAoZ2V0ZW52IChuYW1lKSwgdmFsdWUsIDApOwotKyAgICAgIGx0 X3NldGVudiAobmFtZSwgbmV3X3ZhbHVlKTsKLSsgICAgICBYRlJFRSAobmV3X3ZhbHVlKTsKLSsg ICAgfQotK30KLSsKLSsKLStFT0YKLSt9Ci0rIyBlbmQ6IGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9z cmMKLSsKLSsjIGZ1bmNfbW9kZV9saW5rIGFyZy4uLgotK2Z1bmNfbW9kZV9saW5rICgpCi0rewot KyAgICAkb3B0X2RlYnVnCi0rICAgIGNhc2UgJGhvc3QgaW4KLSsgICAgKi0qLWN5Z3dpbiogfCAq LSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLWNlZ2NjKikKLSsgICAgICAjIEl0 IGlzIGltcG9zc2libGUgdG8gbGluayBhIGRsbCB3aXRob3V0IHRoaXMgc2V0dGluZywgYW5kCi0r ICAgICAgIyB3ZSBzaG91bGRuJ3QgZm9yY2UgdGhlIG1ha2VmaWxlIG1haW50YWluZXIgdG8gZmln dXJlIG91dAotKyAgICAgICMgd2hpY2ggc3lzdGVtIHdlIGFyZSBjb21waWxpbmcgZm9yIGluIG9y ZGVyIHRvIHBhc3MgYW4gZXh0cmEKLSsgICAgICAjIGZsYWcgZm9yIGV2ZXJ5IGxpYnRvb2wgaW52 b2NhdGlvbi4KLSsgICAgICAjIGFsbG93X3VuZGVmaW5lZD1ubwotKwotKyAgICAgICMgRklYTUU6 IFVuZm9ydHVuYXRlbHksIHRoZXJlIGFyZSBwcm9ibGVtcyB3aXRoIHRoZSBhYm92ZSB3aGVuIHRy eWluZwotKyAgICAgICMgdG8gbWFrZSBhIGRsbCB3aGljaCBoYXMgdW5kZWZpbmVkIHN5bWJvbHMs IGluIHdoaWNoIGNhc2Ugbm90Ci0rICAgICAgIyBldmVuIGEgc3RhdGljIGxpYnJhcnkgaXMgYnVp bHQuICBGb3Igbm93LCB3ZSBuZWVkIHRvIHNwZWNpZnkKLSsgICAgICAjIC1uby11bmRlZmluZWQg b24gdGhlIGxpYnRvb2wgbGluayBsaW5lIHdoZW4gd2UgY2FuIGJlIGNlcnRhaW4KLSsgICAgICAj IHRoYXQgYWxsIHN5bWJvbHMgYXJlIHNhdGlzZmllZCwgb3RoZXJ3aXNlIHdlIGdldCBhIHN0YXRp YyBsaWJyYXJ5LgotKyAgICAgIGFsbG93X3VuZGVmaW5lZD15ZXMKLSsgICAgICA7OwotKyAgICAq KQotKyAgICAgIGFsbG93X3VuZGVmaW5lZD15ZXMKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAg IGxpYnRvb2xfYXJncz0kbm9ub3B0Ci0rICAgIGJhc2VfY29tcGlsZT0iJG5vbm9wdCAkQCIKLSsg ICAgY29tcGlsZV9jb21tYW5kPSRub25vcHQKLSsgICAgZmluYWxpemVfY29tbWFuZD0kbm9ub3B0 Ci0rCi0rICAgIGNvbXBpbGVfcnBhdGg9Ci0rICAgIGZpbmFsaXplX3JwYXRoPQotKyAgICBjb21w aWxlX3NobGlicGF0aD0KLSsgICAgZmluYWxpemVfc2hsaWJwYXRoPQotKyAgICBjb252ZW5pZW5j ZT0KLSsgICAgb2xkX2NvbnZlbmllbmNlPQotKyAgICBkZXBsaWJzPQotKyAgICBvbGRfZGVwbGli cz0KLSsgICAgY29tcGlsZXJfZmxhZ3M9Ci0rICAgIGxpbmtlcl9mbGFncz0KLSsgICAgZGxsc2Vh cmNocGF0aD0KLSsgICAgbGliX3NlYXJjaF9wYXRoPWBwd2RgCi0rICAgIGluc3RfcHJlZml4X2Rp cj0KLSsgICAgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9Ci0rCi0rICAgIGF2b2lkX3ZlcnNp b249bm8KLSsgICAgZGxmaWxlcz0KLSsgICAgZGxwcmVmaWxlcz0KLSsgICAgZGxzZWxmPW5vCi0r ICAgIGV4cG9ydF9keW5hbWljPW5vCi0rICAgIGV4cG9ydF9zeW1ib2xzPQotKyAgICBleHBvcnRf c3ltYm9sc19yZWdleD0KLSsgICAgZ2VuZXJhdGVkPQotKyAgICBsaWJvYmpzPQotKyAgICBsdGxp YnM9Ci0rICAgIG1vZHVsZT1ubwotKyAgICBub19pbnN0YWxsPW5vCi0rICAgIG9ianM9Ci0rICAg IG5vbl9waWNfb2JqZWN0cz0KLSsgICAgcHJlY2lvdXNfZmlsZXNfcmVnZXg9Ci0rICAgIHByZWZl cl9zdGF0aWNfbGlicz1ubwotKyAgICBwcmVsb2FkPW5vCi0rICAgIHByZXY9Ci0rICAgIHByZXZh cmc9Ci0rICAgIHJlbGVhc2U9Ci0rICAgIHJwYXRoPQotKyAgICB4cnBhdGg9Ci0rICAgIHBlcm1f cnBhdGg9Ci0rICAgIHRlbXBfcnBhdGg9Ci0rICAgIHRocmVhZF9zYWZlPW5vCi0rICAgIHZpbmZv PQotKyAgICB2aW5mb19udW1iZXI9bm8KLSsgICAgd2Vha19saWJzPQotKyAgICBzaW5nbGVfbW9k dWxlPSIke3dsfS1zaW5nbGVfbW9kdWxlIgotKyAgICBmdW5jX2luZmVyX3RhZyAkYmFzZV9jb21w aWxlCi0rCi0rICAgICMgV2UgbmVlZCB0byBrbm93IC1zdGF0aWMsIHRvIGdldCB0aGUgcmlnaHQg b3V0cHV0IGZpbGVuYW1lcy4KLSsgICAgZm9yIGFyZwotKyAgICBkbwotKyAgICAgIGNhc2UgJGFy ZyBpbgotKyAgICAgIC1zaGFyZWQpCi0rCXRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHll cyAmJiBcCi0rCSAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJjYW4gbm90IGJ1aWxkIGEgc2hh cmVkIGxpYnJhcnkiCi0rCWJ1aWxkX29sZF9saWJzPW5vCi0rCWJyZWFrCi0rCTs7Ci0rICAgICAg LWFsbC1zdGF0aWMgfCAtc3RhdGljIHwgLXN0YXRpYy1saWJ0b29sLWxpYnMpCi0rCWNhc2UgJGFy ZyBpbgotKwktYWxsLXN0YXRpYykKLSsJICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9 IHllcyAmJiB0ZXN0IC16ICIkbGlua19zdGF0aWNfZmxhZyI7IHRoZW4KLSsJICAgIGZ1bmNfd2Fy bmluZyAiY29tcGxldGUgc3RhdGljIGxpbmtpbmcgaXMgaW1wb3NzaWJsZSBpbiB0aGlzIGNvbmZp Z3VyYXRpb24iCi0rCSAgZmkKLSsJICBpZiB0ZXN0IC1uICIkbGlua19zdGF0aWNfZmxhZyI7IHRo ZW4KLSsJICAgIGRsb3Blbl9zZWxmPSRkbG9wZW5fc2VsZl9zdGF0aWMKLSsJICBmaQotKwkgIHBy ZWZlcl9zdGF0aWNfbGlicz15ZXMKLSsJICA7OwotKwktc3RhdGljKQotKwkgIGlmIHRlc3QgLXog IiRwaWNfZmxhZyIgJiYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCi0rCSAgICBk bG9wZW5fc2VsZj0kZGxvcGVuX3NlbGZfc3RhdGljCi0rCSAgZmkKLSsJICBwcmVmZXJfc3RhdGlj X2xpYnM9YnVpbHQKLSsJICA7OwotKwktc3RhdGljLWxpYnRvb2wtbGlicykKLSsJICBpZiB0ZXN0 IC16ICIkcGljX2ZsYWciICYmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgotKwkg ICAgZGxvcGVuX3NlbGY9JGRsb3Blbl9zZWxmX3N0YXRpYwotKwkgIGZpCi0rCSAgcHJlZmVyX3N0 YXRpY19saWJzPXllcwotKwkgIDs7Ci0rCWVzYWMKLSsJYnVpbGRfbGlidG9vbF9saWJzPW5vCi0r CWJ1aWxkX29sZF9saWJzPXllcwotKwlicmVhawotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZG9u ZQotKwotKyAgICAjIFNlZSBpZiBvdXIgc2hhcmVkIGFyY2hpdmVzIGRlcGVuZCBvbiBzdGF0aWMg YXJjaGl2ZXMuCi0rICAgIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzIiAmJiBi dWlsZF9vbGRfbGlicz15ZXMKLSsKLSsgICAgIyBHbyB0aHJvdWdoIHRoZSBhcmd1bWVudHMsIHRy YW5zZm9ybWluZyB0aGVtIG9uIHRoZSB3YXkuCi0rICAgIHdoaWxlIHRlc3QgIiQjIiAtZ3QgMDsg ZG8KLSsgICAgICBhcmc9IiQxIgotKyAgICAgIHNoaWZ0Ci0rICAgICAgZnVuY19xdW90ZV9mb3Jf ZXZhbCAiJGFyZyIKLSsgICAgICBxYXJnPSRmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jl c3VsdAotKyAgICAgIGZ1bmNfYXBwZW5kIGxpYnRvb2xfYXJncyAiICRmdW5jX3F1b3RlX2Zvcl9l dmFsX3Jlc3VsdCIKLSsKLSsgICAgICAjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZHMgYW4g YXJndW1lbnQsIGFzc2lnbiBpdC4KLSsgICAgICBpZiB0ZXN0IC1uICIkcHJldiI7IHRoZW4KLSsJ Y2FzZSAkcHJldiBpbgotKwlvdXRwdXQpCi0rCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5k ICIgQE9VVFBVVEAiCi0rCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiIEBPVVRQVVRA IgotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJY2FzZSAkcHJldiBpbgotKwlkbGZpbGVzfGRscHJlZmls ZXMpCi0rCSAgaWYgdGVzdCAiJHByZWxvYWQiID0gbm87IHRoZW4KLSsJICAgICMgQWRkIHRoZSBz eW1ib2wgb2JqZWN0IGludG8gdGhlIGxpbmtpbmcgY29tbWFuZHMuCi0rCSAgICBmdW5jX2FwcGVu ZCBjb21waWxlX2NvbW1hbmQgIiBAU1lNRklMRUAiCi0rCSAgICBmdW5jX2FwcGVuZCBmaW5hbGl6 ZV9jb21tYW5kICIgQFNZTUZJTEVAIgotKwkgICAgcHJlbG9hZD15ZXMKLSsJICBmaQotKwkgIGNh c2UgJGFyZyBpbgotKwkgICoubGEgfCAqLmxvKSA7OyAgIyBXZSBoYW5kbGUgdGhlc2UgY2FzZXMg YmVsb3cuCi0rCSAgZm9yY2UpCi0rCSAgICBpZiB0ZXN0ICIkZGxzZWxmIiA9IG5vOyB0aGVuCi0r CSAgICAgIGRsc2VsZj1uZWVkbGVzcwotKwkgICAgICBleHBvcnRfZHluYW1pYz15ZXMKLSsJICAg IGZpCi0rCSAgICBwcmV2PQotKwkgICAgY29udGludWUKLSsJICAgIDs7Ci0rCSAgc2VsZikKLSsJ ICAgIGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KLSsJICAgICAgZGxzZWxmPXll cwotKwkgICAgZWxpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzICYmIHRlc3QgIiRkbG9wZW5fc2Vs ZiIgIT0geWVzOyB0aGVuCi0rCSAgICAgIGRsc2VsZj15ZXMKLSsJICAgIGVsc2UKLSsJICAgICAg ZGxzZWxmPW5lZWRsZXNzCi0rCSAgICAgIGV4cG9ydF9keW5hbWljPXllcwotKwkgICAgZmkKLSsJ ICAgIHByZXY9Ci0rCSAgICBjb250aW51ZQotKwkgICAgOzsKLSsJICAqKQotKwkgICAgaWYgdGVz dCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgotKwkgICAgICBkbGZpbGVzPSIkZGxmaWxlcyAkYXJn IgotKwkgICAgZWxzZQotKwkgICAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkYXJnIgotKwkg ICAgZmkKLSsJICAgIHByZXY9Ci0rCSAgICBjb250aW51ZQotKwkgICAgOzsKLSsJICBlc2FjCi0r CSAgOzsKLSsJZXhwc3ltcykKLSsJICBleHBvcnRfc3ltYm9scz0iJGFyZyIKLSsJICB0ZXN0IC1m ICIkYXJnIiBcCi0rCSAgICB8fCBmdW5jX2ZhdGFsX2Vycm9yICJzeW1ib2wgZmlsZSBcYCRhcmcn IGRvZXMgbm90IGV4aXN0IgotKwkgIHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7OwotKwlleHBz eW1zX3JlZ2V4KQotKwkgIGV4cG9ydF9zeW1ib2xzX3JlZ2V4PSIkYXJnIgotKwkgIHByZXY9Ci0r CSAgY29udGludWUKLSsJICA7OwotKwlmcmFtZXdvcmspCi0rCSAgY2FzZSAkaG9zdCBpbgotKwkg ICAgKi0qLWRhcndpbiopCi0rCSAgICAgIGNhc2UgIiRkZXBsaWJzICIgaW4KLSsJCSoiICRxYXJn Lmx0ZnJhbWV3b3JrICIqKSA7OwotKwkJKikgZGVwbGlicz0iJGRlcGxpYnMgJHFhcmcubHRmcmFt ZXdvcmsiICMgdGhpcyBpcyBmaXhlZCBsYXRlcgotKwkJICAgOzsKLSsJICAgICAgZXNhYwotKwkg ICAgICA7OwotKwkgIGVzYWMKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJaW5z dF9wcmVmaXgpCi0rCSAgaW5zdF9wcmVmaXhfZGlyPSIkYXJnIgotKwkgIHByZXY9Ci0rCSAgY29u dGludWUKLSsJICA7OwotKwlvYmplY3RsaXN0KQotKwkgIGlmIHRlc3QgLWYgIiRhcmciOyB0aGVu Ci0rCSAgICBzYXZlX2FyZz0kYXJnCi0rCSAgICBtb3JlYXJncz0KLSsJICAgIGZvciBmaWwgaW4g YGNhdCAiJHNhdmVfYXJnImAKLSsJICAgIGRvCi0rIwkgICAgICBtb3JlYXJncz0iJG1vcmVhcmdz ICRmaWwiCi0rCSAgICAgIGFyZz0kZmlsCi0rCSAgICAgICMgQSBsaWJ0b29sLWNvbnRyb2xsZWQg b2JqZWN0LgotKwotKwkgICAgICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEg bGlidG9vbCBvYmplY3QuCi0rCSAgICAgIGlmIGZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRhcmciOyB0 aGVuCi0rCQlwaWNfb2JqZWN0PQotKwkJbm9uX3BpY19vYmplY3Q9Ci0rCi0rCQkjIFJlYWQgdGhl IC5sbyBmaWxlCi0rCQlmdW5jX3NvdXJjZSAiJGFyZyIKLSsKLSsJCWlmIHRlc3QgLXogIiRwaWNf b2JqZWN0IiB8fAotKwkJICAgdGVzdCAteiAiJG5vbl9waWNfb2JqZWN0IiB8fAotKwkJICAgdGVz dCAiJHBpY19vYmplY3QiID0gbm9uZSAmJgotKwkJICAgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiA9 IG5vbmU7IHRoZW4KLSsJCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBv YmplY3QgZm9yIFxgJGFyZyciCi0rCQlmaQotKwotKwkJIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBm cm9tIHRoZSBhcmd1bWVudC4KLSsJCWZ1bmNfZGlybmFtZSAiJGFyZyIgIi8iICIiCi0rCQl4ZGly PSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSsKLSsJCWlmIHRlc3QgIiRwaWNfb2JqZWN0IiAhPSBu b25lOyB0aGVuCi0rCQkgICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMg Zm91bmQgaW4uCi0rCQkgIHBpY19vYmplY3Q9IiR4ZGlyJHBpY19vYmplY3QiCi0rCi0rCQkgIGlm IHRlc3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KLSsJCSAgICBpZiB0ZXN0ICIkYnVpbGRfbGli dG9vbF9saWJzIiA9IHllcyAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0geWVzOyB0aGVuCi0r CQkgICAgICBkbGZpbGVzPSIkZGxmaWxlcyAkcGljX29iamVjdCIKLSsJCSAgICAgIHByZXY9Ci0r CQkgICAgICBjb250aW51ZQotKwkJICAgIGVsc2UKLSsJCSAgICAgICMgSWYgbGlidG9vbCBvYmpl Y3RzIGFyZSB1bnN1cHBvcnRlZCwgdGhlbiB3ZSBuZWVkIHRvIHByZWxvYWQuCi0rCQkgICAgICBw cmV2PWRscHJlZmlsZXMKLSsJCSAgICBmaQotKwkJICBmaQotKwotKwkJICAjIENIRUNLIE1FOiAg SSB0aGluayBJIGJ1c3RlZCB0aGlzLiAgLU9zc2FtYQotKwkJICBpZiB0ZXN0ICIkcHJldiIgPSBk bHByZWZpbGVzOyB0aGVuCi0rCQkgICAgIyBQcmVsb2FkIHRoZSBvbGQtc3R5bGUgb2JqZWN0Lgot KwkJICAgIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRwaWNfb2JqZWN0IgotKwkJICAgIHByZXY9 Ci0rCQkgIGZpCi0rCi0rCQkgICMgQSBQSUMgb2JqZWN0LgotKwkJICBmdW5jX2FwcGVuZCBsaWJv YmpzICIgJHBpY19vYmplY3QiCi0rCQkgIGFyZz0iJHBpY19vYmplY3QiCi0rCQlmaQotKwotKwkJ IyBOb24tUElDIG9iamVjdC4KLSsJCWlmIHRlc3QgIiRub25fcGljX29iamVjdCIgIT0gbm9uZTsg dGhlbgotKwkJICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUgb2JqZWN0IGlzIGZvdW5k IGluLgotKwkJICBub25fcGljX29iamVjdD0iJHhkaXIkbm9uX3BpY19vYmplY3QiCi0rCi0rCQkg ICMgQSBzdGFuZGFyZCBub24tUElDIG9iamVjdAotKwkJICBmdW5jX2FwcGVuZCBub25fcGljX29i amVjdHMgIiAkbm9uX3BpY19vYmplY3QiCi0rCQkgIGlmIHRlc3QgLXogIiRwaWNfb2JqZWN0IiB8 fCB0ZXN0ICIkcGljX29iamVjdCIgPSBub25lIDsgdGhlbgotKwkJICAgIGFyZz0iJG5vbl9waWNf b2JqZWN0IgotKwkJICBmaQotKwkJZWxzZQotKwkJICAjIElmIHRoZSBQSUMgb2JqZWN0IGV4aXN0 cywgdXNlIGl0IGluc3RlYWQuCi0rCQkgICMgJHhkaXIgd2FzIHByZXBlbmRlZCB0byAkcGljX29i amVjdCBhYm92ZS4KLSsJCSAgbm9uX3BpY19vYmplY3Q9IiRwaWNfb2JqZWN0IgotKwkJICBmdW5j X2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCi0rCQlmaQotKwkgICAg ICBlbHNlCi0rCQkjIE9ubHkgYW4gZXJyb3IgaWYgbm90IGRvaW5nIGEgZHJ5LXJ1bi4KLSsJCWlm ICRvcHRfZHJ5X3J1bjsgdGhlbgotKwkJICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhl IGFyZ3VtZW50LgotKwkJICBmdW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgotKwkJICB4ZGlyPSIk ZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSsKLSsJCSAgZnVuY19sbzJvICIkYXJnIgotKwkJICBwaWNf b2JqZWN0PSR4ZGlyJG9iamRpci8kZnVuY19sbzJvX3Jlc3VsdAotKwkJICBub25fcGljX29iamVj dD0keGRpciRmdW5jX2xvMm9fcmVzdWx0Ci0rCQkgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkcGlj X29iamVjdCIKLSsJCSAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5vbl9waWNfb2Jq ZWN0IgotKwkgICAgICAgIGVsc2UKLSsJCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkYXJnJyBpcyBu b3QgYSB2YWxpZCBsaWJ0b29sIG9iamVjdCIKLSsJCWZpCi0rCSAgICAgIGZpCi0rCSAgICBkb25l Ci0rCSAgZWxzZQotKwkgICAgZnVuY19mYXRhbF9lcnJvciAibGluayBpbnB1dCBmaWxlIFxgJGFy ZycgZG9lcyBub3QgZXhpc3QiCi0rCSAgZmkKLSsJICBhcmc9JHNhdmVfYXJnCi0rCSAgcHJldj0K LSsJICBjb250aW51ZQotKwkgIDs7Ci0rCXByZWNpb3VzX3JlZ2V4KQotKwkgIHByZWNpb3VzX2Zp bGVzX3JlZ2V4PSIkYXJnIgotKwkgIHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7OwotKwlyZWxl YXNlKQotKwkgIHJlbGVhc2U9Ii0kYXJnIgotKwkgIHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7 OwotKwlycGF0aCB8IHhycGF0aCkKLSsJICAjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KLSsJ ICBjYXNlICRhcmcgaW4KLSsJICBbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7Ci0rCSAgKikK LSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm9ubHkgYWJzb2x1dGUgcnVuLXBhdGhzIGFyZSBhbGxv d2VkIgotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgaWYgdGVzdCAiJHByZXYiID0gcnBhdGg7IHRo ZW4KLSsJICAgIGNhc2UgIiRycGF0aCAiIGluCi0rCSAgICAqIiAkYXJnICIqKSA7OwotKwkgICAg KikgcnBhdGg9IiRycGF0aCAkYXJnIiA7OwotKwkgICAgZXNhYwotKwkgIGVsc2UKLSsJICAgIGNh c2UgIiR4cnBhdGggIiBpbgotKwkgICAgKiIgJGFyZyAiKikgOzsKLSsJICAgICopIHhycGF0aD0i JHhycGF0aCAkYXJnIiA7OwotKwkgICAgZXNhYwotKwkgIGZpCi0rCSAgcHJldj0KLSsJICBjb250 aW51ZQotKwkgIDs7Ci0rCXNocmV4dCkKLSsJICBzaHJleHRfY21kcz0iJGFyZyIKLSsJICBwcmV2 PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJd2VhaykKLSsJICB3ZWFrX2xpYnM9IiR3ZWFrX2xp YnMgJGFyZyIKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJeGNjbGlua2VyKQot KwkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkcWFyZyIKLSsJICBjb21waWxlcl9mbGFn cz0iJGNvbXBpbGVyX2ZsYWdzICRxYXJnIgotKwkgIHByZXY9Ci0rCSAgZnVuY19hcHBlbmQgY29t cGlsZV9jb21tYW5kICIgJHFhcmciCi0rCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAi ICRxYXJnIgotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJeGNvbXBpbGVyKQotKwkgIGNvbXBpbGVy X2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHFhcmciCi0rCSAgcHJldj0KLSsJICBmdW5jX2FwcGVu ZCBjb21waWxlX2NvbW1hbmQgIiAkcWFyZyIKLSsJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21t YW5kICIgJHFhcmciCi0rCSAgY29udGludWUKLSsJICA7OwotKwl4bGlua2VyKQotKwkgIGxpbmtl cl9mbGFncz0iJGxpbmtlcl9mbGFncyAkcWFyZyIKLSsJICBjb21waWxlcl9mbGFncz0iJGNvbXBp bGVyX2ZsYWdzICR3bCRxYXJnIgotKwkgIHByZXY9Ci0rCSAgZnVuY19hcHBlbmQgY29tcGlsZV9j b21tYW5kICIgJHdsJHFhcmciCi0rCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICR3 bCRxYXJnIgotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJKikKLSsJICBldmFsICIkcHJldj1cIlwk YXJnXCIiCi0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBm aSAjIHRlc3QgLW4gIiRwcmV2IgotKwotKyAgICAgIHByZXZhcmc9IiRhcmciCi0rCi0rICAgICAg Y2FzZSAkYXJnIGluCi0rICAgICAgLWFsbC1zdGF0aWMpCi0rCWlmIHRlc3QgLW4gIiRsaW5rX3N0 YXRpY19mbGFnIjsgdGhlbgotKwkgICMgU2VlIGNvbW1lbnQgZm9yIC1zdGF0aWMgZmxhZyBiZWxv dywgZm9yIG1vcmUgZGV0YWlscy4KLSsJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAk bGlua19zdGF0aWNfZmxhZyIKLSsJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGxp bmtfc3RhdGljX2ZsYWciCi0rCWZpCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLWFsbG93 LXVuZGVmaW5lZCkKLSsJIyBGSVhNRTogcmVtb3ZlIHRoaXMgZmxhZyBzb21ldGltZSBpbiB0aGUg ZnV0dXJlLgotKwlmdW5jX2ZhdGFsX2Vycm9yICJcYC1hbGxvdy11bmRlZmluZWQnIG11c3Qgbm90 IGJlIHVzZWQgYmVjYXVzZSBpdCBpcyB0aGUgZGVmYXVsdCIKLSsJOzsKLSsKLSsgICAgICAtYXZv aWQtdmVyc2lvbikKLSsJYXZvaWRfdmVyc2lvbj15ZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsg ICAgICAtZGxvcGVuKQotKwlwcmV2PWRsZmlsZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAg ICAtZGxwcmVvcGVuKQotKwlwcmV2PWRscHJlZmlsZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsg ICAgICAtZXhwb3J0LWR5bmFtaWMpCi0rCWV4cG9ydF9keW5hbWljPXllcwotKwljb250aW51ZQot Kwk7OwotKwotKyAgICAgIC1leHBvcnQtc3ltYm9scyB8IC1leHBvcnQtc3ltYm9scy1yZWdleCkK LSsJaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiB8fCB0ZXN0IC1uICIkZXhwb3J0X3N5bWJv bHNfcmVnZXgiOyB0aGVuCi0rCSAgZnVuY19mYXRhbF9lcnJvciAibW9yZSB0aGFuIG9uZSAtZXhw b3J0ZWQtc3ltYm9scyBhcmd1bWVudCBpcyBub3QgYWxsb3dlZCIKLSsJZmkKLSsJaWYgdGVzdCAi WCRhcmciID0gIlgtZXhwb3J0LXN5bWJvbHMiOyB0aGVuCi0rCSAgcHJldj1leHBzeW1zCi0rCWVs c2UKLSsJICBwcmV2PWV4cHN5bXNfcmVnZXgKLSsJZmkKLSsJY29udGludWUKLSsJOzsKLSsKLSsg ICAgICAtZnJhbWV3b3JrKQotKwlwcmV2PWZyYW1ld29yawotKwljb250aW51ZQotKwk7OwotKwot KyAgICAgIC1pbnN0LXByZWZpeC1kaXIpCi0rCXByZXY9aW5zdF9wcmVmaXgKLSsJY29udGludWUK LSsJOzsKLSsKLSsgICAgICAjIFRoZSBuYXRpdmUgSVJJWCBsaW5rZXIgdW5kZXJzdGFuZHMgLUxB Tkc6KiwgLUxJU1Q6KiBhbmQgLUxOTzoqCi0rICAgICAgIyBzbywgaWYgd2Ugc2VlIHRoZXNlIGZs YWdzIGJlIGNhcmVmdWwgbm90IHRvIHRyZWF0IHRoZW0gbGlrZSAtTAotKyAgICAgIC1MW0EtWl1b QS1aXSo6KikKLSsJY2FzZSAkd2l0aF9nY2MvJGhvc3QgaW4KLSsJbm8vKi0qLWlyaXgqIHwgLyot Ki1pcml4KikKLSsJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgotKwkgIGZ1 bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgotKwkgIDs7Ci0rCWVzYWMKLSsJY29u dGludWUKLSsJOzsKLSsKLSsgICAgICAtTCopCi0rCWZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRh cmciCi0rCWRpcj0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCWlmIHRlc3QgLXogIiRkaXIiOyB0 aGVuCi0rCSAgaWYgdGVzdCAiJCMiIC1ndCAwOyB0aGVuCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9y ICJyZXF1aXJlIG5vIHNwYWNlIGJldHdlZW4gXGAtTCcgYW5kIFxgJDEnIgotKwkgIGVsc2UKLSsJ ICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm5lZWQgcGF0aCBmb3IgXGAtTCcgb3B0aW9uIgotKwkgIGZp Ci0rCWZpCi0rCSMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgotKwljYXNlICRkaXIgaW4KLSsJ W1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7OwotKwkqKQotKwkgIGFic2Rpcj1gY2QgIiRkaXIi ICYmIHB3ZGAKLSsJICB0ZXN0IC16ICIkYWJzZGlyIiAmJiBcCi0rCSAgICBmdW5jX2ZhdGFsX2Vy cm9yICJjYW5ub3QgZGV0ZXJtaW5lIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIG9mIFxgJGRpcici Ci0rCSAgZGlyPSIkYWJzZGlyIgotKwkgIDs7Ci0rCWVzYWMKLSsJY2FzZSAiJGRlcGxpYnMgIiBp bgotKwkqIiAtTCRkaXIgIiopIDs7Ci0rCSopCi0rCSAgZGVwbGlicz0iJGRlcGxpYnMgLUwkZGly IgotKwkgIGxpYl9zZWFyY2hfcGF0aD0iJGxpYl9zZWFyY2hfcGF0aCAkZGlyIgotKwkgIDs7Ci0r CWVzYWMKLSsJY2FzZSAkaG9zdCBpbgotKwkqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSot cHczMiogfCAqLSotb3MyKiB8ICotY2VnY2MqKQotKwkgIHRlc3RiaW5kaXI9YCRFQ0hPICJYJGRp ciIgfCAkWHNlZCAtZSAncyovbGliJCovYmluKidgCi0rCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6 IGluCi0rCSAgKiI6JGRpcjoiKikgOzsKLSsJICA6OikgZGxsc2VhcmNocGF0aD0kZGlyOzsKLSsJ ICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDokZGlyIjs7Ci0rCSAgZXNhYwotKwkg IGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgotKwkgICoiOiR0ZXN0YmluZGlyOiIqKSA7OwotKwkg IDo6KSBkbGxzZWFyY2hwYXRoPSR0ZXN0YmluZGlyOzsKLSsJICAqKSBkbGxzZWFyY2hwYXRoPSIk ZGxsc2VhcmNocGF0aDokdGVzdGJpbmRpciI7OwotKwkgIGVzYWMKLSsJICA7OwotKwllc2FjCi0r CWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLWwqKQotKwlpZiB0ZXN0ICJYJGFyZyIgPSAiWC1s YyIgfHwgdGVzdCAiWCRhcmciID0gIlgtbG0iOyB0aGVuCi0rCSAgY2FzZSAkaG9zdCBpbgotKwkg ICotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1iZW9zKiB8ICotY2Vn Y2MqKQotKwkgICAgIyBUaGVzZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBDIG9yIG1h dGggbGlicmFyeSAoYXMgc3VjaCkKLSsJICAgIGNvbnRpbnVlCi0rCSAgICA7OwotKwkgICotKi1v czIqKQotKwkgICAgIyBUaGVzZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBDIGxpYnJh cnkgKGFzIHN1Y2gpCi0rCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKLSsJ ICAgIDs7Ci0rCSAgKi0qLW9wZW5ic2QqIHwgKi0qLWZyZWVic2QqIHwgKi0qLWRyYWdvbmZseSop Ci0rCSAgICAjIERvIG5vdCBpbmNsdWRlIGxpYmMgZHVlIHRvIHVzIGhhdmluZyBsaWJjL2xpYmNf ci4KLSsJICAgIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQotKwkgICAgOzsKLSsJ ICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCi0rCSAgICAjIFJoYXBzb2R5IEMg YW5kIG1hdGggbGlicmFyaWVzIGFyZSBpbiB0aGUgU3lzdGVtIGZyYW1ld29yawotKwkgICAgZGVw bGlicz0iJGRlcGxpYnMgU3lzdGVtLmx0ZnJhbWV3b3JrIgotKwkgICAgY29udGludWUKLSsJICAg IDs7Ci0rCSAgKi0qLXNjbzMuMnY1KiB8ICotKi1zY281djYqKQotKwkgICAgIyBDYXVzZXMgcHJv YmxlbXMgd2l0aCBfX2N0eXBlCi0rCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGlu dWUKLSsJICAgIDs7Ci0rCSAgKi0qLXN5c3Y0LjJ1dzIqIHwgKi0qLXN5c3Y1KiB8ICotKi11bml4 d2FyZSogfCAqLSotT3BlblVOSVgqKQotKwkgICAgIyBDb21waWxlciBpbnNlcnRzIGxpYmMgaW4g dGhlIGNvcnJlY3QgcGxhY2UgZm9yIHRocmVhZHMgdG8gd29yawotKwkgICAgdGVzdCAiWCRhcmci ID0gIlgtbGMiICYmIGNvbnRpbnVlCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJZWxpZiB0ZXN0ICJY JGFyZyIgPSAiWC1sY19yIjsgdGhlbgotKwkgY2FzZSAkaG9zdCBpbgotKwkgKi0qLW9wZW5ic2Qq IHwgKi0qLWZyZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCi0rCSAgICMgRG8gbm90IGluY2x1ZGUg bGliY19yIGRpcmVjdGx5LCB1c2UgLXB0aHJlYWQgZmxhZy4KLSsJICAgY29udGludWUKLSsJICAg OzsKLSsJIGVzYWMKLSsJZmkKLSsJZGVwbGlicz0iJGRlcGxpYnMgJGFyZyIKLSsJY29udGludWUK LSsJOzsKLSsKLSsgICAgICAtbW9kdWxlKQotKwltb2R1bGU9eWVzCi0rCWNvbnRpbnVlCi0rCTs7 Ci0rCi0rICAgICAgIyBUcnU2NCBVTklYIHVzZXMgLW1vZGVsIFthcmddIHRvIGRldGVybWluZSB0 aGUgbGF5b3V0IG9mIEMrKwotKyAgICAgICMgY2xhc3NlcywgbmFtZSBtYW5nbGluZywgYW5kIGV4 Y2VwdGlvbiBoYW5kbGluZy4KLSsgICAgICAjIERhcndpbiB1c2VzIHRoZSAtYXJjaCBmbGFnIHRv IGRldGVybWluZSBvdXRwdXQgYXJjaGl0ZWN0dXJlLgotKyAgICAgIC1tb2RlbHwtYXJjaHwtaXN5 c3Jvb3QpCi0rCWNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJGFyZyIKLSsJZnVuY19h cHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGFyZyIKLSsJZnVuY19hcHBlbmQgZmluYWxpemVfY29t bWFuZCAiICRhcmciCi0rCXByZXY9eGNvbXBpbGVyCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAg ICAgLW10fC1tdGhyZWFkc3wta3RocmVhZHwtS3RocmVhZHwtcHRocmVhZHwtcHRocmVhZHN8LS10 aHJlYWQtc2FmZXwtdGhyZWFkcykKLSsJY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAk YXJnIgotKwlmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgotKwlmdW5jX2FwcGVu ZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKLSsJY2FzZSAiJG5ld19pbmhlcml0ZWRfbGlua2Vy X2ZsYWdzICIgaW4KLSsJICAgICoiICRhcmcgIiopIDs7Ci0rCSAgICAqICkgbmV3X2luaGVyaXRl ZF9saW5rZXJfZmxhZ3M9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkYXJnIiA7OwotKwll c2FjCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLW11bHRpX21vZHVsZSkKLSsJc2luZ2xl X21vZHVsZT0iJHt3bH0tbXVsdGlfbW9kdWxlIgotKwljb250aW51ZQotKwk7OwotKwotKyAgICAg IC1uby1mYXN0LWluc3RhbGwpCi0rCWZhc3RfaW5zdGFsbD1ubwotKwljb250aW51ZQotKwk7Owot KwotKyAgICAgIC1uby1pbnN0YWxsKQotKwljYXNlICRob3N0IGluCi0rCSotKi1jeWd3aW4qIHwg Ki0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi0qLWRhcndpbiogfCAqLWNlZ2Nj KikKLSsJICAjIFRoZSBQQVRIIGhhY2tlcnkgaW4gd3JhcHBlciBzY3JpcHRzIGlzIHJlcXVpcmVk IG9uIFdpbmRvd3MKLSsJICAjIGFuZCBEYXJ3aW4gaW4gb3JkZXIgZm9yIHRoZSBsb2FkZXIgdG8g ZmluZCBhbnkgZGxscyBpdCBuZWVkcy4KLSsJICBmdW5jX3dhcm5pbmcgIlxgLW5vLWluc3RhbGwn IGlzIGlnbm9yZWQgZm9yICRob3N0IgotKwkgIGZ1bmNfd2FybmluZyAiYXNzdW1pbmcgXGAtbm8t ZmFzdC1pbnN0YWxsJyBpbnN0ZWFkIgotKwkgIGZhc3RfaW5zdGFsbD1ubwotKwkgIDs7Ci0rCSop IG5vX2luc3RhbGw9eWVzIDs7Ci0rCWVzYWMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAt bm8tdW5kZWZpbmVkKQotKwlhbGxvd191bmRlZmluZWQ9bm8KLSsJY29udGludWUKLSsJOzsKLSsK LSsgICAgICAtb2JqZWN0bGlzdCkKLSsJcHJldj1vYmplY3RsaXN0Ci0rCWNvbnRpbnVlCi0rCTs7 Ci0rCi0rICAgICAgLW8pIHByZXY9b3V0cHV0IDs7Ci0rCi0rICAgICAgLXByZWNpb3VzLWZpbGVz LXJlZ2V4KQotKwlwcmV2PXByZWNpb3VzX3JlZ2V4Ci0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAg ICAgLXJlbGVhc2UpCi0rCXByZXY9cmVsZWFzZQotKwljb250aW51ZQotKwk7OwotKwotKyAgICAg IC1ycGF0aCkKLSsJcHJldj1ycGF0aAotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1SKQot KwlwcmV2PXhycGF0aAotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1SKikKLSsJZnVuY19z dHJpcG5hbWUgJy1SJyAnJyAiJGFyZyIKLSsJZGlyPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJ IyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCi0rCWNhc2UgJGRpciBpbgotKwlbXFwvXSogfCBb QS1aYS16XTpbXFwvXSopIDs7Ci0rCSopCi0rCSAgZnVuY19mYXRhbF9lcnJvciAib25seSBhYnNv bHV0ZSBydW4tcGF0aHMgYXJlIGFsbG93ZWQiCi0rCSAgOzsKLSsJZXNhYwotKwljYXNlICIkeHJw YXRoICIgaW4KLSsJKiIgJGRpciAiKikgOzsKLSsJKikgeHJwYXRoPSIkeHJwYXRoICRkaXIiIDs7 Ci0rCWVzYWMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtc2hhcmVkKQotKwkjIFRoZSBl ZmZlY3RzIG9mIC1zaGFyZWQgYXJlIGRlZmluZWQgaW4gYSBwcmV2aW91cyBsb29wLgotKwljb250 aW51ZQotKwk7OwotKwotKyAgICAgIC1zaHJleHQpCi0rCXByZXY9c2hyZXh0Ci0rCWNvbnRpbnVl Ci0rCTs7Ci0rCi0rICAgICAgLXN0YXRpYyB8IC1zdGF0aWMtbGlidG9vbC1saWJzKQotKwkjIFRo ZSBlZmZlY3RzIG9mIC1zdGF0aWMgYXJlIGRlZmluZWQgaW4gYSBwcmV2aW91cyBsb29wLgotKwkj IFdlIHVzZWQgdG8gZG8gdGhlIHNhbWUgYXMgLWFsbC1zdGF0aWMgb24gcGxhdGZvcm1zIHRoYXQK LSsJIyBkaWRuJ3QgaGF2ZSBhIFBJQyBmbGFnLCBidXQgdGhlIGFzc3VtcHRpb24gdGhhdCB0aGUg ZWZmZWN0cwotKwkjIHdvdWxkIGJlIGVxdWl2YWxlbnQgd2FzIHdyb25nLiAgSXQgd291bGQgYnJl YWsgb24gYXQgbGVhc3QKLSsJIyBEaWdpdGFsIFVuaXggYW5kIEFJWC4KLSsJY29udGludWUKLSsJ OzsKLSsKLSsgICAgICAtdGhyZWFkLXNhZmUpCi0rCXRocmVhZF9zYWZlPXllcwotKwljb250aW51 ZQotKwk7OwotKwotKyAgICAgIC12ZXJzaW9uLWluZm8pCi0rCXByZXY9dmluZm8KLSsJY29udGlu dWUKLSsJOzsKLSsKLSsgICAgICAtdmVyc2lvbi1udW1iZXIpCi0rCXByZXY9dmluZm8KLSsJdmlu Zm9fbnVtYmVyPXllcwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC13ZWFrKQotKyAgICAg ICAgcHJldj13ZWFrCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLVdjLCopCi0rCWZ1bmNf c3RyaXBuYW1lICctV2MsJyAnJyAiJGFyZyIKLSsJYXJncz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0 Ci0rCWFyZz0KLSsJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JywnCi0rCWZvciBmbGFnIGluICRhcmdz OyBkbwotKwkgIElGUz0iJHNhdmVfaWZzIgotKyAgICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFs ICIkZmxhZyIKLSsJICBhcmc9IiRhcmcgJHdsJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0Igot KwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJGZ1bmNfcXVvdGVfZm9yX2V2YWxf cmVzdWx0IgotKwlkb25lCi0rCUlGUz0iJHNhdmVfaWZzIgotKwlmdW5jX3N0cmlwbmFtZSAnICcg JycgIiRhcmciCi0rCWFyZz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCTs7Ci0rCi0rICAgICAg LVdsLCopCi0rCWZ1bmNfc3RyaXBuYW1lICctV2wsJyAnJyAiJGFyZyIKLSsJYXJncz0kZnVuY19z dHJpcG5hbWVfcmVzdWx0Ci0rCWFyZz0KLSsJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JywnCi0rCWZv ciBmbGFnIGluICRhcmdzOyBkbwotKwkgIElGUz0iJHNhdmVfaWZzIgotKyAgICAgICAgICBmdW5j X3F1b3RlX2Zvcl9ldmFsICIkZmxhZyIKLSsJICBhcmc9IiRhcmcgJHdsJGZ1bmNfcXVvdGVfZm9y X2V2YWxfcmVzdWx0IgotKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHdsJGZ1 bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKwkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFn cyAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0rCWRvbmUKLSsJSUZTPSIkc2F2ZV9pZnMi Ci0rCWZ1bmNfc3RyaXBuYW1lICcgJyAnJyAiJGFyZyIKLSsJYXJnPSRmdW5jX3N0cmlwbmFtZV9y ZXN1bHQKLSsJOzsKLSsKLSsgICAgICAtWGNvbXBpbGVyKQotKwlwcmV2PXhjb21waWxlcgotKwlj b250aW51ZQotKwk7OwotKwotKyAgICAgIC1YbGlua2VyKQotKwlwcmV2PXhsaW5rZXIKLSsJY29u dGludWUKLSsJOzsKLSsKLSsgICAgICAtWENDbGlua2VyKQotKwlwcmV2PXhjY2xpbmtlcgotKwlj b250aW51ZQotKwk7OwotKwotKyAgICAgICMgLW1zZ18qIGZvciBvc2YgY2MKLSsgICAgICAtbXNn XyopCi0rCWZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCi0rCWFyZz0iJGZ1bmNfcXVvdGVfZm9y X2V2YWxfcmVzdWx0IgotKwk7OwotKwotKyAgICAgICMgLTY0LCAtbWlwc1swLTldIGVuYWJsZSA2 NC1iaXQgbW9kZSBvbiB0aGUgU0dJIGNvbXBpbGVyCi0rICAgICAgIyAtclswLTldWzAtOV0qIHNw ZWNpZmllcyB0aGUgcHJvY2Vzc29yIG9uIHRoZSBTR0kgY29tcGlsZXIKLSsgICAgICAjIC14YXJj aD0qLCAteHRhcmdldD0qIGVuYWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUgU3VuIGNvbXBpbGVyCi0r ICAgICAgIyArREEqLCArREQqIGVuYWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUgSFAgY29tcGlsZXIK LSsgICAgICAjIC1xKiBwYXNzIHRocm91Z2ggY29tcGlsZXIgYXJncyBmb3IgdGhlIElCTSBjb21w aWxlcgotKyAgICAgICMgLW0qLCAtdFs0NV0qLCAtdHhzY2FsZSogcGFzcyB0aHJvdWdoIGFyY2hp dGVjdHVyZS1zcGVjaWZpYwotKyAgICAgICMgY29tcGlsZXIgYXJncyBmb3IgR0NDCi0rICAgICAg IyAtRi9wYXRoIGdpdmVzIHBhdGggdG8gdW5pbnN0YWxsZWQgZnJhbWV3b3JrcywgZ2NjIG9uIGRh cndpbgotKyAgICAgICMgLXAsIC1wZywgLS1jb3ZlcmFnZSwgLWZwcm9maWxlLSogcGFzcyB0aHJv dWdoIHByb2ZpbGluZyBmbGFnIGZvciBHQ0MKLSsgICAgICAjIEBmaWxlIEdDQyByZXNwb25zZSBm aWxlcwotKyAgICAgIC02NHwtbWlwc1swLTldfC1yWzAtOV1bMC05XSp8LXhhcmNoPSp8LXh0YXJn ZXQ9KnwrREEqfCtERCp8LXEqfC1tKnwgXAotKyAgICAgIC10WzQ1XSp8LXR4c2NhbGUqfC1wfC1w Z3wtLWNvdmVyYWdlfC1mcHJvZmlsZS0qfC1GKnxAKikKLSsgICAgICAgIGZ1bmNfcXVvdGVfZm9y X2V2YWwgIiRhcmciCi0rCWFyZz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKyAgICAg ICAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGFyZyIKLSsgICAgICAgIGZ1bmNfYXBw ZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgotKyAgICAgICAgY29tcGlsZXJfZmxhZ3M9IiRj b21waWxlcl9mbGFncyAkYXJnIgotKyAgICAgICAgY29udGludWUKLSsgICAgICAgIDs7Ci0rCi0r ICAgICAgIyBTb21lIG90aGVyIGNvbXBpbGVyIGZsYWcuCi0rICAgICAgLSogfCArKikKLSsgICAg ICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCi0rCWFyZz0iJGZ1bmNfcXVvdGVfZm9yX2V2 YWxfcmVzdWx0IgotKwk7OwotKwotKyAgICAgICouJG9iamV4dCkKLSsJIyBBIHN0YW5kYXJkIG9i amVjdC4KLSsJb2Jqcz0iJG9ianMgJGFyZyIKLSsJOzsKLSsKLSsgICAgICAqLmxvKQotKwkjIEEg bGlidG9vbC1jb250cm9sbGVkIG9iamVjdC4KLSsKLSsJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlz IHJlYWxseSBpcyBhIGxpYnRvb2wgb2JqZWN0LgotKwlpZiBmdW5jX2xhbGliX3Vuc2FmZV9wICIk YXJnIjsgdGhlbgotKwkgIHBpY19vYmplY3Q9Ci0rCSAgbm9uX3BpY19vYmplY3Q9Ci0rCi0rCSAg IyBSZWFkIHRoZSAubG8gZmlsZQotKwkgIGZ1bmNfc291cmNlICIkYXJnIgotKwotKwkgIGlmIHRl c3QgLXogIiRwaWNfb2JqZWN0IiB8fAotKwkgICAgIHRlc3QgLXogIiRub25fcGljX29iamVjdCIg fHwKLSsJICAgICB0ZXN0ICIkcGljX29iamVjdCIgPSBub25lICYmCi0rCSAgICAgdGVzdCAiJG5v bl9waWNfb2JqZWN0IiA9IG5vbmU7IHRoZW4KLSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5v dCBmaW5kIG5hbWUgb2Ygb2JqZWN0IGZvciBcYCRhcmcnIgotKwkgIGZpCi0rCi0rCSAgIyBFeHRy YWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KLSsJICBmdW5jX2Rpcm5hbWUgIiRh cmciICIvIiAiIgotKwkgIHhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKwotKwkgIGlmIHRl c3QgIiRwaWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCi0rCSAgICAjIFByZXBlbmQgdGhlIHN1YmRp cmVjdG9yeSB0aGUgb2JqZWN0IGlzIGZvdW5kIGluLgotKwkgICAgcGljX29iamVjdD0iJHhkaXIk cGljX29iamVjdCIKLSsKLSsJICAgIGlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KLSsJ ICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYgdGVzdCAiJGRsb3Bl bl9zdXBwb3J0IiA9IHllczsgdGhlbgotKwkJZGxmaWxlcz0iJGRsZmlsZXMgJHBpY19vYmplY3Qi Ci0rCQlwcmV2PQotKwkJY29udGludWUKLSsJICAgICAgZWxzZQotKwkJIyBJZiBsaWJ0b29sIG9i amVjdHMgYXJlIHVuc3VwcG9ydGVkLCB0aGVuIHdlIG5lZWQgdG8gcHJlbG9hZC4KLSsJCXByZXY9 ZGxwcmVmaWxlcwotKwkgICAgICBmaQotKwkgICAgZmkKLSsKLSsJICAgICMgQ0hFQ0sgTUU6ICBJ IHRoaW5rIEkgYnVzdGVkIHRoaXMuICAtT3NzYW1hCi0rCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBk bHByZWZpbGVzOyB0aGVuCi0rCSAgICAgICMgUHJlbG9hZCB0aGUgb2xkLXN0eWxlIG9iamVjdC4K LSsJICAgICAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJHBpY19vYmplY3QiCi0rCSAgICAgIHBy ZXY9Ci0rCSAgICBmaQotKwotKwkgICAgIyBBIFBJQyBvYmplY3QuCi0rCSAgICBmdW5jX2FwcGVu ZCBsaWJvYmpzICIgJHBpY19vYmplY3QiCi0rCSAgICBhcmc9IiRwaWNfb2JqZWN0IgotKwkgIGZp Ci0rCi0rCSAgIyBOb24tUElDIG9iamVjdC4KLSsJICBpZiB0ZXN0ICIkbm9uX3BpY19vYmplY3Qi ICE9IG5vbmU7IHRoZW4KLSsJICAgICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmpl Y3QgaXMgZm91bmQgaW4uCi0rCSAgICBub25fcGljX29iamVjdD0iJHhkaXIkbm9uX3BpY19vYmpl Y3QiCi0rCi0rCSAgICAjIEEgc3RhbmRhcmQgbm9uLVBJQyBvYmplY3QKLSsJICAgIGZ1bmNfYXBw ZW5kIG5vbl9waWNfb2JqZWN0cyAiICRub25fcGljX29iamVjdCIKLSsJICAgIGlmIHRlc3QgLXog IiRwaWNfb2JqZWN0IiB8fCB0ZXN0ICIkcGljX29iamVjdCIgPSBub25lIDsgdGhlbgotKwkgICAg ICBhcmc9IiRub25fcGljX29iamVjdCIKLSsJICAgIGZpCi0rCSAgZWxzZQotKwkgICAgIyBJZiB0 aGUgUElDIG9iamVjdCBleGlzdHMsIHVzZSBpdCBpbnN0ZWFkLgotKwkgICAgIyAkeGRpciB3YXMg cHJlcGVuZGVkIHRvICRwaWNfb2JqZWN0IGFib3ZlLgotKwkgICAgbm9uX3BpY19vYmplY3Q9IiRw aWNfb2JqZWN0IgotKwkgICAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5vbl9waWNf b2JqZWN0IgotKwkgIGZpCi0rCWVsc2UKLSsJICAjIE9ubHkgYW4gZXJyb3IgaWYgbm90IGRvaW5n IGEgZHJ5LXJ1bi4KLSsJICBpZiAkb3B0X2RyeV9ydW47IHRoZW4KLSsJICAgICMgRXh0cmFjdCBz dWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCi0rCSAgICBmdW5jX2Rpcm5hbWUgIiRhcmci ICIvIiAiIgotKwkgICAgeGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rCi0rCSAgICBmdW5j X2xvMm8gIiRhcmciCi0rCSAgICBwaWNfb2JqZWN0PSR4ZGlyJG9iamRpci8kZnVuY19sbzJvX3Jl c3VsdAotKwkgICAgbm9uX3BpY19vYmplY3Q9JHhkaXIkZnVuY19sbzJvX3Jlc3VsdAotKwkgICAg ZnVuY19hcHBlbmQgbGlib2JqcyAiICRwaWNfb2JqZWN0IgotKwkgICAgZnVuY19hcHBlbmQgbm9u X3BpY19vYmplY3RzICIgJG5vbl9waWNfb2JqZWN0IgotKwkgIGVsc2UKLSsJICAgIGZ1bmNfZmF0 YWxfZXJyb3IgIlxgJGFyZycgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBvYmplY3QiCi0rCSAgZmkK LSsJZmkKLSsJOzsKLSsKLSsgICAgICAqLiRsaWJleHQpCi0rCSMgQW4gYXJjaGl2ZS4KLSsJZGVw bGlicz0iJGRlcGxpYnMgJGFyZyIKLSsJb2xkX2RlcGxpYnM9IiRvbGRfZGVwbGlicyAkYXJnIgot Kwljb250aW51ZQotKwk7OwotKwotKyAgICAgICoubGEpCi0rCSMgQSBsaWJ0b29sLWNvbnRyb2xs ZWQgbGlicmFyeS4KLSsKLSsJaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgotKwkgICMg VGhpcyBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0aCAtZGxvcGVuLgotKwkgIGRsZmlsZXM9IiRk bGZpbGVzICRhcmciCi0rCSAgcHJldj0KLSsJZWxpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVz OyB0aGVuCi0rCSAgIyBUaGUgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRscHJlb3Blbi4K LSsJICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkYXJnIgotKwkgIHByZXY9Ci0rCWVsc2UKLSsJ ICBkZXBsaWJzPSIkZGVwbGlicyAkYXJnIgotKwlmaQotKwljb250aW51ZQotKwk7OwotKwotKyAg ICAgICMgU29tZSBvdGhlciBjb21waWxlciBhcmd1bWVudC4KLSsgICAgICAqKQotKwkjIFVua25v d24gYXJndW1lbnRzIGluIGJvdGggZmluYWxpemVfY29tbWFuZCBhbmQgY29tcGlsZV9jb21tYW5k IG5lZWQKLSsJIyB0byBiZSBhZXN0aGV0aWNhbGx5IHF1b3RlZCBiZWNhdXNlIHRoZXkgYXJlIGV2 YWxlZCBsYXRlci4KLSsJZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKLSsJYXJnPSIkZnVuY19x dW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0rCTs7Ci0rICAgICAgZXNhYyAjIGFyZwotKwotKyAgICAg ICMgTm93IGFjdHVhbGx5IHN1YnN0aXR1dGUgdGhlIGFyZ3VtZW50IGludG8gdGhlIGNvbW1hbmRz LgotKyAgICAgIGlmIHRlc3QgLW4gIiRhcmciOyB0aGVuCi0rCWZ1bmNfYXBwZW5kIGNvbXBpbGVf Y29tbWFuZCAiICRhcmciCi0rCWZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgot KyAgICAgIGZpCi0rICAgIGRvbmUgIyBhcmd1bWVudCBwYXJzaW5nIGxvb3AKLSsKLSsgICAgdGVz dCAtbiAiJHByZXYiICYmIFwKLSsgICAgICBmdW5jX2ZhdGFsX2hlbHAgInRoZSBcYCRwcmV2YXJn JyBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQiCi0rCi0rICAgIGlmIHRlc3QgIiRleHBvcnRf ZHluYW1pYyIgPSB5ZXMgJiYgdGVzdCAtbiAiJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyI7IHRo ZW4KLSsgICAgICBldmFsIGFyZz1cIiRleHBvcnRfZHluYW1pY19mbGFnX3NwZWNcIgotKyAgICAg IGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCi0rICAgICAgZnVuY19hcHBlbmQg ZmluYWxpemVfY29tbWFuZCAiICRhcmciCi0rICAgIGZpCi0rCi0rICAgIG9sZGxpYnM9Ci0rICAg ICMgY2FsY3VsYXRlIHRoZSBuYW1lIG9mIHRoZSBmaWxlLCB3aXRob3V0IGl0cyBkaXJlY3RvcnkK LSsgICAgZnVuY19iYXNlbmFtZSAiJG91dHB1dCIKLSsgICAgb3V0cHV0bmFtZT0iJGZ1bmNfYmFz ZW5hbWVfcmVzdWx0IgotKyAgICBsaWJvYmpzX3NhdmU9IiRsaWJvYmpzIgotKwotKyAgICBpZiB0 ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KLSsgICAgICAjIGdldCB0aGUgZGlyZWN0b3Jp ZXMgbGlzdGVkIGluICRzaGxpYnBhdGhfdmFyCi0rICAgICAgZXZhbCBzaGxpYl9zZWFyY2hfcGF0 aD1cYFwkRUNITyBcIlhcJHskc2hsaWJwYXRoX3Zhcn1cIiBcfCBcJFhzZWQgLWUgXCdzLzovIC9n XCdcYAotKyAgICBlbHNlCi0rICAgICAgc2hsaWJfc2VhcmNoX3BhdGg9Ci0rICAgIGZpCi0rICAg IGV2YWwgc3lzX2xpYl9zZWFyY2hfcGF0aD1cIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWNcIgot KyAgICBldmFsIHN5c19saWJfZGxzZWFyY2hfcGF0aD1cIiRzeXNfbGliX2Rsc2VhcmNoX3BhdGhf c3BlY1wiCi0rCi0rICAgIGZ1bmNfZGlybmFtZSAiJG91dHB1dCIgIi8iICIiCi0rICAgIG91dHB1 dF9vYmpkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0JG9iamRpciIKLSsgICAgIyBDcmVhdGUgdGhl IG9iamVjdCBkaXJlY3RvcnkuCi0rICAgIGZ1bmNfbWtkaXJfcCAiJG91dHB1dF9vYmpkaXIiCi0r Ci0rICAgICMgRGV0ZXJtaW5lIHRoZSB0eXBlIG9mIG91dHB1dAotKyAgICBjYXNlICRvdXRwdXQg aW4KLSsgICAgIiIpCi0rICAgICAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGFu IG91dHB1dCBmaWxlIgotKyAgICAgIDs7Ci0rICAgICouJGxpYmV4dCkgbGlua21vZGU9b2xkbGli IDs7Ci0rICAgICoubG8gfCAqLiRvYmpleHQpIGxpbmttb2RlPW9iaiA7OwotKyAgICAqLmxhKSBs aW5rbW9kZT1saWIgOzsKLSsgICAgKikgbGlua21vZGU9cHJvZyA7OyAjIEFueXRoaW5nIGVsc2Ug c2hvdWxkIGJlIGEgcHJvZ3JhbS4KLSsgICAgZXNhYwotKwotKyAgICBzcGVjaWFsZGVwbGlicz0K LSsKLSsgICAgbGlicz0KLSsgICAgIyBGaW5kIGFsbCBpbnRlcmRlcGVuZGVudCBkZXBsaWJzIGJ5 IHNlYXJjaGluZyBmb3IgbGlicmFyaWVzCi0rICAgICMgdGhhdCBhcmUgbGlua2VkIG1vcmUgdGhh biBvbmNlIChlLmcuIC1sYSAtbGIgLWxhKQotKyAgICBmb3IgZGVwbGliIGluICRkZXBsaWJzOyBk bwotKyAgICAgIGlmICRvcHRfZHVwbGljYXRlX2RlcHMgOyB0aGVuCi0rCWNhc2UgIiRsaWJzICIg aW4KLSsJKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkZGVw bGliIiA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBsaWJzPSIkbGlicyAkZGVwbGliIgot KyAgICBkb25lCi0rCi0rICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KLSsgICAg ICBsaWJzPSIkcHJlZGVwcyAkbGlicyAkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoICRwb3N0ZGVw cyIKLSsKLSsgICAgICAjIENvbXB1dGUgbGlicmFyaWVzIHRoYXQgYXJlIGxpc3RlZCBtb3JlIHRo YW4gb25jZSBpbiAkcHJlZGVwcwotKyAgICAgICMgJHBvc3RkZXBzIGFuZCBtYXJrIHRoZW0gYXMg c3BlY2lhbCAoaS5lLiwgd2hvc2UgZHVwbGljYXRlcyBhcmUKLSsgICAgICAjIG5vdCB0byBiZSBl bGltaW5hdGVkKS4KLSsgICAgICBwcmVfcG9zdF9kZXBzPQotKyAgICAgIGlmICRvcHRfZHVwbGlj YXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9kZXBzOyB0aGVuCi0rCWZvciBwcmVfcG9zdF9kZXAgaW4g JHByZWRlcHMgJHBvc3RkZXBzOyBkbwotKwkgIGNhc2UgIiRwcmVfcG9zdF9kZXBzICIgaW4KLSsJ ICAqIiAkcHJlX3Bvc3RfZGVwICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRw cmVfcG9zdF9kZXBzIiA7OwotKwkgIGVzYWMKLSsJICBwcmVfcG9zdF9kZXBzPSIkcHJlX3Bvc3Rf ZGVwcyAkcHJlX3Bvc3RfZGVwIgotKwlkb25lCi0rICAgICAgZmkKLSsgICAgICBwcmVfcG9zdF9k ZXBzPQotKyAgICBmaQotKwotKyAgICBkZXBsaWJzPQotKyAgICBuZXdkZXBlbmRlbmN5X2xpYnM9 Ci0rICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0KLSsgICAgbmVlZF9yZWxpbms9bm8gIyB3aGV0aGVy IHdlJ3JlIGxpbmtpbmcgYW55IHVuaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzCi0rICAgIG5v dGluc3RfZGVwbGlicz0gIyBub3QtaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzCi0rICAgIG5v dGluc3RfcGF0aD0gIyBwYXRocyB0aGF0IGNvbnRhaW4gbm90LWluc3RhbGxlZCBsaWJ0b29sIGxp YnJhcmllcwotKwotKyAgICBjYXNlICRsaW5rbW9kZSBpbgotKyAgICBsaWIpCi0rCXBhc3Nlcz0i Y29udiBkbHByZW9wZW4gbGluayIKLSsJZm9yIGZpbGUgaW4gJGRsZmlsZXMgJGRscHJlZmlsZXM7 IGRvCi0rCSAgY2FzZSAkZmlsZSBpbgotKwkgICoubGEpIDs7Ci0rCSAgKikKLSsJICAgIGZ1bmNf ZmF0YWxfaGVscCAibGlicmFyaWVzIGNhbiBcYC1kbG9wZW4nIG9ubHkgbGlidG9vbCBsaWJyYXJp ZXM6ICRmaWxlIgotKwkgICAgOzsKLSsJICBlc2FjCi0rCWRvbmUKLSsJOzsKLSsgICAgcHJvZykK LSsJY29tcGlsZV9kZXBsaWJzPQotKwlmaW5hbGl6ZV9kZXBsaWJzPQotKwlhbGxkZXBsaWJzPW5v Ci0rCW5ld2RsZmlsZXM9Ci0rCW5ld2RscHJlZmlsZXM9Ci0rCXBhc3Nlcz0iY29udiBzY2FuIGRs b3BlbiBkbHByZW9wZW4gbGluayIKLSsJOzsKLSsgICAgKikgIHBhc3Nlcz0iY29udiIKLSsJOzsK LSsgICAgZXNhYwotKwotKyAgICBmb3IgcGFzcyBpbiAkcGFzc2VzOyBkbwotKyAgICAgICMgVGhl IHByZW9wZW4gcGFzcyBpbiBsaWIgbW9kZSByZXZlcnNlcyAkZGVwbGliczsgcHV0IGl0IGJhY2sg aGVyZQotKyAgICAgICMgc28gdGhhdCAtTCBjb21lcyBiZWZvcmUgbGlicyB0aGF0IG5lZWQgaXQg Zm9yIGluc3RhbmNlLi4uCi0rICAgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIs bGluayI7IHRoZW4KLSsJIyMgRklYTUU6IEZpbmQgdGhlIHBsYWNlIHdoZXJlIHRoZSBsaXN0IGlz IHJlYnVpbHQgaW4gdGhlIHdyb25nCi0rCSMjICAgICAgICBvcmRlciwgYW5kIGZpeCBpdCB0aGVy ZSBwcm9wZXJseQotKyAgICAgICAgdG1wX2RlcGxpYnM9Ci0rCWZvciBkZXBsaWIgaW4gJGRlcGxp YnM7IGRvCi0rCSAgdG1wX2RlcGxpYnM9IiRkZXBsaWIgJHRtcF9kZXBsaWJzIgotKwlkb25lCi0r CWRlcGxpYnM9IiR0bXBfZGVwbGlicyIKLSsgICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgIiRs aW5rbW9kZSwkcGFzcyIgPSAibGliLGxpbmsiIHx8Ci0rCSB0ZXN0ICIkbGlua21vZGUsJHBhc3Mi ID0gInByb2csc2NhbiI7IHRoZW4KLSsJbGlicz0iJGRlcGxpYnMiCi0rCWRlcGxpYnM9Ci0rICAg ICAgZmkKLSsgICAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgotKwljYXNlICRw YXNzIGluCi0rCWRsb3BlbikgbGlicz0iJGRsZmlsZXMiIDs7Ci0rCWRscHJlb3BlbikgbGlicz0i JGRscHJlZmlsZXMiIDs7Ci0rCWxpbmspIGxpYnM9IiRkZXBsaWJzICVERVBMSUJTJSAkZGVwZW5k ZW5jeV9saWJzIiA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBpZiB0ZXN0ICIkbGlua21v ZGUsJHBhc3MiID0gImxpYixkbHByZW9wZW4iOyB0aGVuCi0rCSMgQ29sbGVjdCBhbmQgZm9yd2Fy ZCBkZXBsaWJzIG9mIHByZW9wZW5lZCBsaWJ0b29sIGxpYnMKLSsJZm9yIGxpYiBpbiAkZGxwcmVm aWxlczsgZG8KLSsJICAjIElnbm9yZSBub24tbGlidG9vbC1saWJzCi0rCSAgZGVwZW5kZW5jeV9s aWJzPQotKwkgIGNhc2UgJGxpYiBpbgotKwkgICoubGEpCWZ1bmNfc291cmNlICIkbGliIiA7Owot KwkgIGVzYWMKLSsKLSsJICAjIENvbGxlY3QgcHJlb3BlbmVkIGxpYnRvb2wgZGVwbGlicywgZXhj ZXB0IGFueSB0aGlzIGxpYnJhcnkKLSsJICAjIGhhcyBkZWNsYXJlZCBhcyB3ZWFrIGxpYnMKLSsJ ICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCi0rICAgICAgICAgICAgZGVwbGli X2Jhc2U9YCRFQ0hPICJYJGRlcGxpYiIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKLSsJICAgIGNh c2UgIiAkd2Vha19saWJzICIgaW4KLSsJICAgICoiICRkZXBsaWJfYmFzZSAiKikgOzsKLSsJICAg ICopIGRlcGxpYnM9IiRkZXBsaWJzICRkZXBsaWIiIDs7Ci0rCSAgICBlc2FjCi0rCSAgZG9uZQot Kwlkb25lCi0rCWxpYnM9IiRkbHByZWZpbGVzIgotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAi JHBhc3MiID0gZGxvcGVuOyB0aGVuCi0rCSMgQ29sbGVjdCBkbHByZW9wZW5lZCBsaWJyYXJpZXMK LSsJc2F2ZV9kZXBsaWJzPSIkZGVwbGlicyIKLSsJZGVwbGlicz0KLSsgICAgICBmaQotKwotKyAg ICAgIGZvciBkZXBsaWIgaW4gJGxpYnM7IGRvCi0rCWxpYj0KLSsJZm91bmQ9bm8KLSsJY2FzZSAk ZGVwbGliIGluCi0rCS1tdHwtbXRocmVhZHN8LWt0aHJlYWR8LUt0aHJlYWR8LXB0aHJlYWR8LXB0 aHJlYWRzfC0tdGhyZWFkLXNhZmV8LXRocmVhZHMpCi0rCSAgaWYgdGVzdCAiJGxpbmttb2RlLCRw YXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCi0rCSAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIg JGNvbXBpbGVfZGVwbGlicyIKLSsJICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFs aXplX2RlcGxpYnMiCi0rCSAgZWxzZQotKwkgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9m bGFncyAkZGVwbGliIgotKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiA7IHRoZW4KLSsJ CWNhc2UgIiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCi0rCQkgICAgKiIgJGRlcGxp YiAiKikgOzsKLSsJCSAgICAqICkgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9IiRuZXdfaW5o ZXJpdGVkX2xpbmtlcl9mbGFncyAkZGVwbGliIiA7OwotKwkJZXNhYwotKwkgICAgZmkKLSsJICBm aQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJLWwqKQotKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIg IT0gbGliICYmIHRlc3QgIiRsaW5rbW9kZSIgIT0gcHJvZzsgdGhlbgotKwkgICAgZnVuY193YXJu aW5nICJcYC1sJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcy9vYmplY3RzIgotKwkgICAgY29udGlu dWUKLSsJICBmaQotKwkgIGZ1bmNfc3RyaXBuYW1lICctbCcgJycgIiRkZXBsaWIiCi0rCSAgbmFt ZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsg dGhlbgotKwkgICAgc2VhcmNoZGlycz0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkbGliX3NlYXJjaF9w YXRoICRjb21waWxlcl9saWJfc2VhcmNoX2RpcnMgJHN5c19saWJfc2VhcmNoX3BhdGggJHNobGli X3NlYXJjaF9wYXRoIgotKwkgIGVsc2UKLSsJICAgIHNlYXJjaGRpcnM9IiRuZXdsaWJfc2VhcmNo X3BhdGggJGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNo X3BhdGgiCi0rCSAgZmkKLSsJICBmb3Igc2VhcmNoZGlyIGluICRzZWFyY2hkaXJzOyBkbwotKwkg ICAgZm9yIHNlYXJjaF9leHQgaW4gLmxhICRzdGRfc2hyZXh0IC5zbyAuYTsgZG8KLSsJICAgICAg IyBTZWFyY2ggdGhlIGxpYnRvb2wgbGlicmFyeQotKwkgICAgICBsaWI9IiRzZWFyY2hkaXIvbGli JHtuYW1lfSR7c2VhcmNoX2V4dH0iCi0rCSAgICAgIGlmIHRlc3QgLWYgIiRsaWIiOyB0aGVuCi0r CQlpZiB0ZXN0ICIkc2VhcmNoX2V4dCIgPSAiLmxhIjsgdGhlbgotKwkJICBmb3VuZD15ZXMKLSsJ CWVsc2UKLSsJCSAgZm91bmQ9bm8KLSsJCWZpCi0rCQlicmVhayAyCi0rCSAgICAgIGZpCi0rCSAg ICBkb25lCi0rCSAgZG9uZQotKwkgIGlmIHRlc3QgIiRmb3VuZCIgIT0geWVzOyB0aGVuCi0rCSAg ICAjIGRlcGxpYiBkb2Vzbid0IHNlZW0gdG8gYmUgYSBsaWJ0b29sIGxpYnJhcnkKLSsJICAgIGlm IHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgotKwkgICAgICBjb21w aWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAgICAgZmluYWxpemVf ZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKLSsJICAgIGVsc2UKLSsJICAgICAg ZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgICAgdGVzdCAiJGxpbmttb2RlIiA9IGxp YiAmJiBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKLSsJ ICAgIGZpCi0rCSAgICBjb250aW51ZQotKwkgIGVsc2UgIyBkZXBsaWIgaXMgYSBsaWJ0b29sIGxp YnJhcnkKLSsJICAgICMgSWYgJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1l cyAmJiAkZGVwbGliIGlzIGEgc3RkbGliLAotKwkgICAgIyBXZSBuZWVkIHRvIGRvIHNvbWUgc3Bl Y2lhbCB0aGluZ3MgaGVyZSwgYW5kIG5vdCBsYXRlci4KLSsJICAgIGlmIHRlc3QgIlgkYWxsb3df bGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KLSsJICAg ICAgY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCi0rCSAgICAgICoiICRkZXBsaWIgIiop Ci0rCQlpZiBmdW5jX2xhbGliX3AgIiRsaWIiOyB0aGVuCi0rCQkgIGxpYnJhcnlfbmFtZXM9Ci0r CQkgIG9sZF9saWJyYXJ5PQotKwkJICBmdW5jX3NvdXJjZSAiJGxpYiIKLSsJCSAgZm9yIGwgaW4g JG9sZF9saWJyYXJ5ICRsaWJyYXJ5X25hbWVzOyBkbwotKwkJICAgIGxsPSIkbCIKLSsJCSAgZG9u ZQotKwkJICBpZiB0ZXN0ICJYJGxsIiA9ICJYJG9sZF9saWJyYXJ5IiA7IHRoZW4gIyBvbmx5IHN0 YXRpYyB2ZXJzaW9uIGF2YWlsYWJsZQotKwkJICAgIGZvdW5kPW5vCi0rCQkgICAgZnVuY19kaXJu YW1lICIkbGliIiAiIiAiLiIKLSsJCSAgICBsYWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0r CQkgICAgbGliPSRsYWRpci8kb2xkX2xpYnJhcnkKLSsJCSAgICBpZiB0ZXN0ICIkbGlua21vZGUs JHBhc3MiID0gInByb2csbGluayI7IHRoZW4KLSsJCSAgICAgIGNvbXBpbGVfZGVwbGlicz0iJGRl cGxpYiAkY29tcGlsZV9kZXBsaWJzIgotKwkJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxp YiAkZmluYWxpemVfZGVwbGlicyIKLSsJCSAgICBlbHNlCi0rCQkgICAgICBkZXBsaWJzPSIkZGVw bGliICRkZXBsaWJzIgotKwkJICAgICAgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiAmJiBuZXdkZXBl bmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKLSsJCSAgICBmaQotKwkJ ICAgIGNvbnRpbnVlCi0rCQkgIGZpCi0rCQlmaQotKwkJOzsKLSsJICAgICAgKikgOzsKLSsJICAg ICAgZXNhYwotKwkgICAgZmkKLSsJICBmaQotKwkgIDs7ICMgLWwKLSsJKi5sdGZyYW1ld29yaykK LSsJICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KLSsJICAg IGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgZmluYWxp emVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKLSsJICBlbHNlCi0rCSAgICBk ZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxp YiA7IHRoZW4KLSsJCWNhc2UgIiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCi0rCQkg ICAgKiIgJGRlcGxpYiAiKikgOzsKLSsJCSAgICAqICkgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxh Z3M9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkZGVwbGliIiA7OwotKwkJZXNhYwotKwkg ICAgZmkKLSsJICBmaQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJLUwqKQotKwkgIGNhc2UgJGxp bmttb2RlIGluCi0rCSAgbGliKQotKwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJ ICAgIHRlc3QgIiRwYXNzIiA9IGNvbnYgJiYgY29udGludWUKLSsJICAgIG5ld2RlcGVuZGVuY3lf bGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgotKwkgICAgZnVuY19zdHJpcG5hbWUg Jy1MJyAnJyAiJGRlcGxpYiIKLSsJICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFy Y2hfcGF0aCAkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgotKwkgICAgOzsKLSsJICBwcm9nKQotKwkg ICAgaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhlbgotKwkgICAgICBkZXBsaWJzPSIkZGVwbGli ICRkZXBsaWJzIgotKwkgICAgICBjb250aW51ZQotKwkgICAgZmkKLSsJICAgIGlmIHRlc3QgIiRw YXNzIiA9IHNjYW47IHRoZW4KLSsJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJ ICAgIGVsc2UKLSsJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxp YnMiCi0rCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMi Ci0rCSAgICBmaQotKwkgICAgZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGRlcGxpYiIKLSsJICAg IG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkZnVuY19zdHJpcG5hbWVf cmVzdWx0IgotKwkgICAgOzsKLSsJICAqKQotKwkgICAgZnVuY193YXJuaW5nICJcYC1MJyBpcyBp Z25vcmVkIGZvciBhcmNoaXZlcy9vYmplY3RzIgotKwkgICAgOzsKLSsJICBlc2FjICMgbGlua21v ZGUKLSsJICBjb250aW51ZQotKwkgIDs7ICMgLUwKLSsJLVIqKQotKwkgIGlmIHRlc3QgIiRwYXNz IiA9IGxpbms7IHRoZW4KLSsJICAgIGZ1bmNfc3RyaXBuYW1lICctUicgJycgIiRkZXBsaWIiCi0r CSAgICBkaXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwkgICAgIyBNYWtlIHN1cmUgdGhlIHhy cGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KLSsJICAgIGNhc2UgIiR4cnBh dGggIiBpbgotKwkgICAgKiIgJGRpciAiKikgOzsKLSsJICAgICopIHhycGF0aD0iJHhycGF0aCAk ZGlyIiA7OwotKwkgICAgZXNhYwotKwkgIGZpCi0rCSAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGli cyIKLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCSoubGEpIGxpYj0iJGRlcGxpYiIgOzsKLSsJKi4k bGliZXh0KQotKwkgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KLSsJICAgIGRlcGxpYnM9 IiRkZXBsaWIgJGRlcGxpYnMiCi0rCSAgICBjb250aW51ZQotKwkgIGZpCi0rCSAgY2FzZSAkbGlu a21vZGUgaW4KLSsJICBsaWIpCi0rCSAgICAjIExpbmtpbmcgY29udmVuaWVuY2UgbW9kdWxlcyBp bnRvIHNoYXJlZCBsaWJyYXJpZXMgaXMgYWxsb3dlZCwKLSsJICAgICMgYnV0IGxpbmtpbmcgb3Ro ZXIgc3RhdGljIGxpYnJhcmllcyBpcyBub24tcG9ydGFibGUuCi0rCSAgICBjYXNlICIgJGRscHJl Y29udmVuaWVuY2VsaWJzICIgaW4KLSsJICAgICoiICRkZXBsaWIgIiopIDs7Ci0rCSAgICAqKQot KwkgICAgICB2YWxpZF9hX2xpYj1ubwotKwkgICAgICBjYXNlICRkZXBsaWJzX2NoZWNrX21ldGhv ZCBpbgotKwkJbWF0Y2hfcGF0dGVybiopCi0rCQkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19t ZXRob2Q7IHNoaWZ0Ci0rCQkgIG1hdGNoX3BhdHRlcm5fcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2No ZWNrX21ldGhvZCIgOiAiJDEgXCguKlwpImAKLSsJCSAgaWYgZXZhbCAiXCRFQ0hPIFwiWCRkZXBs aWJcIiIgMj4vZGV2L251bGwgfCAkWHNlZCAtZSAxMHEgXAotKwkJICAgIHwgJEVHUkVQICIkbWF0 Y2hfcGF0dGVybl9yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KLSsJCSAgICB2YWxpZF9hX2xpYj15 ZXMKLSsJCSAgZmkKLSsJCTs7Ci0rCQlwYXNzX2FsbCkKLSsJCSAgdmFsaWRfYV9saWI9eWVzCi0r CQk7OwotKwkgICAgICBlc2FjCi0rCSAgICAgIGlmIHRlc3QgIiR2YWxpZF9hX2xpYiIgIT0geWVz OyB0aGVuCi0rCQkkRUNITwotKwkJJEVDSE8gIioqKiBXYXJuaW5nOiBUcnlpbmcgdG8gbGluayB3 aXRoIHN0YXRpYyBsaWIgYXJjaGl2ZSAkZGVwbGliLiIKLSsJCSRFQ0hPICIqKiogSSBoYXZlIHRo ZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3 aGVuIgotKwkJJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4g b25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0rCQkkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9u IG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgotKwkJJEVD SE8gIioqKiBiZWNhdXNlIHRoZSBmaWxlIGV4dGVuc2lvbnMgLiRsaWJleHQgb2YgdGhpcyBhcmd1 bWVudCBtYWtlcyBtZSBiZWxpZXZlIgotKwkJJEVDSE8gIioqKiB0aGF0IGl0IGlzIGp1c3QgYSBz dGF0aWMgYXJjaGl2ZSB0aGF0IEkgc2hvdWxkIG5vdCB1c2UgaGVyZS4iCi0rCSAgICAgIGVsc2UK LSsJCSRFQ0hPCi0rCQkkRUNITyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIHNoYXJlZCBsaWJy YXJ5ICRvdXRwdXQgYWdhaW5zdCB0aGUiCi0rCQkkRUNITyAiKioqIHN0YXRpYyBsaWJyYXJ5ICRk ZXBsaWIgaXMgbm90IHBvcnRhYmxlISIKLSsJCWRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0r CSAgICAgIGZpCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICBjb250aW51ZQotKwkgICAg OzsKLSsJICBwcm9nKQotKwkgICAgaWYgdGVzdCAiJHBhc3MiICE9IGxpbms7IHRoZW4KLSsJICAg ICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgIGVsc2UKLSsJICAgICAgY29tcGls ZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCi0rCSAgICAgIGZpbmFsaXplX2Rl cGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgICBmaQotKwkgICAgY29udGlu dWUKLSsJICAgIDs7Ci0rCSAgZXNhYyAjIGxpbmttb2RlCi0rCSAgOzsgIyAqLiRsaWJleHQKLSsJ Ki5sbyB8ICouJG9iamV4dCkKLSsJICBpZiB0ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCi0rCSAg ICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotKwkgIGVsaWYgdGVzdCAiJGxpbmttb2RlIiA9 IHByb2c7IHRoZW4KLSsJICAgIGlmIHRlc3QgIiRwYXNzIiA9IGRscHJlb3BlbiB8fCB0ZXN0ICIk ZGxvcGVuX3N1cHBvcnQiICE9IHllcyB8fCB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG5v OyB0aGVuCi0rCSAgICAgICMgSWYgdGhlcmUgaXMgbm8gZGxvcGVuIHN1cHBvcnQgb3Igd2UncmUg bGlua2luZyBzdGF0aWNhbGx5LAotKwkgICAgICAjIHdlIG5lZWQgdG8gcHJlbG9hZC4KLSsJICAg ICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRlcGxpYiIKLSsJICAgICAgY29tcGls ZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCi0rCSAgICAgIGZpbmFsaXplX2Rl cGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgICBlbHNlCi0rCSAgICAgIG5l d2RsZmlsZXM9IiRuZXdkbGZpbGVzICRkZXBsaWIiCi0rCSAgICBmaQotKwkgIGZpCi0rCSAgY29u dGludWUKLSsJICA7OwotKwklREVQTElCUyUpCi0rCSAgYWxsZGVwbGlicz15ZXMKLSsJICBjb250 aW51ZQotKwkgIDs7Ci0rCWVzYWMgIyBjYXNlICRkZXBsaWIKLSsKLSsJaWYgdGVzdCAiJGZvdW5k IiA9IHllcyB8fCB0ZXN0IC1mICIkbGliIjsgdGhlbiA6Ci0rCWVsc2UKLSsJICBmdW5jX2ZhdGFs X2Vycm9yICJjYW5ub3QgZmluZCB0aGUgbGlicmFyeSBcYCRsaWInIG9yIHVuaGFuZGxlZCBhcmd1 bWVudCBcYCRkZXBsaWInIgotKwlmaQotKwotKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVh bGx5IGlzIGEgbGlidG9vbCBhcmNoaXZlLgotKwlmdW5jX2xhbGliX3Vuc2FmZV9wICIkbGliIiBc Ci0rCSAgfHwgZnVuY19mYXRhbF9lcnJvciAiXGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29s IGFyY2hpdmUiCi0rCi0rCWZ1bmNfZGlybmFtZSAiJGxpYiIgIiIgIi4iCi0rCWxhZGlyPSIkZnVu Y19kaXJuYW1lX3Jlc3VsdCIKLSsKLSsJZGxuYW1lPQotKwlkbG9wZW49Ci0rCWRscHJlb3Blbj0K LSsJbGliZGlyPQotKwlsaWJyYXJ5X25hbWVzPQotKwlvbGRfbGlicmFyeT0KLSsJaW5oZXJpdGVk X2xpbmtlcl9mbGFncz0KLSsJIyBJZiB0aGUgbGlicmFyeSB3YXMgaW5zdGFsbGVkIHdpdGggYW4g b2xkIHJlbGVhc2Ugb2YgbGlidG9vbCwKLSsJIyBpdCB3aWxsIG5vdCByZWRlZmluZSB2YXJpYWJs ZXMgaW5zdGFsbGVkLCBvciBzaG91bGRub3RsaW5rCi0rCWluc3RhbGxlZD15ZXMKLSsJc2hvdWxk bm90bGluaz1ubwotKwlhdm9pZHRlbXBycGF0aD0KLSsKLSsKLSsJIyBSZWFkIHRoZSAubGEgZmls ZQotKwlmdW5jX3NvdXJjZSAiJGxpYiIKLSsKLSsJIyBDb252ZXJ0ICItZnJhbWV3b3JrIGZvbyIg dG8gImZvby5sdGZyYW1ld29yayIKLSsJaWYgdGVzdCAtbiAiJGluaGVyaXRlZF9saW5rZXJfZmxh Z3MiOyB0aGVuCi0rCSAgdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9YCRFQ0hPICJYJGluaGVy aXRlZF9saW5rZXJfZmxhZ3MiIHwgJFhzZWQgLWUgJ3MvLWZyYW1ld29yayBcKFteICRdKlwpL1wx Lmx0ZnJhbWV3b3JrL2cnYAotKwkgIGZvciB0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnIGluICR0 bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnczsgZG8KLSsJICAgIGNhc2UgIiAkbmV3X2luaGVyaXRl ZF9saW5rZXJfZmxhZ3MgIiBpbgotKwkgICAgICAqIiAkdG1wX2luaGVyaXRlZF9saW5rZXJfZmxh ZyAiKikgOzsKLSsJICAgICAgKikgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9IiRuZXdfaW5o ZXJpdGVkX2xpbmtlcl9mbGFncyAkdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZyI7OwotKwkgICAg ZXNhYwotKwkgIGRvbmUKLSsJZmkKLSsJZGVwZW5kZW5jeV9saWJzPWAkRUNITyAiWCAkZGVwZW5k ZW5jeV9saWJzIiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3 b3JrIFwxJWcnYAotKwlpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxpYixsaW5rIiB8fAot KwkgICB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csc2NhbiIgfHwKLSsJICAgeyB0ZXN0 ICIkbGlua21vZGUiICE9IHByb2cgJiYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWI7IH07IHRoZW4K LSsJICB0ZXN0IC1uICIkZGxvcGVuIiAmJiBkbGZpbGVzPSIkZGxmaWxlcyAkZGxvcGVuIgotKwkg IHRlc3QgLW4gIiRkbHByZW9wZW4iICYmIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRkbHByZW9w ZW4iCi0rCWZpCi0rCi0rCWlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KLSsJICAjIE9ubHkg Y2hlY2sgZm9yIGNvbnZlbmllbmNlIGxpYnJhcmllcwotKwkgIGRlcGxpYnM9IiRsaWIgJGRlcGxp YnMiCi0rCSAgaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KLSsJICAgIGlmIHRlc3QgLXogIiRv bGRfbGlicmFyeSI7IHRoZW4KLSsJICAgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQg bmFtZSBvZiBsaW5rIGxpYnJhcnkgZm9yIFxgJGxpYiciCi0rCSAgICBmaQotKwkgICAgIyBJdCBp cyBhIGxpYnRvb2wgY29udmVuaWVuY2UgbGlicmFyeSwgc28gYWRkIGluIGl0cyBvYmplY3RzLgot KwkgICAgY29udmVuaWVuY2U9IiRjb252ZW5pZW5jZSAkbGFkaXIvJG9iamRpci8kb2xkX2xpYnJh cnkiCi0rCSAgICBvbGRfY29udmVuaWVuY2U9IiRvbGRfY29udmVuaWVuY2UgJGxhZGlyLyRvYmpk aXIvJG9sZF9saWJyYXJ5IgotKwkgIGVsaWYgdGVzdCAiJGxpbmttb2RlIiAhPSBwcm9nICYmIHRl c3QgIiRsaW5rbW9kZSIgIT0gbGliOyB0aGVuCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRs aWInIGlzIG5vdCBhIGNvbnZlbmllbmNlIGxpYnJhcnkiCi0rCSAgZmkKLSsJICB0bXBfbGlicz0K LSsJICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCi0rCSAgICBkZXBsaWJzPSIk ZGVwbGliICRkZXBsaWJzIgotKwkgICAgaWYgJG9wdF9kdXBsaWNhdGVfZGVwcyA7IHRoZW4KLSsJ ICAgICAgY2FzZSAiJHRtcF9saWJzICIgaW4KLSsJICAgICAgKiIgJGRlcGxpYiAiKikgc3BlY2lh bGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkZGVwbGliIiA7OwotKwkgICAgICBlc2FjCi0rCSAg ICBmaQotKwkgICAgdG1wX2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIgotKwkgIGRvbmUKLSsJICBj b250aW51ZQotKwlmaSAjICRwYXNzID0gY29udgotKwotKwotKwkjIEdldCB0aGUgbmFtZSBvZiB0 aGUgbGlicmFyeSB3ZSBsaW5rIGFnYWluc3QuCi0rCWxpbmtsaWI9Ci0rCWZvciBsIGluICRvbGRf bGlicmFyeSAkbGlicmFyeV9uYW1lczsgZG8KLSsJICBsaW5rbGliPSIkbCIKLSsJZG9uZQotKwlp ZiB0ZXN0IC16ICIkbGlua2xpYiI7IHRoZW4KLSsJICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3Qg ZmluZCBuYW1lIG9mIGxpbmsgbGlicmFyeSBmb3IgXGAkbGliJyIKLSsJZmkKLSsKLSsJIyBUaGlz IGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbG9wZW4uCi0rCWlmIHRlc3QgIiRwYXNzIiA9 IGRsb3BlbjsgdGhlbgotKwkgIGlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCi0rCSAgICBmdW5j X2ZhdGFsX2Vycm9yICJjYW5ub3QgLWRsb3BlbiBhIGNvbnZlbmllbmNlIGxpYnJhcnk6IFxgJGxp YiciCi0rCSAgZmkKLSsJICBpZiB0ZXN0IC16ICIkZGxuYW1lIiB8fAotKwkgICAgIHRlc3QgIiRk bG9wZW5fc3VwcG9ydCIgIT0geWVzIHx8Ci0rCSAgICAgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGli cyIgPSBubzsgdGhlbgotKwkgICAgIyBJZiB0aGVyZSBpcyBubyBkbG5hbWUsIG5vIGRsb3BlbiBz dXBwb3J0IG9yIHdlJ3JlIGxpbmtpbmcKLSsJICAgICMgc3RhdGljYWxseSwgd2UgbmVlZCB0byBw cmVsb2FkLiAgV2UgYWxzbyBuZWVkIHRvIHByZWxvYWQgYW55Ci0rCSAgICAjIGRlcGVuZGVudCBs aWJyYXJpZXMgc28gbGlibHRkbCdzIGRlcGxpYiBwcmVsb2FkZXIgZG9lc24ndAotKwkgICAgIyBi b21iIG91dCBpbiB0aGUgbG9hZCBkZXBsaWJzIHBoYXNlLgotKwkgICAgZGxwcmVmaWxlcz0iJGRs cHJlZmlsZXMgJGxpYiAkZGVwZW5kZW5jeV9saWJzIgotKwkgIGVsc2UKLSsJICAgIG5ld2RsZmls ZXM9IiRuZXdkbGZpbGVzICRsaWIiCi0rCSAgZmkKLSsJICBjb250aW51ZQotKwlmaSAjICRwYXNz ID0gZGxvcGVuCi0rCi0rCSMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgotKwljYXNlICRsYWRp ciBpbgotKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFic19sYWRpcj0iJGxhZGlyIiA7Owot KwkqKQotKwkgIGFic19sYWRpcj1gY2QgIiRsYWRpciIgJiYgcHdkYAotKwkgIGlmIHRlc3QgLXog IiRhYnNfbGFkaXIiOyB0aGVuCi0rCSAgICBmdW5jX3dhcm5pbmcgImNhbm5vdCBkZXRlcm1pbmUg YWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgb2YgXGAkbGFkaXInIgotKwkgICAgZnVuY193YXJuaW5n ICJwYXNzaW5nIGl0IGxpdGVyYWxseSB0byB0aGUgbGlua2VyLCBhbHRob3VnaCBpdCBtaWdodCBm YWlsIgotKwkgICAgYWJzX2xhZGlyPSIkbGFkaXIiCi0rCSAgZmkKLSsJICA7OwotKwllc2FjCi0r CWZ1bmNfYmFzZW5hbWUgIiRsaWIiCi0rCWxhbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0Igot KwotKwkjIEZpbmQgdGhlIHJlbGV2YW50IG9iamVjdCBkaXJlY3RvcnkgYW5kIGxpYnJhcnkgbmFt ZS4KLSsJaWYgdGVzdCAiWCRpbnN0YWxsZWQiID0gWHllczsgdGhlbgotKwkgIGlmIHRlc3QgISAt ZiAiJGxpYmRpci8kbGlua2xpYiIgJiYgdGVzdCAtZiAiJGFic19sYWRpci8kbGlua2xpYiI7IHRo ZW4KLSsJICAgIGZ1bmNfd2FybmluZyAibGlicmFyeSBcYCRsaWInIHdhcyBtb3ZlZC4iCi0rCSAg ICBkaXI9IiRsYWRpciIKLSsJICAgIGFic2Rpcj0iJGFic19sYWRpciIKLSsJICAgIGxpYmRpcj0i JGFic19sYWRpciIKLSsJICBlbHNlCi0rCSAgICBkaXI9IiRsaWJkaXIiCi0rCSAgICBhYnNkaXI9 IiRsaWJkaXIiCi0rCSAgZmkKLSsJICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSBYeWVz ICYmIGF2b2lkdGVtcHJwYXRoPXllcwotKwllbHNlCi0rCSAgaWYgdGVzdCAhIC1mICIkbGFkaXIv JG9iamRpci8kbGlua2xpYiIgJiYgdGVzdCAtZiAiJGFic19sYWRpci8kbGlua2xpYiI7IHRoZW4K LSsJICAgIGRpcj0iJGxhZGlyIgotKwkgICAgYWJzZGlyPSIkYWJzX2xhZGlyIgotKwkgICAgIyBS ZW1vdmUgdGhpcyBzZWFyY2ggcGF0aCBsYXRlcgotKwkgICAgbm90aW5zdF9wYXRoPSIkbm90aW5z dF9wYXRoICRhYnNfbGFkaXIiCi0rCSAgZWxzZQotKwkgICAgZGlyPSIkbGFkaXIvJG9iamRpciIK LSsJICAgIGFic2Rpcj0iJGFic19sYWRpci8kb2JqZGlyIgotKwkgICAgIyBSZW1vdmUgdGhpcyBz ZWFyY2ggcGF0aCBsYXRlcgotKwkgICAgbm90aW5zdF9wYXRoPSIkbm90aW5zdF9wYXRoICRhYnNf bGFkaXIiCi0rCSAgZmkKLSsJZmkgIyAkaW5zdGFsbGVkID0geWVzCi0rCWZ1bmNfc3RyaXBuYW1l ICdsaWInICcubGEnICIkbGFuYW1lIgotKwluYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsK LSsJIyBUaGlzIGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbHByZW9wZW4uCi0rCWlmIHRl c3QgIiRwYXNzIiA9IGRscHJlb3BlbjsgdGhlbgotKwkgIGlmIHRlc3QgLXogIiRsaWJkaXIiICYm IHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJv bmx5IGxpYnJhcmllcyBtYXkgLWRscHJlb3BlbiBhIGNvbnZlbmllbmNlIGxpYnJhcnk6IFxgJGxp YiciCi0rCSAgZmkKLSsJICAjIFByZWZlciB1c2luZyBhIHN0YXRpYyBsaWJyYXJ5IChzbyB0aGF0 IG5vIHNpbGx5IF9EWU5BTUlDIHN5bWJvbHMKLSsJICAjIGFyZSByZXF1aXJlZCB0byBsaW5rKS4K LSsJICBpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiOyB0aGVuCi0rCSAgICBuZXdkbHByZWZpbGVz PSIkbmV3ZGxwcmVmaWxlcyAkZGlyLyRvbGRfbGlicmFyeSIKLSsJICAgICMgS2VlcCBhIGxpc3Qg b2YgcHJlb3BlbmVkIGNvbnZlbmllbmNlIGxpYnJhcmllcyB0byBjaGVjawotKwkgICAgIyB0aGF0 IHRoZXkgYXJlIGJlaW5nIHVzZWQgY29ycmVjdGx5IGluIHRoZSBsaW5rIHBhc3MuCi0rCSAgICB0 ZXN0IC16ICIkbGliZGlyIiAmJiBcCi0rCQlkbHByZWNvbnZlbmllbmNlbGlicz0iJGRscHJlY29u dmVuaWVuY2VsaWJzICRkaXIvJG9sZF9saWJyYXJ5IgotKwkgICMgT3RoZXJ3aXNlLCB1c2UgdGhl IGRsbmFtZSwgc28gdGhhdCBsdF9kbG9wZW4gZmluZHMgaXQuCi0rCSAgZWxpZiB0ZXN0IC1uICIk ZGxuYW1lIjsgdGhlbgotKwkgICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRpci8k ZGxuYW1lIgotKwkgIGVsc2UKLSsJICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRk aXIvJGxpbmtsaWIiCi0rCSAgZmkKLSsJZmkgIyAkcGFzcyA9IGRscHJlb3BlbgotKwotKwlpZiB0 ZXN0IC16ICIkbGliZGlyIjsgdGhlbgotKwkgICMgTGluayB0aGUgY29udmVuaWVuY2UgbGlicmFy eQotKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KLSsJICAgIGRlcGxpYnM9IiRk aXIvJG9sZF9saWJyYXJ5ICRkZXBsaWJzIgotKwkgIGVsaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNz IiA9ICJwcm9nLGxpbmsiOyB0aGVuCi0rCSAgICBjb21waWxlX2RlcGxpYnM9IiRkaXIvJG9sZF9s aWJyYXJ5ICRjb21waWxlX2RlcGxpYnMiCi0rCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGlyLyRv bGRfbGlicmFyeSAkZmluYWxpemVfZGVwbGlicyIKLSsJICBlbHNlCi0rCSAgICBkZXBsaWJzPSIk bGliICRkZXBsaWJzIiAjIHVzZWQgZm9yIHByb2csc2NhbiBwYXNzCi0rCSAgZmkKLSsJICBjb250 aW51ZQotKwlmaQotKwotKwotKwlpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyAmJiB0ZXN0ICIk cGFzcyIgIT0gbGluazsgdGhlbgotKwkgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFy Y2hfcGF0aCAkbGFkaXIiCi0rCSAgZGVwbGlicz0iJGxpYiAkZGVwbGlicyIKLSsKLSsJICBsaW5r YWxsZGVwbGlicz1ubwotKwkgIGlmIHRlc3QgIiRsaW5rX2FsbF9kZXBsaWJzIiAhPSBubyB8fCB0 ZXN0IC16ICIkbGlicmFyeV9uYW1lcyIgfHwKLSsJICAgICB0ZXN0ICIkYnVpbGRfbGlidG9vbF9s aWJzIiA9IG5vOyB0aGVuCi0rCSAgICBsaW5rYWxsZGVwbGlicz15ZXMKLSsJICBmaQotKwotKwkg IHRtcF9saWJzPQotKwkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KLSsJICAg IGNhc2UgJGRlcGxpYiBpbgotKwkgICAgLUwqKSBmdW5jX3N0cmlwbmFtZSAnLUwnICcnICIkZGVw bGliIgotKwkgICAgICAgICBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGgg JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKLSsJCSA7OwotKwkgICAgZXNhYwotKwkgICAgIyBOZWVk IHRvIGxpbmsgYWdhaW5zdCBhbGwgZGVwZW5kZW5jeV9saWJzPwotKwkgICAgaWYgdGVzdCAiJGxp bmthbGxkZXBsaWJzIiA9IHllczsgdGhlbgotKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBs aWJzIgotKwkgICAgZWxzZQotKwkgICAgICAjIE5lZWQgdG8gaGFyZGNvZGUgc2hhcmVkIGxpYnJh cnkgcGF0aHMKLSsJICAgICAgIyBvci9hbmQgbGluayBhZ2FpbnN0IHN0YXRpYyBsaWJyYXJpZXMK LSsJICAgICAgbmV3ZGVwZW5kZW5jeV9saWJzPSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xpYnMi Ci0rCSAgICBmaQotKwkgICAgaWYgJG9wdF9kdXBsaWNhdGVfZGVwcyA7IHRoZW4KLSsJICAgICAg Y2FzZSAiJHRtcF9saWJzICIgaW4KLSsJICAgICAgKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxp YnM9IiRzcGVjaWFsZGVwbGlicyAkZGVwbGliIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICBmaQot KwkgICAgdG1wX2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIgotKwkgIGRvbmUgIyBmb3IgZGVwbGli Ci0rCSAgY29udGludWUKLSsJZmkgIyAkbGlua21vZGUgPSBwcm9nLi4uCi0rCi0rCWlmIHRlc3Qg IiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgotKwkgIGlmIHRlc3QgLW4gIiRs aWJyYXJ5X25hbWVzIiAmJgotKwkgICAgIHsgeyB0ZXN0ICIkcHJlZmVyX3N0YXRpY19saWJzIiA9 IG5vIHx8Ci0rCSAgICAgICAgIHRlc3QgIiRwcmVmZXJfc3RhdGljX2xpYnMsJGluc3RhbGxlZCIg PSAiYnVpbHQseWVzIjsgfSB8fAotKwkgICAgICAgdGVzdCAteiAiJG9sZF9saWJyYXJ5IjsgfTsg dGhlbgotKwkgICAgIyBXZSBuZWVkIHRvIGhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGgKLSsJICAg IGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIiAmJiB0ZXN0IC16ICIkYXZvaWR0ZW1wcnBhdGgi IDsgdGhlbgotKwkgICAgICAjIE1ha2Ugc3VyZSB0aGUgcnBhdGggY29udGFpbnMgb25seSB1bmlx dWUgZGlyZWN0b3JpZXMuCi0rCSAgICAgIGNhc2UgIiR0ZW1wX3JwYXRoOiIgaW4KLSsJICAgICAg KiIkYWJzZGlyOiIqKSA7OwotKwkgICAgICAqKSB0ZW1wX3JwYXRoPSIkdGVtcF9ycGF0aCRhYnNk aXI6IiA7OwotKwkgICAgICBlc2FjCi0rCSAgICBmaQotKwotKwkgICAgIyBIYXJkY29kZSB0aGUg bGlicmFyeSBwYXRoLgotKwkgICAgIyBTa2lwIGRpcmVjdG9yaWVzIHRoYXQgYXJlIGluIHRoZSBz eXN0ZW0gZGVmYXVsdCBydW4tdGltZQotKwkgICAgIyBzZWFyY2ggcGF0aC4KLSsJICAgIGNhc2Ug IiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KLSsJICAgICoiICRhYnNkaXIgIiopIDs7Ci0r CSAgICAqKQotKwkgICAgICBjYXNlICIkY29tcGlsZV9ycGF0aCAiIGluCi0rCSAgICAgICoiICRh YnNkaXIgIiopIDs7Ci0rCSAgICAgICopIGNvbXBpbGVfcnBhdGg9IiRjb21waWxlX3JwYXRoICRh YnNkaXIiCi0rCSAgICAgIGVzYWMKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAgIGNhc2Ug IiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KLSsJICAgICoiICRsaWJkaXIgIiopIDs7Ci0r CSAgICAqKQotKwkgICAgICBjYXNlICIkZmluYWxpemVfcnBhdGggIiBpbgotKwkgICAgICAqIiAk bGliZGlyICIqKSA7OwotKwkgICAgICAqKSBmaW5hbGl6ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRo ICRsaWJkaXIiCi0rCSAgICAgIGVzYWMKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICBmaSAj ICRsaW5rbW9kZSwkcGFzcyA9IHByb2csbGluay4uLgotKwotKwkgIGlmIHRlc3QgIiRhbGxkZXBs aWJzIiA9IHllcyAmJgotKwkgICAgIHsgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA9IHBh c3NfYWxsIHx8Ci0rCSAgICAgICB7IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYm Ci0rCQkgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiOyB9OyB9OyB0aGVuCi0rCSAgICAjIFdlIG9u bHkgbmVlZCB0byBzZWFyY2ggZm9yIHN0YXRpYyBsaWJyYXJpZXMKLSsJICAgIGNvbnRpbnVlCi0r CSAgZmkKLSsJZmkKLSsKLSsJbGlua19zdGF0aWM9bm8gIyBXaGV0aGVyIHRoZSBkZXBsaWIgd2ls bCBiZSBsaW5rZWQgc3RhdGljYWxseQotKwl1c2Vfc3RhdGljX2xpYnM9JHByZWZlcl9zdGF0aWNf bGlicwotKwlpZiB0ZXN0ICIkdXNlX3N0YXRpY19saWJzIiA9IGJ1aWx0ICYmIHRlc3QgIiRpbnN0 YWxsZWQiID0geWVzOyB0aGVuCi0rCSAgdXNlX3N0YXRpY19saWJzPW5vCi0rCWZpCi0rCWlmIHRl c3QgLW4gIiRsaWJyYXJ5X25hbWVzIiAmJgotKwkgICB7IHRlc3QgIiR1c2Vfc3RhdGljX2xpYnMi ID0gbm8gfHwgdGVzdCAteiAiJG9sZF9saWJyYXJ5IjsgfTsgdGhlbgotKwkgIGNhc2UgJGhvc3Qg aW4KLSsJICAqY3lnd2luKiB8ICptaW5ndyogfCAqY2VnY2MqKQotKwkgICAgICAjIE5vIHBvaW50 IGluIHJlbGlua2luZyBETExzIGJlY2F1c2UgcGF0aHMgYXJlIG5vdCBlbmNvZGVkCi0rCSAgICAg IG5vdGluc3RfZGVwbGlicz0iJG5vdGluc3RfZGVwbGlicyAkbGliIgotKwkgICAgICBuZWVkX3Jl bGluaz1ubwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgaWYgdGVzdCAiJGluc3RhbGxlZCIgPSBu bzsgdGhlbgotKwkgICAgICBub3RpbnN0X2RlcGxpYnM9IiRub3RpbnN0X2RlcGxpYnMgJGxpYiIK LSsJICAgICAgbmVlZF9yZWxpbms9eWVzCi0rCSAgICBmaQotKwkgICAgOzsKLSsJICBlc2FjCi0r CSAgIyBUaGlzIGlzIGEgc2hhcmVkIGxpYnJhcnkKLSsKLSsJICAjIFdhcm4gYWJvdXQgcG9ydGFi aWxpdHksIGNhbid0IGxpbmsgYWdhaW5zdCAtbW9kdWxlJ3Mgb24gc29tZQotKwkgICMgc3lzdGVt cyAoZGFyd2luKS4gIERvbid0IGJsZWF0IGFib3V0IGRsb3BlbmVkIG1vZHVsZXMgdGhvdWdoIQot KwkgIGRsb3Blbm1vZHVsZT0iIgotKwkgIGZvciBkbHByZW1vZHVsZXRlc3QgaW4gJGRscHJlZmls ZXM7IGRvCi0rCSAgICBpZiB0ZXN0ICJYJGRscHJlbW9kdWxldGVzdCIgPSAiWCRsaWIiOyB0aGVu Ci0rCSAgICAgIGRsb3Blbm1vZHVsZT0iJGRscHJlbW9kdWxldGVzdCIKLSsJICAgICAgYnJlYWsK LSsJICAgIGZpCi0rCSAgZG9uZQotKwkgIGlmIHRlc3QgLXogIiRkbG9wZW5tb2R1bGUiICYmIHRl c3QgIiRzaG91bGRub3RsaW5rIiA9IHllcyAmJiB0ZXN0ICIkcGFzcyIgPSBsaW5rOyB0aGVuCi0r CSAgICAkRUNITwotKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KLSsJICAg ICAgJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBleGVjdXRhYmxlICRvdXRwdXQgYWdh aW5zdCB0aGUgbG9hZGFibGUgbW9kdWxlIgotKwkgICAgZWxzZQotKwkgICAgICAkRUNITyAiKioq IFdhcm5pbmc6IExpbmtpbmcgdGhlIHNoYXJlZCBsaWJyYXJ5ICRvdXRwdXQgYWdhaW5zdCB0aGUg bG9hZGFibGUgbW9kdWxlIgotKwkgICAgZmkKLSsJICAgICRFQ0hPICIqKiogJGxpbmtsaWIgaXMg bm90IHBvcnRhYmxlISIKLSsJICBmaQotKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIgJiYK LSsJICAgICB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiA9IHllczsgdGhlbgotKwkgICAgIyBI YXJkY29kZSB0aGUgbGlicmFyeSBwYXRoLgotKwkgICAgIyBTa2lwIGRpcmVjdG9yaWVzIHRoYXQg YXJlIGluIHRoZSBzeXN0ZW0gZGVmYXVsdCBydW4tdGltZQotKwkgICAgIyBzZWFyY2ggcGF0aC4K LSsJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KLSsJICAgICoiICRhYnNk aXIgIiopIDs7Ci0rCSAgICAqKQotKwkgICAgICBjYXNlICIkY29tcGlsZV9ycGF0aCAiIGluCi0r CSAgICAgICoiICRhYnNkaXIgIiopIDs7Ci0rCSAgICAgICopIGNvbXBpbGVfcnBhdGg9IiRjb21w aWxlX3JwYXRoICRhYnNkaXIiCi0rCSAgICAgIGVzYWMKLSsJICAgICAgOzsKLSsJICAgIGVzYWMK LSsJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KLSsJICAgICoiICRsaWJk aXIgIiopIDs7Ci0rCSAgICAqKQotKwkgICAgICBjYXNlICIkZmluYWxpemVfcnBhdGggIiBpbgot KwkgICAgICAqIiAkbGliZGlyICIqKSA7OwotKwkgICAgICAqKSBmaW5hbGl6ZV9ycGF0aD0iJGZp bmFsaXplX3JwYXRoICRsaWJkaXIiCi0rCSAgICAgIGVzYWMKLSsJICAgICAgOzsKLSsJICAgIGVz YWMKLSsJICBmaQotKwotKwkgIGlmIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNf Y21kcyI7IHRoZW4KLSsJICAgICMgZmlndXJlIG91dCB0aGUgc29uYW1lCi0rCSAgICBzZXQgZHVt bXkgJGxpYnJhcnlfbmFtZXMKLSsJICAgIHNoaWZ0Ci0rCSAgICByZWFsbmFtZT0iJDEiCi0rCSAg ICBzaGlmdAotKwkgICAgbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJg Ci0rCSAgICAjIHVzZSBkbG5hbWUgaWYgd2UgZ290IGl0LiBpdCdzIHBlcmZlY3RseSBnb29kLCBu bz8KLSsJICAgIGlmIHRlc3QgLW4gIiRkbG5hbWUiOyB0aGVuCi0rCSAgICAgIHNvbmFtZT0iJGRs bmFtZSIKLSsJICAgIGVsaWYgdGVzdCAtbiAiJHNvbmFtZV9zcGVjIjsgdGhlbgotKwkgICAgICAj IGJsZWggd2luZG93cwotKwkgICAgICBjYXNlICRob3N0IGluCi0rCSAgICAgICpjeWd3aW4qIHwg bWluZ3cqIHwgKmNlZ2NjKikKLSsJICAgICAgICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQot KwkJbWFqb3I9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCQl2ZXJzdWZmaXg9Ii0kbWFqb3IiCi0rCQk7 OwotKwkgICAgICBlc2FjCi0rCSAgICAgIGV2YWwgc29uYW1lPVwiJHNvbmFtZV9zcGVjXCIKLSsJ ICAgIGVsc2UKLSsJICAgICAgc29uYW1lPSIkcmVhbG5hbWUiCi0rCSAgICBmaQotKwotKwkgICAg IyBNYWtlIGEgbmV3IG5hbWUgZm9yIHRoZSBleHRyYWN0X2V4cHN5bXNfY21kcyB0byB1c2UKLSsJ ICAgIHNvcm9vdD0iJHNvbmFtZSIKLSsJICAgIGZ1bmNfYmFzZW5hbWUgIiRzb3Jvb3QiCi0rCSAg ICBzb25hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJICAgIGZ1bmNfc3RyaXBuYW1lICds aWInICcuZGxsJyAiJHNvbmFtZSIKLSsJICAgIG5ld2xpYj1saWJpbXAtJGZ1bmNfc3RyaXBuYW1l X3Jlc3VsdC5hCi0rCi0rCSAgICAjIElmIHRoZSBsaWJyYXJ5IGhhcyBubyBleHBvcnQgbGlzdCwg dGhlbiBjcmVhdGUgb25lIG5vdwotKwkgICAgaWYgdGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJHNv bmFtZS1kZWYiOyB0aGVuIDoKLSsJICAgIGVsc2UKLSsJICAgICAgZnVuY192ZXJib3NlICJleHRy YWN0aW5nIGV4cG9ydGVkIHN5bWJvbCBsaXN0IGZyb20gXGAkc29uYW1lJyIKLSsJICAgICAgZnVu Y19leGVjdXRlX2NtZHMgIiRleHRyYWN0X2V4cHN5bXNfY21kcyIgJ2V4aXQgJD8nCi0rCSAgICBm aQotKwotKwkgICAgIyBDcmVhdGUgJG5ld2xpYgotKwkgICAgaWYgdGVzdCAtZiAiJG91dHB1dF9v YmpkaXIvJG5ld2xpYiI7IHRoZW4gOjsgZWxzZQotKwkgICAgICBmdW5jX3ZlcmJvc2UgImdlbmVy YXRpbmcgaW1wb3J0IGxpYnJhcnkgZm9yIFxgJHNvbmFtZSciCi0rCSAgICAgIGZ1bmNfZXhlY3V0 ZV9jbWRzICIkb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMiICdleGl0ICQ/JwotKwkgICAg ZmkKLSsJICAgICMgbWFrZSBzdXJlIHRoZSBsaWJyYXJ5IHZhcmlhYmxlcyBhcmUgcG9pbnRpbmcg dG8gdGhlIG5ldyBsaWJyYXJ5Ci0rCSAgICBkaXI9JG91dHB1dF9vYmpkaXIKLSsJICAgIGxpbmts aWI9JG5ld2xpYgotKwkgIGZpICMgdGVzdCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19j bWRzIgotKwotKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRtb2RlIiAh PSByZWxpbms7IHRoZW4KLSsJICAgIGFkZF9zaGxpYnBhdGg9Ci0rCSAgICBhZGRfZGlyPQotKwkg ICAgYWRkPQotKwkgICAgbGliX2xpbmtlZD15ZXMKLSsJICAgIGNhc2UgJGhhcmRjb2RlX2FjdGlv biBpbgotKwkgICAgaW1tZWRpYXRlIHwgdW5zdXBwb3J0ZWQpCi0rCSAgICAgIGlmIHRlc3QgIiRo YXJkY29kZV9kaXJlY3QiID0gbm87IHRoZW4KLSsJCWFkZD0iJGRpci8kbGlua2xpYiIKLSsJCWNh c2UgJGhvc3QgaW4KLSsJCSAgKi0qLXNjbzMuMnY1LjAuWzAyNF0qKSBhZGRfZGlyPSItTCRkaXIi IDs7Ci0rCQkgICotKi1zeXN2NCp1dzIqKSBhZGRfZGlyPSItTCRkaXIiIDs7Ci0rCQkgICotKi1z eXN2NU9wZW5VTklYKiB8ICotKi1zeXN2NVVuaXhXYXJlNy5bMDFdLlsxMF0qIHwgXAotKwkJICAg ICotKi11bml4d2FyZTcqKSBhZGRfZGlyPSItTCRkaXIiIDs7Ci0rCQkgICotKi1kYXJ3aW4qICkK LSsJCSAgICAjIGlmIHRoZSBsaWIgaXMgYSAobm9uLWRsb3BlbmVkKSBtb2R1bGUgdGhlbiB3ZSBj YW4gbm90Ci0rCQkgICAgIyBsaW5rIGFnYWluc3QgaXQsIHNvbWVvbmUgaXMgaWdub3JpbmcgdGhl IGVhcmxpZXIgd2FybmluZ3MKLSsJCSAgICBpZiAvdXNyL2Jpbi9maWxlIC1MICRhZGQgMj4gL2Rl di9udWxsIHwKLSsJCQkgJEdSRVAgIjogW146XSogYnVuZGxlIiA+L2Rldi9udWxsIDsgdGhlbgot KwkJICAgICAgaWYgdGVzdCAiWCRkbG9wZW5tb2R1bGUiICE9ICJYJGxpYiI7IHRoZW4KLSsJCQkk RUNITyAiKioqIFdhcm5pbmc6IGxpYiAkbGlua2xpYiBpcyBhIG1vZHVsZSwgbm90IGEgc2hhcmVk IGxpYnJhcnkiCi0rCQkJaWYgdGVzdCAteiAiJG9sZF9saWJyYXJ5IiA7IHRoZW4KLSsJCQkgICRF Q0hPCi0rCQkJICAkRUNITyAiKioqIEFuZCB0aGVyZSBkb2Vzbid0IHNlZW0gdG8gYmUgYSBzdGF0 aWMgYXJjaGl2ZSBhdmFpbGFibGUiCi0rCQkJICAkRUNITyAiKioqIFRoZSBsaW5rIHdpbGwgcHJv YmFibHkgZmFpbCwgc29ycnkiCi0rCQkJZWxzZQotKwkJCSAgYWRkPSIkZGlyLyRvbGRfbGlicmFy eSIKLSsJCQlmaQotKwkJICAgICAgZWxpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiOyB0aGVuCi0r CQkJYWRkPSIkZGlyLyRvbGRfbGlicmFyeSIKLSsJCSAgICAgIGZpCi0rCQkgICAgZmkKLSsJCWVz YWMKLSsJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSBubzsgdGhlbgotKwkJ Y2FzZSAkaG9zdCBpbgotKwkJKi0qLXN1bm9zKikgYWRkX3NobGlicGF0aD0iJGRpciIgOzsKLSsJ CWVzYWMKLSsJCWFkZF9kaXI9Ii1MJGRpciIKLSsJCWFkZD0iLWwkbmFtZSIKLSsJICAgICAgZWxp ZiB0ZXN0ICIkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgPSBubzsgdGhlbgotKwkJYWRkX3NobGli cGF0aD0iJGRpciIKLSsJCWFkZD0iLWwkbmFtZSIKLSsJICAgICAgZWxzZQotKwkJbGliX2xpbmtl ZD1ubwotKwkgICAgICBmaQotKwkgICAgICA7OwotKwkgICAgcmVsaW5rKQotKwkgICAgICBpZiB0 ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IHllcyAmJgotKwkgICAgICAgICB0ZXN0ICIkaGFyZGNv ZGVfZGlyZWN0X2Fic29sdXRlIiA9IG5vOyB0aGVuCi0rCQlhZGQ9IiRkaXIvJGxpbmtsaWIiCi0r CSAgICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiID0geWVzOyB0aGVuCi0rCQlhZGRf ZGlyPSItTCRkaXIiCi0rCQkjIFRyeSBsb29raW5nIGZpcnN0IGluIHRoZSBsb2NhdGlvbiB3ZSdy ZSBiZWluZyBpbnN0YWxsZWQgdG8uCi0rCQlpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsg dGhlbgotKwkJICBjYXNlICRsaWJkaXIgaW4KLSsJCSAgICBbXFwvXSopCi0rCQkgICAgICBhZGRf ZGlyPSIkYWRkX2RpciAtTCRpbnN0X3ByZWZpeF9kaXIkbGliZGlyIgotKwkJICAgICAgOzsKLSsJ CSAgZXNhYwotKwkJZmkKLSsJCWFkZD0iLWwkbmFtZSIKLSsJICAgICAgZWxpZiB0ZXN0ICIkaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhciIgPSB5ZXM7IHRoZW4KLSsJCWFkZF9zaGxpYnBhdGg9IiRkaXIi Ci0rCQlhZGQ9Ii1sJG5hbWUiCi0rCSAgICAgIGVsc2UKLSsJCWxpYl9saW5rZWQ9bm8KLSsJICAg ICAgZmkKLSsJICAgICAgOzsKLSsJICAgICopIGxpYl9saW5rZWQ9bm8gOzsKLSsJICAgIGVzYWMK LSsKLSsJICAgIGlmIHRlc3QgIiRsaWJfbGlua2VkIiAhPSB5ZXM7IHRoZW4KLSsJICAgICAgZnVu Y19mYXRhbF9jb25maWd1cmF0aW9uICJ1bnN1cHBvcnRlZCBoYXJkY29kZSBwcm9wZXJ0aWVzIgot KwkgICAgZmkKLSsKLSsJICAgIGlmIHRlc3QgLW4gIiRhZGRfc2hsaWJwYXRoIjsgdGhlbgotKwkg ICAgICBjYXNlIDokY29tcGlsZV9zaGxpYnBhdGg6IGluCi0rCSAgICAgICoiOiRhZGRfc2hsaWJw YXRoOiIqKSA7OwotKwkgICAgICAqKSBjb21waWxlX3NobGlicGF0aD0iJGNvbXBpbGVfc2hsaWJw YXRoJGFkZF9zaGxpYnBhdGg6IiA7OwotKwkgICAgICBlc2FjCi0rCSAgICBmaQotKwkgICAgaWYg dGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KLSsJICAgICAgdGVzdCAtbiAiJGFkZF9kaXIi ICYmIGNvbXBpbGVfZGVwbGlicz0iJGFkZF9kaXIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAgICAg dGVzdCAtbiAiJGFkZCIgJiYgY29tcGlsZV9kZXBsaWJzPSIkYWRkICRjb21waWxlX2RlcGxpYnMi Ci0rCSAgICBlbHNlCi0rCSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBkZXBsaWJzPSIkYWRk X2RpciAkZGVwbGlicyIKLSsJICAgICAgdGVzdCAtbiAiJGFkZCIgJiYgZGVwbGlicz0iJGFkZCAk ZGVwbGlicyIKLSsJICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgIT0geWVzICYmCi0r CQkgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiICE9IHllcyAmJgotKwkJIHRlc3QgIiRoYXJkY29k ZV9zaGxpYnBhdGhfdmFyIiA9IHllczsgdGhlbgotKwkJY2FzZSA6JGZpbmFsaXplX3NobGlicGF0 aDogaW4KLSsJCSoiOiRsaWJkaXI6IiopIDs7Ci0rCQkqKSBmaW5hbGl6ZV9zaGxpYnBhdGg9IiRm aW5hbGl6ZV9zaGxpYnBhdGgkbGliZGlyOiIgOzsKLSsJCWVzYWMKLSsJICAgICAgZmkKLSsJICAg IGZpCi0rCSAgZmkKLSsKLSsJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyB8fCB0ZXN0ICIk bW9kZSIgPSByZWxpbms7IHRoZW4KLSsJICAgIGFkZF9zaGxpYnBhdGg9Ci0rCSAgICBhZGRfZGly PQotKwkgICAgYWRkPQotKwkgICAgIyBGaW5hbGl6ZSBjb21tYW5kIGZvciBib3RoIGlzIHNpbXBs ZToganVzdCBoYXJkY29kZSBpdC4KLSsJICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiID0g eWVzICYmCi0rCSAgICAgICB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlIiA9IG5vOyB0 aGVuCi0rCSAgICAgIGFkZD0iJGxpYmRpci8kbGlua2xpYiIKLSsJICAgIGVsaWYgdGVzdCAiJGhh cmRjb2RlX21pbnVzX0wiID0geWVzOyB0aGVuCi0rCSAgICAgIGFkZF9kaXI9Ii1MJGxpYmRpciIK LSsJICAgICAgYWRkPSItbCRuYW1lIgotKwkgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfc2hsaWJw YXRoX3ZhciIgPSB5ZXM7IHRoZW4KLSsJICAgICAgY2FzZSA6JGZpbmFsaXplX3NobGlicGF0aDog aW4KLSsJICAgICAgKiI6JGxpYmRpcjoiKikgOzsKLSsJICAgICAgKikgZmluYWxpemVfc2hsaWJw YXRoPSIkZmluYWxpemVfc2hsaWJwYXRoJGxpYmRpcjoiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAg ICAgYWRkPSItbCRuYW1lIgotKwkgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfYXV0b21hdGljIiA9 IHllczsgdGhlbgotKwkgICAgICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIiAmJgotKwkJ IHRlc3QgLWYgIiRpbnN0X3ByZWZpeF9kaXIkbGliZGlyLyRsaW5rbGliIiA7IHRoZW4KLSsJCWFk ZD0iJGluc3RfcHJlZml4X2RpciRsaWJkaXIvJGxpbmtsaWIiCi0rCSAgICAgIGVsc2UKLSsJCWFk ZD0iJGxpYmRpci8kbGlua2xpYiIKLSsJICAgICAgZmkKLSsJICAgIGVsc2UKLSsJICAgICAgIyBX ZSBjYW5ub3Qgc2VlbSB0byBoYXJkY29kZSBpdCwgZ3Vlc3Mgd2UnbGwgZmFrZSBpdC4KLSsJICAg ICAgYWRkX2Rpcj0iLUwkbGliZGlyIgotKwkgICAgICAjIFRyeSBsb29raW5nIGZpcnN0IGluIHRo ZSBsb2NhdGlvbiB3ZSdyZSBiZWluZyBpbnN0YWxsZWQgdG8uCi0rCSAgICAgIGlmIHRlc3QgLW4g IiRpbnN0X3ByZWZpeF9kaXIiOyB0aGVuCi0rCQljYXNlICRsaWJkaXIgaW4KLSsJCSAgW1xcL10q KQotKwkJICAgIGFkZF9kaXI9IiRhZGRfZGlyIC1MJGluc3RfcHJlZml4X2RpciRsaWJkaXIiCi0r CQkgICAgOzsKLSsJCWVzYWMKLSsJICAgICAgZmkKLSsJICAgICAgYWRkPSItbCRuYW1lIgotKwkg ICAgZmkKLSsKLSsJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCi0rCSAgICAg IHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBmaW5hbGl6ZV9kZXBsaWJzPSIkYWRkX2RpciAkZmluYWxp emVfZGVwbGlicyIKLSsJICAgICAgdGVzdCAtbiAiJGFkZCIgJiYgZmluYWxpemVfZGVwbGlicz0i JGFkZCAkZmluYWxpemVfZGVwbGlicyIKLSsJICAgIGVsc2UKLSsJICAgICAgdGVzdCAtbiAiJGFk ZF9kaXIiICYmIGRlcGxpYnM9IiRhZGRfZGlyICRkZXBsaWJzIgotKwkgICAgICB0ZXN0IC1uICIk YWRkIiAmJiBkZXBsaWJzPSIkYWRkICRkZXBsaWJzIgotKwkgICAgZmkKLSsJICBmaQotKwllbGlm IHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCi0rCSAgIyBIZXJlIHdlIGFzc3VtZSB0aGF0 IG9uZSBvZiBoYXJkY29kZV9kaXJlY3Qgb3IgaGFyZGNvZGVfbWludXNfTAotKwkgICMgaXMgbm90 IHVuc3VwcG9ydGVkLiAgVGhpcyBpcyB2YWxpZCBvbiBhbGwga25vd24gc3RhdGljIGFuZAotKwkg ICMgc2hhcmVkIHBsYXRmb3Jtcy4KLSsJICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiAhPSB1 bnN1cHBvcnRlZDsgdGhlbgotKwkgICAgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IiAmJiBsaW5rbGli PSIkb2xkX2xpYnJhcnkiCi0rCSAgICBjb21waWxlX2RlcGxpYnM9IiRkaXIvJGxpbmtsaWIgJGNv bXBpbGVfZGVwbGlicyIKLSsJICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkaXIvJGxpbmtsaWIgJGZp bmFsaXplX2RlcGxpYnMiCi0rCSAgZWxzZQotKwkgICAgY29tcGlsZV9kZXBsaWJzPSItbCRuYW1l IC1MJGRpciAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgZmluYWxpemVfZGVwbGlicz0iLWwkbmFt ZSAtTCRkaXIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgZmkKLSsJZWxpZiB0ZXN0ICIkYnVpbGRf bGlidG9vbF9saWJzIiA9IHllczsgdGhlbgotKwkgICMgTm90IGEgc2hhcmVkIGxpYnJhcnkKLSsJ ICBpZiB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiICE9IHBhc3NfYWxsOyB0aGVuCi0rCSAg ICAjIFdlJ3JlIHRyeWluZyBsaW5rIGEgc2hhcmVkIGxpYnJhcnkgYWdhaW5zdCBhIHN0YXRpYyBv bmUKLSsJICAgICMgYnV0IHRoZSBzeXN0ZW0gZG9lc24ndCBzdXBwb3J0IGl0LgotKwotKwkgICAg IyBKdXN0IHByaW50IGEgd2FybmluZyBhbmQgYWRkIHRoZSBsaWJyYXJ5IHRvIGRlcGVuZGVuY3lf bGlicyBzbwotKwkgICAgIyB0aGF0IHRoZSBwcm9ncmFtIGNhbiBiZSBsaW5rZWQgYWdhaW5zdCB0 aGUgc3RhdGljIGxpYnJhcnkuCi0rCSAgICAkRUNITwotKwkgICAgJEVDSE8gIioqKiBXYXJuaW5n OiBUaGlzIHN5c3RlbSBjYW4gbm90IGxpbmsgdG8gc3RhdGljIGxpYiBhcmNoaXZlICRsaWIuIgot KwkgICAgJEVDSE8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJh cnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCi0rCSAgICAkRUNITyAiKioqIHlvdSBsaW5r IHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIK LSsJICAgICRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlv dSBkbyBub3QgYXBwZWFyIHRvIGhhdmUuIgotKwkgICAgaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXM7 IHRoZW4KLSsJICAgICAgJEVDSE8gIioqKiBCdXQgYXMgeW91IHRyeSB0byBidWlsZCBhIG1vZHVs ZSBsaWJyYXJ5LCBsaWJ0b29sIHdpbGwgc3RpbGwgY3JlYXRlICIKLSsJICAgICAgJEVDSE8gIioq KiBhIHN0YXRpYyBtb2R1bGUsIHRoYXQgc2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0aGUgZGxvcGVu aW5nIGFwcGxpY2F0aW9uIgotKwkgICAgICAkRUNITyAiKioqIGlzIGxpbmtlZCB3aXRoIHRoZSAt ZGxvcGVuIGZsYWcgdG8gcmVzb2x2ZSBzeW1ib2xzIGF0IHJ1bnRpbWUuIgotKwkgICAgICBpZiB0 ZXN0IC16ICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgotKwkJJEVDSE8KLSsJCSRFQ0hPICIq KiogSG93ZXZlciwgdGhpcyB3b3VsZCBvbmx5IHdvcmsgaWYgbGlidG9vbCB3YXMgYWJsZSB0byBl eHRyYWN0IHN5bWJvbCIKLSsJCSRFQ0hPICIqKiogbGlzdHMgZnJvbSBhIHByb2dyYW0sIHVzaW5n IFxgbm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgotKwkJJEVDSE8gIioqKiBu b3QgZmluZCBzdWNoIGEgcHJvZ3JhbS4gIFNvLCB0aGlzIG1vZHVsZSBpcyBwcm9iYWJseSB1c2Vs ZXNzLiIKLSsJCSRFQ0hPICIqKiogXGBubScgZnJvbSBHTlUgYmludXRpbHMgYW5kIGEgZnVsbCBy ZWJ1aWxkIG1heSBoZWxwLiIKLSsJICAgICAgZmkKLSsJICAgICAgaWYgdGVzdCAiJGJ1aWxkX29s ZF9saWJzIiA9IG5vOyB0aGVuCi0rCQlidWlsZF9saWJ0b29sX2xpYnM9bW9kdWxlCi0rCQlidWls ZF9vbGRfbGlicz15ZXMKLSsJICAgICAgZWxzZQotKwkJYnVpbGRfbGlidG9vbF9saWJzPW5vCi0r CSAgICAgIGZpCi0rCSAgICBmaQotKwkgIGVsc2UKLSsJICAgIGRlcGxpYnM9IiRkaXIvJG9sZF9s aWJyYXJ5ICRkZXBsaWJzIgotKwkgICAgbGlua19zdGF0aWM9eWVzCi0rCSAgZmkKLSsJZmkgIyBs aW5rIHNoYXJlZC9zdGF0aWMgbGlicmFyeT8KLSsKLSsJaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxp YjsgdGhlbgotKwkgIGlmIHRlc3QgLW4gIiRkZXBlbmRlbmN5X2xpYnMiICYmCi0rCSAgICAgeyB0 ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiAhPSB5ZXMgfHwKLSsJICAgICAgIHRlc3QgIiRidWls ZF9vbGRfbGlicyIgPSB5ZXMgfHwKLSsJICAgICAgIHRlc3QgIiRsaW5rX3N0YXRpYyIgPSB5ZXM7 IH07IHRoZW4KLSsJICAgICMgRXh0cmFjdCAtUiBmcm9tIGRlcGVuZGVuY3lfbGlicwotKwkgICAg dGVtcF9kZXBsaWJzPQotKwkgICAgZm9yIGxpYmRpciBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwot KwkgICAgICBjYXNlICRsaWJkaXIgaW4KLSsJICAgICAgLVIqKSBmdW5jX3N0cmlwbmFtZSAnLVIn ICcnICIkbGliZGlyIgotKwkgICAgICAgICAgIHRlbXBfeHJwYXRoPSRmdW5jX3N0cmlwbmFtZV9y ZXN1bHQKLSsJCSAgIGNhc2UgIiAkeHJwYXRoICIgaW4KLSsJCSAgICoiICR0ZW1wX3hycGF0aCAi KikgOzsKLSsJCSAgICopIHhycGF0aD0iJHhycGF0aCAkdGVtcF94cnBhdGgiOzsKLSsJCSAgIGVz YWM7OwotKwkgICAgICAqKSB0ZW1wX2RlcGxpYnM9IiR0ZW1wX2RlcGxpYnMgJGxpYmRpciI7Owot KwkgICAgICBlc2FjCi0rCSAgICBkb25lCi0rCSAgICBkZXBlbmRlbmN5X2xpYnM9IiR0ZW1wX2Rl cGxpYnMiCi0rCSAgZmkKLSsKLSsJICBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNo X3BhdGggJGFic2RpciIKLSsJICAjIExpbmsgYWdhaW5zdCB0aGlzIGxpYnJhcnkKLSsJICB0ZXN0 ICIkbGlua19zdGF0aWMiID0gbm8gJiYgbmV3ZGVwZW5kZW5jeV9saWJzPSIkYWJzX2xhZGlyLyRs YW5hbWUgJG5ld2RlcGVuZGVuY3lfbGlicyIKLSsJICAjIC4uLiBhbmQgaXRzIGRlcGVuZGVuY3lf bGlicwotKwkgIHRtcF9saWJzPQotKwkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsg ZG8KLSsJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJz IgotKwkgICAgaWYgJG9wdF9kdXBsaWNhdGVfZGVwcyA7IHRoZW4KLSsJICAgICAgY2FzZSAiJHRt cF9saWJzICIgaW4KLSsJICAgICAgKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVj aWFsZGVwbGlicyAkZGVwbGliIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICBmaQotKwkgICAgdG1w X2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIgotKwkgIGRvbmUKLSsKLSsJICBpZiB0ZXN0ICIkbGlu a19hbGxfZGVwbGlicyIgIT0gbm87IHRoZW4KLSsJICAgICMgQWRkIHRoZSBzZWFyY2ggcGF0aHMg b2YgYWxsIGRlcGVuZGVuY3kgbGlicmFyaWVzCi0rCSAgICBmb3IgZGVwbGliIGluICRkZXBlbmRl bmN5X2xpYnM7IGRvCi0rCSAgICAgIGNhc2UgJGRlcGxpYiBpbgotKwkgICAgICAtTCopIHBhdGg9 IiRkZXBsaWIiIDs7Ci0rCSAgICAgICoubGEpCi0rCSAgICAgICAgZnVuY19kaXJuYW1lICIkZGVw bGliIiAiIiAiLiIKLSsJCWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rCQkjIFdlIG5lZWQg YW4gYWJzb2x1dGUgcGF0aC4KLSsJCWNhc2UgJGRpciBpbgotKwkJW1xcL10qIHwgW0EtWmEtel06 W1xcL10qKSBhYnNkaXI9IiRkaXIiIDs7Ci0rCQkqKQotKwkJICBhYnNkaXI9YGNkICIkZGlyIiAm JiBwd2RgCi0rCQkgIGlmIHRlc3QgLXogIiRhYnNkaXIiOyB0aGVuCi0rCQkgICAgZnVuY193YXJu aW5nICJjYW5ub3QgZGV0ZXJtaW5lIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIG9mIFxgJGRpcici Ci0rCQkgICAgYWJzZGlyPSIkZGlyIgotKwkJICBmaQotKwkJICA7OwotKwkJZXNhYwotKwkJaWYg JEdSRVAgIl5pbnN0YWxsZWQ9bm8iICRkZXBsaWIgPiAvZGV2L251bGw7IHRoZW4KLSsJCWNhc2Ug JGhvc3QgaW4KLSsJCSotKi1kYXJ3aW4qKQotKwkJICBkZXBkZXBsPQotKwkJICBldmFsIGRlcGxp YnJhcnlfbmFtZXM9YCR7U0VEfSAtbiAtZSAncy9ebGlicmFyeV9uYW1lcz1cKC4qXCkkL1wxL3An ICRkZXBsaWJgCi0rCQkgIGlmIHRlc3QgLW4gIiRkZXBsaWJyYXJ5X25hbWVzIiA7IHRoZW4KLSsJ CSAgICBmb3IgdG1wIGluICRkZXBsaWJyYXJ5X25hbWVzIDsgZG8KLSsJCSAgICAgIGRlcGRlcGw9 JHRtcAotKwkJICAgIGRvbmUKLSsJCSAgICBpZiB0ZXN0IC1mICIkYWJzZGlyLyRvYmpkaXIvJGRl cGRlcGwiIDsgdGhlbgotKwkJICAgICAgZGVwZGVwbD0iJGFic2Rpci8kb2JqZGlyLyRkZXBkZXBs IgotKwkJICAgICAgZGFyd2luX2luc3RhbGxfbmFtZT1gJHtPVE9PTH0gLUwgJGRlcGRlcGwgfCBh d2sgJ3tpZiAoTlIgPT0gMikge3ByaW50ICQxO2V4aXR9fSdgCi0rICAgICAgICAgICAgICAgICAg ICAgIGlmIHRlc3QgLXogIiRkYXJ3aW5faW5zdGFsbF9uYW1lIjsgdGhlbgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgZGFyd2luX2luc3RhbGxfbmFtZT1gJHtPVE9PTDY0fSAtTCAkZGVwZGVw bCAgfCBhd2sgJ3tpZiAoTlIgPT0gMikge3ByaW50ICQxO2V4aXR9fSdgCi0rICAgICAgICAgICAg ICAgICAgICAgIGZpCi0rCQkgICAgICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LWR5bGliX2ZpbGUgJHt3bH0ke2Rhcndpbl9pbnN0YWxsX25hbWV9OiR7ZGVwZGVwbH0iCi0r CQkgICAgICBsaW5rZXJfZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgLWR5bGliX2ZpbGUgJHtkYXJ3aW5f aW5zdGFsbF9uYW1lfToke2RlcGRlcGx9IgotKwkJICAgICAgcGF0aD0KLSsJCSAgICBmaQotKwkJ ICBmaQotKwkJICA7OwotKwkJKikKLSsJCSAgcGF0aD0iLUwkYWJzZGlyLyRvYmpkaXIiCi0rCQkg IDs7Ci0rCQllc2FjCi0rCQllbHNlCi0rCQkgIGV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3Mv XmxpYmRpcj1cKC4qXCkkL1wxL3AnICRkZXBsaWJgCi0rCQkgIHRlc3QgLXogIiRsaWJkaXIiICYm IFwKLSsJCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRkZXBsaWInIGlzIG5vdCBhIHZhbGlkIGxp YnRvb2wgYXJjaGl2ZSIKLSsJCSAgdGVzdCAiJGFic2RpciIgIT0gIiRsaWJkaXIiICYmIFwKLSsJ CSAgICBmdW5jX3dhcm5pbmcgIlxgJGRlcGxpYicgc2VlbXMgdG8gYmUgbW92ZWQiCi0rCi0rCQkg IHBhdGg9Ii1MJGFic2RpciIKLSsJCWZpCi0rCQk7OwotKwkgICAgICBlc2FjCi0rCSAgICAgIGNh c2UgIiAkZGVwbGlicyAiIGluCi0rCSAgICAgICoiICRwYXRoICIqKSA7OwotKwkgICAgICAqKSBk ZXBsaWJzPSIkcGF0aCAkZGVwbGlicyIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkg IGZpICMgbGlua19hbGxfZGVwbGlicyAhPSBubwotKwlmaSAjIGxpbmttb2RlID0gbGliCi0rICAg ICAgZG9uZSAjIGZvciBkZXBsaWIgaW4gJGxpYnMKLSsgICAgICBpZiB0ZXN0ICIkcGFzcyIgPSBs aW5rOyB0aGVuCi0rCWlmIHRlc3QgIiRsaW5rbW9kZSIgPSAicHJvZyI7IHRoZW4KLSsJICBjb21w aWxlX2RlcGxpYnM9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkY29tcGlsZV9kZXBsaWJz IgotKwkgIGZpbmFsaXplX2RlcGxpYnM9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkZmlu YWxpemVfZGVwbGlicyIKLSsJZWxzZQotKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxh Z3MgImAkRUNITyAiWCAkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFhzZWQgLWUgJ3Ml IFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCi0rCWZpCi0rICAgICAg ZmkKLSsgICAgICBkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMiCi0rICAgICAg aWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0aGVuCi0rCSMgTGluayB0aGUgZGxwcmVvcGVu ZWQgbGlicmFyaWVzIGJlZm9yZSBvdGhlciBsaWJyYXJpZXMKLSsJZm9yIGRlcGxpYiBpbiAkc2F2 ZV9kZXBsaWJzOyBkbwotKwkgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0rCWRvbmUKLSsg ICAgICBmaQotKyAgICAgIGlmIHRlc3QgIiRwYXNzIiAhPSBkbG9wZW47IHRoZW4KLSsJaWYgdGVz dCAiJHBhc3MiICE9IGNvbnY7IHRoZW4KLSsJICAjIE1ha2Ugc3VyZSBsaWJfc2VhcmNoX3BhdGgg Y29udGFpbnMgb25seSB1bmlxdWUgZGlyZWN0b3JpZXMuCi0rCSAgbGliX3NlYXJjaF9wYXRoPQot KwkgIGZvciBkaXIgaW4gJG5ld2xpYl9zZWFyY2hfcGF0aDsgZG8KLSsJICAgIGNhc2UgIiRsaWJf c2VhcmNoX3BhdGggIiBpbgotKwkgICAgKiIgJGRpciAiKikgOzsKLSsJICAgICopIGxpYl9zZWFy Y2hfcGF0aD0iJGxpYl9zZWFyY2hfcGF0aCAkZGlyIiA7OwotKwkgICAgZXNhYwotKwkgIGRvbmUK LSsJICBuZXdsaWJfc2VhcmNoX3BhdGg9Ci0rCWZpCi0rCi0rCWlmIHRlc3QgIiRsaW5rbW9kZSwk cGFzcyIgIT0gInByb2csbGluayI7IHRoZW4KLSsJICB2YXJzPSJkZXBsaWJzIgotKwllbHNlCi0r CSAgdmFycz0iY29tcGlsZV9kZXBsaWJzIGZpbmFsaXplX2RlcGxpYnMiCi0rCWZpCi0rCWZvciB2 YXIgaW4gJHZhcnMgZGVwZW5kZW5jeV9saWJzOyBkbwotKwkgICMgQWRkIGxpYnJhcmllcyB0byAk dmFyIGluIHJldmVyc2Ugb3JkZXIKLSsJICBldmFsIHRtcF9saWJzPVwiXCQkdmFyXCIKLSsJICBu ZXdfbGlicz0KLSsJICBmb3IgZGVwbGliIGluICR0bXBfbGliczsgZG8KLSsJICAgICMgRklYTUU6 IFBlZGFudGljYWxseSwgdGhpcyBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8sIHNvCi0rCSAgICAj ICAgICAgICB0aGF0IHNvbWUgbmFzdHkgZGVwZW5kZW5jeSBsb29wIGlzbid0IGFjY2lkZW50YWxs eQotKwkgICAgIyAgICAgICAgYnJva2VuOgotKwkgICAgI25ld19saWJzPSIkZGVwbGliICRuZXdf bGlicyIKLSsJICAgICMgUHJhZ21hdGljYWxseSwgdGhpcyBzZWVtcyB0byBjYXVzZSB2ZXJ5IGZl dyBwcm9ibGVtcyBpbgotKwkgICAgIyBwcmFjdGljZToKLSsJICAgIGNhc2UgJGRlcGxpYiBpbgot KwkgICAgLUwqKSBuZXdfbGlicz0iJGRlcGxpYiAkbmV3X2xpYnMiIDs7Ci0rCSAgICAtUiopIDs7 Ci0rCSAgICAqKQotKwkgICAgICAjIEFuZCBoZXJlIGlzIHRoZSByZWFzb246IHdoZW4gYSBsaWJy YXJ5IGFwcGVhcnMgbW9yZQotKwkgICAgICAjIHRoYW4gb25jZSBhcyBhbiBleHBsaWNpdCBkZXBl bmRlbmNlIG9mIGEgbGlicmFyeSwgb3IKLSsJICAgICAgIyBpcyBpbXBsaWNpdGx5IGxpbmtlZCBp biBtb3JlIHRoYW4gb25jZSBieSB0aGUKLSsJICAgICAgIyBjb21waWxlciwgaXQgaXMgY29uc2lk ZXJlZCBzcGVjaWFsLCBhbmQgbXVsdGlwbGUKLSsJICAgICAgIyBvY2N1cnJlbmNlcyB0aGVyZW9m IGFyZSBub3QgcmVtb3ZlZC4gIENvbXBhcmUgdGhpcwotKwkgICAgICAjIHdpdGggaGF2aW5nIHRo ZSBzYW1lIGxpYnJhcnkgYmVpbmcgbGlzdGVkIGFzIGEKLSsJICAgICAgIyBkZXBlbmRlbmN5IG9m IG11bHRpcGxlIG90aGVyIGxpYnJhcmllczogaW4gdGhpcyBjYXNlLAotKwkgICAgICAjIHdlIGtu b3cgKHBlZGFudGljYWxseSwgd2UgYXNzdW1lKSB0aGUgbGlicmFyeSBkb2VzIG5vdAotKwkgICAg ICAjIG5lZWQgdG8gYmUgbGlzdGVkIG1vcmUgdGhhbiBvbmNlLCBzbyB3ZSBrZWVwIG9ubHkgdGhl Ci0rCSAgICAgICMgbGFzdCBjb3B5LiAgVGhpcyBpcyBub3QgYWx3YXlzIHJpZ2h0LCBidXQgaXQg aXMgcmFyZQotKwkgICAgICAjIGVub3VnaCB0aGF0IHdlIHJlcXVpcmUgdXNlcnMgdGhhdCByZWFs bHkgbWVhbiB0byBwbGF5Ci0rCSAgICAgICMgc3VjaCB1bnBvcnRhYmxlIGxpbmtpbmcgdHJpY2tz IHRvIGxpbmsgdGhlIGxpYnJhcnkKLSsJICAgICAgIyB1c2luZyAtV2wsLWxuYW1lLCBzbyB0aGF0 IGxpYnRvb2wgZG9lcyBub3QgY29uc2lkZXIgaXQKLSsJICAgICAgIyBmb3IgZHVwbGljYXRlIHJl bW92YWwuCi0rCSAgICAgIGNhc2UgIiAkc3BlY2lhbGRlcGxpYnMgIiBpbgotKwkgICAgICAqIiAk ZGVwbGliICIqKSBuZXdfbGlicz0iJGRlcGxpYiAkbmV3X2xpYnMiIDs7Ci0rCSAgICAgICopCi0r CQljYXNlICIgJG5ld19saWJzICIgaW4KLSsJCSoiICRkZXBsaWIgIiopIDs7Ci0rCQkqKSBuZXdf bGlicz0iJGRlcGxpYiAkbmV3X2xpYnMiIDs7Ci0rCQllc2FjCi0rCQk7OwotKwkgICAgICBlc2Fj Ci0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgZG9uZQotKwkgIHRtcF9saWJzPQotKwkgIGZv ciBkZXBsaWIgaW4gJG5ld19saWJzOyBkbwotKwkgICAgY2FzZSAkZGVwbGliIGluCi0rCSAgICAt TCopCi0rCSAgICAgIGNhc2UgIiAkdG1wX2xpYnMgIiBpbgotKwkgICAgICAqIiAkZGVwbGliICIq KSA7OwotKwkgICAgICAqKSB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiIDs7Ci0rCSAgICAg IGVzYWMKLSsJICAgICAgOzsKLSsJICAgICopIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIg OzsKLSsJICAgIGVzYWMKLSsJICBkb25lCi0rCSAgZXZhbCAkdmFyPVwiJHRtcF9saWJzXCIKLSsJ ZG9uZSAjIGZvciB2YXIKLSsgICAgICBmaQotKyAgICAgICMgTGFzdCBzdGVwOiByZW1vdmUgcnVu dGltZSBsaWJzIGZyb20gZGVwZW5kZW5jeV9saWJzCi0rICAgICAgIyAodGhleSBzdGF5IGluIGRl cGxpYnMpCi0rICAgICAgdG1wX2xpYnM9Ci0rICAgICAgZm9yIGkgaW4gJGRlcGVuZGVuY3lfbGli cyA7IGRvCi0rCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgJGNvbXBpbGVyX2xpYl9zZWFyY2hf cGF0aCAiIGluCi0rCSoiICRpICIqKQotKwkgIGk9IiIKLSsJICA7OwotKwllc2FjCi0rCWlmIHRl c3QgLW4gIiRpIiA7IHRoZW4KLSsJICB0bXBfbGlicz0iJHRtcF9saWJzICRpIgotKwlmaQotKyAg ICAgIGRvbmUKLSsgICAgICBkZXBlbmRlbmN5X2xpYnM9JHRtcF9saWJzCi0rICAgIGRvbmUgIyBm b3IgcGFzcwotKyAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgotKyAgICAgIGRs ZmlsZXM9IiRuZXdkbGZpbGVzIgotKyAgICBmaQotKyAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0g cHJvZyB8fCB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCi0rICAgICAgZGxwcmVmaWxlcz0i JG5ld2RscHJlZmlsZXMiCi0rICAgIGZpCi0rCi0rICAgIGNhc2UgJGxpbmttb2RlIGluCi0rICAg IG9sZGxpYikKLSsgICAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0ZXN0 ICIkZGxzZWxmIiAhPSBubzsgdGhlbgotKwlmdW5jX3dhcm5pbmcgIlxgLWRsb3BlbicgaXMgaWdu b3JlZCBmb3IgYXJjaGl2ZXMiCi0rICAgICAgZmkKLSsKLSsgICAgICBjYXNlICIgJGRlcGxpYnMi IGluCi0rICAgICAgKlwgLWwqIHwgKlwgLUwqKQotKwlmdW5jX3dhcm5pbmcgIlxgLWwnIGFuZCBc YC1MJyBhcmUgaWdub3JlZCBmb3IgYXJjaGl2ZXMiIDs7Ci0rICAgICAgZXNhYwotKwotKyAgICAg IHRlc3QgLW4gIiRycGF0aCIgJiYgXAotKwlmdW5jX3dhcm5pbmcgIlxgLXJwYXRoJyBpcyBpZ25v cmVkIGZvciBhcmNoaXZlcyIKLSsKLSsgICAgICB0ZXN0IC1uICIkeHJwYXRoIiAmJiBcCi0rCWZ1 bmNfd2FybmluZyAiXGAtUicgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMiCi0rCi0rICAgICAgdGVz dCAtbiAiJHZpbmZvIiAmJiBcCi0rCWZ1bmNfd2FybmluZyAiXGAtdmVyc2lvbi1pbmZvLy12ZXJz aW9uLW51bWJlcicgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMiCi0rCi0rICAgICAgdGVzdCAtbiAi JHJlbGVhc2UiICYmIFwKLSsJZnVuY193YXJuaW5nICJcYC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZv ciBhcmNoaXZlcyIKLSsKLSsgICAgICB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMkZXhwb3J0X3N5 bWJvbHNfcmVnZXgiICYmIFwKLSsJZnVuY193YXJuaW5nICJcYC1leHBvcnQtc3ltYm9scycgaXMg aWdub3JlZCBmb3IgYXJjaGl2ZXMiCi0rCi0rICAgICAgIyBOb3cgc2V0IHRoZSB2YXJpYWJsZXMg Zm9yIGJ1aWxkaW5nIG9sZCBsaWJyYXJpZXMuCi0rICAgICAgYnVpbGRfbGlidG9vbF9saWJzPW5v Ci0rICAgICAgb2xkbGlicz0iJG91dHB1dCIKLSsgICAgICBvYmpzPSIkb2JqcyRvbGRfZGVwbGli cyIKLSsgICAgICA7OwotKwotKyAgICBsaWIpCi0rICAgICAgIyBNYWtlIHN1cmUgd2Ugb25seSBn ZW5lcmF0ZSBsaWJyYXJpZXMgb2YgdGhlIGZvcm0gYGxpYk5BTUUubGEnLgotKyAgICAgIGNhc2Ug JG91dHB1dG5hbWUgaW4KLSsgICAgICBsaWIqKQotKwlmdW5jX3N0cmlwbmFtZSAnbGliJyAnLmxh JyAiJG91dHB1dG5hbWUiCi0rCW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwlldmFsIHNo YXJlZF9leHQ9XCIkc2hyZXh0X2NtZHNcIgotKwlldmFsIGxpYm5hbWU9XCIkbGlibmFtZV9zcGVj XCIKLSsJOzsKLSsgICAgICAqKQotKwl0ZXN0ICIkbW9kdWxlIiA9IG5vICYmIFwKLSsJICBmdW5j X2ZhdGFsX2hlbHAgImxpYnRvb2wgbGlicmFyeSBcYCRvdXRwdXQnIG11c3QgYmVnaW4gd2l0aCBc YGxpYiciCi0rCi0rCWlmIHRlc3QgIiRuZWVkX2xpYl9wcmVmaXgiICE9IG5vOyB0aGVuCi0rCSAg IyBBZGQgdGhlICJsaWIiIHByZWZpeCBmb3IgbW9kdWxlcyBpZiByZXF1aXJlZAotKwkgIGZ1bmNf c3RyaXBuYW1lICcnICcubGEnICIkb3V0cHV0bmFtZSIKLSsJICBuYW1lPSRmdW5jX3N0cmlwbmFt ZV9yZXN1bHQKLSsJICBldmFsIHNoYXJlZF9leHQ9XCIkc2hyZXh0X2NtZHNcIgotKwkgIGV2YWwg bGlibmFtZT1cIiRsaWJuYW1lX3NwZWNcIgotKwllbHNlCi0rCSAgZnVuY19zdHJpcG5hbWUgJycg Jy5sYScgIiRvdXRwdXRuYW1lIgotKwkgIGxpYm5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAot KwlmaQotKwk7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkb2JqcyI7IHRo ZW4KLSsJaWYgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBwYXNzX2FsbDsgdGhlbgot KwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBidWlsZCBsaWJ0b29sIGxpYnJhcnkgXGAkb3V0 cHV0JyBmcm9tIG5vbi1saWJ0b29sIG9iamVjdHMgb24gdGhpcyBob3N0OiRvYmpzIgotKwllbHNl Ci0rCSAgJEVDSE8KLSsJICAkRUNITyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIHNoYXJlZCBs aWJyYXJ5ICRvdXRwdXQgYWdhaW5zdCB0aGUgbm9uLWxpYnRvb2wiCi0rCSAgJEVDSE8gIioqKiBv YmplY3RzICRvYmpzIGlzIG5vdCBwb3J0YWJsZSEiCi0rCSAgbGlib2Jqcz0iJGxpYm9ianMgJG9i anMiCi0rCWZpCi0rICAgICAgZmkKLSsKLSsgICAgICB0ZXN0ICIkZGxzZWxmIiAhPSBubyAmJiBc Ci0rCWZ1bmNfd2FybmluZyAiXGAtZGxvcGVuIHNlbGYnIGlzIGlnbm9yZWQgZm9yIGxpYnRvb2wg bGlicmFyaWVzIgotKwotKyAgICAgIHNldCBkdW1teSAkcnBhdGgKLSsgICAgICBzaGlmdAotKyAg ICAgIHRlc3QgIiQjIiAtZ3QgMSAmJiBcCi0rCWZ1bmNfd2FybmluZyAiaWdub3JpbmcgbXVsdGlw bGUgXGAtcnBhdGgncyBmb3IgYSBsaWJ0b29sIGxpYnJhcnkiCi0rCi0rICAgICAgaW5zdGFsbF9s aWJkaXI9IiQxIgotKwotKyAgICAgIG9sZGxpYnM9Ci0rICAgICAgaWYgdGVzdCAteiAiJHJwYXRo IjsgdGhlbgotKwlpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgotKwkg ICMgQnVpbGRpbmcgYSBsaWJ0b29sIGNvbnZlbmllbmNlIGxpYnJhcnkuCi0rCSAgIyBTb21lIGNv bXBpbGVycyBoYXZlIHByb2JsZW1zIHdpdGggYSBgLmFsJyBleHRlbnNpb24gc28KLSsJICAjIGNv bnZlbmllbmNlIGxpYnJhcmllcyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBleHRlbnNpb24gYW4KLSsJ ICAjIGFyY2hpdmUgbm9ybWFsbHkgd291bGQuCi0rCSAgb2xkbGlicz0iJG91dHB1dF9vYmpkaXIv JGxpYm5hbWUuJGxpYmV4dCAkb2xkbGlicyIKLSsJICBidWlsZF9saWJ0b29sX2xpYnM9Y29udmVu aWVuY2UKLSsJICBidWlsZF9vbGRfbGlicz15ZXMKLSsJZmkKLSsKLSsJdGVzdCAtbiAiJHZpbmZv IiAmJiBcCi0rCSAgZnVuY193YXJuaW5nICJcYC12ZXJzaW9uLWluZm8vLXZlcnNpb24tbnVtYmVy JyBpcyBpZ25vcmVkIGZvciBjb252ZW5pZW5jZSBsaWJyYXJpZXMiCi0rCi0rCXRlc3QgLW4gIiRy ZWxlYXNlIiAmJiBcCi0rCSAgZnVuY193YXJuaW5nICJcYC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZv ciBjb252ZW5pZW5jZSBsaWJyYXJpZXMiCi0rICAgICAgZWxzZQotKwotKwkjIFBhcnNlIHRoZSB2 ZXJzaW9uIGluZm9ybWF0aW9uIGFyZ3VtZW50LgotKwlzYXZlX2lmcz0iJElGUyI7IElGUz0nOicK LSsJc2V0IGR1bW15ICR2aW5mbyAwIDAgMAotKwlzaGlmdAotKwlJRlM9IiRzYXZlX2lmcyIKLSsK LSsJdGVzdCAtbiAiJDciICYmIFwKLSsJICBmdW5jX2ZhdGFsX2hlbHAgInRvbyBtYW55IHBhcmFt ZXRlcnMgdG8gXGAtdmVyc2lvbi1pbmZvJyIKLSsKLSsJIyBjb252ZXJ0IGFic29sdXRlIHZlcnNp b24gbnVtYmVycyB0byBsaWJ0b29sIGFnZXMKLSsJIyB0aGlzIHJldGFpbnMgY29tcGF0aWJpbGl0 eSB3aXRoIC5sYSBmaWxlcyBhbmQgYXR0ZW1wdHMKLSsJIyB0byBtYWtlIHRoZSBjb2RlIGJlbG93 IGEgYml0IG1vcmUgY29tcHJlaGVuc2libGUKLSsKLSsJY2FzZSAkdmluZm9fbnVtYmVyIGluCi0r CXllcykKLSsJICBudW1iZXJfbWFqb3I9IiQxIgotKwkgIG51bWJlcl9taW5vcj0iJDIiCi0rCSAg bnVtYmVyX3JldmlzaW9uPSIkMyIKLSsJICAjCi0rCSAgIyBUaGVyZSBhcmUgcmVhbGx5IG9ubHkg dHdvIGtpbmRzIC0tIHRob3NlIHRoYXQKLSsJICAjIHVzZSB0aGUgY3VycmVudCByZXZpc2lvbiBh cyB0aGUgbWFqb3IgdmVyc2lvbgotKwkgICMgYW5kIHRob3NlIHRoYXQgc3VidHJhY3QgYWdlIGFu ZCB1c2UgYWdlIGFzCi0rCSAgIyBhIG1pbm9yIHZlcnNpb24uICBCdXQsIHRoZW4gdGhlcmUgaXMg aXJpeAotKwkgICMgd2hpY2ggaGFzIGFuIGV4dHJhIDEgYWRkZWQganVzdCBmb3IgZnVuCi0rCSAg IwotKwkgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgotKwkgIGRhcndpbnxsaW51eHxvc2Z8d2luZG93 c3xub25lKQotKwkgICAgZnVuY19hcml0aCAkbnVtYmVyX21ham9yICsgJG51bWJlcl9taW5vcgot KwkgICAgY3VycmVudD0kZnVuY19hcml0aF9yZXN1bHQKLSsJICAgIGFnZT0iJG51bWJlcl9taW5v ciIKLSsJICAgIHJldmlzaW9uPSIkbnVtYmVyX3JldmlzaW9uIgotKwkgICAgOzsKLSsJICBmcmVl YnNkLWFvdXR8ZnJlZWJzZC1lbGZ8c3Vub3MpCi0rCSAgICBjdXJyZW50PSIkbnVtYmVyX21ham9y IgotKwkgICAgcmV2aXNpb249IiRudW1iZXJfbWlub3IiCi0rCSAgICBhZ2U9IjAiCi0rCSAgICA7 OwotKwkgIGlyaXh8bm9uc3RvcHV4KQotKwkgICAgZnVuY19hcml0aCAkbnVtYmVyX21ham9yICsg JG51bWJlcl9taW5vcgotKwkgICAgY3VycmVudD0kZnVuY19hcml0aF9yZXN1bHQKLSsJICAgIGFn ZT0iJG51bWJlcl9taW5vciIKLSsJICAgIHJldmlzaW9uPSIkbnVtYmVyX21pbm9yIgotKwkgICAg bHRfaXJpeF9pbmNyZW1lbnQ9bm8KLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCW5vKQot KwkgIGN1cnJlbnQ9IiQxIgotKwkgIHJldmlzaW9uPSIkMiIKLSsJICBhZ2U9IiQzIgotKwkgIDs7 Ci0rCWVzYWMKLSsKLSsJIyBDaGVjayB0aGF0IGVhY2ggb2YgdGhlIHRoaW5ncyBhcmUgdmFsaWQg bnVtYmVycy4KLSsJY2FzZSAkY3VycmVudCBpbgotKwkwfFsxLTldfFsxLTldWzAtOV18WzEtOV1b MC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldWzAtOV0p IDs7Ci0rCSopCi0rCSAgZnVuY19lcnJvciAiQ1VSUkVOVCBcYCRjdXJyZW50JyBtdXN0IGJlIGEg bm9ubmVnYXRpdmUgaW50ZWdlciIKLSsJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCR2aW5mbycgaXMg bm90IHZhbGlkIHZlcnNpb24gaW5mb3JtYXRpb24iCi0rCSAgOzsKLSsJZXNhYwotKwotKwljYXNl ICRyZXZpc2lvbiBpbgotKwkwfFsxLTldfFsxLTldWzAtOV18WzEtOV1bMC05XVswLTldfFsxLTld WzAtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldWzAtOV0pIDs7Ci0rCSopCi0rCSAg ZnVuY19lcnJvciAiUkVWSVNJT04gXGAkcmV2aXNpb24nIG11c3QgYmUgYSBub25uZWdhdGl2ZSBp bnRlZ2VyIgotKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVy c2lvbiBpbmZvcm1hdGlvbiIKLSsJICA7OwotKwllc2FjCi0rCi0rCWNhc2UgJGFnZSBpbgotKwkw fFsxLTldfFsxLTldWzAtOV18WzEtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldfFsx LTldWzAtOV1bMC05XVswLTldWzAtOV0pIDs7Ci0rCSopCi0rCSAgZnVuY19lcnJvciAiQUdFIFxg JGFnZScgbXVzdCBiZSBhIG5vbm5lZ2F0aXZlIGludGVnZXIiCi0rCSAgZnVuY19mYXRhbF9lcnJv ciAiXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIgotKwkgIDs7Ci0r CWVzYWMKLSsKLSsJaWYgdGVzdCAiJGFnZSIgLWd0ICIkY3VycmVudCI7IHRoZW4KLSsJICBmdW5j X2Vycm9yICJBR0UgXGAkYWdlJyBpcyBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgaW50ZXJmYWNl IG51bWJlciBcYCRjdXJyZW50JyIKLSsJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCR2aW5mbycgaXMg bm90IHZhbGlkIHZlcnNpb24gaW5mb3JtYXRpb24iCi0rCWZpCi0rCi0rCSMgQ2FsY3VsYXRlIHRo ZSB2ZXJzaW9uIHZhcmlhYmxlcy4KLSsJbWFqb3I9Ci0rCXZlcnN1ZmZpeD0KLSsJdmVyc3RyaW5n PQotKwljYXNlICR2ZXJzaW9uX3R5cGUgaW4KLSsJbm9uZSkgOzsKLSsKLSsJZGFyd2luKQotKwkg ICMgTGlrZSBMaW51eCwgYnV0IHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiBhdmFpbGFibGUgaW4K LSsJICAjIHZlcnN0cmluZyBmb3IgY29kaW5nIGl0IGludG8gdGhlIGxpYnJhcnkgaGVhZGVyCi0r CSAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKLSsJICBtYWpvcj0uJGZ1bmNfYXJpdGhfcmVz dWx0Ci0rCSAgdmVyc3VmZml4PSIkbWFqb3IuJGFnZS4kcmV2aXNpb24iCi0rCSAgIyBEYXJ3aW4g bGQgZG9lc24ndCBsaWtlIDAgZm9yIHRoZXNlIG9wdGlvbnMuLi4KLSsJICBmdW5jX2FyaXRoICRj dXJyZW50ICsgMQotKwkgIG1pbm9yX2N1cnJlbnQ9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgeGxj dmVyc3RyaW5nPSIke3dsfS1jb21wYXRpYmlsaXR5X3ZlcnNpb24gJHt3bH0kbWlub3JfY3VycmVu dCAke3dsfS1jdXJyZW50X3ZlcnNpb24gJHt3bH0kbWlub3JfY3VycmVudC4kcmV2aXNpb24iCi0r CSAgdmVyc3RyaW5nPSItY29tcGF0aWJpbGl0eV92ZXJzaW9uICRtaW5vcl9jdXJyZW50IC1jdXJy ZW50X3ZlcnNpb24gJG1pbm9yX2N1cnJlbnQuJHJldmlzaW9uIgotKwkgIDs7Ci0rCi0rCWZyZWVi c2QtYW91dCkKLSsJICBtYWpvcj0iLiRjdXJyZW50IgotKwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50 LiRyZXZpc2lvbiI7Ci0rCSAgOzsKLSsKLSsJZnJlZWJzZC1lbGYpCi0rCSAgbWFqb3I9Ii4kY3Vy cmVudCIKLSsJICB2ZXJzdWZmaXg9Ii4kY3VycmVudCIKLSsJICA7OwotKwotKwlpcml4IHwgbm9u c3RvcHV4KQotKwkgIGlmIHRlc3QgIlgkbHRfaXJpeF9pbmNyZW1lbnQiID0gIlhubyI7IHRoZW4K LSsJICAgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCi0rCSAgZWxzZQotKwkgICAgZnVuY19h cml0aCAkY3VycmVudCAtICRhZ2UgKyAxCi0rCSAgZmkKLSsJICBtYWpvcj0kZnVuY19hcml0aF9y ZXN1bHQKLSsKLSsJICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KLSsJICAgIG5vbnN0b3B1eCkgdmVy c3RyaW5nX3ByZWZpeD1ub25zdG9wdXggOzsKLSsJICAgICopICAgICAgICAgdmVyc3RyaW5nX3By ZWZpeD1zZ2kgOzsKLSsJICBlc2FjCi0rCSAgdmVyc3RyaW5nPSIkdmVyc3RyaW5nX3ByZWZpeCRt YWpvci4kcmV2aXNpb24iCi0rCi0rCSAgIyBBZGQgaW4gYWxsIHRoZSBpbnRlcmZhY2VzIHRoYXQg d2UgYXJlIGNvbXBhdGlibGUgd2l0aC4KLSsJICBsb29wPSRyZXZpc2lvbgotKwkgIHdoaWxlIHRl c3QgIiRsb29wIiAtbmUgMDsgZG8KLSsJICAgIGZ1bmNfYXJpdGggJHJldmlzaW9uIC0gJGxvb3AK LSsJICAgIGlmYWNlPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkgICAgZnVuY19hcml0aCAkbG9vcCAt IDEKLSsJICAgIGxvb3A9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgICB2ZXJzdHJpbmc9IiR2ZXJz dHJpbmdfcHJlZml4JG1ham9yLiRpZmFjZTokdmVyc3RyaW5nIgotKwkgIGRvbmUKLSsKLSsJICAj IEJlZm9yZSB0aGlzIHBvaW50LCAkbWFqb3IgbXVzdCBub3QgY29udGFpbiBgLicuCi0rCSAgbWFq b3I9LiRtYWpvcgotKwkgIHZlcnN1ZmZpeD0iJG1ham9yLiRyZXZpc2lvbiIKLSsJICA7OwotKwot KwlsaW51eCkKLSsJICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQotKwkgIG1ham9yPS4kZnVu Y19hcml0aF9yZXN1bHQKLSsJICB2ZXJzdWZmaXg9IiRtYWpvci4kYWdlLiRyZXZpc2lvbiIKLSsJ ICA7OwotKwotKwlvc2YpCi0rCSAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKLSsJICBtYWpv cj0uJGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQuJGFnZS4kcmV2 aXNpb24iCi0rCSAgdmVyc3RyaW5nPSIkY3VycmVudC4kYWdlLiRyZXZpc2lvbiIKLSsKLSsJICAj IEFkZCBpbiBhbGwgdGhlIGludGVyZmFjZXMgdGhhdCB3ZSBhcmUgY29tcGF0aWJsZSB3aXRoLgot KwkgIGxvb3A9JGFnZQotKwkgIHdoaWxlIHRlc3QgIiRsb29wIiAtbmUgMDsgZG8KLSsJICAgIGZ1 bmNfYXJpdGggJGN1cnJlbnQgLSAkbG9vcAotKwkgICAgaWZhY2U9JGZ1bmNfYXJpdGhfcmVzdWx0 Ci0rCSAgICBmdW5jX2FyaXRoICRsb29wIC0gMQotKwkgICAgbG9vcD0kZnVuY19hcml0aF9yZXN1 bHQKLSsJICAgIHZlcnN0cmluZz0iJHZlcnN0cmluZzoke2lmYWNlfS4wIgotKwkgIGRvbmUKLSsK LSsJICAjIE1ha2UgZXhlY3V0YWJsZXMgZGVwZW5kIG9uIG91ciBjdXJyZW50IHZlcnNpb24uCi0r CSAgdmVyc3RyaW5nPSIkdmVyc3RyaW5nOiR7Y3VycmVudH0uMCIKLSsJICA7OwotKwotKwlxbngp Ci0rCSAgbWFqb3I9Ii4kY3VycmVudCIKLSsJICB2ZXJzdWZmaXg9Ii4kY3VycmVudCIKLSsJICA7 OwotKwotKwlzdW5vcykKLSsJICBtYWpvcj0iLiRjdXJyZW50IgotKwkgIHZlcnN1ZmZpeD0iLiRj dXJyZW50LiRyZXZpc2lvbiIKLSsJICA7OwotKwotKwl3aW5kb3dzKQotKwkgICMgVXNlICctJyBy YXRoZXIgdGhhbiAnLicsIHNpbmNlIHdlIG9ubHkgd2FudCBvbmUKLSsJICAjIGV4dGVuc2lvbiBv biBET1MgOC4zIGZpbGVzeXN0ZW1zLgotKwkgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCi0r CSAgbWFqb3I9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgdmVyc3VmZml4PSItJG1ham9yIgotKwkg IDs7Ci0rCi0rCSopCi0rCSAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJ1bmtub3duIGxpYnJh cnkgdmVyc2lvbiB0eXBlIFxgJHZlcnNpb25fdHlwZSciCi0rCSAgOzsKLSsJZXNhYwotKwotKwkj IENsZWFyIHRoZSB2ZXJzaW9uIGluZm8gaWYgd2UgZGVmYXVsdGVkLCBhbmQgdGhleSBzcGVjaWZp ZWQgYSByZWxlYXNlLgotKwlpZiB0ZXN0IC16ICIkdmluZm8iICYmIHRlc3QgLW4gIiRyZWxlYXNl IjsgdGhlbgotKwkgIG1ham9yPQotKwkgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgotKwkgIGRhcndp bikKLSsJICAgICMgd2UgY2FuJ3QgY2hlY2sgZm9yICIwLjAiIGluIGFyY2hpdmVfY21kcyBkdWUg dG8gcXVvdGluZwotKwkgICAgIyBwcm9ibGVtcywgc28gd2UgcmVzZXQgaXQgY29tcGxldGVseQot KwkgICAgdmVyc3RyaW5nPQotKwkgICAgOzsKLSsJICAqKQotKwkgICAgdmVyc3RyaW5nPSIwLjAi Ci0rCSAgICA7OwotKwkgIGVzYWMKLSsJICBpZiB0ZXN0ICIkbmVlZF92ZXJzaW9uIiA9IG5vOyB0 aGVuCi0rCSAgICB2ZXJzdWZmaXg9Ci0rCSAgZWxzZQotKwkgICAgdmVyc3VmZml4PSIuMC4wIgot KwkgIGZpCi0rCWZpCi0rCi0rCSMgUmVtb3ZlIHZlcnNpb24gaW5mbyBmcm9tIG5hbWUgaWYgdmVy c2lvbmluZyBzaG91bGQgYmUgYXZvaWRlZAotKwlpZiB0ZXN0ICIkYXZvaWRfdmVyc2lvbiIgPSB5 ZXMgJiYgdGVzdCAiJG5lZWRfdmVyc2lvbiIgPSBubzsgdGhlbgotKwkgIG1ham9yPQotKwkgIHZl cnN1ZmZpeD0KLSsJICB2ZXJzdHJpbmc9IiIKLSsJZmkKLSsKLSsJIyBDaGVjayB0byBzZWUgaWYg dGhlIGFyY2hpdmUgd2lsbCBoYXZlIHVuZGVmaW5lZCBzeW1ib2xzLgotKwlpZiB0ZXN0ICIkYWxs b3dfdW5kZWZpbmVkIiA9IHllczsgdGhlbgotKwkgIGlmIHRlc3QgIiRhbGxvd191bmRlZmluZWRf ZmxhZyIgPSB1bnN1cHBvcnRlZDsgdGhlbgotKwkgICAgZnVuY193YXJuaW5nICJ1bmRlZmluZWQg c3ltYm9scyBub3QgYWxsb3dlZCBpbiAkaG9zdCBzaGFyZWQgbGlicmFyaWVzIgotKwkgICAgYnVp bGRfbGlidG9vbF9saWJzPW5vCi0rCSAgICBidWlsZF9vbGRfbGlicz15ZXMKLSsJICBmaQotKwll bHNlCi0rCSAgIyBEb24ndCBhbGxvdyB1bmRlZmluZWQgc3ltYm9scy4KLSsJICBhbGxvd191bmRl ZmluZWRfZmxhZz0iJG5vX3VuZGVmaW5lZF9mbGFnIgotKwlmaQotKwotKyAgICAgIGZpCi0rCi0r ICAgICAgZnVuY19nZW5lcmF0ZV9kbHN5bXMgIiRsaWJuYW1lIiAiJGxpYm5hbWUiICJ5ZXMiCi0r ICAgICAgbGlib2Jqcz0iJGxpYm9ianMgJHN5bWZpbGVvYmoiCi0rICAgICAgdGVzdCAiWCRsaWJv YmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KLSsKLSsgICAgICBpZiB0ZXN0ICIkbW9kZSIgIT0gcmVs aW5rOyB0aGVuCi0rCSMgUmVtb3ZlIG91ciBvdXRwdXRzLCBidXQgZG9uJ3QgcmVtb3ZlIG9iamVj dCBmaWxlcyBzaW5jZSB0aGV5Ci0rCSMgbWF5IGhhdmUgYmVlbiBjcmVhdGVkIHdoZW4gY29tcGls aW5nIFBJQyBvYmplY3RzLgotKwlyZW1vdmVsaXN0PQotKwl0ZW1wcmVtb3ZlbGlzdD1gJEVDSE8g IiRvdXRwdXRfb2JqZGlyLyoiYAotKwlmb3IgcCBpbiAkdGVtcHJlbW92ZWxpc3Q7IGRvCi0rCSAg Y2FzZSAkcCBpbgotKwkgICAgKi4kb2JqZXh0IHwgKi5nY25vKQotKwkgICAgICAgOzsKLSsJICAg ICRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lIHwgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuKiB8 ICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0ke3JlbGVhc2V9LiopCi0rCSAgICAgICBpZiB0ZXN0 ICJYJHByZWNpb3VzX2ZpbGVzX3JlZ2V4IiAhPSAiWCI7IHRoZW4KLSsJCSBpZiAkRUNITyAiJHAi IHwgJEVHUkVQIC1lICIkcHJlY2lvdXNfZmlsZXNfcmVnZXgiID4vZGV2L251bGwgMj4mMQotKwkJ IHRoZW4KLSsJCSAgIGNvbnRpbnVlCi0rCQkgZmkKLSsJICAgICAgIGZpCi0rCSAgICAgICByZW1v dmVsaXN0PSIkcmVtb3ZlbGlzdCAkcCIKLSsJICAgICAgIDs7Ci0rCSAgICAqKSA7OwotKwkgIGVz YWMKLSsJZG9uZQotKwl0ZXN0IC1uICIkcmVtb3ZlbGlzdCIgJiYgXAotKwkgIGZ1bmNfc2hvd19l dmFsICIke1JNfXIgXCRyZW1vdmVsaXN0IgotKyAgICAgIGZpCi0rCi0rICAgICAgIyBOb3cgc2V0 IHRoZSB2YXJpYWJsZXMgZm9yIGJ1aWxkaW5nIG9sZCBsaWJyYXJpZXMuCi0rICAgICAgaWYgdGVz dCAiJGJ1aWxkX29sZF9saWJzIiA9IHllcyAmJiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAh PSBjb252ZW5pZW5jZSA7IHRoZW4KLSsJb2xkbGlicz0iJG9sZGxpYnMgJG91dHB1dF9vYmpkaXIv JGxpYm5hbWUuJGxpYmV4dCIKLSsKLSsJIyBUcmFuc2Zvcm0gLmxvIGZpbGVzIHRvIC5vIGZpbGVz LgotKwlvbGRvYmpzPSIkb2JqcyAiYCRFQ0hPICJYJGxpYm9ianMiIHwgJFNQMk5MIHwgJFhzZWQg LWUgJy9cLicke2xpYmV4dH0nJC9kJyAtZSAiJGxvMm8iIHwgJE5MMlNQYAotKyAgICAgIGZpCi0r Ci0rICAgICAgIyBFbGltaW5hdGUgYWxsIHRlbXBvcmFyeSBkaXJlY3Rvcmllcy4KLSsgICAgICAj Zm9yIHBhdGggaW4gJG5vdGluc3RfcGF0aDsgZG8KLSsgICAgICAjCWxpYl9zZWFyY2hfcGF0aD1g JEVDSE8gIlgkbGliX3NlYXJjaF9wYXRoICIgfCAkWHNlZCAtZSAicyUgJHBhdGggJSAlZyJgCi0r ICAgICAgIwlkZXBsaWJzPWAkRUNITyAiWCRkZXBsaWJzICIgfCAkWHNlZCAtZSAicyUgLUwkcGF0 aCAlICVnImAKLSsgICAgICAjCWRlcGVuZGVuY3lfbGlicz1gJEVDSE8gIlgkZGVwZW5kZW5jeV9s aWJzICIgfCAkWHNlZCAtZSAicyUgLUwkcGF0aCAlICVnImAKLSsgICAgICAjZG9uZQotKwotKyAg ICAgIGlmIHRlc3QgLW4gIiR4cnBhdGgiOyB0aGVuCi0rCSMgSWYgdGhlIHVzZXIgc3BlY2lmaWVk IGFueSBycGF0aCBmbGFncywgdGhlbiBhZGQgdGhlbS4KLSsJdGVtcF94cnBhdGg9Ci0rCWZvciBs aWJkaXIgaW4gJHhycGF0aDsgZG8KLSsJICB0ZW1wX3hycGF0aD0iJHRlbXBfeHJwYXRoIC1SJGxp YmRpciIKLSsJICBjYXNlICIkZmluYWxpemVfcnBhdGggIiBpbgotKwkgICoiICRsaWJkaXIgIiop IDs7Ci0rCSAgKikgZmluYWxpemVfcnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCAkbGliZGlyIiA7Owot KwkgIGVzYWMKLSsJZG9uZQotKwlpZiB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiAhPSB5ZXMg fHwgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgotKwkgIGRlcGVuZGVuY3lfbGli cz0iJHRlbXBfeHJwYXRoICRkZXBlbmRlbmN5X2xpYnMiCi0rCWZpCi0rICAgICAgZmkKLSsKLSsg ICAgICAjIE1ha2Ugc3VyZSBkbGZpbGVzIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGZpbGVzIHRoYXQg d29uJ3QgYmUgZGxwcmVvcGVuZWQKLSsgICAgICBvbGRfZGxmaWxlcz0iJGRsZmlsZXMiCi0rICAg ICAgZGxmaWxlcz0KLSsgICAgICBmb3IgbGliIGluICRvbGRfZGxmaWxlczsgZG8KLSsJY2FzZSAi ICRkbHByZWZpbGVzICRkbGZpbGVzICIgaW4KLSsJKiIgJGxpYiAiKikgOzsKLSsJKikgZGxmaWxl cz0iJGRsZmlsZXMgJGxpYiIgOzsKLSsJZXNhYwotKyAgICAgIGRvbmUKLSsKLSsgICAgICAjIE1h a2Ugc3VyZSBkbHByZWZpbGVzIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGZpbGVzCi0rICAgICAgb2xk X2RscHJlZmlsZXM9IiRkbHByZWZpbGVzIgotKyAgICAgIGRscHJlZmlsZXM9Ci0rICAgICAgZm9y IGxpYiBpbiAkb2xkX2RscHJlZmlsZXM7IGRvCi0rCWNhc2UgIiRkbHByZWZpbGVzICIgaW4KLSsJ KiIgJGxpYiAiKikgOzsKLSsJKikgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJGxpYiIgOzsKLSsJ ZXNhYwotKyAgICAgIGRvbmUKLSsKLSsgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJz IiA9IHllczsgdGhlbgotKwlpZiB0ZXN0IC1uICIkcnBhdGgiOyB0aGVuCi0rCSAgY2FzZSAkaG9z dCBpbgotKwkgICotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIq IHwgKi0qLWJlb3MqIHwgKi1jZWdjYyopCi0rCSAgICAjIHRoZXNlIHN5c3RlbXMgZG9uJ3QgYWN0 dWFsbHkgaGF2ZSBhIGMgbGlicmFyeSAoYXMgc3VjaCkhCi0rCSAgICA7OwotKwkgICotKi1yaGFw c29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKLSsJICAgICMgUmhhcHNvZHkgQyBsaWJyYXJ5IGlz IGluIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCi0rCSAgICBkZXBsaWJzPSIkZGVwbGlicyBTeXN0ZW0u bHRmcmFtZXdvcmsiCi0rCSAgICA7OwotKwkgICotKi1uZXRic2QqKQotKwkgICAgIyBEb24ndCBs aW5rIHdpdGggbGliYyB1bnRpbCB0aGUgYS5vdXQgbGQuc28gaXMgZml4ZWQuCi0rCSAgICA7Owot KwkgICotKi1vcGVuYnNkKiB8ICotKi1mcmVlYnNkKiB8ICotKi1kcmFnb25mbHkqKQotKwkgICAg IyBEbyBub3QgaW5jbHVkZSBsaWJjIGR1ZSB0byB1cyBoYXZpbmcgbGliYy9saWJjX3IuCi0rCSAg ICA7OwotKwkgICotKi1zY28zLjJ2NSogfCAqLSotc2NvNXY2KikKLSsJICAgICMgQ2F1c2VzIHBy b2JsZW1zIHdpdGggX19jdHlwZQotKwkgICAgOzsKLSsJICAqLSotc3lzdjQuMnV3MiogfCAqLSot c3lzdjUqIHwgKi0qLXVuaXh3YXJlKiB8ICotKi1PcGVuVU5JWCopCi0rCSAgICAjIENvbXBpbGVy IGluc2VydHMgbGliYyBpbiB0aGUgY29ycmVjdCBwbGFjZSBmb3IgdGhyZWFkcyB0byB3b3JrCi0r CSAgICA7OwotKwkgICopCi0rCSAgICAjIEFkZCBsaWJjIHRvIGRlcGxpYnMgb24gYWxsIG90aGVy IHN5c3RlbXMgaWYgbmVjZXNzYXJ5LgotKwkgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbmVl ZF9sYyIgPSAieWVzIjsgdGhlbgotKwkgICAgICBkZXBsaWJzPSIkZGVwbGlicyAtbGMiCi0rCSAg ICBmaQotKwkgICAgOzsKLSsJICBlc2FjCi0rCWZpCi0rCi0rCSMgVHJhbnNmb3JtIGRlcGxpYnMg aW50byBvbmx5IGRlcGxpYnMgdGhhdCBjYW4gYmUgbGlua2VkIGluIHNoYXJlZC4KLSsJbmFtZV9z YXZlPSRuYW1lCi0rCWxpYm5hbWVfc2F2ZT0kbGlibmFtZQotKwlyZWxlYXNlX3NhdmU9JHJlbGVh c2UKLSsJdmVyc3VmZml4X3NhdmU9JHZlcnN1ZmZpeAotKwltYWpvcl9zYXZlPSRtYWpvcgotKwkj IEknbSBub3Qgc3VyZSBpZiBJJ20gdHJlYXRpbmcgdGhlIHJlbGVhc2UgY29ycmVjdGx5LiAgSSB0 aGluawotKwkjIHJlbGVhc2Ugc2hvdWxkIHNob3cgdXAgaW4gdGhlIC1sIChpZSAtbGdtcDUpIHNv IHdlIGRvbid0IHdhbnQgdG8KLSsJIyBhZGQgaXQgaW4gdHdpY2UuICBJcyB0aGF0IGNvcnJlY3Q/ Ci0rCXJlbGVhc2U9IiIKLSsJdmVyc3VmZml4PSIiCi0rCW1ham9yPSIiCi0rCW5ld2RlcGxpYnM9 Ci0rCWRyb3BwZWRkZXBzPW5vCi0rCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCi0rCXBh c3NfYWxsKQotKwkgICMgRG9uJ3QgY2hlY2sgZm9yIHNoYXJlZC9zdGF0aWMuICBFdmVyeXRoaW5n IHdvcmtzLgotKwkgICMgVGhpcyBtaWdodCBiZSBhIGxpdHRsZSBuYWl2ZS4gIFdlIG1pZ2h0IHdh bnQgdG8gY2hlY2sKLSsJICAjIHdoZXRoZXIgdGhlIGxpYnJhcnkgZXhpc3RzIG9yIG5vdC4gIEJ1 dCB0aGlzIGlzIG9uCi0rCSAgIyBvc2YzICYgb3NmNCBhbmQgSSdtIG5vdCByZWFsbHkgc3VyZS4u LiBKdXN0Ci0rCSAgIyBpbXBsZW1lbnRpbmcgd2hhdCB3YXMgYWxyZWFkeSB0aGUgYmVoYXZpb3Iu Ci0rCSAgbmV3ZGVwbGlicz0kZGVwbGlicwotKwkgIDs7Ci0rCXRlc3RfY29tcGlsZSkKLSsJICAj IFRoaXMgY29kZSBzdHJlc3NlcyB0aGUgImxpYnJhcmllcyBhcmUgcHJvZ3JhbXMiIHBhcmFkaWdt IHRvIGl0cwotKwkgICMgbGltaXRzLiBNYXliZSBldmVuIGJyZWFrcyBpdC4gIFdlIGNvbXBpbGUg YSBwcm9ncmFtLCBsaW5raW5nIGl0Ci0rCSAgIyBhZ2FpbnN0IHRoZSBkZXBsaWJzIGFzIGEgcHJv eHkgZm9yIHRoZSBsaWJyYXJ5LiAgVGhlbiB3ZSBjYW4gY2hlY2sKLSsJICAjIHdoZXRoZXIgdGhl eSBsaW5rZWQgaW4gc3RhdGljYWxseSBvciBkeW5hbWljYWxseSB3aXRoIGxkZC4KLSsJICAkb3B0 X2RyeV9ydW4gfHwgJFJNIGNvbmZ0ZXN0LmMKLSsJICBjYXQgPiBjb25mdGVzdC5jIDw8RU9GCi0r CSAgaW50IG1haW4oKSB7IHJldHVybiAwOyB9Ci0rRU9GCi0rCSAgJG9wdF9kcnlfcnVuIHx8ICRS TSBjb25mdGVzdAotKwkgIGlmICRMVENDICRMVENGTEFHUyAtbyBjb25mdGVzdCBjb25mdGVzdC5j ICRkZXBsaWJzOyB0aGVuCi0rCSAgICBsZGRfb3V0cHV0PWBsZGQgY29uZnRlc3RgCi0rCSAgICBm b3IgaSBpbiAkZGVwbGliczsgZG8KLSsJICAgICAgY2FzZSAkaSBpbgotKwkgICAgICAtbCopCi0r CQlmdW5jX3N0cmlwbmFtZSAtbCAnJyAiJGkiCi0rCQluYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1 bHQKLSsJCWlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVz IiA9ICJYeWVzIiA7IHRoZW4KLSsJCSAgY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCi0r CQkgICoiICRpICIqKQotKwkJICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgotKwkJICAg IGk9IiIKLSsJCSAgICA7OwotKwkJICBlc2FjCi0rCQlmaQotKwkJaWYgdGVzdCAtbiAiJGkiIDsg dGhlbgotKwkJICBsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKLSsJ CSAgZGVwbGliX21hdGNoZXM9YGV2YWwgIlxcJEVDSE8gXCIkbGlicmFyeV9uYW1lc19zcGVjXCIi YAotKwkJICBzZXQgZHVtbXkgJGRlcGxpYl9tYXRjaGVzOyBzaGlmdAotKwkJICBkZXBsaWJfbWF0 Y2g9JDEKLSsJCSAgaWYgdGVzdCBgZXhwciAiJGxkZF9vdXRwdXQiIDogIi4qJGRlcGxpYl9tYXRj aCJgIC1uZSAwIDsgdGhlbgotKwkJICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgotKwkJ ICBlbHNlCi0rCQkgICAgZHJvcHBlZGRlcHM9eWVzCi0rCQkgICAgJEVDSE8KLSsJCSAgICAkRUNI TyAiKioqIFdhcm5pbmc6IGR5bmFtaWMgbGlua2VyIGRvZXMgbm90IGFjY2VwdCBuZWVkZWQgbGli cmFyeSAkaS4iCi0rCQkgICAgJEVDSE8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFr ZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCi0rCQkgICAgJEVDSE8g IioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlm IHlvdSBoYXZlIGEiCi0rCQkgICAgJEVDSE8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGli cmFyeSwgd2hpY2ggSSBiZWxpZXZlIHlvdSBkbyBub3QgaGF2ZSIKLSsJCSAgICAkRUNITyAiKioq IGJlY2F1c2UgYSB0ZXN0X2NvbXBpbGUgZGlkIHJldmVhbCB0aGF0IHRoZSBsaW5rZXIgZGlkIG5v dCB1c2UgaXQgZm9yIgotKwkJICAgICRFQ0hPICIqKiogaXRzIGR5bmFtaWMgZGVwZW5kZW5jeSBs aXN0IHRoYXQgcHJvZ3JhbXMgZ2V0IHJlc29sdmVkIHdpdGggYXQgcnVudGltZS4iCi0rCQkgIGZp Ci0rCQlmaQotKwkJOzsKLSsJICAgICAgKikKLSsJCW5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRp IgotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgIGVsc2UKLSsJICAgICMgRXJy b3Igb2NjdXJyZWQgaW4gdGhlIGZpcnN0IGNvbXBpbGUuICBMZXQncyB0cnkgdG8gc2FsdmFnZQot KwkgICAgIyB0aGUgc2l0dWF0aW9uOiBDb21waWxlIGEgc2VwYXJhdGUgcHJvZ3JhbSBmb3IgZWFj aCBsaWJyYXJ5LgotKwkgICAgZm9yIGkgaW4gJGRlcGxpYnM7IGRvCi0rCSAgICAgIGNhc2UgJGkg aW4KLSsJICAgICAgLWwqKQotKwkJZnVuY19zdHJpcG5hbWUgLWwgJycgIiRpIgotKwkJbmFtZT0k ZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCQkkb3B0X2RyeV9ydW4gfHwgJFJNIGNvbmZ0ZXN0Ci0r CQlpZiAkTFRDQyAkTFRDRkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAkaTsgdGhlbgotKwkJ ICBsZGRfb3V0cHV0PWBsZGQgY29uZnRlc3RgCi0rCQkgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9v bF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KLSsJCSAgICBjYXNl ICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KLSsJCSAgICAqIiAkaSAiKikKLSsJCSAgICAgIG5l d2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgotKwkJICAgICAgaT0iIgotKwkJICAgICAgOzsKLSsJ CSAgICBlc2FjCi0rCQkgIGZpCi0rCQkgIGlmIHRlc3QgLW4gIiRpIiA7IHRoZW4KLSsJCSAgICBs aWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKLSsJCSAgICBkZXBsaWJf bWF0Y2hlcz1gZXZhbCAiXFwkRUNITyBcIiRsaWJyYXJ5X25hbWVzX3NwZWNcIiJgCi0rCQkgICAg c2V0IGR1bW15ICRkZXBsaWJfbWF0Y2hlczsgc2hpZnQKLSsJCSAgICBkZXBsaWJfbWF0Y2g9JDEK LSsJCSAgICBpZiB0ZXN0IGBleHByICIkbGRkX291dHB1dCIgOiAiLiokZGVwbGliX21hdGNoImAg LW5lIDAgOyB0aGVuCi0rCQkgICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKLSsJCSAg ICBlbHNlCi0rCQkgICAgICBkcm9wcGVkZGVwcz15ZXMKLSsJCSAgICAgICRFQ0hPCi0rCQkgICAg ICAkRUNITyAiKioqIFdhcm5pbmc6IGR5bmFtaWMgbGlua2VyIGRvZXMgbm90IGFjY2VwdCBuZWVk ZWQgbGlicmFyeSAkaS4iCi0rCQkgICAgICAkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0 eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKLSsJCSAg ICAgICRFQ0hPICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkg ZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgotKwkJICAgICAgJEVDSE8gIioqKiBzaGFyZWQgdmVyc2lv biBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKLSsJCSAg ICAgICRFQ0hPICIqKiogYmVjYXVzZSBhIHRlc3RfY29tcGlsZSBkaWQgcmV2ZWFsIHRoYXQgdGhl IGxpbmtlciBkaWQgbm90IHVzZSB0aGlzIG9uZSIKLSsJCSAgICAgICRFQ0hPICIqKiogYXMgYSBk eW5hbWljIGRlcGVuZGVuY3kgdGhhdCBwcm9ncmFtcyBjYW4gZ2V0IHJlc29sdmVkIHdpdGggYXQg cnVudGltZS4iCi0rCQkgICAgZmkKLSsJCSAgZmkKLSsJCWVsc2UKLSsJCSAgZHJvcHBlZGRlcHM9 eWVzCi0rCQkgICRFQ0hPCi0rCQkgICRFQ0hPICIqKiogV2FybmluZyEgIExpYnJhcnkgJGkgaXMg bmVlZGVkIGJ5IHRoaXMgbGlicmFyeSBidXQgSSB3YXMgbm90IGFibGUgdG8iCi0rCQkgICRFQ0hP ICIqKiogbWFrZSBpdCBsaW5rIGluISAgWW91IHdpbGwgcHJvYmFibHkgbmVlZCB0byBpbnN0YWxs IGl0IG9yIHNvbWUiCi0rCQkgICRFQ0hPICIqKiogbGlicmFyeSB0aGF0IGl0IGRlcGVuZHMgb24g YmVmb3JlIHRoaXMgbGlicmFyeSB3aWxsIGJlIGZ1bGx5IgotKwkJICAkRUNITyAiKioqIGZ1bmN0 aW9uYWwuICBJbnN0YWxsaW5nIGl0IGJlZm9yZSBjb250aW51aW5nIHdvdWxkIGJlIGV2ZW4gYmV0 dGVyLiIKLSsJCWZpCi0rCQk7OwotKwkgICAgICAqKQotKwkJbmV3ZGVwbGlicz0iJG5ld2RlcGxp YnMgJGkiCi0rCQk7OwotKwkgICAgICBlc2FjCi0rCSAgICBkb25lCi0rCSAgZmkKLSsJICA7Owot KwlmaWxlX21hZ2ljKikKLSsJICBzZXQgZHVtbXkgJGRlcGxpYnNfY2hlY2tfbWV0aG9kOyBzaGlm dAotKwkgIGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAi JDEgXCguKlwpImAKLSsJICBmb3IgYV9kZXBsaWIgaW4gJGRlcGxpYnM7IGRvCi0rCSAgICBjYXNl ICRhX2RlcGxpYiBpbgotKwkgICAgLWwqKQotKwkgICAgICBmdW5jX3N0cmlwbmFtZSAtbCAnJyAi JGFfZGVwbGliIgotKwkgICAgICBuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICAgICAg aWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5 ZXMiIDsgdGhlbgotKwkJY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCi0rCQkqIiAkYV9k ZXBsaWIgIiopCi0rCQkgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKLSsJCSAg YV9kZXBsaWI9IiIKLSsJCSAgOzsKLSsJCWVzYWMKLSsJICAgICAgZmkKLSsJICAgICAgaWYgdGVz dCAtbiAiJGFfZGVwbGliIiA7IHRoZW4KLSsJCWxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGli bmFtZV9zcGVjXCIiYAotKwkJZm9yIGkgaW4gJGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFy Y2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGg7IGRvCi0rCQkgIHBvdGVudGlhbF9saWJzPWBscyAk aS8kbGlibmFtZVsuLV0qIDI+L2Rldi9udWxsYAotKwkJICBmb3IgcG90ZW50X2xpYiBpbiAkcG90 ZW50aWFsX2xpYnM7IGRvCi0rCQkgICAgICAjIEZvbGxvdyBzb2Z0IGxpbmtzLgotKwkJICAgICAg aWYgbHMgLWxMZCAiJHBvdGVudF9saWIiIDI+L2Rldi9udWxsIHwKLSsJCQkgJEdSRVAgIiAtPiAi ID4vZGV2L251bGw7IHRoZW4KLSsJCQljb250aW51ZQotKwkJICAgICAgZmkKLSsJCSAgICAgICMg VGhlIHN0YXRlbWVudCBhYm92ZSB0cmllcyB0byBhdm9pZCBlbnRlcmluZyBhbgotKwkJICAgICAg IyBlbmRsZXNzIGxvb3AgYmVsb3csIGluIGNhc2Ugb2YgY3ljbGljIGxpbmtzLgotKwkJICAgICAg IyBXZSBtaWdodCBzdGlsbCBlbnRlciBhbiBlbmRsZXNzIGxvb3AsIHNpbmNlIGEgbGluawotKwkJ ICAgICAgIyBsb29wIGNhbiBiZSBjbG9zZWQgd2hpbGUgd2UgZm9sbG93IGxpbmtzLAotKwkJICAg ICAgIyBidXQgc28gd2hhdD8KLSsJCSAgICAgIHBvdGxpYj0iJHBvdGVudF9saWIiCi0rCQkgICAg ICB3aGlsZSB0ZXN0IC1oICIkcG90bGliIiAyPi9kZXYvbnVsbDsgZG8KLSsJCQlwb3RsaWJsaW5r PWBscyAtbGQgJHBvdGxpYiB8ICR7U0VEfSAncy8uKiAtPiAvLydgCi0rCQkJY2FzZSAkcG90bGli bGluayBpbgotKwkJCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgcG90bGliPSIkcG90bGlibGlu ayI7OwotKwkJCSopIHBvdGxpYj1gJEVDSE8gIlgkcG90bGliIiB8ICRYc2VkIC1lICdzLFteL10q JCwsJ2AiJHBvdGxpYmxpbmsiOzsKLSsJCQllc2FjCi0rCQkgICAgICBkb25lCi0rCQkgICAgICBp ZiBldmFsICRmaWxlX21hZ2ljX2NtZCBcIlwkcG90bGliXCIgMj4vZGV2L251bGwgfAotKwkJCSAk U0VEIC1lIDEwcSB8Ci0rCQkJICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxs OyB0aGVuCi0rCQkJbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgotKwkJCWFfZGVw bGliPSIiCi0rCQkJYnJlYWsgMgotKwkJICAgICAgZmkKLSsJCSAgZG9uZQotKwkJZG9uZQotKwkg ICAgICBmaQotKwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgotKwkJZHJvcHBl ZGRlcHM9eWVzCi0rCQkkRUNITwotKwkJJEVDSE8gIioqKiBXYXJuaW5nOiBsaW5rZXIgcGF0aCBk b2VzIG5vdCBoYXZlIHJlYWwgZmlsZSBmb3IgbGlicmFyeSAkYV9kZXBsaWIuIgotKwkJJEVDSE8g IioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGlj YWxseSBsaW5rIGluIHdoZW4iCi0rCQkkRUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFy eS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKLSsJCSRFQ0hPICIqKiog c2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRv IGhhdmUiCi0rCQkkRUNITyAiKioqIGJlY2F1c2UgSSBkaWQgY2hlY2sgdGhlIGxpbmtlciBwYXRo IGxvb2tpbmcgZm9yIGEgZmlsZSBzdGFydGluZyIKLSsJCWlmIHRlc3QgLXogIiRwb3RsaWIiIDsg dGhlbgotKwkJICAkRUNITyAiKioqIHdpdGggJGxpYm5hbWUgYnV0IG5vIGNhbmRpZGF0ZXMgd2Vy ZSBmb3VuZC4gKC4uLmZvciBmaWxlIG1hZ2ljIHRlc3QpIgotKwkJZWxzZQotKwkJICAkRUNITyAi KioqIHdpdGggJGxpYm5hbWUgYW5kIG5vbmUgb2YgdGhlIGNhbmRpZGF0ZXMgcGFzc2VkIGEgZmls ZSBmb3JtYXQgdGVzdCIKLSsJCSAgJEVDSE8gIioqKiB1c2luZyBhIGZpbGUgbWFnaWMuIExhc3Qg ZmlsZSBjaGVja2VkOiAkcG90bGliIgotKwkJZmkKLSsJICAgICAgZmkKLSsJICAgICAgOzsKLSsJ ICAgICopCi0rCSAgICAgICMgQWRkIGEgLUwgYXJndW1lbnQuCi0rCSAgICAgIG5ld2RlcGxpYnM9 IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICBkb25l ICMgR29uZSB0aHJvdWdoIGFsbCBkZXBsaWJzLgotKwkgIDs7Ci0rCW1hdGNoX3BhdHRlcm4qKQot KwkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRob2Q7IHNoaWZ0Ci0rCSAgbWF0Y2hfcGF0 dGVybl9yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMSBcKC4qXCkiYAot KwkgIGZvciBhX2RlcGxpYiBpbiAkZGVwbGliczsgZG8KLSsJICAgIGNhc2UgJGFfZGVwbGliIGlu Ci0rCSAgICAtbCopCi0rCSAgICAgIGZ1bmNfc3RyaXBuYW1lIC1sICcnICIkYV9kZXBsaWIiCi0r CSAgICAgIG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwkgICAgICBpZiB0ZXN0ICJYJGFs bG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCi0r CQljYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KLSsJCSoiICRhX2RlcGxpYiAiKikKLSsJ CSAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgotKwkJICBhX2RlcGxpYj0iIgot KwkJICA7OwotKwkJZXNhYwotKwkgICAgICBmaQotKwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBs aWIiIDsgdGhlbgotKwkJbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJg Ci0rCQlmb3IgaSBpbiAkbGliX3NlYXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxp Yl9zZWFyY2hfcGF0aDsgZG8KLSsJCSAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRsaWJuYW1lWy4t XSogMj4vZGV2L251bGxgCi0rCQkgIGZvciBwb3RlbnRfbGliIGluICRwb3RlbnRpYWxfbGliczsg ZG8KLSsJCSAgICBwb3RsaWI9IiRwb3RlbnRfbGliIiAjIHNlZSBzeW1saW5rLWNoZWNrIGFib3Zl IGluIGZpbGVfbWFnaWMgdGVzdAotKwkJICAgIGlmIGV2YWwgIlwkRUNITyBcIlgkcG90ZW50X2xp YlwiIiAyPi9kZXYvbnVsbCB8ICRYc2VkIC1lIDEwcSB8IFwKLSsJCSAgICAgICAkRUdSRVAgIiRt YXRjaF9wYXR0ZXJuX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgotKwkJICAgICAgbmV3ZGVwbGli cz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgotKwkJICAgICAgYV9kZXBsaWI9IiIKLSsJCSAgICAg IGJyZWFrIDIKLSsJCSAgICBmaQotKwkJICBkb25lCi0rCQlkb25lCi0rCSAgICAgIGZpCi0rCSAg ICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCi0rCQlkcm9wcGVkZGVwcz15ZXMKLSsJ CSRFQ0hPCi0rCQkkRUNITyAiKioqIFdhcm5pbmc6IGxpbmtlciBwYXRoIGRvZXMgbm90IGhhdmUg cmVhbCBmaWxlIGZvciBsaWJyYXJ5ICRhX2RlcGxpYi4iCi0rCQkkRUNITyAiKioqIEkgaGF2ZSB0 aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4g d2hlbiIKLSsJCSRFQ0hPICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2Fu IG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgotKwkJJEVDSE8gIioqKiBzaGFyZWQgdmVyc2lv biBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKLSsJCSRF Q0hPICIqKiogYmVjYXVzZSBJIGRpZCBjaGVjayB0aGUgbGlua2VyIHBhdGggbG9va2luZyBmb3Ig YSBmaWxlIHN0YXJ0aW5nIgotKwkJaWYgdGVzdCAteiAiJHBvdGxpYiIgOyB0aGVuCi0rCQkgICRF Q0hPICIqKiogd2l0aCAkbGlibmFtZSBidXQgbm8gY2FuZGlkYXRlcyB3ZXJlIGZvdW5kLiAoLi4u Zm9yIHJlZ2V4IHBhdHRlcm4gdGVzdCkiCi0rCQllbHNlCi0rCQkgICRFQ0hPICIqKiogd2l0aCAk bGlibmFtZSBhbmQgbm9uZSBvZiB0aGUgY2FuZGlkYXRlcyBwYXNzZWQgYSBmaWxlIGZvcm1hdCB0 ZXN0IgotKwkJICAkRUNITyAiKioqIHVzaW5nIGEgcmVnZXggcGF0dGVybi4gTGFzdCBmaWxlIGNo ZWNrZWQ6ICRwb3RsaWIiCi0rCQlmaQotKwkgICAgICBmaQotKwkgICAgICA7OwotKwkgICAgKikK LSsJICAgICAgIyBBZGQgYSAtTCBhcmd1bWVudC4KLSsJICAgICAgbmV3ZGVwbGlicz0iJG5ld2Rl cGxpYnMgJGFfZGVwbGliIgotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgIGRvbmUgIyBHb25l IHRocm91Z2ggYWxsIGRlcGxpYnMuCi0rCSAgOzsKLSsJbm9uZSB8IHVua25vd24gfCAqKQotKwkg IG5ld2RlcGxpYnM9IiIKLSsJICB0bXBfZGVwbGlicz1gJEVDSE8gIlggJGRlcGxpYnMiIHwgJFhz ZWQgXAotKwkgICAgICAtZSAncy8gLWxjJC8vJyAtZSAncy8gLVtMUl1bXiBdKi8vZydgCi0rCSAg aWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5 ZXMiIDsgdGhlbgotKwkgICAgZm9yIGkgaW4gJHByZWRlcHMgJHBvc3RkZXBzIDsgZG8KLSsJICAg ICAgIyBjYW4ndCB1c2UgWHNlZCBiZWxvdywgYmVjYXVzZSAkaSBtaWdodCBjb250YWluICcvJwot KwkgICAgICB0bXBfZGVwbGlicz1gJEVDSE8gIlggJHRtcF9kZXBsaWJzIiB8ICRYc2VkIC1lICJz LCRpLCwiYAotKwkgICAgZG9uZQotKwkgIGZpCi0rCSAgaWYgJEVDSE8gIlggJHRtcF9kZXBsaWJz IiB8ICRYc2VkIC1lICdzL1sJIF0vL2cnIHwKLSsJICAgICAkR1JFUCAuID4vZGV2L251bGw7IHRo ZW4KLSsJICAgICRFQ0hPCi0rCSAgICBpZiB0ZXN0ICJYJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA9 ICJYbm9uZSI7IHRoZW4KLSsJICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBpbnRlci1saWJyYXJ5 IGRlcGVuZGVuY2llcyBhcmUgbm90IHN1cHBvcnRlZCBpbiB0aGlzIHBsYXRmb3JtLiIKLSsJICAg IGVsc2UKLSsJICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBpbnRlci1saWJyYXJ5IGRlcGVuZGVu Y2llcyBhcmUgbm90IGtub3duIHRvIGJlIHN1cHBvcnRlZC4iCi0rCSAgICBmaQotKwkgICAgJEVD SE8gIioqKiBBbGwgZGVjbGFyZWQgaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIGJlaW5n IGRyb3BwZWQuIgotKwkgICAgZHJvcHBlZGRlcHM9eWVzCi0rCSAgZmkKLSsJICA7OwotKwllc2Fj Ci0rCXZlcnN1ZmZpeD0kdmVyc3VmZml4X3NhdmUKLSsJbWFqb3I9JG1ham9yX3NhdmUKLSsJcmVs ZWFzZT0kcmVsZWFzZV9zYXZlCi0rCWxpYm5hbWU9JGxpYm5hbWVfc2F2ZQotKwluYW1lPSRuYW1l X3NhdmUKLSsKLSsJY2FzZSAkaG9zdCBpbgotKwkqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEu WzAxMl0pCi0rCSAgIyBPbiBSaGFwc29keSByZXBsYWNlIHRoZSBDIGxpYnJhcnkgd2l0aCB0aGUg U3lzdGVtIGZyYW1ld29yawotKwkgIG5ld2RlcGxpYnM9YCRFQ0hPICJYICRuZXdkZXBsaWJzIiB8 ICRYc2VkIC1lICdzLyAtbGMgLyBTeXN0ZW0ubHRmcmFtZXdvcmsgLydgCi0rCSAgOzsKLSsJZXNh YwotKwotKwlpZiB0ZXN0ICIkZHJvcHBlZGRlcHMiID0geWVzOyB0aGVuCi0rCSAgaWYgdGVzdCAi JG1vZHVsZSIgPSB5ZXM7IHRoZW4KLSsJICAgICRFQ0hPCi0rCSAgICAkRUNITyAiKioqIFdhcm5p bmc6IGxpYnRvb2wgY291bGQgbm90IHNhdGlzZnkgYWxsIGRlY2xhcmVkIGludGVyLWxpYnJhcnki Ci0rCSAgICAkRUNITyAiKioqIGRlcGVuZGVuY2llcyBvZiBtb2R1bGUgJGxpYm5hbWUuICBUaGVy ZWZvcmUsIGxpYnRvb2wgd2lsbCBjcmVhdGUiCi0rCSAgICAkRUNITyAiKioqIGEgc3RhdGljIG1v ZHVsZSwgdGhhdCBzaG91bGQgd29yayBhcyBsb25nIGFzIHRoZSBkbG9wZW5pbmciCi0rCSAgICAk RUNITyAiKioqIGFwcGxpY2F0aW9uIGlzIGxpbmtlZCB3aXRoIHRoZSAtZGxvcGVuIGZsYWcuIgot KwkgICAgaWYgdGVzdCAteiAiJGdsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KLSsJICAgICAgJEVD SE8KLSsJICAgICAgJEVDSE8gIioqKiBIb3dldmVyLCB0aGlzIHdvdWxkIG9ubHkgd29yayBpZiBs aWJ0b29sIHdhcyBhYmxlIHRvIGV4dHJhY3Qgc3ltYm9sIgotKwkgICAgICAkRUNITyAiKioqIGxp c3RzIGZyb20gYSBwcm9ncmFtLCB1c2luZyBcYG5tJyBvciBlcXVpdmFsZW50LCBidXQgbGlidG9v bCBjb3VsZCIKLSsJICAgICAgJEVDSE8gIioqKiBub3QgZmluZCBzdWNoIGEgcHJvZ3JhbS4gIFNv LCB0aGlzIG1vZHVsZSBpcyBwcm9iYWJseSB1c2VsZXNzLiIKLSsJICAgICAgJEVDSE8gIioqKiBc YG5tJyBmcm9tIEdOVSBiaW51dGlscyBhbmQgYSBmdWxsIHJlYnVpbGQgbWF5IGhlbHAuIgotKwkg ICAgZmkKLSsJICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSBubzsgdGhlbgotKwkgICAg ICBvbGRsaWJzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0IgotKwkgICAgICBidWls ZF9saWJ0b29sX2xpYnM9bW9kdWxlCi0rCSAgICAgIGJ1aWxkX29sZF9saWJzPXllcwotKwkgICAg ZWxzZQotKwkgICAgICBidWlsZF9saWJ0b29sX2xpYnM9bm8KLSsJICAgIGZpCi0rCSAgZWxzZQot KwkgICAgJEVDSE8gIioqKiBUaGUgaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgdGhhdCBoYXZl IGJlZW4gZHJvcHBlZCBoZXJlIHdpbGwgYmUiCi0rCSAgICAkRUNITyAiKioqIGF1dG9tYXRpY2Fs bHkgYWRkZWQgd2hlbmV2ZXIgYSBwcm9ncmFtIGlzIGxpbmtlZCB3aXRoIHRoaXMgbGlicmFyeSIK LSsJICAgICRFQ0hPICIqKiogb3IgaXMgZGVjbGFyZWQgdG8gLWRsb3BlbiBpdC4iCi0rCi0rCSAg ICBpZiB0ZXN0ICIkYWxsb3dfdW5kZWZpbmVkIiA9IG5vOyB0aGVuCi0rCSAgICAgICRFQ0hPCi0r CSAgICAgICRFQ0hPICIqKiogU2luY2UgdGhpcyBsaWJyYXJ5IG11c3Qgbm90IGNvbnRhaW4gdW5k ZWZpbmVkIHN5bWJvbHMsIgotKwkgICAgICAkRUNITyAiKioqIGJlY2F1c2UgZWl0aGVyIHRoZSBw bGF0Zm9ybSBkb2VzIG5vdCBzdXBwb3J0IHRoZW0gb3IiCi0rCSAgICAgICRFQ0hPICIqKiogaXQg d2FzIGV4cGxpY2l0bHkgcmVxdWVzdGVkIHdpdGggLW5vLXVuZGVmaW5lZCwiCi0rCSAgICAgICRF Q0hPICIqKiogbGlidG9vbCB3aWxsIG9ubHkgY3JlYXRlIGEgc3RhdGljIHZlcnNpb24gb2YgaXQu IgotKwkgICAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0gbm87IHRoZW4KLSsJCW9sZGxp YnM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLiRsaWJleHQiCi0rCQlidWlsZF9saWJ0b29sX2xp YnM9bW9kdWxlCi0rCQlidWlsZF9vbGRfbGlicz15ZXMKLSsJICAgICAgZWxzZQotKwkJYnVpbGRf bGlidG9vbF9saWJzPW5vCi0rCSAgICAgIGZpCi0rCSAgICBmaQotKwkgIGZpCi0rCWZpCi0rCSMg RG9uZSBjaGVja2luZyBkZXBsaWJzIQotKwlkZXBsaWJzPSRuZXdkZXBsaWJzCi0rICAgICAgZmkK LSsgICAgICAjIFRpbWUgdG8gY2hhbmdlIGFsbCBvdXIgImZvby5sdGZyYW1ld29yayIgc3R1ZmYg YmFjayB0byAiLWZyYW1ld29yayBmb28iCi0rICAgICAgY2FzZSAkaG9zdCBpbgotKwkqLSotZGFy d2luKikKLSsJICBuZXdkZXBsaWJzPWAkRUNITyAiWCAkbmV3ZGVwbGlicyIgfCAkWHNlZCAtZSAn cyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKLSsJICBuZXdfaW5o ZXJpdGVkX2xpbmtlcl9mbGFncz1gJEVDSE8gIlggJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdz IiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcn YAotKwkgIGRlcGxpYnM9YCRFQ0hPICJYICRkZXBsaWJzIiB8ICRYc2VkIC1lICdzJSBcKFteICRd KlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAotKwkgIDs7Ci0rICAgICAgZXNhYwot KwotKyAgICAgICMgbW92ZSBsaWJyYXJ5IHNlYXJjaCBwYXRocyB0aGF0IGNvaW5jaWRlIHdpdGgg cGF0aHMgdG8gbm90IHlldAotKyAgICAgICMgaW5zdGFsbGVkIGxpYnJhcmllcyB0byB0aGUgYmVn aW5uaW5nIG9mIHRoZSBsaWJyYXJ5IHNlYXJjaCBsaXN0Ci0rICAgICAgbmV3X2xpYnM9Ci0rICAg ICAgZm9yIHBhdGggaW4gJG5vdGluc3RfcGF0aDsgZG8KLSsJY2FzZSAiICRuZXdfbGlicyAiIGlu Ci0rCSoiIC1MJHBhdGgvJG9iamRpciAiKikgOzsKLSsJKikKLSsJICBjYXNlICIgJGRlcGxpYnMg IiBpbgotKwkgICoiIC1MJHBhdGgvJG9iamRpciAiKikKLSsJICAgIG5ld19saWJzPSIkbmV3X2xp YnMgLUwkcGF0aC8kb2JqZGlyIiA7OwotKwkgIGVzYWMKLSsJICA7OwotKwllc2FjCi0rICAgICAg ZG9uZQotKyAgICAgIGZvciBkZXBsaWIgaW4gJGRlcGxpYnM7IGRvCi0rCWNhc2UgJGRlcGxpYiBp bgotKwktTCopCi0rCSAgY2FzZSAiICRuZXdfbGlicyAiIGluCi0rCSAgKiIgJGRlcGxpYiAiKikg OzsKLSsJICAqKSBuZXdfbGlicz0iJG5ld19saWJzICRkZXBsaWIiIDs7Ci0rCSAgZXNhYwotKwkg IDs7Ci0rCSopIG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKLSsJZXNhYwotKyAgICAg IGRvbmUKLSsgICAgICBkZXBsaWJzPSIkbmV3X2xpYnMiCi0rCi0rICAgICAgIyBBbGwgdGhlIGxp YnJhcnktc3BlY2lmaWMgdmFyaWFibGVzIChpbnN0YWxsX2xpYmRpciBpcyBzZXQgYWJvdmUpLgot KyAgICAgIGxpYnJhcnlfbmFtZXM9Ci0rICAgICAgb2xkX2xpYnJhcnk9Ci0rICAgICAgZGxuYW1l PQotKwotKyAgICAgICMgVGVzdCBhZ2Fpbiwgd2UgbWF5IGhhdmUgZGVjaWRlZCBub3QgdG8gYnVp bGQgaXQgYW55IG1vcmUKLSsgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHll czsgdGhlbgotKwlpZiB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiA9IHllczsgdGhlbgotKwkg ICMgSGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aHMKLSsJICBoYXJkY29kZV9saWJkaXJzPQotKwkg IGRlcF9ycGF0aD0KLSsJICBycGF0aD0iJGZpbmFsaXplX3JwYXRoIgotKwkgIHRlc3QgIiRtb2Rl IiAhPSByZWxpbmsgJiYgcnBhdGg9IiRjb21waWxlX3JwYXRoJHJwYXRoIgotKwkgIGZvciBsaWJk aXIgaW4gJHJwYXRoOyBkbwotKwkgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMiOyB0aGVuCi0rCSAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yIjsgdGhlbgotKwkJaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCQkg IGhhcmRjb2RlX2xpYmRpcnM9IiRsaWJkaXIiCi0rCQllbHNlCi0rCQkgICMgSnVzdCBhY2N1bXVs YXRlIHRoZSB1bmlxdWUgbGliZGlycy4KLSsJCSAgY2FzZSAkaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvciRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IgaW4KLSsJCSAg KiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvciIqKQotKwkJICAgIDs7Ci0rCQkgICopCi0rCQkgICAgaGFyZGNvZGVfbGliZGlycz0iJGhh cmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCi0rCQkgICAg OzsKLSsJCSAgZXNhYwotKwkJZmkKLSsJICAgICAgZWxzZQotKwkJZXZhbCBmbGFnPVwiJGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNcIgotKwkJZGVwX3JwYXRoPSIkZGVwX3JwYXRoICRmbGFnIgot KwkgICAgICBmaQotKwkgICAgZWxpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCi0rCSAg ICAgIGNhc2UgIiRwZXJtX3JwYXRoICIgaW4KLSsJICAgICAgKiIgJGxpYmRpciAiKikgOzsKLSsJ ICAgICAgKikgcGVybV9ycGF0aD0iJHBlcm1fcnBhdGggJGxpYmRpciIgOzsKLSsJICAgICAgZXNh YwotKwkgICAgZmkKLSsJICBkb25lCi0rCSAgIyBTdWJzdGl0dXRlIHRoZSBoYXJkY29kZWQgbGli ZGlycyBpbnRvIHRoZSBycGF0aC4KLSsJICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvciIgJiYKLSsJICAgICB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KLSsJ ICAgIGxpYmRpcj0iJGhhcmRjb2RlX2xpYmRpcnMiCi0rCSAgICBpZiB0ZXN0IC1uICIkaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19sZCI7IHRoZW4KLSsJICAgICAgZXZhbCBkZXBfcnBhdGg9XCIk aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZFwiCi0rCSAgICBlbHNlCi0rCSAgICAgIGV2YWwg ZGVwX3JwYXRoPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgotKwkgICAgZmkKLSsJICBm aQotKwkgIGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciIgJiYgdGVzdCAtbiAiJHBlcm1fcnBhdGgi OyB0aGVuCi0rCSAgICAjIFdlIHNob3VsZCBzZXQgdGhlIHJ1bnBhdGhfdmFyLgotKwkgICAgcnBh dGg9Ci0rCSAgICBmb3IgZGlyIGluICRwZXJtX3JwYXRoOyBkbwotKwkgICAgICBycGF0aD0iJHJw YXRoJGRpcjoiCi0rCSAgICBkb25lCi0rCSAgICBldmFsICIkcnVucGF0aF92YXI9JyRycGF0aFwk JHJ1bnBhdGhfdmFyJzsgZXhwb3J0ICRydW5wYXRoX3ZhciIKLSsJICBmaQotKwkgIHRlc3QgLW4g IiRkZXBfcnBhdGgiICYmIGRlcGxpYnM9IiRkZXBfcnBhdGggJGRlcGxpYnMiCi0rCWZpCi0rCi0r CXNobGlicGF0aD0iJGZpbmFsaXplX3NobGlicGF0aCIKLSsJdGVzdCAiJG1vZGUiICE9IHJlbGlu ayAmJiBzaGxpYnBhdGg9IiRjb21waWxlX3NobGlicGF0aCRzaGxpYnBhdGgiCi0rCWlmIHRlc3Qg LW4gIiRzaGxpYnBhdGgiOyB0aGVuCi0rCSAgZXZhbCAiJHNobGlicGF0aF92YXI9JyRzaGxpYnBh dGhcJCRzaGxpYnBhdGhfdmFyJzsgZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgotKwlmaQotKwotKwkj IEdldCB0aGUgcmVhbCBhbmQgbGluayBuYW1lcyBvZiB0aGUgbGlicmFyeS4KLSsJZXZhbCBzaGFy ZWRfZXh0PVwiJHNocmV4dF9jbWRzXCIKLSsJZXZhbCBsaWJyYXJ5X25hbWVzPVwiJGxpYnJhcnlf bmFtZXNfc3BlY1wiCi0rCXNldCBkdW1teSAkbGlicmFyeV9uYW1lcwotKwlzaGlmdAotKwlyZWFs bmFtZT0iJDEiCi0rCXNoaWZ0Ci0rCi0rCWlmIHRlc3QgLW4gIiRzb25hbWVfc3BlYyI7IHRoZW4K LSsJICBldmFsIHNvbmFtZT1cIiRzb25hbWVfc3BlY1wiCi0rCWVsc2UKLSsJICBzb25hbWU9IiRy ZWFsbmFtZSIKLSsJZmkKLSsJaWYgdGVzdCAteiAiJGRsbmFtZSI7IHRoZW4KLSsJICBkbG5hbWU9 JHNvbmFtZQotKwlmaQotKwotKwlsaWI9IiRvdXRwdXRfb2JqZGlyLyRyZWFsbmFtZSIKLSsJbGlu a25hbWVzPQotKwlmb3IgbGluawotKwlkbwotKwkgIGxpbmtuYW1lcz0iJGxpbmtuYW1lcyAkbGlu ayIKLSsJZG9uZQotKwotKwkjIFVzZSBzdGFuZGFyZCBvYmplY3RzIGlmIHRoZXkgYXJlIHBpYwot Kwl0ZXN0IC16ICIkcGljX2ZsYWciICYmIGxpYm9ianM9YCRFQ0hPICJYJGxpYm9ianMiIHwgJFNQ Mk5MIHwgJFhzZWQgLWUgIiRsbzJvIiB8ICROTDJTUGAKLSsJdGVzdCAiWCRsaWJvYmpzIiA9ICJY ICIgJiYgbGlib2Jqcz0KLSsKLSsJZGVsZmlsZXM9Ci0rCWlmIHRlc3QgLW4gIiRleHBvcnRfc3lt Ym9scyIgJiYgdGVzdCAtbiAiJGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4KLSsJICAkb3B0X2RyeV9y dW4gfHwgY3AgIiRleHBvcnRfc3ltYm9scyIgIiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnVleHAi Ci0rCSAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnVleHAiCi0rCSAg ZGVsZmlsZXM9IiRkZWxmaWxlcyAkZXhwb3J0X3N5bWJvbHMiCi0rCWZpCi0rCi0rCW9yaWdfZXhw b3J0X3N5bWJvbHM9Ci0rCWNhc2UgJGhvc3Rfb3MgaW4KLSsJY3lnd2luKiB8IG1pbmd3KiB8IGNl Z2NjKikKLSsJICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLXogIiRleHBv cnRfc3ltYm9sc19yZWdleCI7IHRoZW4KLSsJICAgICMgZXhwb3J0aW5nIHVzaW5nIHVzZXIgc3Vw cGxpZWQgc3ltZmlsZQotKwkgICAgaWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2Ai ICE9IHhFWFBPUlRTOyB0aGVuCi0rCSAgICAgICMgYW5kIGl0J3MgTk9UIGFscmVhZHkgYSAuZGVm IGZpbGUuIE11c3QgZmlndXJlIG91dAotKwkgICAgICAjIHdoaWNoIG9mIHRoZSBnaXZlbiBzeW1i b2xzIGFyZSBkYXRhIHN5bWJvbHMgYW5kIHRhZwotKwkgICAgICAjIHRoZW0gYXMgc3VjaC4gU28s IHRyaWdnZXIgdXNlIG9mIGV4cG9ydF9zeW1ib2xzX2NtZHMuCi0rCSAgICAgICMgZXhwb3J0X3N5 bWJvbHMgZ2V0cyByZWFzc2lnbmVkIGluc2lkZSB0aGUgInByZXBhcmUKLSsJICAgICAgIyB0aGUg bGlzdCBvZiBleHBvcnRlZCBzeW1ib2xzIiBpZiBzdGF0ZW1lbnQsIHNvIHRoZQotKwkgICAgICAj IGluY2x1ZGVfZXhwc3ltcyBsb2dpYyBzdGlsbCB3b3Jrcy4KLSsJICAgICAgb3JpZ19leHBvcnRf c3ltYm9scz0iJGV4cG9ydF9zeW1ib2xzIgotKwkgICAgICBleHBvcnRfc3ltYm9scz0KLSsJICAg ICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPXllcwotKwkgICAgZmkKLSsJICBmaQotKwkgIDs7Ci0r CWVzYWMKLSsKLSsJIyBQcmVwYXJlIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMKLSsJaWYg dGVzdCAteiAiJGV4cG9ydF9zeW1ib2xzIjsgdGhlbgotKwkgIGlmIHRlc3QgIiRhbHdheXNfZXhw b3J0X3N5bWJvbHMiID0geWVzIHx8IHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCI7IHRo ZW4KLSsJICAgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAkbGli bmFtZS5sYSciCi0rCSAgICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu ZXhwIgotKwkgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkZXhwb3J0X3N5bWJvbHMKLSsJICAgIGNt ZHM9JGV4cG9ydF9zeW1ib2xzX2NtZHMKLSsJICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+Jwot KwkgICAgZm9yIGNtZCBpbiAkY21kczsgZG8KLSsJICAgICAgSUZTPSIkc2F2ZV9pZnMiCi0rCSAg ICAgIGV2YWwgY21kPVwiJGNtZFwiCi0rCSAgICAgIGZ1bmNfbGVuICIgJGNtZCIKLSsJICAgICAg bGVuPSRmdW5jX2xlbl9yZXN1bHQKLSsJICAgICAgaWYgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2Nt ZF9sZW4iIHx8IHRlc3QgIiRtYXhfY21kX2xlbiIgLWxlIC0xOyB0aGVuCi0rCQlmdW5jX3Nob3df ZXZhbCAiJGNtZCIgJ2V4aXQgJD8nCi0rCQlza2lwcGVkX2V4cG9ydD1mYWxzZQotKwkgICAgICBl bHNlCi0rCQkjIFRoZSBjb21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gZXhlY3V0ZSBpbiBvbmUg c3RlcC4KLSsJCWZ1bmNfdmVyYm9zZSAidXNpbmcgcmVsb2FkYWJsZSBvYmplY3QgZmlsZSBmb3Ig ZXhwb3J0IGxpc3QuLi4iCi0rCQlza2lwcGVkX2V4cG9ydD06Ci0rCQkjIEJyZWFrIG91dCBlYXJs eSwgb3RoZXJ3aXNlIHNraXBwZWRfZXhwb3J0IG1heSBiZQotKwkJIyBzZXQgdG8gZmFsc2UgYnkg YSBsYXRlciBidXQgc2hvcnRlciBjbWQuCi0rCQlicmVhawotKwkgICAgICBmaQotKwkgICAgZG9u ZQotKwkgICAgSUZTPSIkc2F2ZV9pZnMiCi0rCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJv bHNfcmVnZXgiICYmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiI7IHRoZW4KLSsJICAg ICAgZnVuY19zaG93X2V2YWwgJyRFR1JFUCAtZSAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IiAiJGV4 cG9ydF9zeW1ib2xzIiA+ICIke2V4cG9ydF9zeW1ib2xzfVQiJwotKwkgICAgICBmdW5jX3Nob3df ZXZhbCAnJE1WICIke2V4cG9ydF9zeW1ib2xzfVQiICIkZXhwb3J0X3N5bWJvbHMiJwotKwkgICAg ZmkKLSsJICBmaQotKwlmaQotKwotKwlpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRl c3QgLW4gIiRpbmNsdWRlX2V4cHN5bXMiOyB0aGVuCi0rCSAgdG1wX2V4cG9ydF9zeW1ib2xzPSIk ZXhwb3J0X3N5bWJvbHMiCi0rCSAgdGVzdCAtbiAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiICYmIHRt cF9leHBvcnRfc3ltYm9scz0iJG9yaWdfZXhwb3J0X3N5bWJvbHMiCi0rCSAgJG9wdF9kcnlfcnVu IHx8IGV2YWwgJyRFQ0hPICJYJGluY2x1ZGVfZXhwc3ltcyIgfCAkWHNlZCB8ICRTUDJOTCA+PiAi JHRtcF9leHBvcnRfc3ltYm9scyInCi0rCWZpCi0rCi0rCWlmIHRlc3QgIlgkc2tpcHBlZF9leHBv cnQiICE9ICJYOiIgJiYgdGVzdCAtbiAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiOyB0aGVuCi0rCSAg IyBUaGUgZ2l2ZW4gZXhwb3J0c19zeW1ib2xzIGZpbGUgaGFzIHRvIGJlIGZpbHRlcmVkLCBzbyBm aWx0ZXIgaXQuCi0rCSAgZnVuY192ZXJib3NlICJmaWx0ZXIgc3ltYm9sIGxpc3QgZm9yIFxgJGxp Ym5hbWUubGEnIHRvIHRhZyBEQVRBIGV4cG9ydHMiCi0rCSAgIyBGSVhNRTogJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUuZmlsdGVyIHBvdGVudGlhbGx5IGNvbnRhaW5zIGxvdHMgb2YKLSsJICAjICdz JyBjb21tYW5kcyB3aGljaCBub3QgYWxsIHNlZHMgY2FuIGhhbmRsZS4gR05VIHNlZCBzaG91bGQg YmUgZmluZQotKwkgICMgdGhvdWdoLiBBbHNvLCB0aGUgZmlsdGVyIHNjYWxlcyBzdXBlcmxpbmVh cmx5IHdpdGggdGhlIG51bWJlciBvZgotKwkgICMgZ2xvYmFsIHZhcmlhYmxlcy4gam9pbigxKSB3 b3VsZCBiZSBuaWNlIGhlcmUsIGJ1dCB1bmZvcnR1bmF0ZWx5Ci0rCSAgIyBpc24ndCBhIGJsZXNz ZWQgdG9vbC4KLSsJICAkb3B0X2RyeV9ydW4gfHwgJFNFRCAtZSAnL1sgLF1EQVRBLyFkO3MsXCgu KlwpXChbIFwsXS4qXCksc3xeXDEkfFwxXDJ8LCcgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0 X29iamRpci8kbGlibmFtZS5maWx0ZXIKLSsJICBkZWxmaWxlcz0iJGRlbGZpbGVzICRleHBvcnRf c3ltYm9scyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIiCi0rCSAgZXhwb3J0X3N5bWJv bHM9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmCi0rCSAgJG9wdF9kcnlfcnVuIHx8ICRTRUQg LWYgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIDwgJG9yaWdfZXhwb3J0X3N5bWJvbHMg PiAkZXhwb3J0X3N5bWJvbHMKLSsJZmkKLSsKLSsJdG1wX2RlcGxpYnM9Ci0rCWZvciB0ZXN0X2Rl cGxpYiBpbiAkZGVwbGliczsgZG8KLSsJICBjYXNlICIgJGNvbnZlbmllbmNlICIgaW4KLSsJICAq IiAkdGVzdF9kZXBsaWIgIiopIDs7Ci0rCSAgKikKLSsJICAgIHRtcF9kZXBsaWJzPSIkdG1wX2Rl cGxpYnMgJHRlc3RfZGVwbGliIgotKwkgICAgOzsKLSsJICBlc2FjCi0rCWRvbmUKLSsJZGVwbGli cz0iJHRtcF9kZXBsaWJzIgotKwotKwlpZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiOyB0aGVuCi0r CSAgaWYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIiAmJgotKwkgICAgdGVzdCAi JGNvbXBpbGVyX25lZWRzX29iamVjdCIgPSB5ZXMgJiYKLSsJICAgIHRlc3QgLXogIiRsaWJvYmpz IjsgdGhlbgotKwkgICAgIyBleHRyYWN0IHRoZSBhcmNoaXZlcywgc28gd2UgaGF2ZSBvYmplY3Rz IHRvIGxpc3QuCi0rCSAgICAjIFRPRE86IGNvdWxkIG9wdGltaXplIHRoaXMgdG8ganVzdCBleHRy YWN0IG9uZSBhcmNoaXZlLgotKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Ci0rCSAgZmkK LSsJICBpZiB0ZXN0IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgICBz YXZlX2xpYm9ianM9JGxpYm9ianMKLSsJICAgIGV2YWwgbGlib2Jqcz1cIlwkbGlib2JqcyAkd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWNcIgotKwkgICAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYg bGlib2Jqcz0KLSsJICBlbHNlCi0rCSAgICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0 bmFtZX14IgotKwkgICAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCi0rCi0rCSAgICBm dW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkY29udmVuaWVuY2UKLSsJICAgIGxpYm9ianM9 IiRsaWJvYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgotKwkgICAgdGVzdCAiWCRs aWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KLSsJICBmaQotKwlmaQotKwotKwlpZiB0ZXN0ICIk dGhyZWFkX3NhZmUiID0geWVzICYmIHRlc3QgLW4gIiR0aHJlYWRfc2FmZV9mbGFnX3NwZWMiOyB0 aGVuCi0rCSAgZXZhbCBmbGFnPVwiJHRocmVhZF9zYWZlX2ZsYWdfc3BlY1wiCi0rCSAgbGlua2Vy X2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRmbGFnIgotKwlmaQotKwotKwkjIE1ha2UgYSBiYWNrdXAg b2YgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgd2hlbiByZWxpbmtpbmcKLSsJaWYgdGVzdCAiJG1v ZGUiID0gcmVsaW5rOyB0aGVuCi0rCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyhjZCAkb3V0cHV0 X29iamRpciAmJiAkUk0gJHtyZWFsbmFtZX1VICYmICRNViAkcmVhbG5hbWUgJHtyZWFsbmFtZX1V KScgfHwgZXhpdCAkPwotKwlmaQotKwotKwkjIERvIGVhY2ggb2YgdGhlIGFyY2hpdmUgY29tbWFu ZHMuCi0rCWlmIHRlc3QgIiRtb2R1bGUiID0geWVzICYmIHRlc3QgLW4gIiRtb2R1bGVfY21kcyIg OyB0aGVuCi0rCSAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkbW9k dWxlX2V4cHN5bV9jbWRzIjsgdGhlbgotKwkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkbW9kdWxlX2V4 cHN5bV9jbWRzXCIKLSsJICAgIGNtZHM9JG1vZHVsZV9leHBzeW1fY21kcwotKwkgIGVsc2UKLSsJ ICAgIGV2YWwgdGVzdF9jbWRzPVwiJG1vZHVsZV9jbWRzXCIKLSsJICAgIGNtZHM9JG1vZHVsZV9j bWRzCi0rCSAgZmkKLSsJZWxzZQotKwkgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYg dGVzdCAtbiAiJGFyY2hpdmVfZXhwc3ltX2NtZHMiOyB0aGVuCi0rCSAgICBldmFsIHRlc3RfY21k cz1cIiRhcmNoaXZlX2V4cHN5bV9jbWRzXCIKLSsJICAgIGNtZHM9JGFyY2hpdmVfZXhwc3ltX2Nt ZHMKLSsJICBlbHNlCi0rCSAgICBldmFsIHRlc3RfY21kcz1cIiRhcmNoaXZlX2NtZHNcIgotKwkg ICAgY21kcz0kYXJjaGl2ZV9jbWRzCi0rCSAgZmkKLSsJZmkKLSsKLSsJaWYgdGVzdCAiWCRza2lw cGVkX2V4cG9ydCIgIT0gIlg6IiAmJgotKwkgICBmdW5jX2xlbiAiICR0ZXN0X2NtZHMiICYmCi0r CSAgIGxlbj0kZnVuY19sZW5fcmVzdWx0ICYmCi0rCSAgIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9j bWRfbGVuIiB8fCB0ZXN0ICIkbWF4X2NtZF9sZW4iIC1sZSAtMTsgdGhlbgotKwkgIDoKLSsJZWxz ZQotKwkgICMgVGhlIGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBsaW5rIGluIG9uZSBzdGVw LCBsaW5rIHBpZWNld2lzZQotKwkgICMgb3IsIGlmIHVzaW5nIEdOVSBsZCBhbmQgc2tpcHBlZF9l eHBvcnQgaXMgbm90IDosIHVzZSBhIGxpbmtlcgotKwkgICMgc2NyaXB0LgotKwotKwkgICMgU2F2 ZSB0aGUgdmFsdWUgb2YgJG91dHB1dCBhbmQgJGxpYm9ianMgYmVjYXVzZSB3ZSB3YW50IHRvCi0r CSAgIyB1c2UgdGhlbSBsYXRlci4gIElmIHdlIGhhdmUgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs IHdlCi0rCSAgIyB3YW50IHRvIHVzZSBzYXZlX2xpYm9ianMgYXMgaXQgd2FzIGJlZm9yZQotKwkg ICMgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMgd2FzIGV4cGFuZGVkLCBiZWNhdXNlIHdlIGNhbid0 Ci0rCSAgIyBhc3N1bWUgdGhlIGxpbmtlciB1bmRlcnN0YW5kcyB3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYy4KLSsJICAjIFRoaXMgbWF5IGhhdmUgdG8gYmUgcmV2aXNpdGVkLCBpbiBjYXNlIHRvbyBt YW55Ci0rCSAgIyBjb252ZW5pZW5jZSBsaWJyYXJpZXMgZ2V0IGxpbmtlZCBpbiBhbmQgZW5kIHVw IGV4Y2VlZGluZwotKwkgICMgdGhlIHNwZWMuCi0rCSAgaWYgdGVzdCAteiAiJGNvbnZlbmllbmNl IiB8fCB0ZXN0IC16ICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgICBzYXZl X2xpYm9ianM9JGxpYm9ianMKLSsJICBmaQotKwkgIHNhdmVfb3V0cHV0PSRvdXRwdXQKLSsJICBv dXRwdXRfbGE9YCRFQ0hPICJYJG91dHB1dCIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKLSsKLSsJ ICAjIENsZWFyIHRoZSByZWxvYWRhYmxlIG9iamVjdCBjcmVhdGlvbiBjb21tYW5kIHF1ZXVlIGFu ZAotKwkgICMgaW5pdGlhbGl6ZSBrIHRvIG9uZS4KLSsJICB0ZXN0X2NtZHM9Ci0rCSAgY29uY2F0 X2NtZHM9Ci0rCSAgb2JqbGlzdD0KLSsJICBsYXN0X3JvYmo9Ci0rCSAgaz0xCi0rCi0rCSAgaWYg dGVzdCAtbiAiJHNhdmVfbGlib2JqcyIgJiYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6 IiAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rCSAgICBvdXRwdXQ9JHtvdXRw dXRfb2JqZGlyfS8ke291dHB1dF9sYX0ubG5rc2NyaXB0Ci0rCSAgICBmdW5jX3ZlcmJvc2UgImNy ZWF0aW5nIEdOVSBsZCBzY3JpcHQ6ICRvdXRwdXQiCi0rCSAgICAkRUNITyAnSU5QVVQgKCcgPiAk b3V0cHV0Ci0rCSAgICBmb3Igb2JqIGluICRzYXZlX2xpYm9ianMKLSsJICAgIGRvCi0rCSAgICAg ICRFQ0hPICIkb2JqIiA+PiAkb3V0cHV0Ci0rCSAgICBkb25lCi0rCSAgICAkRUNITyAnKScgPj4g JG91dHB1dAotKwkgICAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkb3V0cHV0IgotKwkgIGVsaWYgdGVz dCAtbiAiJHNhdmVfbGlib2JqcyIgJiYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IiAm JiB0ZXN0ICJYJGZpbGVfbGlzdF9zcGVjIiAhPSBYOyB0aGVuCi0rCSAgICBvdXRwdXQ9JHtvdXRw dXRfb2JqZGlyfS8ke291dHB1dF9sYX0ubG5rCi0rCSAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5n IGxpbmtlciBpbnB1dCBmaWxlIGxpc3Q6ICRvdXRwdXQiCi0rCSAgICA6ID4gJG91dHB1dAotKwkg ICAgc2V0IHggJHNhdmVfbGlib2JqcwotKwkgICAgc2hpZnQKLSsJICAgIGZpcnN0b2JqPQotKwkg ICAgaWYgdGVzdCAiJGNvbXBpbGVyX25lZWRzX29iamVjdCIgPSB5ZXM7IHRoZW4KLSsJICAgICAg Zmlyc3RvYmo9IiQxICIKLSsJICAgICAgc2hpZnQKLSsJICAgIGZpCi0rCSAgICBmb3Igb2JqCi0r CSAgICBkbwotKwkgICAgICAkRUNITyAiJG9iaiIgPj4gJG91dHB1dAotKwkgICAgZG9uZQotKwkg ICAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkb3V0cHV0IgotKwkgICAgb3V0cHV0PSRmaXJzdG9ialwi JGZpbGVfbGlzdF9zcGVjJG91dHB1dFwiCi0rCSAgZWxzZQotKwkgICAgaWYgdGVzdCAtbiAiJHNh dmVfbGlib2JqcyI7IHRoZW4KLSsJICAgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyByZWxvYWRh YmxlIG9iamVjdCBmaWxlcy4uLiIKLSsJICAgICAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRw dXRfbGEtJHtrfS4kb2JqZXh0Ci0rCSAgICAgIGV2YWwgdGVzdF9jbWRzPVwiJHJlbG9hZF9jbWRz XCIKLSsJICAgICAgZnVuY19sZW4gIiAkdGVzdF9jbWRzIgotKwkgICAgICBsZW4wPSRmdW5jX2xl bl9yZXN1bHQKLSsJICAgICAgbGVuPSRsZW4wCi0rCi0rCSAgICAgICMgTG9vcCBvdmVyIHRoZSBs aXN0IG9mIG9iamVjdHMgdG8gYmUgbGlua2VkLgotKwkgICAgICBmb3Igb2JqIGluICRzYXZlX2xp Ym9ianMKLSsJICAgICAgZG8KLSsJCWZ1bmNfbGVuICIgJG9iaiIKLSsJCWZ1bmNfYXJpdGggJGxl biArICRmdW5jX2xlbl9yZXN1bHQKLSsJCWxlbj0kZnVuY19hcml0aF9yZXN1bHQKLSsJCWlmIHRl c3QgIlgkb2JqbGlzdCIgPSBYIHx8Ci0rCQkgICB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xl biI7IHRoZW4KLSsJCSAgZnVuY19hcHBlbmQgb2JqbGlzdCAiICRvYmoiCi0rCQllbHNlCi0rCQkg ICMgVGhlIGNvbW1hbmQgJHRlc3RfY21kcyBpcyBhbG1vc3QgdG9vIGxvbmcsIGFkZCBhCi0rCQkg ICMgY29tbWFuZCB0byB0aGUgcXVldWUuCi0rCQkgIGlmIHRlc3QgIiRrIiAtZXEgMSA7IHRoZW4K LSsJCSAgICAjIFRoZSBmaXJzdCBmaWxlIGRvZXNuJ3QgaGF2ZSBhIHByZXZpb3VzIGNvbW1hbmQg dG8gYWRkLgotKwkJICAgIGV2YWwgY29uY2F0X2NtZHM9XCIkcmVsb2FkX2NtZHMgJG9iamxpc3Qg JGxhc3Rfcm9ialwiCi0rCQkgIGVsc2UKLSsJCSAgICAjIEFsbCBzdWJzZXF1ZW50IHJlbG9hZGFi bGUgb2JqZWN0IGZpbGVzIHdpbGwgbGluayBpbgotKwkJICAgICMgdGhlIGxhc3Qgb25lIGNyZWF0 ZWQuCi0rCQkgICAgZXZhbCBjb25jYXRfY21kcz1cIlwkY29uY2F0X2NtZHN+JHJlbG9hZF9jbWRz ICRvYmpsaXN0ICRsYXN0X3JvYmp+XCRSTSAkbGFzdF9yb2JqXCIKLSsJCSAgZmkKLSsJCSAgbGFz dF9yb2JqPSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0Ci0rCQkgIGZ1bmNf YXJpdGggJGsgKyAxCi0rCQkgIGs9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCQkgIG91dHB1dD0kb3V0 cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4dAotKwkJICBvYmpsaXN0PSRvYmoKLSsJ CSAgZnVuY19sZW4gIiAkbGFzdF9yb2JqIgotKwkJICBmdW5jX2FyaXRoICRsZW4wICsgJGZ1bmNf bGVuX3Jlc3VsdAotKwkJICBsZW49JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCQlmaQotKwkgICAgICBk b25lCi0rCSAgICAgICMgSGFuZGxlIHRoZSByZW1haW5pbmcgb2JqZWN0cyBieSBjcmVhdGluZyBv bmUgbGFzdAotKwkgICAgICAjIHJlbG9hZGFibGUgb2JqZWN0IGZpbGUuICBBbGwgc3Vic2VxdWVu dCByZWxvYWRhYmxlIG9iamVjdAotKwkgICAgICAjIGZpbGVzIHdpbGwgbGluayBpbiB0aGUgbGFz dCBvbmUgY3JlYXRlZC4KLSsJICAgICAgdGVzdCAteiAiJGNvbmNhdF9jbWRzIiB8fCBjb25jYXRf Y21kcz0kY29uY2F0X2NtZHN+Ci0rCSAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJHtjb25jYXRf Y21kc30kcmVsb2FkX2NtZHMgJG9iamxpc3QgJGxhc3Rfcm9ialwiCi0rCSAgICAgIGlmIHRlc3Qg LW4gIiRsYXN0X3JvYmoiOyB0aGVuCi0rCSAgICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwke2Nv bmNhdF9jbWRzfX5cJFJNICRsYXN0X3JvYmpcIgotKwkgICAgICBmaQotKwkgICAgICBkZWxmaWxl cz0iJGRlbGZpbGVzICRvdXRwdXQiCi0rCi0rCSAgICBlbHNlCi0rCSAgICAgIG91dHB1dD0KLSsJ ICAgIGZpCi0rCi0rCSAgICBpZiAke3NraXBwZWRfZXhwb3J0LWZhbHNlfTsgdGhlbgotKwkgICAg ICBmdW5jX3ZlcmJvc2UgImdlbmVyYXRpbmcgc3ltYm9sIGxpc3QgZm9yIFxgJGxpYm5hbWUubGEn IgotKwkgICAgICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZXhwIgot KwkgICAgICAkb3B0X2RyeV9ydW4gfHwgJFJNICRleHBvcnRfc3ltYm9scwotKwkgICAgICBsaWJv YmpzPSRvdXRwdXQKLSsJICAgICAgIyBBcHBlbmQgdGhlIGNvbW1hbmQgdG8gY3JlYXRlIHRoZSBl eHBvcnQgZmlsZS4KLSsJICAgICAgdGVzdCAteiAiJGNvbmNhdF9jbWRzIiB8fCBjb25jYXRfY21k cz0kY29uY2F0X2NtZHN+Ci0rCSAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJGNvbmNhdF9jbWRz JGV4cG9ydF9zeW1ib2xzX2NtZHNcIgotKwkgICAgICBpZiB0ZXN0IC1uICIkbGFzdF9yb2JqIjsg dGhlbgotKwkJZXZhbCBjb25jYXRfY21kcz1cIlwkY29uY2F0X2NtZHN+XCRSTSAkbGFzdF9yb2Jq XCIKLSsJICAgICAgZmkKLSsJICAgIGZpCi0rCi0rCSAgICB0ZXN0IC1uICIkc2F2ZV9saWJvYmpz IiAmJgotKwkgICAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nIGEgdGVtcG9yYXJ5IHJlbG9hZGFi bGUgb2JqZWN0IGZpbGU6ICRvdXRwdXQiCi0rCi0rCSAgICAjIExvb3AgdGhyb3VnaCB0aGUgY29t bWFuZHMgZ2VuZXJhdGVkIGFib3ZlIGFuZCBleGVjdXRlIHRoZW0uCi0rCSAgICBzYXZlX2lmcz0i JElGUyI7IElGUz0nficKLSsJICAgIGZvciBjbWQgaW4gJGNvbmNhdF9jbWRzOyBkbwotKwkgICAg ICBJRlM9IiRzYXZlX2lmcyIKLSsJICAgICAgJG9wdF9zaWxlbnQgfHwgewotKwkJICBmdW5jX3F1 b3RlX2Zvcl9leHBhbmQgIiRjbWQiCi0rCQkgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9m b3JfZXhwYW5kX3Jlc3VsdCIKLSsJICAgICAgfQotKwkgICAgICAkb3B0X2RyeV9ydW4gfHwgZXZh bCAiJGNtZCIgfHwgewotKwkJbHRfZXhpdD0kPwotKwotKwkJIyBSZXN0b3JlIHRoZSB1bmluc3Rh bGxlZCBsaWJyYXJ5IGFuZCBleGl0Ci0rCQlpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4K LSsJCSAgKCBjZCAiJG91dHB1dF9vYmpkaXIiICYmIFwKLSsJCSAgICAkUk0gIiR7cmVhbG5hbWV9 VCIgJiYgXAotKwkJICAgICRNViAiJHtyZWFsbmFtZX1VIiAiJHJlYWxuYW1lIiApCi0rCQlmaQot KwotKwkJZXhpdCAkbHRfZXhpdAotKwkgICAgICB9Ci0rCSAgICBkb25lCi0rCSAgICBJRlM9IiRz YXZlX2lmcyIKLSsKLSsJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCIgJiYg JHtza2lwcGVkX2V4cG9ydC1mYWxzZX07IHRoZW4KLSsJICAgICAgZnVuY19zaG93X2V2YWwgJyRF R1JFUCAtZSAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IiAiJGV4cG9ydF9zeW1ib2xzIiA+ICIke2V4 cG9ydF9zeW1ib2xzfVQiJwotKwkgICAgICBmdW5jX3Nob3dfZXZhbCAnJE1WICIke2V4cG9ydF9z eW1ib2xzfVQiICIkZXhwb3J0X3N5bWJvbHMiJwotKwkgICAgZmkKLSsJICBmaQotKwotKyAgICAg ICAgICBpZiAke3NraXBwZWRfZXhwb3J0LWZhbHNlfTsgdGhlbgotKwkgICAgaWYgdGVzdCAtbiAi JGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkaW5jbHVkZV9leHBzeW1zIjsgdGhlbgotKwkg ICAgICB0bXBfZXhwb3J0X3N5bWJvbHM9IiRleHBvcnRfc3ltYm9scyIKLSsJICAgICAgdGVzdCAt biAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiICYmIHRtcF9leHBvcnRfc3ltYm9scz0iJG9yaWdfZXhw b3J0X3N5bWJvbHMiCi0rCSAgICAgICRvcHRfZHJ5X3J1biB8fCBldmFsICckRUNITyAiWCRpbmNs dWRlX2V4cHN5bXMiIHwgJFhzZWQgfCAkU1AyTkwgPj4gIiR0bXBfZXhwb3J0X3N5bWJvbHMiJwot KwkgICAgZmkKLSsKLSsJICAgIGlmIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1ib2xzIjsgdGhl bgotKwkgICAgICAjIFRoZSBnaXZlbiBleHBvcnRzX3N5bWJvbHMgZmlsZSBoYXMgdG8gYmUgZmls dGVyZWQsIHNvIGZpbHRlciBpdC4KLSsJICAgICAgZnVuY192ZXJib3NlICJmaWx0ZXIgc3ltYm9s IGxpc3QgZm9yIFxgJGxpYm5hbWUubGEnIHRvIHRhZyBEQVRBIGV4cG9ydHMiCi0rCSAgICAgICMg RklYTUU6ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciBwb3RlbnRpYWxseSBjb250YWlu cyBsb3RzIG9mCi0rCSAgICAgICMgJ3MnIGNvbW1hbmRzIHdoaWNoIG5vdCBhbGwgc2VkcyBjYW4g aGFuZGxlLiBHTlUgc2VkIHNob3VsZCBiZSBmaW5lCi0rCSAgICAgICMgdGhvdWdoLiBBbHNvLCB0 aGUgZmlsdGVyIHNjYWxlcyBzdXBlcmxpbmVhcmx5IHdpdGggdGhlIG51bWJlciBvZgotKwkgICAg ICAjIGdsb2JhbCB2YXJpYWJsZXMuIGpvaW4oMSkgd291bGQgYmUgbmljZSBoZXJlLCBidXQgdW5m b3J0dW5hdGVseQotKwkgICAgICAjIGlzbid0IGEgYmxlc3NlZCB0b29sLgotKwkgICAgICAkb3B0 X2RyeV9ydW4gfHwgJFNFRCAtZSAnL1sgLF1EQVRBLyFkO3MsXCguKlwpXChbIFwsXS4qXCksc3xe XDEkfFwxXDJ8LCcgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5m aWx0ZXIKLSsJICAgICAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkZXhwb3J0X3N5bWJvbHMgJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIgotKwkgICAgICBleHBvcnRfc3ltYm9scz0kb3V0cHV0 X29iamRpci8kbGlibmFtZS5kZWYKLSsJICAgICAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWYgJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIDwgJG9yaWdfZXhwb3J0X3N5bWJvbHMgPiAkZXhw b3J0X3N5bWJvbHMKLSsJICAgIGZpCi0rCSAgZmkKLSsKLSsJICBsaWJvYmpzPSRvdXRwdXQKLSsJ ICAjIFJlc3RvcmUgdGhlIHZhbHVlIG9mIG91dHB1dC4KLSsJICBvdXRwdXQ9JHNhdmVfb3V0cHV0 Ci0rCi0rCSAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIiAmJiB0ZXN0IC1uICIkd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgICBldmFsIGxpYm9ianM9XCJcJGxpYm9ianMgJHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjXCIKLSsJICAgIHRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYm IGxpYm9ianM9Ci0rCSAgZmkKLSsJICAjIEV4cGFuZCB0aGUgbGlicmFyeSBsaW5raW5nIGNvbW1h bmRzIGFnYWluIHRvIHJlc2V0IHRoZQotKwkgICMgdmFsdWUgb2YgJGxpYm9ianMgZm9yIHBpZWNl d2lzZSBsaW5raW5nLgotKwotKwkgICMgRG8gZWFjaCBvZiB0aGUgYXJjaGl2ZSBjb21tYW5kcy4K LSsJICBpZiB0ZXN0ICIkbW9kdWxlIiA9IHllcyAmJiB0ZXN0IC1uICIkbW9kdWxlX2NtZHMiIDsg dGhlbgotKwkgICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkbW9k dWxlX2V4cHN5bV9jbWRzIjsgdGhlbgotKwkgICAgICBjbWRzPSRtb2R1bGVfZXhwc3ltX2NtZHMK LSsJICAgIGVsc2UKLSsJICAgICAgY21kcz0kbW9kdWxlX2NtZHMKLSsJICAgIGZpCi0rCSAgZWxz ZQotKwkgICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkYXJjaGl2 ZV9leHBzeW1fY21kcyI7IHRoZW4KLSsJICAgICAgY21kcz0kYXJjaGl2ZV9leHBzeW1fY21kcwot KwkgICAgZWxzZQotKwkgICAgICBjbWRzPSRhcmNoaXZlX2NtZHMKLSsJICAgIGZpCi0rCSAgZmkK LSsJZmkKLSsKLSsJaWYgdGVzdCAtbiAiJGRlbGZpbGVzIjsgdGhlbgotKwkgICMgQXBwZW5kIHRo ZSBjb21tYW5kIHRvIHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMgdG8gJGNtZHMuCi0rCSAgZXZhbCBj bWRzPVwiXCRjbWRzflwkUk0gJGRlbGZpbGVzXCIKLSsJZmkKLSsKLSsJIyBBZGQgYW55IG9iamVj dHMgZnJvbSBwcmVsb2FkZWQgY29udmVuaWVuY2UgbGlicmFyaWVzCi0rCWlmIHRlc3QgLW4gIiRk bHByZWZpbGVzIjsgdGhlbgotKwkgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1l fXgiCi0rCSAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCi0rCi0rCSAgZnVuY19leHRy YWN0X2FyY2hpdmVzICRnZW50b3AgJGRscHJlZmlsZXMKLSsJICBsaWJvYmpzPSIkbGlib2JqcyAk ZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKLSsJICB0ZXN0ICJYJGxpYm9ianMiID0gIlgg IiAmJiBsaWJvYmpzPQotKwlmaQotKwotKwlzYXZlX2lmcz0iJElGUyI7IElGUz0nficKLSsJZm9y IGNtZCBpbiAkY21kczsgZG8KLSsJICBJRlM9IiRzYXZlX2lmcyIKLSsJICBldmFsIGNtZD1cIiRj bWRcIgotKwkgICRvcHRfc2lsZW50IHx8IHsKLSsJICAgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAi JGNtZCIKLSsJICAgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3Vs dCIKLSsJICB9Ci0rCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgIiRjbWQiIHx8IHsKLSsJICAgIGx0 X2V4aXQ9JD8KLSsKLSsJICAgICMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQg ZXhpdAotKwkgICAgaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCi0rCSAgICAgICggY2Qg IiRvdXRwdXRfb2JqZGlyIiAmJiBcCi0rCSAgICAgICAgJFJNICIke3JlYWxuYW1lfVQiICYmIFwK LSsJCSRNViAiJHtyZWFsbmFtZX1VIiAiJHJlYWxuYW1lIiApCi0rCSAgICBmaQotKwotKwkgICAg ZXhpdCAkbHRfZXhpdAotKwkgIH0KLSsJZG9uZQotKwlJRlM9IiRzYXZlX2lmcyIKLSsKLSsJIyBS ZXN0b3JlIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IGFuZCBleGl0Ci0rCWlmIHRlc3QgIiRtb2Rl IiA9IHJlbGluazsgdGhlbgotKwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICcoY2QgJG91dHB1dF9v YmpkaXIgJiYgJFJNICR7cmVhbG5hbWV9VCAmJiAkTVYgJHJlYWxuYW1lICR7cmVhbG5hbWV9VCAm JiAkTVYgJHtyZWFsbmFtZX1VICRyZWFsbmFtZSknIHx8IGV4aXQgJD8KLSsKLSsJICBpZiB0ZXN0 IC1uICIkY29udmVuaWVuY2UiOyB0aGVuCi0rCSAgICBpZiB0ZXN0IC16ICIkd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgICAgIGZ1bmNfc2hvd19ldmFsICcke1JNfXIgIiRnZW50 b3AiJwotKwkgICAgZmkKLSsJICBmaQotKwotKwkgIGV4aXQgJEVYSVRfU1VDQ0VTUwotKwlmaQot KwotKwkjIENyZWF0ZSBsaW5rcyB0byB0aGUgcmVhbCBsaWJyYXJ5LgotKwlmb3IgbGlua25hbWUg aW4gJGxpbmtuYW1lczsgZG8KLSsJICBpZiB0ZXN0ICIkcmVhbG5hbWUiICE9ICIkbGlua25hbWUi OyB0aGVuCi0rCSAgICBmdW5jX3Nob3dfZXZhbCAnKGNkICIkb3V0cHV0X29iamRpciIgJiYgJFJN ICIkbGlua25hbWUiICYmICRMTl9TICIkcmVhbG5hbWUiICIkbGlua25hbWUiKScgJ2V4aXQgJD8n Ci0rCSAgZmkKLSsJZG9uZQotKwotKwkjIElmIC1tb2R1bGUgb3IgLWV4cG9ydC1keW5hbWljIHdh cyBzcGVjaWZpZWQsIHNldCB0aGUgZGxuYW1lLgotKwlpZiB0ZXN0ICIkbW9kdWxlIiA9IHllcyB8 fCB0ZXN0ICIkZXhwb3J0X2R5bmFtaWMiID0geWVzOyB0aGVuCi0rCSAgIyBPbiBhbGwga25vd24g b3BlcmF0aW5nIHN5c3RlbXMsIHRoZXNlIGFyZSBpZGVudGljYWwuCi0rCSAgZGxuYW1lPSIkc29u YW1lIgotKwlmaQotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgb2JqKQotKyAgICAgIGlm IHRlc3QgLW4gIiRkbGZpbGVzJGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0 aGVuCi0rCWZ1bmNfd2FybmluZyAiXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgot KyAgICAgIGZpCi0rCi0rICAgICAgY2FzZSAiICRkZXBsaWJzIiBpbgotKyAgICAgICpcIC1sKiB8 ICpcIC1MKikKLSsJZnVuY193YXJuaW5nICJcYC1sJyBhbmQgXGAtTCcgYXJlIGlnbm9yZWQgZm9y IG9iamVjdHMiIDs7Ci0rICAgICAgZXNhYwotKwotKyAgICAgIHRlc3QgLW4gIiRycGF0aCIgJiYg XAotKwlmdW5jX3dhcm5pbmcgIlxgLXJwYXRoJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgotKwot KyAgICAgIHRlc3QgLW4gIiR4cnBhdGgiICYmIFwKLSsJZnVuY193YXJuaW5nICJcYC1SJyBpcyBp Z25vcmVkIGZvciBvYmplY3RzIgotKwotKyAgICAgIHRlc3QgLW4gIiR2aW5mbyIgJiYgXAotKwlm dW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5mbycgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKLSsK LSsgICAgICB0ZXN0IC1uICIkcmVsZWFzZSIgJiYgXAotKwlmdW5jX3dhcm5pbmcgIlxgLXJlbGVh c2UnIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCi0rCi0rICAgICAgY2FzZSAkb3V0cHV0IGluCi0r ICAgICAgKi5sbykKLSsJdGVzdCAtbiAiJG9ianMkb2xkX2RlcGxpYnMiICYmIFwKLSsJICBmdW5j X2ZhdGFsX2Vycm9yICJjYW5ub3QgYnVpbGQgbGlicmFyeSBvYmplY3QgXGAkb3V0cHV0JyBmcm9t IG5vbi1saWJ0b29sIG9iamVjdHMiCi0rCi0rCWxpYm9iaj0kb3V0cHV0Ci0rCWZ1bmNfbG8ybyAi JGxpYm9iaiIKLSsJb2JqPSRmdW5jX2xvMm9fcmVzdWx0Ci0rCTs7Ci0rICAgICAgKikKLSsJbGli b2JqPQotKwlvYmo9IiRvdXRwdXQiCi0rCTs7Ci0rICAgICAgZXNhYwotKwotKyAgICAgICMgRGVs ZXRlIHRoZSBvbGQgb2JqZWN0cy4KLSsgICAgICAkb3B0X2RyeV9ydW4gfHwgJFJNICRvYmogJGxp Ym9iagotKwotKyAgICAgICMgT2JqZWN0cyBmcm9tIGNvbnZlbmllbmNlIGxpYnJhcmllcy4gIFRo aXMgYXNzdW1lcwotKyAgICAgICMgc2luZ2xlLXZlcnNpb24gY29udmVuaWVuY2UgbGlicmFyaWVz LiAgV2hlbmV2ZXIgd2UgY3JlYXRlCi0rICAgICAgIyBkaWZmZXJlbnQgb25lcyBmb3IgUElDL25v bi1QSUMsIHRoaXMgd2UnbGwgaGF2ZSB0byBkdXBsaWNhdGUKLSsgICAgICAjIHRoZSBleHRyYWN0 aW9uLgotKyAgICAgIHJlbG9hZF9jb252X29ianM9Ci0rICAgICAgZ2VudG9wPQotKyAgICAgICMg cmVsb2FkX2NtZHMgcnVucyAkTEQgZGlyZWN0bHksIHNvIGxldCB1cyBnZXQgcmlkIG9mCi0rICAg ICAgIyAtV2wgZnJvbSB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyBhbmQgaG9wZSB3ZSBjYW4gZ2V0 IGJ5IHdpdGgKLSsgICAgICAjIHR1cm5pbmcgY29tbWEgaW50byBzcGFjZS4uCi0rICAgICAgd2w9 Ci0rCi0rICAgICAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgotKwlpZiB0ZXN0IC1u ICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgZXZhbCB0bXBfd2hvbGVfYXJj aGl2ZV9mbGFncz1cIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCi0rCSAgcmVsb2FkX2NvbnZf b2Jqcz0kcmVsb2FkX29ianNcIGAkRUNITyAiWCR0bXBfd2hvbGVfYXJjaGl2ZV9mbGFncyIgfCAk WHNlZCAtZSAnc3wsfCB8ZydgCi0rCWVsc2UKLSsJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7 b2JqfXgiCi0rCSAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCi0rCi0rCSAgZnVuY19l eHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGNvbnZlbmllbmNlCi0rCSAgcmVsb2FkX2NvbnZfb2Jq cz0iJHJlbG9hZF9vYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgotKwlmaQotKyAg ICAgIGZpCi0rCi0rICAgICAgIyBDcmVhdGUgdGhlIG9sZC1zdHlsZSBvYmplY3QuCi0rICAgICAg cmVsb2FkX29ianM9IiRvYmpzJG9sZF9kZXBsaWJzICJgJEVDSE8gIlgkbGlib2JqcyIgfCAkU1Ay TkwgfCAkWHNlZCAtZSAnL1wuJyR7bGliZXh0fSQnL2QnIC1lICcvXC5saWIkL2QnIC1lICIkbG8y byIgfCAkTkwyU1BgIiAkcmVsb2FkX2NvbnZfb2JqcyIgIyMjIHRlc3RzdWl0ZTogc2tpcCBuZXN0 ZWQgcXVvdGluZyB0ZXN0Ci0rCi0rICAgICAgb3V0cHV0PSIkb2JqIgotKyAgICAgIGZ1bmNfZXhl Y3V0ZV9jbWRzICIkcmVsb2FkX2NtZHMiICdleGl0ICQ/JwotKwotKyAgICAgICMgRXhpdCBpZiB3 ZSBhcmVuJ3QgZG9pbmcgYSBsaWJyYXJ5IG9iamVjdCBmaWxlLgotKyAgICAgIGlmIHRlc3QgLXog IiRsaWJvYmoiOyB0aGVuCi0rCWlmIHRlc3QgLW4gIiRnZW50b3AiOyB0aGVuCi0rCSAgZnVuY19z aG93X2V2YWwgJyR7Uk19ciAiJGdlbnRvcCInCi0rCWZpCi0rCi0rCWV4aXQgJEVYSVRfU1VDQ0VT UwotKyAgICAgIGZpCi0rCi0rICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0g eWVzOyB0aGVuCi0rCWlmIHRlc3QgLW4gIiRnZW50b3AiOyB0aGVuCi0rCSAgZnVuY19zaG93X2V2 YWwgJyR7Uk19ciAiJGdlbnRvcCInCi0rCWZpCi0rCi0rCSMgQ3JlYXRlIGFuIGludmFsaWQgbGli dG9vbCBvYmplY3QgaWYgbm8gUElDLCBzbyB0aGF0IHdlIGRvbid0Ci0rCSMgYWNjaWRlbnRhbGx5 IGxpbmsgaXQgaW50byBhIHByb2dyYW0uCi0rCSMgJHNob3cgImVjaG8gdGltZXN0YW1wID4gJGxp Ym9iaiIKLSsJIyAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiZWNobyB0aW1lc3RhbXAgPiAkbGlib2Jq IiB8fCBleGl0ICQ/Ci0rCWV4aXQgJEVYSVRfU1VDQ0VTUwotKyAgICAgIGZpCi0rCi0rICAgICAg aWYgdGVzdCAtbiAiJHBpY19mbGFnIiB8fCB0ZXN0ICIkcGljX21vZGUiICE9IGRlZmF1bHQ7IHRo ZW4KLSsJIyBPbmx5IGRvIGNvbW1hbmRzIGlmIHdlIHJlYWxseSBoYXZlIGRpZmZlcmVudCBQSUMg b2JqZWN0cy4KLSsJcmVsb2FkX29ianM9IiRsaWJvYmpzICRyZWxvYWRfY29udl9vYmpzIgotKwlv dXRwdXQ9IiRsaWJvYmoiCi0rCWZ1bmNfZXhlY3V0ZV9jbWRzICIkcmVsb2FkX2NtZHMiICdleGl0 ICQ/JwotKyAgICAgIGZpCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KLSsJ ZnVuY19zaG93X2V2YWwgJyR7Uk19ciAiJGdlbnRvcCInCi0rICAgICAgZmkKLSsKLSsgICAgICBl eGl0ICRFWElUX1NVQ0NFU1MKLSsgICAgICA7OwotKwotKyAgICBwcm9nKQotKyAgICAgIGNhc2Ug JGhvc3QgaW4KLSsJKmN5Z3dpbiopIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJG91dHB1dCIK LSsJICAgICAgICAgIG91dHB1dD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0LmV4ZTs7Ci0rICAgICAg ZXNhYwotKyAgICAgIHRlc3QgLW4gIiR2aW5mbyIgJiYgXAotKwlmdW5jX3dhcm5pbmcgIlxgLXZl cnNpb24taW5mbycgaXMgaWdub3JlZCBmb3IgcHJvZ3JhbXMiCi0rCi0rICAgICAgdGVzdCAtbiAi JHJlbGVhc2UiICYmIFwKLSsJZnVuY193YXJuaW5nICJcYC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZv ciBwcm9ncmFtcyIKLSsKLSsgICAgICB0ZXN0ICIkcHJlbG9hZCIgPSB5ZXMgXAotKyAgICAgICAg JiYgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiA9IHVua25vd24gXAotKwkmJiB0ZXN0ICIkZGxvcGVu X3NlbGYiID0gdW5rbm93biBcCi0rCSYmIHRlc3QgIiRkbG9wZW5fc2VsZl9zdGF0aWMiID0gdW5r bm93biAmJiBcCi0rCSAgZnVuY193YXJuaW5nICJcYExUX0lOSVQoW2Rsb3Blbl0pJyBub3QgdXNl ZC4gQXNzdW1pbmcgbm8gZGxvcGVuIHN1cHBvcnQuIgotKwotKyAgICAgIGNhc2UgJGhvc3QgaW4K LSsgICAgICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCi0rCSMgT24gUmhhcHNv ZHkgcmVwbGFjZSB0aGUgQyBsaWJyYXJ5IGlzIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCi0rCWNvbXBp bGVfZGVwbGlicz1gJEVDSE8gIlggJGNvbXBpbGVfZGVwbGlicyIgfCAkWHNlZCAtZSAncy8gLWxj IC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAotKwlmaW5hbGl6ZV9kZXBsaWJzPWAkRUNITyAiWCAk ZmluYWxpemVfZGVwbGlicyIgfCAkWHNlZCAtZSAncy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3b3Jr IC8nYAotKwk7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICBjYXNlICRob3N0IGluCi0rICAgICAg Ki0qLWRhcndpbiopCi0rCSMgRG9uJ3QgYWxsb3cgbGF6eSBsaW5raW5nLCBpdCBicmVha3MgQysr IGdsb2JhbCBjb25zdHJ1Y3RvcnMKLSsJIyBCdXQgaXMgc3VwcG9zZWRseSBmaXhlZCBvbiAxMC40 IG9yIGxhdGVyICh5YXkhKS4KLSsJaWYgdGVzdCAiJHRhZ25hbWUiID0gQ1hYIDsgdGhlbgotKwkg IGNhc2UgJHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQtMTAuMH0gaW4KLSsJICAgIDEwLlswMTIz XSkKLSsJICAgICAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kICR7d2x9LWJpbmRf YXRfbG9hZCIKLSsJICAgICAgZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJHt3 bH0tYmluZF9hdF9sb2FkIgotKwkgICAgOzsKLSsJICBlc2FjCi0rCWZpCi0rCSMgVGltZSB0byBj aGFuZ2UgYWxsIG91ciAiZm9vLmx0ZnJhbWV3b3JrIiBzdHVmZiBiYWNrIHRvICItZnJhbWV3b3Jr IGZvbyIKLSsJY29tcGlsZV9kZXBsaWJzPWAkRUNITyAiWCAkY29tcGlsZV9kZXBsaWJzIiB8ICRY c2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAotKwlm aW5hbGl6ZV9kZXBsaWJzPWAkRUNITyAiWCAkZmluYWxpemVfZGVwbGlicyIgfCAkWHNlZCAtZSAn cyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKLSsJOzsKLSsgICAg ICBlc2FjCi0rCi0rCi0rICAgICAgIyBtb3ZlIGxpYnJhcnkgc2VhcmNoIHBhdGhzIHRoYXQgY29p bmNpZGUgd2l0aCBwYXRocyB0byBub3QgeWV0Ci0rICAgICAgIyBpbnN0YWxsZWQgbGlicmFyaWVz IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpYnJhcnkgc2VhcmNoIGxpc3QKLSsgICAgICBuZXdf bGlicz0KLSsgICAgICBmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRoOyBkbwotKwljYXNlICIgJG5l d19saWJzICIgaW4KLSsJKiIgLUwkcGF0aC8kb2JqZGlyICIqKSA7OwotKwkqKQotKwkgIGNhc2Ug IiAkY29tcGlsZV9kZXBsaWJzICIgaW4KLSsJICAqIiAtTCRwYXRoLyRvYmpkaXIgIiopCi0rCSAg ICBuZXdfbGlicz0iJG5ld19saWJzIC1MJHBhdGgvJG9iamRpciIgOzsKLSsJICBlc2FjCi0rCSAg OzsKLSsJZXNhYwotKyAgICAgIGRvbmUKLSsgICAgICBmb3IgZGVwbGliIGluICRjb21waWxlX2Rl cGxpYnM7IGRvCi0rCWNhc2UgJGRlcGxpYiBpbgotKwktTCopCi0rCSAgY2FzZSAiICRuZXdfbGli cyAiIGluCi0rCSAgKiIgJGRlcGxpYiAiKikgOzsKLSsJICAqKSBuZXdfbGlicz0iJG5ld19saWJz ICRkZXBsaWIiIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCSopIG5ld19saWJzPSIkbmV3X2xpYnMg JGRlcGxpYiIgOzsKLSsJZXNhYwotKyAgICAgIGRvbmUKLSsgICAgICBjb21waWxlX2RlcGxpYnM9 IiRuZXdfbGlicyIKLSsKLSsKLSsgICAgICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1h bmQgJGNvbXBpbGVfZGVwbGlicyIKLSsgICAgICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVf Y29tbWFuZCAkZmluYWxpemVfZGVwbGlicyIKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkcnBhdGgk eHJwYXRoIjsgdGhlbgotKwkjIElmIHRoZSB1c2VyIHNwZWNpZmllZCBhbnkgcnBhdGggZmxhZ3Ms IHRoZW4gYWRkIHRoZW0uCi0rCWZvciBsaWJkaXIgaW4gJHJwYXRoICR4cnBhdGg7IGRvCi0rCSAg IyBUaGlzIGlzIHRoZSBtYWdpYyB0byB1c2UgLXJwYXRoLgotKwkgIGNhc2UgIiRmaW5hbGl6ZV9y cGF0aCAiIGluCi0rCSAgKiIgJGxpYmRpciAiKikgOzsKLSsJICAqKSBmaW5hbGl6ZV9ycGF0aD0i JGZpbmFsaXplX3JwYXRoICRsaWJkaXIiIDs7Ci0rCSAgZXNhYwotKwlkb25lCi0rICAgICAgZmkK LSsKLSsgICAgICAjIE5vdyBoYXJkY29kZSB0aGUgbGlicmFyeSBwYXRocwotKyAgICAgIHJwYXRo PQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcnM9Ci0rICAgICAgZm9yIGxpYmRpciBpbiAkY29tcGls ZV9ycGF0aCAkZmluYWxpemVfcnBhdGg7IGRvCi0rCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjIjsgdGhlbgotKwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yIjsgdGhlbgotKwkgICAgaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVu Ci0rCSAgICAgIGhhcmRjb2RlX2xpYmRpcnM9IiRsaWJkaXIiCi0rCSAgICBlbHNlCi0rCSAgICAg ICMgSnVzdCBhY2N1bXVsYXRlIHRoZSB1bmlxdWUgbGliZGlycy4KLSsJICAgICAgY2FzZSAkaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvciRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3IgaW4KLSsJICAgICAgKiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIk aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIqKQotKwkJOzsKLSsJICAgICAgKikKLSsJCWhhcmRj b2RlX2xpYmRpcnM9IiRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Ik bGliZGlyIgotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgZmkKLSsJICBlbHNlCi0rCSAgICBl dmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCi0rCSAgICBycGF0aD0iJHJw YXRoICRmbGFnIgotKwkgIGZpCi0rCWVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgot KwkgIGNhc2UgIiRwZXJtX3JwYXRoICIgaW4KLSsJICAqIiAkbGliZGlyICIqKSA7OwotKwkgICop IHBlcm1fcnBhdGg9IiRwZXJtX3JwYXRoICRsaWJkaXIiIDs7Ci0rCSAgZXNhYwotKwlmaQotKwlj YXNlICRob3N0IGluCi0rCSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICot Ki1vczIqIHwgKi1jZWdjYyopCi0rCSAgdGVzdGJpbmRpcj1gJHtFQ0hPfSAiJGxpYmRpciIgfCAk e1NFRH0gLWUgJ3MqL2xpYiQqL2JpbionYAotKwkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgot KwkgICoiOiRsaWJkaXI6IiopIDs7Ci0rCSAgOjopIGRsbHNlYXJjaHBhdGg9JGxpYmRpcjs7Ci0r CSAgKikgZGxsc2VhcmNocGF0aD0iJGRsbHNlYXJjaHBhdGg6JGxpYmRpciI7OwotKwkgIGVzYWMK LSsJICBjYXNlIDokZGxsc2VhcmNocGF0aDogaW4KLSsJICAqIjokdGVzdGJpbmRpcjoiKikgOzsK LSsJICA6OikgZGxsc2VhcmNocGF0aD0kdGVzdGJpbmRpcjs7Ci0rCSAgKikgZGxsc2VhcmNocGF0 aD0iJGRsbHNlYXJjaHBhdGg6JHRlc3RiaW5kaXIiOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNh YwotKyAgICAgIGRvbmUKLSsgICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJz IGludG8gdGhlIHJwYXRoLgotKyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yIiAmJgotKwkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCWxpYmRp cj0iJGhhcmRjb2RlX2xpYmRpcnMiCi0rCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNcIgotKyAgICAgIGZpCi0rICAgICAgY29tcGlsZV9ycGF0aD0iJHJwYXRoIgotKwot KyAgICAgIHJwYXRoPQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcnM9Ci0rICAgICAgZm9yIGxpYmRp ciBpbiAkZmluYWxpemVfcnBhdGg7IGRvCi0rCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjIjsgdGhlbgotKwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yIjsgdGhlbgotKwkgICAgaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0r CSAgICAgIGhhcmRjb2RlX2xpYmRpcnM9IiRsaWJkaXIiCi0rCSAgICBlbHNlCi0rCSAgICAgICMg SnVzdCBhY2N1bXVsYXRlIHRoZSB1bmlxdWUgbGliZGlycy4KLSsJICAgICAgY2FzZSAkaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3IgaW4KLSsJICAgICAgKiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvciIqKQotKwkJOzsKLSsJICAgICAgKikKLSsJCWhhcmRjb2Rl X2xpYmRpcnM9IiRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGli ZGlyIgotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgZmkKLSsJICBlbHNlCi0rCSAgICBldmFs IGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCi0rCSAgICBycGF0aD0iJHJwYXRo ICRmbGFnIgotKwkgIGZpCi0rCWVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgotKwkg IGNhc2UgIiRmaW5hbGl6ZV9wZXJtX3JwYXRoICIgaW4KLSsJICAqIiAkbGliZGlyICIqKSA7Owot KwkgICopIGZpbmFsaXplX3Blcm1fcnBhdGg9IiRmaW5hbGl6ZV9wZXJtX3JwYXRoICRsaWJkaXIi IDs7Ci0rCSAgZXNhYwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICAjIFN1YnN0aXR1dGUgdGhl IGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhlIHJwYXRoLgotKyAgICAgIGlmIHRlc3QgLW4gIiRo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgotKwkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRp cnMiOyB0aGVuCi0rCWxpYmRpcj0iJGhhcmRjb2RlX2xpYmRpcnMiCi0rCWV2YWwgcnBhdGg9XCIg JGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgotKyAgICAgIGZpCi0rICAgICAgZmluYWxpemVf cnBhdGg9IiRycGF0aCIKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkbGlib2JqcyIgJiYgdGVzdCAi JGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgotKwkjIFRyYW5zZm9ybSBhbGwgdGhlIGxpYnJh cnkgb2JqZWN0cyBpbnRvIHN0YW5kYXJkIG9iamVjdHMuCi0rCWNvbXBpbGVfY29tbWFuZD1gJEVD SE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAkTkwy U1BgCi0rCWZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNQ Mk5MIHwgJFhzZWQgLWUgIiRsbzJvIiB8ICROTDJTUGAKLSsgICAgICBmaQotKwotKyAgICAgIGZ1 bmNfZ2VuZXJhdGVfZGxzeW1zICIkb3V0cHV0bmFtZSIgIkBQUk9HUkFNQCIgIm5vIgotKwotKyAg ICAgICMgdGVtcGxhdGUgcHJlbGlua2luZyBzdGVwCi0rICAgICAgaWYgdGVzdCAtbiAiJHByZWxp bmtfY21kcyI7IHRoZW4KLSsJZnVuY19leGVjdXRlX2NtZHMgIiRwcmVsaW5rX2NtZHMiICdleGl0 ICQ/JwotKyAgICAgIGZpCi0rCi0rICAgICAgd3JhcHBlcnNfcmVxdWlyZWQ9eWVzCi0rICAgICAg Y2FzZSAkaG9zdCBpbgotKyAgICAgICpjeWd3aW4qIHwgKm1pbmd3KiApCi0rICAgICAgICBpZiB0 ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXM7IHRoZW4KLSsgICAgICAgICAgd3JhcHBl cnNfcmVxdWlyZWQ9bm8KLSsgICAgICAgIGZpCi0rICAgICAgICA7OwotKyAgICAgICpjZWdjYykK LSsgICAgICAgICMgRGlzYWJsZSB3cmFwcGVycyBmb3IgY2VnY2MsIHdlIGFyZSBjcm9zcyBjb21w aWxpbmcgYW55d2F5LgotKyAgICAgICAgd3JhcHBlcnNfcmVxdWlyZWQ9bm8KLSsgICAgICAgIDs7 Ci0rICAgICAgKikKLSsgICAgICAgIGlmIHRlc3QgIiRuZWVkX3JlbGluayIgPSBubyB8fCB0ZXN0 ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXM7IHRoZW4KLSsgICAgICAgICAgd3JhcHBlcnNf cmVxdWlyZWQ9bm8KLSsgICAgICAgIGZpCi0rICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAg ICBpZiB0ZXN0ICIkd3JhcHBlcnNfcmVxdWlyZWQiID0gbm87IHRoZW4KLSsJIyBSZXBsYWNlIHRo ZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgotKwljb21waWxlX2NvbW1hbmQ9YCRFQ0hPICJY JGNvbXBpbGVfY29tbWFuZCIgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXQiJyVnJ2AK LSsJbGlua19jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCi0rCi0rCSMg V2UgaGF2ZSBubyB1bmluc3RhbGxlZCBsaWJyYXJ5IGRlcGVuZGVuY2llcywgc28gZmluYWxpemUg cmlnaHQgbm93LgotKwlleGl0X3N0YXR1cz0wCi0rCWZ1bmNfc2hvd19ldmFsICIkbGlua19jb21t YW5kIiAnZXhpdF9zdGF0dXM9JD8nCi0rCi0rCSMgRGVsZXRlIHRoZSBnZW5lcmF0ZWQgZmlsZXMu Ci0rCWlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSI7 IHRoZW4KLSsJICBmdW5jX3Nob3dfZXZhbCAnJFJNICIkb3V0cHV0X29iamRpci8ke291dHB1dG5h bWV9Uy4ke29iamV4dH0iJwotKwlmaQotKwotKwlleGl0ICRleGl0X3N0YXR1cwotKyAgICAgIGZp Ci0rCi0rICAgICAgaWYgdGVzdCAtbiAiJGNvbXBpbGVfc2hsaWJwYXRoJGZpbmFsaXplX3NobGli cGF0aCI7IHRoZW4KLSsJY29tcGlsZV9jb21tYW5kPSIkc2hsaWJwYXRoX3Zhcj1cIiRjb21waWxl X3NobGlicGF0aCRmaW5hbGl6ZV9zaGxpYnBhdGhcJCRzaGxpYnBhdGhfdmFyXCIgJGNvbXBpbGVf Y29tbWFuZCIKLSsgICAgICBmaQotKyAgICAgIGlmIHRlc3QgLW4gIiRmaW5hbGl6ZV9zaGxpYnBh dGgiOyB0aGVuCi0rCWZpbmFsaXplX2NvbW1hbmQ9IiRzaGxpYnBhdGhfdmFyPVwiJGZpbmFsaXpl X3NobGlicGF0aFwkJHNobGlicGF0aF92YXJcIiAkZmluYWxpemVfY29tbWFuZCIKLSsgICAgICBm aQotKwotKyAgICAgIGNvbXBpbGVfdmFyPQotKyAgICAgIGZpbmFsaXplX3Zhcj0KLSsgICAgICBp ZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCi0rCWlmIHRlc3QgLW4gIiRwZXJtX3JwYXRo IjsgdGhlbgotKwkgICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCi0rCSAgcnBhdGg9 Ci0rCSAgZm9yIGRpciBpbiAkcGVybV9ycGF0aDsgZG8KLSsJICAgIHJwYXRoPSIkcnBhdGgkZGly OiIKLSsJICBkb25lCi0rCSAgY29tcGlsZV92YXI9IiRydW5wYXRoX3Zhcj1cIiRycGF0aFwkJHJ1 bnBhdGhfdmFyXCIgIgotKwlmaQotKwlpZiB0ZXN0IC1uICIkZmluYWxpemVfcGVybV9ycGF0aCI7 IHRoZW4KLSsJICAjIFdlIHNob3VsZCBzZXQgdGhlIHJ1bnBhdGhfdmFyLgotKwkgIHJwYXRoPQot KwkgIGZvciBkaXIgaW4gJGZpbmFsaXplX3Blcm1fcnBhdGg7IGRvCi0rCSAgICBycGF0aD0iJHJw YXRoJGRpcjoiCi0rCSAgZG9uZQotKwkgIGZpbmFsaXplX3Zhcj0iJHJ1bnBhdGhfdmFyPVwiJHJw YXRoXCQkcnVucGF0aF92YXJcIiAiCi0rCWZpCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0 ICIkbm9faW5zdGFsbCIgPSB5ZXM7IHRoZW4KLSsJIyBXZSBkb24ndCBuZWVkIHRvIGNyZWF0ZSBh IHdyYXBwZXIgc2NyaXB0LgotKwlsaW5rX2NvbW1hbmQ9IiRjb21waWxlX3ZhciRjb21waWxlX2Nv bW1hbmQkY29tcGlsZV9ycGF0aCIKLSsJIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZp Y2F0aW9uLgotKwlsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJGxpbmtfY29tbWFuZCIgfCAkWHNlZCAt ZSAncyVAT1VUUFVUQCUnIiRvdXRwdXQiJyVnJ2AKLSsJIyBEZWxldGUgdGhlIG9sZCBvdXRwdXQg ZmlsZS4KLSsJJG9wdF9kcnlfcnVuIHx8ICRSTSAkb3V0cHV0Ci0rCSMgTGluayB0aGUgZXhlY3V0 YWJsZSBhbmQgZXhpdAotKwlmdW5jX3Nob3dfZXZhbCAiJGxpbmtfY29tbWFuZCIgJ2V4aXQgJD8n Ci0rCWV4aXQgJEVYSVRfU1VDQ0VTUwotKyAgICAgIGZpCi0rCi0rICAgICAgaWYgdGVzdCAiJGhh cmRjb2RlX2FjdGlvbiIgPSByZWxpbms7IHRoZW4KLSsJIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBu b3Qgc3VwcG9ydGVkCi0rCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFu ZCRjb21waWxlX3JwYXRoIgotKwlyZWxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRmaW5hbGl6 ZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgotKwotKwlmdW5jX3dhcm5pbmcgInRoaXMgcGxhdGZv cm0gZG9lcyBub3QgbGlrZSB1bmluc3RhbGxlZCBzaGFyZWQgbGlicmFyaWVzIgotKwlmdW5jX3dh cm5pbmcgIlxgJG91dHB1dCcgd2lsbCBiZSByZWxpbmtlZCBkdXJpbmcgaW5zdGFsbGF0aW9uIgot KyAgICAgIGVsc2UKLSsJaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgIT0gbm87IHRoZW4KLSsJICBs aW5rX2NvbW1hbmQ9IiRmaW5hbGl6ZV92YXIkY29tcGlsZV9jb21tYW5kJGZpbmFsaXplX3JwYXRo IgotKwkgIGlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzOyB0aGVuCi0rCSAgICByZWxpbmtf Y29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBh dGgiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlXCRwcm9nZGlyL1wkZmlsZSVnJ2AKLSsJICBlbHNl Ci0rCSAgICAjIGZhc3RfaW5zdGFsbCBpcyBzZXQgdG8gbmVlZGxlc3MKLSsJICAgIHJlbGlua19j b21tYW5kPQotKwkgIGZpCi0rCWVsc2UKLSsJICBsaW5rX2NvbW1hbmQ9IiRjb21waWxlX3ZhciRj b21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIKLSsJICByZWxpbmtfY29tbWFuZD0iJGZpbmFs aXplX3ZhciRmaW5hbGl6ZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgotKwlmaQotKyAgICAgIGZp Ci0rCi0rICAgICAgIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgotKyAg ICAgIGxpbmtfY29tbWFuZD1gJEVDSE8gIlgkbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICdzJUBP VVRQVVRAJSciJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUiJyVnJ2AKLSsKLSsgICAgICAjIERl bGV0ZSB0aGUgb2xkIG91dHB1dCBmaWxlcy4KLSsgICAgICAkb3B0X2RyeV9ydW4gfHwgJFJNICRv dXRwdXQgJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUgJG91dHB1dF9vYmpkaXIvbHQtJG91dHB1 dG5hbWUKLSsKLSsgICAgICBmdW5jX3Nob3dfZXZhbCAiJGxpbmtfY29tbWFuZCIgJ2V4aXQgJD8n Ci0rCi0rICAgICAgIyBOb3cgY3JlYXRlIHRoZSB3cmFwcGVyIHNjcmlwdC4KLSsgICAgICBmdW5j X3ZlcmJvc2UgImNyZWF0aW5nICRvdXRwdXQiCi0rCi0rICAgICAgIyBRdW90ZSB0aGUgcmVsaW5r IGNvbW1hbmQgZm9yIHNoaXBwaW5nLgotKyAgICAgIGlmIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFu ZCI7IHRoZW4KLSsJIyBQcmVzZXJ2ZSBhbnkgdmFyaWFibGVzIHRoYXQgbWF5IGFmZmVjdCBjb21w aWxlciBiZWhhdmlvcgotKwlmb3IgdmFyIGluICR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluazsg ZG8KLSsJICBpZiBldmFsIHRlc3QgLXogXCJcJHskdmFyK3NldH1cIjsgdGhlbgotKwkgICAgcmVs aW5rX2NvbW1hbmQ9InsgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiIHx8ICRsdF91bnNldCAkdmFy IHx8IHsgJHZhcj07IGV4cG9ydCAkdmFyOyB9OyB9OyAkcmVsaW5rX2NvbW1hbmQiCi0rCSAgZWxp ZiBldmFsIHZhcl92YWx1ZT1cJCR2YXI7IHRlc3QgLXogIiR2YXJfdmFsdWUiOyB0aGVuCi0rCSAg ICByZWxpbmtfY29tbWFuZD0iJHZhcj07IGV4cG9ydCAkdmFyOyAkcmVsaW5rX2NvbW1hbmQiCi0r CSAgZWxzZQotKwkgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJHZhcl92YWx1ZSIKLSsJICAgIHJl bGlua19jb21tYW5kPSIkdmFyPSRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdDsgZXhwb3J0ICR2 YXI7ICRyZWxpbmtfY29tbWFuZCIKLSsJICBmaQotKwlkb25lCi0rCXJlbGlua19jb21tYW5kPSIo Y2QgYHB3ZGA7ICRyZWxpbmtfY29tbWFuZCkiCi0rCXJlbGlua19jb21tYW5kPWAkRUNITyAiWCRy ZWxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCi0rICAgICAgZmkK LSsKLSsgICAgICAjIFF1b3RlICRFQ0hPIGZvciBzaGlwcGluZy4KLSsgICAgICBpZiB0ZXN0ICJY JEVDSE8iID0gIlgkU0hFTEwgJHByb2dwYXRoIC0tZmFsbGJhY2stZWNobyI7IHRoZW4KLSsJY2Fz ZSAkcHJvZ3BhdGggaW4KLSsJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBxZWNobz0iJFNIRUxM ICRwcm9ncGF0aCAtLWZhbGxiYWNrLWVjaG8iOzsKLSsJKikgcWVjaG89IiRTSEVMTCBgcHdkYC8k cHJvZ3BhdGggLS1mYWxsYmFjay1lY2hvIjs7Ci0rCWVzYWMKLSsJcWVjaG89YCRFQ0hPICJYJHFl Y2hvIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKLSsgICAgICBlbHNlCi0rCXFlY2hv PWAkRUNITyAiWCRFQ0hPIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKLSsgICAgICBm aQotKwotKyAgICAgICMgT25seSBhY3R1YWxseSBkbyB0aGluZ3MgaWYgbm90IGluIGRyeSBydW4g bW9kZS4KLSsgICAgICAkb3B0X2RyeV9ydW4gfHwgewotKwkjIHdpbjMyIHdpbGwgdGhpbmsgdGhl IHNjcmlwdCBpcyBhIGJpbmFyeSBpZiBpdCBoYXMKLSsJIyBhIC5leGUgc3VmZml4LCBzbyB3ZSBz dHJpcCBpdCBvZmYgaGVyZS4KLSsJY2FzZSAkb3V0cHV0IGluCi0rCSAgKi5leGUpIGZ1bmNfc3Ry aXBuYW1lICcnICcuZXhlJyAiJG91dHB1dCIKLSsJICAgICAgICAgb3V0cHV0PSRmdW5jX3N0cmlw bmFtZV9yZXN1bHQgOzsKLSsJZXNhYwotKwkjIHRlc3QgZm9yIGN5Z3dpbiBiZWNhdXNlIG12IGZh aWxzIHcvbyAuZXhlIGV4dGVuc2lvbnMKLSsJY2FzZSAkaG9zdCBpbgotKwkgICpjeWd3aW4qKQot KwkgICAgZXhlZXh0PS5leGUKLSsJICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJG91dHB1 dG5hbWUiCi0rCSAgICBvdXRwdXRuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQgOzsKLSsJICAq KSBleGVleHQ9IDs7Ci0rCWVzYWMKLSsJY2FzZSAkaG9zdCBpbgotKwkgICpjeWd3aW4qIHwgKm1p bmd3KiApCi0rCSAgICBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICIkb3V0cHV0IiAiIiAiLiIK LSsJICAgIG91dHB1dF9uYW1lPSRmdW5jX2Jhc2VuYW1lX3Jlc3VsdAotKwkgICAgb3V0cHV0X3Bh dGg9JGZ1bmNfZGlybmFtZV9yZXN1bHQKLSsJICAgIGN3cmFwcGVyc291cmNlPSIkb3V0cHV0X3Bh dGgvJG9iamRpci9sdC0kb3V0cHV0X25hbWUuYyIKLSsJICAgIGN3cmFwcGVyPSIkb3V0cHV0X3Bh dGgvJG91dHB1dF9uYW1lLmV4ZSIKLSsJICAgICRSTSAkY3dyYXBwZXJzb3VyY2UgJGN3cmFwcGVy Ci0rCSAgICB0cmFwICIkUk0gJGN3cmFwcGVyc291cmNlICRjd3JhcHBlcjsgZXhpdCAkRVhJVF9G QUlMVVJFIiAxIDIgMTUKLSsKLSsJICAgIGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMgPiAkY3dy YXBwZXJzb3VyY2UKLSsKLSsJICAgICMgVGhlIHdyYXBwZXIgZXhlY3V0YWJsZSBpcyBidWlsdCB1 c2luZyB0aGUgJGhvc3QgY29tcGlsZXIsCi0rCSAgICAjIGJlY2F1c2UgaXQgY29udGFpbnMgJGhv c3QgcGF0aHMgYW5kIGZpbGVzLiBJZiBjcm9zcy0KLSsJICAgICMgY29tcGlsaW5nLCBpdCwgbGlr ZSB0aGUgdGFyZ2V0IGV4ZWN1dGFibGUsIG11c3QgYmUKLSsJICAgICMgZXhlY3V0ZWQgb24gdGhl ICRob3N0IG9yIHVuZGVyIGFuIGVtdWxhdGlvbiBlbnZpcm9ubWVudC4KLSsJICAgICRvcHRfZHJ5 X3J1biB8fCB7Ci0rCSAgICAgICRMVENDICRMVENGTEFHUyAtbyAkY3dyYXBwZXIgJGN3cmFwcGVy c291cmNlCi0rCSAgICAgICRTVFJJUCAkY3dyYXBwZXIKLSsJICAgIH0KLSsKLSsJICAgICMgTm93 LCBjcmVhdGUgdGhlIHdyYXBwZXIgc2NyaXB0IGZvciBmdW5jX3NvdXJjZSB1c2U6Ci0rCSAgICBm dW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICRjd3JhcHBlcgotKwkgICAgJFJNICRmdW5jX2x0d3Jh cHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAotKwkgICAgdHJhcCAiJFJNICRmdW5jX2x0d3JhcHBlcl9z Y3JpcHRuYW1lX3Jlc3VsdDsgZXhpdCAkRVhJVF9GQUlMVVJFIiAxIDIgMTUKLSsJICAgICRvcHRf ZHJ5X3J1biB8fCB7Ci0rCSAgICAgICMgbm90ZTogdGhpcyBzY3JpcHQgd2lsbCBub3QgYmUgZXhl Y3V0ZWQsIHNvIGRvIG5vdCBjaG1vZC4KLSsJICAgICAgaWYgdGVzdCAieCRidWlsZCIgPSAieCRo b3N0IiA7IHRoZW4KLSsJCSRjd3JhcHBlciAtLWx0LWR1bXAtc2NyaXB0ID4gJGZ1bmNfbHR3cmFw cGVyX3NjcmlwdG5hbWVfcmVzdWx0Ci0rCSAgICAgIGVsc2UKLSsJCWZ1bmNfZW1pdF93cmFwcGVy IG5vID4gJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0Ci0rCSAgICAgIGZpCi0rCSAg ICB9Ci0rCSAgOzsKLSsJICAqICkKLSsJICAgICRSTSAkb3V0cHV0Ci0rCSAgICB0cmFwICIkUk0g JG91dHB1dDsgZXhpdCAkRVhJVF9GQUlMVVJFIiAxIDIgMTUKLSsKLSsJICAgIGZ1bmNfZW1pdF93 cmFwcGVyIG5vID4gJG91dHB1dAotKwkgICAgY2htb2QgK3ggJG91dHB1dAotKwkgIDs7Ci0rCWVz YWMKLSsgICAgICB9Ci0rICAgICAgZXhpdCAkRVhJVF9TVUNDRVNTCi0rICAgICAgOzsKLSsgICAg ZXNhYwotKwotKyAgICAjIFNlZSBpZiB3ZSBuZWVkIHRvIGJ1aWxkIGFuIG9sZC1mYXNoaW9uZWQg YXJjaGl2ZS4KLSsgICAgZm9yIG9sZGxpYiBpbiAkb2xkbGliczsgZG8KLSsKLSsgICAgICBpZiB0 ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IGNvbnZlbmllbmNlOyB0aGVuCi0rCW9sZG9ianM9 IiRsaWJvYmpzX3NhdmUgJHN5bWZpbGVvYmoiCi0rCWFkZGxpYnM9IiRjb252ZW5pZW5jZSIKLSsJ YnVpbGRfbGlidG9vbF9saWJzPW5vCi0rICAgICAgZWxzZQotKwlpZiB0ZXN0ICIkYnVpbGRfbGli dG9vbF9saWJzIiA9IG1vZHVsZTsgdGhlbgotKwkgIG9sZG9ianM9IiRsaWJvYmpzX3NhdmUiCi0r CSAgYnVpbGRfbGlidG9vbF9saWJzPW5vCi0rCWVsc2UKLSsJICBvbGRvYmpzPSIkb2xkX2RlcGxp YnMgJG5vbl9waWNfb2JqZWN0cyIKLSsJICBpZiB0ZXN0ICIkcHJlbG9hZCIgPSB5ZXMgJiYgdGVz dCAtZiAiJHN5bWZpbGVvYmoiOyB0aGVuCi0rCSAgICBvbGRvYmpzPSIkb2xkb2JqcyAkc3ltZmls ZW9iaiIKLSsJICBmaQotKwlmaQotKwlhZGRsaWJzPSIkb2xkX2NvbnZlbmllbmNlIgotKyAgICAg IGZpCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJGFkZGxpYnMiOyB0aGVuCi0rCWdlbnRvcD0iJG91 dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCi0rCWdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2Vu dG9wIgotKwotKwlmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkYWRkbGlicwotKwlvbGRv YmpzPSIkb2xkb2JqcyAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKLSsgICAgICBmaQot KwotKyAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBhcmNoaXZlIGNvbW1hbmRzLgotKyAg ICAgIGlmIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzIiAmJiB0ZXN0ICIkYnVp bGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgotKwljbWRzPSRvbGRfYXJjaGl2ZV9mcm9tX25l d19jbWRzCi0rICAgICAgZWxzZQotKwotKwkjIEFkZCBhbnkgb2JqZWN0cyBmcm9tIHByZWxvYWRl ZCBjb252ZW5pZW5jZSBsaWJyYXJpZXMKLSsJaWYgdGVzdCAtbiAiJGRscHJlZmlsZXMiOyB0aGVu Ci0rCSAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKLSsJICBnZW5lcmF0 ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKLSsKLSsJICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdl bnRvcCAkZGxwcmVmaWxlcwotKwkgIG9sZG9ianM9IiRvbGRvYmpzICRmdW5jX2V4dHJhY3RfYXJj aGl2ZXNfcmVzdWx0IgotKwlmaQotKwotKwkjIFBPU0lYIGRlbWFuZHMgbm8gcGF0aHMgdG8gYmUg ZW5jb2RlZCBpbiBhcmNoaXZlcy4gIFdlIGhhdmUKLSsJIyB0byBhdm9pZCBjcmVhdGluZyBhcmNo aXZlcyB3aXRoIGR1cGxpY2F0ZSBiYXNlbmFtZXMgaWYgd2UKLSsJIyBtaWdodCBoYXZlIHRvIGV4 dHJhY3QgdGhlbSBhZnRlcndhcmRzLCBlLmcuLCB3aGVuIGNyZWF0aW5nIGEKLSsJIyBzdGF0aWMg YXJjaGl2ZSBvdXQgb2YgYSBjb252ZW5pZW5jZSBsaWJyYXJ5LCBvciB3aGVuIGxpbmtpbmcKLSsJ IyB0aGUgZW50aXJldHkgb2YgYSBsaWJ0b29sIGFyY2hpdmUgaW50byBhbm90aGVyIChjdXJyZW50 bHkKLSsJIyBub3Qgc3VwcG9ydGVkIGJ5IGxpYnRvb2wpLgotKwlpZiAoZm9yIG9iaiBpbiAkb2xk b2JqcwotKwkgICAgZG8KLSsJICAgICAgZnVuY19iYXNlbmFtZSAiJG9iaiIKLSsJICAgICAgJEVD SE8gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJICAgIGRvbmUgfCBzb3J0IHwgc29ydCAtdWMg Pi9kZXYvbnVsbCAyPiYxKTsgdGhlbgotKwkgIDoKLSsJZWxzZQotKwkgICRFQ0hPICJjb3B5aW5n IHNlbGVjdGVkIG9iamVjdCBmaWxlcyB0byBhdm9pZCBiYXNlbmFtZSBjb25mbGljdHMuLi4iCi0r CSAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKLSsJICBnZW5lcmF0ZWQ9 IiRnZW5lcmF0ZWQgJGdlbnRvcCIKLSsJICBmdW5jX21rZGlyX3AgIiRnZW50b3AiCi0rCSAgc2F2 ZV9vbGRvYmpzPSRvbGRvYmpzCi0rCSAgb2xkb2Jqcz0KLSsJICBjb3VudGVyPTEKLSsJICBmb3Ig b2JqIGluICRzYXZlX29sZG9ianMKLSsJICBkbwotKwkgICAgZnVuY19iYXNlbmFtZSAiJG9iaiIK LSsJICAgIG9iamJhc2U9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJICAgIGNhc2UgIiAkb2xk b2JqcyAiIGluCi0rCSAgICAiICIpIG9sZG9ianM9JG9iaiA7OwotKwkgICAgKltcIC9dIiRvYmpi YXNlICIqKQotKwkgICAgICB3aGlsZSA6OyBkbwotKwkJIyBNYWtlIHN1cmUgd2UgZG9uJ3QgcGlj ayBhbiBhbHRlcm5hdGUgbmFtZSB0aGF0IGFsc28KLSsJCSMgb3ZlcmxhcHMuCi0rCQluZXdvYmo9 bHQkY291bnRlci0kb2JqYmFzZQotKwkJZnVuY19hcml0aCAkY291bnRlciArIDEKLSsJCWNvdW50 ZXI9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCQljYXNlICIgJG9sZG9ianMgIiBpbgotKwkJKltcIC9d IiRuZXdvYmogIiopIDs7Ci0rCQkqKSBpZiB0ZXN0ICEgLWYgIiRnZW50b3AvJG5ld29iaiI7IHRo ZW4gYnJlYWs7IGZpIDs7Ci0rCQllc2FjCi0rCSAgICAgIGRvbmUKLSsJICAgICAgZnVuY19zaG93 X2V2YWwgImxuICRvYmogJGdlbnRvcC8kbmV3b2JqIHx8IGNwICRvYmogJGdlbnRvcC8kbmV3b2Jq IgotKwkgICAgICBvbGRvYmpzPSIkb2xkb2JqcyAkZ2VudG9wLyRuZXdvYmoiCi0rCSAgICAgIDs7 Ci0rCSAgICAqKSBvbGRvYmpzPSIkb2xkb2JqcyAkb2JqIiA7OwotKwkgICAgZXNhYwotKwkgIGRv bmUKLSsJZmkKLSsJZXZhbCBjbWRzPVwiJG9sZF9hcmNoaXZlX2NtZHNcIgotKwotKwlmdW5jX2xl biAiICRjbWRzIgotKwlsZW49JGZ1bmNfbGVuX3Jlc3VsdAotKwlpZiB0ZXN0ICIkbGVuIiAtbHQg IiRtYXhfY21kX2xlbiIgfHwgdGVzdCAiJG1heF9jbWRfbGVuIiAtbGUgLTE7IHRoZW4KLSsJICBj bWRzPSRvbGRfYXJjaGl2ZV9jbWRzCi0rCWVsc2UKLSsJICAjIHRoZSBjb21tYW5kIGxpbmUgaXMg dG9vIGxvbmcgdG8gbGluayBpbiBvbmUgc3RlcCwgbGluayBpbiBwYXJ0cwotKwkgIGZ1bmNfdmVy Ym9zZSAidXNpbmcgcGllY2V3aXNlIGFyY2hpdmUgbGlua2luZy4uLiIKLSsJICBzYXZlX1JBTkxJ Qj0kUkFOTElCCi0rCSAgUkFOTElCPToKLSsJICBvYmpsaXN0PQotKwkgIGNvbmNhdF9jbWRzPQot KwkgIHNhdmVfb2xkb2Jqcz0kb2xkb2JqcwotKwkgIG9sZG9ianM9Ci0rCSAgIyBJcyB0aGVyZSBh IGJldHRlciB3YXkgb2YgZmluZGluZyB0aGUgbGFzdCBvYmplY3QgaW4gdGhlIGxpc3Q/Ci0rCSAg Zm9yIG9iaiBpbiAkc2F2ZV9vbGRvYmpzCi0rCSAgZG8KLSsJICAgIGxhc3Rfb2xkb2JqPSRvYmoK LSsJICBkb25lCi0rCSAgZXZhbCB0ZXN0X2NtZHM9XCIkb2xkX2FyY2hpdmVfY21kc1wiCi0rCSAg ZnVuY19sZW4gIiAkdGVzdF9jbWRzIgotKwkgIGxlbjA9JGZ1bmNfbGVuX3Jlc3VsdAotKwkgIGxl bj0kbGVuMAotKwkgIGZvciBvYmogaW4gJHNhdmVfb2xkb2JqcwotKwkgIGRvCi0rCSAgICBmdW5j X2xlbiAiICRvYmoiCi0rCSAgICBmdW5jX2FyaXRoICRsZW4gKyAkZnVuY19sZW5fcmVzdWx0Ci0r CSAgICBsZW49JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgICBmdW5jX2FwcGVuZCBvYmpsaXN0ICIg JG9iaiIKLSsJICAgIGlmIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIjsgdGhlbgotKwkg ICAgICA6Ci0rCSAgICBlbHNlCi0rCSAgICAgICMgdGhlIGFib3ZlIGNvbW1hbmQgc2hvdWxkIGJl IHVzZWQgYmVmb3JlIGl0IGdldHMgdG9vIGxvbmcKLSsJICAgICAgb2xkb2Jqcz0kb2JqbGlzdAot KwkgICAgICBpZiB0ZXN0ICIkb2JqIiA9ICIkbGFzdF9vbGRvYmoiIDsgdGhlbgotKwkJUkFOTElC PSRzYXZlX1JBTkxJQgotKwkgICAgICBmaQotKwkgICAgICB0ZXN0IC16ICIkY29uY2F0X2NtZHMi IHx8IGNvbmNhdF9jbWRzPSRjb25jYXRfY21kc34KLSsJICAgICAgZXZhbCBjb25jYXRfY21kcz1c Ilwke2NvbmNhdF9jbWRzfSRvbGRfYXJjaGl2ZV9jbWRzXCIKLSsJICAgICAgb2JqbGlzdD0KLSsJ ICAgICAgbGVuPSRsZW4wCi0rCSAgICBmaQotKwkgIGRvbmUKLSsJICBSQU5MSUI9JHNhdmVfUkFO TElCCi0rCSAgb2xkb2Jqcz0kb2JqbGlzdAotKwkgIGlmIHRlc3QgIlgkb2xkb2JqcyIgPSAiWCIg OyB0aGVuCi0rCSAgICBldmFsIGNtZHM9XCJcJGNvbmNhdF9jbWRzXCIKLSsJICBlbHNlCi0rCSAg ICBldmFsIGNtZHM9XCJcJGNvbmNhdF9jbWRzflwkb2xkX2FyY2hpdmVfY21kc1wiCi0rCSAgZmkK LSsJZmkKLSsgICAgICBmaQotKyAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkY21kcyIgJ2V4aXQg JD8nCi0rICAgIGRvbmUKLSsKLSsgICAgdGVzdCAtbiAiJGdlbmVyYXRlZCIgJiYgXAotKyAgICAg IGZ1bmNfc2hvd19ldmFsICIke1JNfXIkZ2VuZXJhdGVkIgotKwotKyAgICAjIE5vdyBjcmVhdGUg dGhlIGxpYnRvb2wgYXJjaGl2ZS4KLSsgICAgY2FzZSAkb3V0cHV0IGluCi0rICAgICoubGEpCi0r ICAgICAgb2xkX2xpYnJhcnk9Ci0rICAgICAgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllcyAm JiBvbGRfbGlicmFyeT0iJGxpYm5hbWUuJGxpYmV4dCIKLSsgICAgICBmdW5jX3ZlcmJvc2UgImNy ZWF0aW5nICRvdXRwdXQiCi0rCi0rICAgICAgIyBQcmVzZXJ2ZSBhbnkgdmFyaWFibGVzIHRoYXQg bWF5IGFmZmVjdCBjb21waWxlciBiZWhhdmlvcgotKyAgICAgIGZvciB2YXIgaW4gJHZhcmlhYmxl c19zYXZlZF9mb3JfcmVsaW5rOyBkbwotKwlpZiBldmFsIHRlc3QgLXogXCJcJHskdmFyK3NldH1c IjsgdGhlbgotKwkgIHJlbGlua19jb21tYW5kPSJ7IHRlc3QgLXogXCJcJHskdmFyK3NldH1cIiB8 fCAkbHRfdW5zZXQgJHZhciB8fCB7ICR2YXI9OyBleHBvcnQgJHZhcjsgfTsgfTsgJHJlbGlua19j b21tYW5kIgotKwllbGlmIGV2YWwgdmFyX3ZhbHVlPVwkJHZhcjsgdGVzdCAteiAiJHZhcl92YWx1 ZSI7IHRoZW4KLSsJICByZWxpbmtfY29tbWFuZD0iJHZhcj07IGV4cG9ydCAkdmFyOyAkcmVsaW5r X2NvbW1hbmQiCi0rCWVsc2UKLSsJICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkdmFyX3ZhbHVlIgot KwkgIHJlbGlua19jb21tYW5kPSIkdmFyPSRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdDsgZXhw b3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIKLSsJZmkKLSsgICAgICBkb25lCi0rICAgICAgIyBR dW90ZSB0aGUgbGluayBjb21tYW5kIGZvciBzaGlwcGluZy4KLSsgICAgICByZWxpbmtfY29tbWFu ZD0iKGNkIGBwd2RgOyAkU0hFTEwgJHByb2dwYXRoICRwcmVzZXJ2ZV9hcmdzIC0tbW9kZT1yZWxp bmsgJGxpYnRvb2xfYXJncyBAaW5zdF9wcmVmaXhfZGlyQCkiCi0rICAgICAgcmVsaW5rX2NvbW1h bmQ9YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0 ImAKLSsgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfYXV0b21hdGljIiA9IHllcyA7IHRoZW4KLSsJ cmVsaW5rX2NvbW1hbmQ9Ci0rICAgICAgZmkKLSsKLSsgICAgICAjIE9ubHkgY3JlYXRlIHRoZSBv dXRwdXQgaWYgbm90IGEgZHJ5IHJ1bi4KLSsgICAgICAkb3B0X2RyeV9ydW4gfHwgewotKwlmb3Ig aW5zdGFsbGVkIGluIG5vIHllczsgZG8KLSsJICBpZiB0ZXN0ICIkaW5zdGFsbGVkIiA9IHllczsg dGhlbgotKwkgICAgaWYgdGVzdCAteiAiJGluc3RhbGxfbGliZGlyIjsgdGhlbgotKwkgICAgICBi cmVhawotKwkgICAgZmkKLSsJICAgIG91dHB1dD0iJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUi aQotKwkgICAgIyBSZXBsYWNlIGFsbCB1bmluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcyB3aXRo IHRoZSBpbnN0YWxsZWQgb25lcwotKwkgICAgbmV3ZGVwZW5kZW5jeV9saWJzPQotKwkgICAgZm9y IGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwotKwkgICAgICBjYXNlICRkZXBsaWIgaW4K LSsJICAgICAgKi5sYSkKLSsJCWZ1bmNfYmFzZW5hbWUgIiRkZXBsaWIiCi0rCQluYW1lPSIkZnVu Y19iYXNlbmFtZV9yZXN1bHQiCi0rCQlldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJk aXI9XCguKlwpJC9cMS9wJyAkZGVwbGliYAotKwkJdGVzdCAteiAiJGxpYmRpciIgJiYgXAotKwkJ ICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRkZXBsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJj aGl2ZSIKLSsJCW5ld2RlcGVuZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyAkbGliZGly LyRuYW1lIgotKwkJOzsKLSsJICAgICAgKikgbmV3ZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5k ZW5jeV9saWJzICRkZXBsaWIiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGRvbmUKLSsJICAgIGRl cGVuZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyIKLSsJICAgIG5ld2RsZmlsZXM9Ci0r Ci0rCSAgICBmb3IgbGliIGluICRkbGZpbGVzOyBkbwotKwkgICAgICBjYXNlICRsaWIgaW4KLSsJ ICAgICAgKi5sYSkKLSsJICAgICAgICBmdW5jX2Jhc2VuYW1lICIkbGliIgotKwkJbmFtZT0iJGZ1 bmNfYmFzZW5hbWVfcmVzdWx0IgotKwkJZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGli ZGlyPVwoLipcKSQvXDEvcCcgJGxpYmAKLSsJCXRlc3QgLXogIiRsaWJkaXIiICYmIFwKLSsJCSAg ZnVuY19mYXRhbF9lcnJvciAiXGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUi Ci0rCQluZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkbGliZGlyLyRuYW1lIgotKwkJOzsKLSsJICAg ICAgKikgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGxpYiIgOzsKLSsJICAgICAgZXNhYwotKwkg ICAgZG9uZQotKwkgICAgZGxmaWxlcz0iJG5ld2RsZmlsZXMiCi0rCSAgICBuZXdkbHByZWZpbGVz PQotKwkgICAgZm9yIGxpYiBpbiAkZGxwcmVmaWxlczsgZG8KLSsJICAgICAgY2FzZSAkbGliIGlu Ci0rCSAgICAgICoubGEpCi0rCQkjIE9ubHkgcGFzcyBwcmVvcGVuZWQgZmlsZXMgdG8gdGhlIHBz ZXVkby1hcmNoaXZlIChmb3IKLSsJCSMgZXZlbnR1YWwgbGlua2luZyB3aXRoIHRoZSBhcHAuIHRo YXQgbGlua3MgaXQpIGlmIHdlCi0rCQkjIGRpZG4ndCBhbHJlYWR5IGxpbmsgdGhlIHByZW9wZW5l ZCBvYmplY3RzIGRpcmVjdGx5IGludG8KLSsJCSMgdGhlIGxpYnJhcnk6Ci0rCQlmdW5jX2Jhc2Vu YW1lICIkbGliIgotKwkJbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKwkJZXZhbCBsaWJk aXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGxpYmAKLSsJCXRlc3Qg LXogIiRsaWJkaXIiICYmIFwKLSsJCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkbGliJyBpcyBub3Qg YSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCi0rCQluZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxl cyAkbGliZGlyLyRuYW1lIgotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgICAg ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMiCi0rCSAgZWxzZQotKwkgICAgbmV3ZGxmaWxlcz0K LSsJICAgIGZvciBsaWIgaW4gJGRsZmlsZXM7IGRvCi0rCSAgICAgIGNhc2UgJGxpYiBpbgotKwkJ W1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBhYnM9IiRsaWIiIDs7Ci0rCQkqKSBhYnM9YHB3ZGAi LyRsaWIiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMg JGFicyIKLSsJICAgIGRvbmUKLSsJICAgIGRsZmlsZXM9IiRuZXdkbGZpbGVzIgotKwkgICAgbmV3 ZGxwcmVmaWxlcz0KLSsJICAgIGZvciBsaWIgaW4gJGRscHJlZmlsZXM7IGRvCi0rCSAgICAgIGNh c2UgJGxpYiBpbgotKwkJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBhYnM9IiRsaWIiIDs7Ci0r CQkqKSBhYnM9YHB3ZGAiLyRsaWIiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgICAgbmV3ZGxwcmVm aWxlcz0iJG5ld2RscHJlZmlsZXMgJGFicyIKLSsJICAgIGRvbmUKLSsJICAgIGRscHJlZmlsZXM9 IiRuZXdkbHByZWZpbGVzIgotKwkgIGZpCi0rCSAgJFJNICRvdXRwdXQKLSsJICAjIHBsYWNlIGRs bmFtZSBpbiBjb3JyZWN0IHBvc2l0aW9uIGZvciBjeWd3aW4KLSsJICB0ZGxuYW1lPSRkbG5hbWUK LSsJICBjYXNlICRob3N0LCRvdXRwdXQsJGluc3RhbGxlZCwkbW9kdWxlLCRkbG5hbWUgaW4KLSsJ ICAgICpjeWd3aW4qLCpsYWkseWVzLG5vLCouZGxsIHwgKm1pbmd3KiwqbGFpLHllcyxubywqLmRs bCB8ICpjZWdjYyosKmxhaSx5ZXMsbm8sKi5kbGwpIHRkbG5hbWU9Li4vYmluLyRkbG5hbWUgOzsK LSsJICBlc2FjCi0rCSAgJEVDSE8gPiAkb3V0cHV0ICJcCi0rIyAkb3V0cHV0bmFtZSAtIGEgbGli dG9vbCBsaWJyYXJ5IGZpbGUKLSsjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdF JFRJTUVTVEFNUCkgJFZFUlNJT04KLSsjCi0rIyBQbGVhc2UgRE8gTk9UIGRlbGV0ZSB0aGlzIGZp bGUhCi0rIyBJdCBpcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgdGhlIGxpYnJhcnkuCi0rCi0rIyBU aGUgbmFtZSB0aGF0IHdlIGNhbiBkbG9wZW4oMykuCi0rZGxuYW1lPSckdGRsbmFtZScKLSsKLSsj IE5hbWVzIG9mIHRoaXMgbGlicmFyeS4KLStsaWJyYXJ5X25hbWVzPSckbGlicmFyeV9uYW1lcycK LSsKLSsjIFRoZSBuYW1lIG9mIHRoZSBzdGF0aWMgYXJjaGl2ZS4KLStvbGRfbGlicmFyeT0nJG9s ZF9saWJyYXJ5JwotKwotKyMgTGlua2VyIGZsYWdzIHRoYXQgY2FuIG5vdCBnbyBpbiBkZXBlbmRl bmN5X2xpYnMuCi0raW5oZXJpdGVkX2xpbmtlcl9mbGFncz0nJG5ld19pbmhlcml0ZWRfbGlua2Vy X2ZsYWdzJwotKwotKyMgTGlicmFyaWVzIHRoYXQgdGhpcyBvbmUgZGVwZW5kcyB1cG9uLgotK2Rl cGVuZGVuY3lfbGlicz0nJGRlcGVuZGVuY3lfbGlicycKLSsKLSsjIE5hbWVzIG9mIGFkZGl0aW9u YWwgd2VhayBsaWJyYXJpZXMgcHJvdmlkZWQgYnkgdGhpcyBsaWJyYXJ5Ci0rd2Vha19saWJyYXJ5 X25hbWVzPSckd2Vha19saWJzJwotKwotKyMgVmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgJGxpYm5h bWUuCi0rY3VycmVudD0kY3VycmVudAotK2FnZT0kYWdlCi0rcmV2aXNpb249JHJldmlzaW9uCi0r Ci0rIyBJcyB0aGlzIGFuIGFscmVhZHkgaW5zdGFsbGVkIGxpYnJhcnk/Ci0raW5zdGFsbGVkPSRp bnN0YWxsZWQKLSsKLSsjIFNob3VsZCB3ZSB3YXJuIGFib3V0IHBvcnRhYmlsaXR5IHdoZW4gbGlu a2luZyBhZ2FpbnN0IC1tb2R1bGVzPwotK3Nob3VsZG5vdGxpbms9JG1vZHVsZQotKwotKyMgRmls ZXMgdG8gZGxvcGVuL2RscHJlb3BlbgotK2Rsb3Blbj0nJGRsZmlsZXMnCi0rZGxwcmVvcGVuPSck ZGxwcmVmaWxlcycKLSsKLSsjIERpcmVjdG9yeSB0aGF0IHRoaXMgbGlicmFyeSBuZWVkcyB0byBi ZSBpbnN0YWxsZWQgaW46Ci0rbGliZGlyPSckaW5zdGFsbF9saWJkaXInIgotKwkgIGlmIHRlc3Qg IiRpbnN0YWxsZWQiID0gbm8gJiYgdGVzdCAiJG5lZWRfcmVsaW5rIiA9IHllczsgdGhlbgotKwkg ICAgJEVDSE8gPj4gJG91dHB1dCAiXAotK3JlbGlua19jb21tYW5kPVwiJHJlbGlua19jb21tYW5k XCIiCi0rCSAgZmkKLSsJZG9uZQotKyAgICAgIH0KLSsKLSsgICAgICAjIERvIGEgc3ltYm9saWMg bGluayBzbyB0aGF0IHRoZSBsaWJ0b29sIGFyY2hpdmUgY2FuIGJlIGZvdW5kIGluCi0rICAgICAg IyBMRF9MSUJSQVJZX1BBVEggYmVmb3JlIHRoZSBwcm9ncmFtIGlzIGluc3RhbGxlZC4KLSsgICAg ICBmdW5jX3Nob3dfZXZhbCAnKCBjZCAiJG91dHB1dF9vYmpkaXIiICYmICRSTSAiJG91dHB1dG5h bWUiICYmICRMTl9TICIuLi8kb3V0cHV0bmFtZSIgIiRvdXRwdXRuYW1lIiApJyAnZXhpdCAkPycK LSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwotK30KLSsKLSt7 IHRlc3QgIiRtb2RlIiA9IGxpbmsgfHwgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB9ICYmCi0rICAg IGZ1bmNfbW9kZV9saW5rICR7MSsiJEAifQotKwotKwotKyMgZnVuY19tb2RlX3VuaW5zdGFsbCBh cmcuLi4KLStmdW5jX21vZGVfdW5pbnN0YWxsICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAg IFJNPSIkbm9ub3B0IgotKyAgICBmaWxlcz0KLSsgICAgcm1mb3JjZT0KLSsgICAgZXhpdF9zdGF0 dXM9MAotKwotKyAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3Qg dG8gc2V0IHZhcmlhYmxlcyByYXRoZXIKLSsgICAgIyB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3Jh bXMuCi0rICAgIGxpYnRvb2xfaW5zdGFsbF9tYWdpYz0iJG1hZ2ljIgotKwotKyAgICBmb3IgYXJn Ci0rICAgIGRvCi0rICAgICAgY2FzZSAkYXJnIGluCi0rICAgICAgLWYpIFJNPSIkUk0gJGFyZyI7 IHJtZm9yY2U9eWVzIDs7Ci0rICAgICAgLSopIFJNPSIkUk0gJGFyZyIgOzsKLSsgICAgICAqKSBm aWxlcz0iJGZpbGVzICRhcmciIDs7Ci0rICAgICAgZXNhYwotKyAgICBkb25lCi0rCi0rICAgIHRl c3QgLXogIiRSTSIgJiYgXAotKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lm eSBhbiBSTSBwcm9ncmFtIgotKwotKyAgICBybWRpcnM9Ci0rCi0rICAgIG9yaWdvYmpkaXI9IiRv YmpkaXIiCi0rICAgIGZvciBmaWxlIGluICRmaWxlczsgZG8KLSsgICAgICBmdW5jX2Rpcm5hbWUg IiRmaWxlIiAiIiAiLiIKLSsgICAgICBkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKyAgICAg IGlmIHRlc3QgIlgkZGlyIiA9IFguOyB0aGVuCi0rCW9iamRpcj0iJG9yaWdvYmpkaXIiCi0rICAg ICAgZWxzZQotKwlvYmpkaXI9IiRkaXIvJG9yaWdvYmpkaXIiCi0rICAgICAgZmkKLSsgICAgICBm dW5jX2Jhc2VuYW1lICIkZmlsZSIKLSsgICAgICBuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQi Ci0rICAgICAgdGVzdCAiJG1vZGUiID0gdW5pbnN0YWxsICYmIG9iamRpcj0iJGRpciIKLSsKLSsg ICAgICAjIFJlbWVtYmVyIG9iamRpciBmb3IgcmVtb3ZhbCBsYXRlciwgYmVpbmcgY2FyZWZ1bCB0 byBhdm9pZCBkdXBsaWNhdGVzCi0rICAgICAgaWYgdGVzdCAiJG1vZGUiID0gY2xlYW47IHRoZW4K LSsJY2FzZSAiICRybWRpcnMgIiBpbgotKwkgICoiICRvYmpkaXIgIiopIDs7Ci0rCSAgKikgcm1k aXJzPSIkcm1kaXJzICRvYmpkaXIiIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKwotKyAgICAgICMg RG9uJ3QgZXJyb3IgaWYgdGhlIGZpbGUgZG9lc24ndCBleGlzdCBhbmQgcm0gLWYgd2FzIHVzZWQu Ci0rICAgICAgaWYgeyB0ZXN0IC1MICIkZmlsZSI7IH0gPi9kZXYvbnVsbCAyPiYxIHx8Ci0rCSB7 IHRlc3QgLWggIiRmaWxlIjsgfSA+L2Rldi9udWxsIDI+JjEgfHwKLSsJIHRlc3QgLWYgIiRmaWxl IjsgdGhlbgotKwk6Ci0rICAgICAgZWxpZiB0ZXN0IC1kICIkZmlsZSI7IHRoZW4KLSsJZXhpdF9z dGF0dXM9MQotKwljb250aW51ZQotKyAgICAgIGVsaWYgdGVzdCAiJHJtZm9yY2UiID0geWVzOyB0 aGVuCi0rCWNvbnRpbnVlCi0rICAgICAgZmkKLSsKLSsgICAgICBybWZpbGVzPSIkZmlsZSIKLSsK LSsgICAgICBjYXNlICRuYW1lIGluCi0rICAgICAgKi5sYSkKLSsJIyBQb3NzaWJseSBhIGxpYnRv b2wgYXJjaGl2ZSwgc28gdmVyaWZ5IGl0LgotKwlpZiBmdW5jX2xhbGliX3AgIiRmaWxlIjsgdGhl bgotKwkgIGZ1bmNfc291cmNlICRkaXIvJG5hbWUKLSsKLSsJICAjIERlbGV0ZSB0aGUgbGlidG9v bCBsaWJyYXJpZXMgYW5kIHN5bWxpbmtzLgotKwkgIGZvciBuIGluICRsaWJyYXJ5X25hbWVzOyBk bwotKwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kbiIKLSsJICBkb25lCi0rCSAgdGVz dCAtbiAiJG9sZF9saWJyYXJ5IiAmJiBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRvbGRfbGli cmFyeSIKLSsKLSsJICBjYXNlICIkbW9kZSIgaW4KLSsJICBjbGVhbikKLSsJICAgIGNhc2UgIiAg JGxpYnJhcnlfbmFtZXMgIiBpbgotKwkgICAgIyAiICAiIGluIHRoZSBiZWdpbm5pbmcgY2F0Y2hl cyBlbXB0eSAkZGxuYW1lCi0rCSAgICAqIiAkZGxuYW1lICIqKSA7OwotKwkgICAgKikgcm1maWxl cz0iJHJtZmlsZXMgJG9iamRpci8kZGxuYW1lIiA7OwotKwkgICAgZXNhYwotKwkgICAgdGVzdCAt biAiJGxpYmRpciIgJiYgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kbmFtZSAkb2JqZGlyLyR7 bmFtZX1pIgotKwkgICAgOzsKLSsJICB1bmluc3RhbGwpCi0rCSAgICBpZiB0ZXN0IC1uICIkbGli cmFyeV9uYW1lcyI7IHRoZW4KLSsJICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIHBvc3R1 bmluc3RhbGwgY29tbWFuZHMuCi0rCSAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkcG9zdHVuaW5z dGFsbF9jbWRzIiAndGVzdCAiJHJtZm9yY2UiID0geWVzIHx8IGV4aXRfc3RhdHVzPTEnCi0rCSAg ICBmaQotKwotKwkgICAgaWYgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IjsgdGhlbgotKwkgICAgICAj IERvIGVhY2ggY29tbWFuZCBpbiB0aGUgb2xkX3Bvc3R1bmluc3RhbGwgY29tbWFuZHMuCi0rCSAg ICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkb2xkX3Bvc3R1bmluc3RhbGxfY21kcyIgJ3Rlc3QgIiRy bWZvcmNlIiA9IHllcyB8fCBleGl0X3N0YXR1cz0xJwotKwkgICAgZmkKLSsJICAgICMgRklYTUU6 IHNob3VsZCByZWluc3RhbGwgdGhlIGJlc3QgcmVtYWluaW5nIHNoYXJlZCBsaWJyYXJ5LgotKwkg ICAgOzsKLSsJICBlc2FjCi0rCWZpCi0rCTs7Ci0rCi0rICAgICAgKi5sbykKLSsJIyBQb3NzaWJs eSBhIGxpYnRvb2wgb2JqZWN0LCBzbyB2ZXJpZnkgaXQuCi0rCWlmIGZ1bmNfbGFsaWJfcCAiJGZp bGUiOyB0aGVuCi0rCi0rCSAgIyBSZWFkIHRoZSAubG8gZmlsZQotKwkgIGZ1bmNfc291cmNlICRk aXIvJG5hbWUKLSsKLSsJICAjIEFkZCBQSUMgb2JqZWN0IHRvIHRoZSBsaXN0IG9mIGZpbGVzIHRv IHJlbW92ZS4KLSsJICBpZiB0ZXN0IC1uICIkcGljX29iamVjdCIgJiYKLSsJICAgICB0ZXN0ICIk cGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgotKwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJGRpci8k cGljX29iamVjdCIKLSsJICBmaQotKwotKwkgICMgQWRkIG5vbi1QSUMgb2JqZWN0IHRvIHRoZSBs aXN0IG9mIGZpbGVzIHRvIHJlbW92ZS4KLSsJICBpZiB0ZXN0IC1uICIkbm9uX3BpY19vYmplY3Qi ICYmCi0rCSAgICAgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCi0rCSAgICBy bWZpbGVzPSIkcm1maWxlcyAkZGlyLyRub25fcGljX29iamVjdCIKLSsJICBmaQotKwlmaQotKwk7 OwotKwotKyAgICAgICopCi0rCWlmIHRlc3QgIiRtb2RlIiA9IGNsZWFuIDsgdGhlbgotKwkgIG5v ZXhlbmFtZT0kbmFtZQotKwkgIGNhc2UgJGZpbGUgaW4KLSsJICAqLmV4ZSkKLSsJICAgIGZ1bmNf c3RyaXBuYW1lICcnICcuZXhlJyAiJGZpbGUiCi0rCSAgICBmaWxlPSRmdW5jX3N0cmlwbmFtZV9y ZXN1bHQKLSsJICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJG5hbWUiCi0rCSAgICBub2V4 ZW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwkgICAgIyAkZmlsZSB3aXRoIC5leGUgaGFz IGFscmVhZHkgYmVlbiBhZGRlZCB0byBybWZpbGVzLAotKwkgICAgIyBhZGQgJGZpbGUgd2l0aG91 dCAuZXhlCi0rCSAgICBybWZpbGVzPSIkcm1maWxlcyAkZmlsZSIKLSsJICAgIDs7Ci0rCSAgZXNh YwotKwkgICMgRG8gYSB0ZXN0IHRvIHNlZSBpZiB0aGlzIGlzIGEgbGlidG9vbCBwcm9ncmFtLgot KwkgIGlmIGZ1bmNfbHR3cmFwcGVyX3AgIiRmaWxlIjsgdGhlbgotKwkgICAgaWYgZnVuY19sdHdy YXBwZXJfZXhlY3V0YWJsZV9wICIkZmlsZSI7IHRoZW4KLSsJICAgICAgZnVuY19sdHdyYXBwZXJf c2NyaXB0bmFtZSAiJGZpbGUiCi0rCSAgICAgIHJlbGlua19jb21tYW5kPQotKwkgICAgICBmdW5j X3NvdXJjZSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKLSsJICAgICAgcm1maWxl cz0iJHJtZmlsZXMgJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0IgotKwkgICAgZWxz ZQotKwkgICAgICByZWxpbmtfY29tbWFuZD0KLSsJICAgICAgZnVuY19zb3VyY2UgJGRpci8kbm9l eGVuYW1lCi0rCSAgICBmaQotKwotKwkgICAgIyBub3RlICRuYW1lIHN0aWxsIGNvbnRhaW5zIC5l eGUgaWYgaXQgd2FzIGluICRmaWxlIG9yaWdpbmFsbHkKLSsJICAgICMgYXMgZG9lcyB0aGUgdmVy c2lvbiBvZiAkZmlsZSB0aGF0IHdhcyBhZGRlZCBpbnRvICRybWZpbGVzCi0rCSAgICBybWZpbGVz PSIkcm1maWxlcyAkb2JqZGlyLyRuYW1lICRvYmpkaXIvJHtuYW1lfVMuJHtvYmpleHR9IgotKwkg ICAgaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5ZXMgJiYgdGVzdCAtbiAiJHJlbGlua19jb21t YW5kIjsgdGhlbgotKwkgICAgICBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyL2x0LSRuYW1lIgot KwkgICAgZmkKLSsJICAgIGlmIHRlc3QgIlgkbm9leGVuYW1lIiAhPSAiWCRuYW1lIiA7IHRoZW4K LSsJICAgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci9sdC0ke25vZXhlbmFtZX0uYyIKLSsJ ICAgIGZpCi0rCSAgZmkKLSsJZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgZnVuY19zaG93 X2V2YWwgIiRSTSAkcm1maWxlcyIgJ2V4aXRfc3RhdHVzPTEnCi0rICAgIGRvbmUKLSsgICAgb2Jq ZGlyPSIkb3JpZ29iamRpciIKLSsKLSsgICAgIyBUcnkgdG8gcmVtb3ZlIHRoZSAke29iamRpcn1z IGluIHRoZSBkaXJlY3RvcmllcyB3aGVyZSB3ZSBkZWxldGVkIGZpbGVzCi0rICAgIGZvciBkaXIg aW4gJHJtZGlyczsgZG8KLSsgICAgICBpZiB0ZXN0IC1kICIkZGlyIjsgdGhlbgotKwlmdW5jX3No b3dfZXZhbCAicm1kaXIgJGRpciA+L2Rldi9udWxsIDI+JjEiCi0rICAgICAgZmkKLSsgICAgZG9u ZQotKwotKyAgICBleGl0ICRleGl0X3N0YXR1cwotK30KLSsKLSt7IHRlc3QgIiRtb2RlIiA9IHVu aW5zdGFsbCB8fCB0ZXN0ICIkbW9kZSIgPSBjbGVhbjsgfSAmJgotKyAgICBmdW5jX21vZGVfdW5p bnN0YWxsICR7MSsiJEAifQotKwotK3Rlc3QgLXogIiRtb2RlIiAmJiB7Ci0rICBoZWxwPSIkZ2Vu ZXJpY19oZWxwIgotKyAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGEgTU9ERSIK LSt9Ci0rCi0rdGVzdCAteiAiJGV4ZWNfY21kIiAmJiBcCi0rICBmdW5jX2ZhdGFsX2hlbHAgImlu dmFsaWQgb3BlcmF0aW9uIG1vZGUgXGAkbW9kZSciCi0rCi0raWYgdGVzdCAtbiAiJGV4ZWNfY21k IjsgdGhlbgotKyAgZXZhbCBleGVjICIkZXhlY19jbWQiCi0rICBleGl0ICRFWElUX0ZBSUxVUkUK LStmaQotKwotK2V4aXQgJGV4aXRfc3RhdHVzCi0rCi0rCi0rIyBUaGUgVEFHcyBiZWxvdyBhcmUg ZGVmaW5lZCBzdWNoIHRoYXQgd2UgbmV2ZXIgZ2V0IGludG8gYSBzaXR1YXRpb24KLSsjIGluIHdo aWNoIHdlIGRpc2FibGUgYm90aCBraW5kcyBvZiBsaWJyYXJpZXMuICBHaXZlbiBjb25mbGljdGlu ZwotKyMgY2hvaWNlcywgd2UgZ28gZm9yIGEgc3RhdGljIGxpYnJhcnksIHRoYXQgaXMgdGhlIG1v c3QgcG9ydGFibGUsCi0rIyBzaW5jZSB3ZSBjYW4ndCB0ZWxsIHdoZXRoZXIgc2hhcmVkIGxpYnJh cmllcyB3ZXJlIGRpc2FibGVkIGJlY2F1c2UKLSsjIHRoZSB1c2VyIGFza2VkIGZvciB0aGF0IG9y IGJlY2F1c2UgdGhlIHBsYXRmb3JtIGRvZXNuJ3Qgc3VwcG9ydAotKyMgdGhlbS4gIFRoaXMgaXMg cGFydGljdWxhcmx5IGltcG9ydGFudCBvbiBBSVgsIGJlY2F1c2Ugd2UgZG9uJ3QKLSsjIHN1cHBv cnQgaGF2aW5nIGJvdGggc3RhdGljIGFuZCBzaGFyZWQgbGlicmFyaWVzIGVuYWJsZWQgYXQgdGhl IHNhbWUKLSsjIHRpbWUgb24gdGhhdCBwbGF0Zm9ybSwgc28gd2UgZGVmYXVsdCB0byBhIHNoYXJl ZC1vbmx5IGNvbmZpZ3VyYXRpb24uCi0rIyBJZiBhIGRpc2FibGUtc2hhcmVkIHRhZyBpcyBnaXZl biwgd2UnbGwgZmFsbGJhY2sgdG8gYSBzdGF0aWMtb25seQotKyMgY29uZmlndXJhdGlvbi4gIEJ1 dCB3ZSdsbCBuZXZlciBnbyBmcm9tIHN0YXRpYy1vbmx5IHRvIHNoYXJlZC1vbmx5LgotKwotKyMg IyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zaGFyZWQKLStidWlsZF9saWJ0 b29sX2xpYnM9bm8KLStidWlsZF9vbGRfbGlicz15ZXMKLSsjICMjIyBFTkQgTElCVE9PTCBUQUcg Q09ORklHOiBkaXNhYmxlLXNoYXJlZAotKwotKyMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJ RzogZGlzYWJsZS1zdGF0aWMKLStidWlsZF9vbGRfbGlicz1gY2FzZSAkYnVpbGRfbGlidG9vbF9s aWJzIGluIHllcykgZWNobyBubzs7ICopIGVjaG8geWVzOzsgZXNhY2AKLSsjICMjIyBFTkQgTElC VE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXN0YXRpYwotKwotKyMgTG9jYWwgVmFyaWFibGVzOgot KyMgbW9kZTpzaGVsbC1zY3JpcHQKLSsjIHNoLWluZGVudGF0aW9uOjIKLSsjIEVuZDoKLSsjIHZp OnN3PTIKLSsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHR+b2Jzb2xldGUu bTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNAotLS0tIHNvY2ktMy4w LjBfNC1wYWNrL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHR+b2Jzb2xldGUubTQJ MjAxMC0wMS0yMyAxNDo0NDo0NC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsOTIgQEAKLSsj IGx0fm9ic29sZXRlLm00IC0tIGFjbG9jYWwgc2F0aXNmeWluZyBvYnNvbGV0ZSBkZWZpbml0aW9u cy4gICAgLSotQXV0b2NvbmYtKi0KLSsjCi0rIyAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwg MjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjICAgV3JpdHRlbiBieSBTY290 dCBKYW1lcyBSZW1uYW50LCAyMDA0LgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJl OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCi0rIyB1bmxpbWl0ZWQgcGVybWlz c2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKLSsjIG1v ZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMg c2VyaWFsIDQgbHR+b2Jzb2xldGUubTQKLSsKLSsjIFRoZXNlIGV4aXN0IGVudGlyZWx5IHRvIGZv b2wgYWNsb2NhbCB3aGVuIGJvb3RzdHJhcHBpbmcgbGlidG9vbC4KLSsjCi0rIyBJbiB0aGUgcGFz dCBsaWJ0b29sLm00IGhhcyBwcm92aWRlZCBtYWNyb3MgdmlhIEFDX0RFRlVOIChvciBBVV9ERUZV TikKLSsjIHdoaWNoIGhhdmUgbGF0ZXIgYmVlbiBjaGFuZ2VkIHRvIG00X2RlZmluZSBhcyB0aGV5 IGFyZW4ndCBwYXJ0IG9mIHRoZQotKyMgZXhwb3J0ZWQgQVBJLCBvciBtb3ZlZCB0byBBdXRvY29u ZiBvciBBdXRvbWFrZSB3aGVyZSB0aGV5IGJlbG9uZy4KLSsjCi0rIyBUaGUgdHJvdWJsZSBpcywg YWNsb2NhbCBpcyBhIGJpdCB0aGljay4gIEl0J2xsIHNlZSB0aGUgb2xkIEFDX0RFRlVOCi0rIyBp biAvdXNyL3NoYXJlL2FjbG9jYWwvbGlidG9vbC5tNCBhbmQgcmVtZW1iZXIgaXQsIHRoZW4gd2hl biBpdCBzZWVzIHVzCi0rIyB1c2luZyBhIG1hY3JvIHdpdGggdGhlIHNhbWUgbmFtZSBpbiBvdXIg bG9jYWwgbTQvbGlidG9vbC5tNCBpdCdsbAotKyMgcHVsbCB0aGUgb2xkIGxpYnRvb2wubTQgaW4g KGl0IGRvZXNuJ3Qgc2VlIG91ciBzaGlueSBuZXcgbTRfZGVmaW5lCi0rIyBhbmQgZG9lc24ndCBr bm93IGFib3V0IEF1dG9jb25mIG1hY3JvcyBhdCBhbGwuKQotKyMKLSsjIFNvIHdlIHByb3ZpZGUg dGhpcyBmaWxlLCB3aGljaCBoYXMgYSBzaWxseSBmaWxlbmFtZSBzbyBpdCdzIGFsd2F5cwotKyMg aW5jbHVkZWQgYWZ0ZXIgZXZlcnl0aGluZyBlbHNlLiAgVGhpcyBwcm92aWRlcyBhY2xvY2FsIHdp dGggdGhlCi0rIyBBQ19ERUZVTnMgaXQgd2FudHMsIGJ1dCB3aGVuIG00IHByb2Nlc3NlcyBpdCwg aXQgZG9lc24ndCBkbyBhbnl0aGluZwotKyMgYmVjYXVzZSB0aG9zZSBtYWNyb3MgYWxyZWFkeSBl eGlzdCwgb3Igd2lsbCBiZSBvdmVyd3JpdHRlbiBsYXRlci4KLSsjIFdlIHVzZSBBQ19ERUZVTiBv dmVyIEFVX0RFRlVOIGZvciBjb21wYXRpYmlsaXR5IHdpdGggYWNsb2NhbC0xLjYuIAotKyMKLSsj IEFueXRpbWUgd2Ugd2l0aGRyYXcgYW4gQUNfREVGVU4gb3IgQVVfREVGVU4sIHJlbWVtYmVyIHRv IGFkZCBpdCBoZXJlLgotKyMgWWVzLCB0aGF0IG1lYW5zIGV2ZXJ5IG5hbWUgb25jZSB0YWtlbiB3 aWxsIG5lZWQgdG8gcmVtYWluIGhlcmUgdW50aWwKLSsjIHdlIGdpdmUgdXAgY29tcGF0aWJpbGl0 eSB3aXRoIHZlcnNpb25zIGJlZm9yZSAxLjcsIGF0IHdoaWNoIHBvaW50Ci0rIyB3ZSBuZWVkIHRv IGtlZXAgb25seSB0aG9zZSBuYW1lcyB3aGljaCB3ZSBzdGlsbCByZWZlciB0by4KLSsKLSsjIFRo aXMgaXMgdG8gaGVscCBhY2xvY2FsIGZpbmQgdGhlc2UgbWFjcm9zLCBhcyBpdCBjYW4ndCBzZWUg bTRfZGVmaW5lLgotK0FDX0RFRlVOKFtMVE9CU09MRVRFX1ZFUlNJT05dLCBbbTRfaWYoWzFdKV0p Ci0rCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX0xJTktFUl9PUFRJT05dLAlbQUNfREVGVU4oW0FD X0xJQlRPT0xfTElOS0VSX09QVElPTl0pXSkKLSttNF9pZm5kZWYoW0FDX1BST0dfRUdSRVBdLAkJ W0FDX0RFRlVOKFtBQ19QUk9HX0VHUkVQXSldKQotK200X2lmbmRlZihbX0xUX0FDX1BST0dfRUNI T19CQUNLU0xBU0hdLAlbQUNfREVGVU4oW19MVF9BQ19QUk9HX0VDSE9fQkFDS1NMQVNIXSldKQot K200X2lmbmRlZihbX0xUX0FDX1NIRUxMX0lOSVRdLAkJW0FDX0RFRlVOKFtfTFRfQUNfU0hFTExf SU5JVF0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19TWVNfTElCUEFUSF9BSVhdLAlbQUNfREVGVU4o W19MVF9BQ19TWVNfTElCUEFUSF9BSVhdKV0pCi0rbTRfaWZuZGVmKFtfTFRfUFJPR19MVE1BSU5d LAkJW0FDX0RFRlVOKFtfTFRfUFJPR19MVE1BSU5dKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfVEFH VkFSXSwJCVtBQ19ERUZVTihbX0xUX0FDX1RBR1ZBUl0pXSkKLSttNF9pZm5kZWYoW0FDX0xURExf RU5BQkxFX0lOU1RBTExdLAlbQUNfREVGVU4oW0FDX0xURExfRU5BQkxFX0lOU1RBTExdKV0pCi0r bTRfaWZuZGVmKFtBQ19MVERMX1BSRU9QRU5dLAkJW0FDX0RFRlVOKFtBQ19MVERMX1BSRU9QRU5d KV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfU1lTX0NPTVBJTEVSXSwJW0FDX0RFRlVOKFtfTFRfQUNf U1lTX0NPTVBJTEVSXSldKQotK200X2lmbmRlZihbX0xUX0FDX0xPQ0tdLAkJW0FDX0RFRlVOKFtf TFRfQUNfTE9DS10pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfU1lTX09MRF9BUkNISVZFXSwJ W0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19PTERfQVJDSElWRV0pXSkKLSttNF9pZm5kZWYoW19M VF9BQ19UUllfRExPUEVOX1NFTEZdLAlbQUNfREVGVU4oW19MVF9BQ19UUllfRExPUEVOX1NFTEZd KV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BST0dfQ0NfQ19PXSwJW0FDX0RFRlVOKFtBQ19M SUJUT09MX1BST0dfQ0NfQ19PXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNfSEFSRF9M SU5LX0xPQ0tTXSwgW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19IQVJEX0xJTktfTE9DS1NdKV0p Ci0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX09CSkRJUl0sCQlbQUNfREVGVU4oW0FDX0xJQlRPT0xf T0JKRElSXSldKQotK200X2lmbmRlZihbQUNfTFRETF9PQkpESVJdLAkJW0FDX0RFRlVOKFtBQ19M VERMX09CSkRJUl0pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfUFJPR19MRF9IQVJEQ09ERV9M SUJQQVRIXSwgW0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfTERfSEFSRENPREVfTElCUEFUSF0p XSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfU1lTX0xJQl9TVFJJUF0sCVtBQ19ERUZVTihbQUNf TElCVE9PTF9TWVNfTElCX1NUUklQXSldKQotK200X2lmbmRlZihbQUNfUEFUSF9NQUdJQ10sCQlb QUNfREVGVU4oW0FDX1BBVEhfTUFHSUNdKV0pCi0rbTRfaWZuZGVmKFtBQ19QUk9HX0xEX0dOVV0s CQlbQUNfREVGVU4oW0FDX1BST0dfTERfR05VXSldKQotK200X2lmbmRlZihbQUNfUFJPR19MRF9S RUxPQURfRkxBR10sCVtBQ19ERUZVTihbQUNfUFJPR19MRF9SRUxPQURfRkxBR10pXSkKLSttNF9p Zm5kZWYoW0FDX0RFUExJQlNfQ0hFQ0tfTUVUSE9EXSwJW0FDX0RFRlVOKFtBQ19ERVBMSUJTX0NI RUNLX01FVEhPRF0pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9OT19S VFRJXSwgW0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfTk9fUlRUSV0pXSkKLStt NF9pZm5kZWYoW0FDX0xJQlRPT0xfU1lTX0dMT0JBTF9TWU1CT0xfUElQRV0sIFtBQ19ERUZVTihb QUNfTElCVE9PTF9TWVNfR0xPQkFMX1NZTUJPTF9QSVBFXSldKQotK200X2lmbmRlZihbQUNfTElC VE9PTF9QUk9HX0NPTVBJTEVSX1BJQ10sIFtBQ19ERUZVTihbQUNfTElCVE9PTF9QUk9HX0NPTVBJ TEVSX1BJQ10pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfUFJPR19MRF9TSExJQlNdLAlbQUNf REVGVU4oW0FDX0xJQlRPT0xfUFJPR19MRF9TSExJQlNdKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJU T09MX1BPU1RERVBfUFJFREVQXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1BPU1RERVBfUFJFREVQ XSldKQotK200X2lmbmRlZihbTFRfQUNfUFJPR19FR1JFUF0sCQlbQUNfREVGVU4oW0xUX0FDX1BS T0dfRUdSRVBdKV0pCi0rbTRfaWZuZGVmKFtMVF9BQ19QUk9HX1NFRF0sCQlbQUNfREVGVU4oW0xU X0FDX1BST0dfU0VEXSldKQotK200X2lmbmRlZihbX0xUX0NDX0JBU0VOQU1FXSwJCVtBQ19ERUZV TihbX0xUX0NDX0JBU0VOQU1FXSldKQotK200X2lmbmRlZihbX0xUX0NPTVBJTEVSX0JPSUxFUlBM QVRFXSwJW0FDX0RFRlVOKFtfTFRfQ09NUElMRVJfQk9JTEVSUExBVEVdKV0pCi0rbTRfaWZuZGVm KFtfTFRfTElOS0VSX0JPSUxFUlBMQVRFXSwJW0FDX0RFRlVOKFtfTFRfTElOS0VSX0JPSUxFUlBM QVRFXSldKQotK200X2lmbmRlZihbX0FDX1BST0dfTElCVE9PTF0sCQlbQUNfREVGVU4oW19BQ19Q Uk9HX0xJQlRPT0xdKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NFVFVQXSwJCVtBQ19ERUZV TihbQUNfTElCVE9PTF9TRVRVUF0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19DSEVDS19ETEZDTl0s CQlbQUNfREVGVU4oW19MVF9BQ19DSEVDS19ETEZDTl0pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRP T0xfU1lTX0RZTkFNSUNfTElOS0VSXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19EWU5BTUlD X0xJTktFUl0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19UQUdDT05GSUddLAkJW0FDX0RFRlVOKFtf TFRfQUNfVEFHQ09ORklHXSldKQotK200X2lmbmRlZihbQUNfRElTQUJMRV9GQVNUX0lOU1RBTExd LAlbQUNfREVGVU4oW0FDX0RJU0FCTEVfRkFTVF9JTlNUQUxMXSldKQotK200X2lmbmRlZihbX0xU X0FDX0xBTkdfQ1hYXSwJCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfQ1hYXSldKQotK200X2lmbmRl ZihbX0xUX0FDX0xBTkdfRjc3XSwJCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfRjc3XSldKQotK200 X2lmbmRlZihbX0xUX0FDX0xBTkdfR0NKXSwJCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfR0NKXSld KQotK200X2lmbmRlZihbQUNfTElCVE9PTF9SQ10sCQlbQUNfREVGVU4oW0FDX0xJQlRPT0xfUkNd KV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX0xBTkdfQ19DT05GSUddLAlbQUNfREVGVU4oW0FD X0xJQlRPT0xfTEFOR19DX0NPTkZJR10pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19MQU5HX0NfQ09O RklHXSwJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19DX0NPTkZJR10pXSkKLSttNF9pZm5kZWYoW0FD X0xJQlRPT0xfTEFOR19DWFhfQ09ORklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfQ1hY X0NPTkZJR10pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19MQU5HX0NYWF9DT05GSUddLAlbQUNfREVG VU4oW19MVF9BQ19MQU5HX0NYWF9DT05GSUddKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX0xB TkdfRjc3X0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX0Y3N19DT05GSUddKV0p Ci0rbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19GNzdfQ09ORklHXSwJW0FDX0RFRlVOKFtfTFRfQUNf TEFOR19GNzdfQ09ORklHXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX0dDSl9DT05G SUddLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19HQ0pfQ09ORklHXSldKQotK200X2lmbmRl ZihbX0xUX0FDX0xBTkdfR0NKX0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfR0NKX0NP TkZJR10pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfTEFOR19SQ19DT05GSUddLAlbQUNfREVG VU4oW0FDX0xJQlRPT0xfTEFOR19SQ19DT05GSUddKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfTEFO R19SQ19DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5HX1JDX0NPTkZJR10pXSkKLSttNF9p Zm5kZWYoW0FDX0xJQlRPT0xfQ09ORklHXSwJCVtBQ19ERUZVTihbQUNfTElCVE9PTF9DT05GSUdd KV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfRklMRV9MVERMTF9DXSwJW0FDX0RFRlVOKFtfTFRfQUNf RklMRV9MVERMTF9DXSldKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdG9w dGlvbnMubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdG9wdGlvbnMubTQKLS0tLSBzb2Np LTMuMC4wXzQtcGFjay9jb25maWcvbHRvcHRpb25zLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdG9wdGlvbnMubTQJ MjAxMC0wMS0yMyAxNDo0NDo0NC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMzY4IEBACi0r IyBIZWxwZXIgZnVuY3Rpb25zIGZvciBvcHRpb24gaGFuZGxpbmcuICAgICAgICAgICAgICAgICAg ICAtKi0gQXV0b2NvbmYgLSotCi0rIwotKyMgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIw MDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyAgIFdyaXR0ZW4gYnkg R2FyeSBWLiBWYXVnaGFuLCAyMDA0Ci0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKLSsjIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsIHdpdGggb3Igd2l0aG91dAotKyMgbW9k aWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBz ZXJpYWwgNiBsdG9wdGlvbnMubTQKLSsKLSsjIFRoaXMgaXMgdG8gaGVscCBhY2xvY2FsIGZpbmQg dGhlc2UgbWFjcm9zLCBhcyBpdCBjYW4ndCBzZWUgbTRfZGVmaW5lLgotK0FDX0RFRlVOKFtMVE9Q VElPTlNfVkVSU0lPTl0sIFttNF9pZihbMV0pXSkKLSsKLSsKLSsjIF9MVF9NQU5HTEVfT1BUSU9O KE1BQ1JPLU5BTUUsIE9QVElPTi1OQU1FKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtfTFRfTUFOR0xFX09QVElPTl0sCi0rW1tfTFRf T1BUSU9OX11tNF9icGF0c3Vic3QoJDFfXyQyLCBbW15hLXpBLVowLTlfXV0sIFtfXSldKQotKwot KwotKyMgX0xUX1NFVF9PUFRJT04oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUpCi0rIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFNldCBvcHRpb24gT1BUSU9OLU5B TUUgZm9yIG1hY3JvIE1BQ1JPLU5BTUUsIGFuZCBpZiB0aGVyZSBpcyBhCi0rIyBtYXRjaGluZyBo YW5kbGVyIGRlZmluZWQsIGRpc3BhdGNoIHRvIGl0LiAgT3RoZXIgT1BUSU9OLU5BTUVzIGFyZQot KyMgc2F2ZWQgYXMgYSBmbGFnLgotK200X2RlZmluZShbX0xUX1NFVF9PUFRJT05dLAotK1ttNF9k ZWZpbmUoX0xUX01BTkdMRV9PUFRJT04oWyQxXSwgWyQyXSkpZG5sCi0rbTRfaWZkZWYoX0xUX01B TkdMRV9ERUZVTihbJDFdLCBbJDJdKSwKLSsgICAgICAgIF9MVF9NQU5HTEVfREVGVU4oWyQxXSwg WyQyXSksCi0rICAgIFttNF93YXJuaW5nKFtVbmtub3duICQxIG9wdGlvbiBgJDInXSldKVtdZG5s Ci0rXSkKLSsKLSsKLSsjIF9MVF9JRl9PUFRJT04oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUsIElG LVNFVCwgW0lGLU5PVC1TRVRdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBFeGVjdXRlIElGLVNFVCBpZiBPUFRJT04g aXMgc2V0LCBJRi1OT1QtU0VUIG90aGVyd2lzZS4KLSttNF9kZWZpbmUoW19MVF9JRl9PUFRJT05d LAotK1ttNF9pZmRlZihfTFRfTUFOR0xFX09QVElPTihbJDFdLCBbJDJdKSwgWyQzXSwgWyQ0XSld KQotKwotKwotKyMgX0xUX1VOTEVTU19PUFRJT05TKE1BQ1JPLU5BTUUsIE9QVElPTi1MSVNULCBJ Ri1OT1QtU0VUKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotKyMgRXhlY3V0ZSBJRi1OT1QtU0VUIHVubGVzcyBhbGwgb3B0aW9ucyBp biBPUFRJT04tTElTVCBmb3IgTUFDUk8tTkFNRQotKyMgYXJlIHNldC4KLSttNF9kZWZpbmUoW19M VF9VTkxFU1NfT1BUSU9OU10sCi0rW200X2ZvcmVhY2goW19MVF9PcHRpb25dLCBtNF9zcGxpdCht NF9ub3JtYWxpemUoWyQyXSkpLAotKwkgICAgW200X2lmZGVmKF9MVF9NQU5HTEVfT1BUSU9OKFsk MV0sIF9MVF9PcHRpb24pLAotKwkJICAgICAgW200X2RlZmluZShbJDBfZm91bmRdKV0pXSlbXWRu bAotK200X2lmZGVmKFskMF9mb3VuZF0sIFttNF91bmRlZmluZShbJDBfZm91bmRdKV0sIFskMwot K10pW11kbmwKLStdKQotKwotKwotKyMgX0xUX1NFVF9PUFRJT05TKE1BQ1JPLU5BTUUsIE9QVElP Ti1MSVNUKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMg T1BUSU9OLUxJU1QgaXMgYSBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBMaWJ0b29sIG9wdGlvbnMg YXNzb2NpYXRlZAotKyMgd2l0aCBNQUNSTy1OQU1FLiAgSWYgYW55IE9QVElPTiBoYXMgYSBtYXRj aGluZyBoYW5kbGVyIGRlY2xhcmVkIHdpdGgKLSsjIExUX09QVElPTl9ERUZJTkUsIGRpc3BhdGNo IHRvIHRoYXQgbWFjcm87IG90aGVyd2lzZSBjb21wbGFpbiBhYm91dAotKyMgdGhlIHVua25vd24g b3B0aW9uIGFuZCBleGl0LgotK200X2RlZnVuKFtfTFRfU0VUX09QVElPTlNdLAotK1sjIFNldCBv cHRpb25zCi0rbTRfZm9yZWFjaChbX0xUX09wdGlvbl0sIG00X3NwbGl0KG00X25vcm1hbGl6ZShb JDJdKSksCi0rICAgIFtfTFRfU0VUX09QVElPTihbJDFdLCBfTFRfT3B0aW9uKV0pCi0rCi0rbTRf aWYoWyQxXSxbTFRfSU5JVF0sWwotKyAgZG5sCi0rICBkbmwgU2ltcGx5IHNldCBzb21lIGRlZmF1 bHQgdmFsdWVzIChpLmUgb2ZmKSBpZiBib29sZWFuIG9wdGlvbnMgd2VyZSBub3QKLSsgIGRubCBz cGVjaWZpZWQ6Ci0rICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBbZGxvcGVuXSwgW2Vu YWJsZV9kbG9wZW49bm8KLSsgIF0pCi0rICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBb d2luMzItZGxsXSwgW2VuYWJsZV93aW4zMl9kbGw9bm8KLSsgIF0pCi0rICBkbmwKLSsgIGRubCBJ ZiBubyByZWZlcmVuY2Ugd2FzIG1hZGUgdG8gdmFyaW91cyBwYWlycyBvZiBvcHBvc2luZyBvcHRp b25zLCB0aGVuCi0rICBkbmwgd2UgcnVuIHRoZSBkZWZhdWx0IG1vZGUgaGFuZGxlciBmb3IgdGhl IHBhaXIuICBGb3IgZXhhbXBsZSwgaWYgbmVpdGhlcgotKyAgZG5sIGBzaGFyZWQnIG5vciBgZGlz YWJsZS1zaGFyZWQnIHdhcyBwYXNzZWQsIHdlIGVuYWJsZSBidWlsZGluZyBvZiBzaGFyZWQKLSsg IGRubCBhcmNoaXZlcyBieSBkZWZhdWx0OgotKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklU XSwgW3NoYXJlZCBkaXNhYmxlLXNoYXJlZF0sIFtfTFRfRU5BQkxFX1NIQVJFRF0pCi0rICBfTFRf VU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBbc3RhdGljIGRpc2FibGUtc3RhdGljXSwgW19MVF9F TkFCTEVfU1RBVElDXSkKLSsgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFtwaWMtb25s eSBuby1waWNdLCBbX0xUX1dJVEhfUElDXSkKLSsgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5J VF0sIFtmYXN0LWluc3RhbGwgZGlzYWJsZS1mYXN0LWluc3RhbGxdLAotKyAgCQkgICBbX0xUX0VO QUJMRV9GQVNUX0lOU1RBTExdKQotKyAgXSkKLStdKSMgX0xUX1NFVF9PUFRJT05TCi0rCi0rCi0r IyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgTWFjcm9zIHRvIGhh bmRsZSBMVF9JTklUIG9wdGlvbnMuICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tICMjCi0rCi0rIyBfTFRfTUFOR0xFX0RFRlVOKE1BQ1JPLU5BTUUsIE9QVElPTi1OQU1F KQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZp bmUoW19MVF9NQU5HTEVfREVGVU5dLAotK1tbX0xUX09QVElPTl9ERUZVTl9dbTRfYnBhdHN1YnN0 KG00X3RvdXBwZXIoWyQxX18kMl0pLCBbW15BLVowLTlfXV0sIFtfXSldKQotKwotKwotKyMgTFRf T1BUSU9OX0RFRklORShNQUNSTy1OQU1FLCBPUFRJT04tTkFNRSwgQ09ERSkKLSsjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtMVF9P UFRJT05fREVGSU5FXSwKLStbbTRfZGVmaW5lKF9MVF9NQU5HTEVfREVGVU4oWyQxXSwgWyQyXSks IFskM10pW11kbmwKLStdKSMgTFRfT1BUSU9OX0RFRklORQotKwotKwotKyMgZGxvcGVuCi0rIyAt LS0tLS0KLStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW2Rsb3Blbl0sIFtlbmFibGVfZGxv cGVuPXllcwotK10pCi0rCi0rQVVfREVGVU4oW0FDX0xJQlRPT0xfRExPUEVOXSwKLStbX0xUX1NF VF9PUFRJT04oW0xUX0lOSVRdLCBbZGxvcGVuXSkKLStBQ19ESUFHTk9TRShbb2Jzb2xldGVdLAot K1skMDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xUX1NFVF9PUFRJT04g d2hlbiB5b3UKLStwdXQgdGhlIGBkbG9wZW4nIG9wdGlvbiBpbnRvIExUX0lOSVQncyBmaXJzdCBw YXJhbWV0ZXIuXSkKLStdKQotKwotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJp bGl0eToKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRExPUEVOXSwgW10pCi0rCi0rCi0rIyB3 aW4zMi1kbGwKLSsjIC0tLS0tLS0tLQotKyMgRGVjbGFyZSBwYWNrYWdlIHN1cHBvcnQgZm9yIGJ1 aWxkaW5nIHdpbjMyIGRsbCdzLgotK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbd2luMzIt ZGxsXSwKLStbZW5hYmxlX3dpbjMyX2RsbD15ZXMKLSsKLStjYXNlICRob3N0IGluCi0rKi0qLWN5 Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi1jZWdjYyopCi0rICBBQ19DSEVDS19U T09MKEFTLCBhcywgZmFsc2UpCi0rICBBQ19DSEVDS19UT09MKERMTFRPT0wsIGRsbHRvb2wsIGZh bHNlKQotKyAgQUNfQ0hFQ0tfVE9PTChPQkpEVU1QLCBvYmpkdW1wLCBmYWxzZSkKLSsgIDs7Ci0r ZXNhYwotKwotK3Rlc3QgLXogIiRBUyIgJiYgQVM9YXMKLStfTFRfREVDTChbXSwgW0FTXSwgICAg ICBbMF0sIFtBc3NlbWJsZXIgcHJvZ3JhbV0pZG5sCi0rCi0rdGVzdCAteiAiJERMTFRPT0wiICYm IERMTFRPT0w9ZGxsdG9vbAotK19MVF9ERUNMKFtdLCBbRExMVE9PTF0sIFswXSwgW0RMTCBjcmVh dGlvbiBwcm9ncmFtXSlkbmwKLSsKLSt0ZXN0IC16ICIkT0JKRFVNUCIgJiYgT0JKRFVNUD1vYmpk dW1wCi0rX0xUX0RFQ0woW10sIFtPQkpEVU1QXSwgWzBdLCBbT2JqZWN0IGR1bXBlciBwcm9ncmFt XSlkbmwKLStdKSMgd2luMzItZGxsCi0rCi0rQVVfREVGVU4oW0FDX0xJQlRPT0xfV0lOMzJfRExM XSwKLStbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAotK19MVF9TRVRfT1BUSU9O KFtMVF9JTklUXSwgW3dpbjMyLWRsbF0pCi0rQUNfRElBR05PU0UoW29ic29sZXRlXSwKLStbJDA6 IFJlbW92ZSB0aGlzIHdhcm5pbmcgYW5kIHRoZSBjYWxsIHRvIF9MVF9TRVRfT1BUSU9OIHdoZW4g eW91Ci0rcHV0IHRoZSBgd2luMzItZGxsJyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFy YW1ldGVyLl0pCi0rXSkKLSsKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxp dHk6Ci0rZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX1dJTjMyX0RMTF0sIFtdKQotKwotKwotKyMg X0xUX0VOQUJMRV9TSEFSRUQoW0RFRkFVTFRdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgaW1wbGVtZW50IHRoZSAtLWVuYWJsZS1zaGFyZWQgZmxhZywgYW5kIHN1cHBvcnRz IHRoZSBgc2hhcmVkJyBhbmQKLSsjIGBkaXNhYmxlLXNoYXJlZCcgTFRfSU5JVCBvcHRpb25zLgot KyMgREVGQVVMVCBpcyBlaXRoZXIgYHllcycgb3IgYG5vJy4gIElmIG9taXR0ZWQsIGl0IGRlZmF1 bHRzIHRvIGB5ZXMnLgotK200X2RlZmluZShbX0xUX0VOQUJMRV9TSEFSRURdLAotK1ttNF9kZWZp bmUoW19MVF9FTkFCTEVfU0hBUkVEX0RFRkFVTFRdLCBbbTRfaWYoJDEsIG5vLCBubywgeWVzKV0p ZG5sCi0rQUNfQVJHX0VOQUJMRShbc2hhcmVkXSwKLSsgICAgW0FTX0hFTFBfU1RSSU5HKFstLWVu YWJsZS1zaGFyZWRAPDpAPVBLR1NAOj5AXSwKLSsJW2J1aWxkIHNoYXJlZCBsaWJyYXJpZXMgQDw6 QGRlZmF1bHQ9XV9MVF9FTkFCTEVfU0hBUkVEX0RFRkFVTFRbQDo+QF0pXSwKLSsgICAgW3A9JHtQ QUNLQUdFLWRlZmF1bHR9Ci0rICAgIGNhc2UgJGVuYWJsZXZhbCBpbgotKyAgICB5ZXMpIGVuYWJs ZV9zaGFyZWQ9eWVzIDs7Ci0rICAgIG5vKSBlbmFibGVfc2hhcmVkPW5vIDs7Ci0rICAgICopCi0r ICAgICAgZW5hYmxlX3NoYXJlZD1ubwotKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2Ug Z290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KLSsgICAgICBsdF9z YXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKLSsgICAgICBmb3Ig cGtnIGluICRlbmFibGV2YWw7IGRvCi0rCUlGUz0iJGx0X3NhdmVfaWZzIgotKwlpZiB0ZXN0ICJY JHBrZyIgPSAiWCRwIjsgdGhlbgotKwkgIGVuYWJsZV9zaGFyZWQ9eWVzCi0rCWZpCi0rICAgICAg ZG9uZQotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICAgIDs7Ci0rICAgIGVzYWNdLAot KyAgICBbZW5hYmxlX3NoYXJlZD1dX0xUX0VOQUJMRV9TSEFSRURfREVGQVVMVCkKLSsKLSsgICAg X0xUX0RFQ0woW2J1aWxkX2xpYnRvb2xfbGlic10sIFtlbmFibGVfc2hhcmVkXSwgWzBdLAotKwlb V2hldGhlciBvciBub3QgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCi0rXSkjIF9MVF9FTkFC TEVfU0hBUkVECi0rCi0rTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtzaGFyZWRdLCBbX0xU X0VOQUJMRV9TSEFSRUQoW3llc10pXSkKLStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW2Rp c2FibGUtc2hhcmVkXSwgW19MVF9FTkFCTEVfU0hBUkVEKFtub10pXSkKLSsKLSsjIE9sZCBuYW1l czoKLStBQ19ERUZVTihbQUNfRU5BQkxFX1NIQVJFRF0sCi0rW19MVF9TRVRfT1BUSU9OKFtMVF9J TklUXSwgbTRfaWYoWyQxXSwgW25vXSwgW2Rpc2FibGUtXSlbc2hhcmVkXSkKLStdKQotKwotK0FD X0RFRlVOKFtBQ19ESVNBQkxFX1NIQVJFRF0sCi0rW19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwg W2Rpc2FibGUtc2hhcmVkXSkKLStdKQotKwotK0FVX0RFRlVOKFtBTV9FTkFCTEVfU0hBUkVEXSwg W0FDX0VOQUJMRV9TSEFSRUQoJEApXSkKLStBVV9ERUZVTihbQU1fRElTQUJMRV9TSEFSRURdLCBb QUNfRElTQUJMRV9TSEFSRUQoJEApXSkKLSsKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNv bXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtBTV9FTkFCTEVfU0hBUkVEXSwgW10pCi0rZG5s IEFDX0RFRlVOKFtBTV9ESVNBQkxFX1NIQVJFRF0sIFtdKQotKwotKwotKwotKyMgX0xUX0VOQUJM RV9TVEFUSUMoW0RFRkFVTFRdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMg aW1wbGVtZW50IHRoZSAtLWVuYWJsZS1zdGF0aWMgZmxhZywgYW5kIHN1cHBvcnQgdGhlIGBzdGF0 aWMnIGFuZAotKyMgYGRpc2FibGUtc3RhdGljJyBMVF9JTklUIG9wdGlvbnMuCi0rIyBERUZBVUxU IGlzIGVpdGhlciBgeWVzJyBvciBgbm8nLiAgSWYgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gYHll cycuCi0rbTRfZGVmaW5lKFtfTFRfRU5BQkxFX1NUQVRJQ10sCi0rW200X2RlZmluZShbX0xUX0VO QUJMRV9TVEFUSUNfREVGQVVMVF0sIFttNF9pZigkMSwgbm8sIG5vLCB5ZXMpXSlkbmwKLStBQ19B UkdfRU5BQkxFKFtzdGF0aWNdLAotKyAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXN0YXRp Y0A8OkA9UEtHU0A6PkBdLAotKwlbYnVpbGQgc3RhdGljIGxpYnJhcmllcyBAPDpAZGVmYXVsdD1d X0xUX0VOQUJMRV9TVEFUSUNfREVGQVVMVFtAOj5AXSldLAotKyAgICBbcD0ke1BBQ0tBR0UtZGVm YXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxlX3N0YXRpYz15 ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9zdGF0aWM9bm8gOzsKLSsgICAgKikKLSsgICAgIGVuYWJs ZV9zdGF0aWM9bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVz ZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0rICAgICAgbHRfc2F2ZV9pZnM9IiRJ RlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0rICAgICAgZm9yIHBrZyBpbiAkZW5h YmxldmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRwa2ciID0gIlgk cCI7IHRoZW4KLSsJICBlbmFibGVfc3RhdGljPXllcwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAg ICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAgICBlc2FjXSwKLSsgICAgW2VuYWJs ZV9zdGF0aWM9XV9MVF9FTkFCTEVfU1RBVElDX0RFRkFVTFQpCi0rCi0rICAgIF9MVF9ERUNMKFti dWlsZF9vbGRfbGlic10sIFtlbmFibGVfc3RhdGljXSwgWzBdLAotKwlbV2hldGhlciBvciBub3Qg dG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCi0rXSkjIF9MVF9FTkFCTEVfU1RBVElDCi0rCi0r TFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtzdGF0aWNdLCBbX0xUX0VOQUJMRV9TVEFUSUMo W3llc10pXSkKLStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW2Rpc2FibGUtc3RhdGljXSwg W19MVF9FTkFCTEVfU1RBVElDKFtub10pXSkKLSsKLSsjIE9sZCBuYW1lczoKLStBQ19ERUZVTihb QUNfRU5BQkxFX1NUQVRJQ10sCi0rW19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwgbTRfaWYoWyQx XSwgW25vXSwgW2Rpc2FibGUtXSlbc3RhdGljXSkKLStdKQotKwotK0FDX0RFRlVOKFtBQ19ESVNB QkxFX1NUQVRJQ10sCi0rW19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwgW2Rpc2FibGUtc3RhdGlj XSkKLStdKQotKwotK0FVX0RFRlVOKFtBTV9FTkFCTEVfU1RBVElDXSwgW0FDX0VOQUJMRV9TVEFU SUMoJEApXSkKLStBVV9ERUZVTihbQU1fRElTQUJMRV9TVEFUSUNdLCBbQUNfRElTQUJMRV9TVEFU SUMoJEApXSkKLSsKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0r ZG5sIEFDX0RFRlVOKFtBTV9FTkFCTEVfU1RBVElDXSwgW10pCi0rZG5sIEFDX0RFRlVOKFtBTV9E SVNBQkxFX1NUQVRJQ10sIFtdKQotKwotKwotKwotKyMgX0xUX0VOQUJMRV9GQVNUX0lOU1RBTEwo W0RFRkFVTFRdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgaW1w bGVtZW50IHRoZSAtLWVuYWJsZS1mYXN0LWluc3RhbGwgZmxhZywgYW5kIHN1cHBvcnQgdGhlIGBm YXN0LWluc3RhbGwnCi0rIyBhbmQgYGRpc2FibGUtZmFzdC1pbnN0YWxsJyBMVF9JTklUIG9wdGlv bnMuCi0rIyBERUZBVUxUIGlzIGVpdGhlciBgeWVzJyBvciBgbm8nLiAgSWYgb21pdHRlZCwgaXQg ZGVmYXVsdHMgdG8gYHllcycuCi0rbTRfZGVmaW5lKFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTF0s Ci0rW200X2RlZmluZShbX0xUX0VOQUJMRV9GQVNUX0lOU1RBTExfREVGQVVMVF0sIFttNF9pZigk MSwgbm8sIG5vLCB5ZXMpXSlkbmwKLStBQ19BUkdfRU5BQkxFKFtmYXN0LWluc3RhbGxdLAotKyAg ICBbQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWZhc3QtaW5zdGFsbEA8OkA9UEtHU0A6PkBdLAot KyAgICBbb3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uIEA8OkBkZWZhdWx0PV1fTFRfRU5B QkxFX0ZBU1RfSU5TVEFMTF9ERUZBVUxUW0A6PkBdKV0sCi0rICAgIFtwPSR7UEFDS0FHRS1kZWZh dWx0fQotKyAgICBjYXNlICRlbmFibGV2YWwgaW4KLSsgICAgeWVzKSBlbmFibGVfZmFzdF9pbnN0 YWxsPXllcyA7OwotKyAgICBubykgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubyA7OwotKyAgICAqKQot KyAgICAgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFyZ3Vt ZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0rICAg ICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0rICAg ICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYg dGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KLSsJICBlbmFibGVfZmFzdF9pbnN0YWxsPXllcwot KwlmaQotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7Owot KyAgICBlc2FjXSwKLSsgICAgW2VuYWJsZV9mYXN0X2luc3RhbGw9XV9MVF9FTkFCTEVfRkFTVF9J TlNUQUxMX0RFRkFVTFQpCi0rCi0rX0xUX0RFQ0woW2Zhc3RfaW5zdGFsbF0sIFtlbmFibGVfZmFz dF9pbnN0YWxsXSwgWzBdLAotKwkgW1doZXRoZXIgb3Igbm90IHRvIG9wdGltaXplIGZvciBmYXN0 IGluc3RhbGxhdGlvbl0pZG5sCi0rXSkjIF9MVF9FTkFCTEVfRkFTVF9JTlNUQUxMCi0rCi0rTFRf T1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtmYXN0LWluc3RhbGxdLCBbX0xUX0VOQUJMRV9GQVNU X0lOU1RBTEwoW3llc10pXSkKLStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW2Rpc2FibGUt ZmFzdC1pbnN0YWxsXSwgW19MVF9FTkFCTEVfRkFTVF9JTlNUQUxMKFtub10pXSkKLSsKLSsjIE9s ZCBuYW1lczoKLStBVV9ERUZVTihbQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTF0sCi0rW19MVF9TRVRf T1BUSU9OKFtMVF9JTklUXSwgbTRfaWYoWyQxXSwgW25vXSwgW2Rpc2FibGUtXSlbZmFzdC1pbnN0 YWxsXSkKLStBQ19ESUFHTk9TRShbb2Jzb2xldGVdLAotK1skMDogUmVtb3ZlIHRoaXMgd2Fybmlu ZyBhbmQgdGhlIGNhbGwgdG8gX0xUX1NFVF9PUFRJT04gd2hlbiB5b3UgcHV0Ci0rdGhlIGBmYXN0 LWluc3RhbGwnIG9wdGlvbiBpbnRvIExUX0lOSVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkKLStdKQot KwotK0FVX0RFRlVOKFtBQ19ESVNBQkxFX0ZBU1RfSU5TVEFMTF0sCi0rW19MVF9TRVRfT1BUSU9O KFtMVF9JTklUXSwgW2Rpc2FibGUtZmFzdC1pbnN0YWxsXSkKLStBQ19ESUFHTk9TRShbb2Jzb2xl dGVdLAotK1skMDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xUX1NFVF9P UFRJT04gd2hlbiB5b3UgcHV0Ci0rdGhlIGBkaXNhYmxlLWZhc3QtaW5zdGFsbCcgb3B0aW9uIGlu dG8gTFRfSU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQotK10pCi0rCi0rZG5sIGFjbG9jYWwtMS40 IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBBQ19ERUZVTihbQUNfRU5BQkxFX0ZBU1Rf SU5TVEFMTF0sIFtdKQotK2RubCBBQ19ERUZVTihbQU1fRElTQUJMRV9GQVNUX0lOU1RBTExdLCBb XSkKLSsKLSsKLSsjIF9MVF9XSVRIX1BJQyhbTU9ERV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0t LQotKyMgaW1wbGVtZW50IHRoZSAtLXdpdGgtcGljIGZsYWcsIGFuZCBzdXBwb3J0IHRoZSBgcGlj LW9ubHknIGFuZCBgbm8tcGljJwotKyMgTFRfSU5JVCBvcHRpb25zLgotKyMgTU9ERSBpcyBlaXRo ZXIgYHllcycgb3IgYG5vJy4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIGBib3RoJy4KLStt NF9kZWZpbmUoW19MVF9XSVRIX1BJQ10sCi0rW0FDX0FSR19XSVRIKFtwaWNdLAotKyAgICBbQVNf SEVMUF9TVFJJTkcoWy0td2l0aC1waWNdLAotKwlbdHJ5IHRvIHVzZSBvbmx5IFBJQy9ub24tUElD IG9iamVjdHMgQDw6QGRlZmF1bHQ9dXNlIGJvdGhAOj5AXSldLAotKyAgICBbcGljX21vZGU9IiR3 aXRodmFsIl0sCi0rICAgIFtwaWNfbW9kZT1kZWZhdWx0XSkKLSsKLSt0ZXN0IC16ICIkcGljX21v ZGUiICYmIHBpY19tb2RlPW00X2RlZmF1bHQoWyQxXSwgW2RlZmF1bHRdKQotKwotK19MVF9ERUNM KFtdLCBbcGljX21vZGVdLCBbMF0sIFtXaGF0IHR5cGUgb2Ygb2JqZWN0cyB0byBidWlsZF0pZG5s Ci0rXSkjIF9MVF9XSVRIX1BJQwotKwotK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbcGlj LW9ubHldLCBbX0xUX1dJVEhfUElDKFt5ZXNdKV0pCi0rTFRfT1BUSU9OX0RFRklORShbTFRfSU5J VF0sIFtuby1waWNdLCBbX0xUX1dJVEhfUElDKFtub10pXSkKLSsKLSsjIE9sZCBuYW1lOgotK0FV X0RFRlVOKFtBQ19MSUJUT09MX1BJQ01PREVdLAotK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0s IFtwaWMtb25seV0pCi0rQUNfRElBR05PU0UoW29ic29sZXRlXSwKLStbJDA6IFJlbW92ZSB0aGlz IHdhcm5pbmcgYW5kIHRoZSBjYWxsIHRvIF9MVF9TRVRfT1BUSU9OIHdoZW4geW91Ci0rcHV0IHRo ZSBgcGljLW9ubHknIG9wdGlvbiBpbnRvIExUX0lOSVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkKLStd KQotKwotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNf REVGVU4oW0FDX0xJQlRPT0xfUElDTU9ERV0sIFtdKQotKwotKyMjIC0tLS0tLS0tLS0tLS0tLS0t ICMjCi0rIyMgTFRETF9JTklUIE9wdGlvbnMgIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwot KwotK200X2RlZmluZShbX0xURExfTU9ERV0sIFtdKQotK0xUX09QVElPTl9ERUZJTkUoW0xURExf SU5JVF0sIFtub25yZWN1cnNpdmVdLAotKwkJIFttNF9kZWZpbmUoW19MVERMX01PREVdLCBbbm9u cmVjdXJzaXZlXSldKQotK0xUX09QVElPTl9ERUZJTkUoW0xURExfSU5JVF0sIFtyZWN1cnNpdmVd LAotKwkJIFttNF9kZWZpbmUoW19MVERMX01PREVdLCBbcmVjdXJzaXZlXSldKQotK0xUX09QVElP Tl9ERUZJTkUoW0xURExfSU5JVF0sIFtzdWJwcm9qZWN0XSwKLSsJCSBbbTRfZGVmaW5lKFtfTFRE TF9NT0RFXSwgW3N1YnByb2plY3RdKV0pCi0rCi0rbTRfZGVmaW5lKFtfTFRETF9UWVBFXSwgW10p Ci0rTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW2luc3RhbGxhYmxlXSwKLSsJCSBbbTRf ZGVmaW5lKFtfTFRETF9UWVBFXSwgW2luc3RhbGxhYmxlXSldKQotK0xUX09QVElPTl9ERUZJTkUo W0xURExfSU5JVF0sIFtjb252ZW5pZW5jZV0sCi0rCQkgW200X2RlZmluZShbX0xURExfVFlQRV0s IFtjb252ZW5pZW5jZV0pXSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHRz dWdhci5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0c3VnYXIubTQKLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9jb25maWcvbHRzdWdhci5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHRzdWdhci5tNAkyMDEwLTAx LTIzIDE0OjQ0OjQ0LjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSwxMjMgQEAKLSsjIGx0c3Vn YXIubTQgLS0gbGlidG9vbCBtNCBiYXNlIGxheWVyLiAgICAgICAgICAgICAgICAgICAgICAgICAt Ki1BdXRvY29uZi0qLQotKyMKLSsjIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNywgMjAw OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFdyaXR0ZW4gYnkgR2FyeSBWLiBW YXVnaGFuLCAyMDA0Ci0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKLSsjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv cHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsIHdpdGggb3Igd2l0aG91dAotKyMgbW9kaWZpY2F0aW9u cywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgNiBs dHN1Z2FyLm00Ci0rCi0rIyBUaGlzIGlzIHRvIGhlbHAgYWNsb2NhbCBmaW5kIHRoZXNlIG1hY3Jv cywgYXMgaXQgY2FuJ3Qgc2VlIG00X2RlZmluZS4KLStBQ19ERUZVTihbTFRTVUdBUl9WRVJTSU9O XSwgW200X2lmKFswLjFdKV0pCi0rCi0rCi0rIyBsdF9qb2luKFNFUCwgQVJHMSwgW0FSRzIuLi5d KQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFByb2R1Y2UgQVJHMVNFUEFS RzIuLi5TRVBBUkduLCBvbWl0dGluZyBbXSBhcmd1bWVudHMgYW5kIHRoZWlyCi0rIyBhc3NvY2lh dGVkIHNlcGFyYXRvci4KLSsjIE5lZWRlZCB1bnRpbCB3ZSBjYW4gcmVseSBvbiBtNF9qb2luIGZy b20gQXV0b2NvbmYgMi42Miwgc2luY2UgYWxsIGVhcmxpZXIKLSsjIHZlcnNpb25zIGluIG00c3Vn YXIgaGFkIGJ1Z3MuCi0rbTRfZGVmaW5lKFtsdF9qb2luXSwKLStbbTRfaWYoWyQjXSwgWzFdLCBb XSwKLSsgICAgICAgWyQjXSwgWzJdLCBbWyQyXV0sCi0rICAgICAgIFttNF9pZihbJDJdLCBbXSwg W10sIFtbJDJdX10pJDAoWyQxXSwgbTRfc2hpZnQobTRfc2hpZnQoJEApKSldKV0pCi0rbTRfZGVm aW5lKFtfbHRfam9pbl0sCi0rW200X2lmKFskIyQyXSwgWzJdLCBbXSwKLSsgICAgICAgW200X2lm KFskMl0sIFtdLCBbXSwgW1skMSQyXV0pJDAoWyQxXSwgbTRfc2hpZnQobTRfc2hpZnQoJEApKSld KV0pCi0rCi0rCi0rIyBsdF9jYXIoTElTVCkKLSsjIGx0X2NkcihMSVNUKQotKyMgLS0tLS0tLS0t LS0tCi0rIyBNYW5pcHVsYXRlIG00IGxpc3RzLgotKyMgVGhlc2UgbWFjcm9zIGFyZSBuZWNlc3Nh cnkgYXMgbG9uZyBhcyB3aWxsIHN0aWxsIG5lZWQgdG8gc3VwcG9ydAotKyMgQXV0b2NvbmYtMi41 OSB3aGljaCBxdW90ZXMgZGlmZmVyZW50bHkuCi0rbTRfZGVmaW5lKFtsdF9jYXJdLCBbWyQxXV0p Ci0rbTRfZGVmaW5lKFtsdF9jZHJdLAotK1ttNF9pZihbJCNdLCAwLCBbbTRfZmF0YWwoWyQwOiBj YW5ub3QgYmUgY2FsbGVkIHdpdGhvdXQgYXJndW1lbnRzXSldLAotKyAgICAgICBbJCNdLCAxLCBb XSwKLSsgICAgICAgW200X2RxdW90ZShtNF9zaGlmdCgkQCkpXSldKQotK200X2RlZmluZShbbHRf dW5xdW90ZV0sICQxKQotKwotKwotKyMgbHRfYXBwZW5kKE1BQ1JPLU5BTUUsIFNUUklORywgW1NF UEFSQVRPUl0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSsjIFJlZGVmaW5lIE1BQ1JPLU5BTUUgdG8gaG9sZCBpdHMgZm9ybWVyIGNvbnRlbnQgcGx1cyBg U0VQQVJBVE9SJ2BTVFJJTkcnLgotKyMgTm90ZSB0aGF0IG5laXRoZXIgU0VQQVJBVE9SIG5vciBT VFJJTkcgYXJlIGV4cGFuZGVkOyB0aGV5IGFyZSBhcHBlbmRlZAotKyMgdG8gTUFDUk8tTkFNRSBh cyBpcyAobGVhdmluZyB0aGUgZXhwYW5zaW9uIGZvciB3aGVuIE1BQ1JPLU5BTUUgaXMgaW52b2tl ZCkuCi0rIyBObyBTRVBBUkFUT1IgaXMgb3V0cHV0IGlmIE1BQ1JPLU5BTUUgd2FzIHByZXZpb3Vz bHkgdW5kZWZpbmVkIChkaWZmZXJlbnQKLSsjIHRoYW4gZGVmaW5lZCBhbmQgZW1wdHkpLgotKyMK LSsjIFRoaXMgbWFjcm8gaXMgbmVlZGVkIHVudGlsIHdlIGNhbiByZWx5IG9uIEF1dG9jb25mIDIu NjIsIHNpbmNlIGVhcmxpZXIKLSsjIHZlcnNpb25zIG9mIG00c3VnYXIgbWlzdGFrZW5seSBleHBh bmRlZCBTRVBBUkFUT1IgYnV0IG5vdCBTVFJJTkcuCi0rbTRfZGVmaW5lKFtsdF9hcHBlbmRdLAot K1ttNF9kZWZpbmUoWyQxXSwKLSsJICAgbTRfaWZkZWYoWyQxXSwgW200X2RlZm4oWyQxXSlbJDNd XSlbJDJdKV0pCi0rCi0rCi0rCi0rIyBsdF9jb21iaW5lKFNFUCwgUFJFRklYLUxJU1QsIElORklY LCBTVUZGSVgxLCBbU1VGRklYMi4uLl0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBQcm9kdWNlIGEgU0VQIGRlbGltaXRl ZCBsaXN0IG9mIGFsbCBwYWlyZWQgY29tYmluYXRpb25zIG9mIGVsZW1lbnRzIG9mCi0rIyBQUkVG SVgtTElTVCB3aXRoIFNVRkZJWDEgdGhyb3VnaCBTVUZGSVhuLiAgRWFjaCBlbGVtZW50IG9mIHRo ZSBsaXN0Ci0rIyBoYXMgdGhlIGZvcm0gUFJFRklYbUlORklYU1VGRklYbi4KLSsjIE5lZWRlZCB1 bnRpbCB3ZSBjYW4gcmVseSBvbiBtNF9jb21iaW5lIGFkZGVkIGluIEF1dG9jb25mIDIuNjIuCi0r bTRfZGVmaW5lKFtsdF9jb21iaW5lXSwKLStbbTRfaWYobTRfZXZhbChbJCMgPiAzXSksIFsxXSwK LSsgICAgICAgW200X3B1c2hkZWYoW19MdF9zZXBdLCBbbTRfZGVmaW5lKFtfTHRfc2VwXSwgbTRf ZGVmbihbbHRfY2FyXSkpXSldXWRubAotK1tbbTRfZm9yZWFjaChbX0x0X3ByZWZpeF0sIFskMl0s Ci0rCSAgICAgW200X2ZvcmVhY2goW19MdF9zdWZmaXhdLAotKwkJXW00X2RxdW90ZShtNF9kcXVv dGUobTRfc2hpZnQobTRfc2hpZnQobTRfc2hpZnQoJEApKSkpKVssCi0rCVtfTHRfc2VwKFskMV0p W11tNF9kZWZuKFtfTHRfcHJlZml4XSlbJDNdbTRfZGVmbihbX0x0X3N1ZmZpeF0pXSldKV0pXSkK LSsKLSsKLSsjIGx0X2lmX2FwcGVuZF91bmlxKE1BQ1JPLU5BTUUsIFZBUk5BTUUsIFtTRVBBUkFU T1JdLCBbVU5JUV0sIFtOT1QtVU5JUV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgSWZmIE1BQ1JP LU5BTUUgZG9lcyBub3QgeWV0IGNvbnRhaW4gVkFSTkFNRSwgdGhlbiBhcHBlbmQgaXQgKGRlbGlt aXRlZAotKyMgYnkgU0VQQVJBVE9SIGlmIHN1cHBsaWVkKSBhbmQgZXhwYW5kIFVOSVEsIGVsc2Ug Tk9ULVVOSVEuCi0rbTRfZGVmaW5lKFtsdF9pZl9hcHBlbmRfdW5pcV0sCi0rW200X2lmZGVmKFsk MV0sCi0rCSAgW200X2lmKG00X2luZGV4KFskM11tNF9kZWZuKFskMV0pWyQzXSwgWyQzJDIkM10p LCBbLTFdLAotKwkJIFtsdF9hcHBlbmQoWyQxXSwgWyQyXSwgWyQzXSkkNF0sCi0rCQkgWyQ1XSld LAotKwkgIFtsdF9hcHBlbmQoWyQxXSwgWyQyXSwgWyQzXSkkNF0pXSkKLSsKLSsKLSsjIGx0X2Rp Y3RfYWRkKERJQ1QsIEtFWSwgVkFMVUUpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotK200X2RlZmluZShbbHRfZGljdF9hZGRdLAotK1ttNF9kZWZpbmUoWyQxKCQyKV0sIFskM10p XSkKLSsKLSsKLSsjIGx0X2RpY3RfYWRkX3N1YmtleShESUNULCBLRVksIFNVQktFWSwgVkFMVUUp Ci0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2Rl ZmluZShbbHRfZGljdF9hZGRfc3Via2V5XSwKLStbbTRfZGVmaW5lKFskMSgkMjokMyldLCBbJDRd KV0pCi0rCi0rCi0rIyBsdF9kaWN0X2ZldGNoKERJQ1QsIEtFWSwgW1NVQktFWV0pCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtsdF9kaWN0X2ZldGNo XSwKLStbbTRfaWZ2YWwoWyQzXSwKLSsJbTRfaWZkZWYoWyQxKCQyOiQzKV0sIFttNF9kZWZuKFsk MSgkMjokMyldKV0pLAotKyAgICBtNF9pZmRlZihbJDEoJDIpXSwgW200X2RlZm4oWyQxKCQyKV0p XSkpXSkKLSsKLSsKLSsjIGx0X2lmX2RpY3RfZmV0Y2goRElDVCwgS0VZLCBbU1VCS0VZXSwgVkFM VUUsIElGLVRSVUUsIFtJRi1GQUxTRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbbHRfaWZf ZGljdF9mZXRjaF0sCi0rW200X2lmKGx0X2RpY3RfZmV0Y2goWyQxXSwgWyQyXSwgWyQzXSksIFsk NF0sCi0rCVskNV0sCi0rICAgIFskNl0pXSkKLSsKLSsKLSsjIGx0X2RpY3RfZmlsdGVyKERJQ1Qs IFtTVUJLRVldLCBWQUxVRSwgW1NFUEFSQVRPUl0sIEtFWSwgWy4uLl0pCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200 X2RlZmluZShbbHRfZGljdF9maWx0ZXJdLAotK1ttNF9pZihbJDVdLCBbXSwgW10sCi0rICBbbHRf am9pbihtNF9xdW90ZShtNF9kZWZhdWx0KFskNF0sIFtbLCBdXSkpLAotKyAgICAgICAgICAgbHRf dW5xdW90ZShtNF9zcGxpdChtNF9ub3JtYWxpemUobTRfZm9yZWFjaChfTHRfa2V5LCBsdF9jYXIo W200X3NoaWZ0big0LCAkQCldKSwKLSsJCSAgICAgIFtsdF9pZl9kaWN0X2ZldGNoKFskMV0sIF9M dF9rZXksIFskMl0sIFskM10sIFtfTHRfa2V5IF0pXSkpKSkpXSlbXWRubAotK10pCi1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0dmVyc2lvbi5tNCBzb2NpLTMuMC4wX3RyZXAz MDAvY29uZmlnL2x0dmVyc2lvbi5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdHZl cnNpb24ubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvY29uZmlnL2x0dmVyc2lvbi5tNAkyMDEwLTAxLTIzIDE0OjQ0OjQ0LjAwMDAw MDAwMCArMDEwMAotQEAgLTAsMCArMSwyMyBAQAotKyMgbHR2ZXJzaW9uLm00IC0tIHZlcnNpb24g bnVtYmVycwkJCS0qLSBBdXRvY29uZiAtKi0KLSsjCi0rIyAgIENvcHlyaWdodCAoQykgMjAwNCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjICAgV3JpdHRlbiBieSBTY290dCBKYW1l cyBSZW1uYW50LCAyMDA0Ci0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKLSsjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRv IGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsIHdpdGggb3Igd2l0aG91dAotKyMgbW9kaWZpY2F0 aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBHZW5lcmF0 ZWQgZnJvbSBsdHZlcnNpb24uaW4uCi0rCi0rIyBzZXJpYWwgMzAxNyBsdHZlcnNpb24ubTQKLSsj IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBMaWJ0b29sCi0rCi0rbTRfZGVmaW5lKFtMVF9QQUNL QUdFX1ZFUlNJT05dLCBbMi4yLjZiXSkKLSttNF9kZWZpbmUoW0xUX1BBQ0tBR0VfUkVWSVNJT05d LCBbMS4zMDE3XSkKLSsKLStBQ19ERUZVTihbTFRWRVJTSU9OX1ZFUlNJT05dLAotK1ttYWNyb192 ZXJzaW9uPScyLjIuNmInCi0rbWFjcm9fcmV2aXNpb249JzEuMzAxNycKLStfTFRfREVDTCgsIG1h Y3JvX3ZlcnNpb24sIDAsIFtXaGljaCByZWxlYXNlIG9mIGxpYnRvb2wubTQgd2FzIHVzZWQ/XSkK LStfTFRfREVDTCgsIG1hY3JvX3JldmlzaW9uLCAwKQotK10pCi1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svY29uZmlnL21pc3Npbmcgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9taXNzaW5n Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL21pc3NpbmcJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL21pc3NpbmcJ MjAxMC0wMS0yMyAxNDo0NDo1MC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMzc2IEBACi0r IyEgL2Jpbi9zaAotKyMgQ29tbW9uIHN0dWIgZm9yIGEgZmV3IG1pc3NpbmcgR05VIHByb2dyYW1z IHdoaWxlIGluc3RhbGxpbmcuCi0rCi0rc2NyaXB0dmVyc2lvbj0yMDA5LTA0LTI4LjIxOyAjIFVU QwotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk5LCAyMDAwLCAyMDAyLCAyMDAz LCAyMDA0LCAyMDA1LCAyMDA2LAotKyMgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KLSsjIE9yaWdpbmFsbHkgYnkgRnJhbixjb2lzIFBpbmFyZCA8cGluYXJkQGlyby51 bW9udHJlYWwuY2E+LCAxOTk2LgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0r IyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQg eW91ciBvcHRpb24pCi0rIyBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCi0rCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rIyBBcyBhIHNwZWNpYWwg ZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91Ci0rIyBk aXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEK LSsjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBp bmNsdWRlIGl0IHVuZGVyCi0rIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3Ug dXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0rCi0raWYgdGVzdCAkIyAtZXEgMDsg dGhlbgotKyAgZWNobyAxPiYyICJUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9u IgotKyAgZXhpdCAxCi0rZmkKLSsKLStydW49OgotK3NlZF9vdXRwdXQ9J3MvLiogLS1vdXRwdXRb ID1dXChbXiBdKlwpLiovXDEvcCcKLStzZWRfbWludXNvPSdzLy4qIC1vIFwoW14gXSpcKS4qL1wx L3AnCi0rCi0rIyBJbiB0aGUgY2FzZXMgd2hlcmUgdGhpcyBtYXR0ZXJzLCBgbWlzc2luZycgaXMg YmVpbmcgcnVuIGluIHRoZQotKyMgc3JjZGlyIGFscmVhZHkuCi0raWYgdGVzdCAtZiBjb25maWd1 cmUuYWM7IHRoZW4KLSsgIGNvbmZpZ3VyZV9hYz1jb25maWd1cmUuYWMKLStlbHNlCi0rICBjb25m aWd1cmVfYWM9Y29uZmlndXJlLmluCi0rZmkKLSsKLSttc2c9Im1pc3Npbmcgb24geW91ciBzeXN0 ZW0iCi0rCi0rY2FzZSAkMSBpbgotKy0tcnVuKQotKyAgIyBUcnkgdG8gcnVuIHJlcXVlc3RlZCBw cm9ncmFtLCBhbmQganVzdCBleGl0IGlmIGl0IHN1Y2NlZWRzLgotKyAgcnVuPQotKyAgc2hpZnQK LSsgICIkQCIgJiYgZXhpdCAwCi0rICAjIEV4aXQgY29kZSA2MyBtZWFucyB2ZXJzaW9uIG1pc21h dGNoLiAgVGhpcyBvZnRlbiBoYXBwZW5zCi0rICAjIHdoZW4gdGhlIHVzZXIgdHJ5IHRvIHVzZSBh biBhbmNpZW50IHZlcnNpb24gb2YgYSB0b29sIG9uCi0rICAjIGEgZmlsZSB0aGF0IHJlcXVpcmVz IGEgbWluaW11bSB2ZXJzaW9uLiAgSW4gdGhpcyBjYXNlIHdlCi0rICAjIHdlIHNob3VsZCBwcm9j ZWVkIGhhcyBpZiB0aGUgcHJvZ3JhbSBoYWQgYmVlbiBhYnNlbnQsIG9yCi0rICAjIGlmIC0tcnVu IGhhZG4ndCBiZWVuIHBhc3NlZC4KLSsgIGlmIHRlc3QgJD8gPSA2MzsgdGhlbgotKyAgICBydW49 OgotKyAgICBtc2c9InByb2JhYmx5IHRvbyBvbGQiCi0rICBmaQotKyAgOzsKLSsKLSsgIC1ofC0t aHwtLWhlfC0taGVsfC0taGVscCkKLSsgICAgZWNobyAiXAotKyQwIFtPUFRJT05dLi4uIFBST0dS QU0gW0FSR1VNRU5UXS4uLgotKwotK0hhbmRsZSBcYFBST0dSQU0gW0FSR1VNRU5UXS4uLicgZm9y IHdoZW4gUFJPR1JBTSBpcyBtaXNzaW5nLCBvciByZXR1cm4gYW4KLStlcnJvciBzdGF0dXMgaWYg dGhlcmUgaXMgbm8ga25vd24gaGFuZGxpbmcgZm9yIFBST0dSQU0uCi0rCi0rT3B0aW9uczoKLSsg IC1oLCAtLWhlbHAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAotKyAgLXYsIC0tdmVy c2lvbiAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0Ci0rICAtLXJ1biAgICAg ICAgICAgdHJ5IHRvIHJ1biB0aGUgZ2l2ZW4gY29tbWFuZCwgYW5kIGVtdWxhdGUgaXQgaWYgaXQg ZmFpbHMKLSsKLStTdXBwb3J0ZWQgUFJPR1JBTSB2YWx1ZXM6Ci0rICBhY2xvY2FsICAgICAgdG91 Y2ggZmlsZSBcYGFjbG9jYWwubTQnCi0rICBhdXRvY29uZiAgICAgdG91Y2ggZmlsZSBcYGNvbmZp Z3VyZScKLSsgIGF1dG9oZWFkZXIgICB0b3VjaCBmaWxlIFxgY29uZmlnLmguaW4nCi0rICBhdXRv bTR0ZSAgICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlLCBvciBjcmVhdGUgYSBzdHViIG9uZQotKyAg YXV0b21ha2UgICAgIHRvdWNoIGFsbCBcYE1ha2VmaWxlLmluJyBmaWxlcwotKyAgYmlzb24gICAg ICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2No XQotKyAgZmxleCAgICAgICAgIGNyZWF0ZSBcYGxleC55eS5jJywgaWYgcG9zc2libGUsIGZyb20g ZXhpc3RpbmcgLmMKLSsgIGhlbHAybWFuICAgICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUKLSsgIGxl eCAgICAgICAgICBjcmVhdGUgXGBsZXgueXkuYycsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5n IC5jCi0rICBtYWtlaW5mbyAgICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlCi0rICB0YXIgICAgICAg ICAgdHJ5IHRhciwgZ251dGFyLCBndGFyLCB0aGVuIHRhciB3aXRob3V0IG5vbi1wb3J0YWJsZSBm bGFncwotKyAgeWFjYyAgICAgICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwg ZnJvbSBleGlzdGluZyAuW2NoXQotKwotK1ZlcnNpb24gc3VmZml4ZXMgdG8gUFJPR1JBTSBhcyB3 ZWxsIGFzIHRoZSBwcmVmaXhlcyBcYGdudS0nLCBcYGdudScsIGFuZAotK1xgZycgYXJlIGlnbm9y ZWQgd2hlbiBjaGVja2luZyB0aGUgbmFtZS4KLSsKLStTZW5kIGJ1ZyByZXBvcnRzIHRvIDxidWct YXV0b21ha2VAZ251Lm9yZz4uIgotKyAgICBleGl0ICQ/Ci0rICAgIDs7Ci0rCi0rICAtdnwtLXZ8 LS12ZXwtLXZlcnwtLXZlcnN8LS12ZXJzaXwtLXZlcnNpb3wtLXZlcnNpb24pCi0rICAgIGVjaG8g Im1pc3NpbmcgJHNjcmlwdHZlcnNpb24gKEdOVSBBdXRvbWFrZSkiCi0rICAgIGV4aXQgJD8KLSsg ICAgOzsKLSsKLSsgIC0qKQotKyAgICBlY2hvIDE+JjIgIiQwOiBVbmtub3duIFxgJDEnIG9wdGlv biIKLSsgICAgZWNobyAxPiYyICJUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9u IgotKyAgICBleGl0IDEKLSsgICAgOzsKLSsKLStlc2FjCi0rCi0rIyBub3JtYWxpemUgcHJvZ3Jh bSBuYW1lIHRvIGNoZWNrIGZvci4KLStwcm9ncmFtPWBlY2hvICIkMSIgfCBzZWQgJwotKyAgcy9e Z251LS8vOyB0Ci0rICBzL15nbnUvLzsgdAotKyAgcy9eZy8vOyB0J2AKLSsKLSsjIE5vdyBleGl0 IGlmIHdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuICBBbHNvIGV4aXQgbm93IGlmIHdlCi0rIyBk b24ndCBoYXZlIGl0IGFuZCAtLXZlcnNpb24gd2FzIHBhc3NlZCAobW9zdCBsaWtlbHkgdG8gZGV0 ZWN0Ci0rIyB0aGUgcHJvZ3JhbSkuICBUaGlzIGlzIGFib3V0IG5vbi1HTlUgcHJvZ3JhbXMsIHNv IHVzZSAkMSBub3QKLSsjICRwcm9ncmFtLgotK2Nhc2UgJDEgaW4KLSsgIGxleCp8eWFjYyopCi0r ICAgICMgTm90IEdOVSBwcm9ncmFtcywgdGhleSBkb24ndCBoYXZlIC0tdmVyc2lvbi4KLSsgICAg OzsKLSsKLSsgIHRhciopCi0rICAgIGlmIHRlc3QgLW4gIiRydW4iOyB0aGVuCi0rICAgICAgIGVj aG8gMT4mMiAiRVJST1I6IFxgdGFyJyByZXF1aXJlcyAtLXJ1biIKLSsgICAgICAgZXhpdCAxCi0r ICAgIGVsaWYgdGVzdCAieCQyIiA9ICJ4LS12ZXJzaW9uIiB8fCB0ZXN0ICJ4JDIiID0gIngtLWhl bHAiOyB0aGVuCi0rICAgICAgIGV4aXQgMQotKyAgICBmaQotKyAgICA7OwotKwotKyAgKikKLSsg ICAgaWYgdGVzdCAteiAiJHJ1biIgJiYgKCQxIC0tdmVyc2lvbikgPiAvZGV2L251bGwgMj4mMTsg dGhlbgotKyAgICAgICAjIFdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuCi0rICAgICAgIGV4aXQg MQotKyAgICBlbGlmIHRlc3QgIngkMiIgPSAieC0tdmVyc2lvbiIgfHwgdGVzdCAieCQyIiA9ICJ4 LS1oZWxwIjsgdGhlbgotKyAgICAgICAjIENvdWxkIG5vdCBydW4gLS12ZXJzaW9uIG9yIC0taGVs cC4gIFRoaXMgaXMgcHJvYmFibHkgc29tZW9uZQotKyAgICAgICAjIHJ1bm5pbmcgYCRUT09MIC0t dmVyc2lvbicgb3IgYCRUT09MIC0taGVscCcgdG8gY2hlY2sgd2hldGhlcgotKyAgICAgICAjICRU T09MIGV4aXN0cyBhbmQgbm90IGtub3dpbmcgJFRPT0wgdXNlcyBtaXNzaW5nLgotKyAgICAgICBl eGl0IDEKLSsgICAgZmkKLSsgICAgOzsKLStlc2FjCi0rCi0rIyBJZiBpdCBkb2VzIG5vdCBleGlz dCwgb3IgZmFpbHMgdG8gcnVuIChwb3NzaWJseSBhbiBvdXRkYXRlZCB2ZXJzaW9uKSwKLSsjIHRy eSB0byBlbXVsYXRlIGl0LgotK2Nhc2UgJHByb2dyYW0gaW4KLSsgIGFjbG9jYWwqKQotKyAgICBl Y2hvIDE+JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5l ZWQgaXQgaWYKLSsgICAgICAgICB5b3UgbW9kaWZpZWQgXGBhY2luY2x1ZGUubTQnIG9yIFxgJHtj b25maWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3YW50Ci0rICAgICAgICAgdG8gaW5zdGFsbCB0aGUg XGBBdXRvbWFrZScgYW5kIFxgUGVybCcgcGFja2FnZXMuICBHcmFiIHRoZW0gZnJvbQotKyAgICAg ICAgIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKLSsgICAgdG91Y2ggYWNsb2NhbC5tNAotKyAgICA7 OwotKwotKyAgYXV0b2NvbmYqKQotKyAgICBlY2hvIDE+JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBp cyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKLSsgICAgICAgICB5b3UgbW9kaWZp ZWQgXGAke2NvbmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCB0aGUKLSsg ICAgICAgICBcYEF1dG9jb25mJyBhbmQgXGBHTlUgbTQnIHBhY2thZ2VzLiAgR3JhYiB0aGVtIGZy b20gYW55IEdOVQotKyAgICAgICAgIGFyY2hpdmUgc2l0ZS4iCi0rICAgIHRvdWNoIGNvbmZpZ3Vy ZQotKyAgICA7OwotKwotKyAgYXV0b2hlYWRlciopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5J Tkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAg IHlvdSBtb2RpZmllZCBcYGFjY29uZmlnLmgnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBt aWdodCB3YW50Ci0rICAgICAgICAgdG8gaW5zdGFsbCB0aGUgXGBBdXRvY29uZicgYW5kIFxgR05V IG00JyBwYWNrYWdlcy4gIEdyYWIgdGhlbQotKyAgICAgICAgIGZyb20gYW55IEdOVSBhcmNoaXZl IHNpdGUuIgotKyAgICBmaWxlcz1gc2VkIC1uICdzL15bIF0qQVtDTV1fQ09ORklHX0hFQURFUihc KFteKV0qXCkpLiovXDEvcCcgJHtjb25maWd1cmVfYWN9YAotKyAgICB0ZXN0IC16ICIkZmlsZXMi ICYmIGZpbGVzPSJjb25maWcuaCIKLSsgICAgdG91Y2hfZmlsZXM9Ci0rICAgIGZvciBmIGluICRm aWxlczsgZG8KLSsgICAgICBjYXNlICRmIGluCi0rICAgICAgKjoqKSB0b3VjaF9maWxlcz0iJHRv dWNoX2ZpbGVzICJgZWNobyAiJGYiIHwKLSsJCQkJICAgICAgIHNlZCAtZSAncy9eW146XSo6Ly8n IC1lICdzLzouKi8vJ2A7OwotKyAgICAgICopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgJGYu aW4iOzsKLSsgICAgICBlc2FjCi0rICAgIGRvbmUKLSsgICAgdG91Y2ggJHRvdWNoX2ZpbGVzCi0r ICAgIDs7Ci0rCi0rICBhdXRvbWFrZSopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxg JDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBt b2RpZmllZCBcYE1ha2VmaWxlLmFtJywgXGBhY2luY2x1ZGUubTQnIG9yIFxgJHtjb25maWd1cmVf YWN9Jy4KLSsgICAgICAgICBZb3UgbWlnaHQgd2FudCB0byBpbnN0YWxsIHRoZSBcYEF1dG9tYWtl JyBhbmQgXGBQZXJsJyBwYWNrYWdlcy4KLSsgICAgICAgICBHcmFiIHRoZW0gZnJvbSBhbnkgR05V IGFyY2hpdmUgc2l0ZS4iCi0rICAgIGZpbmQgLiAtdHlwZSBmIC1uYW1lIE1ha2VmaWxlLmFtIC1w cmludCB8Ci0rCSAgIHNlZCAncy9cLmFtJC8uaW4vJyB8Ci0rCSAgIHdoaWxlIHJlYWQgZjsgZG8g dG91Y2ggIiRmIjsgZG9uZQotKyAgICA7OwotKwotKyAgYXV0b200dGUqKQotKyAgICBlY2hvIDE+ JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBpcyBuZWVkZWQsIGJ1dCBpcyAkbXNnLgotKyAgICAgICAg IFlvdSBtaWdodCBoYXZlIG1vZGlmaWVkIHNvbWUgZmlsZXMgd2l0aG91dCBoYXZpbmcgdGhlCi0r ICAgICAgICAgcHJvcGVyIHRvb2xzIGZvciBmdXJ0aGVyIGhhbmRsaW5nIHRoZW0uCi0rICAgICAg ICAgWW91IGNhbiBnZXQgXGAkMScgYXMgcGFydCBvZiBcYEF1dG9jb25mJyBmcm9tIGFueSBHTlUK LSsgICAgICAgICBhcmNoaXZlIHNpdGUuIgotKwotKyAgICBmaWxlPWBlY2hvICIkKiIgfCBzZWQg LW4gIiRzZWRfb3V0cHV0ImAKLSsgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiQq IiB8IHNlZCAtbiAiJHNlZF9taW51c28iYAotKyAgICBpZiB0ZXN0IC1mICIkZmlsZSI7IHRoZW4K LSsJdG91Y2ggJGZpbGUKLSsgICAgZWxzZQotKwl0ZXN0IC16ICIkZmlsZSIgfHwgZXhlYyA+JGZp bGUKLSsJZWNobyAiIyEgL2Jpbi9zaCIKLSsJZWNobyAiIyBDcmVhdGVkIGJ5IEdOVSBBdXRvbWFr ZSBtaXNzaW5nIGFzIGEgcmVwbGFjZW1lbnQgb2YiCi0rCWVjaG8gIiMgICQgJEAiCi0rCWVjaG8g ImV4aXQgMCIKLSsJY2htb2QgK3ggJGZpbGUKLSsJZXhpdCAxCi0rICAgIGZpCi0rICAgIDs7Ci0r Ci0rICBiaXNvbip8eWFjYyopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnICRt c2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBh IFxgLnknIGZpbGUuICBZb3UgbWF5IG5lZWQgdGhlIFxgQmlzb24nIHBhY2thZ2UKLSsgICAgICAg ICBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlIGVmZmVjdC4gIFlvdSBj YW4gZ2V0Ci0rICAgICAgICAgXGBCaXNvbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0r ICAgIHJtIC1mIHkudGFiLmMgeS50YWIuaAotKyAgICBpZiB0ZXN0ICQjIC1uZSAxOyB0aGVuCi0r ICAgICAgICBldmFsIExBU1RBUkc9IlwkeyQjfSIKLSsJY2FzZSAkTEFTVEFSRyBpbgotKwkqLnkp Ci0rCSAgICBTUkNGSUxFPWBlY2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MveSQvYy8nYAotKwkgICAg aWYgdGVzdCAtZiAiJFNSQ0ZJTEUiOyB0aGVuCi0rCSAgICAgICAgIGNwICIkU1JDRklMRSIgeS50 YWIuYwotKwkgICAgZmkKLSsJICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy95 JC9oLydgCi0rCSAgICBpZiB0ZXN0IC1mICIkU1JDRklMRSI7IHRoZW4KLSsJICAgICAgICAgY3Ag IiRTUkNGSUxFIiB5LnRhYi5oCi0rCSAgICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsgICAgZmkKLSsg ICAgaWYgdGVzdCAhIC1mIHkudGFiLmg7IHRoZW4KLSsJZWNobyA+eS50YWIuaAotKyAgICBmaQot KyAgICBpZiB0ZXN0ICEgLWYgeS50YWIuYzsgdGhlbgotKwllY2hvICdtYWluKCkgeyByZXR1cm4g MDsgfScgPnkudGFiLmMKLSsgICAgZmkKLSsgICAgOzsKLSsKLSsgIGxleCp8ZmxleCopCi0rICAg IGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkg bmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLmwnIGZpbGUuICBZb3UgbWF5 IG5lZWQgdGhlIFxgRmxleCcgcGFja2FnZQotKyAgICAgICAgIGluIG9yZGVyIGZvciB0aG9zZSBt b2RpZmljYXRpb25zIHRvIHRha2UgZWZmZWN0LiAgWW91IGNhbiBnZXQKLSsgICAgICAgICBcYEZs ZXgnIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotKyAgICBybSAtZiBsZXgueXkuYwotKyAg ICBpZiB0ZXN0ICQjIC1uZSAxOyB0aGVuCi0rICAgICAgICBldmFsIExBU1RBUkc9IlwkeyQjfSIK LSsJY2FzZSAkTEFTVEFSRyBpbgotKwkqLmwpCi0rCSAgICBTUkNGSUxFPWBlY2hvICIkTEFTVEFS RyIgfCBzZWQgJ3MvbCQvYy8nYAotKwkgICAgaWYgdGVzdCAtZiAiJFNSQ0ZJTEUiOyB0aGVuCi0r CSAgICAgICAgIGNwICIkU1JDRklMRSIgbGV4Lnl5LmMKLSsJICAgIGZpCi0rCSAgOzsKLSsJZXNh YwotKyAgICBmaQotKyAgICBpZiB0ZXN0ICEgLWYgbGV4Lnl5LmM7IHRoZW4KLSsJZWNobyAnbWFp bigpIHsgcmV0dXJuIDA7IH0nID5sZXgueXkuYwotKyAgICBmaQotKyAgICA7OwotKwotKyAgaGVs cDJtYW4qKQotKyAgICBlY2hvIDE+JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91 IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKLSsJIHlvdSBtb2RpZmllZCBhIGRlcGVuZGVuY3kgb2Yg YSBtYW51YWwgcGFnZS4gIFlvdSBtYXkgbmVlZCB0aGUKLSsJIFxgSGVscDJtYW4nIHBhY2thZ2Ug aW4gb3JkZXIgZm9yIHRob3NlIG1vZGlmaWNhdGlvbnMgdG8gdGFrZQotKwkgZWZmZWN0LiAgWW91 IGNhbiBnZXQgXGBIZWxwMm1hbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0rCi0rICAg IGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAotKyAgICB0ZXN0IC16ICIk ZmlsZSIgJiYgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCi0rICAgIGlm IHRlc3QgLWYgIiRmaWxlIjsgdGhlbgotKwl0b3VjaCAkZmlsZQotKyAgICBlbHNlCi0rCXRlc3Qg LXogIiRmaWxlIiB8fCBleGVjID4kZmlsZQotKwllY2hvICIuYWIgaGVscDJtYW4gaXMgcmVxdWly ZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlIgotKwlleGl0ICQ/Ci0rICAgIGZpCi0rICAgIDs7Ci0r Ci0rICBtYWtlaW5mbyopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzICRt c2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBh IFxgLnRleGknIG9yIFxgLnRleGluZm8nIGZpbGUsIG9yIGFueSBvdGhlciBmaWxlCi0rICAgICAg ICAgaW5kaXJlY3RseSBhZmZlY3RpbmcgdGhlIGFzcGVjdCBvZiB0aGUgbWFudWFsLiAgVGhlIHNw dXJpb3VzCi0rICAgICAgICAgY2FsbCBtaWdodCBhbHNvIGJlIHRoZSBjb25zZXF1ZW5jZSBvZiB1 c2luZyBhIGJ1Z2d5IFxgbWFrZScgKEFJWCwKLSsgICAgICAgICBEVSwgSVJJWCkuICBZb3UgbWln aHQgd2FudCB0byBpbnN0YWxsIHRoZSBcYFRleGluZm8nIHBhY2thZ2Ugb3IKLSsgICAgICAgICB0 aGUgXGBHTlUgbWFrZScgcGFja2FnZS4gIEdyYWIgZWl0aGVyIGZyb20gYW55IEdOVSBhcmNoaXZl IHNpdGUuIgotKyAgICAjIFRoZSBmaWxlIHRvIHRvdWNoIGlzIHRoYXQgc3BlY2lmaWVkIHdpdGgg LW8gLi4uCi0rICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAotKyAg ICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVz byJgCi0rICAgIGlmIHRlc3QgLXogIiRmaWxlIjsgdGhlbgotKyAgICAgICMgLi4uIG9yIGl0IGlz IHRoZSBvbmUgc3BlY2lmaWVkIHdpdGggQHNldGZpbGVuYW1lIC4uLgotKyAgICAgIGluZmlsZT1g ZWNobyAiJCoiIHwgc2VkICdzLy4qIFwoW14gXSpcKSAqJC9cMS8nYAotKyAgICAgIGZpbGU9YHNl ZCAtbiAnCi0rCS9eQHNldGZpbGVuYW1lL3sKLSsJICBzLy4qIFwoW14gXSpcKSAqJC9cMS8KLSsJ ICBwCi0rCSAgcQotKwl9JyAkaW5maWxlYAotKyAgICAgICMgLi4uIG9yIGl0IGlzIGRlcml2ZWQg ZnJvbSB0aGUgc291cmNlIG5hbWUgKGRpci9mLnRleGkgYmVjb21lcyBmLmluZm8pCi0rICAgICAg dGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiRpbmZpbGUiIHwgc2VkICdzLC4qLywsO3Ms LlteLl0qJCwsJ2AuaW5mbwotKyAgICBmaQotKyAgICAjIElmIHRoZSBmaWxlIGRvZXMgbm90IGV4 aXN0LCB0aGUgdXNlciByZWFsbHkgbmVlZHMgbWFrZWluZm87Ci0rICAgICMgbGV0J3MgZmFpbCB3 aXRob3V0IHRvdWNoaW5nIGFueXRoaW5nLgotKyAgICB0ZXN0IC1mICRmaWxlIHx8IGV4aXQgMQot KyAgICB0b3VjaCAkZmlsZQotKyAgICA7OwotKwotKyAgdGFyKikKLSsgICAgc2hpZnQKLSsKLSsg ICAgIyBXZSBoYXZlIGFscmVhZHkgdHJpZWQgdGFyIGluIHRoZSBnZW5lcmljIHBhcnQuCi0rICAg ICMgTG9vayBmb3IgZ251dGFyL2d0YXIgYmVmb3JlIGludm9jYXRpb24gdG8gYXZvaWQgdWdseSBl cnJvcgotKyAgICAjIG1lc3NhZ2VzLgotKyAgICBpZiAoZ251dGFyIC0tdmVyc2lvbiA+IC9kZXYv bnVsbCAyPiYxKTsgdGhlbgotKyAgICAgICBnbnV0YXIgIiRAIiAmJiBleGl0IDAKLSsgICAgZmkK LSsgICAgaWYgKGd0YXIgLS12ZXJzaW9uID4gL2Rldi9udWxsIDI+JjEpOyB0aGVuCi0rICAgICAg IGd0YXIgIiRAIiAmJiBleGl0IDAKLSsgICAgZmkKLSsgICAgZmlyc3Rhcmc9IiQxIgotKyAgICBp ZiBzaGlmdDsgdGhlbgotKwljYXNlICRmaXJzdGFyZyBpbgotKwkqbyopCi0rCSAgICBmaXJzdGFy Zz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL28vL2AKLSsJICAgIHRhciAiJGZpcnN0YXJnIiAi JEAiICYmIGV4aXQgMAotKwkgICAgOzsKLSsJZXNhYwotKwljYXNlICRmaXJzdGFyZyBpbgotKwkq aCopCi0rCSAgICBmaXJzdGFyZz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL2gvL2AKLSsJICAg IHRhciAiJGZpcnN0YXJnIiAiJEAiICYmIGV4aXQgMAotKwkgICAgOzsKLSsJZXNhYwotKyAgICBm aQotKwotKyAgICBlY2hvIDE+JjIgIlwKLStXQVJOSU5HOiBJIGNhbid0IHNlZW0gdG8gYmUgYWJs ZSB0byBydW4gXGB0YXInIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50cy4KLSsgICAgICAgICBZb3Ug bWF5IHdhbnQgdG8gaW5zdGFsbCBHTlUgdGFyIG9yIEZyZWUgcGF4dXRpbHMsIG9yIGNoZWNrIHRo ZQotKyAgICAgICAgIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuIgotKyAgICBleGl0IDEKLSsgICAg OzsKLSsKLSsgICopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzIG5lZWRl ZCwgYW5kIGlzICRtc2cuCi0rICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29tZSBm aWxlcyB3aXRob3V0IGhhdmluZyB0aGUKLSsgICAgICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRo ZXIgaGFuZGxpbmcgdGhlbS4gIENoZWNrIHRoZSBcYFJFQURNRScgZmlsZSwKLSsgICAgICAgICBp dCBvZnRlbiB0ZWxscyB5b3UgYWJvdXQgdGhlIG5lZWRlZCBwcmVyZXF1aXNpdGVzIGZvciBpbnN0 YWxsaW5nCi0rICAgICAgICAgdGhpcyBwYWNrYWdlLiAgWW91IG1heSBhbHNvIHBlZWsgYXQgYW55 IEdOVSBhcmNoaXZlIHNpdGUsIGluIGNhc2UKLSsgICAgICAgICBzb21lIG90aGVyIHBhY2thZ2Ug d291bGQgY29udGFpbiB0aGlzIG1pc3NpbmcgXGAkMScgcHJvZ3JhbS4iCi0rICAgIGV4aXQgMQot KyAgICA7OwotK2VzYWMKLSsKLStleGl0IDAKLSsKLSsjIExvY2FsIHZhcmlhYmxlczoKLSsjIGV2 YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKLSsjIHRpbWUtc3Rh bXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKLSsjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUw Mm0tJTAyZC4lMDJIIgotKyMgdGltZS1zdGFtcC10aW1lLXpvbmU6ICJVVEMiCi0rIyB0aW1lLXN0 YW1wLWVuZDogIjsgIyBVVEMiCi0rIyBFbmQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv Y29uZmlndXJlIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWd1cmUKLS0tLSBzb2NpLTMuMC4wXzQt cGFjay9jb25maWd1cmUJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvY29uZmlndXJlCTIwMTAtMDEtMjMgMTQ6NDQ6NDkuMDAwMDAwMDAw ICswMTAwCi1AQCAtMSw3MiArMSwyMzA0MCBAQAotLSMhL2Jpbi9zaAotKyMhIC9iaW4vc2gKLSsj IEd1ZXNzIHZhbHVlcyBmb3Igc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgYW5kIGNyZWF0ZSBN YWtlZmlsZXMuCi0rIyBHZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjMgZm9yIFNPQ0kgMy4w LjAuCi0rIwotKyMgUmVwb3J0IGJ1Z3MgdG8gPG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5l dD4uCi0rIwotKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDkgTWFjaWVqIFNvYmN6YWsgPG1zb2Jj emFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLSsjCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5 OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsCi0rIyAyMDAyLCAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgotKyMgVGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRv IGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4KLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0gIyMKLSsjIyBNNHNoIEluaXRpYWxpemF0aW9uLiAgIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0gIyMKLSAKLS1pZiBbICQjIC1ndCAwIF0KLS10aGVuCi0tICAgIGlmIFsgJDEgPSAiLWhl bHAiIC1vICQxID0gIi0taGVscCIgXQotLSAgICB0aGVuCi0tICAgICAgICBlY2hvICdSZWNvZ25p emVkIGNvbmZpZ3VyZSBvcHRpb25zOicKLS0gICAgICAgIGVjaG8gJycKLS0gICAgICAgIGVjaG8g J0luc3RhbGxhdGlvbiBvcHRpb25zOicKLS0gICAgICAgIGVjaG8gJy0taW5jbHVkZS1wcmVmaXg9 L3NvbWUvcGF0aCAgICAgIC0gcGF0aCB0byBpbnN0YWxsIFNPQ0kgaGVhZGVyIGZpbGVzJwotLSAg ICAgICAgZWNobyAnLS1saWItcHJlZml4PS9zb21lL3BhdGggICAgICAgICAgLSBwYXRoIHRvIGlu c3RhbGwgU09DSSBsaWJyYXJpZXMnCi0tICAgICAgICBlY2hvICcnCi0tICAgICAgICBlY2hvICdN eVNRTCBvcHRpb25zOicKLS0gICAgICAgIGVjaG8gJy0tbXlzcWwtaW5jbHVkZT0vc29tZS9wYXRo ICAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgbXlzcWwuaCcKLS0gICAgICAgIGVjaG8gJy0t bXlzcWwtbGliPS9zb21lL3BhdGggICAgICAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGli bXlzcWxjbGllbnQuW2F8c29dJwotLSAgICAgICAgZWNobyAnJwotLSAgICAgICAgZWNobyAnT3Jh Y2xlIG9wdGlvbnMgKGlmIE9SQUNMRV9IT01FIHZhcmlhYmxlIGlzIG5vdCBzZXQpOicKLS0gICAg ICAgIGVjaG8gJy0tb3JhY2xlLWluY2x1ZGU9L3NvbWUvcGF0aCAgICAgIC0gZGlyZWN0b3J5IGNv bnRhaW5pbmcgb2NpLmgnCi0tICAgICAgICBlY2hvICctLW9yYWNsZS1saWI9L3NvbWUvcGF0aCAg ICAgICAgICAtIGRpcmVjdG9yeSBjb250YWluaW5nIGxpYmNsbnRzaC5bYXxzb10nCi0tICAgICAg ICBlY2hvICcnCi0tICAgICAgICBlY2hvICdQb3N0Z3JlU1FMIG9wdGlvbnM6JwotLSAgICAgICAg ZWNobyAnLS1wb3N0Z3Jlc3FsLWluY2x1ZGU9L3NvbWUvcGF0aCAgLSBkaXJlY3RvcnkgY29udGFp bmluZyBsaWJwcS9saWJwcS1mcy5oJwotLSAgICAgICAgZWNobyAnLS1wb3N0Z3Jlc3FsLWxpYj0v c29tZS9wYXRoICAgICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJwcS5bYXxzb10nCi0tICAg ICAgICBlY2hvICcnCi0tICAgICAgICBlY2hvICdUZXN0IHByb2dyYW1zIGNvbXBpbGF0aW9uIG9w dGlvbnMgKG5vdCBuZWVkZWQgZm9yIGxpYnJhcnkgYnVpbGQpOicKLS0gICAgICAgIGVjaG8gJy0t Ym9vc3QtaW5jbHVkZT0vc29tZS9wYXRoICAgICAgIC0gcm9vdCBpbmNsdWRlIGRpcmVjdG9yeSBv ZiBCb29zdCcKLS0gICAgICAgIGVjaG8gJy0tYm9vc3QtbGliPS9zb21lL3BhdGggICAgICAgICAg IC0gcm9vdCBsaWIgZGlyZWN0b3J5IG9mIEJvb3N0JwotLSAgICAgICAgZWNobyAnJwotLSAgICAg ICAgZXhpdAotLSAgICBmaQotKyMgQmUgbW9yZSBCb3VybmUgY29tcGF0aWJsZQotK0RVQUxDQVNF PTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKLStpZiB0ZXN0IC1uICIke1pTSF9WRVJT SU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIGVtdWxh dGUgc2gKLSsgIE5VTExDTUQ9OgotKyAgIyBQcmUtNC4yIHZlcnNpb25zIG9mIFpzaCBkbyB3b3Jk IHNwbGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNoCi0rICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1 c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgotKyAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIk QCInCi0rICBzZXRvcHQgTk9fR0xPQl9TVUJTVAotK2Vsc2UKLSsgIGNhc2UgYChzZXQgLW8pIDI+ L2Rldi9udWxsYCBpbgotKyAgKnBvc2l4Kikgc2V0IC1vIHBvc2l4IDs7Ci0rZXNhYwotKwotK2Zp Ci0rCi0rCi0rCi0rCi0rIyBQQVRIIG5lZWRzIENSCi0rIyBBdm9pZCBkZXBlbmRpbmcgdXBvbiBD aGFyYWN0ZXIgUmFuZ2VzLgotK2FzX2NyX2xldHRlcnM9J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3 eHl6JwotK2FzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJwotK2FzX2Ny X0xldHRlcnM9JGFzX2NyX2xldHRlcnMkYXNfY3JfTEVUVEVSUwotK2FzX2NyX2RpZ2l0cz0nMDEy MzQ1Njc4OScKLSthc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKLSsKLSth c19ubD0nCi0rJwotK2V4cG9ydCBhc19ubAotKyMgUHJpbnRpbmcgYSBsb25nIHN0cmluZyBjcmFz aGVzIFNvbGFyaXMgNyAvdXNyL2Jpbi9wcmludGYuCi0rYXNfZWNobz0nXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCcKLSthc19lY2hvPSRhc19lY2hvJGFzX2Vj aG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8KLSthc19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNf ZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobwotK2lmICh0ZXN0ICJYYHByaW50ZiAlcyAkYXNf ZWNob2AiID0gIlgkYXNfZWNobyIpIDI+L2Rldi9udWxsOyB0aGVuCi0rICBhc19lY2hvPSdwcmlu dGYgJXNcbicKLSsgIGFzX2VjaG9fbj0ncHJpbnRmICVzJwotK2Vsc2UKLSsgIGlmIHRlc3QgIlhg KC91c3IvdWNiL2VjaG8gLW4gLW4gJGFzX2VjaG8pIDI+L2Rldi9udWxsYCIgPSAiWC1uICRhc19l Y2hvIjsgdGhlbgotKyAgICBhc19lY2hvX2JvZHk9J2V2YWwgL3Vzci91Y2IvZWNobyAtbiAiJDEk YXNfbmwiJwotKyAgICBhc19lY2hvX249Jy91c3IvdWNiL2VjaG8gLW4nCi0rICBlbHNlCi0rICAg IGFzX2VjaG9fYm9keT0nZXZhbCBleHByICJYJDEiIDogIlhcXCguKlxcKSInCi0rICAgIGFzX2Vj aG9fbl9ib2R5PSdldmFsCi0rICAgICAgYXJnPSQxOwotKyAgICAgIGNhc2UgJGFyZyBpbgotKyAg ICAgICoiJGFzX25sIiopCi0rCWV4cHIgIlgkYXJnIiA6ICJYXFwoLipcXCkkYXNfbmwiOwotKwlh cmc9YGV4cHIgIlgkYXJnIiA6ICIuKiRhc19ubFxcKC4qXFwpImA7OwotKyAgICAgIGVzYWM7Ci0r ICAgICAgZXhwciAiWCRhcmciIDogIlhcXCguKlxcKSIgfCB0ciAtZCAiJGFzX25sIgotKyAgICAn Ci0rICAgIGV4cG9ydCBhc19lY2hvX25fYm9keQotKyAgICBhc19lY2hvX249J3NoIC1jICRhc19l Y2hvX25fYm9keSBhc19lY2hvJwotKyAgZmkKLSsgIGV4cG9ydCBhc19lY2hvX2JvZHkKLSsgIGFz X2VjaG89J3NoIC1jICRhc19lY2hvX2JvZHkgYXNfZWNobycKLStmaQotKwotKyMgVGhlIHVzZXIg aXMgYWx3YXlzIHJpZ2h0LgotK2lmIHRlc3QgIiR7UEFUSF9TRVBBUkFUT1Irc2V0fSIgIT0gc2V0 OyB0aGVuCi0rICBQQVRIX1NFUEFSQVRPUj06Ci0rICAoUEFUSD0nL2JpbjsvYmluJzsgRlBBVEg9 JFBBVEg7IHNoIC1jIDopID4vZGV2L251bGwgMj4mMSAmJiB7Ci0rICAgIChQQVRIPScvYmluOi9i aW4nOyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9kZXYvbnVsbCAyPiYxIHx8Ci0rICAgICAgUEFU SF9TRVBBUkFUT1I9JzsnCi0rICB9Ci0rZmkKLSsKLSsjIFN1cHBvcnQgdW5zZXQgd2hlbiBwb3Nz aWJsZS4KLStpZiAoIChNQUlMPTYwOyB1bnNldCBNQUlMKSB8fCBleGl0KSA+L2Rldi9udWxsIDI+ JjE7IHRoZW4KLSsgIGFzX3Vuc2V0PXVuc2V0Ci0rZWxzZQotKyAgYXNfdW5zZXQ9ZmFsc2UKLStm aQotKwotKwotKyMgSUZTCi0rIyBXZSBuZWVkIHNwYWNlLCB0YWIgYW5kIG5ldyBsaW5lLCBpbiBw cmVjaXNlbHkgdGhhdCBvcmRlci4gIFF1b3RpbmcgaXMKLSsjIHRoZXJlIHRvIHByZXZlbnQgZWRp dG9ycyBmcm9tIGNvbXBsYWluaW5nIGFib3V0IHNwYWNlLXRhYi4KLSsjIChJZiBfQVNfUEFUSF9X QUxLIHdlcmUgY2FsbGVkIHdpdGggSUZTIHVuc2V0LCBpdCB3b3VsZCBkaXNhYmxlIHdvcmQKLSsj IHNwbGl0dGluZyBieSBzZXR0aW5nIElGUyB0byBlbXB0eSB2YWx1ZS4pCi0rSUZTPSIgIiIJJGFz X25sIgotKwotKyMgRmluZCB3aG8gd2UgYXJlLiAgTG9vayBpbiB0aGUgcGF0aCBpZiB3ZSBjb250 YWluIG5vIGRpcmVjdG9yeSBzZXBhcmF0b3IuCi0rY2FzZSAkMCBpbgotKyAgKltcXC9dKiApIGFz X215c2VsZj0kMCA7OwotKyAgKikgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRP UgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFz X215c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFrCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsK LSsgICAgIDs7Ci0rZXNhYwotKyMgV2UgZGlkIG5vdCBmaW5kIG91cnNlbHZlcywgbW9zdCBwcm9i YWJseSB3ZSB3ZXJlIHJ1biBhcyBgc2ggQ09NTUFORCcKLSsjIGluIHdoaWNoIGNhc2Ugd2UgYXJl IG5vdCB0byBiZSBmb3VuZCBpbiB0aGUgcGF0aC4KLStpZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4 OyB0aGVuCi0rICBhc19teXNlbGY9JDAKLStmaQotK2lmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7 IHRoZW4KLSsgICRhc19lY2hvICIkYXNfbXlzZWxmOiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxm OyByZXJ1biB3aXRoIGFuIGFic29sdXRlIGZpbGUgbmFtZSIgPiYyCi0rICB7IChleGl0IDEpOyBl eGl0IDE7IH0KLStmaQotKwotKyMgV29yayBhcm91bmQgYnVncyBpbiBwcmUtMy4wIFVXSU4ga3No LgotK2ZvciBhc192YXIgaW4gRU5WIE1BSUwgTUFJTFBBVEgKLStkbyAoJGFzX3Vuc2V0ICRhc192 YXIpID4vZGV2L251bGwgMj4mMSAmJiAkYXNfdW5zZXQgJGFzX3ZhcgotK2RvbmUKLStQUzE9JyQg JwotK1BTMj0nPiAnCi0rUFM0PScrICcKLSsKLSsjIE5MUyBudWlzYW5jZXMuCi0rTENfQUxMPUMK LStleHBvcnQgTENfQUxMCi0rTEFOR1VBR0U9QwotK2V4cG9ydCBMQU5HVUFHRQotKwotKyMgUmVx dWlyZWQgdG8gdXNlIGJhc2VuYW1lLgotK2lmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAy PiYxICYmCi0rICAgdGVzdCAiWGBleHByIDAwMDAxIDogJy4qXCguLi5cKSdgIiA9IFgwMDE7IHRo ZW4KLSsgIGFzX2V4cHI9ZXhwcgotK2Vsc2UKLSsgIGFzX2V4cHI9ZmFsc2UKLStmaQotKwotK2lm IChiYXNlbmFtZSAtLSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAtLSAv IDI+JjFgIiA9ICJYLyI7IHRoZW4KLSsgIGFzX2Jhc2VuYW1lPWJhc2VuYW1lCi0rZWxzZQotKyAg YXNfYmFzZW5hbWU9ZmFsc2UKLStmaQotKwotKwotKyMgTmFtZSBvZiB0aGUgZXhlY3V0YWJsZS4K LSthc19tZT1gJGFzX2Jhc2VuYW1lIC0tICIkMCIgfHwKLSskYXNfZXhwciBYLyIkMCIgOiAnLiov XChbXi9dW14vXSpcKS8qJCcgXHwgXAotKwkgWCIkMCIgOiAnWFwoLy9cKSQnIFx8IFwKLSsJIFgi JDAiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgvIiQwIiB8Ci0r ICAgIHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQvewotKwkgICAgcy8vXDEvCi0rCSAgICBx Ci0rCSAgfQotKwkgIC9eWFwvXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkg IH0KLSsJICAvXlhcL1woXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJ ICBzLy4qLy4vOyBxJ2AKLSsKLSsjIENEUEFUSC4KLSskYXNfdW5zZXQgQ0RQQVRICi0rCi0rCi0r aWYgdGVzdCAieCRDT05GSUdfU0hFTEwiID0geDsgdGhlbgotKyAgaWYgKGV2YWwgIjoiKSAyPi9k ZXYvbnVsbDsgdGhlbgotKyAgYXNfaGF2ZV9yZXF1aXJlZD15ZXMKLStlbHNlCi0rICBhc19oYXZl X3JlcXVpcmVkPW5vCi0rZmkKLSsKLSsgIGlmIHRlc3QgJGFzX2hhdmVfcmVxdWlyZWQgPSB5ZXMg JiYJIChldmFsICI6Ci0rKGFzX2Z1bmNfcmV0dXJuICgpIHsKLSsgIChleGl0IFwkMSkKLSt9Ci0r YXNfZnVuY19zdWNjZXNzICgpIHsKLSsgIGFzX2Z1bmNfcmV0dXJuIDAKLSt9Ci0rYXNfZnVuY19m YWlsdXJlICgpIHsKLSsgIGFzX2Z1bmNfcmV0dXJuIDEKLSt9Ci0rYXNfZnVuY19yZXRfc3VjY2Vz cyAoKSB7Ci0rICByZXR1cm4gMAotK30KLSthc19mdW5jX3JldF9mYWlsdXJlICgpIHsKLSsgIHJl dHVybiAxCi0rfQotKwotK2V4aXRjb2RlPTAKLStpZiBhc19mdW5jX3N1Y2Nlc3M7IHRoZW4KLSsg IDoKLStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfc3VjY2VzcyBmYWlsZWQu Ci0rZmkKLSsKLStpZiBhc19mdW5jX2ZhaWx1cmU7IHRoZW4KLSsgIGV4aXRjb2RlPTEKLSsgIGVj aG8gYXNfZnVuY19mYWlsdXJlIHN1Y2NlZWRlZC4KLStmaQotKwotK2lmIGFzX2Z1bmNfcmV0X3N1 Y2Nlc3M7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNf cmV0X3N1Y2Nlc3MgZmFpbGVkLgotK2ZpCi0rCi0raWYgYXNfZnVuY19yZXRfZmFpbHVyZTsgdGhl bgotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBhc19mdW5jX3JldF9mYWlsdXJlIHN1Y2NlZWRlZC4K LStmaQotKwotK2lmICggc2V0IHg7IGFzX2Z1bmNfcmV0X3N1Y2Nlc3MgeSAmJiB0ZXN0IHggPSBc IlwkMVwiICk7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIHBvc2l0 aW9uYWwgcGFyYW1ldGVycyB3ZXJlIG5vdCBzYXZlZC4KLStmaQotKwotK3Rlc3QgXCRleGl0Y29k ZSA9IDApIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQotKwotKygKLSsgIGFzX2xpbmVub18xPVwk TElORU5PCi0rICBhc19saW5lbm9fMj1cJExJTkVOTwotKyAgdGVzdCBcInhcJGFzX2xpbmVub18x XCIgIT0gXCJ4XCRhc19saW5lbm9fMlwiICYmCi0rICB0ZXN0IFwieFxgZXhwciBcJGFzX2xpbmVu b18xICsgMVxgXCIgPSBcInhcJGFzX2xpbmVub18yXCIpIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsg fQotKyIpIDI+IC9kZXYvbnVsbDsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIGFzX2NhbmRpZGF0ZV9z aGVsbHM9Ci0rICAgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3Ig YXNfZGlyIGluIC9iaW4kUEFUSF9TRVBBUkFUT1IvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRI Ci0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rp cj0uCi0rICBjYXNlICRhc19kaXIgaW4KLSsJIC8qKQotKwkgICBmb3IgYXNfYmFzZSBpbiBzaCBi YXNoIGtzaCBzaDU7IGRvCi0rCSAgICAgYXNfY2FuZGlkYXRlX3NoZWxscz0iJGFzX2NhbmRpZGF0 ZV9zaGVsbHMgJGFzX2Rpci8kYXNfYmFzZSIKLSsJICAgZG9uZTs7Ci0rICAgICAgIGVzYWMKLStk b25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKwotKyAgICAgIGZvciBhc19zaGVsbCBpbiAkYXNf Y2FuZGlkYXRlX3NoZWxscyAkU0hFTEw7IGRvCi0rCSAjIFRyeSBvbmx5IHNoZWxscyB0aGF0IGV4 aXN0LCB0byBzYXZlIHNldmVyYWwgZm9ya3MuCi0rCSBpZiB7IHRlc3QgLWYgIiRhc19zaGVsbCIg fHwgdGVzdCAtZiAiJGFzX3NoZWxsLmV4ZSI7IH0gJiYKLSsJCXsgKCIkYXNfc2hlbGwiKSAyPiAv ZGV2L251bGwgPDxcX0FTRU9GCi0raWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAo ZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBlbXVsYXRlIHNoCi0rICBOVUxM Q01EPToKLSsgICMgUHJlLTQuMiB2ZXJzaW9ucyBvZiBac2ggZG8gd29yZCBzcGxpdHRpbmcgb24g JHsxKyIkQCJ9LCB3aGljaAotKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxl IHRoaXMgZmVhdHVyZS4KLSsgIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJwotKyAgc2V0b3B0 IE5PX0dMT0JfU1VCU1QKLStlbHNlCi0rICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4K LSsgICpwb3NpeCopIHNldCAtbyBwb3NpeCA7OwotK2VzYWMKLSsKLStmaQotKwotKwotKzoKLStf QVNFT0YKLSt9OyB0aGVuCi0rICBDT05GSUdfU0hFTEw9JGFzX3NoZWxsCi0rCSAgICAgICBhc19o YXZlX3JlcXVpcmVkPXllcwotKwkgICAgICAgaWYgeyAiJGFzX3NoZWxsIiAyPiAvZGV2L251bGwg PDxcX0FTRU9GCi0raWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBz aCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBlbXVsYXRlIHNoCi0rICBOVUxMQ01EPToKLSsg ICMgUHJlLTQuMiB2ZXJzaW9ucyBvZiBac2ggZG8gd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9 LCB3aGljaAotKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVh dHVyZS4KLSsgIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJwotKyAgc2V0b3B0IE5PX0dMT0Jf U1VCU1QKLStlbHNlCi0rICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4KLSsgICpwb3Np eCopIHNldCAtbyBwb3NpeCA7OwotK2VzYWMKLSsKLStmaQotKwotKwotKzoKLSsoYXNfZnVuY19y ZXR1cm4gKCkgewotKyAgKGV4aXQgJDEpCi0rfQotK2FzX2Z1bmNfc3VjY2VzcyAoKSB7Ci0rICBh c19mdW5jX3JldHVybiAwCi0rfQotK2FzX2Z1bmNfZmFpbHVyZSAoKSB7Ci0rICBhc19mdW5jX3Jl dHVybiAxCi0rfQotK2FzX2Z1bmNfcmV0X3N1Y2Nlc3MgKCkgewotKyAgcmV0dXJuIDAKLSt9Ci0r YXNfZnVuY19yZXRfZmFpbHVyZSAoKSB7Ci0rICByZXR1cm4gMQotK30KLSsKLStleGl0Y29kZT0w Ci0raWYgYXNfZnVuY19zdWNjZXNzOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQot KyAgZWNobyBhc19mdW5jX3N1Y2Nlc3MgZmFpbGVkLgotK2ZpCi0rCi0raWYgYXNfZnVuY19mYWls dXJlOyB0aGVuCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfZmFpbHVyZSBzdWNjZWVk ZWQuCi0rZmkKLSsKLStpZiBhc19mdW5jX3JldF9zdWNjZXNzOyB0aGVuCi0rICA6Ci0rZWxzZQot KyAgZXhpdGNvZGU9MQotKyAgZWNobyBhc19mdW5jX3JldF9zdWNjZXNzIGZhaWxlZC4KLStmaQot KwotK2lmIGFzX2Z1bmNfcmV0X2ZhaWx1cmU7IHRoZW4KLSsgIGV4aXRjb2RlPTEKLSsgIGVjaG8g YXNfZnVuY19yZXRfZmFpbHVyZSBzdWNjZWVkZWQuCi0rZmkKLSsKLStpZiAoIHNldCB4OyBhc19m dW5jX3JldF9zdWNjZXNzIHkgJiYgdGVzdCB4ID0gIiQxIiApOyB0aGVuCi0rICA6Ci0rZWxzZQot KyAgZXhpdGNvZGU9MQotKyAgZWNobyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgd2VyZSBub3Qgc2F2 ZWQuCi0rZmkKLSsKLSt0ZXN0ICRleGl0Y29kZSA9IDApIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsg fQotKwotKygKLSsgIGFzX2xpbmVub18xPSRMSU5FTk8KLSsgIGFzX2xpbmVub18yPSRMSU5FTk8K LSsgIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgotKyAgdGVzdCAi eGBleHByICRhc19saW5lbm9fMSArIDFgIiA9ICJ4JGFzX2xpbmVub18yIikgfHwgeyAoZXhpdCAx KTsgZXhpdCAxOyB9Ci0rCi0rX0FTRU9GCi0rfTsgdGhlbgotKyAgYnJlYWsKLStmaQotKwotK2Zp Ci0rCi0rICAgICAgZG9uZQotKwotKyAgICAgIGlmIHRlc3QgIngkQ09ORklHX1NIRUxMIiAhPSB4 OyB0aGVuCi0rICBmb3IgYXNfdmFyIGluIEJBU0hfRU5WIEVOVgotKwlkbyAoJGFzX3Vuc2V0ICRh c192YXIpID4vZGV2L251bGwgMj4mMSAmJiAkYXNfdW5zZXQgJGFzX3ZhcgotKwlkb25lCi0rCWV4 cG9ydCBDT05GSUdfU0hFTEwKLSsJZXhlYyAiJENPTkZJR19TSEVMTCIgIiRhc19teXNlbGYiICR7 MSsiJEAifQotK2ZpCi0rCi0rCi0rICAgIGlmIHRlc3QgJGFzX2hhdmVfcmVxdWlyZWQgPSBubzsg dGhlbgotKyAgZWNobyBUaGlzIHNjcmlwdCByZXF1aXJlcyBhIHNoZWxsIG1vcmUgbW9kZXJuIHRo YW4gYWxsIHRoZQotKyAgICAgIGVjaG8gc2hlbGxzIHRoYXQgSSBmb3VuZCBvbiB5b3VyIHN5c3Rl bS4gIFBsZWFzZSBpbnN0YWxsIGEKLSsgICAgICBlY2hvIG1vZGVybiBzaGVsbCwgb3IgbWFudWFs bHkgcnVuIHRoZSBzY3JpcHQgdW5kZXIgc3VjaCBhCi0rICAgICAgZWNobyBzaGVsbCBpZiB5b3Ug ZG8gaGF2ZSBvbmUuCi0rICAgICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0rZmkKLSsKLSsKLStm aQotKwotK2ZpCi0rCi0rCi0rCi0rKGV2YWwgImFzX2Z1bmNfcmV0dXJuICgpIHsKLSsgIChleGl0 IFwkMSkKLSt9Ci0rYXNfZnVuY19zdWNjZXNzICgpIHsKLSsgIGFzX2Z1bmNfcmV0dXJuIDAKLSt9 Ci0rYXNfZnVuY19mYWlsdXJlICgpIHsKLSsgIGFzX2Z1bmNfcmV0dXJuIDEKLSt9Ci0rYXNfZnVu Y19yZXRfc3VjY2VzcyAoKSB7Ci0rICByZXR1cm4gMAotK30KLSthc19mdW5jX3JldF9mYWlsdXJl ICgpIHsKLSsgIHJldHVybiAxCi0rfQotKwotK2V4aXRjb2RlPTAKLStpZiBhc19mdW5jX3N1Y2Nl c3M7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfc3Vj Y2VzcyBmYWlsZWQuCi0rZmkKLSsKLStpZiBhc19mdW5jX2ZhaWx1cmU7IHRoZW4KLSsgIGV4aXRj b2RlPTEKLSsgIGVjaG8gYXNfZnVuY19mYWlsdXJlIHN1Y2NlZWRlZC4KLStmaQotKwotK2lmIGFz X2Z1bmNfcmV0X3N1Y2Nlc3M7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBl Y2hvIGFzX2Z1bmNfcmV0X3N1Y2Nlc3MgZmFpbGVkLgotK2ZpCi0rCi0raWYgYXNfZnVuY19yZXRf ZmFpbHVyZTsgdGhlbgotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBhc19mdW5jX3JldF9mYWlsdXJl IHN1Y2NlZWRlZC4KLStmaQotKwotK2lmICggc2V0IHg7IGFzX2Z1bmNfcmV0X3N1Y2Nlc3MgeSAm JiB0ZXN0IHggPSBcIlwkMVwiICk7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBleGl0Y29kZT0xCi0r ICBlY2hvIHBvc2l0aW9uYWwgcGFyYW1ldGVycyB3ZXJlIG5vdCBzYXZlZC4KLStmaQotKwotK3Rl c3QgXCRleGl0Y29kZSA9IDAiKSB8fCB7Ci0rICBlY2hvIE5vIHNoZWxsIGZvdW5kIHRoYXQgc3Vw cG9ydHMgc2hlbGwgZnVuY3Rpb25zLgotKyAgZWNobyBQbGVhc2UgdGVsbCBidWctYXV0b2NvbmZA Z251Lm9yZyBhYm91dCB5b3VyIHN5c3RlbSwKLSsgIGVjaG8gaW5jbHVkaW5nIGFueSBlcnJvciBw b3NzaWJseSBvdXRwdXQgYmVmb3JlIHRoaXMgbWVzc2FnZS4KLSsgIGVjaG8gVGhpcyBjYW4gaGVs cCB1cyBpbXByb3ZlIGZ1dHVyZSBhdXRvY29uZiB2ZXJzaW9ucy4KLSsgIGVjaG8gQ29uZmlndXJh dGlvbiB3aWxsIG5vdyBwcm9jZWVkIHdpdGhvdXQgc2hlbGwgZnVuY3Rpb25zLgotK30KLSsKLSsK LSsKLSsgIGFzX2xpbmVub18xPSRMSU5FTk8KLSsgIGFzX2xpbmVub18yPSRMSU5FTk8KLSsgIHRl c3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgotKyAgdGVzdCAieGBleHBy ICRhc19saW5lbm9fMSArIDFgIiA9ICJ4JGFzX2xpbmVub18yIiB8fCB7Ci0rCi0rICAjIENyZWF0 ZSAkYXNfbWUubGluZW5vIGFzIGEgY29weSBvZiAkYXNfbXlzZWxmLCBidXQgd2l0aCAkTElORU5P Ci0rICAjIHVuaWZvcm1seSByZXBsYWNlZCBieSB0aGUgbGluZSBudW1iZXIuICBUaGUgZmlyc3Qg J3NlZCcgaW5zZXJ0cyBhCi0rICAjIGxpbmUtbnVtYmVyIGxpbmUgYWZ0ZXIgZWFjaCBsaW5lIHVz aW5nICRMSU5FTk87IHRoZSBzZWNvbmQgJ3NlZCcKLSsgICMgZG9lcyB0aGUgcmVhbCB3b3JrLiAg VGhlIHNlY29uZCBzY3JpcHQgdXNlcyAnTicgdG8gcGFpciBlYWNoCi0rICAjIGxpbmUtbnVtYmVy IGxpbmUgd2l0aCB0aGUgbGluZSBjb250YWluaW5nICRMSU5FTk8sIGFuZCBhcHBlbmRzCi0rICAj IHRyYWlsaW5nICctJyBkdXJpbmcgc3Vic3RpdHV0aW9uIHNvIHRoYXQgJExJTkVOTyBpcyBub3Qg YSBzcGVjaWFsCi0rICAjIGNhc2UgYXQgbGluZSBlbmQuCi0rICAjIChSYWphIFIgSGFyaW5hdGgg c3VnZ2VzdGVkIHNlZCAnPScsIGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUKLSsgICMgc2NyaXB0 cyB3aXRoIG9wdGltaXphdGlvbiBoZWxwIGZyb20gUGFvbG8gQm9uemluaS4gIEJsYW1lIExlZQot KyAgIyBFLiBNY01haG9uICgxOTMxLTE5ODkpIGZvciBzZWQncyBzeW50YXguICA6LSkKLSsgIHNl ZCAtbiAnCi0rICAgIHAKLSsgICAgL1skXUxJTkVOTy89Ci0rICAnIDwkYXNfbXlzZWxmIHwKLSsg ICAgc2VkICcKLSsgICAgICBzL1skXUxJTkVOTy4qLyYtLwotKyAgICAgIHQgbGluZW5vCi0rICAg ICAgYgotKyAgICAgIDpsaW5lbm8KLSsgICAgICBOCi0rICAgICAgOmxvb3AKLSsgICAgICBzL1sk XUxJTkVOT1woW14nJGFzX2NyX2FsbnVtJ19dLipcblwpXCguKlwpL1wyXDFcMi8KLSsgICAgICB0 IGxvb3AKLSsgICAgICBzLy1cbi4qLy8KLSsgICAgJyA+JGFzX21lLmxpbmVubyAmJgotKyAgY2ht b2QgK3ggIiRhc19tZS5saW5lbm8iIHx8Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IGNhbm5vdCBjcmVhdGUgJGFzX21lLmxpbmVubzsgcmVydW4gd2l0aCBhIFBPU0lYIHNoZWxsIiA+ JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsKLSsgICMgRG9uJ3QgdHJ5IHRvIGV4 ZWMgYXMgaXQgY2hhbmdlcyAkWzBdLCBjYXVzaW5nIGFsbCBzb3J0IG9mIHByb2JsZW1zCi0rICAj ICh0aGUgZGlybmFtZSBvZiAkWzBdIGlzIG5vdCB0aGUgcGxhY2Ugd2hlcmUgd2UgbWlnaHQgZmlu ZCB0aGUKLSsgICMgb3JpZ2luYWwgYW5kIHNvIG9uLiAgQXV0b2NvbmYgaXMgZXNwZWNpYWxseSBz ZW5zaXRpdmUgdG8gdGhpcykuCi0rICAuICIuLyRhc19tZS5saW5lbm8iCi0rICAjIEV4aXQgc3Rh dHVzIGlzIHRoYXQgb2YgdGhlIGxhc3QgY29tbWFuZC4KLSsgIGV4aXQKLSt9Ci0rCi0rCi0raWYg KGFzX2Rpcj1gZGlybmFtZSAtLSAvYCAmJiB0ZXN0ICJYJGFzX2RpciIgPSBYLykgPi9kZXYvbnVs bCAyPiYxOyB0aGVuCi0rICBhc19kaXJuYW1lPWRpcm5hbWUKLStlbHNlCi0rICBhc19kaXJuYW1l PWZhbHNlCi0rZmkKLSsKLStFQ0hPX0M9IEVDSE9fTj0gRUNIT19UPQotK2Nhc2UgYGVjaG8gLW4g eGAgaW4KLSstbiopCi0rICBjYXNlIGBlY2hvICd4XGMnYCBpbgotKyAgKmMqKSBFQ0hPX1Q9Jwkn OzsJIyBFQ0hPX1QgaXMgc2luZ2xlIHRhYiBjaGFyYWN0ZXIuCi0rICAqKSAgIEVDSE9fQz0nXGMn OzsKLSsgIGVzYWM7OwotKyopCi0rICBFQ0hPX049Jy1uJzs7Ci0rZXNhYwotK2lmIGV4cHIgYSA6 ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxICYmCi0rICAgdGVzdCAiWGBleHByIDAwMDAxIDogJy4q XCguLi5cKSdgIiA9IFgwMDE7IHRoZW4KLSsgIGFzX2V4cHI9ZXhwcgotK2Vsc2UKLSsgIGFzX2V4 cHI9ZmFsc2UKLStmaQotKwotK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0r aWYgdGVzdCAtZCBjb25mJCQuZGlyOyB0aGVuCi0rICBybSAtZiBjb25mJCQuZGlyL2NvbmYkJC5m aWxlCi0rZWxzZQotKyAgcm0gLWYgY29uZiQkLmRpcgotKyAgbWtkaXIgY29uZiQkLmRpciAyPi9k ZXYvbnVsbAotK2ZpCi0raWYgKGVjaG8gPmNvbmYkJC5maWxlKSAyPi9kZXYvbnVsbDsgdGhlbgot KyAgaWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCi0rICAgIGFz X2xuX3M9J2xuIC1zJwotKyAgICAjIC4uLiBidXQgdGhlcmUgYXJlIHR3byBnb3RjaGFzOgotKyAg ICAjIDEpIE9uIE1TWVMsIGJvdGggYGxuIC1zIGZpbGUgZGlyJyBhbmQgYGxuIGZpbGUgZGlyJyBm YWlsLgotKyAgICAjIDIpIERKR1BQIDwgMi4wNCBoYXMgbm8gc3ltbGlua3M7IGBsbiAtcycgY3Jl YXRlcyBhIHdyYXBwZXIgZXhlY3V0YWJsZS4KLSsgICAgIyBJbiBib3RoIGNhc2VzLCB3ZSBoYXZl IHRvIGRlZmF1bHQgdG8gYGNwIC1wJy4KLSsgICAgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkLmRp ciAyPi9kZXYvbnVsbCAmJiB0ZXN0ICEgLWYgY29uZiQkLmV4ZSB8fAotKyAgICAgIGFzX2xuX3M9 J2NwIC1wJwotKyAgZWxpZiBsbiBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4K LSsgICAgYXNfbG5fcz1sbgotKyAgZWxzZQotKyAgICBhc19sbl9zPSdjcCAtcCcKLSsgIGZpCi0r ZWxzZQotKyAgYXNfbG5fcz0nY3AgLXAnCi0rZmkKLStybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBj b25mJCQuZGlyL2NvbmYkJC5maWxlIGNvbmYkJC5maWxlCi0rcm1kaXIgY29uZiQkLmRpciAyPi9k ZXYvbnVsbAotKwotK2lmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KLSsgIGFzX21rZGly X3A9OgotK2Vsc2UKLSsgIHRlc3QgLWQgLi8tcCAmJiBybWRpciAuLy1wCi0rICBhc19ta2Rpcl9w PWZhbHNlCi0rZmkKLSsKLStpZiB0ZXN0IC14IC8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBh c190ZXN0X3g9J3Rlc3QgLXgnCi0rZWxzZQotKyAgaWYgbHMgLWRMIC8gPi9kZXYvbnVsbCAyPiYx OyB0aGVuCi0rICAgIGFzX2xzX0xfb3B0aW9uPUwKLSsgIGVsc2UKLSsgICAgYXNfbHNfTF9vcHRp b249Ci0rICBmaQotKyAgYXNfdGVzdF94PScKLSsgICAgZXZhbCBzaCAtYyAnXCcnCi0rICAgICAg aWYgdGVzdCAtZCAiJDEiOyB0aGVuCi0rCXRlc3QgLWQgIiQxLy4iOwotKyAgICAgIGVsc2UKLSsJ Y2FzZSAkMSBpbgotKwktKilzZXQgIi4vJDEiOzsKLSsJZXNhYzsKLSsJY2FzZSBgbHMgLWxkJyRh c19sc19MX29wdGlvbicgIiQxIiAyPi9kZXYvbnVsbGAgaW4KLSsJPz8/W3N4XSopOjs7KilmYWxz ZTs7ZXNhYztmaQotKyAgICAnXCcnIHNoCi0rICAnCi0rZmkKLSthc19leGVjdXRhYmxlX3A9JGFz X3Rlc3RfeAotKwotKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxp ZCBDUFAgbmFtZS4KLSthc190cl9jcHA9ImV2YWwgc2VkICd5JSokYXNfY3JfbGV0dGVycyVQJGFz X2NyX0xFVFRFUlMlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgotKwotKyMgU2VkIGV4cHJlc3Np b24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCB2YXJpYWJsZSBuYW1lLgotK2FzX3RyX3No PSJldmFsIHNlZCAneSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCi0rCi0rCi0rCi0r Ci0rIyBDaGVjayB0aGF0IHdlIGFyZSBydW5uaW5nIHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLgot K1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9Ci0rCi0rY2FzZSBYJGx0X0VDSE8gaW4KLStY Ki0tZmFsbGJhY2stZWNobykKLSsgICMgUmVtb3ZlIG9uZSBsZXZlbCBvZiBxdW90YXRpb24gKHdo aWNoIHdhcyByZXF1aXJlZCBmb3IgTWFrZSkuCi0rICBFQ0hPPWBlY2hvICIkbHRfRUNITyIgfCBz ZWQgJ3MsXFxcXFwkXFwkMCwnJDAnLCdgCi0rICA7OwotK2VzYWMKLSsKLStFQ0hPPSR7bHRfRUNI Ty1lY2hvfQotK2lmIHRlc3QgIlgkMSIgPSBYLS1uby1yZWV4ZWM7IHRoZW4KLSsgICMgRGlzY2Fy ZCB0aGUgLS1uby1yZWV4ZWMgZmxhZywgYW5kIGNvbnRpbnVlLgotKyAgc2hpZnQKLStlbGlmIHRl c3QgIlgkMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0aGVuCi0rICAjIEF2b2lkIGlubGluZSBkb2N1 bWVudCBoZXJlLCBpdCBtYXkgYmUgbGVmdCBvdmVyCi0rICA6Ci0rZWxpZiB0ZXN0ICJYYHsgJEVD SE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgOyB0aGVuCi0rICAjIFlpcHBlZSwgJEVD SE8gd29ya3MhCi0rICA6Ci0rZWxzZQotKyAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNo ZWxsLgotKyAgZXhlYyAkU0hFTEwgIiQwIiAtLW5vLXJlZXhlYyAkezErIiRAIn0KLStmaQotKwot K2lmIHRlc3QgIlgkMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0aGVuCi0rICAjIHVzZWQgYXMgZmFs bGJhY2sgZWNobwotKyAgc2hpZnQKLSsgIGNhdCA8PF9MVF9FT0YKLSskKgotK19MVF9FT0YKLSsg IGV4aXQgMAotIGZpCi0gCi0tbWtkaXIgLXAgYnVpbGQvdW5peC9sb2NhbAotLXBhdGg9ImJ1aWxk L3VuaXgvbG9jYWwvcGFyYW1ldGVycyIKLS1ybSAtZiAkcGF0aAotLXRvdWNoICRwYXRoCi0tZm9y IHBhcmFtIGluICQqCi0tZG8KLS0gICAgICAgIGVjaG8gJHBhcmFtID4+ICRwYXRoCi0tZG9uZQot LQotLXByaW50ZiAnVHJ5aW5nIHRvIGZpbmQgdGhlIFRjbCBpbnRlcnByZXRlci4uLiAnCi0tdGNs X2ZvdW5kPTAKLS0KLS1mb3IgcGF0aCBpbiAiL3Vzci9iaW4vdGNsc2giIFwKLS0gICAgICAgICAg ICAiL3Vzci9sb2NhbC9iaW4vdGNsc2g4LjUiIFwKLS0gICAgICAgICAgICAiL3Vzci9sb2NhbC9i aW4vdGNsc2g4LjQiIFwKLS0gICAgICAgICAgICAiL3Vzci9sb2NhbC9iaW4vdGNsc2g4LjMiOyBk bwotLSAgICBpZiBbIC14ICRwYXRoIF0KLS0gICAgdGhlbgotLSAgICAgICAgZWNobyAkcGF0aCA+ IGJ1aWxkL3VuaXgvbG9jYWwvdGNsCi0tICAgICAgICBlY2hvICRwYXRoCi0tICAgICAgICB0Y2xf Zm91bmQ9MQotKyMgVGhlIEhQLVVYIGtzaCBhbmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdl dCBkaXJlY3RvcnkgdG8gc3Rkb3V0Ci0rIyBpZiBDRFBBVEggaXMgc2V0LgotKyh1bnNldCBDRFBB VEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKLSsKLStpZiB0ZXN0IC16ICIkbHRf RUNITyI7IHRoZW4KLSsgIGlmIHRlc3QgIlgke2VjaG9fdGVzdF9zdHJpbmcrc2V0fSIgIT0gWHNl dDsgdGhlbgotKyAgICAjIGZpbmQgYSBzdHJpbmcgYXMgbGFyZ2UgYXMgcG9zc2libGUsIGFzIGxv bmcgYXMgdGhlIHNoZWxsIGNhbiBjb3BlIHdpdGggaXQKLSsgICAgZm9yIGNtZCBpbiAnc2VkIDUw cSAiJDAiJyAnc2VkIDIwcSAiJDAiJyAnc2VkIDEwcSAiJDAiJyAnc2VkIDJxICIkMCInICdlY2hv IHRlc3QnOyBkbwotKyAgICAgICMgZXhwZWN0ZWQgc2l6ZXM6IGxlc3MgdGhhbiAyS2IsIDFLYiwg NTEyIGJ5dGVzLCAxNiBieXRlcywgLi4uCi0rICAgICAgaWYgeyBlY2hvX3Rlc3Rfc3RyaW5nPWBl dmFsICRjbWRgOyB9IDI+L2Rldi9udWxsICYmCi0rCSB7IHRlc3QgIlgkZWNob190ZXN0X3N0cmlu ZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbAotKyAgICAgIHRoZW4KLSsg ICAgICAgIGJyZWFrCi0rICAgICAgZmkKLSsgICAgZG9uZQotKyAgZmkKLSsKLSsgIGlmIHRlc3Qg IlhgeyAkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotKyAgICAgZWNob190 ZXN0aW5nX3N0cmluZz1geyAkRUNITyAiJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxs YCAmJgotKyAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9z dHJpbmciOyB0aGVuCi0rICAgIDoKLSsgIGVsc2UKLSsgICAgIyBUaGUgU29sYXJpcywgQUlYLCBh bmQgRGlnaXRhbCBVbml4IGRlZmF1bHQgZWNobyBwcm9ncmFtcyB1bnF1b3RlCi0rICAgICMgYmFj a3NsYXNoZXMuICBUaGlzIG1ha2VzIGl0IGltcG9zc2libGUgdG8gcXVvdGUgYmFja3NsYXNoZXMg dXNpbmcKLSsgICAgIyAgIGVjaG8gIiRzb21ldGhpbmciIHwgc2VkICdzL1xcL1xcXFwvZycKLSsg ICAgIwotKyAgICAjIFNvLCBmaXJzdCB3ZSBsb29rIGZvciBhIHdvcmtpbmcgZWNobyBpbiB0aGUg dXNlcidzIFBBVEguCi0rCi0rICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFS QVRPUgotKyAgICBmb3IgZGlyIGluICRQQVRIIC91c3IvdWNiOyBkbwotKyAgICAgIElGUz0iJGx0 X3NhdmVfaWZzIgotKyAgICAgIGlmICh0ZXN0IC1mICRkaXIvZWNobyB8fCB0ZXN0IC1mICRkaXIv ZWNobyRhY19leGVleHQpICYmCi0rICAgICAgICAgdGVzdCAiWGAoJGRpci9lY2hvICdcdCcpIDI+ L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotKyAgICAgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgk ZGlyL2VjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCi0rICAgICAgICAg dGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVu Ci0rICAgICAgICBFQ0hPPSIkZGlyL2VjaG8iCi0gICAgICAgICBicmVhawotKyAgICAgIGZpCi0r ICAgIGRvbmUKLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rCi0rICAgIGlmIHRlc3QgIlgkRUNI TyIgPSBYZWNobzsgdGhlbgotKyAgICAgICMgV2UgZGlkbid0IGZpbmQgYSBiZXR0ZXIgZWNobywg c28gbG9vayBmb3IgYWx0ZXJuYXRpdmVzLgotKyAgICAgIGlmIHRlc3QgIlhgeyBwcmludCAtciAn XHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotKyAgICAgICAgIGVjaG9fdGVzdGluZ19z dHJpbmc9YHsgcHJpbnQgLXIgIiRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYK LSsgICAgICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0 cmluZyI7IHRoZW4KLSsgICAgICAgICMgVGhpcyBzaGVsbCBoYXMgYSBidWlsdGluIHByaW50IC1y IHRoYXQgZG9lcyB0aGUgdHJpY2suCi0rICAgICAgICBFQ0hPPSdwcmludCAtcicKLSsgICAgICBl bGlmIHsgdGVzdCAtZiAvYmluL2tzaCB8fCB0ZXN0IC1mIC9iaW4va3NoJGFjX2V4ZWV4dDsgfSAm JgotKwkgICB0ZXN0ICJYJENPTkZJR19TSEVMTCIgIT0gWC9iaW4va3NoOyB0aGVuCi0rICAgICAg ICAjIElmIHdlIGhhdmUga3NoLCB0cnkgcnVubmluZyBjb25maWd1cmUgYWdhaW4gd2l0aCBpdC4K LSsgICAgICAgIE9SSUdJTkFMX0NPTkZJR19TSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQot KyAgICAgICAgZXhwb3J0IE9SSUdJTkFMX0NPTkZJR19TSEVMTAotKyAgICAgICAgQ09ORklHX1NI RUxMPS9iaW4va3NoCi0rICAgICAgICBleHBvcnQgQ09ORklHX1NIRUxMCi0rICAgICAgICBleGVj ICRDT05GSUdfU0hFTEwgIiQwIiAtLW5vLXJlZXhlYyAkezErIiRAIn0KLSsgICAgICBlbHNlCi0r ICAgICAgICAjIFRyeSB1c2luZyBwcmludGYuCi0rICAgICAgICBFQ0hPPSdwcmludGYgJXNcbicK LSsgICAgICAgIGlmIHRlc3QgIlhgeyAkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0 JyAmJgotKwkgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWB7ICRFQ0hPICIkZWNob190ZXN0X3N0cmlu ZyI7IH0gMj4vZGV2L251bGxgICYmCi0rCSAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIg PSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgotKwkgICMgQ29vbCwgcHJpbnRmIHdvcmtzCi0r CSAgOgotKyAgICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJ R19TSEVMTCAiJDAiIC0tZmFsbGJhY2stZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAgJiYKLSsJICAg ICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gJ1hcdCcgJiYKLSsJICAgICBlY2hvX3Rl c3Rpbmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJR19TSEVMTCAiJDAiIC0tZmFsbGJhY2stZWNo byAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKLSsJICAgICB0ZXN0ICJYJGVj aG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsJICBDT05G SUdfU0hFTEw9JE9SSUdJTkFMX0NPTkZJR19TSEVMTAotKwkgIGV4cG9ydCBDT05GSUdfU0hFTEwK LSsJICBTSEVMTD0iJENPTkZJR19TSEVMTCIKLSsJICBleHBvcnQgU0hFTEwKLSsJICBFQ0hPPSIk Q09ORklHX1NIRUxMICQwIC0tZmFsbGJhY2stZWNobyIKLSsgICAgICAgIGVsaWYgZWNob190ZXN0 aW5nX3N0cmluZz1gKCRDT05GSUdfU0hFTEwgIiQwIiAtLWZhbGxiYWNrLWVjaG8gJ1x0JykgMj4v ZGV2L251bGxgICYmCi0rCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICdYXHQn ICYmCi0rCSAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRDT05GSUdfU0hFTEwgIiQwIiAtLWZh bGxiYWNrLWVjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCi0rCSAgICAg dGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVu Ci0rCSAgRUNITz0iJENPTkZJR19TSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8iCi0rICAgICAgICBl bHNlCi0rCSAgIyBtYXliZSB3aXRoIGEgc21hbGxlciBzdHJpbmcuLi4KLSsJICBwcmV2PToKLSsK LSsJICBmb3IgY21kIGluICdlY2hvIHRlc3QnICdzZWQgMnEgIiQwIicgJ3NlZCAxMHEgIiQwIicg J3NlZCAyMHEgIiQwIicgJ3NlZCA1MHEgIiQwIic7IGRvCi0rCSAgICBpZiB7IHRlc3QgIlgkZWNo b190ZXN0X3N0cmluZyIgPSAiWGBldmFsICRjbWRgIjsgfSAyPi9kZXYvbnVsbAotKwkgICAgdGhl bgotKwkgICAgICBicmVhawotKwkgICAgZmkKLSsJICAgIHByZXY9IiRjbWQiCi0rCSAgZG9uZQot KwotKwkgIGlmIHRlc3QgIiRwcmV2IiAhPSAnc2VkIDUwcSAiJDAiJzsgdGhlbgotKwkgICAgZWNo b190ZXN0X3N0cmluZz1gZXZhbCAkcHJldmAKLSsJICAgIGV4cG9ydCBlY2hvX3Rlc3Rfc3RyaW5n Ci0rCSAgICBleGVjICR7T1JJR0lOQUxfQ09ORklHX1NIRUxMLSR7Q09ORklHX1NIRUxMLS9iaW4v c2h9fSAiJDAiICR7MSsiJEAifQotKwkgIGVsc2UKLSsJICAgICMgT29wcy4gIFdlIGxvc3QgY29t cGxldGVseSwgc28ganVzdCBzdGljayB3aXRoIGVjaG8uCi0rCSAgICBFQ0hPPWVjaG8KLSsJICBm aQotKyAgICAgICAgZmkKLSsgICAgICBmaQotICAgICBmaQotKyAgZmkKLStmaQotKwotKyMgQ29w eSBlY2hvIGFuZCBxdW90ZSB0aGUgY29weSBzdWl0YWJseSBmb3IgcGFzc2luZyB0byBsaWJ0b29s IGZyb20KLSsjIHRoZSBNYWtlZmlsZSwgaW5zdGVhZCBvZiBxdW90aW5nIHRoZSBvcmlnaW5hbCwg d2hpY2ggaXMgdXNlZCBsYXRlci4KLStsdF9FQ0hPPSRFQ0hPCi0raWYgdGVzdCAiWCRsdF9FQ0hP IiA9ICJYJENPTkZJR19TSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8iOyB0aGVuCi0rICAgbHRfRUNI Tz0iJENPTkZJR19TSEVMTCBcXFwkXCQwIC0tZmFsbGJhY2stZWNobyIKLStmaQotKwotKwotKwot KwotK2V4ZWMgNzwmMCA8L2Rldi9udWxsIDY+JjEKLSsKLSsjIE5hbWUgb2YgdGhlIGhvc3QuCi0r IyBob3N0bmFtZSBvbiBzb21lIHN5c3RlbXMgKFNWUjMuMiwgTGludXgpIHJldHVybnMgYSBib2d1 cyBleGl0IHN0YXR1cywKLSsjIHNvIHVuYW1lIGdldHMgcnVuIHRvby4KLSthY19ob3N0bmFtZT1g KGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKLSsKLSsjCi0rIyBJ bml0aWFsaXphdGlvbnMuCi0rIwotK2FjX2RlZmF1bHRfcHJlZml4PS91c3IvbG9jYWwKLSthY19j bGVhbl9maWxlcz0KLSthY19jb25maWdfbGlib2JqX2Rpcj0uCi0rTElCT0JKUz0KLStjcm9zc19j b21waWxpbmc9bm8KLStzdWJkaXJzPQotK01GTEFHUz0KLStNQUtFRkxBR1M9Ci0rU0hFTEw9JHtD T05GSUdfU0hFTEwtL2Jpbi9zaH0KLSsKLSsjIElkZW50aXR5IG9mIHRoaXMgcGFja2FnZS4KLStQ QUNLQUdFX05BTUU9J1NPQ0knCi0rUEFDS0FHRV9UQVJOQU1FPSdzb2NpJwotK1BBQ0tBR0VfVkVS U0lPTj0nMy4wLjAnCi0rUEFDS0FHRV9TVFJJTkc9J1NPQ0kgMy4wLjAnCi0rUEFDS0FHRV9CVUdS RVBPUlQ9J21zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldCcKLSsKLSthY191bmlxdWVfZmls ZT0ic29jaS9jb3JlL2Vycm9yLmNwcCIKLSsjIEZhY3RvcmluZyBkZWZhdWx0IGhlYWRlcnMgZm9y IG1vc3QgdGVzdHMuCi0rYWNfaW5jbHVkZXNfZGVmYXVsdD0iXAotKyNpbmNsdWRlIDxzdGRpby5o PgotKyNpZmRlZiBIQVZFX1NZU19UWVBFU19ICi0rIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSsj ZW5kaWYKLSsjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICi0rIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgot KyNlbmRpZgotKyNpZmRlZiBTVERDX0hFQURFUlMKLSsjIGluY2x1ZGUgPHN0ZGxpYi5oPgotKyMg aW5jbHVkZSA8c3RkZGVmLmg+Ci0rI2Vsc2UKLSsjIGlmZGVmIEhBVkVfU1RETElCX0gKLSsjICBp bmNsdWRlIDxzdGRsaWIuaD4KLSsjIGVuZGlmCi0rI2VuZGlmCi0rI2lmZGVmIEhBVkVfU1RSSU5H X0gKLSsjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gK LSsjICBpbmNsdWRlIDxtZW1vcnkuaD4KLSsjIGVuZGlmCi0rIyBpbmNsdWRlIDxzdHJpbmcuaD4K LSsjZW5kaWYKLSsjaWZkZWYgSEFWRV9TVFJJTkdTX0gKLSsjIGluY2x1ZGUgPHN0cmluZ3MuaD4K LSsjZW5kaWYKLSsjaWZkZWYgSEFWRV9JTlRUWVBFU19ICi0rIyBpbmNsdWRlIDxpbnR0eXBlcy5o PgotKyNlbmRpZgotKyNpZmRlZiBIQVZFX1NURElOVF9ICi0rIyBpbmNsdWRlIDxzdGRpbnQuaD4K LSsjZW5kaWYKLSsjaWZkZWYgSEFWRV9VTklTVERfSAotKyMgaW5jbHVkZSA8dW5pc3RkLmg+Ci0r I2VuZGlmIgotKwotK2FjX3N1YnN0X3ZhcnM9J2FtX19FWEVFWFRfRkFMU0UKLSthbV9fRVhFRVhU X1RSVUUKLStMVExJQk9CSlMKLStMSUJPQkpTCi0rUlVOX1RFU1RTX0ZBTFNFCi0rUlVOX1RFU1RT X1RSVUUKLStzZWRfb2sKLStkaWZmX29rCi0rSFRNTF9ET0NfRkFMU0UKLStIVE1MX0RPQ19UUlVF Ci0rUEVSTAotK2dzX29rCi0rZHZpcHNfb2sKLStsYXRleF9vawotK2RveHlnZW5fb2sKLStJTkZP X0RPQ19GQUxTRQotK0lORk9fRE9DX1RSVUUKLStQT1NUR1JFU1FMX0RJUlMKLStIQVZFX1BPU1RH UkVTUUxfRkFMU0UKLStIQVZFX1BPU1RHUkVTUUxfVFJVRQotK1BPU1RHUkVTUUxfTERGTEFHUwot K1BPU1RHUkVTUUxfQ0ZMQUdTCi0rUE9TVEdSRVNRTF9WRVJTSU9OCi0rUEdfQ09ORklHCi0rT1JB Q0xFX0RJUlMKLStIQVZFX09SQUNMRV9GQUxTRQotK0hBVkVfT1JBQ0xFX1RSVUUKLStPUkFDTEVf T0NJX0xERkxBR1MKLStPUkFDTEVfT0NJX0NGTEFHUwotK09SQUNMRV9PQ0lfVkVSU0lPTgotK01Z U1FMX0RJUlMKLStIQVZFX01ZU1FMX0ZBTFNFCi0rSEFWRV9NWVNRTF9UUlVFCi0rTVlTUUxfQ19M SUIKLStNWVNRTF9MSUJTCi0rTVlTUUxfQ0ZMQUdTCi0rTVlTUUxfVkVSU0lPTgotK0JPT1NUX1ZF UlNJT04KLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQgotK0JPT1NUX01QSV9QWVRIT05f TElCCi0rQk9PU1RfTVBJX0xJQgotK0JPT1NUX1BZVEhPTl9MSUIKLStCT09TVF9SRUdFWF9MSUIK LStCT09TVF9EQVRFX1RJTUVfTElCCi0rQk9PU1RfU0lHTkFMU19MSUIKLStCT09TVF9XU0VSSUFM SVpBVElPTl9MSUIKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQgotK0JPT1NUX0lPU1RSRUFNU19M SUIKLStCT09TVF9USFJFQURfTElCCi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQgotK0JPT1NU X1NZU1RFTV9MSUIKLStCT09TVF9GSUxFU1lTVEVNX0xJQgotK0JPT1NUX0xJQlMKLStCT09TVF9D RkxBR1MKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQKLStTT0NJX1BPU1RHUkVTUUxf SEVBREVSU19CVVJJRURfRkFMU0UKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfVFJV RQotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVE X0ZBTFNFCi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9UUlVFCi0rU09DSV9IRUFERVJTX0JV UklFRAotK1NPQ0lfSEVBREVSU19CVVJJRURfRkFMU0UKLStTT0NJX0hFQURFUlNfQlVSSUVEX1RS VUUKLStDUFAKLStPVE9PTDY0Ci0rT1RPT0wKLStMSVBPCi0rTk1FRElUCi0rRFNZTVVUSUwKLSts dF9FQ0hPCi0rUkFOTElCCi0rQVIKLStPQkpEVU1QCi0rTE5fUwotK05NCi0rYWNfY3RfRFVNUEJJ TgotK0RVTVBCSU4KLStMRAotK0ZHUkVQCi0rRUdSRVAKLStHUkVQCi0rU0VECi0rYW1fX2Zhc3Rk ZXBDQ19GQUxTRQotK2FtX19mYXN0ZGVwQ0NfVFJVRQotK0NDREVQTU9ERQotK2FjX2N0X0NDCi0r Q0ZMQUdTCi0rQ0MKLStMSUJUT09MCi0rQ1hYQ1BQCi0rYW1fX2Zhc3RkZXBDWFhfRkFMU0UKLSth bV9fZmFzdGRlcENYWF9UUlVFCi0rQ1hYREVQTU9ERQotK0FNREVQQkFDS1NMQVNICi0rQU1ERVBf RkFMU0UKLStBTURFUF9UUlVFCi0rYW1fX3F1b3RlCi0rYW1fX2luY2x1ZGUKLStERVBESVIKLStP QkpFWFQKLStFWEVFWFQKLSthY19jdF9DWFgKLStDUFBGTEFHUwotK0xERkxBR1MKLStDWFhGTEFH UwotK0NYWAotK2hvc3Rfb3MKLStob3N0X3ZlbmRvcgotK2hvc3RfY3B1Ci0raG9zdAotK2J1aWxk X29zCi0rYnVpbGRfdmVuZG9yCi0rYnVpbGRfY3B1Ci0rYnVpbGQKLStVUExPQURfQ09NTUFORAot K0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OCi0rUlBNX1JFTEVBU0UKLStIQVZFX0NQUFVOSVRfRkFM U0UKLStIQVZFX0NQUFVOSVRfVFJVRQotK0NQUFVOSVRfVkVSU0lPTgotK0NQUFVOSVRfTElCUwot K0NQUFVOSVRfQ0ZMQUdTCi0rQ1BQVU5JVF9DT05GSUcKLSthbV9fdW50YXIKLSthbV9fdGFyCi0r QU1UQVIKLSthbV9fbGVhZGluZ19kb3QKLStTRVRfTUFLRQotK0FXSwotK21rZGlyX3AKLStNS0RJ Ul9QCi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNCi0rU1RSSVAKLStpbnN0YWxsX3NoCi0rTUFLRUlO Rk8KLStBVVRPSEVBREVSCi0rQVVUT01BS0UKLStBVVRPQ09ORgotK0FDTE9DQUwKLStWRVJTSU9O Ci0rUEFDS0FHRQotK0NZR1BBVEhfVwotK2FtX19pc3JjCi0rSU5TVEFMTF9EQVRBCi0rSU5TVEFM TF9TQ1JJUFQKLStJTlNUQUxMX1BST0dSQU0KLSt0YXJnZXRfYWxpYXMKLStob3N0X2FsaWFzCi0r YnVpbGRfYWxpYXMKLStMSUJTCi0rRUNIT19UCi0rRUNIT19OCi0rRUNIT19DCi0rREVGUwotK21h bmRpcgotK2xvY2FsZWRpcgotK2xpYmRpcgotK3BzZGlyCi0rcGRmZGlyCi0rZHZpZGlyCi0raHRt bGRpcgotK2luZm9kaXIKLStkb2NkaXIKLStvbGRpbmNsdWRlZGlyCi0raW5jbHVkZWRpcgotK2xv Y2Fsc3RhdGVkaXIKLStzaGFyZWRzdGF0ZWRpcgotK3N5c2NvbmZkaXIKLStkYXRhZGlyCi0rZGF0 YXJvb3RkaXIKLStsaWJleGVjZGlyCi0rc2JpbmRpcgotK2JpbmRpcgotK3Byb2dyYW1fdHJhbnNm b3JtX25hbWUKLStwcmVmaXgKLStleGVjX3ByZWZpeAotK1BBQ0tBR0VfQlVHUkVQT1JUCi0rUEFD S0FHRV9TVFJJTkcKLStQQUNLQUdFX1ZFUlNJT04KLStQQUNLQUdFX1RBUk5BTUUKLStQQUNLQUdF X05BTUUKLStQQVRIX1NFUEFSQVRPUgotK1NIRUxMJwotK2FjX3N1YnN0X2ZpbGVzPScnCi0rYWNf dXNlcl9vcHRzPScKLStlbmFibGVfb3B0aW9uX2NoZWNraW5nCi0rd2l0aF9jcHB1bml0X3ByZWZp eAotK3dpdGhfY3BwdW5pdF9leGVjX3ByZWZpeAotK2VuYWJsZV9zaGFyZWQKLStlbmFibGVfc3Rh dGljCi0rZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmcKLSt3aXRoX3BpYwotK2VuYWJsZV9mYXN0 X2luc3RhbGwKLSt3aXRoX2dudV9sZAotK2VuYWJsZV9saWJ0b29sX2xvY2sKLStlbmFibGVfZXhj ZXB0aW9ucwotK2VuYWJsZV9pbmZvX2RvYwotK2VuYWJsZV9odG1sX2RvYwotK3dpdGhfZG9jZGly Ci0rZW5hYmxlX2J1cnJpZWRfaGVhZGVycwotK2VuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMK LStlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMKLSt3aXRoX2Jvb3N0Ci0rZW5hYmxl X2JhY2tlbmRfbXlzcWwKLSt3aXRoX215c3FsCi0rd2l0aF9teXNxbF9saWIKLSt3aXRoX215c3Fs X2luY2x1ZGUKLStlbmFibGVfYmFja2VuZF9vcmFjbGUKLSt3aXRoX29yYWNsZQotK3dpdGhfb3Jh Y2xlX2luY2x1ZGUKLSt3aXRoX29yYWNsZV9saWIKLStlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3Fs Ci0rd2l0aF9wb3N0Z3Jlc3FsCi0rJwotKyAgICAgIGFjX3ByZWNpb3VzX3ZhcnM9J2J1aWxkX2Fs aWFzCi0raG9zdF9hbGlhcwotK3RhcmdldF9hbGlhcwotK0NYWAotK0NYWEZMQUdTCi0rTERGTEFH UwotK0xJQlMKLStDUFBGTEFHUwotK0NDQwotK0NYWENQUAotK0NDCi0rQ0ZMQUdTCi0rQ1BQJwot KwotKwotKyMgSW5pdGlhbGl6ZSBzb21lIHZhcmlhYmxlcyBzZXQgYnkgb3B0aW9ucy4KLSthY19p bml0X2hlbHA9Ci0rYWNfaW5pdF92ZXJzaW9uPWZhbHNlCi0rYWNfdW5yZWNvZ25pemVkX29wdHM9 Ci0rYWNfdW5yZWNvZ25pemVkX3NlcD0KLSsjIFRoZSB2YXJpYWJsZXMgaGF2ZSB0aGUgc2FtZSBu YW1lcyBhcyB0aGUgb3B0aW9ucywgd2l0aAotKyMgZGFzaGVzIGNoYW5nZWQgdG8gdW5kZXJsaW5l cy4KLStjYWNoZV9maWxlPS9kZXYvbnVsbAotK2V4ZWNfcHJlZml4PU5PTkUKLStub19jcmVhdGU9 Ci0rbm9fcmVjdXJzaW9uPQotK3ByZWZpeD1OT05FCi0rcHJvZ3JhbV9wcmVmaXg9Tk9ORQotK3By b2dyYW1fc3VmZml4PU5PTkUKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPXMseCx4LAotK3NpbGVu dD0KLStzaXRlPQotK3NyY2Rpcj0KLSt2ZXJib3NlPQotK3hfaW5jbHVkZXM9Tk9ORQotK3hfbGli cmFyaWVzPU5PTkUKLSsKLSsjIEluc3RhbGxhdGlvbiBkaXJlY3Rvcnkgb3B0aW9ucy4KLSsjIFRo ZXNlIGFyZSBsZWZ0IHVuZXhwYW5kZWQgc28gdXNlcnMgY2FuICJtYWtlIGluc3RhbGwgZXhlY19w cmVmaXg9L2ZvbyIKLSsjIGFuZCBhbGwgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBzdXBwb3NlZCB0 byBiZSBiYXNlZCBvbiBleGVjX3ByZWZpeAotKyMgYnkgZGVmYXVsdCB3aWxsIGFjdHVhbGx5IGNo YW5nZS4KLSsjIFVzZSBicmFjZXMgaW5zdGVhZCBvZiBwYXJlbnMgYmVjYXVzZSBzaCwgcGVybCwg ZXRjLiBhbHNvIGFjY2VwdCB0aGVtLgotKyMgKFRoZSBsaXN0IGZvbGxvd3MgdGhlIHNhbWUgb3Jk ZXIgYXMgdGhlIEdOVSBDb2RpbmcgU3RhbmRhcmRzLikKLStiaW5kaXI9JyR7ZXhlY19wcmVmaXh9 L2JpbicKLStzYmluZGlyPScke2V4ZWNfcHJlZml4fS9zYmluJwotK2xpYmV4ZWNkaXI9JyR7ZXhl Y19wcmVmaXh9L2xpYmV4ZWMnCi0rZGF0YXJvb3RkaXI9JyR7cHJlZml4fS9zaGFyZScKLStkYXRh ZGlyPScke2RhdGFyb290ZGlyfScKLStzeXNjb25mZGlyPScke3ByZWZpeH0vZXRjJwotK3NoYXJl ZHN0YXRlZGlyPScke3ByZWZpeH0vY29tJwotK2xvY2Fsc3RhdGVkaXI9JyR7cHJlZml4fS92YXIn Ci0raW5jbHVkZWRpcj0nJHtwcmVmaXh9L2luY2x1ZGUnCi0rb2xkaW5jbHVkZWRpcj0nL3Vzci9p bmNsdWRlJwotK2RvY2Rpcj0nJHtkYXRhcm9vdGRpcn0vZG9jLyR7UEFDS0FHRV9UQVJOQU1FfScK LStpbmZvZGlyPScke2RhdGFyb290ZGlyfS9pbmZvJwotK2h0bWxkaXI9JyR7ZG9jZGlyfScKLStk dmlkaXI9JyR7ZG9jZGlyfScKLStwZGZkaXI9JyR7ZG9jZGlyfScKLStwc2Rpcj0nJHtkb2NkaXJ9 JwotK2xpYmRpcj0nJHtleGVjX3ByZWZpeH0vbGliJwotK2xvY2FsZWRpcj0nJHtkYXRhcm9vdGRp cn0vbG9jYWxlJwotK21hbmRpcj0nJHtkYXRhcm9vdGRpcn0vbWFuJwotKwotK2FjX3ByZXY9Ci0r YWNfZGFzaGRhc2g9Ci0rZm9yIGFjX29wdGlvbgotK2RvCi0rICAjIElmIHRoZSBwcmV2aW91cyBv cHRpb24gbmVlZHMgYW4gYXJndW1lbnQsIGFzc2lnbiBpdC4KLSsgIGlmIHRlc3QgLW4gIiRhY19w cmV2IjsgdGhlbgotKyAgICBldmFsICRhY19wcmV2PVwkYWNfb3B0aW9uCi0rICAgIGFjX3ByZXY9 Ci0rICAgIGNvbnRpbnVlCi0rICBmaQotKwotKyAgY2FzZSAkYWNfb3B0aW9uIGluCi0rICAqPSop CWFjX29wdGFyZz1gZXhwciAiWCRhY19vcHRpb24iIDogJ1tePV0qPVwoLipcKSdgIDs7Ci0rICAq KQlhY19vcHRhcmc9eWVzIDs7Ci0rICBlc2FjCi0rCi0rICAjIEFjY2VwdCB0aGUgaW1wb3J0YW50 IEN5Z251cyBjb25maWd1cmUgb3B0aW9ucywgc28gd2UgY2FuIGRpYWdub3NlIHR5cG9zLgotKwot KyAgY2FzZSAkYWNfZGFzaGRhc2gkYWNfb3B0aW9uIGluCi0rICAtLSkKLSsgICAgYWNfZGFzaGRh c2g9eWVzIDs7Ci0rCi0rICAtYmluZGlyIHwgLS1iaW5kaXIgfCAtLWJpbmRpIHwgLS1iaW5kIHwg LS1iaW4gfCAtLWJpKQotKyAgICBhY19wcmV2PWJpbmRpciA7OwotKyAgLWJpbmRpcj0qIHwgLS1i aW5kaXI9KiB8IC0tYmluZGk9KiB8IC0tYmluZD0qIHwgLS1iaW49KiB8IC0tYmk9KikKLSsgICAg YmluZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1idWlsZCB8IC0tYnVpbGQgfCAtLWJ1aWwgfCAt LWJ1aSB8IC0tYnUpCi0rICAgIGFjX3ByZXY9YnVpbGRfYWxpYXMgOzsKLSsgIC1idWlsZD0qIHwg LS1idWlsZD0qIHwgLS1idWlsPSogfCAtLWJ1aT0qIHwgLS1idT0qKQotKyAgICBidWlsZF9hbGlh cz0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtY2FjaGUtZmlsZSB8IC0tY2FjaGUtZmlsZSB8IC0tY2Fj aGUtZmlsIHwgLS1jYWNoZS1maSBcCi0rICB8IC0tY2FjaGUtZiB8IC0tY2FjaGUtIHwgLS1jYWNo ZSB8IC0tY2FjaCB8IC0tY2FjIHwgLS1jYSB8IC0tYykKLSsgICAgYWNfcHJldj1jYWNoZV9maWxl IDs7Ci0rICAtY2FjaGUtZmlsZT0qIHwgLS1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbD0qIHwg LS1jYWNoZS1maT0qIFwKLSsgIHwgLS1jYWNoZS1mPSogfCAtLWNhY2hlLT0qIHwgLS1jYWNoZT0q IHwgLS1jYWNoPSogfCAtLWNhYz0qIHwgLS1jYT0qIHwgLS1jPSopCi0rICAgIGNhY2hlX2ZpbGU9 JGFjX29wdGFyZyA7OwotKwotKyAgLS1jb25maWctY2FjaGUgfCAtQykKLSsgICAgY2FjaGVfZmls ZT1jb25maWcuY2FjaGUgOzsKLSsKLSsgIC1kYXRhZGlyIHwgLS1kYXRhZGlyIHwgLS1kYXRhZGkg fCAtLWRhdGFkKQotKyAgICBhY19wcmV2PWRhdGFkaXIgOzsKLSsgIC1kYXRhZGlyPSogfCAtLWRh dGFkaXI9KiB8IC0tZGF0YWRpPSogfCAtLWRhdGFkPSopCi0rICAgIGRhdGFkaXI9JGFjX29wdGFy ZyA7OwotKwotKyAgLWRhdGFyb290ZGlyIHwgLS1kYXRhcm9vdGRpciB8IC0tZGF0YXJvb3RkaSB8 IC0tZGF0YXJvb3RkIHwgLS1kYXRhcm9vdCBcCi0rICB8IC0tZGF0YXJvbyB8IC0tZGF0YXJvIHwg LS1kYXRhcikKLSsgICAgYWNfcHJldj1kYXRhcm9vdGRpciA7OwotKyAgLWRhdGFyb290ZGlyPSog fCAtLWRhdGFyb290ZGlyPSogfCAtLWRhdGFyb290ZGk9KiB8IC0tZGF0YXJvb3RkPSogXAotKyAg fCAtLWRhdGFyb290PSogfCAtLWRhdGFyb289KiB8IC0tZGF0YXJvPSogfCAtLWRhdGFyPSopCi0r ICAgIGRhdGFyb290ZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1kaXNhYmxlLSogfCAtLWRpc2Fi bGUtKikKLSsgICAgYWNfdXNlcm9wdD1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKmRpc2FibGUt XCguKlwpJ2AKLSsgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZh cmlhYmxlIG5hbWVzLgotKyAgICBleHByICJ4JGFjX3VzZXJvcHQiIDogIi4qW14tKy5fJGFzX2Ny X2FsbnVtXSIgPi9kZXYvbnVsbCAmJgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IGludmFsaWQgZmVhdHVyZSBuYW1lOiAkYWNfdXNlcm9wdCIgPiYyCi0rICAgeyAoZXhpdCAxKTsg ZXhpdCAxOyB9OyB9Ci0rICAgIGFjX3VzZXJvcHRfb3JpZz0kYWNfdXNlcm9wdAotKyAgICBhY191 c2Vyb3B0PWAkYXNfZWNobyAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydgCi0rICAg IGNhc2UgJGFjX3VzZXJfb3B0cyBpbgotKyAgICAgICoiCi0rImVuYWJsZV8kYWNfdXNlcm9wdCIK LSsiKikgOzsKLSsgICAgICAqKSBhY191bnJlY29nbml6ZWRfb3B0cz0iJGFjX3VucmVjb2duaXpl ZF9vcHRzJGFjX3VucmVjb2duaXplZF9zZXAtLWRpc2FibGUtJGFjX3VzZXJvcHRfb3JpZyIKLSsJ IGFjX3VucmVjb2duaXplZF9zZXA9JywgJzs7Ci0rICAgIGVzYWMKLSsgICAgZXZhbCBlbmFibGVf JGFjX3VzZXJvcHQ9bm8gOzsKLSsKLSsgIC1kb2NkaXIgfCAtLWRvY2RpciB8IC0tZG9jZGkgfCAt LWRvYyB8IC0tZG8pCi0rICAgIGFjX3ByZXY9ZG9jZGlyIDs7Ci0rICAtZG9jZGlyPSogfCAtLWRv Y2Rpcj0qIHwgLS1kb2NkaT0qIHwgLS1kb2M9KiB8IC0tZG89KikKLSsgICAgZG9jZGlyPSRhY19v cHRhcmcgOzsKLSsKLSsgIC1kdmlkaXIgfCAtLWR2aWRpciB8IC0tZHZpZGkgfCAtLWR2aWQgfCAt LWR2aSB8IC0tZHYpCi0rICAgIGFjX3ByZXY9ZHZpZGlyIDs7Ci0rICAtZHZpZGlyPSogfCAtLWR2 aWRpcj0qIHwgLS1kdmlkaT0qIHwgLS1kdmlkPSogfCAtLWR2aT0qIHwgLS1kdj0qKQotKyAgICBk dmlkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWVuYWJsZS0qIHwgLS1lbmFibGUtKikKLSsgICAg YWNfdXNlcm9wdD1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKmVuYWJsZS1cKFtePV0qXCknYAot KyAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFt ZXMuCi0rICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxudW1dIiA+ L2Rldi9udWxsICYmCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBm ZWF0dXJlIG5hbWU6ICRhY191c2Vyb3B0IiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07 IH0KLSsgICAgYWNfdXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0Ci0rICAgIGFjX3VzZXJvcHQ9YCRh c19lY2hvICIkYWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AKLSsgICAgY2FzZSAkYWNf dXNlcl9vcHRzIGluCi0rICAgICAgKiIKLSsiZW5hYmxlXyRhY191c2Vyb3B0IgotKyIqKSA7Owot KyAgICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMkYWNf dW5yZWNvZ25pemVkX3NlcC0tZW5hYmxlLSRhY191c2Vyb3B0X29yaWciCi0rCSBhY191bnJlY29n bml6ZWRfc2VwPScsICc7OwotKyAgICBlc2FjCi0rICAgIGV2YWwgZW5hYmxlXyRhY191c2Vyb3B0 PVwkYWNfb3B0YXJnIDs7Ci0rCi0rICAtZXhlYy1wcmVmaXggfCAtLWV4ZWNfcHJlZml4IHwgLS1l eGVjLXByZWZpeCB8IC0tZXhlYy1wcmVmaSBcCi0rICB8IC0tZXhlYy1wcmVmIHwgLS1leGVjLXBy ZSB8IC0tZXhlYy1wciB8IC0tZXhlYy1wIHwgLS1leGVjLSBcCi0rICB8IC0tZXhlYyB8IC0tZXhl IHwgLS1leCkKLSsgICAgYWNfcHJldj1leGVjX3ByZWZpeCA7OwotKyAgLWV4ZWMtcHJlZml4PSog fCAtLWV4ZWNfcHJlZml4PSogfCAtLWV4ZWMtcHJlZml4PSogfCAtLWV4ZWMtcHJlZmk9KiBcCi0r ICB8IC0tZXhlYy1wcmVmPSogfCAtLWV4ZWMtcHJlPSogfCAtLWV4ZWMtcHI9KiB8IC0tZXhlYy1w PSogfCAtLWV4ZWMtPSogXAotKyAgfCAtLWV4ZWM9KiB8IC0tZXhlPSogfCAtLWV4PSopCi0rICAg IGV4ZWNfcHJlZml4PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1nYXMgfCAtLWdhcyB8IC0tZ2EgfCAt LWcpCi0rICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGgtZ2FzLgotKyAgICB3aXRoX2dhcz15ZXMg OzsKLSsKLSsgIC1oZWxwIHwgLS1oZWxwIHwgLS1oZWwgfCAtLWhlIHwgLWgpCi0rICAgIGFjX2lu aXRfaGVscD1sb25nIDs7Ci0rICAtaGVscD1yKiB8IC0taGVscD1yKiB8IC0taGVsPXIqIHwgLS1o ZT1yKiB8IC1ociopCi0rICAgIGFjX2luaXRfaGVscD1yZWN1cnNpdmUgOzsKLSsgIC1oZWxwPXMq IHwgLS1oZWxwPXMqIHwgLS1oZWw9cyogfCAtLWhlPXMqIHwgLWhzKikKLSsgICAgYWNfaW5pdF9o ZWxwPXNob3J0IDs7Ci0rCi0rICAtaG9zdCB8IC0taG9zdCB8IC0taG9zIHwgLS1obykKLSsgICAg YWNfcHJldj1ob3N0X2FsaWFzIDs7Ci0rICAtaG9zdD0qIHwgLS1ob3N0PSogfCAtLWhvcz0qIHwg LS1obz0qKQotKyAgICBob3N0X2FsaWFzPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1odG1sZGlyIHwg LS1odG1sZGlyIHwgLS1odG1sZGkgfCAtLWh0bWxkIHwgLS1odG1sIHwgLS1odG0gfCAtLWh0KQot KyAgICBhY19wcmV2PWh0bWxkaXIgOzsKLSsgIC1odG1sZGlyPSogfCAtLWh0bWxkaXI9KiB8IC0t aHRtbGRpPSogfCAtLWh0bWxkPSogfCAtLWh0bWw9KiB8IC0taHRtPSogXAotKyAgfCAtLWh0PSop Ci0rICAgIGh0bWxkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWluY2x1ZGVkaXIgfCAtLWluY2x1 ZGVkaXIgfCAtLWluY2x1ZGVkaSB8IC0taW5jbHVkZWQgfCAtLWluY2x1ZGUgXAotKyAgfCAtLWlu Y2x1ZCB8IC0taW5jbHUgfCAtLWluY2wgfCAtLWluYykKLSsgICAgYWNfcHJldj1pbmNsdWRlZGly IDs7Ci0rICAtaW5jbHVkZWRpcj0qIHwgLS1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaT0qIHwg LS1pbmNsdWRlZD0qIHwgLS1pbmNsdWRlPSogXAotKyAgfCAtLWluY2x1ZD0qIHwgLS1pbmNsdT0q IHwgLS1pbmNsPSogfCAtLWluYz0qKQotKyAgICBpbmNsdWRlZGlyPSRhY19vcHRhcmcgOzsKLSsK LSsgIC1pbmZvZGlyIHwgLS1pbmZvZGlyIHwgLS1pbmZvZGkgfCAtLWluZm9kIHwgLS1pbmZvIHwg LS1pbmYpCi0rICAgIGFjX3ByZXY9aW5mb2RpciA7OwotKyAgLWluZm9kaXI9KiB8IC0taW5mb2Rp cj0qIHwgLS1pbmZvZGk9KiB8IC0taW5mb2Q9KiB8IC0taW5mbz0qIHwgLS1pbmY9KikKLSsgICAg aW5mb2Rpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtbGliZGlyIHwgLS1saWJkaXIgfCAtLWxpYmRp IHwgLS1saWJkKQotKyAgICBhY19wcmV2PWxpYmRpciA7OwotKyAgLWxpYmRpcj0qIHwgLS1saWJk aXI9KiB8IC0tbGliZGk9KiB8IC0tbGliZD0qKQotKyAgICBsaWJkaXI9JGFjX29wdGFyZyA7Owot KwotKyAgLWxpYmV4ZWNkaXIgfCAtLWxpYmV4ZWNkaXIgfCAtLWxpYmV4ZWNkaSB8IC0tbGliZXhl Y2QgfCAtLWxpYmV4ZWMgXAotKyAgfCAtLWxpYmV4ZSB8IC0tbGliZXggfCAtLWxpYmUpCi0rICAg IGFjX3ByZXY9bGliZXhlY2RpciA7OwotKyAgLWxpYmV4ZWNkaXI9KiB8IC0tbGliZXhlY2Rpcj0q IHwgLS1saWJleGVjZGk9KiB8IC0tbGliZXhlY2Q9KiB8IC0tbGliZXhlYz0qIFwKLSsgIHwgLS1s aWJleGU9KiB8IC0tbGliZXg9KiB8IC0tbGliZT0qKQotKyAgICBsaWJleGVjZGlyPSRhY19vcHRh cmcgOzsKLSsKLSsgIC1sb2NhbGVkaXIgfCAtLWxvY2FsZWRpciB8IC0tbG9jYWxlZGkgfCAtLWxv Y2FsZWQgfCAtLWxvY2FsZSkKLSsgICAgYWNfcHJldj1sb2NhbGVkaXIgOzsKLSsgIC1sb2NhbGVk aXI9KiB8IC0tbG9jYWxlZGlyPSogfCAtLWxvY2FsZWRpPSogfCAtLWxvY2FsZWQ9KiB8IC0tbG9j YWxlPSopCi0rICAgIGxvY2FsZWRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtbG9jYWxzdGF0ZWRp ciB8IC0tbG9jYWxzdGF0ZWRpciB8IC0tbG9jYWxzdGF0ZWRpIHwgLS1sb2NhbHN0YXRlZCBcCi0r ICB8IC0tbG9jYWxzdGF0ZSB8IC0tbG9jYWxzdGF0IHwgLS1sb2NhbHN0YSB8IC0tbG9jYWxzdCB8 IC0tbG9jYWxzKQotKyAgICBhY19wcmV2PWxvY2Fsc3RhdGVkaXIgOzsKLSsgIC1sb2NhbHN0YXRl ZGlyPSogfCAtLWxvY2Fsc3RhdGVkaXI9KiB8IC0tbG9jYWxzdGF0ZWRpPSogfCAtLWxvY2Fsc3Rh dGVkPSogXAotKyAgfCAtLWxvY2Fsc3RhdGU9KiB8IC0tbG9jYWxzdGF0PSogfCAtLWxvY2Fsc3Rh PSogfCAtLWxvY2Fsc3Q9KiB8IC0tbG9jYWxzPSopCi0rICAgIGxvY2Fsc3RhdGVkaXI9JGFjX29w dGFyZyA7OwotKwotKyAgLW1hbmRpciB8IC0tbWFuZGlyIHwgLS1tYW5kaSB8IC0tbWFuZCB8IC0t bWFuIHwgLS1tYSB8IC0tbSkKLSsgICAgYWNfcHJldj1tYW5kaXIgOzsKLSsgIC1tYW5kaXI9KiB8 IC0tbWFuZGlyPSogfCAtLW1hbmRpPSogfCAtLW1hbmQ9KiB8IC0tbWFuPSogfCAtLW1hPSogfCAt LW09KikKLSsgICAgbWFuZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1uZnAgfCAtLW5mcCB8IC0t bmYpCi0rICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGhvdXQtZnAuCi0rICAgIHdpdGhfZnA9bm8g OzsKLSsKLSsgIC1uby1jcmVhdGUgfCAtLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXQgfCAtLW5vLWNy ZWEgfCAtLW5vLWNyZSBcCi0rICB8IC0tbm8tY3IgfCAtLW5vLWMgfCAtbikKLSsgICAgbm9fY3Jl YXRlPXllcyA7OwotKwotKyAgLW5vLXJlY3Vyc2lvbiB8IC0tbm8tcmVjdXJzaW9uIHwgLS1uby1y ZWN1cnNpbyB8IC0tbm8tcmVjdXJzaSBcCi0rICB8IC0tbm8tcmVjdXJzIHwgLS1uby1yZWN1ciB8 IC0tbm8tcmVjdSB8IC0tbm8tcmVjIHwgLS1uby1yZSB8IC0tbm8tcikKLSsgICAgbm9fcmVjdXJz aW9uPXllcyA7OwotKwotKyAgLW9sZGluY2x1ZGVkaXIgfCAtLW9sZGluY2x1ZGVkaXIgfCAtLW9s ZGluY2x1ZGVkaSB8IC0tb2xkaW5jbHVkZWQgXAotKyAgfCAtLW9sZGluY2x1ZGUgfCAtLW9sZGlu Y2x1ZCB8IC0tb2xkaW5jbHUgfCAtLW9sZGluY2wgfCAtLW9sZGluYyBcCi0rICB8IC0tb2xkaW4g fCAtLW9sZGkgfCAtLW9sZCB8IC0tb2wgfCAtLW8pCi0rICAgIGFjX3ByZXY9b2xkaW5jbHVkZWRp ciA7OwotKyAgLW9sZGluY2x1ZGVkaXI9KiB8IC0tb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNs dWRlZGk9KiB8IC0tb2xkaW5jbHVkZWQ9KiBcCi0rICB8IC0tb2xkaW5jbHVkZT0qIHwgLS1vbGRp bmNsdWQ9KiB8IC0tb2xkaW5jbHU9KiB8IC0tb2xkaW5jbD0qIHwgLS1vbGRpbmM9KiBcCi0rICB8 IC0tb2xkaW49KiB8IC0tb2xkaT0qIHwgLS1vbGQ9KiB8IC0tb2w9KiB8IC0tbz0qKQotKyAgICBv bGRpbmNsdWRlZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1wcmVmaXggfCAtLXByZWZpeCB8IC0t cHJlZmkgfCAtLXByZWYgfCAtLXByZSB8IC0tcHIgfCAtLXApCi0rICAgIGFjX3ByZXY9cHJlZml4 IDs7Ci0rICAtcHJlZml4PSogfCAtLXByZWZpeD0qIHwgLS1wcmVmaT0qIHwgLS1wcmVmPSogfCAt LXByZT0qIHwgLS1wcj0qIHwgLS1wPSopCi0rICAgIHByZWZpeD0kYWNfb3B0YXJnIDs7Ci0rCi0r ICAtcHJvZ3JhbS1wcmVmaXggfCAtLXByb2dyYW0tcHJlZml4IHwgLS1wcm9ncmFtLXByZWZpIHwg LS1wcm9ncmFtLXByZWYgXAotKyAgfCAtLXByb2dyYW0tcHJlIHwgLS1wcm9ncmFtLXByIHwgLS1w cm9ncmFtLXApCi0rICAgIGFjX3ByZXY9cHJvZ3JhbV9wcmVmaXggOzsKLSsgIC1wcm9ncmFtLXBy ZWZpeD0qIHwgLS1wcm9ncmFtLXByZWZpeD0qIHwgLS1wcm9ncmFtLXByZWZpPSogXAotKyAgfCAt LXByb2dyYW0tcHJlZj0qIHwgLS1wcm9ncmFtLXByZT0qIHwgLS1wcm9ncmFtLXByPSogfCAtLXBy b2dyYW0tcD0qKQotKyAgICBwcm9ncmFtX3ByZWZpeD0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtcHJv Z3JhbS1zdWZmaXggfCAtLXByb2dyYW0tc3VmZml4IHwgLS1wcm9ncmFtLXN1ZmZpIHwgLS1wcm9n cmFtLXN1ZmYgXAotKyAgfCAtLXByb2dyYW0tc3VmIHwgLS1wcm9ncmFtLXN1IHwgLS1wcm9ncmFt LXMpCi0rICAgIGFjX3ByZXY9cHJvZ3JhbV9zdWZmaXggOzsKLSsgIC1wcm9ncmFtLXN1ZmZpeD0q IHwgLS1wcm9ncmFtLXN1ZmZpeD0qIHwgLS1wcm9ncmFtLXN1ZmZpPSogXAotKyAgfCAtLXByb2dy YW0tc3VmZj0qIHwgLS1wcm9ncmFtLXN1Zj0qIHwgLS1wcm9ncmFtLXN1PSogfCAtLXByb2dyYW0t cz0qKQotKyAgICBwcm9ncmFtX3N1ZmZpeD0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtcHJvZ3JhbS10 cmFuc2Zvcm0tbmFtZSB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZSBcCi0rICB8IC0tcHJvZ3Jh bS10cmFuc2Zvcm0tbmFtIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYSBcCi0rICB8IC0tcHJvZ3Jh bS10cmFuc2Zvcm0tbiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tIFwKLSsgIHwgLS1wcm9ncmFtLXRy YW5zZm9ybSB8IC0tcHJvZ3JhbS10cmFuc2ZvciBcCi0rICB8IC0tcHJvZ3JhbS10cmFuc2ZvIHwg LS1wcm9ncmFtLXRyYW5zZiBcCi0rICB8IC0tcHJvZ3JhbS10cmFucyB8IC0tcHJvZ3JhbS10cmFu IFwKLSsgIHwgLS1wcm9nci10cmEgfCAtLXByb2dyYW0tdHIgfCAtLXByb2dyYW0tdCkKLSsgICAg YWNfcHJldj1wcm9ncmFtX3RyYW5zZm9ybV9uYW1lIDs7Ci0rICAtcHJvZ3JhbS10cmFuc2Zvcm0t bmFtZT0qIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPSogXAotKyAgfCAtLXByb2dyYW0tdHJh bnNmb3JtLW5hbT0qIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYT0qIFwKLSsgIHwgLS1wcm9ncmFt LXRyYW5zZm9ybS1uPSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLT0qIFwKLSsgIHwgLS1wcm9ncmFt LXRyYW5zZm9ybT0qIHwgLS1wcm9ncmFtLXRyYW5zZm9yPSogXAotKyAgfCAtLXByb2dyYW0tdHJh bnNmbz0qIHwgLS1wcm9ncmFtLXRyYW5zZj0qIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zPSogfCAt LXByb2dyYW0tdHJhbj0qIFwKLSsgIHwgLS1wcm9nci10cmE9KiB8IC0tcHJvZ3JhbS10cj0qIHwg LS1wcm9ncmFtLXQ9KikKLSsgICAgcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0kYWNfb3B0YXJnIDs7 Ci0rCi0rICAtcGRmZGlyIHwgLS1wZGZkaXIgfCAtLXBkZmRpIHwgLS1wZGZkIHwgLS1wZGYgfCAt LXBkKQotKyAgICBhY19wcmV2PXBkZmRpciA7OwotKyAgLXBkZmRpcj0qIHwgLS1wZGZkaXI9KiB8 IC0tcGRmZGk9KiB8IC0tcGRmZD0qIHwgLS1wZGY9KiB8IC0tcGQ9KikKLSsgICAgcGRmZGlyPSRh Y19vcHRhcmcgOzsKLSsKLSsgIC1wc2RpciB8IC0tcHNkaXIgfCAtLXBzZGkgfCAtLXBzZCB8IC0t cHMpCi0rICAgIGFjX3ByZXY9cHNkaXIgOzsKLSsgIC1wc2Rpcj0qIHwgLS1wc2Rpcj0qIHwgLS1w c2RpPSogfCAtLXBzZD0qIHwgLS1wcz0qKQotKyAgICBwc2Rpcj0kYWNfb3B0YXJnIDs7Ci0rCi0r ICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAot KyAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwpCi0rICAg IHNpbGVudD15ZXMgOzsKLSsKLSsgIC1zYmluZGlyIHwgLS1zYmluZGlyIHwgLS1zYmluZGkgfCAt LXNiaW5kIHwgLS1zYmluIHwgLS1zYmkgfCAtLXNiKQotKyAgICBhY19wcmV2PXNiaW5kaXIgOzsK LSsgIC1zYmluZGlyPSogfCAtLXNiaW5kaXI9KiB8IC0tc2JpbmRpPSogfCAtLXNiaW5kPSogfCAt LXNiaW49KiBcCi0rICB8IC0tc2JpPSogfCAtLXNiPSopCi0rICAgIHNiaW5kaXI9JGFjX29wdGFy ZyA7OwotKwotKyAgLXNoYXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0ZWRpciB8IC0tc2hhcmVk c3RhdGVkaSBcCi0rICB8IC0tc2hhcmVkc3RhdGVkIHwgLS1zaGFyZWRzdGF0ZSB8IC0tc2hhcmVk c3RhdCB8IC0tc2hhcmVkc3RhIFwKLSsgIHwgLS1zaGFyZWRzdCB8IC0tc2hhcmVkcyB8IC0tc2hh cmVkIHwgLS1zaGFyZSB8IC0tc2hhciBcCi0rICB8IC0tc2hhIHwgLS1zaCkKLSsgICAgYWNfcHJl dj1zaGFyZWRzdGF0ZWRpciA7OwotKyAgLXNoYXJlZHN0YXRlZGlyPSogfCAtLXNoYXJlZHN0YXRl ZGlyPSogfCAtLXNoYXJlZHN0YXRlZGk9KiBcCi0rICB8IC0tc2hhcmVkc3RhdGVkPSogfCAtLXNo YXJlZHN0YXRlPSogfCAtLXNoYXJlZHN0YXQ9KiB8IC0tc2hhcmVkc3RhPSogXAotKyAgfCAtLXNo YXJlZHN0PSogfCAtLXNoYXJlZHM9KiB8IC0tc2hhcmVkPSogfCAtLXNoYXJlPSogfCAtLXNoYXI9 KiBcCi0rICB8IC0tc2hhPSogfCAtLXNoPSopCi0rICAgIHNoYXJlZHN0YXRlZGlyPSRhY19vcHRh cmcgOzsKLSsKLSsgIC1zaXRlIHwgLS1zaXRlIHwgLS1zaXQpCi0rICAgIGFjX3ByZXY9c2l0ZSA7 OwotKyAgLXNpdGU9KiB8IC0tc2l0ZT0qIHwgLS1zaXQ9KikKLSsgICAgc2l0ZT0kYWNfb3B0YXJn IDs7Ci0rCi0rICAtc3JjZGlyIHwgLS1zcmNkaXIgfCAtLXNyY2RpIHwgLS1zcmNkIHwgLS1zcmMg fCAtLXNyKQotKyAgICBhY19wcmV2PXNyY2RpciA7OwotKyAgLXNyY2Rpcj0qIHwgLS1zcmNkaXI9 KiB8IC0tc3JjZGk9KiB8IC0tc3JjZD0qIHwgLS1zcmM9KiB8IC0tc3I9KikKLSsgICAgc3JjZGly PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1zeXNjb25mZGlyIHwgLS1zeXNjb25mZGlyIHwgLS1zeXNj b25mZGkgfCAtLXN5c2NvbmZkIHwgLS1zeXNjb25mIFwKLSsgIHwgLS1zeXNjb24gfCAtLXN5c2Nv IHwgLS1zeXNjIHwgLS1zeXMgfCAtLXN5KQotKyAgICBhY19wcmV2PXN5c2NvbmZkaXIgOzsKLSsg IC1zeXNjb25mZGlyPSogfCAtLXN5c2NvbmZkaXI9KiB8IC0tc3lzY29uZmRpPSogfCAtLXN5c2Nv bmZkPSogfCAtLXN5c2NvbmY9KiBcCi0rICB8IC0tc3lzY29uPSogfCAtLXN5c2NvPSogfCAtLXN5 c2M9KiB8IC0tc3lzPSogfCAtLXN5PSopCi0rICAgIHN5c2NvbmZkaXI9JGFjX29wdGFyZyA7Owot KwotKyAgLXRhcmdldCB8IC0tdGFyZ2V0IHwgLS10YXJnZSB8IC0tdGFyZyB8IC0tdGFyIHwgLS10 YSB8IC0tdCkKLSsgICAgYWNfcHJldj10YXJnZXRfYWxpYXMgOzsKLSsgIC10YXJnZXQ9KiB8IC0t dGFyZ2V0PSogfCAtLXRhcmdlPSogfCAtLXRhcmc9KiB8IC0tdGFyPSogfCAtLXRhPSogfCAtLXQ9 KikKLSsgICAgdGFyZ2V0X2FsaWFzPSRhY19vcHRhcmcgOzsKLSsKLSsgIC12IHwgLXZlcmJvc2Ug fCAtLXZlcmJvc2UgfCAtLXZlcmJvcyB8IC0tdmVyYm8gfCAtLXZlcmIpCi0rICAgIHZlcmJvc2U9 eWVzIDs7Ci0rCi0rICAtdmVyc2lvbiB8IC0tdmVyc2lvbiB8IC0tdmVyc2lvIHwgLS12ZXJzaSB8 IC0tdmVycyB8IC1WKQotKyAgICBhY19pbml0X3ZlcnNpb249OiA7OwotKwotKyAgLXdpdGgtKiB8 IC0td2l0aC0qKQotKyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qd2l0 aC1cKFtePV0qXCknYAotKyAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hl bGwgdmFyaWFibGUgbmFtZXMuCi0rICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8k YXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiBl cnJvcjogaW52YWxpZCBwYWNrYWdlIG5hbWU6ICRhY191c2Vyb3B0IiA+JjIKLSsgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH0KLSsgICAgYWNfdXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0Ci0rICAg IGFjX3VzZXJvcHQ9YCRhc19lY2hvICIkYWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AK LSsgICAgY2FzZSAkYWNfdXNlcl9vcHRzIGluCi0rICAgICAgKiIKLSsid2l0aF8kYWNfdXNlcm9w dCIKLSsiKikgOzsKLSsgICAgICAqKSBhY191bnJlY29nbml6ZWRfb3B0cz0iJGFjX3VucmVjb2du aXplZF9vcHRzJGFjX3VucmVjb2duaXplZF9zZXAtLXdpdGgtJGFjX3VzZXJvcHRfb3JpZyIKLSsJ IGFjX3VucmVjb2duaXplZF9zZXA9JywgJzs7Ci0rICAgIGVzYWMKLSsgICAgZXZhbCB3aXRoXyRh Y191c2Vyb3B0PVwkYWNfb3B0YXJnIDs7Ci0rCi0rICAtd2l0aG91dC0qIHwgLS13aXRob3V0LSop Ci0rICAgIGFjX3VzZXJvcHQ9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRob3V0LVwoLipc KSdgCi0rICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJs ZSBuYW1lcy4KLSsgICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19jcl9hbG51 bV0iID4vZGV2L251bGwgJiYKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZh bGlkIHBhY2thZ2UgbmFtZTogJGFjX3VzZXJvcHQiID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQotKyAgICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKLSsgICAgYWNfdXNlcm9w dD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAotKyAgICBjYXNl ICRhY191c2VyX29wdHMgaW4KLSsgICAgICAqIgotKyJ3aXRoXyRhY191c2Vyb3B0IgotKyIqKSA7 OwotKyAgICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMk YWNfdW5yZWNvZ25pemVkX3NlcC0td2l0aG91dC0kYWNfdXNlcm9wdF9vcmlnIgotKwkgYWNfdW5y ZWNvZ25pemVkX3NlcD0nLCAnOzsKLSsgICAgZXNhYwotKyAgICBldmFsIHdpdGhfJGFjX3VzZXJv cHQ9bm8gOzsKLSsKLSsgIC0teCkKLSsgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC14LgotKyAg ICB3aXRoX3g9eWVzIDs7Ci0rCi0rICAteC1pbmNsdWRlcyB8IC0teC1pbmNsdWRlcyB8IC0teC1p bmNsdWRlIHwgLS14LWluY2x1ZCB8IC0teC1pbmNsdSBcCi0rICB8IC0teC1pbmNsIHwgLS14LWlu YyB8IC0teC1pbiB8IC0teC1pKQotKyAgICBhY19wcmV2PXhfaW5jbHVkZXMgOzsKLSsgIC14LWlu Y2x1ZGVzPSogfCAtLXgtaW5jbHVkZXM9KiB8IC0teC1pbmNsdWRlPSogfCAtLXgtaW5jbHVkPSog fCAtLXgtaW5jbHU9KiBcCi0rICB8IC0teC1pbmNsPSogfCAtLXgtaW5jPSogfCAtLXgtaW49KiB8 IC0teC1pPSopCi0rICAgIHhfaW5jbHVkZXM9JGFjX29wdGFyZyA7OwotKwotKyAgLXgtbGlicmFy aWVzIHwgLS14LWxpYnJhcmllcyB8IC0teC1saWJyYXJpZSB8IC0teC1saWJyYXJpIFwKLSsgIHwg LS14LWxpYnJhciB8IC0teC1saWJyYSB8IC0teC1saWJyIHwgLS14LWxpYiB8IC0teC1saSB8IC0t eC1sKQotKyAgICBhY19wcmV2PXhfbGlicmFyaWVzIDs7Ci0rICAteC1saWJyYXJpZXM9KiB8IC0t eC1saWJyYXJpZXM9KiB8IC0teC1saWJyYXJpZT0qIHwgLS14LWxpYnJhcmk9KiBcCi0rICB8IC0t eC1saWJyYXI9KiB8IC0teC1saWJyYT0qIHwgLS14LWxpYnI9KiB8IC0teC1saWI9KiB8IC0teC1s aT0qIHwgLS14LWw9KikKLSsgICAgeF9saWJyYXJpZXM9JGFjX29wdGFyZyA7OwotKwotKyAgLSop IHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb246ICRhY19vcHRp b24KLStUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyCi0rICAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICAgIDs7Ci0rCi0rICAqPSopCi0rICAgIGFjX2VudnZh cj1gZXhwciAieCRhY19vcHRpb24iIDogJ3hcKFtePV0qXCk9J2AKLSsgICAgIyBSZWplY3QgbmFt ZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotKyAgICBleHByICJ4 JGFjX2VudnZhciIgOiAiLipbXl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0rICAgICAg eyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCB2YXJpYWJsZSBuYW1lOiAkYWNfZW52 dmFyIiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgICAgZXZhbCAkYWNfZW52 dmFyPVwkYWNfb3B0YXJnCi0rICAgIGV4cG9ydCAkYWNfZW52dmFyIDs7Ci0rCi0rICAqKQotKyAg ICAjIEZJWE1FOiBzaG91bGQgYmUgcmVtb3ZlZCBpbiBhdXRvY29uZiAzLjAuCi0rICAgICRhc19l Y2hvICIkYXNfbWU6IFdBUk5JTkc6IHlvdSBzaG91bGQgdXNlIC0tYnVpbGQsIC0taG9zdCwgLS10 YXJnZXQiID4mMgotKyAgICBleHByICJ4JGFjX29wdGlvbiIgOiAiLipbXi0uXyRhc19jcl9hbG51 bV0iID4vZGV2L251bGwgJiYKLSsgICAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBpbnZh bGlkIGhvc3QgdHlwZTogJGFjX29wdGlvbiIgPiYyCi0rICAgIDogJHtidWlsZF9hbGlhcz0kYWNf b3B0aW9ufSAke2hvc3RfYWxpYXM9JGFjX29wdGlvbn0gJHt0YXJnZXRfYWxpYXM9JGFjX29wdGlv bn0KLSsgICAgOzsKLSsKLSsgIGVzYWMKLSBkb25lCi0gCi0taWYgWyAkdGNsX2ZvdW5kIC1lcSAw IF0KLS10aGVuCi0tICAgICAgICBlY2hvICdOT1QgZm91bmQuJwotLSAgICAgICAgZWNobyAnSXMg dGhlIFRjbCBpbnN0YWxsZWQ/JwotLSAgICAgICAgZXhpdAotK2lmIHRlc3QgLW4gIiRhY19wcmV2 IjsgdGhlbgotKyAgYWNfb3B0aW9uPS0tYGVjaG8gJGFjX3ByZXYgfCBzZWQgJ3MvXy8tL2cnYAot KyAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogbWlzc2luZyBhcmd1bWVudCB0byAkYWNfb3B0 aW9uIiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotKwotK2lmIHRlc3Qg LW4gIiRhY191bnJlY29nbml6ZWRfb3B0cyI7IHRoZW4KLSsgIGNhc2UgJGVuYWJsZV9vcHRpb25f Y2hlY2tpbmcgaW4KLSsgICAgbm8pIDs7Ci0rICAgIGZhdGFsKSB7ICRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiB1bnJlY29nbml6ZWQgb3B0aW9uczogJGFjX3VucmVjb2duaXplZF9vcHRzIiA+JjIK LSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0gOzsKLSsgICAgKikgICAgICRhc19lY2hvICIk YXNfbWU6IFdBUk5JTkc6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29w dHMiID4mMiA7OwotKyAgZXNhYwotK2ZpCi0rCi0rIyBDaGVjayBhbGwgZGlyZWN0b3J5IGFyZ3Vt ZW50cyBmb3IgY29uc2lzdGVuY3kuCi0rZm9yIGFjX3ZhciBpbglleGVjX3ByZWZpeCBwcmVmaXgg YmluZGlyIHNiaW5kaXIgbGliZXhlY2RpciBkYXRhcm9vdGRpciBcCi0rCQlkYXRhZGlyIHN5c2Nv bmZkaXIgc2hhcmVkc3RhdGVkaXIgbG9jYWxzdGF0ZWRpciBpbmNsdWRlZGlyIFwKLSsJCW9sZGlu Y2x1ZGVkaXIgZG9jZGlyIGluZm9kaXIgaHRtbGRpciBkdmlkaXIgcGRmZGlyIHBzZGlyIFwKLSsJ CWxpYmRpciBsb2NhbGVkaXIgbWFuZGlyCi0rZG8KLSsgIGV2YWwgYWNfdmFsPVwkJGFjX3Zhcgot KyAgIyBSZW1vdmUgdHJhaWxpbmcgc2xhc2hlcy4KLSsgIGNhc2UgJGFjX3ZhbCBpbgotKyAgICAq LyApCi0rICAgICAgYWNfdmFsPWBleHByICJYJGFjX3ZhbCIgOiAnWFwoLipbXi9dXCknIFx8ICJY JGFjX3ZhbCIgOiAnWFwoLipcKSdgCi0rICAgICAgZXZhbCAkYWNfdmFyPVwkYWNfdmFsOzsKLSsg IGVzYWMKLSsgICMgQmUgc3VyZSB0byBoYXZlIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lcy4KLSsg IGNhc2UgJGFjX3ZhbCBpbgotKyAgICBbXFwvJF0qIHwgPzpbXFwvXSogKSAgY29udGludWU7Owot KyAgICBOT05FIHwgJycgKSBjYXNlICRhY192YXIgaW4gKnByZWZpeCApIGNvbnRpbnVlOzsgZXNh Yzs7Ci0rICBlc2FjCi0rICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBleHBlY3RlZCBhbiBh YnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBmb3IgLS0kYWNfdmFyOiAkYWNfdmFsIiA+JjIKLSsgICB7 IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStkb25lCi0rCi0rIyBUaGVyZSBtaWdodCBiZSBwZW9w bGUgd2hvIGRlcGVuZCBvbiB0aGUgb2xkIGJyb2tlbiBiZWhhdmlvcjogYCRob3N0JwotKyMgdXNl ZCB0byBob2xkIHRoZSBhcmd1bWVudCBvZiAtLWhvc3QgZXRjLgotKyMgRklYTUU6IFRvIHJlbW92 ZSBzb21lIGRheS4KLStidWlsZD0kYnVpbGRfYWxpYXMKLStob3N0PSRob3N0X2FsaWFzCi0rdGFy Z2V0PSR0YXJnZXRfYWxpYXMKLSsKLSsjIEZJWE1FOiBUbyByZW1vdmUgc29tZSBkYXkuCi0raWYg dGVzdCAieCRob3N0X2FsaWFzIiAhPSB4OyB0aGVuCi0rICBpZiB0ZXN0ICJ4JGJ1aWxkX2FsaWFz IiA9IHg7IHRoZW4KLSsgICAgY3Jvc3NfY29tcGlsaW5nPW1heWJlCi0rICAgICRhc19lY2hvICIk YXNfbWU6IFdBUk5JTkc6IElmIHlvdSB3YW50ZWQgdG8gc2V0IHRoZSAtLWJ1aWxkIHR5cGUsIGRv bid0IHVzZSAtLWhvc3QuCi0rICAgIElmIGEgY3Jvc3MgY29tcGlsZXIgaXMgZGV0ZWN0ZWQgdGhl biBjcm9zcyBjb21waWxlIG1vZGUgd2lsbCBiZSB1c2VkLiIgPiYyCi0rICBlbGlmIHRlc3QgIngk YnVpbGRfYWxpYXMiICE9ICJ4JGhvc3RfYWxpYXMiOyB0aGVuCi0rICAgIGNyb3NzX2NvbXBpbGlu Zz15ZXMKLSsgIGZpCi0rZmkKLSsKLSthY190b29sX3ByZWZpeD0KLSt0ZXN0IC1uICIkaG9zdF9h bGlhcyIgJiYgYWNfdG9vbF9wcmVmaXg9JGhvc3RfYWxpYXMtCi0rCi0rdGVzdCAiJHNpbGVudCIg PSB5ZXMgJiYgZXhlYyA2Pi9kZXYvbnVsbAotKwotKwotK2FjX3B3ZD1gcHdkYCAmJiB0ZXN0IC1u ICIkYWNfcHdkIiAmJgotK2FjX2xzX2RpPWBscyAtZGkgLmAgJiYKLSthY19wd2RfbHNfZGk9YGNk ICIkYWNfcHdkIiAmJiBscyAtZGkgLmAgfHwKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IHdvcmtpbmcgZGlyZWN0b3J5IGNhbm5vdCBiZSBkZXRlcm1pbmVkIiA+JjIKLSsgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH0KLSt0ZXN0ICJYJGFjX2xzX2RpIiA9ICJYJGFjX3B3ZF9sc19kaSIg fHwKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHB3ZCBkb2VzIG5vdCByZXBvcnQgbmFt ZSBvZiB3b3JraW5nIGRpcmVjdG9yeSIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9 Ci0rCi0rCi0rIyBGaW5kIHRoZSBzb3VyY2UgZmlsZXMsIGlmIGxvY2F0aW9uIHdhcyBub3Qgc3Bl Y2lmaWVkLgotK2lmIHRlc3QgLXogIiRzcmNkaXIiOyB0aGVuCi0rICBhY19zcmNkaXJfZGVmYXVs dGVkPXllcwotKyAgIyBUcnkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoaXMgc2NyaXB0LCB0 aGVuIHRoZSBwYXJlbnQgZGlyZWN0b3J5LgotKyAgYWNfY29uZmRpcj1gJGFzX2Rpcm5hbWUgLS0g IiRhc19teXNlbGYiIHx8Ci0rJGFzX2V4cHIgWCIkYXNfbXlzZWxmIiA6ICdYXCguKlteL11cKS8v KlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkYXNfbXlzZWxmIiA6ICdYXCgvL1wpW14vXScgXHwg XAotKwkgWCIkYXNfbXlzZWxmIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkYXNfbXlzZWxmIiA6 ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhc19teXNlbGYiIHwK LSsgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAgIHMvL1wx LwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBzLy9cMS8K LSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAg cQotKwkgIH0KLSsJICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9 Ci0rCSAgcy8uKi8uLzsgcSdgCi0rICBzcmNkaXI9JGFjX2NvbmZkaXIKLSsgIGlmIHRlc3QgISAt ciAiJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGUiOyB0aGVuCi0rICAgIHNyY2Rpcj0uLgotKyAgZmkK LStlbHNlCi0rICBhY19zcmNkaXJfZGVmYXVsdGVkPW5vCi0rZmkKLStpZiB0ZXN0ICEgLXIgIiRz cmNkaXIvJGFjX3VuaXF1ZV9maWxlIjsgdGhlbgotKyAgdGVzdCAiJGFjX3NyY2Rpcl9kZWZhdWx0 ZWQiID0geWVzICYmIHNyY2Rpcj0iJGFjX2NvbmZkaXIgb3IgLi4iCi0rICB7ICRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBzb3VyY2VzICgkYWNfdW5pcXVlX2ZpbGUpIGluICRz cmNkaXIiID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0rYWNfbXNnPSJz b3VyY2VzIGFyZSBpbiAkc3JjZGlyLCBidXQgXGBjZCAkc3JjZGlyJyBkb2VzIG5vdCB3b3JrIgot K2FjX2Fic19jb25mZGlyPWAoCi0rCWNkICIkc3JjZGlyIiAmJiB0ZXN0IC1yICIuLyRhY191bmlx dWVfZmlsZSIgfHwgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJGFjX21zZyIgPiYyCi0rICAg eyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rCXB3ZClgCi0rIyBXaGVuIGJ1aWxkaW5nIGluIHBs YWNlLCBzZXQgc3JjZGlyPS4KLStpZiB0ZXN0ICIkYWNfYWJzX2NvbmZkaXIiID0gIiRhY19wd2Qi OyB0aGVuCi0rICBzcmNkaXI9LgotK2ZpCi0rIyBSZW1vdmUgdW5uZWNlc3NhcnkgdHJhaWxpbmcg c2xhc2hlcyBmcm9tIHNyY2Rpci4KLSsjIERvdWJsZSBzbGFzaGVzIGluIGZpbGUgbmFtZXMgaW4g b2JqZWN0IGZpbGUgZGVidWdnaW5nIGluZm8KLSsjIG1lc3MgdXAgTS14IGdkYiBpbiBFbWFjcy4K LStjYXNlICRzcmNkaXIgaW4KLSsqLykgc3JjZGlyPWBleHByICJYJHNyY2RpciIgOiAnWFwoLipb Xi9dXCknIFx8ICJYJHNyY2RpciIgOiAnWFwoLipcKSdgOzsKLStlc2FjCi0rZm9yIGFjX3ZhciBp biAkYWNfcHJlY2lvdXNfdmFyczsgZG8KLSsgIGV2YWwgYWNfZW52XyR7YWNfdmFyfV9zZXQ9XCR7 JHthY192YXJ9K3NldH0KLSsgIGV2YWwgYWNfZW52XyR7YWNfdmFyfV92YWx1ZT1cJCR7YWNfdmFy fQotKyAgZXZhbCBhY19jdl9lbnZfJHthY192YXJ9X3NldD1cJHske2FjX3Zhcn0rc2V0fQotKyAg ZXZhbCBhY19jdl9lbnZfJHthY192YXJ9X3ZhbHVlPVwkJHthY192YXJ9Ci0rZG9uZQotKwotKyMK LSsjIFJlcG9ydCB0aGUgLS1oZWxwIG1lc3NhZ2UuCi0rIwotK2lmIHRlc3QgIiRhY19pbml0X2hl bHAiID0gImxvbmciOyB0aGVuCi0rICAjIE9taXQgc29tZSBpbnRlcm5hbCBvciBvYnNvbGV0ZSBv cHRpb25zIHRvIG1ha2UgdGhlIGxpc3QgbGVzcyBpbXBvc2luZy4KLSsgICMgVGhpcyBtZXNzYWdl IGlzIHRvbyBsb25nIHRvIGJlIGEgc3RyaW5nIGluIHRoZSBBL1VYIDMuMSBzaC4KLSsgIGNhdCA8 PF9BQ0VPRgotK1xgY29uZmlndXJlJyBjb25maWd1cmVzIFNPQ0kgMy4wLjAgdG8gYWRhcHQgdG8g bWFueSBraW5kcyBvZiBzeXN0ZW1zLgotKwotK1VzYWdlOiAkMCBbT1BUSU9OXS4uLiBbVkFSPVZB TFVFXS4uLgotKwotK1RvIGFzc2lnbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKGUuZy4sIENDLCBD RkxBR1MuLi4pLCBzcGVjaWZ5IHRoZW0gYXMKLStWQVI9VkFMVUUuICBTZWUgYmVsb3cgZm9yIGRl c2NyaXB0aW9ucyBvZiBzb21lIG9mIHRoZSB1c2VmdWwgdmFyaWFibGVzLgotKwotK0RlZmF1bHRz IGZvciB0aGUgb3B0aW9ucyBhcmUgc3BlY2lmaWVkIGluIGJyYWNrZXRzLgotKwotK0NvbmZpZ3Vy YXRpb246Ci0rICAtaCwgLS1oZWxwICAgICAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQg ZXhpdAotKyAgICAgIC0taGVscD1zaG9ydCAgICAgICAgZGlzcGxheSBvcHRpb25zIHNwZWNpZmlj IHRvIHRoaXMgcGFja2FnZQotKyAgICAgIC0taGVscD1yZWN1cnNpdmUgICAgZGlzcGxheSB0aGUg c2hvcnQgaGVscCBvZiBhbGwgdGhlIGluY2x1ZGVkIHBhY2thZ2VzCi0rICAtViwgLS12ZXJzaW9u ICAgICAgICAgICBkaXNwbGF5IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKLSsgIC1xLCAt LXF1aWV0LCAtLXNpbGVudCAgIGRvIG5vdCBwcmludCBcYGNoZWNraW5nLi4uJyBtZXNzYWdlcwot KyAgICAgIC0tY2FjaGUtZmlsZT1GSUxFICAgY2FjaGUgdGVzdCByZXN1bHRzIGluIEZJTEUgW2Rp c2FibGVkXQotKyAgLUMsIC0tY29uZmlnLWNhY2hlICAgICAgYWxpYXMgZm9yIFxgLS1jYWNoZS1m aWxlPWNvbmZpZy5jYWNoZScKLSsgIC1uLCAtLW5vLWNyZWF0ZSAgICAgICAgIGRvIG5vdCBjcmVh dGUgb3V0cHV0IGZpbGVzCi0rICAgICAgLS1zcmNkaXI9RElSICAgICAgICBmaW5kIHRoZSBzb3Vy Y2VzIGluIERJUiBbY29uZmlndXJlIGRpciBvciBcYC4uJ10KLSsKLStJbnN0YWxsYXRpb24gZGly ZWN0b3JpZXM6Ci0rICAtLXByZWZpeD1QUkVGSVggICAgICAgICBpbnN0YWxsIGFyY2hpdGVjdHVy ZS1pbmRlcGVuZGVudCBmaWxlcyBpbiBQUkVGSVgKLSsgICAgICAgICAgICAgICAgICAgICAgICAg IFskYWNfZGVmYXVsdF9wcmVmaXhdCi0rICAtLWV4ZWMtcHJlZml4PUVQUkVGSVggICBpbnN0YWxs IGFyY2hpdGVjdHVyZS1kZXBlbmRlbnQgZmlsZXMgaW4gRVBSRUZJWAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgW1BSRUZJWF0KLSsKLStCeSBkZWZhdWx0LCBcYG1ha2UgaW5zdGFsbCcgd2ls bCBpbnN0YWxsIGFsbCB0aGUgZmlsZXMgaW4KLStcYCRhY19kZWZhdWx0X3ByZWZpeC9iaW4nLCBc YCRhY19kZWZhdWx0X3ByZWZpeC9saWInIGV0Yy4gIFlvdSBjYW4gc3BlY2lmeQotK2FuIGluc3Rh bGxhdGlvbiBwcmVmaXggb3RoZXIgdGhhbiBcYCRhY19kZWZhdWx0X3ByZWZpeCcgdXNpbmcgXGAt LXByZWZpeCcsCi0rZm9yIGluc3RhbmNlIFxgLS1wcmVmaXg9XCRIT01FJy4KLSsKLStGb3IgYmV0 dGVyIGNvbnRyb2wsIHVzZSB0aGUgb3B0aW9ucyBiZWxvdy4KLSsKLStGaW5lIHR1bmluZyBvZiB0 aGUgaW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzOgotKyAgLS1iaW5kaXI9RElSICAgICAgICAgICAg dXNlciBleGVjdXRhYmxlcyBbRVBSRUZJWC9iaW5dCi0rICAtLXNiaW5kaXI9RElSICAgICAgICAg ICBzeXN0ZW0gYWRtaW4gZXhlY3V0YWJsZXMgW0VQUkVGSVgvc2Jpbl0KLSsgIC0tbGliZXhlY2Rp cj1ESVIgICAgICAgIHByb2dyYW0gZXhlY3V0YWJsZXMgW0VQUkVGSVgvbGliZXhlY10KLSsgIC0t c3lzY29uZmRpcj1ESVIgICAgICAgIHJlYWQtb25seSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVG SVgvZXRjXQotKyAgLS1zaGFyZWRzdGF0ZWRpcj1ESVIgICAgbW9kaWZpYWJsZSBhcmNoaXRlY3R1 cmUtaW5kZXBlbmRlbnQgZGF0YSBbUFJFRklYL2NvbV0KLSsgIC0tbG9jYWxzdGF0ZWRpcj1ESVIg ICAgIG1vZGlmaWFibGUgc2luZ2xlLW1hY2hpbmUgZGF0YSBbUFJFRklYL3Zhcl0KLSsgIC0tbGli ZGlyPURJUiAgICAgICAgICAgIG9iamVjdCBjb2RlIGxpYnJhcmllcyBbRVBSRUZJWC9saWJdCi0r ICAtLWluY2x1ZGVkaXI9RElSICAgICAgICBDIGhlYWRlciBmaWxlcyBbUFJFRklYL2luY2x1ZGVd Ci0rICAtLW9sZGluY2x1ZGVkaXI9RElSICAgICBDIGhlYWRlciBmaWxlcyBmb3Igbm9uLWdjYyBb L3Vzci9pbmNsdWRlXQotKyAgLS1kYXRhcm9vdGRpcj1ESVIgICAgICAgcmVhZC1vbmx5IGFyY2gu LWluZGVwZW5kZW50IGRhdGEgcm9vdCBbUFJFRklYL3NoYXJlXQotKyAgLS1kYXRhZGlyPURJUiAg ICAgICAgICAgcmVhZC1vbmx5IGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtEQVRBUk9P VERJUl0KLSsgIC0taW5mb2Rpcj1ESVIgICAgICAgICAgIGluZm8gZG9jdW1lbnRhdGlvbiBbREFU QVJPT1RESVIvaW5mb10KLSsgIC0tbG9jYWxlZGlyPURJUiAgICAgICAgIGxvY2FsZS1kZXBlbmRl bnQgZGF0YSBbREFUQVJPT1RESVIvbG9jYWxlXQotKyAgLS1tYW5kaXI9RElSICAgICAgICAgICAg bWFuIGRvY3VtZW50YXRpb24gW0RBVEFST09URElSL21hbl0KLSsgIC0tZG9jZGlyPURJUiAgICAg ICAgICAgIGRvY3VtZW50YXRpb24gcm9vdCBbREFUQVJPT1RESVIvZG9jL3NvY2ldCi0rICAtLWh0 bWxkaXI9RElSICAgICAgICAgICBodG1sIGRvY3VtZW50YXRpb24gW0RPQ0RJUl0KLSsgIC0tZHZp ZGlyPURJUiAgICAgICAgICAgIGR2aSBkb2N1bWVudGF0aW9uIFtET0NESVJdCi0rICAtLXBkZmRp cj1ESVIgICAgICAgICAgICBwZGYgZG9jdW1lbnRhdGlvbiBbRE9DRElSXQotKyAgLS1wc2Rpcj1E SVIgICAgICAgICAgICAgcHMgZG9jdW1lbnRhdGlvbiBbRE9DRElSXQotK19BQ0VPRgotKwotKyAg Y2F0IDw8XF9BQ0VPRgotKwotK1Byb2dyYW0gbmFtZXM6Ci0rICAtLXByb2dyYW0tcHJlZml4PVBS RUZJWCAgICAgICAgICAgIHByZXBlbmQgUFJFRklYIHRvIGluc3RhbGxlZCBwcm9ncmFtIG5hbWVz Ci0rICAtLXByb2dyYW0tc3VmZml4PVNVRkZJWCAgICAgICAgICAgIGFwcGVuZCBTVUZGSVggdG8g aW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKLSsgIC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZT1QUk9H UkFNICAgcnVuIHNlZCBQUk9HUkFNIG9uIGluc3RhbGxlZCBwcm9ncmFtIG5hbWVzCi0rCi0rU3lz dGVtIHR5cGVzOgotKyAgLS1idWlsZD1CVUlMRCAgICAgY29uZmlndXJlIGZvciBidWlsZGluZyBv biBCVUlMRCBbZ3Vlc3NlZF0KLSsgIC0taG9zdD1IT1NUICAgICAgIGNyb3NzLWNvbXBpbGUgdG8g YnVpbGQgcHJvZ3JhbXMgdG8gcnVuIG9uIEhPU1QgW0JVSUxEXQotK19BQ0VPRgotK2ZpCi0rCi0r aWYgdGVzdCAtbiAiJGFjX2luaXRfaGVscCI7IHRoZW4KLSsgIGNhc2UgJGFjX2luaXRfaGVscCBp bgotKyAgICAgc2hvcnQgfCByZWN1cnNpdmUgKSBlY2hvICJDb25maWd1cmF0aW9uIG9mIFNPQ0kg My4wLjA6Ijs7Ci0rICAgZXNhYwotKyAgY2F0IDw8XF9BQ0VPRgotKwotK09wdGlvbmFsIEZlYXR1 cmVzOgotKyAgLS1kaXNhYmxlLW9wdGlvbi1jaGVja2luZyAgaWdub3JlIHVucmVjb2duaXplZCAt LWVuYWJsZS8tLXdpdGggb3B0aW9ucwotKyAgLS1kaXNhYmxlLUZFQVRVUkUgICAgICAgZG8gbm90 IGluY2x1ZGUgRkVBVFVSRSAoc2FtZSBhcyAtLWVuYWJsZS1GRUFUVVJFPW5vKQotKyAgLS1lbmFi bGUtRkVBVFVSRVs9QVJHXSAgaW5jbHVkZSBGRUFUVVJFIFtBUkc9eWVzXQotKyAgLS1lbmFibGUt c2hhcmVkWz1QS0dTXSAgYnVpbGQgc2hhcmVkIGxpYnJhcmllcyBbZGVmYXVsdD1ub10KLSsgIC0t ZW5hYmxlLXN0YXRpY1s9UEtHU10gIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMgW2RlZmF1bHQ9eWVz XQotKyAgLS1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgIHNwZWVkcyB1cCBvbmUtdGltZSBi dWlsZAotKyAgLS1lbmFibGUtZGVwZW5kZW5jeS10cmFja2luZyAgIGRvIG5vdCByZWplY3Qgc2xv dyBkZXBlbmRlbmN5IGV4dHJhY3RvcnMKLSsgIC0tZW5hYmxlLWZhc3QtaW5zdGFsbFs9UEtHU10K LSsgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlv biBbZGVmYXVsdD15ZXNdCi0rICAtLWRpc2FibGUtbGlidG9vbC1sb2NrICBhdm9pZCBsb2NraW5n IChtaWdodCBicmVhayBwYXJhbGxlbCBidWlsZHMpCi0rICAtLWVuYWJsZS1leGNlcHRpb25zICAg ICBlbmFibGUgZXhjZXB0aW9ucyBoYW5kbGluZyBtZWNoYW5pc20KLSsgIC0tZGlzYWJsZS1pbmZv LWRvYyAgICAgIGRvIG5vdCBnZW5lcmF0ZSBJbmZvIGRvY3VtZW50YXRpb24KLSsgIC0tZGlzYWJs ZS1odG1sLWRvYyAgICAgIGRvIG5vdCBnZW5lcmF0ZSBIVE1MIGRvY3VtZW50YXRpb24KLSsgIC0t ZW5hYmxlLWJ1cnJpZWQtaGVhZGVycwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVk ZSBoZWFkZXIgZmlsZXMgZnJvbSBhIGRpcmVjdG9yeSBzdHJ1Y3R1cmUKLSsgIC0tZW5hYmxlLW15 c3FsLWJ1cnJpZWQtaGVhZGVycwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZSBN eVNRTCBoZWFkZXIgZmlsZXMgZnJvbSBhIGRpcmVjdG9yeQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0dXJlCi0rICAtLWVuYWJsZS1wb3N0Z3Jlc3FsLWJ1cnJpZWQtaGVhZGVycwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZSBQb3N0R3JlU1FMIGhlYWRlciBmaWxl cyBmcm9tIGEgZGlyZWN0b3J5Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUK LSsgIC0tZW5hYmxlLWJhY2tlbmQtbXlzcWwgIGJ1aWxkLWluIE15U1FMIGJhY2tlbmQgc3VwcG9y dCBbZGVmYXVsdD1ub10KLSsgIC0tZW5hYmxlLWJhY2tlbmQtb3JhY2xlIGJ1aWxkLWluIE9SQUNM RSBiYWNrZW5kIHN1cHBvcnQgW2RlZmF1bHQ9bm9dCi0rICAtLWVuYWJsZS1iYWNrZW5kLXBvc3Rn cmVzcWwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkLWluIFBvc3RncmVTUUwgYmFj a2VuZCBzdXBwb3J0IFtkZWZhdWx0PW5vXQotKwotK09wdGlvbmFsIFBhY2thZ2VzOgotKyAgLS13 aXRoLVBBQ0tBR0VbPUFSR10gICAgdXNlIFBBQ0tBR0UgW0FSRz15ZXNdCi0rICAtLXdpdGhvdXQt UEFDS0FHRSAgICAgICBkbyBub3QgdXNlIFBBQ0tBR0UgKHNhbWUgYXMgLS13aXRoLVBBQ0tBR0U9 bm8pCi0rICAtLXdpdGgtY3BwdW5pdC1wcmVmaXg9UEZYICAgUHJlZml4IHdoZXJlIENwcFVuaXQg aXMgaW5zdGFsbGVkIChvcHRpb25hbCkKLSsgIC0td2l0aC1jcHB1bml0LWV4ZWMtcHJlZml4PVBG WCAgRXhlYyBwcmVmaXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKQotKyAg LS13aXRoLXBpYyAgICAgICAgICAgICAgdHJ5IHRvIHVzZSBvbmx5IFBJQy9ub24tUElDIG9iamVj dHMgW2RlZmF1bHQ9dXNlCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBib3RoXQotKyAgLS13 aXRoLWdudS1sZCAgICAgICAgICAgYXNzdW1lIHRoZSBDIGNvbXBpbGVyIHVzZXMgR05VIGxkIFtk ZWZhdWx0PW5vXQotKyAgLS13aXRoLWRvY2Rpcj1ESVIgICAgICAgc2V0IGRvY3VtZW50YXRpb24g ZGlyZWN0b3J5IHRvIERJUgotKyAgLS13aXRoLWJvb3N0PURJUiAgICAgICAgdXNlIGJvb3N0IChk ZWZhdWx0IGlzIE5PKSAsIHNwZWNpZnkgdGhlIHJvb3QKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgIGRpcmVjdG9yeSBmb3IgYm9vc3QgbGlicmFyeSAob3B0aW9uYWwpCi0rICAtLXdpdGgtbXlz cWw9PHBhdGg+ICAgICByb290IGRpcmVjdG9yeSBwYXRoIG9mIE15U1FMIGluc3RhbGxhdGlvbgot KyAgLS13aXRoLW15c3FsLWxpYj08cGF0aD4gZGlyZWN0b3J5IHBhdGggb2YgTXlTUUwgbGlicmFy eSBpbnN0YWxsYXRpb24KLSsgIC0td2l0aC1teXNxbC1pbmNsdWRlPTxwYXRoPiBkaXJlY3Rvcnkg cGF0aCBvZiBNeVNRTCBoZWFkZXIgaW5zdGFsbGF0aW9uCi0rICAtLXdpdGgtb3JhY2xlPVtESVJd ICAgICB1c2UgT3JhY2xlIE9DSSBBUEkgZnJvbSBnaXZlbiBwYXRoIHRvIE9yYWNsZSBob21lCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnkKLSsgIC0td2l0aC1vcmFjbGUtaW5j bHVkZT1bRElSXQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlIE9yYWNsZSBPQ0kgQVBJ IGhlYWRlcnMgZnJvbSBnaXZlbiBwYXRoCi0rICAtLXdpdGgtb3JhY2xlLWxpYj1bRElSXSB1c2Ug T3JhY2xlIE9DSSBBUEkgbGlicmFyaWVzIGZyb20gZ2l2ZW4gcGF0aAotKyAgLS13aXRoLXBvc3Rn cmVzcWw9W0FSR10gdXNlIFBvc3RncmVTUUwgbGlicmFyeSBbZGVmYXVsdD15ZXNdLCBvcHRpb25h bGx5Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZ5IHBhdGggdG8gcGdfY29uZmln Ci0rCi0rU29tZSBpbmZsdWVudGlhbCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0rICBDWFggICAg ICAgICBDKysgY29tcGlsZXIgY29tbWFuZAotKyAgQ1hYRkxBR1MgICAgQysrIGNvbXBpbGVyIGZs YWdzCi0rICBMREZMQUdTICAgICBsaW5rZXIgZmxhZ3MsIGUuZy4gLUw8bGliIGRpcj4gaWYgeW91 IGhhdmUgbGlicmFyaWVzIGluIGEKLSsgICAgICAgICAgICAgIG5vbnN0YW5kYXJkIGRpcmVjdG9y eSA8bGliIGRpcj4KLSsgIExJQlMgICAgICAgIGxpYnJhcmllcyB0byBwYXNzIHRvIHRoZSBsaW5r ZXIsIGUuZy4gLWw8bGlicmFyeT4KLSsgIENQUEZMQUdTICAgIEMvQysrL09iamVjdGl2ZSBDIHBy ZXByb2Nlc3NvciBmbGFncywgZS5nLiAtSTxpbmNsdWRlIGRpcj4gaWYKLSsgICAgICAgICAgICAg IHlvdSBoYXZlIGhlYWRlcnMgaW4gYSBub25zdGFuZGFyZCBkaXJlY3RvcnkgPGluY2x1ZGUgZGly PgotKyAgQ1hYQ1BQICAgICAgQysrIHByZXByb2Nlc3NvcgotKyAgQ0MgICAgICAgICAgQyBjb21w aWxlciBjb21tYW5kCi0rICBDRkxBR1MgICAgICBDIGNvbXBpbGVyIGZsYWdzCi0rICBDUFAgICAg ICAgICBDIHByZXByb2Nlc3NvcgotKwotK1VzZSB0aGVzZSB2YXJpYWJsZXMgdG8gb3ZlcnJpZGUg dGhlIGNob2ljZXMgbWFkZSBieSBgY29uZmlndXJlJyBvciB0byBoZWxwCi0raXQgdG8gZmluZCBs aWJyYXJpZXMgYW5kIHByb2dyYW1zIHdpdGggbm9uc3RhbmRhcmQgbmFtZXMvbG9jYXRpb25zLgot KwotK1JlcG9ydCBidWdzIHRvIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+LgotK19B Q0VPRgotK2FjX3N0YXR1cz0kPwotK2ZpCi0rCi0raWYgdGVzdCAiJGFjX2luaXRfaGVscCIgPSAi cmVjdXJzaXZlIjsgdGhlbgotKyAgIyBJZiB0aGVyZSBhcmUgc3ViZGlycywgcmVwb3J0IHRoZWly IHNwZWNpZmljIC0taGVscC4KLSsgIGZvciBhY19kaXIgaW4gOiAkYWNfc3ViZGlyc19hbGw7IGRv IHRlc3QgIngkYWNfZGlyIiA9IHg6ICYmIGNvbnRpbnVlCi0rICAgIHRlc3QgLWQgIiRhY19kaXIi IHx8Ci0rICAgICAgeyBjZCAiJHNyY2RpciIgJiYgYWNfcHdkPWBwd2RgICYmIHNyY2Rpcj0uICYm IHRlc3QgLWQgIiRhY19kaXIiOyB9IHx8Ci0rICAgICAgY29udGludWUKLSsgICAgYWNfYnVpbGRk aXI9LgotKwotK2Nhc2UgIiRhY19kaXIiIGluCi0rLikgYWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1 aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7Ci0rKikKLSsgIGFjX2Rpcl9zdWZm aXg9L2AkYXNfZWNobyAiJGFjX2RpciIgfCBzZWQgJ3N8XlwuW1xcL118fCdgCi0rICAjIEEgIi4u IiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCi0rICBhY190b3BfYnVpbGRk aXJfc3ViPWAkYXNfZWNobyAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzfC9bXlxcL10qfC8uLnxn O3N8L3x8J2AKLSsgIGNhc2UgJGFjX3RvcF9idWlsZGRpcl9zdWIgaW4KLSsgICIiKSBhY190b3Bf YnVpbGRkaXJfc3ViPS4gYWNfdG9wX2J1aWxkX3ByZWZpeD0gOzsKLSsgICopICBhY190b3BfYnVp bGRfcHJlZml4PSRhY190b3BfYnVpbGRkaXJfc3ViLyA7OwotKyAgZXNhYyA7OwotK2VzYWMKLSth Y19hYnNfdG9wX2J1aWxkZGlyPSRhY19wd2QKLSthY19hYnNfYnVpbGRkaXI9JGFjX3B3ZCRhY19k aXJfc3VmZml4Ci0rIyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eToKLSthY190b3BfYnVpbGRk aXI9JGFjX3RvcF9idWlsZF9wcmVmaXgKLSsKLStjYXNlICRzcmNkaXIgaW4KLSsgIC4pICAjIFdl IGFyZSBidWlsZGluZyBpbiBwbGFjZS4KLSsgICAgYWNfc3JjZGlyPS4KLSsgICAgYWNfdG9wX3Ny Y2Rpcj0kYWNfdG9wX2J1aWxkZGlyX3N1YgotKyAgICBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfcHdk IDs7Ci0rICBbXFwvXSogfCA/OltcXC9dKiApICAjIEFic29sdXRlIG5hbWUuCi0rICAgIGFjX3Ny Y2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7Ci0rICAgIGFjX3RvcF9zcmNkaXI9JHNyY2Rpcgot KyAgICBhY19hYnNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7Ci0rICAqKSAjIFJlbGF0aXZlIG5hbWUu Ci0rICAgIGFjX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIkYWNfZGlyX3N1ZmZp eAotKyAgICBhY190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRfcHJlZml4JHNyY2RpcgotKyAgICBh Y19hYnNfdG9wX3NyY2Rpcj0kYWNfcHdkLyRzcmNkaXIgOzsKLStlc2FjCi0rYWNfYWJzX3NyY2Rp cj0kYWNfYWJzX3RvcF9zcmNkaXIkYWNfZGlyX3N1ZmZpeAotKwotKyAgICBjZCAiJGFjX2RpciIg fHwgeyBhY19zdGF0dXM9JD87IGNvbnRpbnVlOyB9Ci0rICAgICMgQ2hlY2sgZm9yIGd1ZXN0ZWQg Y29uZmlndXJlLgotKyAgICBpZiB0ZXN0IC1mICIkYWNfc3JjZGlyL2NvbmZpZ3VyZS5nbnUiOyB0 aGVuCi0rICAgICAgZWNobyAmJgotKyAgICAgICRTSEVMTCAiJGFjX3NyY2Rpci9jb25maWd1cmUu Z251IiAtLWhlbHA9cmVjdXJzaXZlCi0rICAgIGVsaWYgdGVzdCAtZiAiJGFjX3NyY2Rpci9jb25m aWd1cmUiOyB0aGVuCi0rICAgICAgZWNobyAmJgotKyAgICAgICRTSEVMTCAiJGFjX3NyY2Rpci9j b25maWd1cmUiIC0taGVscD1yZWN1cnNpdmUKLSsgICAgZWxzZQotKyAgICAgICRhc19lY2hvICIk YXNfbWU6IFdBUk5JTkc6IG5vIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gaXMgaW4gJGFjX2Rp ciIgPiYyCi0rICAgIGZpIHx8IGFjX3N0YXR1cz0kPwotKyAgICBjZCAiJGFjX3B3ZCIgfHwgeyBh Y19zdGF0dXM9JD87IGJyZWFrOyB9Ci0rICBkb25lCi0rZmkKLSsKLSt0ZXN0IC1uICIkYWNfaW5p dF9oZWxwIiAmJiBleGl0ICRhY19zdGF0dXMKLStpZiAkYWNfaW5pdF92ZXJzaW9uOyB0aGVuCi0r ICBjYXQgPDxcX0FDRU9GCi0rU09DSSBjb25maWd1cmUgMy4wLjAKLStnZW5lcmF0ZWQgYnkgR05V IEF1dG9jb25mIDIuNjMKLSsKLStDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUs IDE5OTYsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsCi0rMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwg MjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLStUaGlzIGNv bmZpZ3VyZSBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgotK2dpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5k IG1vZGlmeSBpdC4KLSsKLStDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOSBNYWNpZWogU29iY3phayA8 bXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotK19BQ0VPRgotKyAgZXhpdAotIGZpCi0r Y2F0ID5jb25maWcubG9nIDw8X0FDRU9GCi0rVGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdl cyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hpbGUKLStydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlk IGRlYnVnZ2luZyBpZiBjb25maWd1cmUgbWFrZXMgYSBtaXN0YWtlLgotKwotK0l0IHdhcyBjcmVh dGVkIGJ5IFNPQ0kgJGFzX21lIDMuMC4wLCB3aGljaCB3YXMKLStnZW5lcmF0ZWQgYnkgR05VIEF1 dG9jb25mIDIuNjMuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKLSsKLSsgICQgJDAgJEAK LSsKLStfQUNFT0YKLStleGVjIDU+PmNvbmZpZy5sb2cKLSt7Ci0rY2F0IDw8X0FTVU5BTUUKLSsj IyAtLS0tLS0tLS0gIyMKLSsjIyBQbGF0Zm9ybS4gIyMKLSsjIyAtLS0tLS0tLS0gIyMKLSsKLSto b3N0bmFtZSA9IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAot K3VuYW1lIC1tID0gYCh1bmFtZSAtbSkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotK3Vu YW1lIC1yID0gYCh1bmFtZSAtcikgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotK3VuYW1l IC1zID0gYCh1bmFtZSAtcykgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotK3VuYW1lIC12 ID0gYCh1bmFtZSAtdikgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotKwotKy91c3IvYmlu L3VuYW1lIC1wID0gYCgvdXNyL2Jpbi91bmFtZSAtcCkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtu b3duYAotKy9iaW4vdW5hbWUgLVggICAgID0gYCgvYmluL3VuYW1lIC1YKSAyPi9kZXYvbnVsbCAg ICAgfHwgZWNobyB1bmtub3duYAotKwotKy9iaW4vYXJjaCAgICAgICAgICAgICAgPSBgKC9iaW4v YXJjaCkgMj4vZGV2L251bGwgICAgICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLSsvdXNyL2Jp bi9hcmNoIC1rICAgICAgID0gYCgvdXNyL2Jpbi9hcmNoIC1rKSAyPi9kZXYvbnVsbCAgICAgICB8 fCBlY2hvIHVua25vd25gCi0rL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IGAoL3Vzci9jb252ZXgv Z2V0c3lzaW5mbykgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotKy91c3IvYmluL2hvc3Rp bmZvICAgICAgPSBgKC91c3IvYmluL2hvc3RpbmZvKSAyPi9kZXYvbnVsbCAgICAgIHx8IGVjaG8g dW5rbm93bmAKLSsvYmluL21hY2hpbmUgICAgICAgICAgID0gYCgvYmluL21hY2hpbmUpIDI+L2Rl di9udWxsICAgICAgICAgICB8fCBlY2hvIHVua25vd25gCi0rL3Vzci9iaW4vb3NsZXZlbCAgICAg ICA9IGAoL3Vzci9iaW4vb3NsZXZlbCkgMj4vZGV2L251bGwgICAgICAgfHwgZWNobyB1bmtub3du YAotKy9iaW4vdW5pdmVyc2UgICAgICAgICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9udWxs ICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLSsKLStfQVNVTkFNRQotKwotK2FzX3NhdmVfSUZT PSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsg IElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAk YXNfZWNobyAiUEFUSDogJGFzX2RpciIKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK30g PiY1Ci0rCi0rY2F0ID4mNSA8PF9BQ0VPRgotKwotKwotKyMjIC0tLS0tLS0tLS0tICMjCi0rIyMg Q29yZSB0ZXN0cy4gIyMKLSsjIyAtLS0tLS0tLS0tLSAjIwotKwotK19BQ0VPRgotKwotKwotKyMg S2VlcCBhIHRyYWNlIG9mIHRoZSBjb21tYW5kIGxpbmUuCi0rIyBTdHJpcCBvdXQgLS1uby1jcmVh dGUgYW5kIC0tbm8tcmVjdXJzaW9uIHNvIHRoZXkgZG8gbm90IHBpbGUgdXAuCi0rIyBTdHJpcCBv dXQgLS1zaWxlbnQgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvIHJlY29yZCBpdCBmb3IgZnV0dXJl IHJ1bnMuCi0rIyBBbHNvIHF1b3RlIGFueSBhcmdzIGNvbnRhaW5pbmcgc2hlbGwgbWV0YS1jaGFy YWN0ZXJzLgotKyMgTWFrZSB0d28gcGFzc2VzIHRvIGFsbG93IGZvciBwcm9wZXIgZHVwbGljYXRl LWFyZ3VtZW50IHN1cHByZXNzaW9uLgotK2FjX2NvbmZpZ3VyZV9hcmdzPQotK2FjX2NvbmZpZ3Vy ZV9hcmdzMD0KLSthY19jb25maWd1cmVfYXJnczE9Ci0rYWNfbXVzdF9rZWVwX25leHQ9ZmFsc2UK LStmb3IgYWNfcGFzcyBpbiAxIDIKLStkbwotKyAgZm9yIGFjX2FyZwotKyAgZG8KLSsgICAgY2Fz ZSAkYWNfYXJnIGluCi0rICAgIC1uby1jcmVhdGUgfCAtLW5vLWMqIHwgLW4gfCAtbm8tcmVjdXJz aW9uIHwgLS1uby1yKikgY29udGludWUgOzsKLSsgICAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwg LS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKLSsgICAgfCAtc2lsZW50IHwgLS1zaWxlbnQg fCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwpCi0rICAgICAgY29udGludWUgOzsKLSsgICAgKlwn KikKLSsgICAgICBhY19hcmc9YCRhc19lY2hvICIkYWNfYXJnIiB8IHNlZCAicy8nLydcXFxcXFxc XCcnL2ciYCA7OwotKyAgICBlc2FjCi0rICAgIGNhc2UgJGFjX3Bhc3MgaW4KLSsgICAgMSkgYWNf Y29uZmlndXJlX2FyZ3MwPSIkYWNfY29uZmlndXJlX2FyZ3MwICckYWNfYXJnJyIgOzsKLSsgICAg MikKLSsgICAgICBhY19jb25maWd1cmVfYXJnczE9IiRhY19jb25maWd1cmVfYXJnczEgJyRhY19h cmcnIgotKyAgICAgIGlmIHRlc3QgJGFjX211c3Rfa2VlcF9uZXh0ID0gdHJ1ZTsgdGhlbgotKwlh Y19tdXN0X2tlZXBfbmV4dD1mYWxzZSAjIEdvdCB2YWx1ZSwgYmFjayB0byBub3JtYWwuCi0rICAg ICAgZWxzZQotKwljYXNlICRhY19hcmcgaW4KLSsJICAqPSogfCAtLWNvbmZpZy1jYWNoZSB8IC1D IHwgLWRpc2FibGUtKiB8IC0tZGlzYWJsZS0qIFwKLSsJICB8IC1lbmFibGUtKiB8IC0tZW5hYmxl LSogfCAtZ2FzIHwgLS1nKiB8IC1uZnAgfCAtLW5mKiBcCi0rCSAgfCAtcSB8IC1xdWlldCB8IC0t cSogfCAtc2lsZW50IHwgLS1zaWwqIHwgLXYgfCAtdmVyYiogXAotKwkgIHwgLXdpdGgtKiB8IC0t d2l0aC0qIHwgLXdpdGhvdXQtKiB8IC0td2l0aG91dC0qIHwgLS14KQotKwkgICAgY2FzZSAiJGFj X2NvbmZpZ3VyZV9hcmdzMCAiIGluCi0rCSAgICAgICIkYWNfY29uZmlndXJlX2FyZ3MxIioiICck YWNfYXJnJyAiKiApIGNvbnRpbnVlIDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKwkgIC0qICkg YWNfbXVzdF9rZWVwX25leHQ9dHJ1ZSA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBhY19j b25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzICckYWNfYXJnJyIKLSsgICAgICA7Owot KyAgICBlc2FjCi0rICBkb25lCi0rZG9uZQotKyRhc191bnNldCBhY19jb25maWd1cmVfYXJnczAg fHwgdGVzdCAiJHthY19jb25maWd1cmVfYXJnczArc2V0fSIgIT0gc2V0IHx8IHsgYWNfY29uZmln dXJlX2FyZ3MwPTsgZXhwb3J0IGFjX2NvbmZpZ3VyZV9hcmdzMDsgfQotKyRhc191bnNldCBhY19j b25maWd1cmVfYXJnczEgfHwgdGVzdCAiJHthY19jb25maWd1cmVfYXJnczErc2V0fSIgIT0gc2V0 IHx8IHsgYWNfY29uZmlndXJlX2FyZ3MxPTsgZXhwb3J0IGFjX2NvbmZpZ3VyZV9hcmdzMTsgfQot KwotKyMgV2hlbiBpbnRlcnJ1cHRlZCBvciBleGl0J2QsIGNsZWFudXAgdGVtcG9yYXJ5IGZpbGVz LCBhbmQgY29tcGxldGUKLSsjIGNvbmZpZy5sb2cuICBXZSByZW1vdmUgY29tbWVudHMgYmVjYXVz ZSBhbnl3YXkgdGhlIHF1b3RlcyBpbiB0aGVyZQotKyMgd291bGQgY2F1c2UgcHJvYmxlbXMgb3Ig bG9vayB1Z2x5LgotKyMgV0FSTklORzogVXNlICdcJycgdG8gcmVwcmVzZW50IGFuIGFwb3N0cm9w aGUgd2l0aGluIHRoZSB0cmFwLgotKyMgV0FSTklORzogRG8gbm90IHN0YXJ0IHRoZSB0cmFwIGNv ZGUgd2l0aCBhIG5ld2xpbmUsIGR1ZSB0byBhIEZyZWVCU0QgNC4wIGJ1Zy4KLSt0cmFwICdleGl0 X3N0YXR1cz0kPwotKyAgIyBTYXZlIGludG8gY29uZmlnLmxvZyBzb21lIGluZm9ybWF0aW9uIHRo YXQgbWlnaHQgaGVscCBpbiBkZWJ1Z2dpbmcuCi0rICB7Ci0rICAgIGVjaG8KLSsKLSsgICAgY2F0 IDw8XF9BU0JPWAotKyMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBDYWNoZSB2YXJpYWJsZXMu ICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwotK19BU0JPWAotKyAgICBlY2hvCi0rICAgICMg VGhlIGZvbGxvd2luZyB3YXkgb2Ygd3JpdGluZyB0aGUgY2FjaGUgbWlzaGFuZGxlcyBuZXdsaW5l cyBpbiB2YWx1ZXMsCi0rKAotKyAgZm9yIGFjX3ZhciBpbiBgKHNldCkgMj4mMSB8IHNlZCAtbiAn XCcncy9eXChbYS16QS1aX11bYS16QS1aMC05X10qXCk9LiovXDEvcCdcJydgOyBkbwotKyAgICBl dmFsIGFjX3ZhbD1cJCRhY192YXIKLSsgICAgY2FzZSAkYWNfdmFsIGluICMoCi0rICAgICoke2Fz X25sfSopCi0rICAgICAgY2FzZSAkYWNfdmFyIGluICMoCi0rICAgICAgKl9jdl8qKSB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogY2FjaGUgdmFyaWFibGUgJGFjX3ZhciBjb250 YWlucyBhIG5ld2xpbmUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGNhY2hlIHZh cmlhYmxlICRhY192YXIgY29udGFpbnMgYSBuZXdsaW5lIiA+JjI7fSA7OwotKyAgICAgIGVzYWMK LSsgICAgICBjYXNlICRhY192YXIgaW4gIygKLSsgICAgICBfIHwgSUZTIHwgYXNfbmwpIDs7ICMo Ci0rICAgICAgQkFTSF9BUkdWIHwgQkFTSF9TT1VSQ0UpIGV2YWwgJGFjX3Zhcj0gOzsgIygKLSsg ICAgICAqKSAkYXNfdW5zZXQgJGFjX3ZhciA7OwotKyAgICAgIGVzYWMgOzsKLSsgICAgZXNhYwot KyAgZG9uZQotKyAgKHNldCkgMj4mMSB8Ci0rICAgIGNhc2UgJGFzX25sYChhY19zcGFjZT0nXCcn ICdcJyc7IHNldCkgMj4mMWAgaW4gIygKLSsgICAgKiR7YXNfbmx9YWNfc3BhY2U9XCAqKQotKyAg ICAgIHNlZCAtbiBcCi0rCSJzLydcJycvJ1wnJ1xcXFwnXCcnJ1wnJy9nOwotKwkgIHMvXlxcKFtf JGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9J1wnJ1xc MidcJycvcCIKLSsgICAgICA7OyAjKAotKyAgICAqKQotKyAgICAgIHNlZCAtbiAiL15bXyRhc19j cl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVtXSo9L3AiCi0rICAgICAgOzsKLSsgICAgZXNhYyB8 Ci0rICAgIHNvcnQKLSspCi0rICAgIGVjaG8KLSsKLSsgICAgY2F0IDw8XF9BU0JPWAotKyMjIC0t LS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgT3V0cHV0IHZhcmlhYmxlcy4gIyMKLSsjIyAtLS0tLS0t LS0tLS0tLS0tLSAjIwotK19BU0JPWAotKyAgICBlY2hvCi0rICAgIGZvciBhY192YXIgaW4gJGFj X3N1YnN0X3ZhcnMKLSsgICAgZG8KLSsgICAgICBldmFsIGFjX3ZhbD1cJCRhY192YXIKLSsgICAg ICBjYXNlICRhY192YWwgaW4KLSsgICAgICAqXCdcJycqKSBhY192YWw9YCRhc19lY2hvICIkYWNf dmFsIiB8IHNlZCAicy8nXCcnLydcJydcXFxcXFxcXCdcJycnXCcnL2ciYDs7Ci0rICAgICAgZXNh YwotKyAgICAgICRhc19lY2hvICIkYWNfdmFyPSdcJyckYWNfdmFsJ1wnJyIKLSsgICAgZG9uZSB8 IHNvcnQKLSsgICAgZWNobwotKwotKyAgICBpZiB0ZXN0IC1uICIkYWNfc3Vic3RfZmlsZXMiOyB0 aGVuCi0rICAgICAgY2F0IDw8XF9BU0JPWAotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsj IyBGaWxlIHN1YnN0aXR1dGlvbnMuICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotK19B U0JPWAotKyAgICAgIGVjaG8KLSsgICAgICBmb3IgYWNfdmFyIGluICRhY19zdWJzdF9maWxlcwot KyAgICAgIGRvCi0rCWV2YWwgYWNfdmFsPVwkJGFjX3ZhcgotKwljYXNlICRhY192YWwgaW4KLSsJ KlwnXCcnKikgYWNfdmFsPWAkYXNfZWNobyAiJGFjX3ZhbCIgfCBzZWQgInMvJ1wnJy8nXCcnXFxc XFxcXFwnXCcnJ1wnJy9nImA7OwotKwllc2FjCi0rCSRhc19lY2hvICIkYWNfdmFyPSdcJyckYWNf dmFsJ1wnJyIKLSsgICAgICBkb25lIHwgc29ydAotKyAgICAgIGVjaG8KLSsgICAgZmkKLSsKLSsg ICAgaWYgdGVzdCAtcyBjb25mZGVmcy5oOyB0aGVuCi0rICAgICAgY2F0IDw8XF9BU0JPWAotKyMj IC0tLS0tLS0tLS0tICMjCi0rIyMgY29uZmRlZnMuaC4gIyMKLSsjIyAtLS0tLS0tLS0tLSAjIwot K19BU0JPWAotKyAgICAgIGVjaG8KLSsgICAgICBjYXQgY29uZmRlZnMuaAotKyAgICAgIGVjaG8K LSsgICAgZmkKLSsgICAgdGVzdCAiJGFjX3NpZ25hbCIgIT0gMCAmJgotKyAgICAgICRhc19lY2hv ICIkYXNfbWU6IGNhdWdodCBzaWduYWwgJGFjX3NpZ25hbCIKLSsgICAgJGFzX2VjaG8gIiRhc19t ZTogZXhpdCAkZXhpdF9zdGF0dXMiCi0rICB9ID4mNQotKyAgcm0gLWYgY29yZSAqLmNvcmUgY29y ZS5jb25mdGVzdC4qICYmCi0rICAgIHJtIC1mIC1yIGNvbmZ0ZXN0KiBjb25mZGVmcyogY29uZiQk KiAkYWNfY2xlYW5fZmlsZXMgJiYKLSsgICAgZXhpdCAkZXhpdF9zdGF0dXMKLSsnIDAKLStmb3Ig YWNfc2lnbmFsIGluIDEgMiAxMyAxNTsgZG8KLSsgIHRyYXAgJ2FjX3NpZ25hbD0nJGFjX3NpZ25h bCc7IHsgKGV4aXQgMSk7IGV4aXQgMTsgfScgJGFjX3NpZ25hbAotK2RvbmUKLSthY19zaWduYWw9 MAotKwotKyMgY29uZmRlZnMuaCBhdm9pZHMgT1MgY29tbWFuZCBsaW5lIGxlbmd0aCBsaW1pdHMg dGhhdCBERUZTIGNhbiBleGNlZWQuCi0rcm0gLWYgLXIgY29uZnRlc3QqIGNvbmZkZWZzLmgKLSsK LSsjIFByZWRlZmluZWQgcHJlcHJvY2Vzc29yIHZhcmlhYmxlcy4KLSsKLStjYXQgPj5jb25mZGVm cy5oIDw8X0FDRU9GCi0rI2RlZmluZSBQQUNLQUdFX05BTUUgIiRQQUNLQUdFX05BTUUiCi0rX0FD RU9GCi0rCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICIkUEFDS0FHRV9UQVJOQU1FIgotK19BQ0VPRgotKwotKwotK2NhdCA+PmNvbmZkZWZz LmggPDxfQUNFT0YKLSsjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiJFBBQ0tBR0VfVkVSU0lPTiIK LStfQUNFT0YKLSsKLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBQQUNL QUdFX1NUUklORyAiJFBBQ0tBR0VfU1RSSU5HIgotK19BQ0VPRgotKwotKwotK2NhdCA+PmNvbmZk ZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIkUEFDS0FHRV9CVUdS RVBPUlQiCi0rX0FDRU9GCi0rCi0rCi0rIyBMZXQgdGhlIHNpdGUgZmlsZSBzZWxlY3QgYW4gYWx0 ZXJuYXRlIGNhY2hlIGZpbGUgaWYgaXQgd2FudHMgdG8uCi0rIyBQcmVmZXIgYW4gZXhwbGljaXRs eSBzZWxlY3RlZCBmaWxlIHRvIGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgb25lcy4KLSthY19zaXRl X2ZpbGUxPU5PTkUKLSthY19zaXRlX2ZpbGUyPU5PTkUKLStpZiB0ZXN0IC1uICIkQ09ORklHX1NJ VEUiOyB0aGVuCi0rICBhY19zaXRlX2ZpbGUxPSRDT05GSUdfU0lURQotK2VsaWYgdGVzdCAieCRw cmVmaXgiICE9IHhOT05FOyB0aGVuCi0rICBhY19zaXRlX2ZpbGUxPSRwcmVmaXgvc2hhcmUvY29u ZmlnLnNpdGUKLSsgIGFjX3NpdGVfZmlsZTI9JHByZWZpeC9ldGMvY29uZmlnLnNpdGUKLStlbHNl Ci0rICBhY19zaXRlX2ZpbGUxPSRhY19kZWZhdWx0X3ByZWZpeC9zaGFyZS9jb25maWcuc2l0ZQot KyAgYWNfc2l0ZV9maWxlMj0kYWNfZGVmYXVsdF9wcmVmaXgvZXRjL2NvbmZpZy5zaXRlCi0rZmkK LStmb3IgYWNfc2l0ZV9maWxlIGluICIkYWNfc2l0ZV9maWxlMSIgIiRhY19zaXRlX2ZpbGUyIgot K2RvCi0rICB0ZXN0ICJ4JGFjX3NpdGVfZmlsZSIgPSB4Tk9ORSAmJiBjb250aW51ZQotKyAgaWYg dGVzdCAtciAiJGFjX3NpdGVfZmlsZSI7IHRoZW4KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogbG9hZGluZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIiA+JjY7fQotKyAgICBz ZWQgJ3MvXi98IC8nICIkYWNfc2l0ZV9maWxlIiA+JjUKLSsgICAgLiAiJGFjX3NpdGVfZmlsZSIK LSsgIGZpCi0rZG9uZQotKwotK2lmIHRlc3QgLXIgIiRjYWNoZV9maWxlIjsgdGhlbgotKyAgIyBT b21lIHZlcnNpb25zIG9mIGJhc2ggd2lsbCBmYWlsIHRvIHNvdXJjZSAvZGV2L251bGwgKHNwZWNp YWwKLSsgICMgZmlsZXMgYWN0dWFsbHkpLCBzbyB3ZSBhdm9pZCBkb2luZyB0aGF0LgotKyAgaWYg dGVzdCAtZiAiJGNhY2hlX2ZpbGUiOyB0aGVuCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBsb2FkaW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBs b2FkaW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjY7fQotKyAgICBjYXNlICRjYWNoZV9maWxlIGlu Ci0rICAgICAgW1xcL10qIHwgPzpbXFwvXSogKSAuICIkY2FjaGVfZmlsZSI7OwotKyAgICAgICop ICAgICAgICAgICAgICAgICAgICAgIC4gIi4vJGNhY2hlX2ZpbGUiOzsKLSsgICAgZXNhYwotKyAg ZmkKLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY3JlYXRpbmcgY2FjaGUg JGNhY2hlX2ZpbGUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGNyZWF0aW5nIGNhY2hlICRjYWNo ZV9maWxlIiA+JjY7fQotKyAgPiRjYWNoZV9maWxlCi0rZmkKLSsKLSsjIENoZWNrIHRoYXQgdGhl IHByZWNpb3VzIHZhcmlhYmxlcyBzYXZlZCBpbiB0aGUgY2FjaGUgaGF2ZSBrZXB0IHRoZSBzYW1l Ci0rIyB2YWx1ZS4KLSthY19jYWNoZV9jb3JydXB0ZWQ9ZmFsc2UKLStmb3IgYWNfdmFyIGluICRh Y19wcmVjaW91c192YXJzOyBkbwotKyAgZXZhbCBhY19vbGRfc2V0PVwkYWNfY3ZfZW52XyR7YWNf dmFyfV9zZXQKLSsgIGV2YWwgYWNfbmV3X3NldD1cJGFjX2Vudl8ke2FjX3Zhcn1fc2V0Ci0rICBl dmFsIGFjX29sZF92YWw9XCRhY19jdl9lbnZfJHthY192YXJ9X3ZhbHVlCi0rICBldmFsIGFjX25l d192YWw9XCRhY19lbnZfJHthY192YXJ9X3ZhbHVlCi0rICBjYXNlICRhY19vbGRfc2V0LCRhY19u ZXdfc2V0IGluCi0rICAgIHNldCwpCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBcYCRhY192YXInIHdhcyBzZXQgdG8gXGAkYWNfb2xkX3ZhbCcgaW4gdGhlIHByZXZp b3VzIHJ1biIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIHNl dCB0byBcYCRhY19vbGRfdmFsJyBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjI7fQotKyAgICAgIGFj X2NhY2hlX2NvcnJ1cHRlZD06IDs7Ci0rICAgICxzZXQpCi0rICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBcYCRhY192YXInIHdhcyBub3Qgc2V0IGluIHRoZSBwcmV2aW91 cyBydW4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBcYCRhY192YXInIHdhcyBub3Qg c2V0IGluIHRoZSBwcmV2aW91cyBydW4iID4mMjt9Ci0rICAgICAgYWNfY2FjaGVfY29ycnVwdGVk PTogOzsKLSsgICAgLCk7OwotKyAgICAqKQotKyAgICAgIGlmIHRlc3QgIngkYWNfb2xkX3ZhbCIg IT0gIngkYWNfbmV3X3ZhbCI7IHRoZW4KLSsJIyBkaWZmZXJlbmNlcyBpbiB3aGl0ZXNwYWNlIGRv IG5vdCBsZWFkIHRvIGZhaWx1cmUuCi0rCWFjX29sZF92YWxfdz1gZWNobyB4ICRhY19vbGRfdmFs YAotKwlhY19uZXdfdmFsX3c9YGVjaG8geCAkYWNfbmV3X3ZhbGAKLSsJaWYgdGVzdCAiJGFjX29s ZF92YWxfdyIgIT0gIiRhY19uZXdfdmFsX3ciOyB0aGVuCi0rCSAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBcYCRhY192YXInIGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBwcmV2aW91 cyBydW46IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyBoYXMgY2hh bmdlZCBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiYyO30KLSsJICBhY19jYWNoZV9jb3JydXB0 ZWQ9OgotKwllbHNlCi0rCSAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHdhcm5pbmc6IGln bm9yaW5nIHdoaXRlc3BhY2UgY2hhbmdlcyBpbiBcYCRhY192YXInIHNpbmNlIHRoZSBwcmV2aW91 cyBydW46IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiB3YXJuaW5nOiBpZ25vcmluZyB3aGl0ZXNw YWNlIGNoYW5nZXMgaW4gXGAkYWNfdmFyJyBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiYyO30K LSsJICBldmFsICRhY192YXI9XCRhY19vbGRfdmFsCi0rCWZpCi0rCXsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiAgIGZvcm1lciB2YWx1ZTogIFxgJGFjX29sZF92YWwnIiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiAgIGZvcm1lciB2YWx1ZTogIFxgJGFjX29sZF92YWwnIiA+JjI7fQotKwl7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogICBjdXJyZW50IHZhbHVlOiBcYCRhY19uZXdfdmFsJyIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogICBjdXJyZW50IHZhbHVlOiBcYCRhY19uZXdfdmFsJyIg PiYyO30KLSsgICAgICBmaTs7Ci0rICBlc2FjCi0rICAjIFBhc3MgcHJlY2lvdXMgdmFyaWFibGVz IHRvIGNvbmZpZy5zdGF0dXMuCi0rICBpZiB0ZXN0ICIkYWNfbmV3X3NldCIgPSBzZXQ7IHRoZW4K LSsgICAgY2FzZSAkYWNfbmV3X3ZhbCBpbgotKyAgICAqXCcqKSBhY19hcmc9JGFjX3Zhcj1gJGFz X2VjaG8gIiRhY19uZXdfdmFsIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OwotKyAgICAq KSBhY19hcmc9JGFjX3Zhcj0kYWNfbmV3X3ZhbCA7OwotKyAgICBlc2FjCi0rICAgIGNhc2UgIiAk YWNfY29uZmlndXJlX2FyZ3MgIiBpbgotKyAgICAgICoiICckYWNfYXJnJyAiKikgOzsgIyBBdm9p ZCBkdXBzLiAgVXNlIG9mIHF1b3RlcyBlbnN1cmVzIGFjY3VyYWN5LgotKyAgICAgICopIGFjX2Nv bmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MgJyRhY19hcmcnIiA7OwotKyAgICBlc2Fj Ci0rICBmaQotK2RvbmUKLStpZiAkYWNfY2FjaGVfY29ycnVwdGVkOyB0aGVuCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0rICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZXJyb3I6IGNoYW5nZXMgaW4gdGhlIGVudmlyb25tZW50IGNhbiBjb21w cm9taXNlIHRoZSBidWlsZCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNoYW5nZXMg aW4gdGhlIGVudmlyb25tZW50IGNhbiBjb21wcm9taXNlIHRoZSBidWlsZCIgPiYyO30KLSsgIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBydW4gXGBtYWtlIGRpc3RjbGVhbicg YW5kL29yIFxgcm0gJGNhY2hlX2ZpbGUnIGFuZCBzdGFydCBvdmVyIiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogcnVuIFxgbWFrZSBkaXN0Y2xlYW4nIGFuZC9vciBcYHJtICRjYWNoZV9m aWxlJyBhbmQgc3RhcnQgb3ZlciIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K LStmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFH UycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4 dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9n bnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rCi0rYWNfY29uZmlnX2hlYWRlcnM9IiRhY19j b25maWdfaGVhZGVycyBzb2NpL2NvbmZpZy5oIgotKwotKwotK2FjX2F1eF9kaXI9Ci0rZm9yIGFj X2RpciBpbiBjb25maWcgIiRzcmNkaXIiL2NvbmZpZzsgZG8KLSsgIGlmIHRlc3QgLWYgIiRhY19k aXIvaW5zdGFsbC1zaCI7IHRoZW4KLSsgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0rICAgIGFjX2lu c3RhbGxfc2g9IiRhY19hdXhfZGlyL2luc3RhbGwtc2ggLWMiCi0rICAgIGJyZWFrCi0rICBlbGlm IHRlc3QgLWYgIiRhY19kaXIvaW5zdGFsbC5zaCI7IHRoZW4KLSsgICAgYWNfYXV4X2Rpcj0kYWNf ZGlyCi0rICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL2luc3RhbGwuc2ggLWMiCi0rICAg IGJyZWFrCi0rICBlbGlmIHRlc3QgLWYgIiRhY19kaXIvc2h0b29sIjsgdGhlbgotKyAgICBhY19h dXhfZGlyPSRhY19kaXIKLSsgICAgYWNfaW5zdGFsbF9zaD0iJGFjX2F1eF9kaXIvc2h0b29sIGlu c3RhbGwgLWMiCi0rICAgIGJyZWFrCi0rICBmaQotK2RvbmUKLStpZiB0ZXN0IC16ICIkYWNfYXV4 X2RpciI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5u b3QgZmluZCBpbnN0YWxsLXNoIG9yIGluc3RhbGwuc2ggaW4gY29uZmlnIFwiJHNyY2RpclwiL2Nv bmZpZyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGluc3RhbGwt c2ggb3IgaW5zdGFsbC5zaCBpbiBjb25maWcgXCIkc3JjZGlyXCIvY29uZmlnIiA+JjI7fQotKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0rCi0rIyBUaGVzZSB0aHJlZSB2YXJpYWJs ZXMgYXJlIHVuZG9jdW1lbnRlZCBhbmQgdW5zdXBwb3J0ZWQsCi0rIyBhbmQgYXJlIGludGVuZGVk IHRvIGJlIHdpdGhkcmF3biBpbiBhIGZ1dHVyZSBBdXRvY29uZiByZWxlYXNlLgotKyMgVGhleSBj YW4gY2F1c2Ugc2VyaW91cyBwcm9ibGVtcyBpZiBhIGJ1aWxkZXIncyBzb3VyY2UgdHJlZSBpcyBp biBhIGRpcmVjdG9yeQotKyMgd2hvc2UgZnVsbCBuYW1lIGNvbnRhaW5zIHVudXN1YWwgY2hhcmFj dGVycy4KLSthY19jb25maWdfZ3Vlc3M9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuZ3Vlc3Mi ICAjIFBsZWFzZSBkb24ndCB1c2UgdGhpcyB2YXIuCi0rYWNfY29uZmlnX3N1Yj0iJFNIRUxMICRh Y19hdXhfZGlyL2NvbmZpZy5zdWIiICAjIFBsZWFzZSBkb24ndCB1c2UgdGhpcyB2YXIuCi0rYWNf Y29uZmlndXJlPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlndXJlIiAgIyBQbGVhc2UgZG9uJ3Qg dXNlIHRoaXMgdmFyLgotKwotKwotK2FtX19hcGlfdmVyc2lvbj0nMS4xMScKLSsKLSsjIEZpbmQg YSBnb29kIGluc3RhbGwgcHJvZ3JhbS4gIFdlIHByZWZlciBhIEMgcHJvZ3JhbSAoZmFzdGVyKSwK LSsjIHNvIG9uZSBzY3JpcHQgaXMgYXMgZ29vZCBhcyBhbm90aGVyLiAgQnV0IGF2b2lkIHRoZSBi cm9rZW4gb3IKLSsjIGluY29tcGF0aWJsZSB2ZXJzaW9uczoKLSsjIFN5c1YgL2V0Yy9pbnN0YWxs LCAvdXNyL3NiaW4vaW5zdGFsbAotKyMgU3VuT1MgL3Vzci9ldGMvaW5zdGFsbAotKyMgSVJJWCAv c2Jpbi9pbnN0YWxsCi0rIyBBSVggL2Jpbi9pbnN0YWxsCi0rIyBBbWlnYU9TIC9DL2luc3RhbGws IHdoaWNoIGluc3RhbGxzIGJvb3RibG9ja3Mgb24gZmxvcHB5IGRpc2NzCi0rIyBBSVggNCAvdXNy L2Jpbi9pbnN0YWxsYnNkLCB3aGljaCBkb2Vzbid0IHdvcmsgd2l0aG91dCBhIC1nIGZsYWcKLSsj IEFGUyAvdXNyL2Fmc3dzL2Jpbi9pbnN0YWxsLCB3aGljaCBtaXNoYW5kbGVzIG5vbmV4aXN0ZW50 IGFyZ3MKLSsjIFNWUjQgL3Vzci91Y2IvaW5zdGFsbCwgd2hpY2ggdHJpZXMgdG8gdXNlIHRoZSBu b25leGlzdGVudCBncm91cCAic3RhZmYiCi0rIyBPUy8yJ3Mgc3lzdGVtIGluc3RhbGwsIHdoaWNo IGhhcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IHNlbWFudGljCi0rIyAuL2luc3RhbGwsIHdoaWNo IGNhbiBiZSBlcnJvbmVvdXNseSBjcmVhdGVkIGJ5IG1ha2UgZnJvbSAuL2luc3RhbGwuc2guCi0r IyBSZWplY3QgaW5zdGFsbCBwcm9ncmFtcyB0aGF0IGNhbm5vdCBpbnN0YWxsIG11bHRpcGxlIGZp bGVzLgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYSBCU0QtY29t cGF0aWJsZSBpbnN0YWxsIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBCU0QtY29t cGF0aWJsZSBpbnN0YWxsLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAteiAiJElOU1RBTEwiOyB0aGVu Ci0raWYgdGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19z YXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICMgQWNjb3VudCBm b3IgcGVvcGxlIHdobyBwdXQgdHJhaWxpbmcgc2xhc2hlcyBpbiBQQVRIIGVsZW1lbnRzLgotK2Nh c2UgJGFzX2Rpci8gaW4KLSsgIC4vIHwgLi8vIHwgL2NDLyogfCBcCi0rICAvZXRjLyogfCAvdXNy L3NiaW4vKiB8IC91c3IvZXRjLyogfCAvc2Jpbi8qIHwgL3Vzci9hZnN3cy9iaW4vKiB8IFwKLSsg ID86XFwvb3MyXFwvaW5zdGFsbFxcLyogfCA/OlxcL09TMlxcL0lOU1RBTExcXC8qIHwgXAotKyAg L3Vzci91Y2IvKiApIDs7Ci0rICAqKQotKyAgICAjIE9TRjEgYW5kIFNDTyBPRFQgMy4wIGhhdmUg dGhlaXIgb3duIG5hbWVzIGZvciBpbnN0YWxsLgotKyAgICAjIERvbid0IHVzZSBpbnN0YWxsYnNk IGZyb20gT1NGIHNpbmNlIGl0IGluc3RhbGxzIHN0dWZmIGFzIHJvb3QKLSsgICAgIyBieSBkZWZh dWx0LgotKyAgICBmb3IgYWNfcHJvZyBpbiBnaW5zdGFsbCBzY29pbnN0IGluc3RhbGw7IGRvCi0r ICAgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRv Ci0rCWlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsJICBpZiB0ZXN0 ICRhY19wcm9nID0gaW5zdGFsbCAmJgotKwkgICAgZ3JlcCBkc3Btc2cgIiRhc19kaXIvJGFjX3By b2ckYWNfZXhlY19leHQiID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkgICAgIyBBSVggaW5zdGFs bC4gIEl0IGhhcyBhbiBpbmNvbXBhdGlibGUgY2FsbGluZyBjb252ZW50aW9uLgotKwkgICAgOgot KwkgIGVsaWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKLSsJICAgIGdyZXAgcHdwbHVzICIk YXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJICAg ICMgcHJvZ3JhbS1zcGVjaWZpYyBpbnN0YWxsIHNjcmlwdCB1c2VkIGJ5IEhQIHB3cGx1cy0tZG9u J3QgdXNlLgotKwkgICAgOgotKwkgIGVsc2UKLSsJICAgIHJtIC1yZiBjb25mdGVzdC5vbmUgY29u ZnRlc3QudHdvIGNvbmZ0ZXN0LmRpcgotKwkgICAgZWNobyBvbmUgPiBjb25mdGVzdC5vbmUKLSsJ ICAgIGVjaG8gdHdvID4gY29uZnRlc3QudHdvCi0rCSAgICBta2RpciBjb25mdGVzdC5kaXIKLSsJ ICAgIGlmICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAtYyBjb25mdGVzdC5vbmUgY29u ZnRlc3QudHdvICJgcHdkYC9jb25mdGVzdC5kaXIiICYmCi0rCSAgICAgIHRlc3QgLXMgY29uZnRl c3Qub25lICYmIHRlc3QgLXMgY29uZnRlc3QudHdvICYmCi0rCSAgICAgIHRlc3QgLXMgY29uZnRl c3QuZGlyL2NvbmZ0ZXN0Lm9uZSAmJgotKwkgICAgICB0ZXN0IC1zIGNvbmZ0ZXN0LmRpci9jb25m dGVzdC50d28KLSsJICAgIHRoZW4KLSsJICAgICAgYWNfY3ZfcGF0aF9pbnN0YWxsPSIkYXNfZGly LyRhY19wcm9nJGFjX2V4ZWNfZXh0IC1jIgotKwkgICAgICBicmVhayAzCi0rCSAgICBmaQotKwkg IGZpCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICBkb25lCi0rICAgIDs7Ci0rZXNhYwotKwotK2Rv bmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50 d28gY29uZnRlc3QuZGlyCi0rCi0rZmkKLSsgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxs K3NldH0iID0gc2V0OyB0aGVuCi0rICAgIElOU1RBTEw9JGFjX2N2X3BhdGhfaW5zdGFsbAotKyAg ZWxzZQotKyAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQu ICBEb24ndCBjYWNoZSBhCi0rICAgICMgdmFsdWUgZm9yIElOU1RBTEwgd2l0aGluIGEgc291cmNl IGRpcmVjdG9yeSwgYmVjYXVzZSB0aGF0IHdpbGwKLSsgICAgIyBicmVhayBvdGhlciBwYWNrYWdl cyB1c2luZyB0aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKLSsgICAgIyByZW1vdmVkLCBv ciBpZiB0aGUgdmFsdWUgaXMgYSByZWxhdGl2ZSBuYW1lLgotKyAgICBJTlNUQUxMPSRhY19pbnN0 YWxsX3NoCi0rICBmaQotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JElOU1RBTEwiID4mNQotKyRhc19lY2hvICIkSU5TVEFMTCIgPiY2OyB9Ci0rCi0rIyBVc2UgdGVz dCAteiBiZWNhdXNlIFN1bk9TNCBzaCBtaXNoYW5kbGVzIGJyYWNlcyBpbiAke3Zhci12YWx9Lgot KyMgSXQgdGhpbmtzIHRoZSBmaXJzdCBjbG9zZSBicmFjZSBlbmRzIHRoZSB2YXJpYWJsZSBzdWJz dGl0dXRpb24uCi0rdGVzdCAteiAiJElOU1RBTExfUFJPR1JBTSIgJiYgSU5TVEFMTF9QUk9HUkFN PScke0lOU1RBTEx9JwotKwotK3Rlc3QgLXogIiRJTlNUQUxMX1NDUklQVCIgJiYgSU5TVEFMTF9T Q1JJUFQ9JyR7SU5TVEFMTH0nCi0rCi0rdGVzdCAteiAiJElOU1RBTExfREFUQSIgJiYgSU5TVEFM TF9EQVRBPScke0lOU1RBTEx9IC1tIDY0NCcKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4gIiA+ JjY7IH0KLSsjIEp1c3QgaW4gY2FzZQotK3NsZWVwIDEKLStlY2hvIHRpbWVzdGFtcCA+IGNvbmZ0 ZXN0LmZpbGUKLSsjIFJlamVjdCB1bnNhZmUgY2hhcmFjdGVycyBpbiAkc3JjZGlyIG9yIHRoZSBh YnNvbHV0ZSB3b3JraW5nIGRpcmVjdG9yeQotKyMgbmFtZS4gIEFjY2VwdCBzcGFjZSBhbmQgdGFi IG9ubHkgaW4gdGhlIGxhdHRlci4KLSthbV9sZj0nCi0rJwotK2Nhc2UgYHB3ZGAgaW4KLSsgICpb XFxcIlwjXCRcJlwnXGAkYW1fbGZdKikKLSsgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IHVuc2FmZSBhYnNvbHV0ZSB3b3JraW5nIGRpcmVjdG9yeSBuYW1lIiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogdW5zYWZlIGFic29sdXRlIHdvcmtpbmcgZGlyZWN0b3J5 IG5hbWUiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKLStlc2FjCi0rY2Fz ZSAkc3JjZGlyIGluCi0rICAqW1xcXCJcI1wkXCZcJ1xgJGFtX2xmXCBcCV0qKQotKyAgICB7IHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogdW5zYWZlIHNyY2RpciB2YWx1ZTogXGAk c3JjZGlyJyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHVuc2FmZSBzcmNkaXIgdmFs dWU6IFxgJHNyY2RpciciID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKLStl c2FjCi0rCi0rIyBEbyBgc2V0JyBpbiBhIHN1YnNoZWxsIHNvIHdlIGRvbid0IGNsb2JiZXIgdGhl IGN1cnJlbnQgc2hlbGwncwotKyMgYXJndW1lbnRzLiAgTXVzdCB0cnkgLUwgZmlyc3QgaW4gY2Fz ZSBjb25maWd1cmUgaXMgYWN0dWFsbHkgYQotKyMgc3ltbGluazsgc29tZSBzeXN0ZW1zIHBsYXkg d2VpcmQgZ2FtZXMgd2l0aCB0aGUgbW9kIHRpbWUgb2Ygc3ltbGlua3MKLSsjIChlZyBGcmVlQlNE IHJldHVybnMgdGhlIG1vZCB0aW1lIG9mIHRoZSBzeW1saW5rJ3MgY29udGFpbmluZwotKyMgZGly ZWN0b3J5KS4KLStpZiAoCi0rICAgc2V0IFggYGxzIC1MdCAiJHNyY2Rpci9jb25maWd1cmUiIGNv bmZ0ZXN0LmZpbGUgMj4gL2Rldi9udWxsYAotKyAgIGlmIHRlc3QgIiQqIiA9ICJYIjsgdGhlbgot KyAgICAgICMgLUwgZGlkbid0IHdvcmsuCi0rICAgICAgc2V0IFggYGxzIC10ICIkc3JjZGlyL2Nv bmZpZ3VyZSIgY29uZnRlc3QuZmlsZWAKLSsgICBmaQotKyAgIHJtIC1mIGNvbmZ0ZXN0LmZpbGUK LSsgICBpZiB0ZXN0ICIkKiIgIT0gIlggJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmlsZSIg XAotKyAgICAgICYmIHRlc3QgIiQqIiAhPSAiWCBjb25mdGVzdC5maWxlICRzcmNkaXIvY29uZmln dXJlIjsgdGhlbgotKwotKyAgICAgICMgSWYgbmVpdGhlciBtYXRjaGVkLCB0aGVuIHdlIGhhdmUg YSBicm9rZW4gbHMuICBUaGlzIGNhbiBoYXBwZW4KLSsgICAgICAjIGlmLCBmb3IgaW5zdGFuY2Us IENPTkZJR19TSEVMTCBpcyBiYXNoIGFuZCBpdCBpbmhlcml0cyBhCi0rICAgICAgIyBicm9rZW4g bHMgYWxpYXMgZnJvbSB0aGUgZW52aXJvbm1lbnQuICBUaGlzIGhhcyBhY3R1YWxseQotKyAgICAg ICMgaGFwcGVuZWQuICBTdWNoIGEgc3lzdGVtIGNvdWxkIG5vdCBiZSBjb25zaWRlcmVkICJzYW5l Ii4KLSsgICAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbHMgLXQgYXBw ZWFycyB0byBmYWlsLiAgTWFrZSBzdXJlIHRoZXJlIGlzIG5vdCBhIGJyb2tlbgotK2FsaWFzIGlu IHlvdXIgZW52aXJvbm1lbnQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBscyAtdCBh cHBlYXJzIHRvIGZhaWwuICBNYWtlIHN1cmUgdGhlcmUgaXMgbm90IGEgYnJva2VuCi0rYWxpYXMg aW4geW91ciBlbnZpcm9ubWVudCIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K LSsgICBmaQotKwotKyAgIHRlc3QgIiQyIiA9IGNvbmZ0ZXN0LmZpbGUKLSsgICApCi0rdGhlbgot KyAgICMgT2suCi0rICAgOgotK2Vsc2UKLSsgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogbmV3bHkgY3JlYXRlZCBmaWxlIGlzIG9sZGVyIHRoYW4gZGlzdHJpYnV0ZWQgZmls ZXMhCi0rQ2hlY2sgeW91ciBzeXN0ZW0gY2xvY2siID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxlcyEK LStDaGVjayB5b3VyIHN5c3RlbSBjbG9jayIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH0KLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1 Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rdGVzdCAiJHByb2dyYW1fcHJlZml4IiAhPSBOT05F ICYmCi0rICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSJzJl4mJHByb2dyYW1fcHJlZml4JjskcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZSIKLSsjIFVzZSBhIGRvdWJsZSAkIHNvIG1ha2UgaWdub3JlcyBp dC4KLSt0ZXN0ICIkcHJvZ3JhbV9zdWZmaXgiICE9IE5PTkUgJiYKLSsgIHByb2dyYW1fdHJhbnNm b3JtX25hbWU9InMmXCQmJHByb2dyYW1fc3VmZml4JjskcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSIK LSsjIERvdWJsZSBhbnkgXCBvciAkLgotKyMgQnkgZGVmYXVsdCB3YXMgYHMseCx4JywgcmVtb3Zl IGl0IGlmIHVzZWxlc3MuCi0rYWNfc2NyaXB0PSdzL1tcXCRdLyYmL2c7cy87cyx4LHgsJC8vJwot K3Byb2dyYW1fdHJhbnNmb3JtX25hbWU9YCRhc19lY2hvICIkcHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZSIgfCBzZWQgIiRhY19zY3JpcHQiYAotKwotKyMgZXhwYW5kICRhY19hdXhfZGlyIHRvIGFuIGFi c29sdXRlIHBhdGgKLSthbV9hdXhfZGlyPWBjZCAkYWNfYXV4X2RpciAmJiBwd2RgCi0rCi0raWYg dGVzdCB4IiR7TUlTU0lORytzZXR9IiAhPSB4c2V0OyB0aGVuCi0rICBjYXNlICRhbV9hdXhfZGly IGluCi0rICAqXCAqIHwgKlwJKikKLSsgICAgTUlTU0lORz0iXCR7U0hFTEx9IFwiJGFtX2F1eF9k aXIvbWlzc2luZ1wiIiA7OwotKyAgKikKLSsgICAgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhf ZGlyL21pc3NpbmciIDs7Ci0rICBlc2FjCi0rZmkKLSsjIFVzZSBldmFsIHRvIGV4cGFuZCAkU0hF TEwKLStpZiBldmFsICIkTUlTU0lORyAtLXJ1biB0cnVlIjsgdGhlbgotKyAgYW1fbWlzc2luZ19y dW49IiRNSVNTSU5HIC0tcnVuICIKLStlbHNlCi0rICBhbV9taXNzaW5nX3J1bj0KLSsgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBcYG1pc3NpbmcnIHNjcmlwdCBpcyB0b28g b2xkIG9yIG1pc3NpbmciID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IFxgbWlzc2lu Zycgc2NyaXB0IGlzIHRvbyBvbGQgb3IgbWlzc2luZyIgPiYyO30KLStmaQotKwotK2lmIHRlc3Qg eCIke2luc3RhbGxfc2h9IiAhPSB4c2V0OyB0aGVuCi0rICBjYXNlICRhbV9hdXhfZGlyIGluCi0r ICAqXCAqIHwgKlwJKikKLSsgICAgaW5zdGFsbF9zaD0iXCR7U0hFTEx9ICckYW1fYXV4X2Rpci9p bnN0YWxsLXNoJyIgOzsKLSsgICopCi0rICAgIGluc3RhbGxfc2g9Ilwke1NIRUxMfSAkYW1fYXV4 X2Rpci9pbnN0YWxsLXNoIgotKyAgZXNhYwotK2ZpCi0rCi0rIyBJbnN0YWxsZWQgYmluYXJpZXMg YXJlIHVzdWFsbHkgc3RyaXBwZWQgdXNpbmcgYHN0cmlwJyB3aGVuIHRoZSB1c2VyCi0rIyBydW4g YG1ha2UgaW5zdGFsbC1zdHJpcCcuICBIb3dldmVyIGBzdHJpcCcgbWlnaHQgbm90IGJlIHRoZSBy aWdodAotKyMgdG9vbCB0byB1c2UgaW4gY3Jvc3MtY29tcGlsYXRpb24gZW52aXJvbm1lbnRzLCB0 aGVyZWZvcmUgQXV0b21ha2UKLSsjIHdpbGwgaG9ub3IgdGhlIGBTVFJJUCcgZW52aXJvbm1lbnQg dmFyaWFibGUgdG8gb3ZlcnJ1bGUgdGhpcyBwcm9ncmFtLgotK2lmIHRlc3QgIiRjcm9zc19jb21w aWxpbmciICE9IG5vOyB0aGVuCi0rICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVu Ci0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAi LCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAke2Fj X3Rvb2xfcHJlZml4fXN0cmlwOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y ICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX1NUUklQK3NldH0i ID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlm IHRlc3QgLW4gIiRTVFJJUCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfU1RSSVA9IiRTVFJJUCIgIyBM ZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0k YXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNf ZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVz dCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19TVFJJUD0i JHthY190b29sX3ByZWZpeH1zdHJpcCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAg ZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rU1RSSVA9 JGFjX2N2X3Byb2dfU1RSSVAKLStpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkU1RSSVAiID4mNQotKyRhc19lY2hvICIkU1RS SVAiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkKLStpZiB0ZXN0 IC16ICIkYWNfY3ZfcHJvZ19TVFJJUCI7IHRoZW4KLSsgIGFjX2N0X1NUUklQPSRTVFJJUAotKyAg IyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJzdHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IHN0cmlwOyBhY193b3JkPSQyCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19j dl9wcm9nX2FjX2N0X1NUUklQK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KLSsg IGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9IiRhY19jdF9TVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB UkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0ic3RyaXAiCi0r ICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFz X3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X1NUUklQPSRhY19jdl9wcm9nX2FjX2N0X1NU UklQCi0raWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X1NUUklQIiA+JjUKLSskYXNfZWNobyAiJGFjX2N0 X1NUUklQIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKyAgaWYgdGVzdCAi eCRhY19jdF9TVFJJUCIgPSB4OyB0aGVuCi0rICAgIFNUUklQPSI6IgotKyAgZWxzZQotKyAgICBj YXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZp eGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1 c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0r YWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBTVFJJUD0kYWNfY3RfU1RSSVAKLSsg IGZpCi0rZWxzZQotKyAgU1RSSVA9IiRhY19jdl9wcm9nX1NUUklQIgotK2ZpCi0rCi0rZmkKLStJ TlNUQUxMX1NUUklQX1BST0dSQU09IlwkKGluc3RhbGxfc2gpIC1jIC1zIgotKwotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAtcCIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUgbWtkaXIgLXAuLi4g IiA+JjY7IH0KLStpZiB0ZXN0IC16ICIkTUtESVJfUCI7IHRoZW4KLSsgIGlmIHRlc3QgIiR7YWNf Y3ZfcGF0aF9ta2RpcitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0r Zm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi9vcHQvc2Z3L2JpbgotK2RvCi0rICBJ RlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9y IGFjX3Byb2cgaW4gbWtkaXIgZ21rZGlyOyBkbwotKwkgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rCSAgIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNf cHJvZyRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVj X2V4dCI7IH0gfHwgY29udGludWUKLSsJICAgY2FzZSBgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhl Y19leHQiIC0tdmVyc2lvbiAyPiYxYCBpbiAjKAotKwkgICAgICdta2RpciAoR05VIGNvcmV1dGls cykgJyogfCBcCi0rCSAgICAgJ21rZGlyIChjb3JldXRpbHMpICcqIHwgXAotKwkgICAgICdta2Rp ciAoZmlsZXV0aWxzKSAnNC4xKikKLSsJICAgICAgIGFjX2N2X3BhdGhfbWtkaXI9JGFzX2Rpci8k YWNfcHJvZyRhY19leGVjX2V4dAotKwkgICAgICAgYnJlYWsgMzs7Ci0rCSAgIGVzYWMKLSsJIGRv bmUKLSsgICAgICAgZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLSsKLSsg IGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9ta2RpcitzZXR9IiA9IHNldDsgdGhlbgotKyAgICBNS0RJ Ul9QPSIkYWNfY3ZfcGF0aF9ta2RpciAtcCIKLSsgIGVsc2UKLSsgICAgIyBBcyBhIGxhc3QgcmVz b3J0LCB1c2UgdGhlIHNsb3cgc2hlbGwgc2NyaXB0LiAgRG9uJ3QgY2FjaGUgYQotKyAgICAjIHZh bHVlIGZvciBNS0RJUl9QIHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3 aWxsCi0rICAgICMgYnJlYWsgb3RoZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQg ZGlyZWN0b3J5IGlzCi0rICAgICMgcmVtb3ZlZCwgb3IgaWYgdGhlIHZhbHVlIGlzIGEgcmVsYXRp dmUgbmFtZS4KLSsgICAgdGVzdCAtZCAuLy0tdmVyc2lvbiAmJiBybWRpciAuLy0tdmVyc2lvbgot KyAgICBNS0RJUl9QPSIkYWNfaW5zdGFsbF9zaCAtZCIKLSsgIGZpCi0rZmkKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTUtESVJfUCIgPiY1Ci0rJGFzX2VjaG8gIiRNS0RJ Ul9QIiA+JjY7IH0KLSsKLStta2Rpcl9wPSIkTUtESVJfUCIKLStjYXNlICRta2Rpcl9wIGluCi0r ICBbXFwvJF0qIHwgPzpbXFwvXSopIDs7Ci0rICAqLyopIG1rZGlyX3A9IlwkKHRvcF9idWlsZGRp cikvJG1rZGlyX3AiIDs7Ci0rZXNhYwotKwotK2ZvciBhY19wcm9nIGluIGdhd2sgbWF3ayBuYXdr IGF3awotK2RvCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28g aXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJGFjX3Byb2c7 IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRh Y193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7 IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQVdLK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRBV0siOyB0aGVu Ci0rICBhY19jdl9wcm9nX0FXSz0iJEFXSyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl c3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3Ig YXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRh c19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19BV0s9IiRhY19wcm9nIgotKyAgICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAg ICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2Zp Ci0rZmkKLStBV0s9JGFjX2N2X3Byb2dfQVdLCi0raWYgdGVzdCAtbiAiJEFXSyI7IHRoZW4KLSsg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRBV0siID4mNQotKyRhc19lY2hv ICIkQVdLIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgdGVzdCAt biAiJEFXSyIgJiYgYnJlYWsKLStkb25lCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkuLi4gIiA+ JjY7IH0KLStzZXQgeCAke01BS0UtbWFrZX0KLSthY19tYWtlPWAkYXNfZWNobyAiJDIiIHwgc2Vk ICdzLysvcC9nOyBzL1teYS16QS1aMC05X10vXy9nJ2AKLStpZiB7IGFzX3Zhcj1hY19jdl9wcm9n X21ha2VfJHthY19tYWtlfV9zZXQ7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNl dCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0 ID5jb25mdGVzdC5tYWtlIDw8XF9BQ0VPRgotK1NIRUxMID0gL2Jpbi9zaAotK2FsbDoKLSsJQGVj aG8gJ0BAQCUlJT0kKE1BS0UpPUBAQCUlJScKLStfQUNFT0YKLSsjIEdOVSBtYWtlIHNvbWV0aW1l cyBwcmludHMgIm1ha2VbMV06IEVudGVyaW5nLi4uIiwgd2hpY2ggd291bGQgY29uZnVzZSB1cy4K LStjYXNlIGAke01BS0UtbWFrZX0gLWYgY29uZnRlc3QubWFrZSAyPi9kZXYvbnVsbGAgaW4KLSsg ICpAQEAlJSU9Pyo9QEBAJSUlKikKLSsgICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtl fV9zZXQ9eWVzOzsKLSsgICopCi0rICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1f c2V0PW5vOzsKLStlc2FjCi0rcm0gLWYgY29uZnRlc3QubWFrZQotK2ZpCi0raWYgZXZhbCB0ZXN0 IFwkYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0ID0geWVzOyB0aGVuCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4m NjsgfQotKyAgU0VUX01BS0U9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rICBTRVRfTUFLRT0iTUFL RT0ke01BS0UtbWFrZX0iCi0rZmkKLSsKLStybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAotK21rZGly IC50c3QgMj4vZGV2L251bGwKLStpZiB0ZXN0IC1kIC50c3Q7IHRoZW4KLSsgIGFtX19sZWFkaW5n X2RvdD0uCi0rZWxzZQotKyAgYW1fX2xlYWRpbmdfZG90PV8KLStmaQotK3JtZGlyIC50c3QgMj4v ZGV2L251bGwKLSsKLStpZiB0ZXN0ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAhPSAiYHB3ZGAiOyB0 aGVuCi0rICAjIFVzZSAtSSQoc3JjZGlyKSBvbmx5IHdoZW4gJChzcmNkaXIpICE9IC4sIHNvIHRo YXQgbWFrZSdzIG91dHB1dAotKyAgIyBpcyBub3QgcG9sbHV0ZWQgd2l0aCByZXBlYXRlZCAiLUku IgotKyAgYW1fX2lzcmM9JyAtSSQoc3JjZGlyKScKLSsgICMgdGVzdCB0byBzZWUgaWYgc3JjZGly IGFscmVhZHkgY29uZmlndXJlZAotKyAgaWYgdGVzdCAtZiAkc3JjZGlyL2NvbmZpZy5zdGF0dXM7 IHRoZW4KLSsgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHNvdXJjZSBk aXJlY3RvcnkgYWxyZWFkeSBjb25maWd1cmVkOyBydW4gXCJtYWtlIGRpc3RjbGVhblwiIHRoZXJl IGZpcnN0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogc291cmNlIGRpcmVjdG9yeSBh bHJlYWR5IGNvbmZpZ3VyZWQ7IHJ1biBcIm1ha2UgZGlzdGNsZWFuXCIgdGhlcmUgZmlyc3QiID4m Mjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICBmaQotK2ZpCi0rCi0rIyB0ZXN0 IHdoZXRoZXIgd2UgaGF2ZSBjeWdwYXRoCi0raWYgdGVzdCAteiAiJENZR1BBVEhfVyI7IHRoZW4K LSsgIGlmIChjeWdwYXRoIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgot KyAgICBDWUdQQVRIX1c9J2N5Z3BhdGggLXcnCi0rICBlbHNlCi0rICAgIENZR1BBVEhfVz1lY2hv Ci0rICBmaQotK2ZpCi0rCi0rCi0rIyBEZWZpbmUgdGhlIGlkZW50aXR5IG9mIHRoZSBwYWNrYWdl LgotKyBQQUNLQUdFPSdzb2NpJwotKyBWRVJTSU9OPSczLjAuMCcKLSsKLSsKLStjYXQgPj5jb25m ZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBQQUNLQUdFICIkUEFDS0FHRSIKLStfQUNFT0YKLSsK LSsKLStjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBWRVJTSU9OICIkVkVSU0lP TiIKLStfQUNFT0YKLSsKLSsjIFNvbWUgdG9vbHMgQXV0b21ha2UgbmVlZHMuCi0rCi0rQUNMT0NB TD0ke0FDTE9DQUwtIiR7YW1fbWlzc2luZ19ydW59YWNsb2NhbC0ke2FtX19hcGlfdmVyc2lvbn0i fQotKwotKwotK0FVVE9DT05GPSR7QVVUT0NPTkYtIiR7YW1fbWlzc2luZ19ydW59YXV0b2NvbmYi fQotKwotKwotK0FVVE9NQUtFPSR7QVVUT01BS0UtIiR7YW1fbWlzc2luZ19ydW59YXV0b21ha2Ut JHthbV9fYXBpX3ZlcnNpb259In0KLSsKLSsKLStBVVRPSEVBREVSPSR7QVVUT0hFQURFUi0iJHth bV9taXNzaW5nX3J1bn1hdXRvaGVhZGVyIn0KLSsKLSsKLStNQUtFSU5GTz0ke01BS0VJTkZPLSIk e2FtX21pc3NpbmdfcnVufW1ha2VpbmZvIn0KLSsKLSsjIFdlIG5lZWQgYXdrIGZvciB0aGUgImNo ZWNrIiB0YXJnZXQuICBUaGUgc3lzdGVtICJhd2siIGlzIGJhZCBvbgotKyMgc29tZSBwbGF0Zm9y bXMuCi0rIyBBbHdheXMgZGVmaW5lIEFNVEFSIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5Lgot KwotK0FNVEFSPSR7QU1UQVItIiR7YW1fbWlzc2luZ19ydW59dGFyIn0KLSsKLSthbV9fdGFyPSck e0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIic7IGFtX191bnRhcj0nJHtBTVRBUn0geGYgLScKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLWNwcHVuaXQtcHJl Zml4IHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfY3BwdW5pdF9wcmVmaXgrc2V0fSIgPSBz ZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfY3BwdW5pdF9wcmVmaXg7IGNwcHVuaXRfY29uZmln X3ByZWZpeD0iJHdpdGh2YWwiCi0rZWxzZQotKyAgY3BwdW5pdF9jb25maWdfcHJlZml4PSIiCi0r ZmkKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLWNwcHVuaXQtZXhlYy1wcmVmaXggd2Fz IGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9jcHB1bml0X2V4ZWNfcHJlZml4K3NldH0iID0gc2V0 OyB0aGVuCi0rICB3aXRodmFsPSR3aXRoX2NwcHVuaXRfZXhlY19wcmVmaXg7IGNwcHVuaXRfY29u ZmlnX2V4ZWNfcHJlZml4PSIkd2l0aHZhbCIKLStlbHNlCi0rICBjcHB1bml0X2NvbmZpZ19leGVj X3ByZWZpeD0iIgotK2ZpCi0rCi0rCi0rICBpZiB0ZXN0IHgkY3BwdW5pdF9jb25maWdfZXhlY19w cmVmaXggIT0geCA7IHRoZW4KLSsgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2Nv bmZpZ19hcmdzIC0tZXhlYy1wcmVmaXg9JGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4IgotKyAg ICAgaWYgdGVzdCB4JHtDUFBVTklUX0NPTkZJRytzZXR9ICE9IHhzZXQgOyB0aGVuCi0rICAgICAg ICBDUFBVTklUX0NPTkZJRz0kY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXgvYmluL2NwcHVuaXQt Y29uZmlnCi0rICAgICBmaQotKyAgZmkKLSsgIGlmIHRlc3QgeCRjcHB1bml0X2NvbmZpZ19wcmVm aXggIT0geCA7IHRoZW4KLSsgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2NvbmZp Z19hcmdzIC0tcHJlZml4PSRjcHB1bml0X2NvbmZpZ19wcmVmaXgiCi0rICAgICBpZiB0ZXN0IHgk e0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KLSsgICAgICAgIENQUFVOSVRfQ09O RklHPSRjcHB1bml0X2NvbmZpZ19wcmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCi0rICAgICBmaQot KyAgZmkKLSsKLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiY3BwdW5pdC1jb25maWci LCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBjcHB1 bml0LWNvbmZpZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29y ZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRytzZXR9 IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBj YXNlICRDUFBVTklUX0NPTkZJRyBpbgotKyAgW1xcL10qIHwgPzpbXFwvXSopCi0rICBhY19jdl9w YXRoX0NQUFVOSVRfQ09ORklHPSIkQ1BQVU5JVF9DT05GSUciICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgotKyAgOzsKLSsgICopCi0rICBhc19zYXZlX0lGUz0k SUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJ RlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9y IGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7 IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3BhdGhfQ1BQ VU5JVF9DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCi0rICAgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1 Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0r Ci0rICB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRyIgJiYgYWNfY3ZfcGF0aF9D UFBVTklUX0NPTkZJRz0ibm8iCi0rICA7OwotK2VzYWMKLStmaQotK0NQUFVOSVRfQ09ORklHPSRh Y19jdl9wYXRoX0NQUFVOSVRfQ09ORklHCi0raWYgdGVzdCAtbiAiJENQUFVOSVRfQ09ORklHIjsg dGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENQUFVOSVRfQ09O RklHIiA+JjUKLSskYXNfZWNobyAiJENQUFVOSVRfQ09ORklHIiA+JjY7IH0KLStlbHNlCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5v IiA+JjY7IH0KLStmaQotKwotKwotKyAgY3BwdW5pdF92ZXJzaW9uX21pbj0xLjEwCi0rCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIENwcHVuaXQgLSB2ZXJzaW9u ID49ICRjcHB1bml0X3ZlcnNpb25fbWluIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig Q3BwdW5pdCAtIHZlcnNpb24gPj0gJGNwcHVuaXRfdmVyc2lvbl9taW4uLi4gIiA+JjY7IH0KLSsg IG5vX2NwcHVuaXQ9IiIKLSsgIGlmIHRlc3QgIiRDUFBVTklUX0NPTkZJRyIgPSAibm8iIDsgdGhl bgotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFz X2VjaG8gIm5vIiA+JjY7IH0KLSsgICAgbm9fY3BwdW5pdD15ZXMKLSsgIGVsc2UKLSsgICAgQ1BQ VU5JVF9DRkxBR1M9YCRDUFBVTklUX0NPTkZJRyAtLWNmbGFnc2AKLSsgICAgQ1BQVU5JVF9MSUJT PWAkQ1BQVU5JVF9DT05GSUcgLS1saWJzYAotKyAgICBDUFBVTklUX1ZFUlNJT049YCRDUFBVTklU X0NPTkZJRyAtLXZlcnNpb25gCi0rCi0rICAgIGNwcHVuaXRfbWFqb3JfdmVyc2lvbj1gZWNobyAk Q1BQVU5JVF9WRVJTSU9OIHwgXAotKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05 XSpcKS5cKFswLTldKlwpL1wxLydgCi0rICAgIGNwcHVuaXRfbWlub3JfdmVyc2lvbj1gZWNobyAk Q1BQVU5JVF9WRVJTSU9OIHwgXAotKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05 XSpcKS5cKFswLTldKlwpL1wyLydgCi0rICAgIGNwcHVuaXRfbWljcm9fdmVyc2lvbj1gZWNobyAk Q1BQVU5JVF9WRVJTSU9OIHwgXAotKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05 XSpcKS5cKFswLTldKlwpL1wzLydgCi0rCi0rICAgIGNwcHVuaXRfbWFqb3JfbWluPWBlY2hvICRj cHB1bml0X3ZlcnNpb25fbWluIHwgXAotKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChb MC05XSpcKS5cKFswLTldKlwpL1wxLydgCi0rICAgIGlmIHRlc3QgIngke2NwcHVuaXRfbWFqb3Jf bWlufSIgPSAieCIgOyB0aGVuCi0rICAgICAgIGNwcHVuaXRfbWFqb3JfbWluPTAKLSsgICAgZmkK LSsKLSsgICAgY3BwdW5pdF9taW5vcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBc Ci0rICAgICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDIv J2AKLSsgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9taW5vcl9taW59IiA9ICJ4IiA7IHRoZW4KLSsg ICAgICAgY3BwdW5pdF9taW5vcl9taW49MAotKyAgICBmaQotKwotKyAgICBjcHB1bml0X21pY3Jv X21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9c KFswLTldKlwpLlwoWzAtOV0qXCkuXChbMC05XSpcKS9cMy8nYAotKyAgICBpZiB0ZXN0ICJ4JHtj cHB1bml0X21pY3JvX21pbn0iID0gIngiIDsgdGhlbgotKyAgICAgICBjcHB1bml0X21pY3JvX21p bj0wCi0rICAgIGZpCi0rCi0rICAgIGNwcHVuaXRfdmVyc2lvbl9wcm9wZXI9YGV4cHIgXAotKyAg ICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPiAkY3BwdW5pdF9tYWpvcl9taW4gXHwgXAot KyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9tYWpvcl9taW4gXCYg XAotKyAgICAgICAgJGNwcHVuaXRfbWlub3JfdmVyc2lvbiBcPiAkY3BwdW5pdF9taW5vcl9taW4g XHwgXAotKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9tYWpvcl9t aW4gXCYgXAotKyAgICAgICAgJGNwcHVuaXRfbWlub3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9taW5v cl9taW4gXCYgXAotKyAgICAgICAgJGNwcHVuaXRfbWljcm9fdmVyc2lvbiBcPj0gJGNwcHVuaXRf bWljcm9fbWluIGAKLSsKLSsgICAgaWYgdGVzdCAiJGNwcHVuaXRfdmVyc2lvbl9wcm9wZXIiID0g IjEiIDsgdGhlbgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRj cHB1bml0X21ham9yX3ZlcnNpb24uJGNwcHVuaXRfbWlub3JfdmVyc2lvbi4kY3BwdW5pdF9taWNy b192ZXJzaW9uIiA+JjUKLSskYXNfZWNobyAiJGNwcHVuaXRfbWFqb3JfdmVyc2lvbi4kY3BwdW5p dF9taW5vcl92ZXJzaW9uLiRjcHB1bml0X21pY3JvX3ZlcnNpb24iID4mNjsgfQotKyAgICBlbHNl Ci0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRh c19lY2hvICJubyIgPiY2OyB9Ci0rICAgICAgbm9fY3BwdW5pdD15ZXMKLSsgICAgZmkKLSsgIGZp Ci0rCi0rICBpZiB0ZXN0ICJ4JG5vX2NwcHVuaXQiID0geCA7IHRoZW4KLSsgICAgIDoKLSsgIGVs c2UKLSsgICAgIENQUFVOSVRfQ0ZMQUdTPSIiCi0rICAgICBDUFBVTklUX0xJQlM9IiIKLSsgICAg IDoKLSsgIGZpCi0rCi0rCi0rCi0rCi0rCi0rIGlmIHRlc3QgIngkQ1BQVU5JVF9MSUJTIiAhPSB4 OyB0aGVuCi0rICBIQVZFX0NQUFVOSVRfVFJVRT0KLSsgIEhBVkVfQ1BQVU5JVF9GQUxTRT0nIycK LStlbHNlCi0rICBIQVZFX0NQUFVOSVRfVFJVRT0nIycKLSsgIEhBVkVfQ1BQVU5JVF9GQUxTRT0K LStmaQotKwotKwotKyMgUlBNIHJlbGVhc2UgbnVtYmVyCi0rUlBNX1JFTEVBU0U9IjE2IgotKwot KwotKyMgU2hhcmVkIGxpYnJhcnkgdmVyc2lvbmluZwotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9O PSIzOjA6MCIKLSsjICAgICAgICAgICAgICAgICAgICAgICAgfCB8IHwKLSsjICAgICAgICAgICAg ICAgICArLS0tLS0tKyB8ICstLS0rCi0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAg fAotKyMgICAgICAgICAgICAgIGN1cnJlbnQ6cmV2aXNpb246YWdlCi0rIyAgICAgICAgICAgICAg ICAgfCAgICAgICAgfCAgICAgfAotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICst IGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiBhZGRlZDsKLSsjICAgICAgICAgICAg ICAgICB8ICAgICAgICB8ICAgICAgICBzZXQgdG8gemVybyBpZiBpbnRlcmZhY2VzIGhhdmUgYmVl bgotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgIHJlbW92ZWQgb3IgY2hhbmdl ZAotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgICstIGluY3JlbWVudCBpZiBzb3VyY2UgY29k ZSBoYXMgY2hhbmdlZDsKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICAgICBzZXQgdG8gemVy byBpZiBjdXJyZW50IGlzIGluY3JlbWVudGVkCi0rIyAgICAgICAgICAgICAgICAgKy0gaW5jcmVt ZW50IGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkLCByZW1vdmVkCi0rIyAgICAgICAgICAg ICAgICAgICAgb3IgY2hhbmdlZAotKwotKwotKyMgVXBsb2FkIGNvbW1hbmQgZm9yIFNvdXJjZUZv cmdlCi0rVVBMT0FEX0NPTU1BTkQ9Im5jZnRwcHV0IC12IHVwbG9hZC5zb3VyY2Vmb3JnZS5uZXQg L2luY29taW5nIgotKwotKwotKyMgQ2hlY2sgZm9yIGhvc3QgYW5kIGRpc2FibGUgYnVpbGRpbmcg YSBzaGFyZWQgbGlicmFyeSBpbiBXaW5kb3dzCi0rIyBNYWtlIHN1cmUgd2UgY2FuIHJ1biBjb25m aWcuc3ViLgotKyRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgc3VuNCA+L2Rldi9udWxs IDI+JjEgfHwKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3Qg cnVuICRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViIiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBlcnJvcjogY2Fubm90IHJ1biAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgPiYyO30K LSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGJ1aWxkIHN5c3RlbSB0eXBlLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9idWls ZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBhY19idWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKLSt0ZXN0ICJ4JGFjX2J1aWxkX2FsaWFz IiA9IHggJiYKLSsgIGFjX2J1aWxkX2FsaWFzPWAkU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5n dWVzcyJgCi0rdGVzdCAieCRhY19idWlsZF9hbGlhcyIgPSB4ICYmCi0rICB7IHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGd1ZXNzIGJ1aWxkIHR5cGU7IHlvdSBtdXN0 IHNwZWNpZnkgb25lIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGd1ZXNz IGJ1aWxkIHR5cGU7IHlvdSBtdXN0IHNwZWNpZnkgb25lIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQotK2FjX2N2X2J1aWxkPWAkU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5z dWIiICRhY19idWlsZF9hbGlhc2AgfHwKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkYWNfYnVpbGRfYWxpYXMgZmFp bGVkIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJFNIRUxMICRhY19hdXhfZGlyL2Nv bmZpZy5zdWIgJGFjX2J1aWxkX2FsaWFzIGZhaWxlZCIgPiYyO30KLSsgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0KLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19jdl9idWlsZCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9idWlsZCIgPiY2OyB9Ci0rY2Fz ZSAkYWNfY3ZfYnVpbGQgaW4KLSsqLSotKikgOzsKLSsqKSB7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogaW52YWxpZCB2YWx1ZSBvZiBjYW5vbmljYWwgYnVpbGQiID4mNQotKyRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNhbCBidWlsZCIg PiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OwotK2VzYWMKLStidWlsZD0kYWNf Y3ZfYnVpbGQKLSthY19zYXZlX0lGUz0kSUZTOyBJRlM9Jy0nCi0rc2V0IHggJGFjX2N2X2J1aWxk Ci0rc2hpZnQKLStidWlsZF9jcHU9JDEKLStidWlsZF92ZW5kb3I9JDIKLStzaGlmdDsgc2hpZnQK LSsjIFJlbWVtYmVyLCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIElGUyBpcyB1c2VkIHRvIGNyZWF0 ZSAkKiwKLSsjIGV4Y2VwdCB3aXRoIG9sZCBzaGVsbHM6Ci0rYnVpbGRfb3M9JCoKLStJRlM9JGFj X3NhdmVfSUZTCi0rY2FzZSAkYnVpbGRfb3MgaW4gKlwgKikgYnVpbGRfb3M9YGVjaG8gIiRidWls ZF9vcyIgfCBzZWQgJ3MvIC8tL2cnYDs7IGVzYWMKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgaG9zdCBzeXN0ZW0gdHlwZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfaG9z dCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBpZiB0ZXN0ICJ4JGhvc3RfYWxpYXMiID0geDsgdGhlbgotKyAgYWNfY3ZfaG9zdD0kYWNf Y3ZfYnVpbGQKLStlbHNlCi0rICBhY19jdl9ob3N0PWAkU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZp Zy5zdWIiICRob3N0X2FsaWFzYCB8fAotKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIgJGhvc3RfYWxpYXMgZmFpbGVk IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJFNIRUxMICRhY19hdXhfZGlyL2NvbmZp Zy5zdWIgJGhvc3RfYWxpYXMgZmFpbGVkIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfQotK2ZpCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfY3ZfaG9zdCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9ob3N0IiA+JjY7IH0KLStjYXNlICRh Y19jdl9ob3N0IGluCi0rKi0qLSopIDs7Ci0rKikgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IGludmFsaWQgdmFsdWUgb2YgY2Fub25pY2FsIGhvc3QiID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNhbCBob3N0IiA+JjI7fQot KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7Ci0rZXNhYwotK2hvc3Q9JGFjX2N2X2hvc3QK LSthY19zYXZlX0lGUz0kSUZTOyBJRlM9Jy0nCi0rc2V0IHggJGFjX2N2X2hvc3QKLStzaGlmdAot K2hvc3RfY3B1PSQxCi0raG9zdF92ZW5kb3I9JDIKLStzaGlmdDsgc2hpZnQKLSsjIFJlbWVtYmVy LCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIElGUyBpcyB1c2VkIHRvIGNyZWF0ZSAkKiwKLSsjIGV4 Y2VwdCB3aXRoIG9sZCBzaGVsbHM6Ci0raG9zdF9vcz0kKgotK0lGUz0kYWNfc2F2ZV9JRlMKLStj YXNlICRob3N0X29zIGluICpcICopIGhvc3Rfb3M9YGVjaG8gIiRob3N0X29zIiB8IHNlZCAncy8g Ly0vZydgOzsgZXNhYwotKwotKwotK2Nhc2UgJGhvc3QgaW4KLSsgICotKi1tc2RvcyogfCAqLSot Z28zMiogfCAqLSotbWluZ3czMiogfCAqLSotY3lnd2luKiB8ICotKi13aW5kb3dzKikKLSsgICAg IyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXNoYXJlZCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtl bmFibGVfc2hhcmVkK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9zaGFy ZWQ7IHA9JHtQQUNLQUdFLWRlZmF1bHR9Ci0rICAgIGNhc2UgJGVuYWJsZXZhbCBpbgotKyAgICB5 ZXMpIGVuYWJsZV9zaGFyZWQ9eWVzIDs7Ci0rICAgIG5vKSBlbmFibGVfc2hhcmVkPW5vIDs7Ci0r ICAgICopCi0rICAgICAgZW5hYmxlX3NoYXJlZD1ubwotKyAgICAgICMgTG9vayBhdCB0aGUgYXJn dW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KLSsg ICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKLSsg ICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCi0rCUlGUz0iJGx0X3NhdmVfaWZzIgotKwlp ZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgotKwkgIGVuYWJsZV9zaGFyZWQ9eWVzCi0rCWZp Ci0rICAgICAgZG9uZQotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICAgIDs7Ci0rICAg IGVzYWMKLStlbHNlCi0rICBlbmFibGVfc2hhcmVkPW5vCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsgICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXN0YXRpYyB3YXMgZ2l2ZW4u Ci0raWYgdGVzdCAiJHtlbmFibGVfc3RhdGljK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2 YWw9JGVuYWJsZV9zdGF0aWM7IHA9JHtQQUNLQUdFLWRlZmF1bHR9Ci0rICAgIGNhc2UgJGVuYWJs ZXZhbCBpbgotKyAgICB5ZXMpIGVuYWJsZV9zdGF0aWM9eWVzIDs7Ci0rICAgIG5vKSBlbmFibGVf c3RhdGljPW5vIDs7Ci0rICAgICopCi0rICAgICBlbmFibGVfc3RhdGljPW5vCi0rICAgICAgIyBM b29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBz ZXBhcmF0b3JzLgotKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9T RVBBUkFUT1IsIgotKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KLSsJSUZTPSIkbHRf c2F2ZV9pZnMiCi0rCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCi0rCSAgZW5hYmxlX3N0 YXRpYz15ZXMKLSsJZmkKLSsgICAgICBkb25lCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0r ICAgICAgOzsKLSsgICAgZXNhYwotK2Vsc2UKLSsgIGVuYWJsZV9zdGF0aWM9eWVzCi0rZmkKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsgICAgOzsKLSsgICopCi0rICAgICMgQ2hlY2sgd2hl dGhlciAtLWVuYWJsZS1zaGFyZWQgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX3NoYXJl ZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfc2hhcmVkOyBwPSR7UEFD S0FHRS1kZWZhdWx0fQotKyAgICBjYXNlICRlbmFibGV2YWwgaW4KLSsgICAgeWVzKSBlbmFibGVf c2hhcmVkPXllcyA7OwotKyAgICBubykgZW5hYmxlX3NoYXJlZD1ubyA7OwotKyAgICAqKQotKyAg ICAgIGVuYWJsZV9zaGFyZWQ9bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdv dC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0rICAgICAgbHRfc2F2 ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0rICAgICAgZm9yIHBr ZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRw a2ciID0gIlgkcCI7IHRoZW4KLSsJICBlbmFibGVfc2hhcmVkPXllcwotKwlmaQotKyAgICAgIGRv bmUKLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rZWxz ZQotKyAgZW5hYmxlX3NoYXJlZD15ZXMKLStmaQotKwotKwotKwotKwotKwotKwotKyAgICAjIENo ZWNrIHdoZXRoZXIgLS1lbmFibGUtc3RhdGljIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJs ZV9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX3N0YXRpYzsg cD0ke1BBQ0tBR0UtZGVmYXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykg ZW5hYmxlX3N0YXRpYz15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9zdGF0aWM9bm8gOzsKLSsgICAg KikKLSsgICAgIGVuYWJsZV9zdGF0aWM9bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50 IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0rICAgICAg bHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0rICAgICAg Zm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVz dCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KLSsJICBlbmFibGVfc3RhdGljPXllcwotKwlmaQotKyAg ICAgIGRvbmUKLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAgICBlc2Fj Ci0rZWxzZQotKyAgZW5hYmxlX3N0YXRpYz1ubwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rICAg IDs7Ci0rZXNhYwotKwotKyMgQ2hlY2tzIGZvciBwcm9ncmFtcwotK3NhdmVfQ1hYRkxBR1M9IiRD WFhGTEFHUyIKLSthY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19j b21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn Ci0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9 JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLStpZiB0ZXN0IC16ICIkQ1hYIjsgdGhlbgotKyAgaWYg dGVzdCAtbiAiJENDQyI7IHRoZW4KLSsgICAgQ1hYPSRDQ0MKLSsgIGVsc2UKLSsgICAgaWYgdGVz dCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgZm9yIGFjX3Byb2cgaW4gZysrIGMrKyBn cHAgYUNDIENDIGN4eCBjYysrIGNsLmV4ZSBGQ0MgS0NDIFJDQyB4bENfciB4bEMKLSsgIGRvCi0r ICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ci LCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNf dG9vbF9wcmVmaXgkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DWFgrc2V0fSIg PSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYg dGVzdCAtbiAiJENYWCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfQ1hYPSIkQ1hYIiAjIExldCB0aGUg dXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQ QVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZl X0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4 dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0NYWD0iJGFjX3Rvb2xf cHJlZml4JGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9u ZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK0NYWD0kYWNfY3ZfcHJv Z19DWFgKLStpZiB0ZXN0IC1uICIkQ1hYIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJENYWCIgPiY1Ci0rJGFzX2VjaG8gIiRDWFgiID4mNjsgfQotK2Vsc2UK LSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNo byAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICAgIHRlc3QgLW4gIiRDWFgiICYmIGJyZWFrCi0r ICBkb25lCi0rZmkKLStpZiB0ZXN0IC16ICIkQ1hYIjsgdGhlbgotKyAgYWNfY3RfQ1hYPSRDWFgK LSsgIGZvciBhY19wcm9nIGluIGcrKyBjKysgZ3BwIGFDQyBDQyBjeHggY2MrKyBjbC5leGUgRkND IEtDQyBSQ0MgeGxDX3IgeGxDCi0rZG8KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAi JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBk dW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNf d29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DWFgrc2V0fSIg PSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYg dGVzdCAtbiAiJGFjX2N0X0NYWCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNf Y3RfQ1hYIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2 ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStk bwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K LSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwot KyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVz dF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9w cm9nX2FjX2N0X0NYWD0iJGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Zm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsg IGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0 X0NYWD0kYWNfY3ZfcHJvZ19hY19jdF9DWFgKLStpZiB0ZXN0IC1uICIkYWNfY3RfQ1hYIjsgdGhl bgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0NYWCIgPiY1 Ci0rJGFzX2VjaG8gIiRhY19jdF9DWFgiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2Zp Ci0rCi0rCi0rICB0ZXN0IC1uICIkYWNfY3RfQ1hYIiAmJiBicmVhawotK2RvbmUKLSsKLSsgIGlm IHRlc3QgIngkYWNfY3RfQ1hYIiA9IHg7IHRoZW4KLSsgICAgQ1hYPSJnKysiCi0rICBlbHNlCi0r ICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3Qg cHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYy O30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIENYWD0kYWNfY3RfQ1hYCi0r ICBmaQotK2ZpCi0rCi0rICBmaQotK2ZpCi0rIyBQcm92aWRlIHNvbWUgaW5mb3JtYXRpb24gYWJv dXQgdGhlIGNvbXBpbGVyLgotKyRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y IEMrKyBjb21waWxlciB2ZXJzaW9uIiA+JjUKLStzZXQgWCAkYWNfY29tcGlsZQotK2FjX2NvbXBp bGVyPSQyCi0reyAoYWNfdHJ5PSIkYWNfY29tcGlsZXIgLS12ZXJzaW9uID4mNSIKLStjYXNlICIo KCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlciAtLXZlcnNpb24gPiY1IikgMj4mNQot KyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLSt7IChhY190cnk9IiRhY19jb21w aWxlciAtdiA+JjUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStl c2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZXIg LXYgPiY1IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLSt7IChh Y190cnk9IiRhY19jb21waWxlciAtViA+JjUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86 ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFs ICIkYWNfY29tcGlsZXIgLVYgPiY1IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH0KLSsKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVm cy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStj YXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwot KwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9G Ci0rYWNfY2xlYW5fZmlsZXNfc2F2ZT0kYWNfY2xlYW5fZmlsZXMKLSthY19jbGVhbl9maWxlcz0i JGFjX2NsZWFuX2ZpbGVzIGEub3V0IGEub3V0LmRTWU0gYS5leGUgYi5vdXQiCi0rIyBUcnkgdG8g Y3JlYXRlIGFuIGV4ZWN1dGFibGUgd2l0aG91dCAtbyBmaXJzdCwgZGlzcmVnYXJkIGEub3V0Lgot KyMgSXQgd2lsbCBoZWxwIHVzIGRpYWdub3NlIGJyb2tlbiBjb21waWxlcnMsIGFuZCBmaW5kaW5n IG91dCBhbiBpbnR1aXRpb24KLSsjIG9mIGV4ZWV4dC4KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBDKysgY29tcGlsZXIgZGVmYXVsdCBvdXRw dXQgZmlsZSBuYW1lLi4uICIgPiY2OyB9Ci0rYWNfbGlua19kZWZhdWx0PWAkYXNfZWNobyAiJGFj X2xpbmsiIHwgc2VkICdzLyAtbyAqY29uZnRlc3RbXiBdKi8vJ2AKLSsKLSsjIFRoZSBwb3NzaWJs ZSBvdXRwdXQgZmlsZXM6Ci0rYWNfZmlsZXM9ImEub3V0IGNvbmZ0ZXN0LmV4ZSBjb25mdGVzdCBh LmV4ZSBhX291dC5leGUgYi5vdXQgY29uZnRlc3QuKiIKLSsKLSthY19ybWZpbGVzPQotK2ZvciBh Y19maWxlIGluICRhY19maWxlcwotK2RvCi0rICBjYXNlICRhY19maWxlIGluCi0rICAgICouJGFj X2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICou YmJnIHwgKi5tYXAgfCAqLmluZiB8ICouZFNZTSB8ICoubyB8ICoub2JqICkgOzsKLSsgICAgKiAp IGFjX3JtZmlsZXM9IiRhY19ybWZpbGVzICRhY19maWxlIjs7Ci0rICBlc2FjCi0rZG9uZQotK3Jt IC1mICRhY19ybWZpbGVzCi0rCi0raWYgeyAoYWNfdHJ5PSIkYWNfbGlua19kZWZhdWx0IgotK2Nh c2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmtfZGVmYXVsdCIpIDI+JjUKLSsgIGFj X3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0rICAjIEF1dG9jb25mLTIuMTMg Y291bGQgc2V0IHRoZSBhY19jdl9leGVleHQgdmFyaWFibGUgdG8gYG5vJy4KLSsjIFNvIGlnbm9y ZSBhIHZhbHVlIG9mIGBubycsIG90aGVyd2lzZSB0aGlzIHdvdWxkIGxlYWQgdG8gYEVYRUVYVCA9 IG5vJwotKyMgaW4gYSBNYWtlZmlsZS4gIFdlIHNob3VsZCBub3Qgb3ZlcnJpZGUgYWNfY3ZfZXhl ZXh0IGlmIGl0IHdhcyBjYWNoZWQsCi0rIyBzbyB0aGF0IHRoZSB1c2VyIGNhbiBzaG9ydC1jaXJj dWl0IHRoaXMgdGVzdCBmb3IgY29tcGlsZXJzIHVua25vd24gdG8KLSsjIEF1dG9jb25mLgotK2Zv ciBhY19maWxlIGluICRhY19maWxlcyAnJwotK2RvCi0rICB0ZXN0IC1mICIkYWNfZmlsZSIgfHwg Y29udGludWUKLSsgIGNhc2UgJGFjX2ZpbGUgaW4KLSsgICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8 ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm1hcCB8ICou aW5mIHwgKi5kU1lNIHwgKi5vIHwgKi5vYmogKQotKwk7OwotKyAgICBbYWJdLm91dCApCi0rCSMg V2UgZm91bmQgdGhlIGRlZmF1bHQgZXhlY3V0YWJsZSwgYnV0IGV4ZWV4dD0nJyBpcyBtb3N0Ci0r CSMgY2VydGFpbmx5IHJpZ2h0LgotKwlicmVhazs7Ci0rICAgICouKiApCi0rICAgICAgICBpZiB0 ZXN0ICIke2FjX2N2X2V4ZWV4dCtzZXR9IiA9IHNldCAmJiB0ZXN0ICIkYWNfY3ZfZXhlZXh0IiAh PSBubzsKLSsJdGhlbiA6OyBlbHNlCi0rCSAgIGFjX2N2X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUi IDogJ1teLl0qXChcLi4qXCknYAotKwlmaQotKwkjIFdlIHNldCBhY19jdl9leGVleHQgaGVyZSBi ZWNhdXNlIHRoZSBsYXRlciB0ZXN0IGZvciBpdCBpcyBub3QKLSsJIyBzYWZlOiBjcm9zcyBjb21w aWxlcnMgbWF5IG5vdCBhZGQgdGhlIHN1ZmZpeCBpZiBnaXZlbiBhbiBgLW8nCi0rCSMgYXJndW1l bnQsIHNvIHdlIG1heSBuZWVkIHRvIGtub3cgaXQgYXQgdGhhdCBwb2ludCBhbHJlYWR5LgotKwkj IEV2ZW4gaWYgdGhpcyBzZWN0aW9uIGxvb2tzIGNydWZ0eTogaXQgaGFzIHRoZSBhZHZhbnRhZ2Ug b2YKLSsJIyBhY3R1YWxseSB3b3JraW5nLgotKwlicmVhazs7Ci0rICAgICogKQotKwlicmVhazs7 Ci0rICBlc2FjCi0rZG9uZQotK3Rlc3QgIiRhY19jdl9leGVleHQiID0gbm8gJiYgYWNfY3ZfZXhl ZXh0PQotKwotK2Vsc2UKLSsgIGFjX2ZpbGU9JycKLStmaQotKwotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRhY19maWxlIiA+JjUKLSskYXNfZWNobyAiJGFjX2ZpbGUiID4m NjsgfQotK2lmIHRlc3QgLXogIiRhY19maWxlIjsgdGhlbgotKyAgJGFzX2VjaG8gIiRhc19tZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0 ID4mNQotKwotK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19w d2QnOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7 fQotK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBDKysgY29tcGlsZXIgY2Fu bm90IGNyZWF0ZSBleGVjdXRhYmxlcwotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFp bHMuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogQysrIGNvbXBpbGVyIGNhbm5vdCBj cmVhdGUgZXhlY3V0YWJsZXMKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIg PiYyO30KLSsgICB7IChleGl0IDc3KTsgZXhpdCA3NzsgfTsgfTsgfQotK2ZpCi0rCi0rYWNfZXhl ZXh0PSRhY19jdl9leGVleHQKLSsKLSsjIENoZWNrIHRoYXQgdGhlIGNvbXBpbGVyIHByb2R1Y2Vz IGV4ZWN1dGFibGVzIHdlIGNhbiBydW4uICBJZiBub3QsIGVpdGhlcgotKyMgdGhlIGNvbXBpbGVy IGlzIGJyb2tlbiwgb3Igd2UgY3Jvc3MgY29tcGlsZS4KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQysrIGNvbXBpbGVyIHdvcmtzIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBDKysgY29tcGlsZXIgd29ya3MuLi4gIiA+JjY7 IH0KLSsjIEZJWE1FOiBUaGVzZSBjcm9zcyBjb21waWxlciBoYWNrcyBzaG91bGQgYmUgcmVtb3Zl ZCBmb3IgQXV0b2NvbmYgMy4wCi0rIyBJZiBub3QgY3Jvc3MgY29tcGlsaW5nLCBjaGVjayB0aGF0 IHdlIGNhbiBydW4gYSBzaW1wbGUgcHJvZ3JhbS4KLStpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5n IiAhPSB5ZXM7IHRoZW4KLSsgIGlmIHsgYWNfdHJ5PScuLyRhY19maWxlJwotKyAgeyAoY2FzZSAi KCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfdHJ5IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSsgICAgY3Jvc3NfY29tcGlsaW5nPW5vCi0rICBl bHNlCi0rICAgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0gbWF5YmU7IHRoZW4KLSsJY3Jv c3NfY29tcGlsaW5nPXllcwotKyAgICBlbHNlCi0rCXsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVy cm9yOiBjYW5ub3QgcnVuIEMrKyBjb21waWxlZCBwcm9ncmFtcy4KLStJZiB5b3UgbWVhbnQgdG8g Y3Jvc3MgY29tcGlsZSwgdXNlIFxgLS1ob3N0Jy4KLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9y ZSBkZXRhaWxzLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBydW4gQysr IGNvbXBpbGVkIHByb2dyYW1zLgotK0lmIHlvdSBtZWFudCB0byBjcm9zcyBjb21waWxlLCB1c2Ug XGAtLWhvc3QnLgotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQot KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotKyAgICBmaQotKyAgZmkKLStmaQotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInll cyIgPiY2OyB9Ci0rCi0rcm0gLWYgLXIgYS5vdXQgYS5vdXQuZFNZTSBhLmV4ZSBjb25mdGVzdCRh Y19jdl9leGVleHQgYi5vdXQKLSthY19jbGVhbl9maWxlcz0kYWNfY2xlYW5fZmlsZXNfc2F2ZQot KyMgQ2hlY2sgdGhhdCB0aGUgY29tcGlsZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMgd2UgY2FuIHJ1 bi4gIElmIG5vdCwgZWl0aGVyCi0rIyB0aGUgY29tcGlsZXIgaXMgYnJva2VuLCBvciB3ZSBjcm9z cyBjb21waWxlLgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVy IHdlIGFyZSBjcm9zcyBjb21waWxpbmciID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRo ZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiAiID4mNjsgfQotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRjcm9zc19jb21waWxpbmciID4mNQotKyRhc19lY2hvICIkY3Jv c3NfY29tcGlsaW5nIiA+JjY7IH0KLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAiID4mNjsgfQotK2lmIHsgKGFjX3RyeT0i JGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2Fj Ci0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgot KyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+JjUK LSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0rICAjIElmIGJvdGgg YGNvbmZ0ZXN0LmV4ZScgYW5kIGBjb25mdGVzdCcgYXJlIGBwcmVzZW50JyAod2VsbCwgb2JzZXJ2 YWJsZSkKLSsjIGNhdGNoIGBjb25mdGVzdC5leGUnLiAgRm9yIGluc3RhbmNlIHdpdGggQ3lnd2lu LCBgbHMgY29uZnRlc3QnIHdpbGwKLSsjIHdvcmsgcHJvcGVybHkgKGkuZS4sIHJlZmVyIHRvIGBj b25mdGVzdC5leGUnKSwgd2hpbGUgaXQgd29uJ3Qgd2l0aAotKyMgYHJtJy4KLStmb3IgYWNfZmls ZSBpbiBjb25mdGVzdC5leGUgY29uZnRlc3QgY29uZnRlc3QuKjsgZG8KLSsgIHRlc3QgLWYgIiRh Y19maWxlIiB8fCBjb250aW51ZQotKyAgY2FzZSAkYWNfZmlsZSBpbgotKyAgICAqLiRhY19leHQg fCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8 ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gfCAqLm8gfCAqLm9iaiApIDs7Ci0rICAgICouKiApIGFj X2N2X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAotKwkgIGJyZWFr OzsKLSsgICAgKiApIGJyZWFrOzsKLSsgIGVzYWMKLStkb25lCi0rZWxzZQotKyAgeyB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0reyB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxl czogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBk ZXRhaWxzLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1 ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKLStTZWUgXGBjb25m aWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH07IH0KLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dAotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9leGVleHQiID4mNQotKyRhc19lY2hv ICIkYWNfY3ZfZXhlZXh0IiA+JjY7IH0KLSsKLStybSAtZiBjb25mdGVzdC4kYWNfZXh0Ci0rRVhF RVhUPSRhY19jdl9leGVleHQKLSthY19leGVleHQ9JEVYRUVYVAotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcyIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4gIiA+JjY7IH0K LStpZiB0ZXN0ICIke2FjX2N2X29iamV4dCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4g MDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QubyBjb25mdGVzdC5vYmoKLStpZiB7IChh Y190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2Nv bXBpbGUiKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgot KyAgZm9yIGFjX2ZpbGUgaW4gY29uZnRlc3QubyBjb25mdGVzdC5vYmogY29uZnRlc3QuKjsgZG8K LSsgIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZTsKLSsgIGNhc2UgJGFjX2ZpbGUgaW4K LSsgICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0g fCAqLmJiIHwgKi5iYmcgfCAqLm1hcCB8ICouaW5mIHwgKi5kU1lNICkgOzsKLSsgICAgKikgYWNf Y3Zfb2JqZXh0PWBleHByICIkYWNfZmlsZSIgOiAnLipcLlwoLipcKSdgCi0rICAgICAgIGJyZWFr OzsKLSsgIGVzYWMKLStkb25lCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwot K3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotK3sgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2Yg b2JqZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3Jl IGRldGFpbHMuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNvbXB1dGUg c3VmZml4IG9mIG9iamVjdCBmaWxlczogY2Fubm90IGNvbXBpbGUKLStTZWUgXGBjb25maWcubG9n JyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07 IH0KLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LiRhY19jdl9vYmpleHQgY29uZnRlc3QuJGFjX2V4 dAotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X29iamV4 dCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9vYmpleHQiID4mNjsgfQotK09CSkVYVD0kYWNfY3Zf b2JqZXh0Ci0rYWNfb2JqZXh0PSRPQkpFWFQKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGlsZXIiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQysrIGNv bXBpbGVyLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9jeHhfY29tcGlsZXJfZ251K3Nl dH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsg IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19B Q0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFp biAoKQotK3sKLSsjaWZuZGVmIF9fR05VQ19fCi0rICAgICAgIGNob2tlIG1lCi0rI2VuZGlmCi0r Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29i amV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgot KyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190 cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRM SU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsg IChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsg IGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25m dGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYg ewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4K LSsgIGFjX2NvbXBpbGVyX2dudT15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 Ci0rCi0rCWFjX2NvbXBpbGVyX2dudT1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rYWNfY3ZfY3h4X2NvbXBp bGVyX2dudT0kYWNfY29tcGlsZXJfZ251Ci0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYWNfY3ZfY3h4X2NvbXBpbGVyX2dudSIgPiY1Ci0rJGFzX2VjaG8gIiRh Y19jdl9jeHhfY29tcGlsZXJfZ251IiA+JjY7IH0KLStpZiB0ZXN0ICRhY19jb21waWxlcl9nbnUg PSB5ZXM7IHRoZW4KLSsgIEdYWD15ZXMKLStlbHNlCi0rICBHWFg9Ci0rZmkKLSthY190ZXN0X0NY WEZMQUdTPSR7Q1hYRkxBR1Mrc2V0fQotK2FjX3NhdmVfQ1hYRkxBR1M9JENYWEZMQUdTCi0reyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgJENYWCBhY2NlcHRzIC1n IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICRDWFggYWNjZXB0cyAtZy4uLiAi ID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19jeHhfZytzZXR9IiA9IHNldDsgdGhlbgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19zYXZlX2N4eF93ZXJy b3JfZmxhZz0kYWNfY3h4X3dlcnJvcl9mbGFnCi0rICAgYWNfY3h4X3dlcnJvcl9mbGFnPXllcwot KyAgIGFjX2N2X3Byb2dfY3h4X2c9bm8KLSsgICBDWFhGTEFHUz0iLWciCi0rICAgY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewot KwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19v YmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4K LSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0r ICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29u ZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVu Ci0rICBhY19jdl9wcm9nX2N4eF9nPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKLSsKLSsJQ1hYRkxBR1M9IiIKLSsgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4g MDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3Ry eT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAq XFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK LStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNo b1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGls ZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNv bmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBj b25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFj X2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAg fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIDoKLStlbHNlCi0rICAk YXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8n IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N4eF93ZXJyb3JfZmxhZz0kYWNfc2F2ZV9j eHhfd2Vycm9yX2ZsYWcKLSsJIENYWEZMQUdTPSItZyIKLSsJIGNhdCA+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5o ID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsv KiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsg IHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYg eyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRh Y19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAn XiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQot KyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0 IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgot KyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY3Zf cHJvZ19jeHhfZz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCi0r ZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0LiRhY19leHQKLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICAgYWNfY3h4X3dlcnJv cl9mbGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxhZwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3Byb2dfY3h4X2ciID4mNQotKyRhc19lY2hvICIkYWNf Y3ZfcHJvZ19jeHhfZyIgPiY2OyB9Ci0raWYgdGVzdCAiJGFjX3Rlc3RfQ1hYRkxBR1MiID0gc2V0 OyB0aGVuCi0rICBDWFhGTEFHUz0kYWNfc2F2ZV9DWFhGTEFHUwotK2VsaWYgdGVzdCAkYWNfY3Zf cHJvZ19jeHhfZyA9IHllczsgdGhlbgotKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsg ICAgQ1hYRkxBR1M9Ii1nIC1PMiIKLSsgIGVsc2UKLSsgICAgQ1hYRkxBR1M9Ii1nIgotKyAgZmkK LStlbHNlCi0rICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAgICBDWFhGTEFHUz0iLU8y IgotKyAgZWxzZQotKyAgICBDWFhGTEFHUz0KLSsgIGZpCi0rZmkKLSthY19leHQ9YwotK2FjX2Nw cD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVl eHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn Ci0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotK0RFUERJUj0iJHthbV9f bGVhZGluZ19kb3R9ZGVwcyIKLSsKLSthY19jb25maWdfY29tbWFuZHM9IiRhY19jb25maWdfY29t bWFuZHMgZGVwZmlsZXMiCi0rCi0rCi0rYW1fbWFrZT0ke01BS0UtbWFrZX0KLStjYXQgPiBjb25m aW5jIDw8ICdFTkQnCi0rYW1fX2RvaXQ6Ci0rCUBlY2hvIHRoaXMgaXMgdGhlIGFtX19kb2l0IHRh cmdldAotKy5QSE9OWTogYW1fX2RvaXQKLStFTkQKLSsjIElmIHdlIGRvbid0IGZpbmQgYW4gaW5j bHVkZSBkaXJlY3RpdmUsIGp1c3QgY29tbWVudCBvdXQgdGhlIGNvZGUuCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgJGFt X21ha2UiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVz ZWQgYnkgJGFtX21ha2UuLi4gIiA+JjY7IH0KLSthbV9faW5jbHVkZT0iIyIKLSthbV9fcXVvdGU9 Ci0rX2FtX3Jlc3VsdD1ub25lCi0rIyBGaXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5jbHVkZS4K LStlY2hvICJpbmNsdWRlIGNvbmZpbmMiID4gY29uZm1mCi0rIyBJZ25vcmUgYWxsIGtpbmRzIG9m IGFkZGl0aW9uYWwgb3V0cHV0IGZyb20gYG1ha2UnLgotK2Nhc2UgYCRhbV9tYWtlIC1zIC1mIGNv bmZtZiAyPiAvZGV2L251bGxgIGluICMoCi0rKnRoZVwgYW1fX2RvaXRcIHRhcmdldCopCi0rICBh bV9faW5jbHVkZT1pbmNsdWRlCi0rICBhbV9fcXVvdGU9Ci0rICBfYW1fcmVzdWx0PUdOVQotKyAg OzsKLStlc2FjCi0rIyBOb3cgdHJ5IEJTRCBtYWtlIHN0eWxlIGluY2x1ZGUuCi0raWYgdGVzdCAi JGFtX19pbmNsdWRlIiA9ICIjIjsgdGhlbgotKyAgIGVjaG8gJy5pbmNsdWRlICJjb25maW5jIicg PiBjb25mbWYKLSsgICBjYXNlIGAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCBp biAjKAotKyAgICp0aGVcIGFtX19kb2l0XCB0YXJnZXQqKQotKyAgICAgYW1fX2luY2x1ZGU9Lmlu Y2x1ZGUKLSsgICAgIGFtX19xdW90ZT0iXCIiCi0rICAgICBfYW1fcmVzdWx0PUJTRAotKyAgICAg OzsKLSsgICBlc2FjCi0rZmkKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkX2FtX3Jlc3VsdCIgPiY1Ci0rJGFzX2VjaG8gIiRfYW1fcmVzdWx0IiA+JjY7IH0KLSty bSAtZiBjb25maW5jIGNvbmZtZgotKwotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1kZXBlbmRl bmN5LXRyYWNraW5nIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9kZXBlbmRlbmN5X3Ry YWNraW5nK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9kZXBlbmRlbmN5 X3RyYWNraW5nOwotK2ZpCi0rCi0raWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2lu ZyIgIT0geG5vOyB0aGVuCi0rICBhbV9kZXBjb21wPSIkYWNfYXV4X2Rpci9kZXBjb21wIgotKyAg QU1ERVBCQUNLU0xBU0g9J1wnCi0rZmkKLSsgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90 cmFja2luZyIgIT0geG5vOyB0aGVuCi0rICBBTURFUF9UUlVFPQotKyAgQU1ERVBfRkFMU0U9JyMn Ci0rZWxzZQotKyAgQU1ERVBfVFJVRT0nIycKLSsgIEFNREVQX0ZBTFNFPQotK2ZpCi0rCi0rCi0r Ci0rZGVwY2M9IiRDWFgiICBhbV9jb21waWxlcl9saXN0PQotKwotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYyIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MuLi4gIiA+JjY7IH0K LStpZiB0ZXN0ICIke2FtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9 IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0 ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCi0rICAj IFdlIG1ha2UgYSBzdWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBj YW4gZW5kIHVwCi0rICAjIG1ha2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJv dXQgYW5kIG5ldmVyIHJlbW92ZS4gIEZvcgotKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQg dGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKLSsgICMgbWFraW5nIGEgZHVt bXkgZmlsZSBuYW1lZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQK LSsgICMgaW4gRCcuCi0rICBta2RpciBjb25mdGVzdC5kaXIKLSsgICMgQ29weSBkZXBjb21wIHRv IHN1YmRpciBiZWNhdXNlIG90aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCi0rICAj IHVzaW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5LgotKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVz dC5kaXIKLSsgIGNkIGNvbmZ0ZXN0LmRpcgotKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5k IGRlcGVuZGVuY2llcyBpbiBhIHN1YmRpcmVjdG9yeSBiZWNhdXNlCi0rICAjIGl0IGhlbHBzIHRv IGRldGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQotKyAg IyBib3RoIFRydTY0J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5j aWVzIGFzIGEKLSsgICMgc2lkZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBw dXQgdGhlIGRlcGVuZGVuY2llcyBpbgotKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUg VHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0Ci0rICAjIGRpcmVjdG9yeS4KLSsgIG1r ZGlyIHN1YgotKwotKyAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUK LSsgIGlmIHRlc3QgIiRhbV9jb21waWxlcl9saXN0IiA9ICIiOyB0aGVuCi0rICAgICBhbV9jb21w aWxlcl9saXN0PWBzZWQgLW4gJ3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnIDwgLi9kZXBj b21wYAotKyAgZmkKLSsgIGFtX191bml2ZXJzYWw9ZmFsc2UKLSsgIGNhc2UgIiAkZGVwY2MgIiBp biAjKAotKyAgICAgKlwgLWFyY2hcICpcIC1hcmNoXCAqKSBhbV9fdW5pdmVyc2FsPXRydWUgOzsK LSsgICAgIGVzYWMKLSsKLSsgIGZvciBkZXBtb2RlIGluICRhbV9jb21waWxlcl9saXN0OyBkbwot KyAgICAjIFNldHVwIGEgc291cmNlIHdpdGggbWFueSBkZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29t ZSBjb21waWxlcnMKLSsgICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVwZW5kZW5jeSBsaXN0cyBv biBjb2x1bW4gODAgKHdpdGggXCksIGFuZAotKyAgICAjIHdlIHNob3VsZCBub3QgY2hvb3NlIGEg ZGVwY29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCi0rICAgICMKLSsgICAgIyBX ZSBuZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3QsIGFzIHRoZSBjb21w aWxlciBtYXkKLSsgICAgIyBvdmVyd3JpdGUgc29tZSBvZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRo IG9ic2N1cmUgY29tbWFuZCBsaW5lcy4KLSsgICAgIyBUaGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0 aCB0aGUgQUlYIEMgY29tcGlsZXIuCi0rICAgIDogPiBzdWIvY29uZnRlc3QuYwotKyAgICBmb3Ig aSBpbiAxIDIgMyA0IDUgNjsgZG8KLSsgICAgICBlY2hvICcjaW5jbHVkZSAiY29uZnRzdCckaScu aCInID4+IHN1Yi9jb25mdGVzdC5jCi0rICAgICAgIyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGku aCcgY3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0MS5oIHdpdGgKLSsgICAgICAjIFNvbGFyaXMgOCdz IHsvdXNyLH0vYmluL3NoLgotKyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGkuaAotKyAgICBkb25l Ci0rICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7 YW1fX3F1b3RlfSIgPiBjb25mbWYKLSsKLSsgICAgIyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAt bycgZm9yIHRoZSBzYWtlIG9mIHRoZSAiZGFzaG1zdGRvdXQiCi0rICAgICMgbW9kZS4gIEl0IHR1 cm5zIG91dCB0aGF0IHRoZSBTdW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHByb3Blcmx5Ci0r ICAgICMgaGFuZGxlIGAtTSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLiAgQWxzbywg c29tZSBJbnRlbAotKyAgICAjIHZlcnNpb25zIGhhZCB0cm91YmxlIHdpdGggb3V0cHV0IGluIHN1 YmRpcnMKLSsgICAgYW1fX29iaj1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30KLSsgICAgYW1fX21p bnVzX29iaj0iLW8gJGFtX19vYmoiCi0rICAgIGNhc2UgJGRlcG1vZGUgaW4KLSsgICAgZ2NjKQot KyAgICAgICMgVGhpcyBkZXBtb2RlIGNhdXNlcyBhIGNvbXBpbGVyIHJhY2UgaW4gdW5pdmVyc2Fs IG1vZGUuCi0rICAgICAgdGVzdCAiJGFtX191bml2ZXJzYWwiID0gZmFsc2UgfHwgY29udGludWUK LSsgICAgICA7OwotKyAgICBub3NpZGVlZmZlY3QpCi0rICAgICAgIyBhZnRlciB0aGlzIHRhZywg bWVjaGFuaXNtcyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5J2xsCi0rICAgICAgIyBv bmx5IGJlIHVzZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAotKyAgICAgIGlmIHRlc3QgIngk ZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgotKwljb250aW51ZQotKyAg ICAgIGVsc2UKLSsJYnJlYWsKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIG1zdmlzdWFsY3Bw IHwgbXN2Y21zeXMpCi0rICAgICAgIyBUaGlzIGNvbXBpbGVyIHdvbid0IGdyb2sgYC1jIC1vJywg YnV0IGFsc28sIHRoZSBtaW51c28gdGVzdCBoYXMKLSsgICAgICAjIG5vdCBydW4geWV0LiAgVGhl c2UgZGVwbW9kZXMgYXJlIGxhdGUgZW5vdWdoIGluIHRoZSBnYW1lLCBhbmQKLSsgICAgICAjIHNv IHdlYWsgdGhhdCB0aGVpciBmdW5jdGlvbmluZyBzaG91bGQgbm90IGJlIGltcGFjdGVkLgotKyAg ICAgIGFtX19vYmo9Y29uZnRlc3QuJHtPQkpFWFQtb30KLSsgICAgICBhbV9fbWludXNfb2JqPQot KyAgICAgIDs7Ci0rICAgIG5vbmUpIGJyZWFrIDs7Ci0rICAgIGVzYWMKLSsgICAgaWYgZGVwbW9k ZT0kZGVwbW9kZSBcCi0rICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9JGFtX19v YmogXAotKyAgICAgICBkZXBmaWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25m dGVzdC5UUG8gXAotKyAgICAgICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAtYyAkYW1fX21pbnVz X29iaiBzdWIvY29uZnRlc3QuYyBcCi0rICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVy ciAmJgotKyAgICAgICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYv bnVsbCAyPiYxICYmCi0rICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBv ID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgZ3JlcCAkYW1fX29iaiBzdWIvY29uZnRlc3Qu UG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICAke01BS0UtbWFrZX0gLXMgLWYgY29uZm1m ID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVu a25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCi0rICAgICAgIyBvciBy ZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1l c3NhZ2UKLSsgICAgICAjIHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQgb3Igbm90IHN1 cHBvcnRlZC4KLSsgICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEgY29tcGxh aW4gdGh1c2x5OgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5nOiBpZ25vcmlu ZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKLSsgICAgICAjIFRoZSBkaWFnbm9z aXMgY2hhbmdlZCBpbiBpY2MgOC4wOgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSByZW1h cms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCi0rICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5n IG9wdGlvbicgY29uZnRlc3QuZXJyIHx8Ci0rICAgICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQn IGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSsgICAgICAgIGFt X2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT0kZGVwbW9kZQotKyAgICAgICAgYnJl YWsKLSsgICAgICBmaQotKyAgICBmaQotKyAgZG9uZQotKwotKyAgY2QgLi4KLSsgIHJtIC1yZiBj b25mdGVzdC5kaXIKLStlbHNlCi0rICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5 cGU9bm9uZQotK2ZpCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA+JjUKLSskYXNfZWNobyAi JGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY2OyB9Ci0rQ1hYREVQTU9E RT1kZXBtb2RlPSRhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUKLSsKLSsgaWYK LSsgIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubyBcCi0rICAmJiB0 ZXN0ICIkYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzM7IHRoZW4K LSsgIGFtX19mYXN0ZGVwQ1hYX1RSVUU9Ci0rICBhbV9fZmFzdGRlcENYWF9GQUxTRT0nIycKLStl bHNlCi0rICBhbV9fZmFzdGRlcENYWF9UUlVFPScjJwotKyAgYW1fX2Zhc3RkZXBDWFhfRkFMU0U9 Ci0rZmkKLSsKLSsKLSthY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSth Y19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+ JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9n bnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysrIHByZXByb2Nlc3NvciIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysrIHByZXByb2Nlc3Nvci4uLiAiID4mNjsgfQot K2lmIHRlc3QgLXogIiRDWFhDUFAiOyB0aGVuCi0rICBpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ1hY Q1BQK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsgICAgICAjIERvdWJsZSBxdW90ZXMgYmVjYXVzZSBDWFhDUFAgbmVlZHMgdG8gYmUgZXhw YW5kZWQKLSsgICAgZm9yIENYWENQUCBpbiAiJENYWCAtRSIgIi9saWIvY3BwIgotKyAgICBkbwot KyAgICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UKLStmb3IgYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFn IGluICcnIHllcwotK2RvCi0rICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBn Y2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCi0rICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxl ciB3b3Jrcy4KLSsgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENf XyBpcyBkZWZpbmVkLCBzaW5jZQotKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVz dGFuZGluZyBjb21waWxlcnMuCi0rICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2Rl IHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAotKyAgIyBub3QganVzdCB0aHJvdWdoIGNw cC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCi0rICBjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpZmRlZiBfX1NURENfXwotKyMg aW5jbHVkZSA8bGltaXRzLmg+Ci0rI2Vsc2UKLSsjIGluY2x1ZGUgPGFzc2VydC5oPgotKyNlbmRp ZgotKwkJICAgICBTeW50YXggZXJyb3IKLStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19jcHAg Y29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAg Y29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVz dC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYv bnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93 ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhl bgotKyAgOgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgQnJva2Vu OiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2ZpCi0rCi0rcm0gLWYgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMu ICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRl Y3RlZCBhbmQgaG93LgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29u ZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0 Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KLSsjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLStfQUNFT0YKLStpZiB7IChhY190cnk9 IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwg IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9 JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAt ZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFn JGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAg ICAgfTsgdGhlbgotKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KLStjb250 aW51ZQotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m NQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgUGFzc2VzIGJv dGggdGVzdHMuCi0rYWNfcHJlcHJvY19vaz06Ci0rYnJlYWsKLStmaQotKwotK3JtIC1mIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rZG9uZQotKyMgQmVjYXVzZSBvZiBgYnJlYWsn LCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgotK3JtIC1m IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0raWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4K LSsgIGJyZWFrCi0rZmkKLSsKLSsgICAgZG9uZQotKyAgICBhY19jdl9wcm9nX0NYWENQUD0kQ1hY Q1BQCi0rCi0rZmkKLSsgIENYWENQUD0kYWNfY3ZfcHJvZ19DWFhDUFAKLStlbHNlCi0rICBhY19j dl9wcm9nX0NYWENQUD0kQ1hYQ1BQCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkQ1hYQ1BQIiA+JjUKLSskYXNfZWNobyAiJENYWENQUCIgPiY2OyB9Ci0rYWNfcHJl cHJvY19vaz1mYWxzZQotK2ZvciBhY19jeHhfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCi0r ZG8KLSsgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmln dXJpbmcgZ2xpYmMKLSsgICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgotKyAg IyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQs IHNpbmNlCi0rICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBp bGVycy4KLSsgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUg Y29tcGlsZXIncyBwYXJzZXIsCi0rICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVy cm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5o ID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsv KiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2lmZGVmIF9fU1REQ19fCi0rIyBpbmNsdWRlIDxsaW1p dHMuaD4KLSsjZWxzZQotKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0rI2VuZGlmCi0rCQkgICAgIFN5 bnRheCBlcnJvcgotK19BQ0VPRgotK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNf ZXh0IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNf ZXh0IikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKLSsJ IHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8 fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9OyB0aGVuCi0rICA6Ci0rZWxz ZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdz L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZh bGlkIGlucHV0LgotK2NvbnRpbnVlCi0rZmkKLSsKLStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX2V4dAotKwotKyAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3 aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKLSsgICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cu Ci0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8K LStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRl IDxhY19ub25leGlzdGVudC5oPgotK19BQ0VPRgotK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25m dGVzdC4kYWNfZXh0IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0r ZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NwcCBjb25m dGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAt diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVy MQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxs ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJv cl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9OyB0aGVuCi0r ICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgotK2NvbnRpbnVlCi0rZWxzZQot KyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14v fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KLSth Y19wcmVwcm9jX29rPToKLSticmVhawotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0 ZXN0LiRhY19leHQKLSsKLStkb25lCi0rIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9D X0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCi0rcm0gLWYgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19leHQKLStpZiAkYWNfcHJlcHJvY19vazsgdGhlbgotKyAgOgotK2Vsc2UK LSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotK3sg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBDKysgcHJlcHJvY2Vzc29yIFwiJENY WENQUFwiIGZhaWxzIHNhbml0eSBjaGVjawotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRl dGFpbHMuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogQysrIHByZXByb2Nlc3NvciBc IiRDWFhDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9y ZSBkZXRhaWxzLiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLStmaQot KwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0Mg LWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJEND IC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJf Z251Ci0rCi0rQ1hYRkxBR1M9IiRzYXZlX0NYWEZMQUdTIgotKyMgRmluZCBhIGdvb2QgaW5zdGFs bCBwcm9ncmFtLiAgV2UgcHJlZmVyIGEgQyBwcm9ncmFtIChmYXN0ZXIpLAotKyMgc28gb25lIHNj cmlwdCBpcyBhcyBnb29kIGFzIGFub3RoZXIuICBCdXQgYXZvaWQgdGhlIGJyb2tlbiBvcgotKyMg aW5jb21wYXRpYmxlIHZlcnNpb25zOgotKyMgU3lzViAvZXRjL2luc3RhbGwsIC91c3Ivc2Jpbi9p bnN0YWxsCi0rIyBTdW5PUyAvdXNyL2V0Yy9pbnN0YWxsCi0rIyBJUklYIC9zYmluL2luc3RhbGwK LSsjIEFJWCAvYmluL2luc3RhbGwKLSsjIEFtaWdhT1MgL0MvaW5zdGFsbCwgd2hpY2ggaW5zdGFs bHMgYm9vdGJsb2NrcyBvbiBmbG9wcHkgZGlzY3MKLSsjIEFJWCA0IC91c3IvYmluL2luc3RhbGxi c2QsIHdoaWNoIGRvZXNuJ3Qgd29yayB3aXRob3V0IGEgLWcgZmxhZwotKyMgQUZTIC91c3IvYWZz d3MvYmluL2luc3RhbGwsIHdoaWNoIG1pc2hhbmRsZXMgbm9uZXhpc3RlbnQgYXJncwotKyMgU1ZS NCAvdXNyL3VjYi9pbnN0YWxsLCB3aGljaCB0cmllcyB0byB1c2UgdGhlIG5vbmV4aXN0ZW50IGdy b3VwICJzdGFmZiIKLSsjIE9TLzIncyBzeXN0ZW0gaW5zdGFsbCwgd2hpY2ggaGFzIGEgY29tcGxl dGVseSBkaWZmZXJlbnQgc2VtYW50aWMKLSsjIC4vaW5zdGFsbCwgd2hpY2ggY2FuIGJlIGVycm9u ZW91c2x5IGNyZWF0ZWQgYnkgbWFrZSBmcm9tIC4vaW5zdGFsbC5zaC4KLSsjIFJlamVjdCBpbnN0 YWxsIHByb2dyYW1zIHRoYXQgY2Fubm90IGluc3RhbGwgbXVsdGlwbGUgZmlsZXMuCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3Rh bGwiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3Rh bGwuLi4gIiA+JjY7IH0KLStpZiB0ZXN0IC16ICIkSU5TVEFMTCI7IHRoZW4KLStpZiB0ZXN0ICIk e2FjX2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgIyBBY2NvdW50IGZvciBwZW9wbGUgd2hv IHB1dCB0cmFpbGluZyBzbGFzaGVzIGluIFBBVEggZWxlbWVudHMuCi0rY2FzZSAkYXNfZGlyLyBp bgotKyAgLi8gfCAuLy8gfCAvY0MvKiB8IFwKLSsgIC9ldGMvKiB8IC91c3Ivc2Jpbi8qIHwgL3Vz ci9ldGMvKiB8IC9zYmluLyogfCAvdXNyL2Fmc3dzL2Jpbi8qIHwgXAotKyAgPzpcXC9vczJcXC9p bnN0YWxsXFwvKiB8ID86XFwvT1MyXFwvSU5TVEFMTFxcLyogfCBcCi0rICAvdXNyL3VjYi8qICkg OzsKLSsgICopCi0rICAgICMgT1NGMSBhbmQgU0NPIE9EVCAzLjAgaGF2ZSB0aGVpciBvd24gbmFt ZXMgZm9yIGluc3RhbGwuCi0rICAgICMgRG9uJ3QgdXNlIGluc3RhbGxic2QgZnJvbSBPU0Ygc2lu Y2UgaXQgaW5zdGFsbHMgc3R1ZmYgYXMgcm9vdAotKyAgICAjIGJ5IGRlZmF1bHQuCi0rICAgIGZv ciBhY19wcm9nIGluIGdpbnN0YWxsIHNjb2luc3QgaW5zdGFsbDsgZG8KLSsgICAgICBmb3IgYWNf ZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsJaWYgeyB0ZXN0 IC1mICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGly LyRhY19wcm9nJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKwkgIGlmIHRlc3QgJGFjX3Byb2cgPSBp bnN0YWxsICYmCi0rCSAgICBncmVwIGRzcG1zZyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4 dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCSAgICAjIEFJWCBpbnN0YWxsLiAgSXQgaGFzIGFu IGluY29tcGF0aWJsZSBjYWxsaW5nIGNvbnZlbnRpb24uCi0rCSAgICA6Ci0rCSAgZWxpZiB0ZXN0 ICRhY19wcm9nID0gaW5zdGFsbCAmJgotKwkgICAgZ3JlcCBwd3BsdXMgIiRhc19kaXIvJGFjX3By b2ckYWNfZXhlY19leHQiID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkgICAgIyBwcm9ncmFtLXNw ZWNpZmljIGluc3RhbGwgc2NyaXB0IHVzZWQgYnkgSFAgcHdwbHVzLS1kb24ndCB1c2UuCi0rCSAg ICA6Ci0rCSAgZWxzZQotKwkgICAgcm0gLXJmIGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gY29u ZnRlc3QuZGlyCi0rCSAgICBlY2hvIG9uZSA+IGNvbmZ0ZXN0Lm9uZQotKwkgICAgZWNobyB0d28g PiBjb25mdGVzdC50d28KLSsJICAgIG1rZGlyIGNvbmZ0ZXN0LmRpcgotKwkgICAgaWYgIiRhc19k aXIvJGFjX3Byb2ckYWNfZXhlY19leHQiIC1jIGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gImBw d2RgL2NvbmZ0ZXN0LmRpciIgJiYKLSsJICAgICAgdGVzdCAtcyBjb25mdGVzdC5vbmUgJiYgdGVz dCAtcyBjb25mdGVzdC50d28gJiYKLSsJICAgICAgdGVzdCAtcyBjb25mdGVzdC5kaXIvY29uZnRl c3Qub25lICYmCi0rCSAgICAgIHRlc3QgLXMgY29uZnRlc3QuZGlyL2NvbmZ0ZXN0LnR3bwotKwkg ICAgdGhlbgotKwkgICAgICBhY19jdl9wYXRoX2luc3RhbGw9IiRhc19kaXIvJGFjX3Byb2ckYWNf ZXhlY19leHQgLWMiCi0rCSAgICAgIGJyZWFrIDMKLSsJICAgIGZpCi0rCSAgZmkKLSsJZmkKLSsg ICAgICBkb25lCi0rICAgIGRvbmUKLSsgICAgOzsKLStlc2FjCi0rCi0rZG9uZQotK0lGUz0kYXNf c2F2ZV9JRlMKLSsKLStybSAtcmYgY29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byBjb25mdGVzdC5k aXIKLSsKLStmaQotKyAgaWYgdGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7 IHRoZW4KLSsgICAgSU5TVEFMTD0kYWNfY3ZfcGF0aF9pbnN0YWxsCi0rICBlbHNlCi0rICAgICMg QXMgYSBsYXN0IHJlc29ydCwgdXNlIHRoZSBzbG93IHNoZWxsIHNjcmlwdC4gIERvbid0IGNhY2hl IGEKLSsgICAgIyB2YWx1ZSBmb3IgSU5TVEFMTCB3aXRoaW4gYSBzb3VyY2UgZGlyZWN0b3J5LCBi ZWNhdXNlIHRoYXQgd2lsbAotKyAgICAjIGJyZWFrIG90aGVyIHBhY2thZ2VzIHVzaW5nIHRoZSBj YWNoZSBpZiB0aGF0IGRpcmVjdG9yeSBpcwotKyAgICAjIHJlbW92ZWQsIG9yIGlmIHRoZSB2YWx1 ZSBpcyBhIHJlbGF0aXZlIG5hbWUuCi0rICAgIElOU1RBTEw9JGFjX2luc3RhbGxfc2gKLSsgIGZp Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkSU5TVEFMTCIgPiY1 Ci0rJGFzX2VjaG8gIiRJTlNUQUxMIiA+JjY7IH0KLSsKLSsjIFVzZSB0ZXN0IC16IGJlY2F1c2Ug U3VuT1M0IHNoIG1pc2hhbmRsZXMgYnJhY2VzIGluICR7dmFyLXZhbH0uCi0rIyBJdCB0aGlua3Mg dGhlIGZpcnN0IGNsb3NlIGJyYWNlIGVuZHMgdGhlIHZhcmlhYmxlIHN1YnN0aXR1dGlvbi4KLSt0 ZXN0IC16ICIkSU5TVEFMTF9QUk9HUkFNIiAmJiBJTlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0n Ci0rCi0rdGVzdCAteiAiJElOU1RBTExfU0NSSVBUIiAmJiBJTlNUQUxMX1NDUklQVD0nJHtJTlNU QUxMfScKLSsKLSt0ZXN0IC16ICIkSU5TVEFMTF9EQVRBIiAmJiBJTlNUQUxMX0RBVEE9JyR7SU5T VEFMTH0gLW0gNjQ0JwotKwotK2Nhc2UgYHB3ZGAgaW4KLSsgICpcICogfCAqXAkqKQotKyAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogTGlidG9vbCBkb2VzIG5vdCBjb3Bl IHdlbGwgd2l0aCB3aGl0ZXNwYWNlIGluIFxgcHdkXGAiID4mNQotKyRhc19lY2hvICIkYXNfbWU6 IFdBUk5JTkc6IExpYnRvb2wgZG9lcyBub3QgY29wZSB3ZWxsIHdpdGggd2hpdGVzcGFjZSBpbiBc YHB3ZFxgIiA+JjI7fSA7OwotK2VzYWMKLSsKLSsKLSsKLSttYWNyb192ZXJzaW9uPScyLjIuNmIn Ci0rbWFjcm9fcmV2aXNpb249JzEuMzAxNycKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLStsdG1haW49IiRhY19hdXhfZGlyL2x0bWFpbi5zaCIKLSsKLSthY19leHQ9Ywot K2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQ UEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRh Y19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotK2lmIHRlc3Qg LW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBv ZiAiJHthY190b29sX3ByZWZpeH1nY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWdjYzsgYWNfd29yZD0kMgotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7 YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0rICBhY19jdl9wcm9nX0ND PSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2Rv Ci0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgot KyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0r ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3By b2dfQ0M9IiR7YWNfdG9vbF9wcmVmaXh9Z2NjIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAy Ci0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStD Qz0kYWNfY3ZfcHJvZ19DQwotK2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1Ci0rJGFzX2VjaG8gIiRDQyIgPiY2OyB9 Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQot KyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19j dl9wcm9nX0NDIjsgdGhlbgotKyAgYWNfY3RfQ0M9JENDCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0 IHdvcmQgb2YgImdjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0r c2V0IGR1bW15IGdjYzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNf d29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DQytzZXR9IiA9 IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0 ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3Rf Q0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lG Uz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0r ICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAg Zm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBp ZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3gg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2df YWNfY3RfQ0M9ImdjYyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25l Ci0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfQ0M9JGFjX2N2 X3Byb2dfYWNfY3RfQ0MKLStpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQotKyRhc19lY2hvICIk YWNfY3RfQ0MiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0 ICJ4JGFjX2N0X0NDIiA9IHg7IHRoZW4KLSsgICAgQ0M9IiIKLSsgIGVsc2UKLSsgICAgY2FzZSAk Y3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3 aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcg Y3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rv b2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgQ0M9JGFjX2N0X0NDCi0rICBmaQotK2Vsc2UK LSsgIENDPSIkYWNfY3ZfcHJvZ19DQyIKLStmaQotKwotK2lmIHRlc3QgLXogIiRDQyI7IHRoZW4K LSsgICAgICAgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgICAjIEV4 dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9Y2MiLCBzbyBpdCBjYW4g YmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4 fWNjOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIg PiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCi0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRDQyI7IHRo ZW4KLSsgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl c3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3Ig YXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRh c19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19DQz0iJHthY190b29sX3ByZWZpeH1jYyIKLSsgICAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9J RlMKLSsKLStmaQotK2ZpCi0rQ0M9JGFjX2N2X3Byb2dfQ0MKLStpZiB0ZXN0IC1uICIkQ0MiOyB0 aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQotKyRh c19lY2hvICIkQ0MiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICBm aQotK2ZpCi0raWYgdGVzdCAteiAiJENDIjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3 b3JkIG9mICJjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0 IGR1bW15IGNjOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3Jk Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVu Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRD QyI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3QuCi0rZWxzZQotKyAgYWNfcHJvZ19yZWplY3RlZD1ubwotK2FzX3NhdmVfSUZTPSRJ RlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElG Uz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3Ig YWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsg dGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgaWYgdGVzdCAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgPSAiL3Vzci91Y2IvY2MiOyB0aGVuCi0rICAgICAgIGFj X3Byb2dfcmVqZWN0ZWQ9eWVzCi0rICAgICAgIGNvbnRpbnVlCi0rICAgICBmaQotKyAgICBhY19j dl9wcm9nX0NDPSJjYyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25l Ci0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStpZiB0ZXN0ICRhY19wcm9nX3JlamVjdGVk ID0geWVzOyB0aGVuCi0rICAjIFdlIGZvdW5kIGEgYm9nb24gaW4gdGhlIHBhdGgsIHNvIG1ha2Ug c3VyZSB3ZSBuZXZlciB1c2UgaXQuCi0rICBzZXQgZHVtbXkgJGFjX2N2X3Byb2dfQ0MKLSsgIHNo aWZ0Ci0rICBpZiB0ZXN0ICQjICE9IDA7IHRoZW4KLSsgICAgIyBXZSBjaG9zZSBhIGRpZmZlcmVu dCBjb21waWxlciBmcm9tIHRoZSBib2d1cyBvbmUuCi0rICAgICMgSG93ZXZlciwgaXQgaGFzIHRo ZSBzYW1lIGJhc2VuYW1lLCBzbyB0aGUgYm9nb24gd2lsbCBiZSBjaG9zZW4KLSsgICAgIyBmaXJz dCBpZiB3ZSBzZXQgQ0MgdG8ganVzdCB0aGUgYmFzZW5hbWU7IHVzZSB0aGUgZnVsbCBmaWxlIG5h bWUuCi0rICAgIHNoaWZ0Ci0rICAgIGFjX2N2X3Byb2dfQ0M9IiRhc19kaXIvJGFjX3dvcmQkezEr JyAnfSRAIgotKyAgZmkKLStmaQotK2ZpCi0rZmkKLStDQz0kYWNfY3ZfcHJvZ19DQwotK2lmIHRl c3QgLW4gIiRDQyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRDQyIgPiY1Ci0rJGFzX2VjaG8gIiRDQyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0r ZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRDQyI7IHRoZW4KLSsgIGlmIHRlc3QgLW4gIiRh Y190b29sX3ByZWZpeCI7IHRoZW4KLSsgIGZvciBhY19wcm9nIGluIGNsLmV4ZQotKyAgZG8KLSsg ICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIs IHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICRhY190 b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y ICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0g c2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRl c3QgLW4gIiRDQyI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIg b3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T RVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMK LSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4g JycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19DQz0iJGFjX3Rvb2xfcHJlZml4 JGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2Rv bmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK0NDPSRhY19jdl9wcm9nX0NDCi0r aWYgdGVzdCAtbiAiJENDIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJENDIiA+JjUKLSskYXNfZWNobyAiJENDIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7 IH0KLStmaQotKwotKwotKyAgICB0ZXN0IC1uICIkQ0MiICYmIGJyZWFrCi0rICBkb25lCi0rZmkK LStpZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCi0rICBhY19jdF9DQz0kQ0MKLSsgIGZvciBhY19wcm9n IGluIGNsLmV4ZQotK2RvCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9n Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJGFj X3Byb2c7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4g IiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAi JGFjX2N0X0NDIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iJGFjX2N0X0NDIiAjIExl dCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsg SUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRh c19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19l eGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0 IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X0ND PSIkYWNfcHJvZyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0r ZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfQ0M9JGFjX2N2X3By b2dfYWNfY3RfQ0MKLStpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQotKyRhc19lY2hvICIkYWNf Y3RfQ0MiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICB0ZXN0IC1u ICIkYWNfY3RfQ0MiICYmIGJyZWFrCi0rZG9uZQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9DQyIg PSB4OyB0aGVuCi0rICAgIENDPSIiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGlu ZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBs ZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5v dCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMg OzsKLStlc2FjCi0rICAgIENDPSRhY19jdF9DQwotKyAgZmkKLStmaQotKwotK2ZpCi0rCi0rCi0r dGVzdCAteiAiJENDIiAmJiB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW4g XGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2Qn OiIgPiYyO30KLSt7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0 YWJsZSBDIGNvbXBpbGVyIGZvdW5kIGluIFwkUEFUSAotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBt b3JlIGRldGFpbHMuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNjZXB0YWJs ZSBDIGNvbXBpbGVyIGZvdW5kIGluIFwkUEFUSAotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3Jl IGRldGFpbHMuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotKwotKyMg UHJvdmlkZSBzb21lIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21waWxlci4KLSskYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIHZlcnNpb24iID4mNQotK3Nl dCBYICRhY19jb21waWxlCi0rYWNfY29tcGlsZXI9JDIKLSt7IChhY190cnk9IiRhY19jb21waWxl ciAtLXZlcnNpb24gPiY1IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBp bGVyIC0tdmVyc2lvbiA+JjUiKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVz KTsgfQotK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC12ID4mNSIKLStjYXNlICIoKCRhY190cnki IGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQotKyAgKGV2YWwgIiRhY19jb21waWxlciAtdiA+JjUiKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8K LSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAo ZXhpdCAkYWNfc3RhdHVzKTsgfQotK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC1WID4mNSIKLStj YXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlciAtViA+JjUiKSAyPiY1Ci0r ICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotKwotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGls ZXIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBH TlUgQyBjb21waWxlci4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfY19jb21waWxlcl9n bnUrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICov Ci0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQK LSttYWluICgpCi0rewotKyNpZm5kZWYgX19HTlVDX18KLSsgICAgICAgY2hva2UgbWUKLSsjZW5k aWYKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4k YWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnki IGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0k PwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1m IGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsg fSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBj b25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRo ZW4KLSsgIGFjX2NvbXBpbGVyX2dudT15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBm YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg PiY1Ci0rCi0rCWFjX2NvbXBpbGVyX2dudT1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rYWNfY3ZfY19jb21w aWxlcl9nbnU9JGFjX2NvbXBpbGVyX2dudQotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGFjX2N2X2NfY29tcGlsZXJfZ251IiA+JjUKLSskYXNfZWNobyAiJGFj X2N2X2NfY29tcGlsZXJfZ251IiA+JjY7IH0KLStpZiB0ZXN0ICRhY19jb21waWxlcl9nbnUgPSB5 ZXM7IHRoZW4KLSsgIEdDQz15ZXMKLStlbHNlCi0rICBHQ0M9Ci0rZmkKLSthY190ZXN0X0NGTEFH Uz0ke0NGTEFHUytzZXR9Ci0rYWNfc2F2ZV9DRkxBR1M9JENGTEFHUwotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyICRDQyBhY2NlcHRzIC1nIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyB3aGV0aGVyICRDQyBhY2NlcHRzIC1nLi4uICIgPiY2OyB9Ci0raWYg dGVzdCAiJHthY19jdl9wcm9nX2NjX2crc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfc2F2ZV9jX3dlcnJvcl9mbGFnPSRhY19jX3dl cnJvcl9mbGFnCi0rICAgYWNfY193ZXJyb3JfZmxhZz15ZXMKLSsgICBhY19jdl9wcm9nX2NjX2c9 bm8KLSsgICBDRkxBR1M9Ii1nIgotKyAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRl ZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwot K30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIk YWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2Vz YWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi Ci0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikg Mj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193 ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0 ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGFjX2N2X3Byb2dfY2NfZz15ZXMK LStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCUNGTEFHUz0iIgotKyAgICAg IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19B Q0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFp biAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRh Y190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK LSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0 YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsg IHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpl eHQ7IHRoZW4KLSsgIDoKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFj X2Nfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY193ZXJyb3JfZmxhZwotKwkgQ0ZMQUdTPSItZyIKLSsJ IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19B Q0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFp biAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRh Y190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK LSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0 YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsg IHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpl eHQ7IHRoZW4KLSsgIGFjX2N2X3Byb2dfY2NfZz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1Ci0rCi0rCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2ZpCi0rCi0rcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0 Ci0rICAgYWNfY193ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jX3dlcnJvcl9mbGFnCi0rZmkKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jY19nIiA+JjUKLSsk YXNfZWNobyAiJGFjX2N2X3Byb2dfY2NfZyIgPiY2OyB9Ci0raWYgdGVzdCAiJGFjX3Rlc3RfQ0ZM QUdTIiA9IHNldDsgdGhlbgotKyAgQ0ZMQUdTPSRhY19zYXZlX0NGTEFHUwotK2VsaWYgdGVzdCAk YWNfY3ZfcHJvZ19jY19nID0geWVzOyB0aGVuCi0rICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhl bgotKyAgICBDRkxBR1M9Ii1nIC1PMiIKLSsgIGVsc2UKLSsgICAgQ0ZMQUdTPSItZyIKLSsgIGZp Ci0rZWxzZQotKyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICAgQ0ZMQUdTPSItTzIi Ci0rICBlbHNlCi0rICAgIENGTEFHUz0KLSsgIGZpCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yICRDQyBvcHRpb24gdG8gYWNjZXB0IElTTyBDODkiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkQ0Mgb3B0aW9uIHRvIGFjY2VwdCBJU08gQzg5Li4u ICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2NjX2M4OStzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jdl9wcm9nX2Nj X2M4OT1ubwotK2FjX3NhdmVfQ0M9JENDCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G Ci0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz dC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8c3RkYXJnLmg+Ci0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0r I2luY2x1ZGUgPHN5cy90eXBlcy5oPgotKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgotKy8qIE1vc3Qg b2YgdGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgc3RvbGVuIGZyb20gUkNTIDUuNydzIHNyYy9jb25m LnNoLiAgKi8KLStzdHJ1Y3QgYnVmIHsgaW50IHg7IH07Ci0rRklMRSAqICgqcmNzb3BlbikgKHN0 cnVjdCBidWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KTsKLStzdGF0aWMgY2hhciAqZSAocCwgaSkK LSsgICAgIGNoYXIgKipwOwotKyAgICAgaW50IGk7Ci0rewotKyAgcmV0dXJuIHBbaV07Ci0rfQot K3N0YXRpYyBjaGFyICpmIChjaGFyICogKCpnKSAoY2hhciAqKiwgaW50KSwgY2hhciAqKnAsIC4u LikKLSt7Ci0rICBjaGFyICpzOwotKyAgdmFfbGlzdCB2OwotKyAgdmFfc3RhcnQgKHYscCk7Ci0r ICBzID0gZyAocCwgdmFfYXJnICh2LGludCkpOwotKyAgdmFfZW5kICh2KTsKLSsgIHJldHVybiBz OwotK30KLSsKLSsvKiBPU0YgNC4wIENvbXBhcSBjYyBpcyBzb21lIHNvcnQgb2YgYWxtb3N0LUFO U0kgYnkgZGVmYXVsdC4gIEl0IGhhcwotKyAgIGZ1bmN0aW9uIHByb3RvdHlwZXMgYW5kIHN0dWZm LCBidXQgbm90ICdceEhIJyBoZXggY2hhcmFjdGVyIGNvbnN0YW50cy4KLSsgICBUaGVzZSBkb24n dCBwcm92b2tlIGFuIGVycm9yIHVuZm9ydHVuYXRlbHksIGluc3RlYWQgYXJlIHNpbGVudGx5IHRy ZWF0ZWQKLSsgICBhcyAneCcuICBUaGUgZm9sbG93aW5nIGluZHVjZXMgYW4gZXJyb3IsIHVudGls IC1zdGQgaXMgYWRkZWQgdG8gZ2V0Ci0rICAgcHJvcGVyIEFOU0kgbW9kZS4gIEN1cmlvdXNseSAn XHgwMCchPSd4JyBhbHdheXMgY29tZXMgb3V0IHRydWUsIGZvciBhbgotKyAgIGFycmF5IHNpemUg YXQgbGVhc3QuICBJdCdzIG5lY2Vzc2FyeSB0byB3cml0ZSAnXHgwMCc9PTAgdG8gZ2V0IHNvbWV0 aGluZwotKyAgIHRoYXQncyB0cnVlIG9ubHkgd2l0aCAtc3RkLiAgKi8KLStpbnQgb3NmNF9jY19h cnJheSBbJ1x4MDAnID09IDAgPyAxIDogLTFdOwotKwotKy8qIElCTSBDIDYgZm9yIEFJWCBpcyBh bG1vc3QtQU5TSSBieSBkZWZhdWx0LCBidXQgaXQgcmVwbGFjZXMgbWFjcm8gcGFyYW1ldGVycwot KyAgIGluc2lkZSBzdHJpbmdzIGFuZCBjaGFyYWN0ZXIgY29uc3RhbnRzLiAgKi8KLSsjZGVmaW5l IEZPTyh4KSAneCcKLStpbnQgeGxjNl9jY19hcnJheVtGT08oYSkgPT0gJ3gnID8gMSA6IC0xXTsK LSsKLStpbnQgdGVzdCAoaW50IGksIGRvdWJsZSB4KTsKLStzdHJ1Y3QgczEge2ludCAoKmYpIChp bnQgYSk7fTsKLStzdHJ1Y3QgczIge2ludCAoKmYpIChkb3VibGUgYSk7fTsKLStpbnQgcGFpcm5h bWVzIChpbnQsIGNoYXIgKiosIEZJTEUgKigqKShzdHJ1Y3QgYnVmICosIHN0cnVjdCBzdGF0ICos IGludCksIGludCwgaW50KTsKLStpbnQgYXJnYzsKLStjaGFyICoqYXJndjsKLStpbnQKLSttYWlu ICgpCi0rewotK3JldHVybiBmIChlLCBhcmd2LCAwKSAhPSBhcmd2WzBdICB8fCAgZiAoZSwgYXJn diwgMSkgIT0gYXJndlsxXTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStmb3Ig YWNfYXJnIGluICcnIC1xbGFuZ2x2bD1leHRjODkgLXFsYW5nbHZsPWFuc2kgLXN0ZCBcCi0rCS1B ZSAiLUFhIC1EX0hQVVhfU09VUkNFIiAiLVhjIC1EX19FWFRFTlNJT05TX18iCi0rZG8KLSsgIEND PSIkYWNfc2F2ZV9DQyAkYWNfYXJnIgotKyAgcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lm IHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIk YWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYg J14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEK LSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVz dCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0r ICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBhY19jdl9w cm9nX2NjX2M4OT0kYWNfYXJnCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwot KwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dAot KyAgdGVzdCAieCRhY19jdl9wcm9nX2NjX2M4OSIgIT0gInhubyIgJiYgYnJlYWsKLStkb25lCi0r cm0gLWYgY29uZnRlc3QuJGFjX2V4dAotK0NDPSRhY19zYXZlX0NDCi0rCi0rZmkKLSsjIEFDX0NB Q0hFX1ZBTAotK2Nhc2UgIngkYWNfY3ZfcHJvZ19jY19jODkiIGluCi0rICB4KQotKyAgICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBub25lIG5lZWRlZCIgPiY1Ci0rJGFzX2Vj aG8gIm5vbmUgbmVlZGVkIiA+JjY7IH0gOzsKLSsgIHhubykKLSsgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogdW5zdXBwb3J0ZWQiID4mNQotKyRhc19lY2hvICJ1bnN1cHBv cnRlZCIgPiY2OyB9IDs7Ci0rICAqKQotKyAgICBDQz0iJENDICRhY19jdl9wcm9nX2NjX2M4OSIK LSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3Byb2dfY2Nf Yzg5IiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X3Byb2dfY2NfYzg5IiA+JjY7IH0gOzsKLStlc2Fj Ci0rCi0rCi0rYWNfZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9 JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5r PSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21w aWxlcl9nbnUKLSsKLStkZXBjYz0iJENDIiAgIGFtX2NvbXBpbGVyX2xpc3Q9Ci0rCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNj IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYy4u LiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5 cGUrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKyAgaWYgdGVzdCAteiAiJEFNREVQX1RSVUUiICYmIHRlc3QgLWYgIiRhbV9kZXBjb21wIjsg dGhlbgotKyAgIyBXZSBtYWtlIGEgc3ViZGlyIGFuZCBkbyB0aGUgdGVzdHMgdGhlcmUuICBPdGhl cndpc2Ugd2UgY2FuIGVuZCB1cAotKyAgIyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3ZSBkb24n dCBrbm93IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBGb3IKLSsgICMgaW5zdGFuY2UgaXQgd2Fz IHJlcG9ydGVkIHRoYXQgb24gSFAtVVggdGhlIGdjYyB0ZXN0IHdpbGwgZW5kIHVwCi0rICAjIG1h a2luZyBhIGR1bW15IGZpbGUgbmFtZWQgYEQnIC0tIGJlY2F1c2UgYC1NRCcgbWVhbnMgYHB1dCB0 aGUgb3V0cHV0Ci0rICAjIGluIEQnLgotKyAgbWtkaXIgY29uZnRlc3QuZGlyCi0rICAjIENvcHkg ZGVwY29tcCB0byBzdWJkaXIgYmVjYXVzZSBvdGhlcndpc2Ugd2Ugd29uJ3QgZmluZCBpdCBpZiB3 ZSdyZQotKyAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KLSsgIGNwICIkYW1fZGVwY29t cCIgY29uZnRlc3QuZGlyCi0rICBjZCBjb25mdGVzdC5kaXIKLSsgICMgV2Ugd2lsbCBidWlsZCBv YmplY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVjYXVzZQotKyAgIyBp dCBoZWxwcyB0byBkZXRlY3QgaW5hcHBsaWNhYmxlIGRlcGVuZGVuY3kgbW9kZXMuICBGb3IgaW5z dGFuY2UKLSsgICMgYm90aCBUcnU2NCdzIGNjIGFuZCBJQ0Mgc3VwcG9ydCAtTUQgdG8gb3V0cHV0 IGRlcGVuZGVuY2llcyBhcyBhCi0rICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0aW9uLCBidXQg SUNDIHdpbGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4KLSsgICMgdGhlIGN1cnJlbnQgZGlyZWN0 b3J5IHdoaWxlIFRydTY0IHdpbGwgcHV0IHRoZW0gaW4gdGhlIG9iamVjdAotKyAgIyBkaXJlY3Rv cnkuCi0rICBta2RpciBzdWIKLSsKLSsgIGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90 eXBlPW5vbmUKLSsgIGlmIHRlc3QgIiRhbV9jb21waWxlcl9saXN0IiA9ICIiOyB0aGVuCi0rICAg ICBhbV9jb21waWxlcl9saXN0PWBzZWQgLW4gJ3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3An IDwgLi9kZXBjb21wYAotKyAgZmkKLSsgIGFtX191bml2ZXJzYWw9ZmFsc2UKLSsgIGNhc2UgIiAk ZGVwY2MgIiBpbiAjKAotKyAgICAgKlwgLWFyY2hcICpcIC1hcmNoXCAqKSBhbV9fdW5pdmVyc2Fs PXRydWUgOzsKLSsgICAgIGVzYWMKLSsKLSsgIGZvciBkZXBtb2RlIGluICRhbV9jb21waWxlcl9s aXN0OyBkbwotKyAgICAjIFNldHVwIGEgc291cmNlIHdpdGggbWFueSBkZXBlbmRlbmNpZXMsIGJl Y2F1c2Ugc29tZSBjb21waWxlcnMKLSsgICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVwZW5kZW5j eSBsaXN0cyBvbiBjb2x1bW4gODAgKHdpdGggXCksIGFuZAotKyAgICAjIHdlIHNob3VsZCBub3Qg Y2hvb3NlIGEgZGVwY29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCi0rICAgICMK LSsgICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3QsIGFz IHRoZSBjb21waWxlciBtYXkKLSsgICAgIyBvdmVyd3JpdGUgc29tZSBvZiB0aGVtIHdoZW4gdGVz dGluZyB3aXRoIG9ic2N1cmUgY29tbWFuZCBsaW5lcy4KLSsgICAgIyBUaGlzIGhhcHBlbnMgYXQg bGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29tcGlsZXIuCi0rICAgIDogPiBzdWIvY29uZnRlc3QuYwot KyAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNjsgZG8KLSsgICAgICBlY2hvICcjaW5jbHVkZSAiY29u ZnRzdCckaScuaCInID4+IHN1Yi9jb25mdGVzdC5jCi0rICAgICAgIyBVc2luZyBgOiA+IHN1Yi9j b25mdHN0JGkuaCcgY3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0MS5oIHdpdGgKLSsgICAgICAjIFNv bGFyaXMgOCdzIHsvdXNyLH0vYmluL3NoLgotKyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGkuaAot KyAgICBkb25lCi0rICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9jb25m dGVzdC5QbyR7YW1fX3F1b3RlfSIgPiBjb25mbWYKLSsKLSsgICAgIyBXZSBjaGVjayB3aXRoIGAt YycgYW5kIGAtbycgZm9yIHRoZSBzYWtlIG9mIHRoZSAiZGFzaG1zdGRvdXQiCi0rICAgICMgbW9k ZS4gIEl0IHR1cm5zIG91dCB0aGF0IHRoZSBTdW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHBy b3Blcmx5Ci0rICAgICMgaGFuZGxlIGAtTSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlz LiAgQWxzbywgc29tZSBJbnRlbAotKyAgICAjIHZlcnNpb25zIGhhZCB0cm91YmxlIHdpdGggb3V0 cHV0IGluIHN1YmRpcnMKLSsgICAgYW1fX29iaj1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30KLSsg ICAgYW1fX21pbnVzX29iaj0iLW8gJGFtX19vYmoiCi0rICAgIGNhc2UgJGRlcG1vZGUgaW4KLSsg ICAgZ2NjKQotKyAgICAgICMgVGhpcyBkZXBtb2RlIGNhdXNlcyBhIGNvbXBpbGVyIHJhY2UgaW4g dW5pdmVyc2FsIG1vZGUuCi0rICAgICAgdGVzdCAiJGFtX191bml2ZXJzYWwiID0gZmFsc2UgfHwg Y29udGludWUKLSsgICAgICA7OwotKyAgICBub3NpZGVlZmZlY3QpCi0rICAgICAgIyBhZnRlciB0 aGlzIHRhZywgbWVjaGFuaXNtcyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5J2xsCi0r ICAgICAgIyBvbmx5IGJlIHVzZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAotKyAgICAgIGlm IHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgotKwljb250 aW51ZQotKyAgICAgIGVsc2UKLSsJYnJlYWsKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIG1z dmlzdWFsY3BwIHwgbXN2Y21zeXMpCi0rICAgICAgIyBUaGlzIGNvbXBpbGVyIHdvbid0IGdyb2sg YC1jIC1vJywgYnV0IGFsc28sIHRoZSBtaW51c28gdGVzdCBoYXMKLSsgICAgICAjIG5vdCBydW4g eWV0LiAgVGhlc2UgZGVwbW9kZXMgYXJlIGxhdGUgZW5vdWdoIGluIHRoZSBnYW1lLCBhbmQKLSsg ICAgICAjIHNvIHdlYWsgdGhhdCB0aGVpciBmdW5jdGlvbmluZyBzaG91bGQgbm90IGJlIGltcGFj dGVkLgotKyAgICAgIGFtX19vYmo9Y29uZnRlc3QuJHtPQkpFWFQtb30KLSsgICAgICBhbV9fbWlu dXNfb2JqPQotKyAgICAgIDs7Ci0rICAgIG5vbmUpIGJyZWFrIDs7Ci0rICAgIGVzYWMKLSsgICAg aWYgZGVwbW9kZT0kZGVwbW9kZSBcCi0rICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmpl Y3Q9JGFtX19vYmogXAotKyAgICAgICBkZXBmaWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBkZXBmaWxl PXN1Yi9jb25mdGVzdC5UUG8gXAotKyAgICAgICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAtYyAk YW1fX21pbnVzX29iaiBzdWIvY29uZnRlc3QuYyBcCi0rICAgICAgICAgPi9kZXYvbnVsbCAyPmNv bmZ0ZXN0LmVyciAmJgotKyAgICAgICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5Q byA+IC9kZXYvbnVsbCAyPiYxICYmCi0rICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2Nv bmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgZ3JlcCAkYW1fX29iaiBzdWIv Y29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICAke01BS0UtbWFrZX0gLXMg LWYgY29uZm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgICAjIGljYyBkb2Vzbid0IGNo b2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCi0rICAg ICAgIyBvciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBm b3IgYW55IG1lc3NhZ2UKLSsgICAgICAjIHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQg b3Igbm90IHN1cHBvcnRlZC4KLSsgICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3 LjEgY29tcGxhaW4gdGh1c2x5OgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5n OiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKLSsgICAgICAjIFRo ZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgotKyAgICAgICMgICBpY2M6IENvbW1hbmQg bGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCi0rICAgICAgaWYgKGdyZXAg J2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8Ci0rICAgICAgICAgIGdyZXAgJ25vdCBz dXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSsg ICAgICAgIGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPSRkZXBtb2RlCi0rICAg ICAgICBicmVhawotKyAgICAgIGZpCi0rICAgIGZpCi0rICBkb25lCi0rCi0rICBjZCAuLgotKyAg cm0gLXJmIGNvbmZ0ZXN0LmRpcgotK2Vsc2UKLSsgIGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21w aWxlcl90eXBlPW5vbmUKLStmaQotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA+JjUKLSskYXNf ZWNobyAiJGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA+JjY7IH0KLStDQ0RF UE1PREU9ZGVwbW9kZT0kYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUKLSsKLSsg aWYKLSsgIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubyBcCi0rICAm JiB0ZXN0ICIkYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID0gZ2NjMzsgdGhl bgotKyAgYW1fX2Zhc3RkZXBDQ19UUlVFPQotKyAgYW1fX2Zhc3RkZXBDQ19GQUxTRT0nIycKLStl bHNlCi0rICBhbV9fZmFzdGRlcENDX1RSVUU9JyMnCi0rICBhbV9fZmFzdGRlcENDX0ZBTFNFPQot K2ZpCi0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBhIHNl ZCB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yIGEgc2VkIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0Li4uICIgPiY2OyB9Ci0r aWYgdGVzdCAiJHthY19jdl9wYXRoX1NFRCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAgICAgICAgICAgYWNfc2NyaXB0PXMvYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEvYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJi YmJiYmJiLwotKyAgICAgZm9yIGFjX2kgaW4gMSAyIDMgNCA1IDYgNzsgZG8KLSsgICAgICAgYWNf c2NyaXB0PSIkYWNfc2NyaXB0JGFzX25sJGFjX3NjcmlwdCIKLSsgICAgIGRvbmUKLSsgICAgIGVj aG8gIiRhY19zY3JpcHQiIDI+L2Rldi9udWxsIHwgc2VkIDk5cSA+Y29uZnRlc3Quc2VkCi0rICAg ICAkYXNfdW5zZXQgYWNfc2NyaXB0IHx8IGFjX3NjcmlwdD0KLSsgICAgIGlmIHRlc3QgLXogIiRT RUQiOyB0aGVuCi0rICBhY19wYXRoX1NFRF9mb3VuZD1mYWxzZQotKyAgIyBMb29wIHRocm91Z2gg dGhlIHVzZXIncyBwYXRoIGFuZCB0ZXN0IGZvciBlYWNoIG9mIFBST0dOQU1FLUxJU1QKLSsgIGFz X3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRI Ci0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rp cj0uCi0rICBmb3IgYWNfcHJvZyBpbiBzZWQgZ3NlZDsgZG8KLSsgICAgZm9yIGFjX2V4ZWNfZXh0 IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICAgICAgYWNfcGF0aF9TRUQ9 IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiCi0rICAgICAgeyB0ZXN0IC1mICIkYWNfcGF0 aF9TRUQiICYmICRhc190ZXN0X3ggIiRhY19wYXRoX1NFRCI7IH0gfHwgY29udGludWUKLSsjIENo ZWNrIGZvciBHTlUgYWNfcGF0aF9TRUQgYW5kIHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4KLSsg ICMgQ2hlY2sgZm9yIEdOVSAkYWNfcGF0aF9TRUQKLStjYXNlIGAiJGFjX3BhdGhfU0VEIiAtLXZl cnNpb24gMj4mMWAgaW4KLSsqR05VKikKLSsgIGFjX2N2X3BhdGhfU0VEPSIkYWNfcGF0aF9TRUQi IGFjX3BhdGhfU0VEX2ZvdW5kPTo7OwotKyopCi0rICBhY19jb3VudD0wCi0rICAkYXNfZWNob19u IDAxMjM0NTY3ODkgPiJjb25mdGVzdC5pbiIKLSsgIHdoaWxlIDoKLSsgIGRvCi0rICAgIGNhdCAi Y29uZnRlc3QuaW4iICJjb25mdGVzdC5pbiIgPiJjb25mdGVzdC50bXAiCi0rICAgIG12ICJjb25m dGVzdC50bXAiICJjb25mdGVzdC5pbiIKLSsgICAgY3AgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3Qu bmwiCi0rICAgICRhc19lY2hvICcnID4+ICJjb25mdGVzdC5ubCIKLSsgICAgIiRhY19wYXRoX1NF RCIgLWYgY29uZnRlc3Quc2VkIDwgImNvbmZ0ZXN0Lm5sIiA+ImNvbmZ0ZXN0Lm91dCIgMj4vZGV2 L251bGwgfHwgYnJlYWsKLSsgICAgZGlmZiAiY29uZnRlc3Qub3V0IiAiY29uZnRlc3QubmwiID4v ZGV2L251bGwgMj4mMSB8fCBicmVhawotKyAgICBhY19jb3VudD1gZXhwciAkYWNfY291bnQgKyAx YAotKyAgICBpZiB0ZXN0ICRhY19jb3VudCAtZ3QgJHthY19wYXRoX1NFRF9tYXgtMH07IHRoZW4K LSsgICAgICAjIEJlc3Qgb25lIHNvIGZhciwgc2F2ZSBpdCBidXQga2VlcCBsb29raW5nIGZvciBh IGJldHRlciBvbmUKLSsgICAgICBhY19jdl9wYXRoX1NFRD0iJGFjX3BhdGhfU0VEIgotKyAgICAg IGFjX3BhdGhfU0VEX21heD0kYWNfY291bnQKLSsgICAgZmkKLSsgICAgIyAxMCooMl4xMCkgY2hh cnMgYXMgaW5wdXQgc2VlbXMgbW9yZSB0aGFuIGVub3VnaAotKyAgICB0ZXN0ICRhY19jb3VudCAt Z3QgMTAgJiYgYnJlYWsKLSsgIGRvbmUKLSsgIHJtIC1mIGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0LnRt cCBjb25mdGVzdC5ubCBjb25mdGVzdC5vdXQ7OwotK2VzYWMKLSsKLSsgICAgICAkYWNfcGF0aF9T RURfZm91bmQgJiYgYnJlYWsgMwotKyAgICBkb25lCi0rICBkb25lCi0rZG9uZQotK0lGUz0kYXNf c2F2ZV9JRlMKLSsgIGlmIHRlc3QgLXogIiRhY19jdl9wYXRoX1NFRCI7IHRoZW4KLSsgICAgeyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5vIGFjY2VwdGFibGUgc2VkIGNvdWxk IGJlIGZvdW5kIGluIFwkUEFUSCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IG5vIGFj Y2VwdGFibGUgc2VkIGNvdWxkIGJlIGZvdW5kIGluIFwkUEFUSCIgPiYyO30KLSsgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH0KLSsgIGZpCi0rZWxzZQotKyAgYWNfY3ZfcGF0aF9TRUQ9JFNFRAot K2ZpCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zf cGF0aF9TRUQiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfcGF0aF9TRUQiID4mNjsgfQotKyBTRUQ9 IiRhY19jdl9wYXRoX1NFRCIKLSsgIHJtIC1mIGNvbmZ0ZXN0LnNlZAotKwotK3Rlc3QgLXogIiRT RUQiICYmIFNFRD1zZWQKLStYc2VkPSIkU0VEIC1lIDFzL15YLy8iCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciBncmVwIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzIGFuZCAtZSIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxvbmcgbGluZXMgYW5kIC1lLi4uICIgPiY2 OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wYXRoX0dSRVArc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAteiAiJEdSRVAiOyB0 aGVuCi0rICBhY19wYXRoX0dSRVBfZm91bmQ9ZmFsc2UKLSsgICMgTG9vcCB0aHJvdWdoIHRoZSB1 c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNUCi0rICBhc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRI X1NFUEFSQVRPUi91c3IveHBnNC9iaW4KLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19wcm9nIGluIGdyZXAgZ2dyZXA7 IGRvCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25z OyBkbwotKyAgICAgIGFjX3BhdGhfR1JFUD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIK LSsgICAgICB7IHRlc3QgLWYgIiRhY19wYXRoX0dSRVAiICYmICRhc190ZXN0X3ggIiRhY19wYXRo X0dSRVAiOyB9IHx8IGNvbnRpbnVlCi0rIyBDaGVjayBmb3IgR05VIGFjX3BhdGhfR1JFUCBhbmQg c2VsZWN0IGl0IGlmIGl0IGlzIGZvdW5kLgotKyAgIyBDaGVjayBmb3IgR05VICRhY19wYXRoX0dS RVAKLStjYXNlIGAiJGFjX3BhdGhfR1JFUCIgLS12ZXJzaW9uIDI+JjFgIGluCi0rKkdOVSopCi0r ICBhY19jdl9wYXRoX0dSRVA9IiRhY19wYXRoX0dSRVAiIGFjX3BhdGhfR1JFUF9mb3VuZD06OzsK LSsqKQotKyAgYWNfY291bnQ9MAotKyAgJGFzX2VjaG9fbiAwMTIzNDU2Nzg5ID4iY29uZnRlc3Qu aW4iCi0rICB3aGlsZSA6Ci0rICBkbwotKyAgICBjYXQgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3Qu aW4iID4iY29uZnRlc3QudG1wIgotKyAgICBtdiAiY29uZnRlc3QudG1wIiAiY29uZnRlc3QuaW4i Ci0rICAgIGNwICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0Lm5sIgotKyAgICAkYXNfZWNobyAnR1JF UCcgPj4gImNvbmZ0ZXN0Lm5sIgotKyAgICAiJGFjX3BhdGhfR1JFUCIgLWUgJ0dSRVAkJyAtZSAn LShjYW5ub3QgbWF0Y2gpLScgPCAiY29uZnRlc3QubmwiID4iY29uZnRlc3Qub3V0IiAyPi9kZXYv bnVsbCB8fCBicmVhawotKyAgICBkaWZmICJjb25mdGVzdC5vdXQiICJjb25mdGVzdC5ubCIgPi9k ZXYvbnVsbCAyPiYxIHx8IGJyZWFrCi0rICAgIGFjX2NvdW50PWBleHByICRhY19jb3VudCArIDFg Ci0rICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhfR1JFUF9tYXgtMH07IHRoZW4K LSsgICAgICAjIEJlc3Qgb25lIHNvIGZhciwgc2F2ZSBpdCBidXQga2VlcCBsb29raW5nIGZvciBh IGJldHRlciBvbmUKLSsgICAgICBhY19jdl9wYXRoX0dSRVA9IiRhY19wYXRoX0dSRVAiCi0rICAg ICAgYWNfcGF0aF9HUkVQX21heD0kYWNfY291bnQKLSsgICAgZmkKLSsgICAgIyAxMCooMl4xMCkg Y2hhcnMgYXMgaW5wdXQgc2VlbXMgbW9yZSB0aGFuIGVub3VnaAotKyAgICB0ZXN0ICRhY19jb3Vu dCAtZ3QgMTAgJiYgYnJlYWsKLSsgIGRvbmUKLSsgIHJtIC1mIGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0 LnRtcCBjb25mdGVzdC5ubCBjb25mdGVzdC5vdXQ7OwotK2VzYWMKLSsKLSsgICAgICAkYWNfcGF0 aF9HUkVQX2ZvdW5kICYmIGJyZWFrIDMKLSsgICAgZG9uZQotKyAgZG9uZQotK2RvbmUKLStJRlM9 JGFzX3NhdmVfSUZTCi0rICBpZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9HUkVQIjsgdGhlbgotKyAg ICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBncmVw IGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IG5vIGFjY2VwdGFibGUgZ3JlcCBjb3VsZCBiZSBm b3VuZCBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4iID4mMjt9Ci0rICAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICBmaQotK2Vsc2UKLSsgIGFjX2N2X3BhdGhfR1JFUD0k R1JFUAotK2ZpCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfY3ZfcGF0aF9HUkVQIiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X3BhdGhfR1JFUCIgPiY2OyB9 Ci0rIEdSRVA9IiRhY19jdl9wYXRoX0dSRVAiCi0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGZvciBlZ3JlcCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IGVncmVwLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wYXRoX0VHUkVQK3NldH0iID0g c2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIGVj aG8gYSB8ICRHUkVQIC1FICcoYXxiKScgPi9kZXYvbnVsbCAyPiYxCi0rICAgdGhlbiBhY19jdl9w YXRoX0VHUkVQPSIkR1JFUCAtRSIKLSsgICBlbHNlCi0rICAgICBpZiB0ZXN0IC16ICIkRUdSRVAi OyB0aGVuCi0rICBhY19wYXRoX0VHUkVQX2ZvdW5kPWZhbHNlCi0rICAjIExvb3AgdGhyb3VnaCB0 aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9yIGVhY2ggb2YgUFJPR05BTUUtTElTVAotKyAgYXNf c2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgk UEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluCi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfcHJvZyBpbiBlZ3JlcDsg ZG8KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7 IGRvCi0rICAgICAgYWNfcGF0aF9FR1JFUD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIK LSsgICAgICB7IHRlc3QgLWYgIiRhY19wYXRoX0VHUkVQIiAmJiAkYXNfdGVzdF94ICIkYWNfcGF0 aF9FR1JFUCI7IH0gfHwgY29udGludWUKLSsjIENoZWNrIGZvciBHTlUgYWNfcGF0aF9FR1JFUCBh bmQgc2VsZWN0IGl0IGlmIGl0IGlzIGZvdW5kLgotKyAgIyBDaGVjayBmb3IgR05VICRhY19wYXRo X0VHUkVQCi0rY2FzZSBgIiRhY19wYXRoX0VHUkVQIiAtLXZlcnNpb24gMj4mMWAgaW4KLSsqR05V KikKLSsgIGFjX2N2X3BhdGhfRUdSRVA9IiRhY19wYXRoX0VHUkVQIiBhY19wYXRoX0VHUkVQX2Zv dW5kPTo7OwotKyopCi0rICBhY19jb3VudD0wCi0rICAkYXNfZWNob19uIDAxMjM0NTY3ODkgPiJj b25mdGVzdC5pbiIKLSsgIHdoaWxlIDoKLSsgIGRvCi0rICAgIGNhdCAiY29uZnRlc3QuaW4iICJj b25mdGVzdC5pbiIgPiJjb25mdGVzdC50bXAiCi0rICAgIG12ICJjb25mdGVzdC50bXAiICJjb25m dGVzdC5pbiIKLSsgICAgY3AgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QubmwiCi0rICAgICRhc19l Y2hvICdFR1JFUCcgPj4gImNvbmZ0ZXN0Lm5sIgotKyAgICAiJGFjX3BhdGhfRUdSRVAiICdFR1JF UCQnIDwgImNvbmZ0ZXN0Lm5sIiA+ImNvbmZ0ZXN0Lm91dCIgMj4vZGV2L251bGwgfHwgYnJlYWsK LSsgICAgZGlmZiAiY29uZnRlc3Qub3V0IiAiY29uZnRlc3QubmwiID4vZGV2L251bGwgMj4mMSB8 fCBicmVhawotKyAgICBhY19jb3VudD1gZXhwciAkYWNfY291bnQgKyAxYAotKyAgICBpZiB0ZXN0 ICRhY19jb3VudCAtZ3QgJHthY19wYXRoX0VHUkVQX21heC0wfTsgdGhlbgotKyAgICAgICMgQmVz dCBvbmUgc28gZmFyLCBzYXZlIGl0IGJ1dCBrZWVwIGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQot KyAgICAgIGFjX2N2X3BhdGhfRUdSRVA9IiRhY19wYXRoX0VHUkVQIgotKyAgICAgIGFjX3BhdGhf RUdSRVBfbWF4PSRhY19jb3VudAotKyAgICBmaQotKyAgICAjIDEwKigyXjEwKSBjaGFycyBhcyBp bnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCi0rICAgIHRlc3QgJGFjX2NvdW50IC1ndCAxMCAm JiBicmVhawotKyAgZG9uZQotKyAgcm0gLWYgY29uZnRlc3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0 ZXN0Lm5sIGNvbmZ0ZXN0Lm91dDs7Ci0rZXNhYwotKwotKyAgICAgICRhY19wYXRoX0VHUkVQX2Zv dW5kICYmIGJyZWFrIDMKLSsgICAgZG9uZQotKyAgZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVf SUZTCi0rICBpZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9FR1JFUCI7IHRoZW4KLSsgICAgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5vIGFjY2VwdGFibGUgZWdyZXAgY291bGQg YmUgZm91bmQgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBlZ3JlcCBjb3VsZCBiZSBmb3VuZCBp biAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4iID4mMjt9Ci0rICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9Ci0rICBmaQotK2Vsc2UKLSsgIGFjX2N2X3BhdGhfRUdSRVA9JEVHUkVQ Ci0rZmkKLSsKLSsgICBmaQotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGFjX2N2X3BhdGhfRUdSRVAiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfcGF0aF9FR1JFUCIg PiY2OyB9Ci0rIEVHUkVQPSIkYWNfY3ZfcGF0aF9FR1JFUCIKLSsKLSsKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGZncmVwIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBmb3IgZmdyZXAuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3BhdGhfRkdSRVAr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQot KyAgaWYgZWNobyAnYWIqYycgfCAkR1JFUCAtRiAnYWIqYycgPi9kZXYvbnVsbCAyPiYxCi0rICAg dGhlbiBhY19jdl9wYXRoX0ZHUkVQPSIkR1JFUCAtRiIKLSsgICBlbHNlCi0rICAgICBpZiB0ZXN0 IC16ICIkRkdSRVAiOyB0aGVuCi0rICBhY19wYXRoX0ZHUkVQX2ZvdW5kPWZhbHNlCi0rICAjIExv b3AgdGhyb3VnaCB0aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9yIGVhY2ggb2YgUFJPR05BTUUt TElTVAotKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19k aXIgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluCi0rZG8KLSsgIElGUz0kYXNf c2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfcHJv ZyBpbiBmZ3JlcDsgZG8KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxl X2V4dGVuc2lvbnM7IGRvCi0rICAgICAgYWNfcGF0aF9GR1JFUD0iJGFzX2Rpci8kYWNfcHJvZyRh Y19leGVjX2V4dCIKLSsgICAgICB7IHRlc3QgLWYgIiRhY19wYXRoX0ZHUkVQIiAmJiAkYXNfdGVz dF94ICIkYWNfcGF0aF9GR1JFUCI7IH0gfHwgY29udGludWUKLSsjIENoZWNrIGZvciBHTlUgYWNf cGF0aF9GR1JFUCBhbmQgc2VsZWN0IGl0IGlmIGl0IGlzIGZvdW5kLgotKyAgIyBDaGVjayBmb3Ig R05VICRhY19wYXRoX0ZHUkVQCi0rY2FzZSBgIiRhY19wYXRoX0ZHUkVQIiAtLXZlcnNpb24gMj4m MWAgaW4KLSsqR05VKikKLSsgIGFjX2N2X3BhdGhfRkdSRVA9IiRhY19wYXRoX0ZHUkVQIiBhY19w YXRoX0ZHUkVQX2ZvdW5kPTo7OwotKyopCi0rICBhY19jb3VudD0wCi0rICAkYXNfZWNob19uIDAx MjM0NTY3ODkgPiJjb25mdGVzdC5pbiIKLSsgIHdoaWxlIDoKLSsgIGRvCi0rICAgIGNhdCAiY29u ZnRlc3QuaW4iICJjb25mdGVzdC5pbiIgPiJjb25mdGVzdC50bXAiCi0rICAgIG12ICJjb25mdGVz dC50bXAiICJjb25mdGVzdC5pbiIKLSsgICAgY3AgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3Qubmwi Ci0rICAgICRhc19lY2hvICdGR1JFUCcgPj4gImNvbmZ0ZXN0Lm5sIgotKyAgICAiJGFjX3BhdGhf RkdSRVAiIEZHUkVQIDwgImNvbmZ0ZXN0Lm5sIiA+ImNvbmZ0ZXN0Lm91dCIgMj4vZGV2L251bGwg fHwgYnJlYWsKLSsgICAgZGlmZiAiY29uZnRlc3Qub3V0IiAiY29uZnRlc3QubmwiID4vZGV2L251 bGwgMj4mMSB8fCBicmVhawotKyAgICBhY19jb3VudD1gZXhwciAkYWNfY291bnQgKyAxYAotKyAg ICBpZiB0ZXN0ICRhY19jb3VudCAtZ3QgJHthY19wYXRoX0ZHUkVQX21heC0wfTsgdGhlbgotKyAg ICAgICMgQmVzdCBvbmUgc28gZmFyLCBzYXZlIGl0IGJ1dCBrZWVwIGxvb2tpbmcgZm9yIGEgYmV0 dGVyIG9uZQotKyAgICAgIGFjX2N2X3BhdGhfRkdSRVA9IiRhY19wYXRoX0ZHUkVQIgotKyAgICAg IGFjX3BhdGhfRkdSRVBfbWF4PSRhY19jb3VudAotKyAgICBmaQotKyAgICAjIDEwKigyXjEwKSBj aGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCi0rICAgIHRlc3QgJGFjX2NvdW50 IC1ndCAxMCAmJiBicmVhawotKyAgZG9uZQotKyAgcm0gLWYgY29uZnRlc3QuaW4gY29uZnRlc3Qu dG1wIGNvbmZ0ZXN0Lm5sIGNvbmZ0ZXN0Lm91dDs7Ci0rZXNhYwotKwotKyAgICAgICRhY19wYXRo X0ZHUkVQX2ZvdW5kICYmIGJyZWFrIDMKLSsgICAgZG9uZQotKyAgZG9uZQotK2RvbmUKLStJRlM9 JGFzX3NhdmVfSUZTCi0rICBpZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9GR1JFUCI7IHRoZW4KLSsg ICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5vIGFjY2VwdGFibGUgZmdy ZXAgY291bGQgYmUgZm91bmQgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBmZ3JlcCBjb3VsZCBi ZSBmb3VuZCBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4iID4mMjt9Ci0rICAg eyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICBmaQotK2Vsc2UKLSsgIGFjX2N2X3BhdGhfRkdS RVA9JEZHUkVQCi0rZmkKLSsKLSsgICBmaQotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGFjX2N2X3BhdGhfRkdSRVAiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfcGF0 aF9GR1JFUCIgPiY2OyB9Ci0rIEZHUkVQPSIkYWNfY3ZfcGF0aF9GR1JFUCIKLSsKLSsKLSt0ZXN0 IC16ICIkR1JFUCIgJiYgR1JFUD1ncmVwCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1nbnUtbGQg d2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9nbnVfbGQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsg IHdpdGh2YWw9JHdpdGhfZ251X2xkOyB0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRoX2dudV9s ZD15ZXMKLStlbHNlCi0rICB3aXRoX2dudV9sZD1ubwotK2ZpCi0rCi0rYWNfcHJvZz1sZAotK2lm IHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAjIENoZWNrIGlmIGdjYyAtcHJpbnQtcHJvZy1u YW1lPWxkIGdpdmVzIGEgcGF0aC4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgbGQgdXNlZCBieSAkQ0MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBs ZCB1c2VkIGJ5ICRDQy4uLiAiID4mNjsgfQotKyAgY2FzZSAkaG9zdCBpbgotKyAgKi0qLW1pbmd3 KikKLSsgICAgIyBnY2MgbGVhdmVzIGEgdHJhaWxpbmcgY2FycmlhZ2UgcmV0dXJuIHdoaWNoIHVw c2V0cyBtaW5ndwotKyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjUg fCB0ciAtZCAnXDAxNSdgIDs7Ci0rICAqKQotKyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9n LW5hbWU9bGQpIDI+JjVgIDs7Ci0rICBlc2FjCi0rICBjYXNlICRhY19wcm9nIGluCi0rICAgICMg QWNjZXB0IGFic29sdXRlIHBhdGhzLgotKyAgICBbXFwvXSogfCA/OltcXC9dKikKLSsgICAgICBy ZV9kaXJlbHQ9Jy9bXi9dW14vXSovXC5cLi8nCi0rICAgICAgIyBDYW5vbmljYWxpemUgdGhlIHBh dGhuYW1lIG9mIGxkCi0rICAgICAgYWNfcHJvZz1gJEVDSE8gIiRhY19wcm9nInwgJFNFRCAncyVc XFxcJS8lZydgCi0rICAgICAgd2hpbGUgJEVDSE8gIiRhY19wcm9nIiB8ICRHUkVQICIkcmVfZGly ZWx0IiA+IC9kZXYvbnVsbCAyPiYxOyBkbwotKwlhY19wcm9nPWAkRUNITyAkYWNfcHJvZ3wgJFNF RCAicyUkcmVfZGlyZWx0JS8lImAKLSsgICAgICBkb25lCi0rICAgICAgdGVzdCAteiAiJExEIiAm JiBMRD0iJGFjX3Byb2ciCi0rICAgICAgOzsKLSsgICIiKQotKyAgICAjIElmIGl0IGZhaWxzLCB0 aGVuIHByZXRlbmQgd2UgYXJlbid0IHVzaW5nIEdDQy4KLSsgICAgYWNfcHJvZz1sZAotKyAgICA7 OwotKyAgKikKLSsgICAgIyBJZiBpdCBpcyByZWxhdGl2ZSwgdGhlbiBzZWFyY2ggZm9yIHRoZSBm aXJzdCBsZCBpbiBQQVRILgotKyAgICB3aXRoX2dudV9sZD11bmtub3duCi0rICAgIDs7Ci0rICBl c2FjCi0rZWxpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEdOVSBsZCIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIEdOVSBsZC4uLiAiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3Igbm9uLUdOVSBsZCIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQuLi4gIiA+JjY7IH0KLStmaQotK2lmIHRlc3QgIiR7bHRf Y3ZfcGF0aF9MRCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rICBpZiB0ZXN0IC16ICIkTEQiOyB0aGVuCi0rICBsdF9zYXZlX2lmcz0iJElG UyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKLSsgIGZvciBhY19kaXIgaW4gJFBBVEg7IGRvCi0rICAg IElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9Lgot KyAgICBpZiB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nIiB8fCB0ZXN0IC1mICIkYWNfZGlyLyRh Y19wcm9nJGFjX2V4ZWV4dCI7IHRoZW4KLSsgICAgICBsdF9jdl9wYXRoX0xEPSIkYWNfZGlyLyRh Y19wcm9nIgotKyAgICAgICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9ncmFtIGlzIEdOVSBsZC4g IEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiwKLSsgICAgICAjIGJ1dCBhcHBhcmVudGx5IHNvbWUg dmFyaWFudHMgb2YgR05VIGxkIG9ubHkgYWNjZXB0IC12LgotKyAgICAgICMgQnJlYWsgb25seSBp ZiBpdCB3YXMgdGhlIEdOVS9ub24tR05VIGxkIHRoYXQgd2UgcHJlZmVyLgotKyAgICAgIGNhc2Ug YCIkbHRfY3ZfcGF0aF9MRCIgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgotKyAgICAgICpHTlUqIHwg Kid3aXRoIEJGRCcqKQotKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IG5vICYmIGJyZWFrCi0rCTs7 Ci0rICAgICAgKikKLSsJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSB5ZXMgJiYgYnJlYWsKLSsJOzsK LSsgICAgICBlc2FjCi0rICAgIGZpCi0rICBkb25lCi0rICBJRlM9IiRsdF9zYXZlX2lmcyIKLStl bHNlCi0rICBsdF9jdl9wYXRoX0xEPSIkTEQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0IHdpdGggYSBwYXRoLgotK2ZpCi0rZmkKLSsKLStMRD0iJGx0X2N2X3BhdGhfTEQiCi0raWYg dGVzdCAtbiAiJExEIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJExEIiA+JjUKLSskYXNfZWNobyAiJExEIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0K LStmaQotK3Rlc3QgLXogIiRMRCIgJiYgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJy b3I6IG5vIGFjY2VwdGFibGUgbGQgZm91bmQgaW4gXCRQQVRIIiA+JjUKLSskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEgiID4mMjt9Ci0rICAg eyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGlmIHRoZSBsaW5rZXIgKCRMRCkgaXMgR05VIGxkIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZC4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7bHRfY3ZfcHJvZ19nbnVfbGQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgIyBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24gaGVy ZSwgYnV0IGFwcGFyZW50bHkgc29tZSBHTlUgbGRzIG9ubHkgYWNjZXB0IC12LgotK2Nhc2UgYCRM RCAtdiAyPiYxIDwvZGV2L251bGxgIGluCi0rKkdOVSogfCAqJ3dpdGggQkZEJyopCi0rICBsdF9j dl9wcm9nX2dudV9sZD15ZXMKLSsgIDs7Ci0rKikKLSsgIGx0X2N2X3Byb2dfZ251X2xkPW5vCi0r ICA7OwotK2VzYWMKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRs dF9jdl9wcm9nX2dudV9sZCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2dudV9sZCIgPiY2 OyB9Ci0rd2l0aF9nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBCU0QtIG9y IE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlciAobm0pLi4uICIgPiY2OyB9 Ci0raWYgdGVzdCAiJHtsdF9jdl9wYXRoX05NK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiROTSI7IHRoZW4KLSsg ICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotKyAgbHRfY3ZfcGF0aF9OTT0iJE5N IgotK2Vsc2UKLSsgIGx0X25tX3RvX2NoZWNrPSIke2FjX3Rvb2xfcHJlZml4fW5tIgotKyAgaWYg dGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IiAmJiB0ZXN0ICIkYnVpbGQiID0gIiRob3N0IjsgdGhl bgotKyAgICBsdF9ubV90b19jaGVjaz0iJGx0X25tX3RvX2NoZWNrIG5tIgotKyAgZmkKLSsgIGZv ciBsdF90bXBfbm0gaW4gJGx0X25tX3RvX2NoZWNrOyBkbwotKyAgICBsdF9zYXZlX2lmcz0iJElG UyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKLSsgICAgZm9yIGFjX2RpciBpbiAkUEFUSCAvdXNyL2Nj cy9iaW4vZWxmIC91c3IvY2NzL2JpbiAvdXNyL3VjYiAvYmluOyBkbwotKyAgICAgIElGUz0iJGx0 X3NhdmVfaWZzIgotKyAgICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgICAg dG1wX25tPSIkYWNfZGlyLyRsdF90bXBfbm0iCi0rICAgICAgaWYgdGVzdCAtZiAiJHRtcF9ubSIg fHwgdGVzdCAtZiAiJHRtcF9ubSRhY19leGVleHQiIDsgdGhlbgotKwkjIENoZWNrIHRvIHNlZSBp ZiB0aGUgbm0gYWNjZXB0cyBhIEJTRC1jb21wYXQgZmxhZy4KLSsJIyBBZGRpbmcgdGhlIGBzZWQg MXEnIHByZXZlbnRzIGZhbHNlIHBvc2l0aXZlcyBvbiBIUC1VWCwgd2hpY2ggc2F5czoKLSsJIyAg IG5tOiB1bmtub3duIG9wdGlvbiAiQiIgaWdub3JlZAotKwkjIFRydTY0J3Mgbm0gY29tcGxhaW5z IHRoYXQgL2Rldi9udWxsIGlzIGFuIGludmFsaWQgb2JqZWN0IGZpbGUKLSsJY2FzZSBgIiR0bXBf bm0iIC1CIC9kZXYvbnVsbCAyPiYxIHwgc2VkICcxcSdgIGluCi0rCSovZGV2L251bGwqIHwgKidJ bnZhbGlkIGZpbGUgb3Igb2JqZWN0IHR5cGUnKikKLSsJICBsdF9jdl9wYXRoX05NPSIkdG1wX25t IC1CIgotKwkgIGJyZWFrCi0rCSAgOzsKLSsJKikKLSsJICBjYXNlIGAiJHRtcF9ubSIgLXAgL2Rl di9udWxsIDI+JjEgfCBzZWQgJzFxJ2AgaW4KLSsJICAqL2Rldi9udWxsKikKLSsJICAgIGx0X2N2 X3BhdGhfTk09IiR0bXBfbm0gLXAiCi0rCSAgICBicmVhawotKwkgICAgOzsKLSsJICAqKQotKwkg ICAgbHRfY3ZfcGF0aF9OTT0ke2x0X2N2X3BhdGhfTk09IiR0bXBfbm0ifSAjIGtlZXAgdGhlIGZp cnN0IG1hdGNoLCBidXQKLSsJICAgIGNvbnRpbnVlICMgc28gdGhhdCB3ZSBjYW4gdHJ5IHRvIGZp bmQgb25lIHRoYXQgc3VwcG9ydHMgQlNEIGZsYWdzCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJICA7 OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgZG9uZQotKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIK LSsgIGRvbmUKLSsgIDogJHtsdF9jdl9wYXRoX05NPW5vfQotK2ZpCi0rZmkKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcGF0aF9OTSIgPiY1Ci0rJGFzX2VjaG8g IiRsdF9jdl9wYXRoX05NIiA+JjY7IH0KLStpZiB0ZXN0ICIkbHRfY3ZfcGF0aF9OTSIgIT0gIm5v IjsgdGhlbgotKyAgTk09IiRsdF9jdl9wYXRoX05NIgotK2Vsc2UKLSsgICMgRGlkbid0IGZpbmQg YW55IEJTRCBjb21wYXRpYmxlIG5hbWUgbGlzdGVyLCBsb29rIGZvciBkdW1wYmluLgotKyAgaWYg dGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgZm9yIGFjX3Byb2cgaW4gImR1bXBi aW4gLXN5bWJvbHMiICJsaW5rIC1kdW1wIC1zeW1ib2xzIgotKyAgZG8KLSsgICAgIyBFeHRyYWN0 IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRh Y19wcm9nOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4u ICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX0RVTVBCSU4rc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAi JERVTVBCSU4iOyB0aGVuCi0rICBhY19jdl9wcm9nX0RVTVBCSU49IiREVU1QQklOIiAjIExldCB0 aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19z YXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0RVTVBCSU49IiRh Y190b29sX3ByZWZpeCRhY19wcm9nIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZv dW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBm aQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStEVU1QQklO PSRhY19jdl9wcm9nX0RVTVBCSU4KLStpZiB0ZXN0IC1uICIkRFVNUEJJTiI7IHRoZW4KLSsgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICREVU1QQklOIiA+JjUKLSskYXNfZWNo byAiJERVTVBCSU4iID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICAg IHRlc3QgLW4gIiREVU1QQklOIiAmJiBicmVhawotKyAgZG9uZQotK2ZpCi0raWYgdGVzdCAteiAi JERVTVBCSU4iOyB0aGVuCi0rICBhY19jdF9EVU1QQklOPSREVU1QQklOCi0rICBmb3IgYWNfcHJv ZyBpbiAiZHVtcGJpbiAtc3ltYm9scyIgImxpbmsgLWR1bXAgLXN5bWJvbHMiCi0rZG8KLSsgICMg RXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9n cmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7 YWNfY3ZfcHJvZ19hY19jdF9EVU1QQklOK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9EVU1QQklOIjsg dGhlbgotKyAgYWNfY3ZfcHJvZ19hY19jdF9EVU1QQklOPSIkYWNfY3RfRFVNUEJJTiIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNf c2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhl Y19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAt ZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9EVU1Q QklOPSIkYWNfcHJvZyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25l Ci0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfRFVNUEJJTj0k YWNfY3ZfcHJvZ19hY19jdF9EVU1QQklOCi0raWYgdGVzdCAtbiAiJGFjX2N0X0RVTVBCSU4iOyB0 aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfRFVNUEJJ TiIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9EVU1QQklOIiA+JjY7IH0KLStlbHNlCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+ JjY7IH0KLStmaQotKwotKwotKyAgdGVzdCAtbiAiJGFjX2N0X0RVTVBCSU4iICYmIGJyZWFrCi0r ZG9uZQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9EVU1QQklOIiA9IHg7IHRoZW4KLSsgICAgRFVN UEJJTj0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dh cm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVz aW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdp dGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsg ICAgRFVNUEJJTj0kYWNfY3RfRFVNUEJJTgotKyAgZmkKLStmaQotKwotKwotKyAgaWYgdGVzdCAi JERVTVBCSU4iICE9ICI6IjsgdGhlbgotKyAgICBOTT0iJERVTVBCSU4iCi0rICBmaQotK2ZpCi0r dGVzdCAteiAiJE5NIiAmJiBOTT1ubQotKwotKwotKwotKwotKwotKwotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyB0aGUgbmFtZSBsaXN0ZXIgKCROTSkgaW50ZXJmYWNlIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyB0aGUgbmFtZSBsaXN0ZXIgKCROTSkgaW50ZXJmYWNl Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9ubV9pbnRlcmZhY2Urc2V0fSIgPSBzZXQ7 IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3Zfbm1f aW50ZXJmYWNlPSJCU0Qgbm0iCi0rICBlY2hvICJpbnQgc29tZV92YXJpYWJsZSA9IDA7IiA+IGNv bmZ0ZXN0LiRhY19leHQKLSsgIChldmFsIGVjaG8gIlwiXCRhc19tZTo1NjMyOiAkYWNfY29tcGls ZVwiIiA+JjUpCi0rICAoZXZhbCAiJGFjX2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQotKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKLSsgIChldmFsIGVjaG8gIlwiXCRhc19tZTo1NjM1OiAkTk0gXFxc ImNvbmZ0ZXN0LiRhY19vYmpleHRcXFwiXCIiID4mNSkKLSsgIChldmFsICIkTk0gXCJjb25mdGVz dC4kYWNfb2JqZXh0XCIiIDI+Y29uZnRlc3QuZXJyID4gY29uZnRlc3Qub3V0KQotKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKLSsgIChldmFsIGVjaG8gIlwiXCRhc19tZTo1NjM4OiBvdXRwdXRcIiIg PiY1KQotKyAgY2F0IGNvbmZ0ZXN0Lm91dCA+JjUKLSsgIGlmICRHUkVQICdFeHRlcm5hbC4qc29t ZV92YXJpYWJsZScgY29uZnRlc3Qub3V0ID4gL2Rldi9udWxsOyB0aGVuCi0rICAgIGx0X2N2X25t X2ludGVyZmFjZT0iTVMgZHVtcGJpbiIKLSsgIGZpCi0rICBybSAtZiBjb25mdGVzdCoKLStmaQot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9ubV9pbnRlcmZhY2Ui ID4mNQotKyRhc19lY2hvICIkbHRfY3Zfbm1faW50ZXJmYWNlIiA+JjY7IH0KLSsKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3JrcyIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3Jrcy4uLiAiID4mNjsgfQotK0xO X1M9JGFzX2xuX3MKLStpZiB0ZXN0ICIkTE5fUyIgPSAibG4gLXMiOyB0aGVuCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4m NjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vLCB1 c2luZyAkTE5fUyIgPiY1Ci0rJGFzX2VjaG8gIm5vLCB1c2luZyAkTE5fUyIgPiY2OyB9Ci0rZmkK LSsKLSsjIGZpbmQgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMK LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgdGhlIG1heGltdW0gbGVuZ3Ro IG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHRo ZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzLi4uICIgPiY2OyB9Ci0r aWYgdGVzdCAiJHtsdF9jdl9zeXNfbWF4X2NtZF9sZW4rc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgICBpPTAKLSsgIHRlc3RzdHJpbmc9 IkFCQ0QiCi0rCi0rICBjYXNlICRidWlsZF9vcyBpbgotKyAgbXNkb3NkamdwcCopCi0rICAgICMg T24gREpHUFAsIHRoaXMgdGVzdCBjYW4gYmxvdyB1cCBwcmV0dHkgYmFkbHkgZHVlIHRvIHByb2Js ZW1zIGluIGxpYmMKLSsgICAgIyAoYW55IHNpbmdsZSBhcmd1bWVudCBleGNlZWRpbmcgMjAwMCBi eXRlcyBjYXVzZXMgYSBidWZmZXIgb3ZlcnJ1bgotKyAgICAjIGR1cmluZyBnbG9iIGV4cGFuc2lv bikuICBFdmVuIGlmIGl0IHdlcmUgZml4ZWQsIHRoZSByZXN1bHQgb2YgdGhpcwotKyAgICAjIGNo ZWNrIHdvdWxkIGJlIGxhcmdlciB0aGFuIGl0IHNob3VsZCBiZS4KLSsgICAgbHRfY3Zfc3lzX21h eF9jbWRfbGVuPTEyMjg4OyAgICAjIDEySyBpcyBhYm91dCByaWdodAotKyAgICA7OwotKwotKyAg Z251KikKLSsgICAgIyBVbmRlciBHTlUgSHVyZCwgdGhpcyB0ZXN0IGlzIG5vdCByZXF1aXJlZCBi ZWNhdXNlIHRoZXJlIGlzCi0rICAgICMgbm8gbGltaXQgdG8gdGhlIGxlbmd0aCBvZiBjb21tYW5k IGxpbmUgYXJndW1lbnRzLgotKyAgICAjIExpYnRvb2wgd2lsbCBpbnRlcnByZXQgLTEgYXMgbm8g bGltaXQgd2hhdHNvZXZlcgotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49LTE7Ci0rICAgIDs7 Ci0rCi0rICBjeWd3aW4qIHwgbWluZ3cqIHwgY2VnY2MqKQotKyAgICAjIE9uIFdpbjl4L01FLCB0 aGlzIHRlc3QgYmxvd3MgdXAgLS0gaXQgc3VjY2VlZHMsIGJ1dCB0YWtlcwotKyAgICAjIGFib3V0 IDUgbWludXRlcyBhcyB0aGUgdGVzdHN0cmluZyBncm93cyBleHBvbmVudGlhbGx5LgotKyAgICAj IFdvcnNlLCBzaW5jZSA5eC9NRSBhcmUgbm90IHByZS1lbXB0aXZlbHkgbXVsdGl0YXNraW5nLAot KyAgICAjIHlvdSBlbmQgdXAgd2l0aCBhICJmcm96ZW4iIGNvbXB1dGVyLCBldmVuIHRob3VnaCB3 aXRoIHBhdGllbmNlCi0rICAgICMgdGhlIHRlc3QgZXZlbnR1YWxseSBzdWNjZWVkcyAod2l0aCBh IG1heCBsaW5lIGxlbmd0aCBvZiAyNTZrKS4KLSsgICAgIyBJbnN0ZWFkLCBsZXQncyBqdXN0IHB1 bnQ6IHVzZSB0aGUgbWluaW11bSBsaW5lbGVuZ3RoIHJlcG9ydGVkIGJ5Ci0rICAgICMgYWxsIG9m IHRoZSBzdXBwb3J0ZWQgcGxhdGZvcm1zOiA4MTkyIChvbiBOVC8ySy9YUCkuCi0rICAgIGx0X2N2 X3N5c19tYXhfY21kX2xlbj04MTkyOwotKyAgICA7OwotKwotKyAgYW1pZ2FvcyopCi0rICAgICMg T24gQW1pZ2FPUyB3aXRoIHBka3NoLCB0aGlzIHRlc3QgdGFrZXMgaG91cnMsIGxpdGVyYWxseS4K LSsgICAgIyBTbyB3ZSBqdXN0IHB1bnQgYW5kIHVzZSBhIG1pbmltdW0gbGluZSBsZW5ndGggb2Yg ODE5Mi4KLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTI7Ci0rICAgIDs7Ci0rCi0rICBu ZXRic2QqIHwgZnJlZWJzZCogfCBvcGVuYnNkKiB8IGRhcndpbiogfCBkcmFnb25mbHkqKQotKyAg ICAjIFRoaXMgaGFzIGJlZW4gYXJvdW5kIHNpbmNlIDM4NkJTRCwgYXQgbGVhc3QuICBMaWtlbHkg ZnVydGhlci4KLSsgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjdGw7IHRoZW4KLSsgICAgICBsdF9j dl9zeXNfbWF4X2NtZF9sZW49YC9zYmluL3N5c2N0bCAtbiBrZXJuLmFyZ21heGAKLSsgICAgZWxp ZiB0ZXN0IC14IC91c3Ivc2Jpbi9zeXNjdGw7IHRoZW4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2Nt ZF9sZW49YC91c3Ivc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhgCi0rICAgIGVsc2UKLSsgICAg ICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49NjU1MzYJIyB1c2FibGUgZGVmYXVsdCBmb3IgYWxsIEJT RHMKLSsgICAgZmkKLSsgICAgIyBBbmQgYWRkIGEgc2FmZXR5IHpvbmUKLSsgICAgbHRfY3Zfc3lz X21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAKLSsgICAgbHRf Y3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXCogM2AKLSsg ICAgOzsKLSsKLSsgIGludGVyaXgqKQotKyAgICAjIFdlIGtub3cgdGhlIHZhbHVlIDI2MjE0NCBh bmQgaGFyZGNvZGUgaXQgd2l0aCBhIHNhZmV0eSB6b25lIChsaWtlIEJTRCkKLSsgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPTE5NjYwOAotKyAgICA7OwotKwotKyAgb3NmKikKLSsgICAgIyBEci4g SGFucyBFa2tlaGFyZCBQbGVzc2VyIHJlcG9ydHMgc2VlaW5nIGEga2VybmVsIHBhbmljIHJ1bm5p bmcgY29uZmlndXJlCi0rICAgICMgZHVlIHRvIHRoaXMgdGVzdCB3aGVuIGV4ZWNfZGlzYWJsZV9h cmdfbGltaXQgaXMgMSBvbiBUcnU2NC4gSXQgaXMgbm90Ci0rICAgICMgbmljZSB0byBjYXVzZSBr ZXJuZWwgcGFuaWNzIHNvIGxldHMgYXZvaWQgdGhlIGxvb3AgYmVsb3cuCi0rICAgICMgRmlyc3Qg c2V0IGEgcmVhc29uYWJsZSBkZWZhdWx0LgotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTYz ODQKLSsgICAgIwotKyAgICBpZiB0ZXN0IC14IC9zYmluL3N5c2NvbmZpZzsgdGhlbgotKyAgICAg IGNhc2UgYC9zYmluL3N5c2NvbmZpZyAtcSBwcm9jIGV4ZWNfZGlzYWJsZV9hcmdfbGltaXRgIGlu Ci0rICAgICAgICAqMSopIGx0X2N2X3N5c19tYXhfY21kX2xlbj0tMSA7OwotKyAgICAgIGVzYWMK LSsgICAgZmkKLSsgICAgOzsKLSsgIHNjbzMuMnY1KikKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRf bGVuPTEwMjQwMAotKyAgICA7OwotKyAgc3lzdjUqIHwgc2NvNXY2KiB8IHN5c3Y0LjJ1dzIqKQot KyAgICBrYXJnbWF4PWBncmVwIEFSR19NQVggL2V0Yy9jb25mL2NmLmQvc3R1bmUgMj4vZGV2L251 bGxgCi0rICAgIGlmIHRlc3QgLW4gIiRrYXJnbWF4IjsgdGhlbgotKyAgICAgIGx0X2N2X3N5c19t YXhfY21kX2xlbj1gZWNobyAka2FyZ21heCB8IHNlZCAncy8uKlsJIF0vLydgCi0rICAgIGVsc2UK LSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MzI3NjgKLSsgICAgZmkKLSsgICAgOzsKLSsg ICopCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gKGdldGNvbmYgQVJHX01BWCkgMj4gL2Rl di9udWxsYAotKyAgICBpZiB0ZXN0IC1uICIkbHRfY3Zfc3lzX21heF9jbWRfbGVuIjsgdGhlbgot KyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVu IFwvIDRgCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4 X2NtZF9sZW4gXCogM2AKLSsgICAgZWxzZQotKyAgICAgICMgTWFrZSB0ZXN0c3RyaW5nIGEgbGl0 dGxlIGJpZ2dlciBiZWZvcmUgd2UgZG8gYW55dGhpbmcgd2l0aCBpdC4KLSsgICAgICAjIGEgMUsg c3RyaW5nIHNob3VsZCBiZSBhIHJlYXNvbmFibGUgc3RhcnQuCi0rICAgICAgZm9yIGkgaW4gMSAy IDMgNCA1IDYgNyA4IDsgZG8KLSsgICAgICAgIHRlc3RzdHJpbmc9JHRlc3RzdHJpbmckdGVzdHN0 cmluZwotKyAgICAgIGRvbmUKLSsgICAgICBTSEVMTD0ke1NIRUxMLSR7Q09ORklHX1NIRUxMLS9i aW4vc2h9fQotKyAgICAgICMgSWYgdGVzdCBpcyBub3QgYSBzaGVsbCBidWlsdC1pbiwgd2UnbGwg cHJvYmFibHkgZW5kIHVwIGNvbXB1dGluZyBhCi0rICAgICAgIyBtYXhpbXVtIGxlbmd0aCB0aGF0 IGlzIG9ubHkgaGFsZiBvZiB0aGUgYWN0dWFsIG1heGltdW0gbGVuZ3RoLCBidXQKLSsgICAgICAj IHdlIGNhbid0IHRlbGwuCi0rICAgICAgd2hpbGUgeyB0ZXN0ICJYImAkU0hFTEwgJDAgLS1mYWxs YmFjay1lY2hvICJYJHRlc3RzdHJpbmckdGVzdHN0cmluZyIgMj4vZGV2L251bGxgIFwKLSsJICAg ICAgICAgPSAiWFgkdGVzdHN0cmluZyR0ZXN0c3RyaW5nIjsgfSA+L2Rldi9udWxsIDI+JjEgJiYK LSsJICAgICAgdGVzdCAkaSAhPSAxNyAjIDEvMiBNQiBzaG91bGQgYmUgZW5vdWdoCi0rICAgICAg ZG8KLSsgICAgICAgIGk9YGV4cHIgJGkgKyAxYAotKyAgICAgICAgdGVzdHN0cmluZz0kdGVzdHN0 cmluZyR0ZXN0c3RyaW5nCi0rICAgICAgZG9uZQotKyAgICAgICMgT25seSBjaGVjayB0aGUgc3Ry aW5nIGxlbmd0aCBvdXRzaWRlIHRoZSBsb29wLgotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xl bj1gZXhwciAiWCR0ZXN0c3RyaW5nIiA6ICIuKiIgMj4mMWAKLSsgICAgICB0ZXN0c3RyaW5nPQot KyAgICAgICMgQWRkIGEgc2lnbmlmaWNhbnQgc2FmZXR5IGZhY3RvciBiZWNhdXNlIEMrKyBjb21w aWxlcnMgY2FuIHRhY2sgb24KLSsgICAgICAjIG1hc3NpdmUgYW1vdW50cyBvZiBhZGRpdGlvbmFs IGFyZ3VtZW50cyBiZWZvcmUgcGFzc2luZyB0aGVtIHRvIHRoZQotKyAgICAgICMgbGlua2VyLiAg SXQgYXBwZWFycyBhcyB0aG91Z2ggMS8yIGlzIGEgdXNhYmxlIHZhbHVlLgotKyAgICAgIGx0X2N2 X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDJgCi0rICAg IGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0rZmkKLSsKLStpZiB0ZXN0IC1uICRsdF9jdl9zeXNf bWF4X2NtZF9sZW4gOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3N5c19tYXhf Y21kX2xlbiIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogbm9uZSIgPiY1Ci0rJGFzX2VjaG8gIm5vbmUiID4mNjsgfQotK2ZpCi0rbWF4X2NtZF9s ZW49JGx0X2N2X3N5c19tYXhfY21kX2xlbgotKwotKwotKwotKwotKwotKwotKzogJHtDUD0iY3Ag LWYifQotKzogJHtNVj0ibXYgLWYifQotKzogJHtSTT0icm0gLWYifQotKwotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyBz b21lIFhTSSBjb25zdHJ1Y3RzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRo ZSBzaGVsbCB1bmRlcnN0YW5kcyBzb21lIFhTSSBjb25zdHJ1Y3RzLi4uICIgPiY2OyB9Ci0rIyBU cnkgc29tZSBYU0kgZmVhdHVyZXMKLSt4c2lfc2hlbGw9bm8KLSsoIF9sdF9kdW1teT0iYS9iL2Mi Ci0rICB0ZXN0ICIke19sdF9kdW1teSMjKi99LCR7X2x0X2R1bW15JS8qfSwiJHtfbHRfZHVtbXkl IiRfbHRfZHVtbXkifSwgXAotKyAgICAgID0gYyxhL2IsLCBcCi0rICAgICYmIGV2YWwgJ3Rlc3Qg JCgoIDEgKyAxICkpIC1lcSAyIFwKLSsgICAgJiYgdGVzdCAiJHsjX2x0X2R1bW15fSIgLWVxIDUn ICkgPi9kZXYvbnVsbCAyPiYxIFwKLSsgICYmIHhzaV9zaGVsbD15ZXMKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkeHNpX3NoZWxsIiA+JjUKLSskYXNfZWNobyAiJHhzaV9z aGVsbCIgPiY2OyB9Ci0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIFwiKz1cIiIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgXCIrPVwiLi4uICIgPiY2OyB9 Ci0rbHRfc2hlbGxfYXBwZW5kPW5vCi0rKCBmb289YmFyOyBzZXQgZm9vIGJhejsgZXZhbCAiJDEr PVwkMiIgJiYgdGVzdCAiJGZvbyIgPSBiYXJiYXogKSBcCi0rICAgID4vZGV2L251bGwgMj4mMSBc Ci0rICAmJiBsdF9zaGVsbF9hcHBlbmQ9eWVzCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGx0X3NoZWxsX2FwcGVuZCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9zaGVsbF9hcHBl bmQiID4mNjsgfQotKwotKwotK2lmICggKE1BSUw9NjA7IHVuc2V0IE1BSUwpIHx8IGV4aXQpID4v ZGV2L251bGwgMj4mMTsgdGhlbgotKyAgbHRfdW5zZXQ9dW5zZXQKLStlbHNlCi0rICBsdF91bnNl dD1mYWxzZQotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rIyB0ZXN0IEVCQ0RJQyBvciBBU0NJSQotK2Nh c2UgYGVjaG8gWHx0ciBYICdcMTAxJ2AgaW4KLSsgQSkgIyBBU0NJSSBiYXNlZCBzeXN0ZW0KLSsg ICAgIyBcbiBpcyBub3QgaW50ZXJwcmV0ZWQgY29ycmVjdGx5IGJ5IFNvbGFyaXMgOCAvdXNyL3Vj Yi90cgotKyAgbHRfU1AyTkw9J3RyIFwwNDAgXDAxMicKLSsgIGx0X05MMlNQPSd0ciBcMDE1XDAx MiBcMDQwXDA0MCcKLSsgIDs7Ci0rICopICMgRUJDRElDIGJhc2VkIHN5c3RlbQotKyAgbHRfU1Ay Tkw9J3RyIFwxMDAgXG4nCi0rICBsdF9OTDJTUD0ndHIgXHJcbiBcMTAwXDEwMCcKLSsgIDs7Ci0r ZXNhYwotKwotKwotKwotKwotKwotKwotKwotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgJExEIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJExEIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZp bGVzLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9sZF9yZWxvYWRfZmxhZytzZXR9IiA9 IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9j dl9sZF9yZWxvYWRfZmxhZz0nLXInCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkbHRfY3ZfbGRfcmVsb2FkX2ZsYWciID4mNQotKyRhc19lY2hvICIkbHRfY3ZfbGRf cmVsb2FkX2ZsYWciID4mNjsgfQotK3JlbG9hZF9mbGFnPSRsdF9jdl9sZF9yZWxvYWRfZmxhZwot K2Nhc2UgJHJlbG9hZF9mbGFnIGluCi0rIiIgfCAiICIqKSA7OwotKyopIHJlbG9hZF9mbGFnPSIg JHJlbG9hZF9mbGFnIiA7OwotK2VzYWMKLStyZWxvYWRfY21kcz0nJExEJHJlbG9hZF9mbGFnIC1v ICRvdXRwdXQkcmVsb2FkX29ianMnCi0rY2FzZSAkaG9zdF9vcyBpbgotKyAgZGFyd2luKikKLSsg ICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICAgICByZWxvYWRfY21kcz0nJExUQ0Mg JExUQ0ZMQUdTIC1ub3N0ZGxpYiAke3dsfS1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rICAg IGVsc2UKLSsgICAgICByZWxvYWRfY21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVs b2FkX29ianMnCi0rICAgIGZpCi0rICAgIDs7Ci0rZXNhYwotKwotKwotKwotKwotKwotKwotKwot KwotKwotK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0 aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1vYmpkdW1wIiwgc28gaXQgY2FuIGJl IGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1v YmpkdW1wOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4u ICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX09CSkRVTVArc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAi JE9CSkRVTVAiOyB0aGVuCi0rICBhY19jdl9wcm9nX09CSkRVTVA9IiRPQkpEVU1QIiAjIExldCB0 aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19z YXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX09CSkRVTVA9IiR7 YWNfdG9vbF9wcmVmaXh9b2JqZHVtcCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAg ZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rT0JKRFVN UD0kYWNfY3ZfcHJvZ19PQkpEVU1QCi0raWYgdGVzdCAtbiAiJE9CSkRVTVAiOyB0aGVuCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkT0JKRFVNUCIgPiY1Ci0rJGFzX2Vj aG8gIiRPQkpEVU1QIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2Zp Ci0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfT0JKRFVNUCI7IHRoZW4KLSsgIGFjX2N0X09CSkRV TVA9JE9CSkRVTVAKLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAib2JqZHVtcCIsIHNv IGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IG9iamR1bXA7 IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRh Y193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7 IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfT0JKRFVNUCtzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIk YWNfY3RfT0JKRFVNUCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfT0JKRFVNUD0iJGFjX2N0 X09CSkRVTVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAot K2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRv Ci0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190 ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2 X3Byb2dfYWNfY3RfT0JKRFVNUD0ib2JqZHVtcCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsg MgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0r YWNfY3RfT0JKRFVNUD0kYWNfY3ZfcHJvZ19hY19jdF9PQkpEVU1QCi0raWYgdGVzdCAtbiAiJGFj X2N0X09CSkRVTVAiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYWNfY3RfT0JKRFVNUCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9PQkpEVU1QIiA+JjY7IH0K LStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0r JGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9PQkpEVU1Q IiA9IHg7IHRoZW4KLSsgICAgT0JKRFVNUD0iZmFsc2UiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNy b3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0 aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNy b3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29s X3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIE9CSkRVTVA9JGFjX2N0X09CSkRVTVAKLSsgIGZp Ci0rZWxzZQotKyAgT0JKRFVNUD0iJGFjX2N2X3Byb2dfT0JKRFVNUCIKLStmaQotKwotK3Rlc3Qg LXogIiRPQkpEVU1QIiAmJiBPQkpEVU1QPW9iamR1bXAKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIHJlY29nbml6 ZSBkZXBlbmRlbnQgbGlicmFyaWVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8g cmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckTUFHSUNf Q01EJwotK2x0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPQotK2x0X2N2X2RlcGxpYnNfY2hlY2tf bWV0aG9kPSd1bmtub3duJwotKyMgTmVlZCB0byBzZXQgdGhlIHByZWNlZGluZyB2YXJpYWJsZSBv biBhbGwgcGxhdGZvcm1zIHRoYXQgc3VwcG9ydAotKyMgaW50ZXJsaWJyYXJ5IGRlcGVuZGVuY2ll cy4KLSsjICdub25lJyAtLSBkZXBlbmRlbmNpZXMgbm90IHN1cHBvcnRlZC4KLSsjIGB1bmtub3du JyAtLSBzYW1lIGFzIG5vbmUsIGJ1dCBkb2N1bWVudHMgdGhhdCB3ZSByZWFsbHkgZG9uJ3Qga25v dy4KLSsjICdwYXNzX2FsbCcgLS0gYWxsIGRlcGVuZGVuY2llcyBwYXNzZWQgd2l0aCBubyBjaGVj a3MuCi0rIyAndGVzdF9jb21waWxlJyAtLSBjaGVjayBieSBtYWtpbmcgdGVzdCBwcm9ncmFtLgot KyMgJ2ZpbGVfbWFnaWMgW1tyZWdleF1dJyAtLSBjaGVjayBieSBsb29raW5nIGZvciBmaWxlcyBp biBsaWJyYXJ5IHBhdGgKLSsjIHdoaWNoIHJlc3BvbmRzIHRvIHRoZSAkZmlsZV9tYWdpY19jbWQg d2l0aCBhIGdpdmVuIGV4dGVuZGVkIHJlZ2V4LgotKyMgSWYgeW91IGhhdmUgYGZpbGUnIG9yIGVx dWl2YWxlbnQgb24geW91ciBzeXN0ZW0gYW5kIHlvdSdyZSBub3Qgc3VyZQotKyMgd2hldGhlciBg cGFzc19hbGwnIHdpbGwgKmFsd2F5cyogd29yaywgeW91IHByb2JhYmx5IHdhbnQgdGhpcyBvbmUu Ci0rCi0rY2FzZSAkaG9zdF9vcyBpbgotK2FpeFs0LTldKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK2Jlb3MqKQotKyAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rYnNkaVs0NV0qKQotKyAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTUxdU0Ig KHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIpJwotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9Jy91 c3IvYmluL2ZpbGUgLUwnCi0rICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vc2hsaWIvbGli Yy5zbwotKyAgOzsKLSsKLStjeWd3aW4qKQotKyAgIyBmdW5jX3dpbjMyX2xpYmlkIGlzIGEgc2hl bGwgZnVuY3Rpb24gZGVmaW5lZCBpbiBsdG1haW4uc2gKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tf bWV0aG9kPSdmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBvcnR8Xng4NiBETEwnCi0rICBsdF9j dl9maWxlX21hZ2ljX2NtZD0nZnVuY193aW4zMl9saWJpZCcKLSsgIDs7Ci0rCi0rbWluZ3cqIHwg cHczMiopCi0rICAjIEJhc2UgTVNZUy9NaW5HVyBkbyBub3QgcHJvdmlkZSB0aGUgJ2ZpbGUnIGNv bW1hbmQgbmVlZGVkIGJ5Ci0rICAjIGZ1bmNfd2luMzJfbGliaWQgc2hlbGwgZnVuY3Rpb24sIHNv IHVzZSBhIHdlYWtlciB0ZXN0IGJhc2VkIG9uICdvYmpkdW1wJywKLSsgICMgdW5sZXNzIHdlIGZp bmQgJ2ZpbGUnLCBmb3IgZXhhbXBsZSBiZWNhdXNlIHdlIGFyZSBjcm9zcy1jb21waWxpbmcuCi0r ICBpZiAoIGZpbGUgLyApID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgICBsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBeeDg2IGFyY2hpdmUgaW1wb3J0fF54ODYgRExMJwot KyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nZnVuY193aW4zMl9saWJpZCcKLSsgIGVsc2UKLSsg ICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgcGVp Ki1pMzg2KC4qYXJjaGl0ZWN0dXJlOiBpMzg2KT8nCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21k PSckT0JKRFVNUCAtZicKLSsgIGZpCi0rICA7OwotKwotK2NlZ2NjKQotKyAgIyB1c2UgdGhlIHdl YWtlciB0ZXN0IGJhc2VkIG9uICdvYmpkdW1wJy4gU2VlIG1pbmd3Ki4KLSsgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0IHBlLWFybS0uKmxpdHRsZSgu KmFyY2hpdGVjdHVyZTogYXJtKT8nCi0rICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE9CSkRVTVAg LWYnCi0rICA7OwotKwotK2RhcndpbiogfCByaGFwc29keSopCi0rICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0r ICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPiAvZGV2L251bGw7 IHRoZW4KLSsgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgaSo4NiApCi0rICAgICAgIyBOb3Qg c3VyZSB3aGV0aGVyIHRoZSBwcmVzZW5jZSBvZiBPcGVuQlNEIGhlcmUgd2FzIGEgbWlzdGFrZS4K LSsgICAgICAjIExldCdzIGFjY2VwdCBib3RoIG9mIHRoZW0gdW50aWwgdGhpcyBpcyBjbGVhcmVk IHVwLgotKyAgICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChGcmVl QlNEfE9wZW5CU0R8RHJhZ29uRmx5KS9pWzMtOV04NiAoY29tcGFjdCApP2RlbWFuZCBwYWdlZCBz aGFyZWQgbGlicmFyeScKLSsgICAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxl Ci0rICAgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9YGVjaG8gL3Vzci9saWIvbGliYy5z by4qYAotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9cGFzc19hbGwKLSsgIGZpCi0rICA7OwotKwotK2dudSopCi0rICBsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStocHV4MTAuMjAqIHwgaHB1 eDExKikKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKLSsgIGNhc2UgJGhv c3RfY3B1IGluCi0rICBpYTY0KikKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2Zp bGVfbWFnaWMgKHNbMC05XVswLTldWzAtOV18RUxGLVswLTldWzAtOV0pIHNoYXJlZCBvYmplY3Qg ZmlsZSAtIElBNjQnCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2hw dXgzMi9saWJjLnNvCi0rICAgIDs7Ci0rICBocHBhKjY0KikKLSsgICAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbMC05XVswLTldWzAtOV18RUxGLVswLTldWzAtOV0p IHNoYXJlZCBvYmplY3QgZmlsZSAtIFBBLVJJU0MgWzAtOV0uWzAtOV0nCi0rICAgIGx0X2N2X2Zp bGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL3BhMjBfNjQvbGliYy5zbAotKyAgICA7OwotKyAg KikKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbMC05XVsw LTldWzAtOV18UEEtUklTQ1swLTldLlswLTldKSBzaGFyZWQgbGlicmFyeScKLSsgICAgbHRfY3Zf ZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGliYy5zbAotKyAgICA7OwotKyAgZXNhYwot KyAgOzsKLSsKLStpbnRlcml4WzMtOV0qKQotKyAgIyBQSUMgY29kZSBpcyBicm9rZW4gb24gSW50 ZXJpeCAzLngsIHRoYXQncyB3aHkgfFwuYSBub3QgfF9waWNcLmEgaGVyZQotKyAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYlteL10rKFwuc298XC5hKSQnCi0r ICA7OwotKwotK2lyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rICBjYXNlICRMRCBpbgot KyAgKi0zMnwqIi0zMiAiKSBsaWJtYWdpYz0zMi1iaXQ7OwotKyAgKi1uMzJ8KiItbjMyICIpIGxp Ym1hZ2ljPU4zMjs7Ci0rICAqLTY0fCoiLTY0ICIpIGxpYm1hZ2ljPTY0LWJpdDs7Ci0rICAqKSBs aWJtYWdpYz1uZXZlci1tYXRjaDs7Ci0rICBlc2FjCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLSsjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCi0rbGlu dXgqIHwgaypic2QqLWdudSkKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxs Ci0rICA7OwotKwotK25ldGJzZCopCi0rICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRH UkVQIF9fRUxGX18gPiAvZGV2L251bGw7IHRoZW4KLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYlteL10rKFwuc29cLlswLTldK1wuWzAtOV0rfF9waWNc LmEpJCcKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3Bh dHRlcm4gL2xpYlteL10rKFwuc298X3BpY1wuYSkkJwotKyAgZmkKLSsgIDs7Ci0rCi0rbmV3b3M2 KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbMC05XVsw LTldKi1iaXQgW01MXVNCIChleGVjdXRhYmxlfGR5bmFtaWMgbGliKScKLSsgIGx0X2N2X2ZpbGVf bWFnaWNfY21kPS91c3IvYmluL2ZpbGUKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91 c3IvbGliL2xpYm5scy5zbwotKyAgOzsKLSsKLSsqbnRvKiB8ICpxbngqKQotKyAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rb3BlbmJzZCopCi0rICBpZiB0 ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVz dCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCi0rICAg IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbXi9dKyhcLnNv XC5bMC05XStcLlswLTldK3xcLnNvfF9waWNcLmEpJCcKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYlteL10rKFwuc29cLlswLTldK1wu WzAtOV0rfF9waWNcLmEpJCcKLSsgIGZpCi0rICA7OwotKwotK29zZjMqIHwgb3NmNCogfCBvc2Y1 KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK3Jk b3MqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0r c29sYXJpcyopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsK LSsKLStzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgq IHwgc3lzdjQqdXcyKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0r ICA7OwotKwotK3N5c3Y0IHwgc3lzdjQuMyopCi0rICBjYXNlICRob3N0X3ZlbmRvciBpbgotKyAg bW90b3JvbGEpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVM RiBbMC05XVswLTldKi1iaXQgW01MXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliKSBNWzAt OV1bMC05XSogVmVyc2lvbiBbMC05XScKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9 YGVjaG8gL3Vzci9saWIvbGliYy5zbypgCi0rICAgIDs7Ci0rICBuY3IpCi0rICAgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICAgIDs7Ci0rICBzZXF1ZW50KQotKyAgICBs dF9jdl9maWxlX21hZ2ljX2NtZD0nL2Jpbi9maWxlJwotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgWzAtOV1bMC05XSotYml0IFtMTV1TQiAoc2hhcmVkIG9i amVjdHxkeW5hbWljIGxpYiApJwotKyAgICA7OwotKyAgc25pKQotKyAgICBsdF9jdl9maWxlX21h Z2ljX2NtZD0nL2Jpbi9maWxlJwotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0iZmls ZV9tYWdpYyBFTEYgWzAtOV1bMC05XSotYml0IFtMTV1TQiBkeW5hbWljIGxpYiIKLSsgICAgbHRf Y3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L2xpYi9saWJjLnNvCi0rICAgIDs7Ci0rICBzaWVtZW5z KQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgICA7OwotKyAg cGMpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICAgIDs7Ci0r ICBlc2FjCi0rICA7OwotKwotK3RwZiopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1w YXNzX2FsbAotKyAgOzsKLStlc2FjCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QiID4mNQotKyRhc19lY2hvICIk bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QiID4mNjsgfQotK2ZpbGVfbWFnaWNfY21kPSRsdF9j dl9maWxlX21hZ2ljX2NtZAotK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZAotK3Rlc3QgLXogIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgJiYgZGVwbGlic19j aGVja19tZXRob2Q9dW5rbm93bgotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot K2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1hciIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0g bmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9YXI7IGFjX3dvcmQ9 JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0 ZXN0ICIke2FjX2N2X3Byb2dfQVIrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJEFSIjsgdGhlbgotKyAgYWNfY3Zf cHJvZ19BUj0iJEFSIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0r YXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBB VEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNf ZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25z OyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAk YXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBh Y19jdl9wcm9nX0FSPSIke2FjX3Rvb2xfcHJlZml4fWFyIgotKyAgICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBi cmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0r ZmkKLStBUj0kYWNfY3ZfcHJvZ19BUgotK2lmIHRlc3QgLW4gIiRBUiI7IHRoZW4KLSsgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRBUiIgPiY1Ci0rJGFzX2VjaG8gIiRBUiIg PiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXog IiRhY19jdl9wcm9nX0FSIjsgdGhlbgotKyAgYWNfY3RfQVI9JEFSCi0rICAjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgImFyIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn cy4KLStzZXQgZHVtbXkgYXI7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig JGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQVIrc2V0 fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAg aWYgdGVzdCAtbiAiJGFjX2N0X0FSIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19hY19jdF9BUj0iJGFj X2N0X0FSIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2 ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStk bwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K LSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwot KyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVz dF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9w cm9nX2FjX2N0X0FSPSJhciIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStk b25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfQVI9JGFj X2N2X3Byb2dfYWNfY3RfQVIKLStpZiB0ZXN0IC1uICIkYWNfY3RfQVIiOyB0aGVuCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQVIiID4mNQotKyRhc19lY2hv ICIkYWNfY3RfQVIiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0 ZXN0ICJ4JGFjX2N0X0FSIiA9IHg7IHRoZW4KLSsgICAgQVI9ImZhbHNlIgotKyAgZWxzZQotKyAg ICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHBy ZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5H OiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9 Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBBUj0kYWNfY3RfQVIKLSsgIGZp Ci0rZWxzZQotKyAgQVI9IiRhY19jdl9wcm9nX0FSIgotK2ZpCi0rCi0rdGVzdCAteiAiJEFSIiAm JiBBUj1hcgotK3Rlc3QgLXogIiRBUl9GTEFHUyIgJiYgQVJfRkxBR1M9Y3J1Ci0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0raWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhl bgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXN0cmlw Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJHth Y190b29sX3ByZWZpeH1zdHJpcDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19TVFJJUCtzZXR9 IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBp ZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCi0rICBhY19jdl9wcm9nX1NUUklQPSIkU1RSSVAiICMg TGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZT OyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9 JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFj X2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRl c3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfU1RSSVA9 IiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Zm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsg IGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK1NUUklQ PSRhY19jdl9wcm9nX1NUUklQCi0raWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFNUUklQIiA+JjUKLSskYXNfZWNobyAiJFNU UklQIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVz dCAteiAiJGFjX2N2X3Byb2dfU1RSSVAiOyB0aGVuCi0rICBhY19jdF9TVFJJUD0kU1RSSVAKLSsg ICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAic3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9n cmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBzdHJpcDsgYWNfd29yZD0kMgotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNf Y3ZfcHJvZ19hY19jdF9TVFJJUCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfU1RSSVAiOyB0aGVuCi0r ICBhY19jdl9wcm9nX2FjX2N0X1NUUklQPSIkYWNfY3RfU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0r ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcn ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9InN0cmlwIgot KyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRh c19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9TVFJJUD0kYWNfY3ZfcHJvZ19hY19jdF9T VFJJUAotK2lmIHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9TVFJJUCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19j dF9TVFJJUCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3Qg IngkYWNfY3RfU1RSSVAiID0geDsgdGhlbgotKyAgICBTVFJJUD0iOiIKLSsgIGVsc2UKLSsgICAg Y2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVm aXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzog dXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQot K2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgU1RSSVA9JGFjX2N0X1NUUklQCi0r ICBmaQotK2Vsc2UKLSsgIFNUUklQPSIkYWNfY3ZfcHJvZ19TVFJJUCIKLStmaQotKwotK3Rlc3Qg LXogIiRTVFJJUCIgJiYgU1RSSVA9OgotKwotKwotKwotKwotKwotKwotK2lmIHRlc3QgLW4gIiRh Y190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHth Y190b29sX3ByZWZpeH1yYW5saWIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXJhbmxpYjsgYWNfd29yZD0kMgotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7 YWNfY3ZfcHJvZ19SQU5MSUIrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KLSsgIGFjX2N2 X3Byb2dfUkFOTElCPSIkUkFOTElCIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4K LStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19k aXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2Rp ciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9l eHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhl bgotKyAgICBhY19jdl9wcm9nX1JBTkxJQj0iJHthY190b29sX3ByZWZpeH1yYW5saWIiCi0rICAg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3Nh dmVfSUZTCi0rCi0rZmkKLStmaQotK1JBTkxJQj0kYWNfY3ZfcHJvZ19SQU5MSUIKLStpZiB0ZXN0 IC1uICIkUkFOTElCIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJFJBTkxJQiIgPiY1Ci0rJGFzX2VjaG8gIiRSQU5MSUIiID4mNjsgfQotK2Vsc2UKLSsgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8i ID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkKLStpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19SQU5MSUIi OyB0aGVuCi0rICBhY19jdF9SQU5MSUI9JFJBTkxJQgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3 b3JkIG9mICJyYW5saWIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgot K3NldCBkdW1teSByYW5saWI7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig JGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfUkFOTElC K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIGlmIHRlc3QgLW4gIiRhY19jdF9SQU5MSUIiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0 X1JBTkxJQj0iJGFjX2N0X1JBTkxJQiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu Ci0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNf ZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUI9InJhbmxpYiIKLSsgICAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUK LSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsK LStmaQotK2ZpCi0rYWNfY3RfUkFOTElCPSRhY19jdl9wcm9nX2FjX2N0X1JBTkxJQgotK2lmIHRl c3QgLW4gIiRhY19jdF9SQU5MSUIiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkYWNfY3RfUkFOTElCIiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X1JBTkxJQiIg PiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3Rf UkFOTElCIiA9IHg7IHRoZW4KLSsgICAgUkFOTElCPSI6IgotKyAgZWxzZQotKyAgICBjYXNlICRj cm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdp dGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBj cm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9v bF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBSQU5MSUI9JGFjX2N0X1JBTkxJQgotKyAgZmkK LStlbHNlCi0rICBSQU5MSUI9IiRhY19jdl9wcm9nX1JBTkxJQiIKLStmaQotKwotK3Rlc3QgLXog IiRSQU5MSUIiICYmIFJBTkxJQj06Ci0rCi0rCi0rCi0rCi0rCi0rCi0rIyBEZXRlcm1pbmUgY29t bWFuZHMgdG8gY3JlYXRlIG9sZC1zdHlsZSBzdGF0aWMgYXJjaGl2ZXMuCi0rb2xkX2FyY2hpdmVf Y21kcz0nJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianMnCi0rb2xkX3Bvc3RpbnN0YWxsX2Nt ZHM9J2NobW9kIDY0NCAkb2xkbGliJwotK29sZF9wb3N0dW5pbnN0YWxsX2NtZHM9Ci0rCi0raWYg dGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIG9wZW5ic2Qq KQotKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRzflwkUkFO TElCIC10IFwkb2xkbGliIgotKyAgICA7OwotKyAgKikKLSsgICAgb2xkX3Bvc3RpbnN0YWxsX2Nt ZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIKLSsgICAgOzsKLSsg IGVzYWMKLSsgIG9sZF9hcmNoaXZlX2NtZHM9IiRvbGRfYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwk b2xkbGliIgotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4KLStMVENDPSR7TFRD Qy0iJENDIn0KLSsKLSsjIElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQsIHVz ZSBDRkxBR1MuCi0rTFRDRkxBR1M9JHtMVENGTEFHUy0iJENGTEFHUyJ9Ci0rCi0rIyBBbGxvdyBD QyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KLStjb21waWxlcj0kQ0MKLSsK LSsKLSsjIENoZWNrIGZvciBjb21tYW5kIHRvIGdyYWIgdGhlIHJhdyBzeW1ib2wgbmFtZSBmb2xs b3dlZCBieSBDIHN5bWJvbCBmcm9tIG5tLgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBjb21tYW5kIHRvIHBhcnNlICROTSBvdXRwdXQgZnJvbSAkY29tcGlsZXIgb2JqZWN0 IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBjb21tYW5kIHRvIHBhcnNlICROTSBvdXRwdXQg ZnJvbSAkY29tcGlsZXIgb2JqZWN0Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9zeXNf Z2xvYmFsX3N5bWJvbF9waXBlK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsKLSsjIFRoZXNlIGFyZSBzYW5lIGRlZmF1bHRzIHRoYXQgd29y ayBvbiBhdCBsZWFzdCBhIGZldyBvbGQgc3lzdGVtcy4KLSsjIFtUaGV5IGNvbWUgZnJvbSBVbHRy aXguICBXaGF0IGNvdWxkIGJlIG9sZGVyIHRoYW4gVWx0cml4PyEhIDspXQotKwotKyMgQ2hhcmFj dGVyIGNsYXNzIGRlc2NyaWJpbmcgTk0gZ2xvYmFsIHN5bWJvbCBjb2Rlcy4KLStzeW1jb2RlPSdb QkNERUdSU1RdJwotKwotKyMgUmVnZXhwIHRvIG1hdGNoIHN5bWJvbHMgdGhhdCBjYW4gYmUgYWNj ZXNzZWQgZGlyZWN0bHkgZnJvbSBDLgotK3N5bXBhdD0nXChbX0EtWmEtel1bX0EtWmEtejAtOV0q XCknCi0rCi0rIyBEZWZpbmUgc3lzdGVtLXNwZWNpZmljIHZhcmlhYmxlcy4KLStjYXNlICRob3N0 X29zIGluCi0rYWl4KikKLSsgIHN5bWNvZGU9J1tCQ0RUXScKLSsgIDs7Ci0rY3lnd2luKiB8IG1p bmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgc3ltY29kZT0nW0FCQ0RHSVNUV10nCi0rICA7Owot K2hwdXgqKQotKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgc3ltY29k ZT0nW0FCQ0RFR1JTVF0nCi0rICBmaQotKyAgOzsKLStpcml4KiB8IG5vbnN0b3B1eCopCi0rICBz eW1jb2RlPSdbQkNERUdSU1RdJwotKyAgOzsKLStvc2YqKQotKyAgc3ltY29kZT0nW0JDREVHUVJT VF0nCi0rICA7OwotK3NvbGFyaXMqKQotKyAgc3ltY29kZT0nW0JEUlRdJwotKyAgOzsKLStzY28z LjJ2NSopCi0rICBzeW1jb2RlPSdbRFRdJwotKyAgOzsKLStzeXN2NC4ydXcyKikKLSsgIHN5bWNv ZGU9J1tEVF0nCi0rICA7OwotK3N5c3Y1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5J WCopCi0rICBzeW1jb2RlPSdbQUJEVF0nCi0rICA7OwotK3N5c3Y0KQotKyAgc3ltY29kZT0nW0RG TlNUVV0nCi0rICA7OwotK2VzYWMKLSsKLSsjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB1 c2UgaXRzIHN0YW5kYXJkIHN5bWJvbCBjb2Rlcy4KLStjYXNlIGAkTk0gLVYgMj4mMWAgaW4KLSsq R05VKiB8ICond2l0aCBCRkQnKikKLSsgIHN5bWNvZGU9J1tBQkNER0lSU1RXXScgOzsKLStlc2Fj Ci0rCi0rIyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVkIHN5bWJvbCBsaW5lIGludG8gYSBwcm9wZXIg QyBkZWNsYXJhdGlvbi4KLSsjIFNvbWUgc3lzdGVtcyAoZXNwLiBvbiBpYTY0KSBsaW5rIGRhdGEg YW5kIGNvZGUgc3ltYm9scyBkaWZmZXJlbnRseSwKLSsjIHNvIHVzZSB0aGlzIGdlbmVyYWwgYXBw cm9hY2guCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9InNlZCAtbiAtZSAncy9e VCAuKiBcKC4qXCkkL2V4dGVybiBpbnQgXDEoKTsvcCcgLWUgJ3MvXiRzeW1jb2RlKiAuKiBcKC4q XCkkL2V4dGVybiBjaGFyIFwxOy9wJyIKLSsKLSsjIFRyYW5zZm9ybSBhbiBleHRyYWN0ZWQgc3lt Ym9sIGxpbmUgaW50byBzeW1ib2wgbmFtZSBhbmQgc3ltYm9sIGFkZHJlc3MKLStsdF9jdl9zeXNf Z2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0ic2VkIC1uIC1lICdzL146IFwoW14gXSpc KSAkLyAge1xcXCJcMVxcXCIsICh2b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW14g XSpcKSBcKFteIF0qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIgotK2x0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXg9InNlZCAtbiAtZSAn cy9eOiBcKFteIF0qXCkgJC8gIHtcXFwiXDFcXFwiLCAodm9pZCAqKSAwfSwvcCcgLWUgJ3MvXiRz eW1jb2RlKiBcKFteIF0qXCkgXChsaWJbXiBdKlwpJC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9 LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW14gXSpcKSBcKFteIF0qXCkkLyAge1wibGliXDJcIiwg KHZvaWQgKikgXCZcMn0sL3AnIgotKwotKyMgSGFuZGxlIENSTEYgaW4gbWluZ3cgdG9vbCBjaGFp bgotK29wdF9jcj0KLStjYXNlICRidWlsZF9vcyBpbgotK21pbmd3KikKLSsgIG9wdF9jcj1gJEVD SE8gJ3hcezAsMVx9JyB8IHRyIHggJ1wwMTUnYCAjIG9wdGlvbiBjciBpbiByZWdleHAKLSsgIDs7 Ci0rZXNhYwotKwotKyMgVHJ5IHdpdGhvdXQgYSBwcmVmaXggdW5kZXJzY29yZSwgdGhlbiB3aXRo IGl0LgotK2ZvciBhY19zeW1wcmZ4IGluICIiICJfIjsgZG8KLSsKLSsgICMgVHJhbnNmb3JtIHN5 bWNvZGUsIHN5bXBhdCwgYW5kIHN5bXByZnggaW50byBhIHJhdyBzeW1ib2wgYW5kIGEgQyBzeW1i b2wuCi0rICBzeW14ZnJtPSJcXDEgJGFjX3N5bXByZnhcXDIgXFwyIgotKwotKyAgIyBXcml0ZSB0 aGUgcmF3IGFuZCBDIGlkZW50aWZpZXJzLgotKyAgaWYgdGVzdCAiJGx0X2N2X25tX2ludGVyZmFj ZSIgPSAiTVMgZHVtcGJpbiI7IHRoZW4KLSsgICAgIyBGYWtlIGl0IGZvciBkdW1wYmluIGFuZCBz YXkgVCBmb3IgYW55IG5vbi1zdGF0aWMgZnVuY3Rpb24KLSsgICAgIyBhbmQgRCBmb3IgYW55IGds b2JhbCB2YXJpYWJsZS4KLSsgICAgIyBBbHNvIGZpbmQgQysrIGFuZCBfX2Zhc3RjYWxsIHN5bWJv bHMgZnJvbSBNU1ZDKyssCi0rICAgICMgd2hpY2ggc3RhcnQgd2l0aCBAIG9yID8uCi0rICAgIGx0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9IiRBV0sgJyJcCi0rIiAgICAge2xhc3Rfc2VjdGlv bj1zZWN0aW9uOyBzZWN0aW9uPVwkIDN9OyJcCi0rIiAgICAgL1NlY3Rpb24gbGVuZ3RoIC4qI3Jl bG9jcy4qKHBpY2sgYW55KS97aGlkZVtsYXN0X3NlY3Rpb25dPTF9OyJcCi0rIiAgICAgXCQgMCF+ L0V4dGVybmFsICpcfC97bmV4dH07IlwKLSsiICAgICAvIDArIFVOREVGIC97bmV4dH07IC8gVU5E RUYgXChbXnxdXCkqKCkve25leHR9OyJcCi0rIiAgICAge2lmKGhpZGVbc2VjdGlvbl0pIG5leHR9 OyJcCi0rIiAgICAge2Y9MH07IFwkIDB+L1woXCkuKlx8L3tmPTF9OyB7cHJpbnRmIGYgPyBcIlQg XCIgOiBcIkQgXCJ9OyJcCi0rIiAgICAge3NwbGl0KFwkIDAsIGEsIC9cfHxcci8pOyBzcGxpdChh WzJdLCBzKX07IlwKLSsiICAgICBzWzFdfi9eW0A/XS97cHJpbnQgc1sxXSwgc1sxXTsgbmV4dH07 IlwKLSsiICAgICBzWzFdfnByZngge3NwbGl0KHNbMV0sdCxcIkBcIik7IHByaW50IHRbMV0sIHN1 YnN0cih0WzFdLGxlbmd0aChwcmZ4KSl9IlwKLSsiICAgICAnIHByZng9XiRhY19zeW1wcmZ4Igot KyAgZWxzZQotKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPSJzZWQgLW4gLWUgJ3Mv Xi4qWwkgXVwoJHN5bWNvZGUkc3ltY29kZSpcKVsJIF1bCSBdKiRhY19zeW1wcmZ4JHN5bXBhdCRv cHRfY3IkLyRzeW14ZnJtL3AnIgotKyAgZmkKLSsKLSsgICMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhl IHBpcGUgd29ya3MgY29ycmVjdGx5LgotKyAgcGlwZV93b3Jrcz1ubwotKwotKyAgcm0gLWYgY29u ZnRlc3QqCi0rICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgotKyNpZmRlZiBfX2Nw bHVzcGx1cwotK2V4dGVybiAiQyIgewotKyNlbmRpZgotK2NoYXIgbm1fdGVzdF92YXI7Ci0rdm9p ZCBubV90ZXN0X2Z1bmModm9pZCk7Ci0rdm9pZCBubV90ZXN0X2Z1bmModm9pZCl7fQotKyNpZmRl ZiBfX2NwbHVzcGx1cwotK30KLSsjZW5kaWYKLStpbnQgbWFpbigpe25tX3Rlc3RfdmFyPSdhJztu bV90ZXN0X2Z1bmMoKTtyZXR1cm4oMCk7fQotK19MVF9FT0YKLSsKLSsgIGlmIHsgKGV2YWwgZWNo byAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotKyAgKGV2YWwgJGFjX2Nv bXBpbGUpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0r ICAgICMgTm93IHRyeSB0byBncmFiIHRoZSBzeW1ib2xzLgotKyAgICBubGlzdD1jb25mdGVzdC5u bQotKyAgICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiROTSBjb25mdGVzdC4k YWNfb2JqZXh0IFx8ICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIFw+ICRubGlzdFwiIikg PiY1Ci0rICAoZXZhbCAkTk0gY29uZnRlc3QuJGFjX29iamV4dCBcfCAkbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfcGlwZSBcPiAkbmxpc3QpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmIHRlc3QgLXMgIiRubGlzdCI7IHRoZW4KLSsgICAgICAjIFRyeSBzb3J0aW5n IGFuZCB1bmlxdWlmeWluZyB0aGUgb3V0cHV0LgotKyAgICAgIGlmIHNvcnQgIiRubGlzdCIgfCB1 bmlxID4gIiRubGlzdCJUOyB0aGVuCi0rCW12IC1mICIkbmxpc3QiVCAiJG5saXN0IgotKyAgICAg IGVsc2UKLSsJcm0gLWYgIiRubGlzdCJUCi0rICAgICAgZmkKLSsKLSsgICAgICAjIE1ha2Ugc3Vy ZSB0aGF0IHdlIHNuYWdnZWQgYWxsIHRoZSBzeW1ib2xzIHdlIG5lZWQuCi0rICAgICAgaWYgJEdS RVAgJyBubV90ZXN0X3ZhciQnICIkbmxpc3QiID4vZGV2L251bGw7IHRoZW4KLSsJaWYgJEdSRVAg JyBubV90ZXN0X2Z1bmMkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCi0rCSAgY2F0IDw8X0xU X0VPRiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMi IHsKLSsjZW5kaWYKLSsKLStfTFRfRU9GCi0rCSAgIyBOb3cgZ2VuZXJhdGUgdGhlIHN5bWJvbCBm aWxlLgotKwkgIGV2YWwgIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCInIDwgIiRu bGlzdCIgfCAkR1JFUCAtdiBtYWluID4+IGNvbmZ0ZXN0LiRhY19leHQnCi0rCi0rCSAgY2F0IDw8 X0xUX0VPRiA+PiBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rLyogVGhlIG1hcHBpbmcgYmV0d2VlbiBz eW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICAqLwotK2NvbnN0IHN0cnVjdCB7Ci0rICBjb25zdCBj aGFyICpuYW1lOwotKyAgdm9pZCAgICAgICAqYWRkcmVzczsKLSt9Ci0rbHRfX1BST0dSQU1fX0xU WF9wcmVsb2FkZWRfc3ltYm9sc1tdID0KLSt7Ci0rICB7ICJAUFJPR1JBTUAiLCAodm9pZCAqKSAw IH0sCi0rX0xUX0VPRgotKwkgICRTRUQgInMvXiRzeW1jb2RlJHN5bWNvZGUqIFwoLipcKSBcKC4q XCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sLyIgPCAiJG5saXN0IiB8ICRHUkVQIC12IG1h aW4gPj4gY29uZnRlc3QuJGFjX2V4dAotKwkgIGNhdCA8PFxfTFRfRU9GID4+IGNvbmZ0ZXN0LiRh Y19leHQKLSsgIHswLCAodm9pZCAqKSAwfQotK307Ci0rCi0rLyogVGhpcyB3b3JrcyBhcm91bmQg YSBwcm9ibGVtIGluIEZyZWVCU0QgbGlua2VyICovCi0rI2lmZGVmIEZSRUVCU0RfV09SS0FST1VO RAotK3N0YXRpYyBjb25zdCB2b2lkICpsdF9wcmVsb2FkZWRfc2V0dXAoKSB7Ci0rICByZXR1cm4g bHRfX1BST0dSQU1fX0xUWF9wcmVsb2FkZWRfc3ltYm9sczsKLSt9Ci0rI2VuZGlmCi0rCi0rI2lm ZGVmIF9fY3BsdXNwbHVzCi0rfQotKyNlbmRpZgotK19MVF9FT0YKLSsJICAjIE5vdyB0cnkgbGlu a2luZyB0aGUgdHdvIGZpbGVzLgotKwkgIG12IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRzdG0u JGFjX29iamV4dAotKwkgIGx0X3NhdmVfTElCUz0iJExJQlMiCi0rCSAgbHRfc2F2ZV9DRkxBR1M9 IiRDRkxBR1MiCi0rCSAgTElCUz0iY29uZnRzdG0uJGFjX29iamV4dCIKLSsJICBDRkxBR1M9IiRD RkxBR1MkbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWciCi0rCSAgaWYgeyAoZXZhbCBl Y2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0rICAoZXZhbCAkYWNfbGlu aykgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgdGVzdCAtcyBj b25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbgotKwkgICAgcGlwZV93b3Jrcz15ZXMKLSsJICBmaQot KwkgIExJQlM9IiRsdF9zYXZlX0xJQlMiCi0rCSAgQ0ZMQUdTPSIkbHRfc2F2ZV9DRkxBR1MiCi0r CWVsc2UKLSsJICBlY2hvICJjYW5ub3QgZmluZCBubV90ZXN0X2Z1bmMgaW4gJG5saXN0IiA+JjUK LSsJZmkKLSsgICAgICBlbHNlCi0rCWVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfdmFyIGluICRu bGlzdCIgPiY1Ci0rICAgICAgZmkKLSsgICAgZWxzZQotKyAgICAgIGVjaG8gImNhbm5vdCBydW4g JGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiID4mNQotKyAgICBmaQotKyAgZWxzZQotKyAg ICBlY2hvICIkcHJvZ25hbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotKyAgICBjYXQgY29u ZnRlc3QuJGFjX2V4dCA+JjUKLSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3QqIGNvbmZ0c3QqCi0r Ci0rICAjIERvIG5vdCB1c2UgdGhlIGdsb2JhbF9zeW1ib2xfcGlwZSB1bmxlc3MgaXQgd29ya3Mu Ci0rICBpZiB0ZXN0ICIkcGlwZV93b3JrcyIgPSB5ZXM7IHRoZW4KLSsgICAgYnJlYWsKLSsgIGVs c2UKLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0KLSsgIGZpCi0rZG9uZQotKwot K2ZpCi0rCi0raWYgdGVzdCAteiAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVu Ci0rICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0KLStmaQotK2lmIHRlc3QgLXog IiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Rv X2NkZWNsIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogZmFp bGVkIiA+JjUKLSskYXNfZWNobyAiZmFpbGVkIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBvayIgPiY1Ci0rJGFzX2VjaG8gIm9rIiA+JjY7IH0K LStmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1saWJ0b29sLWxvY2sg d2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2xpYnRvb2xfbG9jaytzZXR9IiA9IHNldDsg dGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfbGlidG9vbF9sb2NrOwotK2ZpCi0rCi0rdGVzdCAi eCRlbmFibGVfbGlidG9vbF9sb2NrIiAhPSB4bm8gJiYgZW5hYmxlX2xpYnRvb2xfbG9jaz15ZXMK LSsKLSsjIFNvbWUgZmxhZ3MgbmVlZCB0byBiZSBwcm9wYWdhdGVkIHRvIHRoZSBjb21waWxlciBv ciBsaW5rZXIgZm9yIGdvb2QKLSsjIGxpYnRvb2wgc3VwcG9ydC4KLStjYXNlICRob3N0IGluCi0r aWE2NC0qLWhwdXgqKQotKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgotKyAg ZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIHsgKGV2YWwgZWNobyAiJGFz X21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotKyAgKGV2YWwgJGFjX2NvbXBpbGUp IDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0rICAgIGNh c2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KLSsgICAgICAqRUxGLTMy KikKLSsJSFBVWF9JQTY0X01PREU9IjMyIgotKwk7OwotKyAgICAgICpFTEYtNjQqKQotKwlIUFVY X0lBNjRfTU9ERT0iNjQiCi0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBybSAtcmYgY29uZnRl c3QqCi0rICA7OwotKyotKi1pcml4NiopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUg dXNpbmcuCi0rICBlY2hvICcjbGluZSA2ODQ0ICJjb25maWd1cmUiJyA+IGNvbmZ0ZXN0LiRhY19l eHQKLSsgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIp ID4mNQotKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRh Y19zdGF0dXMpOyB9OyB0aGVuCi0rICAgIGlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5 ZXM7IHRoZW4KLSsgICAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRg IGluCi0rCSozMi1iaXQqKQotKwkgIExEPSIke0xELWxkfSAtbWVsZjMyYnNtaXAiCi0rCSAgOzsK LSsJKk4zMiopCi0rCSAgTEQ9IiR7TEQtbGR9IC1tZWxmMzJibWlwbjMyIgotKwkgIDs7Ci0rCSo2 NC1iaXQqKQotKwkgIExEPSIke0xELWxkfSAtbWVsZjY0Ym1pcCIKLSsJOzsKLSsgICAgICBlc2Fj Ci0rICAgIGVsc2UKLSsgICAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpl eHRgIGluCi0rCSozMi1iaXQqKQotKwkgIExEPSIke0xELWxkfSAtMzIiCi0rCSAgOzsKLSsJKk4z MiopCi0rCSAgTEQ9IiR7TEQtbGR9IC1uMzIiCi0rCSAgOzsKLSsJKjY0LWJpdCopCi0rCSAgTEQ9 IiR7TEQtbGR9IC02NCIKLSsJICA7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsgIGZpCi0rICBy bSAtcmYgY29uZnRlc3QqCi0rICA7OwotKwotK3g4Nl82NC0qa2ZyZWVic2QqLWdudXx4ODZfNjQt KmxpbnV4KnxwcGMqLSpsaW51eCp8cG93ZXJwYyotKmxpbnV4KnwgXAotK3MzOTAqLSpsaW51eCp8 czM5MCotKnRwZip8c3BhcmMqLSpsaW51eCopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBh cmUgdXNpbmcuCi0rICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAotKyAgaWYgeyAo ZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0rICAoZXZh bCAkYWNfY29tcGlsZSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07 IHRoZW4KLSsgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC5vYCBpbgotKyAgICAgICoz Mi1iaXQqKQotKwljYXNlICRob3N0IGluCi0rCSAgeDg2XzY0LSprZnJlZWJzZCotZ251KQotKwkg ICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl9pMzg2X2Zic2QiCi0rCSAgICA7OwotKwkgIHg4Nl82NC0q bGludXgqKQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl9pMzg2IgotKwkgICAgOzsKLSsJICBw cGM2NC0qbGludXgqfHBvd2VycGM2NC0qbGludXgqKQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVs ZjMycHBjbGludXgiCi0rCSAgICA7OwotKwkgIHMzOTB4LSpsaW51eCopCi0rCSAgICBMRD0iJHtM RC1sZH0gLW0gZWxmX3MzOTAiCi0rCSAgICA7OwotKwkgIHNwYXJjNjQtKmxpbnV4KikKLSsJICAg IExEPSIke0xELWxkfSAtbSBlbGYzMl9zcGFyYyIKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsg ICAgICAqNjQtYml0KikKLSsJY2FzZSAkaG9zdCBpbgotKwkgIHg4Nl82NC0qa2ZyZWVic2QqLWdu dSkKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGZfeDg2XzY0X2Zic2QiCi0rCSAgICA7OwotKwkg IHg4Nl82NC0qbGludXgqKQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjQiCi0rCSAg ICA7OwotKwkgIHBwYyotKmxpbnV4Knxwb3dlcnBjKi0qbGludXgqKQotKwkgICAgTEQ9IiR7TEQt bGR9IC1tIGVsZjY0cHBjIgotKwkgICAgOzsKLSsJICBzMzkwKi0qbGludXgqfHMzOTAqLSp0cGYq KQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0X3MzOTAiCi0rCSAgICA7OwotKwkgIHNwYXJj Ki0qbGludXgqKQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0X3NwYXJjIgotKwkgICAgOzsK LSsJZXNhYwotKwk7OwotKyAgICBlc2FjCi0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAg OzsKLSsKLSsqLSotc2NvMy4ydjUqKQotKyAgIyBPbiBTQ08gT3BlblNlcnZlciA1LCB3ZSBuZWVk IC1iZWxmIHRvIGdldCBmdWxsLWZlYXR1cmVkIGJpbmFyaWVzLgotKyAgU0FWRV9DRkxBR1M9IiRD RkxBR1MiCi0rICBDRkxBR1M9IiRDRkxBR1MgLWJlbGYiCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciBuZWVkcyAtYmVsZiIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciBuZWVkcyAtYmVs Zi4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfY2NfbmVlZHNfYmVsZitzZXR9IiA9IHNl dDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19leHQ9 YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1Mg JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVz dCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAk TElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotKyAg ICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0r X0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLStt YWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNf bGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVz dC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0r ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxh ZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8 fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAg bHRfY3ZfY2NfbmVlZHNfYmVsZj15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 Ci0rCi0rCWx0X2N2X2NjX25lZWRzX2JlbGY9bm8KLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5k U1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3Qu JGFjX2V4dAotKyAgICAgYWNfZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2Nv bXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSth Y19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3Zf Y19jb21waWxlcl9nbnUKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRsdF9jdl9jY19uZWVkc19iZWxmIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X2NjX25lZWRz X2JlbGYiID4mNjsgfQotKyAgaWYgdGVzdCB4IiRsdF9jdl9jY19uZWVkc19iZWxmIiAhPSB4Inll cyI7IHRoZW4KLSsgICAgIyB0aGlzIGlzIHByb2JhYmx5IGdjYyAyLjguMCwgZWdjcyAxLjAgb3Ig bmV3ZXI7IG5vIG5lZWQgZm9yIC1iZWxmCi0rICAgIENGTEFHUz0iJFNBVkVfQ0ZMQUdTIgotKyAg ZmkKLSsgIDs7Ci0rc3BhcmMqLSpzb2xhcmlzKikKLSsgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdl IGFyZSB1c2luZy4KLSsgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICBpZiB7 IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChl dmFsICRhY19jb21waWxlKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsg fTsgdGhlbgotKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCi0rICAgICo2 NC1iaXQqKQotKyAgICAgIGNhc2UgJGx0X2N2X3Byb2dfZ251X2xkIGluCi0rICAgICAgeWVzKikg TEQ9IiR7TEQtbGR9IC1tIGVsZjY0X3NwYXJjIiA7OwotKyAgICAgICopCi0rCWlmICR7TEQtbGR9 IC02NCAtciAtbyBjb25mdGVzdDIubyBjb25mdGVzdC5vID4vZGV2L251bGwgMj4mMTsgdGhlbgot KwkgIExEPSIke0xELWxkfSAtNjQiCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7 Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3QqCi0rICA7OwotK2VzYWMKLSsK LStuZWVkX2xvY2tzPSIkZW5hYmxlX2xpYnRvb2xfbG9jayIKLSsKLSsKLSsgIGNhc2UgJGhvc3Rf b3MgaW4KLSsgICAgcmhhcHNvZHkqIHwgZGFyd2luKikKLSsgICAgaWYgdGVzdCAtbiAiJGFjX3Rv b2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rv b2xfcHJlZml4fWRzeW11dGlsIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn cy4KLStzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1kc3ltdXRpbDsgYWNfd29yZD0kMgotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7 YWNfY3ZfcHJvZ19EU1lNVVRJTCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkRFNZTVVUSUwiOyB0aGVuCi0rICBh Y19jdl9wcm9nX0RTWU1VVElMPSIkRFNZTVVUSUwiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRo ZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0r Zm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16 ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVj dXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi OyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfRFNZTVVUSUw9IiR7YWNfdG9vbF9wcmVmaXh9ZHN5 bXV0aWwiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUK LStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK0RTWU1VVElMPSRhY19jdl9wcm9nX0RT WU1VVElMCi0raWYgdGVzdCAtbiAiJERTWU1VVElMIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJERTWU1VVElMIiA+JjUKLSskYXNfZWNobyAiJERTWU1VVElM IiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBu byIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAt eiAiJGFjX2N2X3Byb2dfRFNZTVVUSUwiOyB0aGVuCi0rICBhY19jdF9EU1lNVVRJTD0kRFNZTVVU SUwKLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZHN5bXV0aWwiLCBzbyBpdCBjYW4g YmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBkc3ltdXRpbDsgYWNfd29y ZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lm IHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9EU1lNVVRJTCtzZXR9IiA9IHNldDsgdGhlbgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3Rf RFNZTVVUSUwiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X0RTWU1VVElMPSIkYWNfY3RfRFNZ TVVUSUwiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2Rv Ci0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgot KyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0r ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3By b2dfYWNfY3RfRFNZTVVUSUw9ImRzeW11dGlsIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAy Ci0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSth Y19jdF9EU1lNVVRJTD0kYWNfY3ZfcHJvZ19hY19jdF9EU1lNVVRJTAotK2lmIHRlc3QgLW4gIiRh Y19jdF9EU1lNVVRJTCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRhY19jdF9EU1lNVVRJTCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9EU1lNVVRJTCIgPiY2 OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4m NQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfRFNZ TVVUSUwiID0geDsgdGhlbgotKyAgICBEU1lNVVRJTD0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAk Y3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3 aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcg Y3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rv b2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgRFNZTVVUSUw9JGFjX2N0X0RTWU1VVElMCi0r ICBmaQotK2Vsc2UKLSsgIERTWU1VVElMPSIkYWNfY3ZfcHJvZ19EU1lNVVRJTCIKLStmaQotKwot KyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9bm1lZGl0Iiwgc28gaXQgY2FuIGJlIGEg cHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1ubWVk aXQ7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y ICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+ JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfTk1FRElUK3NldH0iID0gc2V0OyB0aGVuCi0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiROTUVE SVQiOyB0aGVuCi0rICBhY19jdl9wcm9nX05NRURJVD0iJE5NRURJVCIgIyBMZXQgdGhlIHVzZXIg b3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T RVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMK LSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4g JycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19OTUVESVQ9IiR7YWNfdG9vbF9w cmVmaXh9bm1lZGl0IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUK LStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStOTUVESVQ9JGFjX2N2X3By b2dfTk1FRElUCi0raWYgdGVzdCAtbiAiJE5NRURJVCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICROTUVESVQiID4mNQotKyRhc19lY2hvICIkTk1FRElUIiA+ JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIg PiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAi JGFjX2N2X3Byb2dfTk1FRElUIjsgdGhlbgotKyAgYWNfY3RfTk1FRElUPSROTUVESVQKLSsgICMg RXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAibm1lZGl0Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgbm1lZGl0OyBhY193b3JkPSQyCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19j dl9wcm9nX2FjX2N0X05NRURJVCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfTk1FRElUIjsgdGhlbgot KyAgYWNfY3ZfcHJvZ19hY19jdF9OTUVESVQ9IiRhY19jdF9OTUVESVQiICMgTGV0IHRoZSB1c2Vy IG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhf U0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZT Ci0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGlu ICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfTk1FRElUPSJubWVk aXQiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJ RlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X05NRURJVD0kYWNfY3ZfcHJvZ19h Y19jdF9OTUVESVQKLStpZiB0ZXN0IC1uICIkYWNfY3RfTk1FRElUIjsgdGhlbgotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X05NRURJVCIgPiY1Ci0rJGFzX2Vj aG8gIiRhY19jdF9OTUVESVQiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0r ICBpZiB0ZXN0ICJ4JGFjX2N0X05NRURJVCIgPSB4OyB0aGVuCi0rICAgIE5NRURJVD0iOiIKLSsg IGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3ll czopCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRv b2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlw bGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgTk1FRElUPSRh Y19jdF9OTUVESVQKLSsgIGZpCi0rZWxzZQotKyAgTk1FRElUPSIkYWNfY3ZfcHJvZ19OTUVESVQi Ci0rZmkKLSsKLSsgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBF eHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWxpcG8iLCBzbyBpdCBj YW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJl Zml4fWxpcG87IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQu Li4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfTElQTytzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIk TElQTyI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfTElQTz0iJExJUE8iICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0r ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcn ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfTElQTz0iJHthY190b29sX3ByZWZp eH1saXBvIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25l Ci0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStMSVBPPSRhY19jdl9wcm9nX0xJUE8K LStpZiB0ZXN0IC1uICIkTElQTyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRMSVBPIiA+JjUKLSskYXNfZWNobyAiJExJUE8iID4mNjsgfQotK2Vsc2UKLSsg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAi bm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkKLStpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19MSVBP IjsgdGhlbgotKyAgYWNfY3RfTElQTz0kTElQTwotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk IG9mICJsaXBvIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQg ZHVtbXkgbGlwbzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29y ZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9MSVBPK3NldH0iID0g c2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRl c3QgLW4gIiRhY19jdF9MSVBPIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19hY19jdF9MSVBPPSIkYWNf Y3RfTElQTyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0r ZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u Ci0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K LSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3Zf cHJvZ19hY19jdF9MSVBPPSJsaXBvIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZv dW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBm aQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9M SVBPPSRhY19jdl9wcm9nX2FjX2N0X0xJUE8KLStpZiB0ZXN0IC1uICIkYWNfY3RfTElQTyI7IHRo ZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9MSVBPIiA+ JjUKLSskYXNfZWNobyAiJGFjX2N0X0xJUE8iID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQot K2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X0xJUE8iID0geDsgdGhlbgotKyAgICBMSVBPPSI6 IgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGlu Ci0reWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jv c3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0 IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBMSVBP PSRhY19jdF9MSVBPCi0rICBmaQotK2Vsc2UKLSsgIExJUE89IiRhY19jdl9wcm9nX0xJUE8iCi0r ZmkKLSsKLSsgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRy YWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fW90b29sIiwgc28gaXQgY2Fu IGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJHthY190b29sX3ByZWZp eH1vdG9vbDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4u LiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19PVE9PTCtzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIk T1RPT0wiOyB0aGVuCi0rICBhY19jdl9wcm9nX09UT09MPSIkT1RPT0wiICMgTGV0IHRoZSB1c2Vy IG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhf U0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZT Ci0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGlu ICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfT1RPT0w9IiR7YWNfdG9vbF9w cmVmaXh9b3Rvb2wiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQot K2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK09UT09MPSRhY19jdl9wcm9n X09UT09MCi0raWYgdGVzdCAtbiAiJE9UT09MIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJE9UT09MIiA+JjUKLSskYXNfZWNobyAiJE9UT09MIiA+JjY7IH0K LStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0r JGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2 X3Byb2dfT1RPT0wiOyB0aGVuCi0rICBhY19jdF9PVE9PTD0kT1RPT0wKLSsgICMgRXh0cmFjdCB0 aGUgZmlyc3Qgd29yZCBvZiAib3Rvb2wiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmdzLgotK3NldCBkdW1teSBvdG9vbDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19j dF9PVE9PTCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfT1RPT0wiOyB0aGVuCi0rICBhY19jdl9wcm9n X2FjX2N0X09UT09MPSIkYWNfY3RfT1RPT0wiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9y IGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIk YXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRh YmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9 OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfT1RPT0w9Im90b29sIgotKyAgICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4m NQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwot KwotK2ZpCi0rZmkKLSthY19jdF9PVE9PTD0kYWNfY3ZfcHJvZ19hY19jdF9PVE9PTAotK2lmIHRl c3QgLW4gIiRhY19jdF9PVE9PTCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRhY19jdF9PVE9PTCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9PVE9PTCIgPiY2 OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4m NQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfT1RP T0wiID0geDsgdGhlbgotKyAgICBPVE9PTD0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3Nf Y29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhv c3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3Mg dG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2Fy bmVkPXllcyA7OwotK2VzYWMKLSsgICAgT1RPT0w9JGFjX2N0X09UT09MCi0rICBmaQotK2Vsc2UK LSsgIE9UT09MPSIkYWNfY3ZfcHJvZ19PVE9PTCIKLStmaQotKwotKyAgICBpZiB0ZXN0IC1uICIk YWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7 YWNfdG9vbF9wcmVmaXh9b3Rvb2w2NCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRo IGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9b3Rvb2w2NDsgYWNfd29yZD0kMgot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3Qg IiR7YWNfY3ZfcHJvZ19PVE9PTDY0K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRPVE9PTDY0IjsgdGhlbgotKyAg YWNfY3ZfcHJvZ19PVE9PTDY0PSIkT1RPT0w2NCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhl IHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStm b3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXog IiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1 dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7 IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19PVE9PTDY0PSIke2FjX3Rvb2xfcHJlZml4fW90b29s NjQiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJ RlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK09UT09MNjQ9JGFjX2N2X3Byb2dfT1RPT0w2 NAotK2lmIHRlc3QgLW4gIiRPVE9PTDY0IjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJE9UT09MNjQiID4mNQotKyRhc19lY2hvICIkT1RPT0w2NCIgPiY2OyB9 Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQot KyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19j dl9wcm9nX09UT09MNjQiOyB0aGVuCi0rICBhY19jdF9PVE9PTDY0PSRPVE9PTDY0Ci0rICAjIEV4 dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIm90b29sNjQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFt IG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBvdG9vbDY0OyBhY193b3JkPSQyCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19j dl9wcm9nX2FjX2N0X09UT09MNjQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X09UT09MNjQiOyB0aGVu Ci0rICBhY19jdl9wcm9nX2FjX2N0X09UT09MNjQ9IiRhY19jdF9PVE9PTDY0IiAjIExldCB0aGUg dXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQ QVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZl X0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4 dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X09UT09MNjQ9 Im90b29sNjQiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2Rv bmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X09UT09MNjQ9JGFjX2N2 X3Byb2dfYWNfY3RfT1RPT0w2NAotK2lmIHRlc3QgLW4gIiRhY19jdF9PVE9PTDY0IjsgdGhlbgot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X09UT09MNjQiID4m NQotKyRhc19lY2hvICIkYWNfY3RfT1RPT0w2NCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9 Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfT1RPT0w2NCIgPSB4OyB0aGVuCi0rICAgIE9U T09MNjQ9IjoiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93 YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1 c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRh c19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3 aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0r ICAgIE9UT09MNjQ9JGFjX2N0X09UT09MNjQKLSsgIGZpCi0rZWxzZQotKyAgT1RPT0w2ND0iJGFj X2N2X3Byb2dfT1RPT0w2NCIKLStmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyAgICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIC1zaW5nbGVfbW9kdWxlIGxpbmtl ciBmbGFnIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgLXNpbmdsZV9tb2R1bGUgbGlu a2VyIGZsYWcuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X2FwcGxlX2NjX3NpbmdsZV9t b2Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKyAgbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD1ubwotKyAgICAgIGlmIHRlc3QgLXogIiR7 TFRfTVVMVElfTU9EVUxFfSI7IHRoZW4KLSsJIyBCeSBkZWZhdWx0IHdlIHdpbGwgYWRkIHRoZSAt c2luZ2xlX21vZHVsZSBmbGFnLiBZb3UgY2FuIG92ZXJyaWRlCi0rCSMgYnkgZWl0aGVyIHNldHRp bmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIExUX01VTFRJX01PRFVMRQotKwkjIG5vbi1lbXB0 eSBhdCBjb25maWd1cmUgdGltZSwgb3IgYnkgYWRkaW5nIC1tdWx0aV9tb2R1bGUgdG8gdGhlCi0r CSMgbGluayBmbGFncy4KLSsJcm0gLXJmIGxpYmNvbmZ0ZXN0LmR5bGliKgotKwllY2hvICJpbnQg Zm9vKHZvaWQpe3JldHVybiAxO30iID4gY29uZnRlc3QuYwotKwllY2hvICIkTFRDQyAkTFRDRkxB R1MgJExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIgXAotKy1keW5hbWljbGliIC1XbCwtc2lu Z2xlX21vZHVsZSBjb25mdGVzdC5jIiA+JjUKLSsJJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdTIC1v IGxpYmNvbmZ0ZXN0LmR5bGliIFwKLSsJICAtZHluYW1pY2xpYiAtV2wsLXNpbmdsZV9tb2R1bGUg Y29uZnRlc3QuYyAyPmNvbmZ0ZXN0LmVycgotKyAgICAgICAgX2x0X3Jlc3VsdD0kPwotKwlpZiB0 ZXN0IC1mIGxpYmNvbmZ0ZXN0LmR5bGliICYmIHRlc3QgISAtcyBjb25mdGVzdC5lcnIgJiYgdGVz dCAkX2x0X3Jlc3VsdCA9IDA7IHRoZW4KLSsJICBsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kPXll cwotKwllbHNlCi0rCSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsJZmkKLSsJcm0gLXJmIGxpYmNv bmZ0ZXN0LmR5bGliKgotKwlybSAtZiBjb25mdGVzdC4qCi0rICAgICAgZmkKLStmaQotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9k IiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiID4mNjsgfQotKyAg ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIC1leHBvcnRlZF9zeW1i b2xzX2xpc3QgbGlua2VyIGZsYWciID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAtZXhw b3J0ZWRfc3ltYm9sc19saXN0IGxpbmtlciBmbGFnLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHts dF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9s c19saXN0PW5vCi0rICAgICAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCi0rICAgICAgZWNobyAiX21h aW4iID4gY29uZnRlc3Quc3ltCi0rICAgICAgTERGTEFHUz0iJExERkxBR1MgLVdsLC1leHBvcnRl ZF9zeW1ib2xzX2xpc3QsY29uZnRlc3Quc3ltIgotKyAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5o ID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsv KiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsg IHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8K LSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBj b25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g JiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewot KwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRl c3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJv bHNfbGlzdD15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWx0X2N2 X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD1ubwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRT WU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4k YWNfZXh0Ci0rCUxERkxBR1M9IiRzYXZlX0xERkxBR1MiCi0rCi0rZmkKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0IiA+ JjUKLSskYXNfZWNobyAiJGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCIgPiY2OyB9Ci0r ICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgcmhhcHNvZHkqIHwgZGFyd2luMS5bMDEyXSkKLSsg ICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJl c3MnIDs7Ci0rICAgIGRhcndpbjEuKikKLSsgICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0n JHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7Ci0r ICAgIGRhcndpbiopICMgZGFyd2luIDUueCBvbgotKyAgICAgICMgaWYgcnVubmluZyBvbiAxMC41 IG9yIGxhdGVyLCB0aGUgZGVwbG95bWVudCB0YXJnZXQgZGVmYXVsdHMKLSsgICAgICAjIHRvIHRo ZSBPUyB2ZXJzaW9uLCBpZiBvbiB4ODYsIGFuZCAxMC40LCB0aGUgZGVwbG95bWVudAotKyAgICAg ICMgdGFyZ2V0IGRlZmF1bHRzIHRvIDEwLjQuIERvbid0IHlvdSBsb3ZlIGl0PwotKyAgICAgIGNh c2UgJHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQtMTAuMH0sJGhvc3QgaW4KLSsJMTAuMCwqODYq LWRhcndpbjgqfDEwLjAsKi1kYXJ3aW5bOTFdKikKLSsJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5l ZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnIDs7Ci0rCTEwLlswMTJdKikK LSsJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3bH0t dW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7Ci0rCTEwLiopCi0rCSAgX2x0X2Rhcl9hbGxvd191 bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJyA7OwotKyAgICAg IGVzYWMKLSsgICAgOzsKLSsgIGVzYWMKLSsgICAgaWYgdGVzdCAiJGx0X2N2X2FwcGxlX2NjX3Np bmdsZV9tb2QiID0gInllcyI7IHRoZW4KLSsgICAgICBfbHRfZGFyX3NpbmdsZV9tb2Q9JyRzaW5n bGVfbW9kdWxlJwotKyAgICBmaQotKyAgICBpZiB0ZXN0ICIkbHRfY3ZfbGRfZXhwb3J0ZWRfc3lt Ym9sc19saXN0IiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgX2x0X2Rhcl9leHBvcnRfc3ltcz0nICR7 d2x9LWV4cG9ydGVkX3N5bWJvbHNfbGlzdCwkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJv bHMuZXhwc3ltJwotKyAgICBlbHNlCi0rICAgICAgX2x0X2Rhcl9leHBvcnRfc3ltcz0nfiROTUVE SVQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xpYn0nCi0r ICAgIGZpCi0rICAgIGlmIHRlc3QgIiREU1lNVVRJTCIgIT0gIjoiOyB0aGVuCi0rICAgICAgX2x0 X2RzeW11dGlsPSd+JERTWU1VVElMICRsaWIgfHwgOicKLSsgICAgZWxzZQotKyAgICAgIF9sdF9k c3ltdXRpbD0KLSsgICAgZmkKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSthY19leHQ9YwotK2FjX2Nw cD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVl eHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn Ci0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3NvciIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IuLi4g IiA+JjY7IH0KLSsjIE9uIFN1bnMsIHNvbWV0aW1lcyAkQ1BQIG5hbWVzIGEgZGlyZWN0b3J5Lgot K2lmIHRlc3QgLW4gIiRDUFAiICYmIHRlc3QgLWQgIiRDUFAiOyB0aGVuCi0rICBDUFA9Ci0rZmkK LStpZiB0ZXN0IC16ICIkQ1BQIjsgdGhlbgotKyAgaWYgdGVzdCAiJHthY19jdl9wcm9nX0NQUCtz ZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0r ICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1c2UgQ1BQIG5lZWRzIHRvIGJlIGV4cGFuZGVkCi0r ICAgIGZvciBDUFAgaW4gIiRDQyAtRSIgIiRDQyAtRSAtdHJhZGl0aW9uYWwtY3BwIiAiL2xpYi9j cHAiCi0rICAgIGRvCi0rICAgICAgYWNfcHJlcHJvY19vaz1mYWxzZQotK2ZvciBhY19jX3ByZXBy b2Nfd2Fybl9mbGFnIGluICcnIHllcwotK2RvCi0rICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQg Y29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCi0rICAjIHdpdGggYSBmcmVzaCBj cm9zcy1jb21waWxlciB3b3Jrcy4KLSsgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5o PiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBl dmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCi0rICAjIE9uIHRoZSBOZVhULCBjYyAtRSBy dW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAotKyAgIyBub3QganVz dCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2Uu Ci0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8K LStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpZmRlZiBf X1NURENfXwotKyMgaW5jbHVkZSA8bGltaXRzLmg+Ci0rI2Vsc2UKLSsjIGluY2x1ZGUgPGFzc2Vy dC5oPgotKyNlbmRpZgotKwkJICAgICBTeW50YXggZXJyb3IKLStfQUNFT0YKLStpZiB7IChhY190 cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAq XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9l Y2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVO TzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2 YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0 dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBy bSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxh ZyRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAg ICB9OyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKyAg IyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgotK2NvbnRpbnVlCi0rZmkKLSsKLStybSAt ZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotKwotKyAgIyBPSywgd29ya3Mgb24gc2Fu ZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKLSsgICMgY2Fu IGJlIGRldGVjdGVkIGFuZCBob3cuCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0 LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZk ZWZzLmguICAqLwotKyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgotK19BQ0VPRgotK2lmIHsg KGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4K LSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0r ICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKLSsgIGFj X3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK LSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNf c3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3ByZXByb2Nfd2Fy bl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0r ICAgICAgIH07IHRoZW4KLSsgICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCi0r Y29udGludWUKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICAjIFBhc3Nl cyBib3RoIHRlc3RzLgotK2FjX3ByZXByb2Nfb2s9OgotK2JyZWFrCi0rZmkKLSsKLStybSAtZiBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotKwotK2RvbmUKLSsjIEJlY2F1c2Ugb2YgYGJy ZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KLSty bSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotK2lmICRhY19wcmVwcm9jX29rOyB0 aGVuCi0rICBicmVhawotK2ZpCi0rCi0rICAgIGRvbmUKLSsgICAgYWNfY3ZfcHJvZ19DUFA9JENQ UAotKwotK2ZpCi0rICBDUFA9JGFjX2N2X3Byb2dfQ1BQCi0rZWxzZQotKyAgYWNfY3ZfcHJvZ19D UFA9JENQUAotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENQUCIg PiY1Ci0rJGFzX2VjaG8gIiRDUFAiID4mNjsgfQotK2FjX3ByZXByb2Nfb2s9ZmFsc2UKLStmb3Ig YWNfY19wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKLStkbwotKyAgIyBVc2UgYSBoZWFkZXIg ZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotKyAgIyB3aXRo IGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCi0rICAjIFByZWZlciA8bGltaXRzLmg+IHRv IDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICMgPGxpbWl0cy5o PiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgotKyAgIyBPbiB0aGUgTmVY VCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLSsg ICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2gg dGhpcyBjYXNlLgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRl ZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0r Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K LSsjaWZkZWYgX19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNs dWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYKLSsJCSAgICAgU3ludGF4IGVycm9yCi0rX0FDRU9GCi0r aWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQot KyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0 ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2NfcHJlcHJv Y193YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5l cnIKLSsgICAgICAgfTsgdGhlbgotKyAgOgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKLSsKLSsgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Zp Ci0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICMgT0ssIHdv cmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJz Ci0rICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmgg Pj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLStfQUNF T0YKLStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRh Y190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK LSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3Qu ZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u ZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1 Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY19w cmVwcm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgotKyAgICAgICB9OyB0aGVuCi0rICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlk IGlucHV0LgotK2NvbnRpbnVlCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwot KyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KLSthY19wcmVwcm9jX29rPToKLSticmVhawotK2ZpCi0r Ci0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLStkb25lCi0rIyBCZWNh dXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNr aXBwZWQuCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLStpZiAkYWNfcHJl cHJvY19vazsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVy cm9yOiBDIHByZXByb2Nlc3NvciBcIiRDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKLStTZWUgXGBj b25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IEMgcHJlcHJvY2Vzc29yIFwiJENQUFwiIGZhaWxzIHNhbml0eSBjaGVjawotK1NlZSBcYGNv bmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfTsgfQotK2ZpCi0rCi0rYWNfZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwot K2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4m NScKLSthY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdT ICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0k YWNfY3ZfY19jb21waWxlcl9nbnUKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19j dl9oZWFkZXJfc3RkYytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25m ZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK LStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAq LwotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaW5jbHVkZSA8c3RkYXJnLmg+Ci0rI2luY2x1ZGUg PHN0cmluZy5oPgotKyNpbmNsdWRlIDxmbG9hdC5oPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0r Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29i amV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgot KyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190 cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRM SU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsg IChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsg IGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25m dGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYg ewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRl c3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0r ICBhY19jdl9oZWFkZXJfc3RkYz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 Ci0rCi0rCWFjX2N2X2hlYWRlcl9zdGRjPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsKLStpZiB0ZXN0ICRh Y19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyBTdW5PUyA0Lnggc3RyaW5nLmggZG9l cyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFyeSB0byBBTlNJLgotKyAgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rCi0rX0FD RU9GCi0raWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotKyAgJEVH UkVQICJtZW1jaHIiID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIGFjX2N2 X2hlYWRlcl9zdGRjPW5vCi0rZmkKLStybSAtZiBjb25mdGVzdCoKLSsKLStmaQotKwotK2lmIHRl c3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0rICAjIElTQyAyLjAuMiBzdGRsaWIu aCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRvIEFOU0kuCi0rICBjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsK LStfQUNFT0YKLStpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8Ci0r ICAkRUdSRVAgImZyZWUiID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIGFj X2N2X2hlYWRlcl9zdGRjPW5vCi0rZmkKLStybSAtZiBjb25mdGVzdCoKLSsKLStmaQotKwotK2lm IHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0rICAjIC9iaW4vY2MgaW4gSXJp eC00LjAuNSBnZXRzIG5vbi1BTlNJIGN0eXBlIG1hY3JvcyB1bmxlc3MgdXNpbmcgLWFuc2kuCi0r ICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgotKyAgOgotK2Vsc2UKLSsg IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19B Q0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGN0 eXBlLmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpZiAoKCcgJyAmIDB4MEZGKSA9PSAweDAy MCkKLSsjIGRlZmluZSBJU0xPV0VSKGMpICgnYScgPD0gKGMpICYmIChjKSA8PSAneicpCi0rIyBk ZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICdBJyArICgoYykgLSAnYScpIDogKGMpKQot KyNlbHNlCi0rIyBkZWZpbmUgSVNMT1dFUihjKSBcCi0rCQkgICAoKCdhJyA8PSAoYykgJiYgKGMp IDw9ICdpJykgXAotKwkJICAgICB8fCAoJ2onIDw9IChjKSAmJiAoYykgPD0gJ3InKSBcCi0rCQkg ICAgIHx8ICgncycgPD0gKGMpICYmIChjKSA8PSAneicpKQotKyMgZGVmaW5lIFRPVVBQRVIoYykg KElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykpCi0rI2VuZGlmCi0rCi0rI2RlZmluZSBY T1IoZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkgJiYgKGYpKSkKLStpbnQKLSttYWluICgp Ci0rewotKyAgaW50IGk7Ci0rICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCi0rICAgIGlmIChY T1IgKGlzbG93ZXIgKGkpLCBJU0xPV0VSIChpKSkKLSsJfHwgdG91cHBlciAoaSkgIT0gVE9VUFBF UiAoaSkpCi0rICAgICAgcmV0dXJuIDI7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0g LWYgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIo KCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0JwotKyAg eyAoY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfdHJ5IikgMj4mNQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSsgIDoKLStlbHNlCi0rICAkYXNf ZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rKCBleGl0ICRhY19zdGF0dXMgKQotK2FjX2N2 X2hlYWRlcl9zdGRjPW5vCi0rZmkKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUg Ki5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0 IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2ZpCi0rCi0rCi0rZmkKLStm aQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3Rk YyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9oZWFkZXJfc3RkYyIgPiY2OyB9Ci0raWYgdGVzdCAk YWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9B Q0VPRgotKyNkZWZpbmUgU1REQ19IRUFERVJTIDEKLStfQUNFT0YKLSsKLStmaQotKwotKyMgT24g SVJJWCA1LjMsIHN5cy90eXBlcyBhbmQgaW50dHlwZXMuaCBhcmUgY29uZmxpY3RpbmcuCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rZm9yIGFjX2hlYWRlciBpbiBzeXMvdHlwZXMuaCBzeXMv c3RhdC5oIHN0ZGxpYi5oIHN0cmluZy5oIG1lbW9yeS5oIHN0cmluZ3MuaCBcCi0rCQkgIGludHR5 cGVzLmggc3RkaW50LmggdW5pc3RkLmgKLStkbwotK2FzX2FjX0hlYWRlcj1gJGFzX2VjaG8gImFj X2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciAkYWNfaGVhZGVyLi4uICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFzX2FjX0hlYWRl cjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+ PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyog ZW5kIGNvbmZkZWZzLmguICAqLwotKyRhY19pbmNsdWRlc19kZWZhdWx0Ci0rCi0rI2luY2x1ZGUg PCRhY19oZWFkZXI+Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsg KGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNf Y29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsg IGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAt eiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAg ICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBldmFsICIkYXNf YWNfSGVhZGVyPXllcyIKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWV2 YWwgIiRhc19hY19IZWFkZXI9bm8iCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotK2FjX3Jlcz1gZXZhbCAn YXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAg ICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSsk YXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2Fj X0hlYWRlcid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4JGFzX3Zh bCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5l IGAkYXNfZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9jcHBgIDEKLStfQUNFT0YKLSsK LStmaQotKwotK2RvbmUKLSsKLSsKLSsKLStmb3IgYWNfaGVhZGVyIGluIGRsZmNuLmgKLStkbwot K2FzX2FjX0hlYWRlcj1gJGFzX2VjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190 cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFk ZXIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICIgPiY2OyB9 Ci0raWYgeyBhc192YXI9JGFzX2FjX0hlYWRlcjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0 fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8K LStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyRhY19pbmNs dWRlc19kZWZhdWx0Ci0rCi0rI2luY2x1ZGUgPCRhY19oZWFkZXI+Ci0rX0FDRU9GCi0rcm0gLWYg Y29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAi KCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBh Y19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy Ci0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNf b2JqZXh0OyB0aGVuCi0rICBldmFsICIkYXNfYWNfSGVhZGVyPXllcyIKLStlbHNlCi0rICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWV2YWwgIiRhc19hY19IZWFkZXI9bm8iCi0rZmkKLSsK LStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRh Y19leHQKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQotKwkJ ICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rYXNf dmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0hlYWRlcid9Ci0rCQkgJGFzX2VjaG8gIiRhc192 YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIGNhdCA+PmNv bmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIGAkYXNfZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8 ICRhc190cl9jcHBgIDEKLStfQUNFT0YKLSsKLStmaQotKwotK2RvbmUKLSsKLSsKLSsKLSthY19l eHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1j ICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENY WCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21w aWxlcl9nbnUKLStpZiB0ZXN0IC16ICIkQ1hYIjsgdGhlbgotKyAgaWYgdGVzdCAtbiAiJENDQyI7 IHRoZW4KLSsgICAgQ1hYPSRDQ0MKLSsgIGVsc2UKLSsgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xf cHJlZml4IjsgdGhlbgotKyAgZm9yIGFjX3Byb2cgaW4gZysrIGMrKyBncHAgYUNDIENDIGN4eCBj YysrIGNsLmV4ZSBGQ0MgS0NDIFJDQyB4bENfciB4bEMKLSsgIGRvCi0rICAgICMgRXh0cmFjdCB0 aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUg YSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNf cHJvZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAi ID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJENYWCI7 IHRoZW4KLSsgIGFjX2N2X3Byb2dfQ1hYPSIkQ1hYIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0 aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgot K2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl Y3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0NYWD0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ci Ci0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9 JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK0NYWD0kYWNfY3ZfcHJvZ19DWFgKLStpZiB0ZXN0 IC1uICIkQ1hYIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JENYWCIgPiY1Ci0rJGFzX2VjaG8gIiRDWFgiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQot K2ZpCi0rCi0rCi0rICAgIHRlc3QgLW4gIiRDWFgiICYmIGJyZWFrCi0rICBkb25lCi0rZmkKLStp ZiB0ZXN0IC16ICIkQ1hYIjsgdGhlbgotKyAgYWNfY3RfQ1hYPSRDWFgKLSsgIGZvciBhY19wcm9n IGluIGcrKyBjKysgZ3BwIGFDQyBDQyBjeHggY2MrKyBjbC5leGUgRkNDIEtDQyBSQ0MgeGxDX3Ig eGxDCi0rZG8KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBp dCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfcHJvZzsg YWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFj X3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsg fQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0 X0NYWCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfY3RfQ1hYIiAjIExldCB0 aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19z YXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X0NYWD0i JGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2Rv bmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X0NYWD0kYWNfY3ZfcHJv Z19hY19jdF9DWFgKLStpZiB0ZXN0IC1uICIkYWNfY3RfQ1hYIjsgdGhlbgotKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRh Y19jdF9DWFgiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICB0ZXN0 IC1uICIkYWNfY3RfQ1hYIiAmJiBicmVhawotK2RvbmUKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3Rf Q1hYIiA9IHg7IHRoZW4KLSsgICAgQ1hYPSJnKysiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3Nz X2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBo b3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3Nz IHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dh cm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIENYWD0kYWNfY3RfQ1hYCi0rICBmaQotK2ZpCi0rCi0r ICBmaQotK2ZpCi0rIyBQcm92aWRlIHNvbWUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbXBpbGVy LgotKyRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciB2 ZXJzaW9uIiA+JjUKLStzZXQgWCAkYWNfY29tcGlsZQotK2FjX2NvbXBpbGVyPSQyCi0reyAoYWNf dHJ5PSIkYWNfY29tcGlsZXIgLS12ZXJzaW9uID4mNSIKLStjYXNlICIoKCRhY190cnkiIGluCi0r ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJ TkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAg KGV2YWwgIiRhY19jb21waWxlciAtLXZlcnNpb24gPiY1IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/ Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0KLSt7IChhY190cnk9IiRhY19jb21waWxlciAtdiA+JjUiCi0r Y2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c JGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190 cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIk YWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZXIgLXYgPiY1IikgMj4mNQot KyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLSt7IChhY190cnk9IiRhY19jb21w aWxlciAtViA+JjUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStl c2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZXIg LVYgPiY1IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLSsKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcg dGhlIEdOVSBDKysgY29tcGlsZXIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIg d2UgYXJlIHVzaW5nIHRoZSBHTlUgQysrIGNvbXBpbGVyLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAi JHthY19jdl9jeHhfY29tcGlsZXJfZ251K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRl c3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29u ZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsjaWZuZGVmIF9fR05VQ19fCi0r ICAgICAgIGNob2tlIG1lCi0rI2VuZGlmCi0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FD RU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBp bGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRl c3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIg PiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQot KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3Jf ZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGFjX2NvbXBpbGVyX2dudT15ZXMKLStlbHNl Ci0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2NvbXBpbGVyX2dudT1ubwotK2Zp Ci0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dC4kYWNfZXh0Ci0rYWNfY3ZfY3h4X2NvbXBpbGVyX2dudT0kYWNfY29tcGlsZXJfZ251Ci0rCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfY3h4X2NvbXBp bGVyX2dudSIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9jeHhfY29tcGlsZXJfZ251IiA+JjY7IH0K LStpZiB0ZXN0ICRhY19jb21waWxlcl9nbnUgPSB5ZXM7IHRoZW4KLSsgIEdYWD15ZXMKLStlbHNl Ci0rICBHWFg9Ci0rZmkKLSthY190ZXN0X0NYWEZMQUdTPSR7Q1hYRkxBR1Mrc2V0fQotK2FjX3Nh dmVfQ1hYRkxBR1M9JENYWEZMQUdTCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIHdoZXRoZXIgJENYWCBhY2NlcHRzIC1nIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3 aGV0aGVyICRDWFggYWNjZXB0cyAtZy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJv Z19jeHhfZytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBhY19zYXZlX2N4eF93ZXJyb3JfZmxhZz0kYWNfY3h4X3dlcnJvcl9mbGFnCi0r ICAgYWNfY3h4X3dlcnJvcl9mbGFnPXllcwotKyAgIGFjX2N2X3Byb2dfY3h4X2c9bm8KLSsgICBD WFhGTEFHUz0iLWciCi0rICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29u ZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0 Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19B Q0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21w aWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0 ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJy ID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9y X2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAt cyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBhY19jdl9wcm9nX2N4eF9nPXllcwotK2Vs c2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAn cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJQ1hYRkxBR1M9IiIKLSsgICAgICBj YXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNF T0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4g KCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRl c3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNf dHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0r ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i KSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0 dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBy bSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpl eHQ7IHRoZW4KLSsgIDoKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFj X2N4eF93ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jeHhfd2Vycm9yX2ZsYWcKLSsJIENYWEZMQUdTPSIt ZyIKLSsJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAq LwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50 Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAt ZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNl ICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsg IGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAot KwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3Qu JGFjX29iamV4dDsgdGhlbgotKyAgYWNfY3ZfcHJvZ19jeHhfZz15ZXMKLStlbHNlCi0rICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotKwotK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2Zp Ci0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dC4kYWNfZXh0Ci0rICAgYWNfY3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxh ZwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3Byb2df Y3h4X2ciID4mNQotKyRhc19lY2hvICIkYWNfY3ZfcHJvZ19jeHhfZyIgPiY2OyB9Ci0raWYgdGVz dCAiJGFjX3Rlc3RfQ1hYRkxBR1MiID0gc2V0OyB0aGVuCi0rICBDWFhGTEFHUz0kYWNfc2F2ZV9D WFhGTEFHUwotK2VsaWYgdGVzdCAkYWNfY3ZfcHJvZ19jeHhfZyA9IHllczsgdGhlbgotKyAgaWYg dGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgQ1hYRkxBR1M9Ii1nIC1PMiIKLSsgIGVsc2UK LSsgICAgQ1hYRkxBR1M9Ii1nIgotKyAgZmkKLStlbHNlCi0rICBpZiB0ZXN0ICIkR1hYIiA9IHll czsgdGhlbgotKyAgICBDWFhGTEFHUz0iLU8yIgotKyAgZWxzZQotKyAgICBDWFhGTEFHUz0KLSsg IGZpCi0rZmkKLSthY19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGls ZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xp bms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2Nv bXBpbGVyX2dudQotKwotK2RlcGNjPSIkQ1hYIiAgYW1fY29tcGlsZXJfbGlzdD0KLSsKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVw Y2MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNj Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVy X3R5cGUrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgaWYgdGVzdCAteiAiJEFNREVQX1RSVUUiICYmIHRlc3QgLWYgIiRhbV9kZXBjb21w IjsgdGhlbgotKyAgIyBXZSBtYWtlIGEgc3ViZGlyIGFuZCBkbyB0aGUgdGVzdHMgdGhlcmUuICBP dGhlcndpc2Ugd2UgY2FuIGVuZCB1cAotKyAgIyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3ZSBk b24ndCBrbm93IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBGb3IKLSsgICMgaW5zdGFuY2UgaXQg d2FzIHJlcG9ydGVkIHRoYXQgb24gSFAtVVggdGhlIGdjYyB0ZXN0IHdpbGwgZW5kIHVwCi0rICAj IG1ha2luZyBhIGR1bW15IGZpbGUgbmFtZWQgYEQnIC0tIGJlY2F1c2UgYC1NRCcgbWVhbnMgYHB1 dCB0aGUgb3V0cHV0Ci0rICAjIGluIEQnLgotKyAgbWtkaXIgY29uZnRlc3QuZGlyCi0rICAjIENv cHkgZGVwY29tcCB0byBzdWJkaXIgYmVjYXVzZSBvdGhlcndpc2Ugd2Ugd29uJ3QgZmluZCBpdCBp ZiB3ZSdyZQotKyAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KLSsgIGNwICIkYW1fZGVw Y29tcCIgY29uZnRlc3QuZGlyCi0rICBjZCBjb25mdGVzdC5kaXIKLSsgICMgV2Ugd2lsbCBidWls ZCBvYmplY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVjYXVzZQotKyAg IyBpdCBoZWxwcyB0byBkZXRlY3QgaW5hcHBsaWNhYmxlIGRlcGVuZGVuY3kgbW9kZXMuICBGb3Ig aW5zdGFuY2UKLSsgICMgYm90aCBUcnU2NCdzIGNjIGFuZCBJQ0Mgc3VwcG9ydCAtTUQgdG8gb3V0 cHV0IGRlcGVuZGVuY2llcyBhcyBhCi0rICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0aW9uLCBi dXQgSUNDIHdpbGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4KLSsgICMgdGhlIGN1cnJlbnQgZGly ZWN0b3J5IHdoaWxlIFRydTY0IHdpbGwgcHV0IHRoZW0gaW4gdGhlIG9iamVjdAotKyAgIyBkaXJl Y3RvcnkuCi0rICBta2RpciBzdWIKLSsKLSsgIGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGls ZXJfdHlwZT1ub25lCi0rICBpZiB0ZXN0ICIkYW1fY29tcGlsZXJfbGlzdCIgPSAiIjsgdGhlbgot KyAgICAgYW1fY29tcGlsZXJfbGlzdD1gc2VkIC1uICdzL14jKlwoW2EtekEtWjAtOV0qXCkpJC9c MS9wJyA8IC4vZGVwY29tcGAKLSsgIGZpCi0rICBhbV9fdW5pdmVyc2FsPWZhbHNlCi0rICBjYXNl ICIgJGRlcGNjICIgaW4gIygKLSsgICAgICpcIC1hcmNoXCAqXCAtYXJjaFwgKikgYW1fX3VuaXZl cnNhbD10cnVlIDs7Ci0rICAgICBlc2FjCi0rCi0rICBmb3IgZGVwbW9kZSBpbiAkYW1fY29tcGls ZXJfbGlzdDsgZG8KLSsgICAgIyBTZXR1cCBhIHNvdXJjZSB3aXRoIG1hbnkgZGVwZW5kZW5jaWVz LCBiZWNhdXNlIHNvbWUgY29tcGlsZXJzCi0rICAgICMgbGlrZSB0byB3cmFwIGxhcmdlIGRlcGVu ZGVuY3kgbGlzdHMgb24gY29sdW1uIDgwICh3aXRoIFwpLCBhbmQKLSsgICAgIyB3ZSBzaG91bGQg bm90IGNob29zZSBhIGRlcGNvbXAgbW9kZSB3aGljaCBpcyBjb25mdXNlZCBieSB0aGlzLgotKyAg ICAjCi0rICAgICMgV2UgbmVlZCB0byByZWNyZWF0ZSB0aGVzZSBmaWxlcyBmb3IgZWFjaCB0ZXN0 LCBhcyB0aGUgY29tcGlsZXIgbWF5Ci0rICAgICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhlbSB3aGVu IHRlc3Rpbmcgd2l0aCBvYnNjdXJlIGNvbW1hbmQgbGluZXMuCi0rICAgICMgVGhpcyBoYXBwZW5z IGF0IGxlYXN0IHdpdGggdGhlIEFJWCBDIGNvbXBpbGVyLgotKyAgICA6ID4gc3ViL2NvbmZ0ZXN0 LmMKLSsgICAgZm9yIGkgaW4gMSAyIDMgNCA1IDY7IGRvCi0rICAgICAgZWNobyAnI2luY2x1ZGUg ImNvbmZ0c3QnJGknLmgiJyA+PiBzdWIvY29uZnRlc3QuYwotKyAgICAgICMgVXNpbmcgYDogPiBz dWIvY29uZnRzdCRpLmgnIGNyZWF0ZXMgb25seSBzdWIvY29uZnRzdDEuaCB3aXRoCi0rICAgICAg IyBTb2xhcmlzIDgncyB7L3Vzcix9L2Jpbi9zaC4KLSsgICAgICB0b3VjaCBzdWIvY29uZnRzdCRp LmgKLSsgICAgZG9uZQotKyAgICBlY2hvICIke2FtX19pbmNsdWRlfSAke2FtX19xdW90ZX1zdWIv Y29uZnRlc3QuUG8ke2FtX19xdW90ZX0iID4gY29uZm1mCi0rCi0rICAgICMgV2UgY2hlY2sgd2l0 aCBgLWMnIGFuZCBgLW8nIGZvciB0aGUgc2FrZSBvZiB0aGUgImRhc2htc3Rkb3V0IgotKyAgICAj IG1vZGUuICBJdCB0dXJucyBvdXQgdGhhdCB0aGUgU3VuUHJvIEMrKyBjb21waWxlciBkb2VzIG5v dCBwcm9wZXJseQotKyAgICAjIGhhbmRsZSBgLU0gLW8nLCBhbmQgd2UgbmVlZCB0byBkZXRlY3Qg dGhpcy4gIEFsc28sIHNvbWUgSW50ZWwKLSsgICAgIyB2ZXJzaW9ucyBoYWQgdHJvdWJsZSB3aXRo IG91dHB1dCBpbiBzdWJkaXJzCi0rICAgIGFtX19vYmo9c3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99 Ci0rICAgIGFtX19taW51c19vYmo9Ii1vICRhbV9fb2JqIgotKyAgICBjYXNlICRkZXBtb2RlIGlu Ci0rICAgIGdjYykKLSsgICAgICAjIFRoaXMgZGVwbW9kZSBjYXVzZXMgYSBjb21waWxlciByYWNl IGluIHVuaXZlcnNhbCBtb2RlLgotKyAgICAgIHRlc3QgIiRhbV9fdW5pdmVyc2FsIiA9IGZhbHNl IHx8IGNvbnRpbnVlCi0rICAgICAgOzsKLSsgICAgbm9zaWRlZWZmZWN0KQotKyAgICAgICMgYWZ0 ZXIgdGhpcyB0YWcsIG1lY2hhbmlzbXMgYXJlIG5vdCBieSBzaWRlLWVmZmVjdCwgc28gdGhleSds bAotKyAgICAgICMgb25seSBiZSB1c2VkIHdoZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQKLSsgICAg ICBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiA9IHh5ZXM7IHRoZW4KLSsJ Y29udGludWUKLSsgICAgICBlbHNlCi0rCWJyZWFrCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAg ICBtc3Zpc3VhbGNwcCB8IG1zdmNtc3lzKQotKyAgICAgICMgVGhpcyBjb21waWxlciB3b24ndCBn cm9rIGAtYyAtbycsIGJ1dCBhbHNvLCB0aGUgbWludXNvIHRlc3QgaGFzCi0rICAgICAgIyBub3Qg cnVuIHlldC4gIFRoZXNlIGRlcG1vZGVzIGFyZSBsYXRlIGVub3VnaCBpbiB0aGUgZ2FtZSwgYW5k Ci0rICAgICAgIyBzbyB3ZWFrIHRoYXQgdGhlaXIgZnVuY3Rpb25pbmcgc2hvdWxkIG5vdCBiZSBp bXBhY3RlZC4KLSsgICAgICBhbV9fb2JqPWNvbmZ0ZXN0LiR7T0JKRVhULW99Ci0rICAgICAgYW1f X21pbnVzX29iaj0KLSsgICAgICA7OwotKyAgICBub25lKSBicmVhayA7OwotKyAgICBlc2FjCi0r ICAgIGlmIGRlcG1vZGU9JGRlcG1vZGUgXAotKyAgICAgICBzb3VyY2U9c3ViL2NvbmZ0ZXN0LmMg b2JqZWN0PSRhbV9fb2JqIFwKLSsgICAgICAgZGVwZmlsZT1zdWIvY29uZnRlc3QuUG8gdG1wZGVw ZmlsZT1zdWIvY29uZnRlc3QuVFBvIFwKLSsgICAgICAgJFNIRUxMIC4vZGVwY29tcCAkZGVwY2Mg LWMgJGFtX19taW51c19vYmogc3ViL2NvbmZ0ZXN0LmMgXAotKyAgICAgICAgID4vZGV2L251bGwg Mj5jb25mdGVzdC5lcnIgJiYKLSsgICAgICAgZ3JlcCBzdWIvY29uZnRzdDEuaCBzdWIvY29uZnRl c3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICBncmVwIHN1Yi9jb25mdHN0Ni5oIHN1 Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCi0rICAgICAgIGdyZXAgJGFtX19vYmog c3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgJHtNQUtFLW1ha2V9 IC1zIC1mIGNvbmZtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgICAgIyBpY2MgZG9lc24n dCBjaG9rZSBvbiB1bmtub3duIG9wdGlvbnMsIGl0IHdpbGwganVzdCBpc3N1ZSB3YXJuaW5ncwot KyAgICAgICMgb3IgcmVtYXJrcyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28gd2UgZ3JlcCBzdGRl cnIgZm9yIGFueSBtZXNzYWdlCi0rICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdhcyBpZ25v cmVkIG9yIG5vdCBzdXBwb3J0ZWQuCi0rICAgICAgIyBXaGVuIGdpdmVuIC1NUCwgaWNjIDcuMCBh bmQgNy4xIGNvbXBsYWluIHRodXNseToKLSsgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgd2Fy bmluZzogaWdub3Jpbmcgb3B0aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVpcmVkCi0rICAgICAg IyBUaGUgZGlhZ25vc2lzIGNoYW5nZWQgaW4gaWNjIDguMDoKLSsgICAgICAjICAgaWNjOiBDb21t YW5kIGxpbmUgcmVtYXJrOiBvcHRpb24gJy1NUCcgbm90IHN1cHBvcnRlZAotKyAgICAgIGlmIChn cmVwICdpZ25vcmluZyBvcHRpb24nIGNvbmZ0ZXN0LmVyciB8fAotKyAgICAgICAgICBncmVwICdu b3Qgc3VwcG9ydGVkJyBjb25mdGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNl Ci0rICAgICAgICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUK LSsgICAgICAgIGJyZWFrCi0rICAgICAgZmkKLSsgICAgZmkKLSsgIGRvbmUKLSsKLSsgIGNkIC4u Ci0rICBybSAtcmYgY29uZnRlc3QuZGlyCi0rZWxzZQotKyAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2ll c19jb21waWxlcl90eXBlPW5vbmUKLStmaQotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY1 Ci0rJGFzX2VjaG8gIiRhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNjsg fQotK0NYWERFUE1PREU9ZGVwbW9kZT0kYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90 eXBlCi0rCi0rIGlmCi0rICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4 bm8gXAotKyAgJiYgdGVzdCAiJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIg PSBnY2MzOyB0aGVuCi0rICBhbV9fZmFzdGRlcENYWF9UUlVFPQotKyAgYW1fX2Zhc3RkZXBDWFhf RkFMU0U9JyMnCi0rZWxzZQotKyAgYW1fX2Zhc3RkZXBDWFhfVFJVRT0nIycKLSsgIGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFPQotK2ZpCi0rCi0rCi0raWYgdGVzdCAtbiAiJENYWCIgJiYgKCB0ZXN0ICJY JENYWCIgIT0gIlhubyIgJiYKLSsgICAgKCAodGVzdCAiWCRDWFgiID0gIlhnKysiICYmIGBnKysg LXYgPi9kZXYvbnVsbCAyPiYxYCApIHx8Ci0rICAgICh0ZXN0ICJYJENYWCIgIT0gIlhnKysiKSkp IDsgdGhlbgotKyAgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNf Y29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1 JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IuLi4gIiA+JjY7IH0KLStp ZiB0ZXN0IC16ICIkQ1hYQ1BQIjsgdGhlbgotKyAgaWYgdGVzdCAiJHthY19jdl9wcm9nX0NYWENQ UCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1c2UgQ1hYQ1BQIG5lZWRzIHRvIGJlIGV4cGFu ZGVkCi0rICAgIGZvciBDWFhDUFAgaW4gIiRDWFggLUUiICIvbGliL2NwcCIKLSsgICAgZG8KLSsg ICAgICBhY19wcmVwcm9jX29rPWZhbHNlCi0rZm9yIGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBp biAnJyB5ZXMKLStkbwotKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2Nj LCBzbyBjb25maWd1cmluZyBnbGliYwotKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIg d29ya3MuCi0rICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18g aXMgZGVmaW5lZCwgc2luY2UKLSsgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3Rh bmRpbmcgY29tcGlsZXJzLgotKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0 aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLSsgICMgbm90IGp1c3QgdGhyb3VnaCBjcHAu ICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgotKyAgY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaWZkZWYgX19TVERDX18KLSsjIGlu Y2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYK LSsJCSAgICAgU3ludGF4IGVycm9yCi0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNv bmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAq XFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK LStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNo b1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY3BwIGNv bmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251 bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vy cm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH07IHRoZW4K LSsgIDoKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICAjIEJyb2tlbjog ZmFpbHMgb24gdmFsaWQgaW5wdXQuCi0rY29udGludWUKLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAg Tm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycwotKyAgIyBjYW4gYmUgZGV0ZWN0 ZWQgYW5kIGhvdy4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZk ZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAot K2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICov Ci0rI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIk YWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIk YWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/ Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYg Y29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9 ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRh Y19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAg IH07IHRoZW4KLSsgICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCi0rY29udGlu dWUKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK LStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICAjIFBhc3NlcyBib3Ro IHRlc3RzLgotK2FjX3ByZXByb2Nfb2s9OgotK2JyZWFrCi0rZmkKLSsKLStybSAtZiBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX2V4dAotKwotK2RvbmUKLSsjIEJlY2F1c2Ugb2YgYGJyZWFrJywg X0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KLStybSAtZiBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotK2lmICRhY19wcmVwcm9jX29rOyB0aGVuCi0r ICBicmVhawotK2ZpCi0rCi0rICAgIGRvbmUKLSsgICAgYWNfY3ZfcHJvZ19DWFhDUFA9JENYWENQ UAotKwotK2ZpCi0rICBDWFhDUFA9JGFjX2N2X3Byb2dfQ1hYQ1BQCi0rZWxzZQotKyAgYWNfY3Zf cHJvZ19DWFhDUFA9JENYWENQUAotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJENYWENQUCIgPiY1Ci0rJGFzX2VjaG8gIiRDWFhDUFAiID4mNjsgfQotK2FjX3ByZXBy 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 b25mdGVzdC4kYWNfZXh0Ci0raWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KLSsgIDoKLStlbHNlCi0r ICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4m NQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLStfbHRf Y2F1Z2h0X0NYWF9lcnJvcj15ZXM7IH0KLStmaQotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQ ICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRl c3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19j b21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rZWxzZQotKyAgX2x0X2NhdWdo dF9DWFhfZXJyb3I9eWVzCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsjIFNldCBvcHRpb25zCi0rCi0r Ci0rCi0rICAgICAgICBlbmFibGVfZGxvcGVuPW5vCi0rCi0rCi0rICBlbmFibGVfd2luMzJfZGxs PW5vCi0rCi0rCi0rCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1waWMgd2FzIGdpdmVu LgotK2lmIHRlc3QgIiR7d2l0aF9waWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdp dGhfcGljOyBwaWNfbW9kZT0iJHdpdGh2YWwiCi0rZWxzZQotKyAgcGljX21vZGU9ZGVmYXVsdAot K2ZpCi0rCi0rCi0rdGVzdCAteiAiJHBpY19tb2RlIiAmJiBwaWNfbW9kZT1kZWZhdWx0Ci0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtZmFzdC1pbnN0YWxs IHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9mYXN0X2luc3RhbGwrc2V0fSIgPSBzZXQ7 IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2Zhc3RfaW5zdGFsbDsgcD0ke1BBQ0tBR0UtZGVm YXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxlX2Zhc3RfaW5z dGFsbD15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8gOzsKLSsgICAgKikK LSsgICAgICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCi0rICAgICAgIyBMb29rIGF0IHRoZSBhcmd1 bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgotKyAg ICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgotKyAg ICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KLSsJSUZTPSIkbHRfc2F2ZV9pZnMiCi0rCWlm IHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCi0rCSAgZW5hYmxlX2Zhc3RfaW5zdGFsbD15ZXMK LSsJZmkKLSsgICAgICBkb25lCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICAgOzsK LSsgICAgZXNhYwotK2Vsc2UKLSsgIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzCi0rZmkKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsjIFRoaXMgY2FuIGJlIHVzZWQgdG8gcmVidWls ZCBsaWJ0b29sIHdoZW4gbmVlZGVkCi0rTElCVE9PTF9ERVBTPSIkbHRtYWluIgotKwotKyMgQWx3 YXlzIHVzZSBvdXIgb3duIGxpYnRvb2wuCi0rTElCVE9PTD0nJChTSEVMTCkgJCh0b3BfYnVpbGRk aXIpL2xpYnRvb2wnCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rdGVzdCAteiAiJExOX1MiICYmIExOX1M9 ImxuIC1zIgotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotK2lmIHRl c3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCi0rICAgc2V0b3B0IE5PX0dMT0JfU1VC U1QKLStmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igb2Jq ZGlyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Igb2JqZGlyLi4uICIgPiY2OyB9Ci0r aWYgdGVzdCAiJHtsdF9jdl9vYmpkaXIrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgcm0gLWYgLmxpYnMgMj4vZGV2L251bGwKLStta2Rp ciAubGlicyAyPi9kZXYvbnVsbAotK2lmIHRlc3QgLWQgLmxpYnM7IHRoZW4KLSsgIGx0X2N2X29i amRpcj0ubGlicwotK2Vsc2UKLSsgICMgTVMtRE9TIGRvZXMgbm90IGFsbG93IGZpbGVuYW1lcyB0 aGF0IGJlZ2luIHdpdGggYSBkb3QuCi0rICBsdF9jdl9vYmpkaXI9X2xpYnMKLStmaQotK3JtZGly IC5saWJzIDI+L2Rldi9udWxsCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkbHRfY3Zfb2JqZGlyIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X29iamRpciIgPiY2OyB9 Ci0rb2JqZGlyPSRsdF9jdl9vYmpkaXIKLSsKLSsKLSsKLSsKLSsKLStjYXQgPj5jb25mZGVmcy5o IDw8X0FDRU9GCi0rI2RlZmluZSBMVF9PQkpESVIgIiRsdF9jdl9vYmpkaXIvIgotK19BQ0VPRgot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotK2Nhc2Ug JGhvc3Rfb3MgaW4KLSthaXgzKikKLSsgICMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0 aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dyYW0uICBGb3Igc29tZQotKyAgIyByZWFzb24sIGlmIHdl IHNldCB0aGUgQ09MTEVDVF9OQU1FUyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHByb2JsZW1z Ci0rICAjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCi0rICBpZiB0ZXN0ICJYJHtDT0xMRUNU X05BTUVTK3NldH0iICE9IFhzZXQ7IHRoZW4KLSsgICAgQ09MTEVDVF9OQU1FUz0KLSsgICAgZXhw b3J0IENPTExFQ1RfTkFNRVMKLSsgIGZpCi0rICA7OwotK2VzYWMKLSsKLSsjIFNlZCBzdWJzdGl0 dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVz Ci0rIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1x dW90ZWQgc3RyaW5ncy4KLStzZWRfcXVvdGVfc3Vic3Q9J3MvXChbImAkXFxdXCkvXFxcMS9nJwot KwotKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGRvIG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2Vz LgotK2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9cKFsiYFxcXVwpL1xcXDEvZycKLSsKLSsjIFNlZCBz dWJzdGl0dXRpb24gdG8gZGVsYXkgZXhwYW5zaW9uIG9mIGFuIGVzY2FwZWQgc2hlbGwgdmFyaWFi bGUgaW4gYQotKyMgZG91YmxlX3F1b3RlX3N1YnN0J2VkIHN0cmluZy4KLStkZWxheV92YXJpYWJs ZV9zdWJzdD0ncy9cXFxcXFxcXFxcXCQvXFxcXFxcJC9nJwotKwotKyMgU2VkIHN1YnN0aXR1dGlv biB0byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaW5nbGUgcXVvdGUuCi0rZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0PSdzLydcJycvJ1wnXFxcXFxcXCdcJycvZycKLSsKLSsjIFNlZCBz dWJzdGl0dXRpb24gdG8gYXZvaWQgYWNjaWRlbnRhbCBnbG9iYmluZyBpbiBldmFsZWQgZXhwcmVz c2lvbnMKLStub19nbG9iX3N1YnN0PSdzL1wqL1xcXCovZycKLSsKLSsjIEdsb2JhbCB2YXJpYWJs ZXM6Ci0rb2ZpbGU9bGlidG9vbAotK2Nhbl9idWlsZF9zaGFyZWQ9eWVzCi0rCi0rIyBBbGwga25v d24gbGlua2VycyByZXF1aXJlIGEgYC5hJyBhcmNoaXZlIGZvciBzdGF0aWMgbGlua2luZyAoZXhj ZXB0IE1TVkMsCi0rIyB3aGljaCBuZWVkcyAnLmxpYicpLgotK2xpYmV4dD1hCi0rCi0rd2l0aF9n bnVfbGQ9IiRsdF9jdl9wcm9nX2dudV9sZCIKLSsKLStvbGRfQ0M9IiRDQyIKLStvbGRfQ0ZMQUdT PSIkQ0ZMQUdTIgotKwotKyMgU2V0IHNhbmUgZGVmYXVsdHMgZm9yIHZhcmlvdXMgdmFyaWFibGVz Ci0rdGVzdCAteiAiJENDIiAmJiBDQz1jYwotK3Rlc3QgLXogIiRMVENDIiAmJiBMVENDPSRDQwot K3Rlc3QgLXogIiRMVENGTEFHUyIgJiYgTFRDRkxBR1M9JENGTEFHUwotK3Rlc3QgLXogIiRMRCIg JiYgTEQ9bGQKLSt0ZXN0IC16ICIkYWNfb2JqZXh0IiAmJiBhY19vYmpleHQ9bwotKwotK2ZvciBj Y190ZW1wIGluICRjb21waWxlciIiOyBkbwotKyAgY2FzZSAkY2NfdGVtcCBpbgotKyAgICBjb21w aWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7Ci0rICAgIGRp c3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlmeSApIDs7Ci0rICAgIFwt KikgOzsKLSsgICAgKikgYnJlYWs7OwotKyAgZXNhYwotK2RvbmUKLStjY19iYXNlbmFtZT1gJEVD SE8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFzLSUl ImAKLSsKLSsKLSsjIE9ubHkgcGVyZm9ybSB0aGUgY2hlY2sgZm9yIGZpbGUsIGlmIHRoZSBjaGVj ayBtZXRob2QgcmVxdWlyZXMgaXQKLSt0ZXN0IC16ICIkTUFHSUNfQ01EIiAmJiBNQUdJQ19DTUQ9 ZmlsZQotK2Nhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCi0rZmlsZV9tYWdpYyopCi0rICBp ZiB0ZXN0ICIkZmlsZV9tYWdpY19jbWQiID0gJyRNQUdJQ19DTUQnOyB0aGVuCi0rICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJHthY190b29sX3ByZWZpeH1maWxl IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJHthY190b29sX3ByZWZpeH1maWxlLi4u ICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wYXRoX01BR0lDX0NNRCtzZXR9IiA9IHNldDsg dGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXNlICRNQUdJ Q19DTUQgaW4KLStbXFwvKl0gfCAgPzpbXFwvXSopCi0rICBsdF9jdl9wYXRoX01BR0lDX0NNRD0i JE1BR0lDX0NNRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGgu Ci0rICA7OwotKyopCi0rICBsdF9zYXZlX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIKLSsgIGx0X3Nh dmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgYWNfZHVtbXk9Ii91c3IvYmlu JFBBVEhfU0VQQVJBVE9SJFBBVEgiCi0rICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KLSsg ICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0u Ci0rICAgIGlmIHRlc3QgLWYgJGFjX2Rpci8ke2FjX3Rvb2xfcHJlZml4fWZpbGU7IHRoZW4KLSsg ICAgICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJGFjX2Rpci8ke2FjX3Rvb2xfcHJlZml4fWZpbGUi Ci0rICAgICAgaWYgdGVzdCAtbiAiJGZpbGVfbWFnaWNfdGVzdF9maWxlIjsgdGhlbgotKwljYXNl ICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgotKwkiZmlsZV9tYWdpYyAiKikKLSsJICBmaWxlX21h Z2ljX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogImZpbGVfbWFnaWMgXCgu KlwpImAKLSsJICBNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKLSsJICBpZiBldmFs ICRmaWxlX21hZ2ljX2NtZCBcJGZpbGVfbWFnaWNfdGVzdF9maWxlIDI+IC9kZXYvbnVsbCB8Ci0r CSAgICAkRUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgotKwkgICAg OgotKwkgIGVsc2UKLSsJICAgIGNhdCA8PF9MVF9FT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiB0 aGUgY29tbWFuZCBsaWJ0b29sIHVzZXMgdG8gZGV0ZWN0IHNoYXJlZCBsaWJyYXJpZXMsCi0rKioq ICRmaWxlX21hZ2ljX2NtZCwgcHJvZHVjZXMgb3V0cHV0IHRoYXQgbGlidG9vbCBjYW5ub3QgcmVj b2duaXplLgotKyoqKiBUaGUgcmVzdWx0IGlzIHRoYXQgbGlidG9vbCBtYXkgZmFpbCB0byByZWNv Z25pemUgc2hhcmVkIGxpYnJhcmllcwotKyoqKiBhcyBzdWNoLiAgVGhpcyB3aWxsIGFmZmVjdCB0 aGUgY3JlYXRpb24gb2YgbGlidG9vbCBsaWJyYXJpZXMgdGhhdAotKyoqKiBkZXBlbmQgb24gc2hh cmVkIGxpYnJhcmllcywgYnV0IHByb2dyYW1zIGxpbmtlZCB3aXRoIHN1Y2ggbGlidG9vbAotKyoq KiBsaWJyYXJpZXMgd2lsbCB3b3JrIHJlZ2FyZGxlc3Mgb2YgdGhpcyBwcm9ibGVtLiAgTmV2ZXJ0 aGVsZXNzLCB5b3UKLSsqKiogbWF5IHdhbnQgdG8gcmVwb3J0IHRoZSBwcm9ibGVtIHRvIHlvdXIg c3lzdGVtIG1hbmFnZXIgYW5kL29yIHRvCi0rKioqIGJ1Zy1saWJ0b29sQGdudS5vcmcKLSsKLStf TFRfRU9GCi0rCSAgZmkgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgYnJlYWsKLSsgICAg ZmkKLSsgIGRvbmUKLSsgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgTUFHSUNfQ01EPSIkbHRfc2F2 ZV9NQUdJQ19DTUQiCi0rICA7OwotK2VzYWMKLStmaQotKwotK01BR0lDX0NNRD0iJGx0X2N2X3Bh dGhfTUFHSUNfQ01EIgotK2lmIHRlc3QgLW4gIiRNQUdJQ19DTUQiOyB0aGVuCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTUFHSUNfQ01EIiA+JjUKLSskYXNfZWNobyAi JE1BR0lDX0NNRCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsKLSsK LSsKLStpZiB0ZXN0IC16ICIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiOyB0aGVuCi0rICBpZiB0ZXN0 IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgZmlsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGZp bGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3BhdGhfTUFHSUNfQ01EK3NldH0iID0g c2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhc2Ug JE1BR0lDX0NNRCBpbgotK1tcXC8qXSB8ICA/OltcXC9dKikKLSsgIGx0X2N2X3BhdGhfTUFHSUNf Q01EPSIkTUFHSUNfQ01EIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEg cGF0aC4KLSsgIDs7Ci0rKikKLSsgIGx0X3NhdmVfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIgotKyAg bHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rICBhY19kdW1teT0iL3Vz ci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSCIKLSsgIGZvciBhY19kaXIgaW4gJGFjX2R1bW15OyBk bwotKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNf ZGlyPS4KLSsgICAgaWYgdGVzdCAtZiAkYWNfZGlyL2ZpbGU7IHRoZW4KLSsgICAgICBsdF9jdl9w YXRoX01BR0lDX0NNRD0iJGFjX2Rpci9maWxlIgotKyAgICAgIGlmIHRlc3QgLW4gIiRmaWxlX21h Z2ljX3Rlc3RfZmlsZSI7IHRoZW4KLSsJY2FzZSAkZGVwbGlic19jaGVja19tZXRob2QgaW4KLSsJ ImZpbGVfbWFnaWMgIiopCi0rCSAgZmlsZV9tYWdpY19yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hl Y2tfbWV0aG9kIiA6ICJmaWxlX21hZ2ljIFwoLipcKSJgCi0rCSAgTUFHSUNfQ01EPSIkbHRfY3Zf cGF0aF9NQUdJQ19DTUQiCi0rCSAgaWYgZXZhbCAkZmlsZV9tYWdpY19jbWQgXCRmaWxlX21hZ2lj X3Rlc3RfZmlsZSAyPiAvZGV2L251bGwgfAotKwkgICAgJEVHUkVQICIkZmlsZV9tYWdpY19yZWdl eCIgPiAvZGV2L251bGw7IHRoZW4KLSsJICAgIDoKLSsJICBlbHNlCi0rCSAgICBjYXQgPDxfTFRf RU9GIDE+JjIKLSsKLSsqKiogV2FybmluZzogdGhlIGNvbW1hbmQgbGlidG9vbCB1c2VzIHRvIGRl dGVjdCBzaGFyZWQgbGlicmFyaWVzLAotKyoqKiAkZmlsZV9tYWdpY19jbWQsIHByb2R1Y2VzIG91 dHB1dCB0aGF0IGxpYnRvb2wgY2Fubm90IHJlY29nbml6ZS4KLSsqKiogVGhlIHJlc3VsdCBpcyB0 aGF0IGxpYnRvb2wgbWF5IGZhaWwgdG8gcmVjb2duaXplIHNoYXJlZCBsaWJyYXJpZXMKLSsqKiog YXMgc3VjaC4gIFRoaXMgd2lsbCBhZmZlY3QgdGhlIGNyZWF0aW9uIG9mIGxpYnRvb2wgbGlicmFy aWVzIHRoYXQKLSsqKiogZGVwZW5kIG9uIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dCBwcm9ncmFtcyBs aW5rZWQgd2l0aCBzdWNoIGxpYnRvb2wKLSsqKiogbGlicmFyaWVzIHdpbGwgd29yayByZWdhcmRs ZXNzIG9mIHRoaXMgcHJvYmxlbS4gIE5ldmVydGhlbGVzcywgeW91Ci0rKioqIG1heSB3YW50IHRv IHJlcG9ydCB0aGUgcHJvYmxlbSB0byB5b3VyIHN5c3RlbSBtYW5hZ2VyIGFuZC9vciB0bwotKyoq KiBidWctbGlidG9vbEBnbnUub3JnCi0rCi0rX0xUX0VPRgotKwkgIGZpIDs7Ci0rCWVzYWMKLSsg ICAgICBmaQotKyAgICAgIGJyZWFrCi0rICAgIGZpCi0rICBkb25lCi0rICBJRlM9IiRsdF9zYXZl X2lmcyIKLSsgIE1BR0lDX0NNRD0iJGx0X3NhdmVfTUFHSUNfQ01EIgotKyAgOzsKLStlc2FjCi0r ZmkKLSsKLStNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKLStpZiB0ZXN0IC1uICIk TUFHSUNfQ01EIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JE1BR0lDX0NNRCIgPiY1Ci0rJGFzX2VjaG8gIiRNQUdJQ19DTUQiID4mNjsgfQotK2Vsc2UKLSsg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAi bm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICBlbHNlCi0rICAgIE1BR0lDX0NNRD06Ci0rICBmaQot K2ZpCi0rCi0rICBmaQotKyAgOzsKLStlc2FjCi0rCi0rIyBVc2UgQyBmb3IgdGhlIGRlZmF1bHQg Y29uZmlndXJhdGlvbiBpbiB0aGUgbGlidG9vbCBzY3JpcHQKLSsKLStsdF9zYXZlX0NDPSIkQ0Mi Ci0rYWNfZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAt YyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ0Mg LW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9n bnUKLSsKLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQyB0ZXN0IHNvdXJjZXMuCi0r YWNfZXh0PWMKLSsKLSsjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgQyB0ZXN0 IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStvYmpleHQ9JG9iamV4dAotKwotKyMgQ29kZSB0byBiZSB1 c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCi0rbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2Rl PSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgotKwotKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBs ZSBsaW5rIHRlc3RzCi0rbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbigpe3JldHVy bigwKTt9JwotKwotKwotKwotKwotKwotKwotKwotKyMgSWYgbm8gQyBjb21waWxlciB3YXMgc3Bl Y2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0ke0xUQ0MtIiRDQyJ9Ci0rCi0rIyBJZiBubyBDIGNvbXBp bGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgotK0xUQ0ZMQUdTPSR7TFRDRkxB R1MtIiRDRkxBR1MifQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmd1bWVudHMuCi0rY29tcGlsZXI9JENDCi0rCi0rIyBTYXZlIHRoZSBkZWZhdWx0IGNvbXBpbGVy LCBzaW5jZSBpdCBnZXRzIG92ZXJ3cml0dGVuIHdoZW4gdGhlIG90aGVyCi0rIyB0YWdzIGFyZSBi ZWluZyB0ZXN0ZWQsIGFuZCBfTFRfVEFHVkFSKGNvbXBpbGVyLCBbXSkgaXMgYSBOT1AuCi0rY29t cGlsZXJfREVGQVVMVD0kQ0MKLSsKLSsjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2lt cGxlIHRlc3QgY29kZQotK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8gIiRs dF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFj X2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRl c3QuZXJyCi0rX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAotKyRS TSBjb25mdGVzdCoKLSsKLSthY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKLStlY2hvICIk bHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAotK2V2YWwgIiRhY19s aW5rIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVy cgotK19sdF9saW5rZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCi0rJFJNIC1yIGNv bmZ0ZXN0KgotKwotKwotKyMjIENBVkVBVCBFTVBUT1I6Ci0rIyMgVGhlcmUgaXMgbm8gZW5jYXBz dWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKLSsjIyB0 aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91 IGtub3cgZXhhY3RseQotKyMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgotK2lmIHRlc3QgLW4gIiRj b21waWxlciI7IHRoZW4KLSsKLStsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZz0KLSsK LStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgbHRfcHJvZ19jb21waWxlcl9ub19idWls dGluX2ZsYWc9JyAtZm5vLWJ1aWx0aW4nCi0rCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlv bnMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtZm5v LXJ0dGkgLWZuby1leGNlcHRpb25zLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9n X2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhj ZXB0aW9ucz1ubwotKyAgIGFjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotKyAgIGVjaG8g IiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKyAgIGx0 X2NvbXBpbGVyX2ZsYWc9Ii1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMiCi0rICAgIyBJbnNlcnQg dGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IK LSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBh dCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBj b250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAo bm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgICMg VGhlIG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2lu ZyBzZWQuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAg LWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1l ICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAn czokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTo5Mzc5 OiAkbHRfY29tcGlsZVwiIiA+JjUpCi0rICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0 LmVycikKLSsgICBhY19zdGF0dXM9JD8KLSsgICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgIGVj aG8gIiRhc19tZTo5MzgzOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgICBpZiAoZXhpdCAkYWNf c3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KLSsgICAgICMgVGhlIGNvbXBp bGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVk Ci0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUg dXN1YWwgb3V0cHV0LgotKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8 ICRYc2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0LmV4cAotKyAgICAgJFNFRCAnL14kL2Q7IC9eICor L2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgY29uZnRl c3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVu Ci0rICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zPXllcwotKyAgICAg ZmkKLSsgICBmaQotKyAgICRSTSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucyIg PiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucyIgPiY2 OyB9Ci0rCi0raWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucyIg PSB4eWVzOyB0aGVuCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnPSIkbHRf cHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyIK LStlbHNlCi0rICAgIDoKLStmaQotKwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rICBsdF9wcm9n X2NvbXBpbGVyX3dsPQotK2x0X3Byb2dfY29tcGlsZXJfcGljPQotK2x0X3Byb2dfY29tcGlsZXJf c3RhdGljPQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGNv bXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUMuLi4gIiA+JjY7IH0KLSsKLSsgIGlm IHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwn Ci0rICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctc3RhdGljJwotKwotKyAgICBjYXNlICRo b3N0X29zIGluCi0rICAgICAgYWl4KikKLSsgICAgICAjIEFsbCBBSVggY29kZSBpcyBQSUMuCi0r ICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBub3cgc3Vw cG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGlj JwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgY2FzZSAk aG9zdF9jcHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQg YWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAgICAgICAgICBsdF9wcm9nX2NvbXBpbGVy X3BpYz0nLWZQSUMnCi0rICAgICAgICA7OwotKyAgICAgIG02OGspCi0rICAgICAgICAgICAgIyBG SVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJp ZXMsIGJ1dAotKyAgICAgICAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0Mg cHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAotKyAgICAgICAgICAgICMgbGlrZSBg LW02ODA0MCcuCi0rICAgICAgICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1tNjgwMjAgLXJl c2lkZW50MzIgLW1hbHdheXMtcmVzdG9yZS1hNCcKLSsgICAgICAgIDs7Ci0rICAgICAgZXNhYwot KyAgICAgIDs7Ci0rCi0rICAgIGJlb3MqIHwgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KiB8 IG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3Ig dGhlc2UgT1Nlcy4KLSsgICAgICA7OwotKwotKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgcHczMiog fCBvczIqIHwgY2VnY2MqKQotKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJj ZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKLSsgICAgICAjIGJ1aWx0IGZvciBp bmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUp LgotKyAgICAgICMgQWx0aG91Z2ggdGhlIGN5Z3dpbiBnY2MgaWdub3JlcyAtZlBJQywgc3RpbGwg bmVlZCB0aGlzIGZvciBvbGQtc3R5bGUKLSsgICAgICAjICgtLWRpc2FibGUtYXV0by1pbXBvcnQp IGxpYnJhcmllcwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctRERMTF9FWFBPUlQnCi0r ICAgICAgOzsKLSsKLSsgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgICAgICAjIFBJQyBpcyB0 aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCi0rICAgICAgIyBDb21tb24gc3ltYm9scyBub3Qg YWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSct Zm5vLWNvbW1vbicKLSsgICAgICA7OwotKwotKyAgICBocHV4KikKLSsgICAgICAjIFBJQyBpcyB0 aGUgZGVmYXVsdCBmb3IgNjQtYml0IFBBIEhQLVVYLCBidXQgbm90IGZvciAzMi1iaXQKLSsgICAg ICAjIFBBIEhQLVVYLiAgT24gSUE2NCBIUC1VWCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1dCB0aGUg cGljIGZsYWcKLSsgICAgICAjIHNldHMgdGhlIGRlZmF1bHQgVExTIG1vZGVsIGFuZCBhZmZlY3Rz IGlubGluaW5nLgotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2NCopCi0r CSMgK1ogdGhlIGRlZmF1bHQKLSsJOzsKLSsgICAgICAqKQotKwlsdF9wcm9nX2NvbXBpbGVyX3Bp Yz0nLWZQSUMnCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIGludGVyaXhb My05XSopCi0rICAgICAgIyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5l cmF0ZSBicm9rZW4gY29kZS4KLSsgICAgICAjIEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBs aWJyYXJpZXMgYXQgcnVudGltZS4KLSsgICAgICA7OwotKwotKyAgICBtc2Rvc2RqZ3BwKikKLSsg ICAgICAjIEp1c3QgYmVjYXVzZSB3ZSB1c2UgR0NDIGRvZXNuJ3QgbWVhbiB3ZSBzdWRkZW5seSBn ZXQgc2hhcmVkIGxpYnJhcmllcwotKyAgICAgICMgb24gc3lzdGVtcyB0aGF0IGRvbid0IHN1cHBv cnQgdGhlbS4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQ9bm8KLSsg ICAgICBlbmFibGVfc2hhcmVkPW5vCi0rICAgICAgOzsKLSsKLSsgICAgKm50byogfCAqcW54KikK LSsgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9w dGlvbiB0b28sIG90aGVyd2lzZQotKyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KLSsgICAgICBs dF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZQSUMgLXNoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICBz eXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgotKwlsdF9wcm9nX2Nv bXBpbGVyX3BpYz0tS2NvbmZvcm1fcGljCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICAq KQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQycKLSsgICAgICA7OwotKyAgICBl c2FjCi0rICBlbHNlCi0rICAgICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRvIHBhc3MgbGlua2Vy IGZsYWdzIHRocm91Z2ggdGhlIHN5c3RlbSBjb21waWxlci4KLSsgICAgY2FzZSAkaG9zdF9vcyBp bgotKyAgICBhaXgqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rICAgICAg aWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBub3cgc3VwcG9ydHMg SUE2NCBwcm9jZXNzb3IKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwotKyAg ICAgIGVsc2UKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ibnNvIC1iSTovbGliL3N5c2Nh bGxzLmV4cCcKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIG1pbmd3KiB8IGN5Z3dpbiog fCBwdzMyKiB8IG9zMiogfCBjZWdjYyopCi0rICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0 aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZwotKyAgICAgICMgYnVp bHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3Ig ZXhhbXBsZSkuCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1ERExMX0VYUE9SVCcKLSsg ICAgICA7OwotKwotKyAgICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciBJ QTY0IEhQLVVYIGFuZCA2NC1iaXQgSFAtVVgsIGJ1dAotKyAgICAgICMgbm90IGZvciBQQSBIUC1V WC4KLSsgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgIGhwcGEqNjQqfGlhNjQqKQotKwkj ICtaIHRoZSBkZWZhdWx0Ci0rCTs7Ci0rICAgICAgKikKLSsJbHRfcHJvZ19jb21waWxlcl9waWM9 JytaJwotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICAjIElzIHRoZXJlIGEgYmV0dGVyIGx0X3By b2dfY29tcGlsZXJfc3RhdGljIHRoYXQgd29ya3Mgd2l0aCB0aGUgYnVuZGxlZCBDQz8KLSsgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCi0rICAgICAg OzsKLSsKLSsgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgICAgICBsdF9wcm9n X2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgICMgUElDICh3aXRoIC1LUElDKSBpcyB0aGUgZGVm YXVsdC4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLW5vbl9zaGFyZWQnCi0rICAg ICAgOzsKLSsKLSsgICAgbGludXgqIHwgaypic2QqLWdudSkKLSsgICAgICBjYXNlICRjY19iYXNl bmFtZSBpbgotKyAgICAgICMgb2xkIEludGVsIGZvciB4ODZfNjQgd2hpY2ggc3RpbGwgc3VwcG9y dGVkIC1LUElDLgotKyAgICAgIGVjYyopCi0rCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0r CWx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9 Jy1zdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAgICMgaWNjIHVzZWQgdG8gYmUgaW5jb21wYXRp YmxlIHdpdGggR0NDLgotKyAgICAgICMgSUNDIDEwIGRvZXNuJ3QgYWNjZXB0IC1LUElDIGFueSBt b3JlLgotKyAgICAgIGljYyogfCBpZm9ydCopCi0rCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwn Ci0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0 aWM9Jy1zdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAgICMgTGFoZXkgRm9ydHJhbiA4LjEuCi0r ICAgICAgbGY5NSopCi0rCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rCWx0X3Byb2dfY29t cGlsZXJfcGljPSctLXNoYXJlZCcKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy0tc3RhdGlj JwotKwk7OwotKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQotKyAgICAg ICAgIyBQb3J0bGFuZCBHcm91cCBjb21waWxlcnMgKCpub3QqIHRoZSBQZW50aXVtIGdjYyBjb21w aWxlciwKLSsJIyB3aGljaCBsb29rcyB0byBiZSBhIGRlYWQgcHJvamVjdCkKLSsJbHRfcHJvZ19j b21waWxlcl93bD0nLVdsLCcKLSsJbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mcGljJwotKwlsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAgIGNjYyop Ci0rICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgICAgIyBBbGwgQWxw aGEgY29kZSBpcyBQSUMuCi0rICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLW5vbl9z aGFyZWQnCi0rICAgICAgICA7OwotKyAgICAgIHhsKikKLSsJIyBJQk0gWEwgQyA4LjAvRm9ydHJh biAxMC4xIG9uIFBQQwotKwlsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKwlsdF9wcm9nX2Nv bXBpbGVyX3BpYz0nLXFwaWMnCi0rCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctcXN0YXRpY2xp bmsnCi0rCTs7Ci0rICAgICAgKikKLSsJY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCi0r CSpTdW5cIEMqKQotKwkgICMgU3VuIEMgNS45Ci0rCSAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1L UElDJwotKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsJICBsdF9wcm9n X2NvbXBpbGVyX3dsPSctV2wsJwotKwkgIDs7Ci0rCSpTdW5cIEYqKQotKwkgICMgU3VuIEZvcnRy YW4gOC4zIHBhc3NlcyBhbGwgdW5yZWNvZ25pemVkIGZsYWdzIHRvIHRoZSBsaW5rZXIKLSsJICBs dF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCi0rCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9 Jy1Cc3RhdGljJwotKwkgIGx0X3Byb2dfY29tcGlsZXJfd2w9JycKLSsJICA7OwotKwllc2FjCi0r CTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIG5ld3NvczYpCi0rICAgICAgbHRf cHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj PSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICAqbnRvKiB8ICpxbngqKQotKyAgICAgICMg UU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywg b3RoZXJ3aXNlCi0rICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgotKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfcGljPSctZlBJQyAtc2hhcmVkJwotKyAgICAgIDs7Ci0rCi0rICAgIG9zZjMqIHwgb3Nm NCogfCBvc2Y1KikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgICMg QWxsIE9TRi8xIGNvZGUgaXMgUElDLgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSct bm9uX3NoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICByZG9zKikKLSsgICAgICBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYz0nLW5vbl9zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsgICAgc29sYXJpcyop Ci0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwotKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAg ICAgIGY3NyogfCBmOTAqIHwgZjk1KikKLSsJbHRfcHJvZ19jb21waWxlcl93bD0nLVFvcHRpb24g bGQgJzs7Ci0rICAgICAgKikKLSsJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCc7OwotKyAgICAg IGVzYWMKLSsgICAgICA7OwotKwotKyAgICBzdW5vczQqKQotKyAgICAgIGx0X3Byb2dfY29tcGls ZXJfd2w9Jy1Rb3B0aW9uIGxkICcKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLVBJQycK LSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsK LSsgICAgc3lzdjQgfCBzeXN2NC4ydXcyKiB8IHN5c3Y0LjMqKQotKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfd2w9Jy1XbCwnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwotKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAg ICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgotKwlsdF9wcm9n X2NvbXBpbGVyX3BpYz0nLUtjb25mb3JtX3BpYycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9 Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjUqIHwgdW5peHdh cmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikKLSsgICAgICBsdF9wcm9nX2Nv bXBpbGVyX3dsPSctV2wsJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKLSsg ICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsKLSsg ICAgdW5pY29zKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgIGx0 X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIDs7Ci0rCi0rICAgIHV0 czQqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctcGljJwotKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAg IGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIDs7Ci0rICAgIGVz YWMKLSsgIGZpCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotKyAgIyBGb3IgcGxhdGZvcm1zIHdoaWNo IGRvIG5vdCBzdXBwb3J0IFBJQywgLURQSUMgaXMgbWVhbmluZ2xlc3M6Ci0rICAqZGpncHAqKQot KyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0KLSsgICAgOzsKLSsgICopCi0rICAgIGx0X3Byb2df Y29tcGlsZXJfcGljPSIkbHRfcHJvZ19jb21waWxlcl9waWMgLURQSUMiCi0rICAgIDs7Ci0rZXNh YwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9wcm9nX2NvbXBpbGVy X3BpYyIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9wcm9nX2NvbXBpbGVyX3BpYyIgPiY2OyB9Ci0rCi0r Ci0rCi0rCi0rCi0rCi0rIwotKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBhY3R1 YWxseSB3b3Jrcy4KLSsjCi0raWYgdGVzdCAtbiAiJGx0X3Byb2dfY29tcGlsZXJfcGljIjsgdGhl bgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBQ SUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWMgd29ya3MiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWMgd29ya3Mu Li4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzK3Nl dH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsg IGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzPW5vCi0rICAgYWNfb3V0ZmlsZT1jb25mdGVz dC4kYWNfb2JqZXh0Ci0rICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBj b25mdGVzdC4kYWNfZXh0Ci0rICAgbHRfY29tcGlsZXJfZmxhZz0iJGx0X3Byb2dfY29tcGlsZXJf cGljIC1EUElDIgotKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUg bGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCi0rICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWlu aW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KLSsgICAjIE5vdGUgdGhhdCAkYWNf Y29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCi0r ICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3Vs ZCB3b3JrIGNvcnJlY3RseS4KLSsgICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2 YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2VkLgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRh Y19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21w aWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGls ZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAo ZXZhbCBlY2hvICJcIlwkYXNfbWU6OTcxODogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFs ICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICBlY2hvICIkYXNfbWU6OTcyMjogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1Ci0rICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUi OyB0aGVuCi0rICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhl IG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJl IHdhcm5pbmdzIG90aGVyIHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KLSsgICAgICRFQ0hPICJYJF9s dF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAK LSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgot KyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25m dGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3Bp Y193b3Jrcz15ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICAkUk0gY29uZnRlc3QqCi0rCi0rZmkK LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxl cl9waWNfd29ya3MiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29y a3MiID4mNjsgfQotKwotK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3Mi ID0geHllczsgdGhlbgotKyAgICBjYXNlICRsdF9wcm9nX2NvbXBpbGVyX3BpYyBpbgotKyAgICAg IiIgfCAiICIqKSA7OwotKyAgICAgKikgbHRfcHJvZ19jb21waWxlcl9waWM9IiAkbHRfcHJvZ19j b21waWxlcl9waWMiIDs7Ci0rICAgICBlc2FjCi0rZWxzZQotKyAgICBsdF9wcm9nX2NvbXBpbGVy X3BpYz0KLSsgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZD1ubwotK2ZpCi0r Ci0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsjCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIHN0 YXRpYyBmbGFnIGFjdHVhbGx5IHdvcmtzLgotKyMKLSt3bD0kbHRfcHJvZ19jb21waWxlcl93bCBl dmFsIGx0X3RtcF9zdGF0aWNfZmxhZz1cIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY1wiCi0reyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxh ZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBp ZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3b3Jrcy4uLiAiID4m NjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3Mrc2V0fSIg PSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRf Y3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9bm8KLSsgICBzYXZlX0xERkxBR1M9IiRMREZM QUdTIgotKyAgIExERkxBR1M9IiRMREZMQUdTICRsdF90bXBfc3RhdGljX2ZsYWciCi0rICAgZWNo byAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICAgaWYg KGV2YWwgJGFjX2xpbmsgMj5jb25mdGVzdC5lcnIpICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhl ZXh0OyB0aGVuCi0rICAgICAjIFRoZSBsaW5rZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRo ZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFy ZSB3YXJuaW5ncwotKyAgICAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSsgICAgICAg IyBBcHBlbmQgYW55IGVycm9ycyB0byB0aGUgY29uZmlnLmxvZy4KLSsgICAgICAgY2F0IGNvbmZ0 ZXN0LmVyciAxPiY1Ci0rICAgICAgICRFQ0hPICJYJF9sdF9saW5rZXJfYm9pbGVycGxhdGUiIHwg JFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAotKyAgICAgICAkU0VEICcvXiQvZDsgL14g KisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgICAgaWYgZGlmZiBjb25mdGVz dC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgICBsdF9jdl9wcm9n X2NvbXBpbGVyX3N0YXRpY193b3Jrcz15ZXMKLSsgICAgICAgZmkKLSsgICAgIGVsc2UKLSsgICAg ICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9eWVzCi0rICAgICBmaQotKyAgIGZp Ci0rICAgJFJNIC1yIGNvbmZ0ZXN0KgotKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCi0rCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21w aWxlcl9zdGF0aWNfd29ya3MiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9z dGF0aWNfd29ya3MiID4mNjsgfQotKwotK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9z dGF0aWNfd29ya3MiID0geHllczsgdGhlbgotKyAgICA6Ci0rZWxzZQotKyAgICBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYz0KLStmaQotKwotKwotKwotKwotKwotKwotKwotKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxl LiRhY19vYmpleHQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBw b3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2 X3Byb2dfY29tcGlsZXJfY19vK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vPW5vCi0rICAgJFJN IC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCi0rICAgbWtkaXIgY29uZnRlc3QKLSsgICBjZCBjb25m dGVzdAotKyAgIG1rZGlyIG91dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2Nv ZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9j b25mdGVzdDIuJGFjX29iamV4dCIKLSsgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkg YWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgotKyAgICMgKDIpIGJlZm9yZSBhIHdv cmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCi0rICAgIyBOb3Rl IHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5k IGJlZ2lucwotKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUg ZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2Nv bXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVy X2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9m bGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFs IGVjaG8gIlwiXCRhc19tZTo5ODIzOiAkbHRfY29tcGlsZVwiIiA+JjUpCi0rICAgKGV2YWwgIiRs dF9jb21waWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0 IG91dC9jb25mdGVzdC5lcnIgPiY1Ci0rICAgZWNobyAiJGFzX21lOjk4Mjc6IFwkPyA9ICRhY19z dGF0dXMiID4mNQotKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0 ZXN0Mi4kYWNfb2JqZXh0Ci0rICAgdGhlbgotKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkg d2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28g c2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncwotKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVy X2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCi0rICAg ICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVy MgotKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRl c3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICBsdF9jdl9w cm9nX2NvbXBpbGVyX2Nfbz15ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICBjaG1vZCB1K3cgLiAy PiY1Ci0rICAgJFJNIGNvbmZ0ZXN0KgotKyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0 ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBmb3IKLSsgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRp b24KLSsgICB0ZXN0IC1kIG91dC9paV9maWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1k aXIgb3V0L2lpX2ZpbGVzCi0rICAgJFJNIG91dC8qICYmIHJtZGlyIG91dAotKyAgIGNkIC4uCi0r ICAgJFJNIC1yIGNvbmZ0ZXN0Ci0rICAgJFJNIGNvbmZ0ZXN0KgotKwotK2ZpCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA+JjUK LSskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA+JjY7IH0KLSsKLSsKLSsKLSsK LSsKLSsKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGls ZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0IiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2 OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbytzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2Nv bXBpbGVyX2Nfbz1ubwotKyAgICRSTSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAotKyAgIG1rZGly IGNvbmZ0ZXN0Ci0rICAgY2QgY29uZnRlc3QKLSsgICBta2RpciBvdXQKLSsgICBlY2hvICIkbHRf c2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICBsdF9j b21waWxlcl9mbGFnPSItbyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQiCi0rICAgIyBJbnNlcnQg dGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IK LSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBh dCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBj b250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAo bm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgIGx0 X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9 XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14gXSpjb25m dGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0X2NvbXBp bGVyX2ZsYWc6J2AKLSsgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6OTg3ODogJGx0X2NvbXBpbGVc IiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQotKyAg IGFjX3N0YXR1cz0kPwotKyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRh c19tZTo5ODgyOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVz KSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4dAotKyAgIHRoZW4KLSsgICAgICMg VGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCBy ZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsgICAg ICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4g b3V0L2NvbmZ0ZXN0LmV4cAotKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIG91dC9jb25mdGVz dC5lcnIgPm91dC9jb25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3Qu ZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2L251bGw7 IHRoZW4KLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX289eWVzCi0rICAgICBmaQotKyAg IGZpCi0rICAgY2htb2QgdSt3IC4gMj4mNQotKyAgICRSTSBjb25mdGVzdCoKLSsgICAjIFNHSSBD KysgY29tcGlsZXIgd2lsbCBjcmVhdGUgZGlyZWN0b3J5IG91dC9paV9maWxlcy8gZm9yCi0rICAg IyB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uCi0rICAgdGVzdCAtZCBvdXQvaWlfZmlsZXMgJiYgJFJN IG91dC9paV9maWxlcy8qICYmIHJtZGlyIG91dC9paV9maWxlcwotKyAgICRSTSBvdXQvKiAmJiBy bWRpciBvdXQKLSsgICBjZCAuLgotKyAgICRSTSAtciBjb25mdGVzdAotKyAgICRSTSBjb25mdGVz dCoKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9w cm9nX2NvbXBpbGVyX2NfbyIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nf byIgPiY2OyB9Ci0rCi0rCi0rCi0rCi0raGFyZF9saW5rcz0ibm90dGVzdGVkIgotK2lmIHRlc3Qg IiRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0g bm87IHRoZW4KLSsgICMgZG8gbm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBw cm92aWRlZCBieSB0aGUgdXNlcgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxpbmtzLi4uICIgPiY2OyB9Ci0rICBoYXJk X2xpbmtzPXllcwotKyAgJFJNIGNvbmZ0ZXN0KgotKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5i IDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KLSsgIHRvdWNoIGNvbmZ0ZXN0LmEKLSsgIGxu IGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPiY1IHx8IGhhcmRfbGlua3M9bm8KLSsgIGxuIGNvbmZ0 ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkaGFyZF9saW5rcyIgPiY1Ci0rJGFzX2VjaG8g IiRoYXJkX2xpbmtzIiA+JjY7IH0KLSsgIGlmIHRlc3QgIiRoYXJkX2xpbmtzIiA9IG5vOyB0aGVu Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBcYCRDQycgZG9lcyBu b3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1v Jywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjI7fQotKyAgICBuZWVkX2xvY2tzPXdh cm4KLSsgIGZpCi0rZWxzZQotKyAgbmVlZF9sb2Nrcz1ubwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0r Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgJGNv bXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBv cnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KLSsKLSsgIHJ1bnBhdGhfdmFyPQotKyAg YWxsb3dfdW5kZWZpbmVkX2ZsYWc9Ci0rICBhbHdheXNfZXhwb3J0X3N5bWJvbHM9bm8KLSsgIGFy Y2hpdmVfY21kcz0KLSsgIGFyY2hpdmVfZXhwc3ltX2NtZHM9Ci0rICBjb21waWxlcl9uZWVkc19v YmplY3Q9bm8KLSsgIGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXM9bm8KLSsgIGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0KLSsgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAkbGli b2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAv LydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIGhhcmRjb2RlX2F1dG9t YXRpYz1ubwotKyAgaGFyZGNvZGVfZGlyZWN0PW5vCi0rICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1 dGU9bm8KLSsgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Ci0rICBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX2xkPQotKyAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0KLSsgIGhhcmRjb2Rl X21pbnVzX0w9bm8KLSsgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9dW5zdXBwb3J0ZWQKLSsgIGlu aGVyaXRfcnBhdGg9bm8KLSsgIGxpbmtfYWxsX2RlcGxpYnM9dW5rbm93bgotKyAgbW9kdWxlX2Nt ZHM9Ci0rICBtb2R1bGVfZXhwc3ltX2NtZHM9Ci0rICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRz PQotKyAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9Ci0rICB0aHJlYWRfc2FmZV9mbGFn X3NwZWM9Ci0rICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KLSsgICMgaW5jbHVkZV9leHBzeW1z IHNob3VsZCBiZSBhIGxpc3Qgb2Ygc3BhY2Utc2VwYXJhdGVkIHN5bWJvbHMgdG8gYmUgKmFsd2F5 cyoKLSsgICMgaW5jbHVkZWQgaW4gdGhlIHN5bWJvbCBsaXN0Ci0rICBpbmNsdWRlX2V4cHN5bXM9 Ci0rICAjIGV4Y2x1ZGVfZXhwc3ltcyBjYW4gYmUgYW4gZXh0ZW5kZWQgcmVnZXhwIG9mIHN5bWJv bHMgdG8gZXhjbHVkZQotKyAgIyBpdCB3aWxsIGJlIHdyYXBwZWQgYnkgYCAoJyBhbmQgYCkkJywg c28gb25lIG11c3Qgbm90IG1hdGNoIGJlZ2lubmluZyBvcgotKyAgIyBlbmQgb2YgbGluZS4gIEV4 YW1wbGU6IGBhfGJjfC4qZC4qJyB3aWxsIGV4Y2x1ZGUgdGhlIHN5bWJvbHMgYGEnIGFuZCBgYmMn LAotKyAgIyBhcyB3ZWxsIGFzIGFueSBzeW1ib2wgdGhhdCBjb250YWlucyBgZCcuCi0rICBleGNs dWRlX2V4cHN5bXM9J19HTE9CQUxfT0ZGU0VUX1RBQkxFX3xfR0xPQkFMX19GW0lEXV8uKicKLSsg ICMgQWx0aG91Z2ggX0dMT0JBTF9PRkZTRVRfVEFCTEVfIGlzIGEgdmFsaWQgc3ltYm9sIEMgbmFt ZSwgbW9zdCBhLm91dAotKyAgIyBwbGF0Zm9ybXMgKGFiKXVzZSBpdCBpbiBQSUMgY29kZSwgYnV0 IHRoZWlyIGxpbmtlcnMgZ2V0IGNvbmZ1c2VkIGlmCi0rICAjIHRoZSBzeW1ib2wgaXMgZXhwbGlj aXRseSByZWZlcmVuY2VkLiAgU2luY2UgcG9ydGFibGUgY29kZSBjYW5ub3QKLSsgICMgcmVseSBv biB0aGlzIHN5bWJvbCBuYW1lLCBpdCdzIHByb2JhYmx5IGZpbmUgdG8gbmV2ZXIgaW5jbHVkZSBp dCBpbgotKyAgIyBwcmVsb2FkZWQgc3ltYm9sIHRhYmxlcy4KLSsgICMgRXhjbHVkZSBzaGFyZWQg bGlicmFyeSBpbml0aWFsaXphdGlvbi9maW5hbGl6YXRpb24gc3ltYm9scy4KLSsgIGV4dHJhY3Rf ZXhwc3ltc19jbWRzPQotKwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgY3lnd2luKiB8IG1pbmd3 KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgICAjIEZJWE1FOiB0aGUgTVNWQysrIHBvcnQgaGFzbid0 IGJlZW4gdGVzdGVkIGluIGEgbG9vb29uZyB0aW1lCi0rICAgICMgV2hlbiBub3QgdXNpbmcgZ2Nj LCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5nCi0rICAgICMgTWljcm9zb2Z0 IFZpc3VhbCBDKysuCi0rICAgIGlmIHRlc3QgIiRHQ0MiICE9IHllczsgdGhlbgotKyAgICAgIHdp dGhfZ251X2xkPW5vCi0rICAgIGZpCi0rICAgIDs7Ci0rICBpbnRlcml4KikKLSsgICAgIyB3ZSBq dXN0IGhvcGUvYXNzdW1lIHRoaXMgaXMgZ2NjIGFuZCBub3QgYzg5ICg9IE1TVkMrKykKLSsgICAg d2l0aF9nbnVfbGQ9eWVzCi0rICAgIDs7Ci0rICBvcGVuYnNkKikKLSsgICAgd2l0aF9nbnVfbGQ9 bm8KLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGxkX3NobGlicz15ZXMKLSsgIGlmIHRlc3QgIiR3 aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwg bm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKLSsgICAgd2xhcmM9JyR7d2x9JwotKwotKyAg ICAjIFNldCBzb21lIGRlZmF1bHRzIGZvciBHTlUgbGQgd2l0aCBzaGFyZWQgbGlicmFyeSBzdXBw b3J0LiBUaGVzZQotKyAgICAjIGFyZSByZXNldCBsYXRlciBpZiBzaGFyZWQgbGlicmFyaWVzIGFy ZSBub3Qgc3VwcG9ydGVkLiBQdXR0aW5nIHRoZW0KLSsgICAgIyBoZXJlIGFsbG93cyB0aGVtIHRv IGJlIG92ZXJyaWRkZW4gaWYgbmVjZXNzYXJ5LgotKyAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFU SAotKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJk aXInCi0rICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tLWV4cG9ydC1keW5hbWlj JwotKyAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBl dC4gYWwuCi0rICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICduby13aG9sZS1hcmNoaXZl JyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSIkd2xh cmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNo aXZlJwotKyAgICBlbHNlCi0rICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Ci0rICAgIGZp Ci0rICAgIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz1ubwotKyAgICBjYXNlIGAkTEQgLXYgMj4m MWAgaW4KLSsgICAgICAqXCBbMDFdLiogfCAqXCAyLlswLTldLiogfCAqXCAyLjEwLiopIDs7ICMg Y2F0Y2ggdmVyc2lvbnMgPCAyLjExCi0rICAgICAgKlwgMi4xMS45My4wLjJcICopIHN1cHBvcnRz X2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBSSDcuMyAuLi4KLSsgICAgICAqXCAyLjExLjkyLjAu MTJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBNYW5kcmFrZSA4LjIgLi4u Ci0rICAgICAgKlwgMi4xMS4qKSA7OyAjIG90aGVyIDIuMTEgdmVyc2lvbnMKLSsgICAgICAqKSBz dXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgIyBTZWUg aWYgR05VIGxkIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuCi0rICAgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgICAgYWl4WzMtOV0qKQotKyAgICAgICMgT24gQUlYL1BQQywgdGhlIEdOVSBsaW5rZXIg aXMgdmVyeSBicm9rZW4KLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4K LSsJbGRfc2hsaWJzPW5vCi0rCWNhdCA8PF9MVF9FT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiB0 aGUgR05VIGxpbmtlciwgYXQgbGVhc3QgdXAgdG8gcmVsZWFzZSAyLjkuMSwgaXMgcmVwb3J0ZWQK LSsqKiogdG8gYmUgdW5hYmxlIHRvIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9u IEFJWC4KLSsqKiogVGhlcmVmb3JlLCBsaWJ0b29sIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFy aWVzIHN1cHBvcnQuICBJZiB5b3UKLSsqKiogcmVhbGx5IGNhcmUgZm9yIHNoYXJlZCBsaWJyYXJp ZXMsIHlvdSBtYXkgd2FudCB0byBtb2RpZnkgeW91ciBQQVRICi0rKioqIHNvIHRoYXQgYSBub24t R05VIGxpbmtlciBpcyBmb3VuZCwgYW5kIHRoZW4gcmVzdGFydC4KLSsKLStfTFRfRU9GCi0rICAg ICAgZmkKLSsgICAgICA7OwotKwotKyAgICBhbWlnYW9zKikKLSsgICAgICBjYXNlICRob3N0X2Nw dSBpbgotKyAgICAgIHBvd2VycGMpCi0rICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBB bWlnYU9TNCAuc28gc3VwcG9ydAotKyAgICAgICAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFy ZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29u YW1lIC1vICRsaWInCi0rICAgICAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJwotKyAgICAg ICAgOzsKLSsgICAgICBtNjhrKQotKyAgICAgICAgICAgIGFyY2hpdmVfY21kcz0nJFJNICRvdXRw dXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTkFNRSAkbGlibmFtZSIg PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIExJQlJBUllf SUQgMSIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBW RVJTSU9OICRtYWpvciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAi I2RlZmluZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5 LmRhdGF+JEFSICRBUl9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxpYn4oY2QgJG91dHB1 dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMyKScKLSsgICAgICAgICAgICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0rICAgICAgICAgICAgaGFyZGNvZGVfbWludXNfTD15 ZXMKLSsgICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIGJlb3MqKQot KyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4q IGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0 ZWQKLSsJIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVh c2VzIG9mIGdjYwotKwkjIHN1cHBvcnQgLS11bmRlZmluZWQuICBUaGlzIGRlc2VydmVzIHNvbWUg aW52ZXN0aWdhdGlvbi4gIEZJWE1FCi0rCWFyY2hpdmVfY21kcz0nJENDIC1ub3N0YXJ0ICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAk bGliJwotKyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzPW5vCi0rICAgICAgZmkKLSsgICAgICA7Owot KwotKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAgICAgIyBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICkgaXMgYWN0dWFsbHkgbWVhbmluZ2xl c3MsCi0rICAgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsgICAg ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0rICAgICAgYWxsb3dfdW5k ZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHM9bm8K LSsgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPXllcwotKyAgICAgIGV4 cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5 bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JTXVsgXS9zLy4qWyBdXChbXiBdKlwpL1wx IERBVEEvJ1wnJyB8ICRTRUQgLWUgJ1wnJy9eW0FJVFddWyBdL3MvLipbIF0vLydcJycgfCBzb3J0 IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEg fCAkR1JFUCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAgICBhcmNoaXZl X2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAk b3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlu a2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwotKwkjIElmIHRoZSBleHBvcnQtc3ltYm9s cyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCi0rCSMgaXMgRVhQT1JUUyks IHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCi0rCWFyY2hpdmVfZXhwc3ltX2Nt ZHM9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVu Ci0rCSAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKwll bHNlCi0rCSAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rCSAg Y2F0ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJZml+ Ci0rCSRDQyAtc2hhcmVkICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFi bGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwot KyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAg ICBpbnRlcml4WzMtOV0qKQotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD1ubwotKyAgICAgIGhhcmRj b2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSck e3dsfS1ycGF0aCwkbGliZGlyJwotKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3 bH0tRScKLSsgICAgICAjIEhhY2s6IE9uIEludGVyaXggMy54LCB3ZSBjYW5ub3QgY29tcGlsZSBQ SUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2MuCi0rICAgICAgIyBJbnN0ZWFkLCBzaGFyZWQgbGli cmFyaWVzIGFyZSBsb2FkZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQotKyAgICAg ICMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNs b3cgdmVyeSBtZW1vcnkKLSsgICAgICAjIGNvbnN1bWluZyBhbmQgZnJhZ21lbnRpbmcgcHJvY2Vz cy4gIFRvIGF2b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5kb20sCi0rICAgICAgIyAyNTYgS2lCLWFs aWduZWQgaW1hZ2UgYmFzZSBiZXR3ZWVuIDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQgbGlu awotKyAgICAgICMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3Mg bW9yZSBzYnJrKDIpIHNwYWNlLgotKyAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBp Y19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUg JHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0 ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKLSsgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSdzZWQg InMsXixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bX4k Q0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29iamRpci8k c29uYW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2 IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJwotKyAgICAgIDs7Ci0rCi0rICAg IGdudSogfCBsaW51eCogfCB0cGYqIHwgaypic2QqLWdudSkKLSsgICAgICB0bXBfZGlldD1ubwot KyAgICAgIGlmIHRlc3QgIiRob3N0X29zIiA9IGxpbnV4LWRpZXRsaWJjOyB0aGVuCi0rCWNhc2Ug JGNjX2Jhc2VuYW1lIGluCi0rCSAgZGlldFwgKikgdG1wX2RpZXQ9eWVzOzsJIyBsaW51eC1kaWV0 bGliYyB3aXRoIHN0YXRpYyBsaW5raW5nICghZGlldC1keW4pCi0rCWVzYWMKLSsgICAgICBmaQot KyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRFR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czou KiBlbGYnID4gL2Rldi9udWxsIFwKLSsJICYmIHRlc3QgIiR0bXBfZGlldCIgPSBubwotKyAgICAg IHRoZW4KLSsJdG1wX2FkZGZsYWc9Ci0rCXRtcF9zaGFyZWRmbGFnPSctc2hhcmVkJwotKwljYXNl ICRjY19iYXNlbmFtZSwkaG9zdF9jcHUgaW4KLSsgICAgICAgIHBnY2MqKQkJCQkjIFBvcnRsYW5k IEdyb3VwIEMgY29tcGlsZXIKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0tLXdo b2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIk Y29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9u ZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwot KwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnJwotKwkgIDs7Ci0rCXBnZjc3KiB8IHBnZjkwKiB8 IHBnZjk1KikJIyBQb3J0bGFuZCBHcm91cCBmNzcgYW5kIGY5MCBjb21waWxlcnMKLSsJICB3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNv bnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1c IiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNl XCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFn IC1Nbm9tYWluJyA7OwotKwllY2MqLGlhNjQqIHwgaWNjKixpYTY0KikJIyBJbnRlbCBDIGNvbXBp bGVyIG9uIGlhNjQKLSsJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMnIDs7Ci0rCWVmYyosaWE2 NCogfCBpZm9ydCosaWE2NCopCSMgSW50ZWwgRm9ydHJhbiBjb21waWxlciBvbiBpYTY0Ci0rCSAg dG1wX2FkZGZsYWc9JyAtaV9keW5hbWljIC1ub2Zvcl9tYWluJyA7OwotKwlpZmMqIHwgaWZvcnQq KQkJCSMgSW50ZWwgRm9ydHJhbiBjb21waWxlcgotKwkgIHRtcF9hZGRmbGFnPScgLW5vZm9yX21h aW4nIDs7Ci0rCWxmOTUqKQkJCQkjIExhaGV5IEZvcnRyYW4gOC4xCi0rCSAgd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWM9Ci0rCSAgdG1wX3NoYXJlZGZsYWc9Jy0tc2hhcmVkJyA7OwotKwl4bFtjQ10q KQkJCSMgSUJNIFhMIEMgOC4wIG9uIFBQQyAoZGVhbCB3aXRoIHhsZiBiZWxvdykKLSsJICB0bXBf c2hhcmVkZmxhZz0nLXFta3Nocm9iaicKLSsJICB0bXBfYWRkZmxhZz0gOzsKLSsJZXNhYwotKwlj YXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KLSsJKlN1blwgQyopCQkJIyBTdW4gQyA1LjkK LSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2Nv bnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRj b252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25l OyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0r CSAgY29tcGlsZXJfbmVlZHNfb2JqZWN0PXllcwotKwkgIHRtcF9zaGFyZWRmbGFnPSctRycgOzsK LSsJKlN1blwgRiopCQkJIyBTdW4gRm9ydHJhbiA4LjMKLSsJICB0bXBfc2hhcmVkZmxhZz0nLUcn IDs7Ci0rCWVzYWMKLSsJYXJjaGl2ZV9jbWRzPSckQ0MgJyIkdG1wX3NoYXJlZGZsYWciIiR0bXBf YWRkZmxhZyInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHdsJHNvbmFtZSAtbyAkbGliJwotKwotKyAgICAgICAgaWYgdGVzdCAieCRzdXBwb3J0c19hbm9u X3ZlcnNpb25pbmciID0geHllczsgdGhlbgotKyAgICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRz PSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAg Y2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9v YmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0 X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCSAgICAkQ0MgJyIkdG1wX3NoYXJlZGZsYWciIiR0bXBf YWRkZmxhZyInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHdsJHNvbmFtZSAke3dsfS12ZXJzaW9uLXNjcmlwdCAke3dsfSRvdXRwdXRfb2JqZGlyLyRsaWJu YW1lLnZlciAtbyAkbGliJwotKyAgICAgICAgZmkKLSsKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4K LSsJeGxmKikKLSsJICAjIElCTSBYTCBGb3J0cmFuIDEwLjEgb24gUFBDIGNhbm5vdCBjcmVhdGUg c2hhcmVkIGxpYnMgaXRzZWxmCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Jy0td2hvbGUt YXJjaGl2ZSRjb252ZW5pZW5jZSAtLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYz0KLSsJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSctcnBhdGgg JGxpYmRpcicKLSsJICBhcmNoaXZlX2NtZHM9JyRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgLW8gJGxpYicKLSsJICBpZiB0ZXN0ICJ4 JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCi0rCSAgICBhcmNoaXZlX2V4 cHN5bV9jbWRzPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVy fgotKwkgICAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+ PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCSAgICAgIGVjaG8gImxvY2FsOiAqOyB9 OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgICAkTEQgLXNoYXJlZCAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIC12ZXJzaW9u LXNjcmlwdCAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSsJICBmaQotKwkg IDs7Ci0rCWVzYWMKLSsgICAgICBlbHNlCi0rICAgICAgICBsZF9zaGxpYnM9bm8KLSsgICAgICBm aQotKyAgICAgIDs7Ci0rCi0rICAgIG5ldGJzZCopCi0rICAgICAgaWYgZWNobyBfX0VMRl9fIHwg JENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsJYXJjaGl2ZV9jbWRz PSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbyAkbGli JwotKwl3bGFyYz0KLSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1v ICRsaWInCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4t c3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGZpCi0rICAg ICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAgaWYgJExEIC12IDI+JjEgfCAkR1JFUCAn QkZEIDJcLjgnID4gL2Rldi9udWxsOyB0aGVuCi0rCWxkX3NobGlicz1ubwotKwljYXQgPDxfTFRf RU9GIDE+JjIKLSsKLSsqKiogV2FybmluZzogVGhlIHJlbGVhc2VzIDIuOC4qIG9mIHRoZSBHTlUg bGlua2VyIGNhbm5vdCByZWxpYWJseQotKyoqKiBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBT b2xhcmlzIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKLSsqKiogaXMgZGlzYWJsaW5nIHNo YXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCi0rKioq IGJpbnV0aWxzIHRvIHJlbGVhc2UgMi45LjEgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0 byBtb2RpZnkKLSsqKiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhh dCB0aGUgbmF0aXZlIGxpbmtlciBpcwotKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgotKwot K19MVF9FT0YKLSsgICAgICBlbGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRl ZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzPSckQ0Mg LXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3 bCRzb25hbWUgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7 d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rICAg ICAgZWxzZQotKwlsZF9zaGxpYnM9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHN5 c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCopCi0rICAg ICAgY2FzZSBgJExEIC12IDI+JjFgIGluCi0rICAgICAgICAqXCBbMDFdLiogfCAqXCAyLlswLTld LiogfCAqXCAyLjFbMC01XS4qKQotKwlsZF9zaGxpYnM9bm8KLSsJY2F0IDw8X0xUX0VPRiAxPiYy Ci0rCi0rKioqIFdhcm5pbmc6IFJlbGVhc2VzIG9mIHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIu MTYuOTEuMC4zIGNhbiBub3QKLSsqKiogcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMg b24gU0NPIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKLSsqKiogaXMgZGlzYWJsaW5nIHNo YXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCi0rKioq IGJpbnV0aWxzIHRvIHJlbGVhc2UgMi4xNi45MS4wLjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlv biBpcyB0byBtb2RpZnkKLSsqKiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24g c28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcwotKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0 LgotKwotK19MVF9FT0YKLSsJOzsKLSsJKikKLSsJICAjIEZvciBzZWN1cml0eSByZWFzb25zLCBp dCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB5b3UgYWx3YXlzCi0rCSAgIyB1c2UgYWJzb2x1 dGUgcGF0aHMgZm9yIG5hbWluZyBzaGFyZWQgbGlicmFyaWVzLCBhbmQgZXhjbHVkZSB0aGUKLSsJ ICAjIERUX1JVTlBBVEggdGFnIGZyb20gZXhlY3V0YWJsZXMgYW5kIGxpYnJhcmllcy4gIEJ1dCBk b2luZyBzbwotKwkgICMgcmVxdWlyZXMgdGhhdCB5b3UgY29tcGlsZSBldmVyeXRoaW5nIHR3aWNl LCB3aGljaCBpcyBhIHBhaW4uCi0rCSAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3Vw cG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgICAgaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkgICAgYXJjaGl2 ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9 JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9s cyAtbyAkbGliJwotKwkgIGVsc2UKLSsJICAgIGxkX3NobGlicz1ubwotKwkgIGZpCi0rCTs7Ci0r ICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIHN1bm9zNCopCi0rICAgICAgYXJjaGl2ZV9j bWRzPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIHdsYXJjPQotKyAgICAgIGhhcmRjb2RlX2Rp cmVjdD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsK LSsgICAgKikKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQg dGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJENDIC1z aGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lIC1vICRsaWInCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3ds fS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAg IGVsc2UKLSsJbGRfc2hsaWJzPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBlc2FjCi0r Ci0rICAgIGlmIHRlc3QgIiRsZF9zaGxpYnMiID0gbm87IHRoZW4KLSsgICAgICBydW5wYXRoX3Zh cj0KLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPQotKyAgICAgIGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlYz0KLSsgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KLSsgICAgZmkK LSsgIGVsc2UKLSsgICAgIyBQT1JUTUUgZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lz dGVtJ3MgbGlua2VyIChub3QgR05VIGxkKQotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGFp eDMqKQotKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPXVuc3VwcG9ydGVkCi0rICAgICAgYWx3 YXlzX2V4cG9ydF9zeW1ib2xzPXllcwotKyAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRMRCAt byAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mg LWJFOiRleHBvcnRfc3ltYm9scyAtVDUxMiAtSDUxMiAtYk06U1JFfiRBUiAkQVJfRkxBR1MgJGxp YiAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKyAgICAgICMgTm90ZTogdGhpcyBsaW5rZXIgaGFy ZGNvZGVzIHRoZSBkaXJlY3RvcmllcyBpbiBMSUJQQVRIIGlmIHRoZXJlCi0rICAgICAgIyBhcmUg bm8gZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGJ5IC1MLgotKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9 eWVzCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAteiAiJGx0X3Byb2dfY29t cGlsZXJfc3RhdGljIjsgdGhlbgotKwkjIE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0 YXRpYyBsaW5raW5nIGlzIHN1cHBvcnRlZCB3aXRoIGEKLSsJIyBicm9rZW4gY29sbGVjdDIuCi0r CWhhcmRjb2RlX2RpcmVjdD11bnN1cHBvcnRlZAotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsg ICAgYWl4WzQtOV0qKQotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0r CSMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwg c28gd2UgZG9uJ3QKLSsJIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCi0rCWFpeF91c2Vf cnVudGltZWxpbmtpbmc9bm8KLSsJZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKLSsJbm9fZW50cnlf ZmxhZz0iIgotKyAgICAgIGVsc2UKLSsJIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gd2Ug ZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCi0rCSMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlY IG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KLSsJaWYgJE5NIC1WIDI+ JjEgfCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgIGV4cG9ydF9zeW1ib2xzX2Nt ZHM9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAy ID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwk IDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0 X3N5bWJvbHMnCi0rCWVsc2UKLSsJICBleHBvcnRfc3ltYm9sc19jbWRzPSckTk0gLUJDcGcgJGxp Ym9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQg MiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChzdWJzdHIoXCQgMywxLDEpICE9ICIuIikp IHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKLSsJZmkK LSsJYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubwotKwotKwkjIFRlc3QgaWYgd2UgYXJlIHRyeWlu ZyB0byB1c2UgcnVuIHRpbWUgbGlua2luZyBvciBub3JtYWwKLSsJIyBBSVggc3R5bGUgbGlua2lu Zy4gSWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExERkxBR1MsIHdlCi0rCSMgbmVlZCB0byBkbyBy dW50aW1lIGxpbmtpbmcuCi0rCWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMjNdfGFpeDQuWzIzXS4q fGFpeFs1LTldKikKLSsJICBmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8KLSsJICBpZiAodGVz dCAkbGRfZmxhZyA9ICItYnJ0bCIgfHwgdGVzdCAkbGRfZmxhZyA9ICItV2wsLWJydGwiKTsgdGhl bgotKwkgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz15ZXMKLSsJICAgIGJyZWFrCi0rCSAgZmkK LSsJICBkb25lCi0rCSAgOzsKLSsJZXNhYwotKwotKwlleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0Jwot Kwlub19lbnRyeV9mbGFnPSctYm5vZW50cnknCi0rICAgICAgZmkKLSsKLSsgICAgICAjIFdoZW4g bGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2Fu Ci0rICAgICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4g IElmIGxpbmtpbmcgYSBsaWJyYXJ5Ci0rICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMgaW4gImVy cm9yIFRPQyBvdmVyZmxvdyIgYWRkIC1tbWluaW1hbC10b2MgdG8KLSsgICAgICAjIENYWEZMQUdT L0NGTEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5vdAotKyAg ICAgICMgZW5vdWdoIHRvIGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZM QUdTLgotKwotKyAgICAgIGFyY2hpdmVfY21kcz0nJwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15 ZXMKLSsgICAgICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9eWVzCi0rICAgICAgaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvcj0nOicKLSsgICAgICBsaW5rX2FsbF9kZXBsaWJzPXllcwotKyAgICAg IGZpbGVfbGlzdF9zcGVjPScke3dsfS1mLCcKLSsKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHll czsgdGhlbgotKwljYXNlICRob3N0X29zIGluIGFpeDQuWzAxMl18YWl4NC5bMDEyXS4qKQotKwkj IFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUgY2hlY2sK LSsJIyBiZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRvZXNuJ3Qgd29yayB1bmRlciA0LjMrCi0r CSAgY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxlY3QyYAotKwkgIGlm IHRlc3QgLWYgIiRjb2xsZWN0Mm5hbWUiICYmCi0rCSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUi IHwgJEdSRVAgcmVzb2x2ZV9saWJfbmFtZSA+L2Rldi9udWxsCi0rCSAgdGhlbgotKwkgICMgV2Ug aGF2ZSByZXdvcmtlZCBjb2xsZWN0MgotKwkgIDoKLSsJICBlbHNlCi0rCSAgIyBXZSBoYXZlIG9s ZCBjb2xsZWN0MgotKwkgIGhhcmRjb2RlX2RpcmVjdD11bnN1cHBvcnRlZAotKwkgICMgSXQgZmFp bHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKLSsJ ICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVf bWludXNfTAotKwkgICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZwotKwkgIGhhcmRj b2RlX21pbnVzX0w9eWVzCi0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGly JwotKwkgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9Ci0rCSAgZmkKLSsJICA7OwotKwllc2Fj Ci0rCXNoYXJlZF9mbGFnPSctc2hhcmVkJwotKwlpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlu a2luZyIgPSB5ZXM7IHRoZW4KLSsJICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICInJHt3bH0t RycKLSsJZmkKLSsgICAgICBlbHNlCi0rCSMgbm90IHVzaW5nIGdjYwotKwlpZiB0ZXN0ICIkaG9z dF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBB SVggNUwgZm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQotKwkjIGNob2tlcyBvbiAtV2wsLUcuIFRo ZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgotKwkgIHNoYXJlZF9mbGFnPSctRycKLSsJZWxz ZQotKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkg ICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCi0rCSAgZWxzZQotKwkgICAgc2hhcmVkX2ZsYWc9JyR7 d2x9LWJNOlNSRScKLSsJICBmaQotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAgZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjPScke3dsfS1iZXhwYWxsJwotKyAgICAgICMgSXQgc2VlbXMgdGhhdCAt YmV4cGFsbCBkb2VzIG5vdCBleHBvcnQgc3ltYm9scyBiZWdpbm5pbmcgd2l0aAotKyAgICAgICMg dW5kZXJzY29yZSAoXyksIHNvIGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3lt Ym9scyB0byBleHBvcnQuCi0rICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPXllcwotKyAgICAg IGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkjIFdhcm5p bmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRs KSwKLSsJIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBh IGJyb2tlbiBsaWJyYXJ5LgotKwlhbGxvd191bmRlZmluZWRfZmxhZz0nLWJlcm9rJwotKyAgICAg ICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVk IGluIGFuCi0rICAgICAgICAjIGVtcHR5IGV4ZWN1dGFibGUuCi0rICAgICAgICBjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0r Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2Ug IigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNf c3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgot KyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhl ZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVz dF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rCi0rbHRfYWl4X2xpYnBh dGhfc2VkPScKLSsgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8gewotKwkvXjAvIHsKLSsJ ICAgIHMvXjAgICpcKC4qXCkkL1wxLwotKwkgICAgcAotKwl9Ci0rICAgIH0nCi0rYWl4X2xpYnBh dGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAi JGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdl IGRpZG4ndCBmaW5kIGFueXRoaW5nLgotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4K LSsgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVs bCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotK2ZpCi0rZWxzZQotKyAgJGFz X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0K LStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lw YThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNf ZXh0Ci0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9s aWI6L2xpYiI7IGZpCi0rCi0rICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3ds fS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKyAgICAgICAgYXJjaGl2ZV9leHBz eW1fY21kcz0nJENDIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMg JyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4gJEVDSE8gIlgke3dsfSR7YWxsb3dfdW5k ZWZpbmVkX2ZsYWd9IiB8ICRYc2VkOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6 XCRleHBvcnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCi0rICAgICAgZWxzZQotKwlpZiB0ZXN0ICIk aG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7 d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJwotKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSIt eiBub2RlZnMiCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0iXCRDQyAkc2hhcmVkX2ZsYWciJyAt byAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2Vu dHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAn Ilwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyIKLSsJZWxzZQotKwkgIyBEZXRl cm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCi0r CSAjIGVtcHR5IGV4ZWN1dGFibGUuCi0rCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0 LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZk ZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsK LSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVl eHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZh bCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIx Ci0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRl c3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgot KyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRj cm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4 dAotKyAgICAgICB9OyB0aGVuCi0rCi0rbHRfYWl4X2xpYnBhdGhfc2VkPScKLSsgICAgL0ltcG9y dCBGaWxlIFN0cmluZ3MvLC9eJC8gewotKwkvXjAvIHsKLSsJICAgIHMvXjAgICpcKC4qXCkkL1wx LwotKwkgICAgcAotKwl9Ci0rICAgIH0nCi0rYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3Qk YWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJg Ci0rIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5n LgotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KLSsgIGFpeF9saWJwYXRoPWBkdW1w IC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9h aXhfbGlicGF0aF9zZWQiYAotK2ZpCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQot KwotKwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAg ICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0raWYgdGVzdCAteiAiJGFp eF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCi0rCi0rCSBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9s aWJwYXRoIgotKwkgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1l IGxvYWRpbmcgZmxhZ3MsCi0rCSAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1 dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgotKwkgIG5vX3VuZGVmaW5lZF9mbGFnPScg JHt3bH0tYmVybm90b2snCi0rCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAke3dsfS1iZXJvaycK LSsJICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3Rz IGZyb20gYXJjaGl2ZXMKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJGNvbnZlbmllbmNl JwotKwkgIGFyY2hpdmVfY21kc19uZWVkX2xjPXllcwotKwkgICMgVGhpcyBpcyBzaW1pbGFyIHRv IGhvdyBBSVggdHJhZGl0aW9uYWxseSBidWlsZHMgaXRzIHNoYXJlZCBsaWJyYXJpZXMuCi0rCSAg YXJjaGl2ZV9leHBzeW1fY21kcz0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRp ci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFn cyAke3dsfS1iRTokZXhwb3J0X3N5bWJvbHMke2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFS X0ZMQUdTICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8k c29uYW1lJwotKwlmaQotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0r ICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAgICAgICAgICAgICMg c2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAgICAgICAgICBhcmNo aXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKyAgICAgICAgICAgIGFyY2hpdmVfZXhw c3ltX2NtZHM9JycKLSsgICAgICAgIDs7Ci0rICAgICAgbTY4aykKLSsgICAgICAgICAgICBhcmNo aXZlX2NtZHM9JyRSTSAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVm aW5lIE5BTUUgJGxpYm5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNI TyAiI2RlZmluZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRh dGF+JEVDSE8gIiNkZWZpbmUgVkVSU0lPTiAkbWFqb3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhs aWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgUkVWSVNJT04gJHJldmlzaW9uIiA+PiAkb3V0cHV0 X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1MgJGxpYiAkbGlib2Jqc34kUkFO TElCICRsaWJ+KGNkICRvdXRwdXRfb2JqZGlyICYmIGEyaXhsaWJyYXJ5IC0zMiknCi0rICAgICAg ICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJwotKyAgICAgICAgICAg IGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7 OwotKwotKyAgICBic2RpWzQ1XSopCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPS1y ZHluYW1pYwotKyAgICAgIDs7Ci0rCi0rICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNl Z2NjKikKLSsgICAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0 aGF0IHdlIGFyZSB1c2luZwotKyAgICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCi0rICAgICAg IyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0 aGVyZSBpcwotKyAgICAgICMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0rICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nICcKLSsgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz11bnN1 cHBvcnRlZAotKyAgICAgICMgVGVsbCBsdG1haW4gdG8gbWFrZSAubGliIGZpbGVzLCBub3QgLmEg ZmlsZXMuCi0rICAgICAgbGliZXh0PWxpYgotKyAgICAgICMgVGVsbCBsdG1haW4gdG8gbWFrZSAu ZGxsIGZpbGVzLCBub3QgLnNvIGZpbGVzLgotKyAgICAgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAg ICAgICMgRklYTUU6IFNldHRpbmcgbGlua25hbWVzIGhlcmUgaXMgYSBiYWQgaGFjay4KLSsgICAg ICBhcmNoaXZlX2NtZHM9JyRDQyAtbyAkbGliICRsaWJvYmpzICRjb21waWxlcl9mbGFncyBgJEVD SE8gIlgkZGVwbGlicyIgfCAkWHNlZCAtZSAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5s aW5rbmFtZXM9JwotKyAgICAgICMgVGhlIGxpbmtlciB3aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQg YSAubGliIGZpbGUgaWYgd2UgYnVpbGQgYSBETEwuCi0rICAgICAgb2xkX2FyY2hpdmVfZnJvbV9u ZXdfY21kcz0ndHJ1ZScKLSsgICAgICAjIEZJWE1FOiBTaG91bGQgbGV0IHRoZSB1c2VyIHNwZWNp ZnkgdGhlIGxpYiBwcm9ncmFtLgotKyAgICAgIG9sZF9hcmNoaXZlX2NtZHM9J2xpYiAtT1VUOiRv bGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicycKLSsgICAgICBmaXhfc3JjZmlsZV9wYXRoPSdgY3ln cGF0aCAtdyAiJHNyY2ZpbGUiYCcKLSsgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1 bnRpbWVzPXllcwotKyAgICAgIDs7Ci0rCi0rICAgIGRhcndpbiogfCByaGFwc29keSopCi0rCi0r Ci0rICBhcmNoaXZlX2NtZHNfbmVlZF9sYz1ubwotKyAgaGFyZGNvZGVfZGlyZWN0PW5vCi0rICBo YXJkY29kZV9hdXRvbWF0aWM9eWVzCi0rICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPXVuc3VwcG9y dGVkCi0rICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJwotKyAgbGlua19hbGxfZGVwbGlicz15 ZXMKLSsgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSIkX2x0X2Rhcl9hbGxvd191bmRlZmluZWQiCi0r ICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgaWZvcnQqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9 eWVzIDs7Ci0rICAgICAqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9JEdDQyA7OwotKyAgZXNhYwotKyAg aWYgdGVzdCAiJF9sdF9kYXJfY2FuX3NoYXJlZCIgPSAieWVzIjsgdGhlbgotKyAgICBvdXRwdXRf dmVyYm9zZV9saW5rX2NtZD1lY2hvCi0rICAgIGFyY2hpdmVfY21kcz0iXCRDQyAtZHluYW1pY2xp YiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRj b21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcg JF9sdF9kYXJfc2luZ2xlX21vZCR7X2x0X2RzeW11dGlsfSIKLSsgICAgbW9kdWxlX2NtZHM9Ilwk Q0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRl cGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2RzeW11dGlsfSIKLSsgICAgYXJjaGl2ZV9leHBz eW1fY21kcz0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRp ci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5k ZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdz IC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2lu Z2xlX21vZH0ke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICBtb2R1 bGVfZXhwc3ltX2NtZHM9InNlZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91 dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyBcJGFsbG93X3VuZGVm aW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVy X2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsKLSsgIGVsc2UK LSsgIGxkX3NobGlicz1ubwotKyAgZmkKLSsKLSsgICAgICA7OwotKwotKyAgICBkZ3V4KikKLSsg ICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSct TCRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIDs7Ci0r Ci0rICAgIGZyZWVic2QxKikKLSsgICAgICBsZF9zaGxpYnM9bm8KLSsgICAgICA7OwotKwotKyAg ICAjIEZyZWVCU0QgMi4yLlswMTJdIGFsbG93cyB1cyB0byBpbmNsdWRlIGMrK3J0MC5vIHRvIGdl dCBDKysgY29uc3RydWN0b3IKLSsgICAgIyBzdXBwb3J0LiAgRnV0dXJlIHZlcnNpb25zIGRvIHRo aXMgYXV0b21hdGljYWxseSwgYnV0IGFuIGV4cGxpY2l0IGMrK3J0MC5vCi0rICAgICMgZG9lcyBu b3QgYnJlYWsgYW55dGhpbmcsIGFuZCBoZWxwcyBzaWduaWZpY2FudGx5IChhdCB0aGUgY29zdCBv ZiBhIGxpdHRsZQotKyAgICAjIGV4dHJhIHNwYWNlKS4KLSsgICAgZnJlZWJzZDIuMiopCi0rICAg ICAgYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzIC91c3IvbGliL2MrK3J0MC5vJwotKyAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rICAg ICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgVW5mb3J0 dW5hdGVseSwgb2xkZXIgdmVyc2lvbnMgb2YgRnJlZUJTRCAyIGRvIG5vdCBoYXZlIHRoaXMgZmVh dHVyZS4KLSsgICAgZnJlZWJzZDIqKQotKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVh YmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJk Y29kZV9kaXJlY3Q9eWVzCi0rICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKLSsgICAgICBoYXJk Y29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgIyBGcmVlQlNEIDMgYW5k IGdyZWF0ZXIgdXNlcyBnY2MgLXNoYXJlZCB0byBkbyBzaGFyZWQgbGlicmFyaWVzLgotKyAgICBm cmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfZGlyZWN0PXll cwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICA7OwotKwotKyAgICBo cHV4OSopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJYXJjaGl2ZV9jbWRz PSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStiICR7 d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIg fHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwotKyAgICAgIGVsc2UKLSsJYXJjaGl2 ZV9jbWRzPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kTEQgLWIgK2IgJGluc3RhbGxfbGli ZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICBmaQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWM9JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3I9OgotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsKLSsgICAgICAjIGhhcmRjb2Rl X21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAotKyAgICAgICMgYnV0IGFz IHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotKyAgICAgIGhhcmRjb2RlX21p bnVzX0w9eWVzCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1FJwotKyAg ICAgIDs7Ci0rCi0rICAgIGhwdXgxMCopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEg IiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkIC1m UElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlh cmNoaXZlX2NtZHM9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICBpZiB0 ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Yz0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0rCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9 JytiICRsaWJkaXInCi0rCWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotKwloYXJkY29kZV9k aXJlY3Q9eWVzCi0rCWhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT15ZXMKLSsJZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjPScke3dsfS1FJwotKwkjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkg aW4gdGhlIHNlYXJjaCBQQVRILAotKwkjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0 aGUgbGlicmFyeS4KLSsJaGFyZGNvZGVfbWludXNfTD15ZXMKLSsgICAgICBmaQotKyAgICAgIDs7 Ci0rCi0rICAgIGhwdXgxMSopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRo X2dudV9sZCIgPSBubzsgdGhlbgotKwljYXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KikKLSsJ ICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWlhNjQqKQotKwkg IGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3 bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCi0rCSAgOzsKLSsJKikKLSsJICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkIC1mUElDICR7 d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJZXNhYwotKyAgICAg IGVsc2UKLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBwYSo2NCopCi0rCSAgYXJjaGl2ZV9jbWRz PSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJaWE2NCopCi0rCSAgYXJjaGl2ZV9jbWRzPSckQ0Mg LWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJKikKLSsJICBhcmNoaXZl X2NtZHM9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxf bGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7 Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsg dGhlbgotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfStiICR7d2x9JGxpYmRpcicK LSsJaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06Ci0rCi0rCWNhc2UgJGhvc3RfY3B1IGluCi0r CWhwcGEqNjQqfGlhNjQqKQotKwkgIGhhcmRjb2RlX2RpcmVjdD1ubwotKwkgIGhhcmRjb2RlX3No bGlicGF0aF92YXI9bm8KLSsJICA7OwotKwkqKQotKwkgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsJ ICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9eWVzCi0rCSAgZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjPScke3dsfS1FJwotKwotKwkgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0 aGUgc2VhcmNoIFBBVEgsCi0rCSAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhl IGxpYnJhcnkuCi0rCSAgaGFyZGNvZGVfbWludXNfTD15ZXMKLSsJICA7OwotKwllc2FjCi0rICAg ICAgZmkKLSsgICAgICA7OwotKwotKyAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQot KyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJENDIC1z aGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3ds fSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNp b24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0k e291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkjIFRyeSB0byB1c2UgdGhl IC1leHBvcnRlZF9zeW1ib2wgbGQgb3B0aW9uLCBpZiBpdCBkb2VzIG5vdAotKwkjIHdvcmssIGFz c3VtZSB0aGF0IC1leHBvcnRzX2ZpbGUgZG9lcyBub3Qgd29yayBlaXRoZXIgYW5kCi0rCSMgaW1w bGljaXRseSBleHBvcnQgYWxsIHN5bWJvbHMuCi0rICAgICAgICBzYXZlX0xERkxBR1M9IiRMREZM QUdTIgotKyAgICAgICAgTERGTEFHUz0iJExERkxBR1MgLXNoYXJlZCAke3dsfS1leHBvcnRlZF9z eW1ib2wgJHt3bH1mb28gJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9L2Rldi9udWxsIgotKyAg ICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0raW50IGZvbyh2b2lkKSB7fQot K19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0r aWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRh Y19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAq KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAg Y2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16 ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAg ICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3Nf Y29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsg ICAgICAgfTsgdGhlbgotKyAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRl c3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVy c3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAke3dsfS1leHBvcnRzX2ZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMg LW8gJGxpYicKLSsKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCi0rZmkK LSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0 ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRl c3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICAgICAgIExERkxBR1M9IiRzYXZlX0xE RkxBR1MiCi0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJz dHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRh dGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJYXJj aGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgt c2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1 dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtZXhwb3J0c19maWxlICRleHBvcnRfc3ltYm9scyAtbyAk bGliJwotKyAgICAgIGZpCi0rICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9J25vJwotKyAgICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsg ICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKLSsgICAgICBpbmhlcml0X3JwYXRoPXll cwotKyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCi0rICAgICAgOzsKLSsKLSsgICAgbmV0YnNk KikKLSsgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9k ZXYvbnVsbDsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAjIGEub3V0Ci0rICAgICAgZWxzZQotKwlh cmNoaXZlX2NtZHM9JyRMRCAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFncycgICAgICAjIEVMRgotKyAgICAgIGZpCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYz0nLVIkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsgICAgICBo YXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgbmV3c29zNikKLSsg ICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rICAgICAg aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAg ICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0 aF92YXI9bm8KLSsgICAgICA7OwotKwotKyAgICAqbnRvKiB8ICpxbngqKQotKyAgICAgIDs7Ci0r Ci0rICAgIG9wZW5ic2QqKQotKyAgICAgIGlmIHRlc3QgLWYgL3Vzci9saWJleGVjL2xkLnNvOyB0 aGVuCi0rCWhhcmRjb2RlX2RpcmVjdD15ZXMKLSsJaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwot KwloYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9eWVzCi0rCWlmIHRlc3QgLXogImBlY2hvIF9fRUxG X18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9j cHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KLSsJICBhcmNoaXZlX2NtZHM9JyRDQyAt c2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKLSsJICBhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMt ZmlsZSwkZXhwb3J0X3N5bWJvbHMnCi0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3 bH0tcnBhdGgsJGxpYmRpcicKLSsJICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUUn Ci0rCWVsc2UKLSsJICBjYXNlICRob3N0X29zIGluCi0rCSAgIG9wZW5ic2RbMDFdLiogfCBvcGVu YnNkMi5bMC03XSB8IG9wZW5ic2QyLlswLTddLiopCi0rCSAgICAgYXJjaGl2ZV9jbWRzPSckTEQg LUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwkg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKLSsJICAgICA7OwotKwkg ICAqKQotKwkgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCSAgICAgOzsKLSsJICBlc2FjCi0r CWZpCi0rICAgICAgZWxzZQotKwlsZF9zaGxpYnM9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0r Ci0rICAgIG9zMiopCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGly JwotKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2Zs YWc9dW5zdXBwb3J0ZWQKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRFQ0hPICJMSUJSQVJZICRsaWJu YW1lIElOSVRJTlNUQU5DRSIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gIkRF U0NSSVBUSU9OIFwiJGxpYm5hbWVcIiIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRF Q0hPIERBVEEgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPICIgU0lOR0xFIE5P TlNIQVJFRCIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPIEVYUE9SVFMgPj4g JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVteGV4cCAkbGlib2JqcyA+PiAkb3V0cHV0X29i amRpci8kbGlibmFtZS5kZWZ+JENDIC1aZGxsIC1aY3J0ZGxsIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKLSsgICAg ICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSdlbXhpbXAgLW8gJG91dHB1dF9vYmpkaXIvJGxp Ym5hbWUuYSAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCi0rICAgICAgOzsKLSsKLSsgICAg b3NmMyopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJYWxsb3dfdW5kZWZp bmVkX2ZsYWc9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwotKwlhcmNoaXZlX2Nt ZHM9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJz dHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRY c2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0 aW9ucyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAtZXhw ZWN0X3VucmVzb2x2ZWQgXConCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQke2FsbG93X3Vu ZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAk c29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVy c3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9j YXRpb25zIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sYz0n bm8nCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0k bGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotKyAgICAgIDs7Ci0r Ci0rICAgIG9zZjQqIHwgb3NmNSopCSMgYXMgb3NmMyogd2l0aCB0aGUgYWRkaXRpb24gb2YgLW1z eW0gZmxhZwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFsbG93X3VuZGVm aW5lZF9mbGFnPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKLSsJYXJjaGl2ZV9j bWRzPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRl c3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVy c3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSck e3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgZWxzZQotKwlhbGxvd191bmRlZmluZWRf ZmxhZz0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJl ZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJY LXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRw dXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0n Zm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhw b3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lOyBwcmludGYgIiVzXFxuIiAiLWhp ZGRlbiI+PiAkbGliLmV4cH4KLSsJJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAk e3dsfS1pbnB1dCAke3dsfSRsaWIuZXhwICRjb21waWxlcl9mbGFncyAkbGlib2JqcyAkZGVwbGli cyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92 ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2Jq ZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4kUk0gJGxpYi5leHAnCi0rCi0rCSMgQm90aCBjIGFu ZCBjeHggY29tcGlsZXIgc3VwcG9ydCAtcnBhdGggZGlyZWN0bHkKLSsJaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYz0nLXJwYXRoICRsaWJkaXInCi0rICAgICAgZmkKLSsgICAgICBhcmNoaXZlX2Nt ZHNfbmVlZF9sYz0nbm8nCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06Ci0rICAg ICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAgbm9fdW5kZWZpbmVkX2ZsYWc9JyAteiBk ZWZzJwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCXdsYXJjPScke3dsfScK LSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS16ICR7d2x9dGV4dCAke3dsfS1oICR7 d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJ YXJjaGl2ZV9leHBzeW1fY21kcz0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhw b3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJs b2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkgICRDQyAtc2hhcmVkICR7d2x9LXogJHt3bH10 ZXh0ICR7d2x9LU0gJHt3bH0kbGliLmV4cCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCi0rICAgICAgZWxz ZQotKwljYXNlIGAkQ0MgLVYgMj4mMWAgaW4KLSsJKiJDb21waWxlcnMgNS4wIiopCi0rCSAgd2xh cmM9JycKLSsJICBhcmNoaXZlX2NtZHM9JyRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1o ICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwkgIGFy Y2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9y dF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9j YWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJICAkTEQgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFn fSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFnc34kUk0gJGxpYi5leHAnCi0rCSAgOzsKLSsJKikKLSsJICB3bGFyYz0nJHt3bH0nCi0r CSAgYXJjaGl2ZV9jbWRzPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCAkc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIGFyY2hpdmVf ZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1i b2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7 IH07IiA+PiAkbGliLmV4cH4KLSsJICAkQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtTSAk bGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzfiRSTSAkbGliLmV4cCcKLSsJICA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfc2hsaWJw YXRoX3Zhcj1ubwotKyAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBzb2xhcmlzMi5bMC01 XSB8IHNvbGFyaXMyLlswLTVdLiopIDs7Ci0rICAgICAgKikKLSsJIyBUaGUgY29tcGlsZXIgZHJp dmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKLSsJIyBidXQgdW5k ZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFnJy4gIEdDQyBkaXNjYXJkcyBpdCB3aXRob3V0IGAkd2wn LAotKwkjIGJ1dCBpcyBjYXJlZnVsIGVub3VnaCBub3QgdG8gcmVvcmRlci4KLSsJIyBTdXBwb3J0 ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKLSsJaWYgdGVzdCAiJEdDQyIgPSB5 ZXM7IHRoZW4KLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0teiAke3dsfWFsbGV4 dHJhY3QkY29udmVuaWVuY2UgJHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0JwotKwllbHNlCi0r CSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Jy16IGFsbGV4dHJhY3QkY29udmVuaWVuY2UgLXog ZGVmYXVsdGV4dHJhY3QnCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIGxpbmtfYWxs X2RlcGxpYnM9eWVzCi0rICAgICAgOzsKLSsKLSsgICAgc3Vub3M0KikKLSsgICAgICBpZiB0ZXN0 ICJ4JGhvc3RfdmVuZG9yIiA9IHhzZXF1ZW50OyB0aGVuCi0rCSMgVXNlICRDQyB0byBsaW5rIHVu ZGVyIHNlcXVlbnQsIGJlY2F1c2UgaXQgdGhyb3dzIGluIHNvbWUgZXh0cmEgLm8KLSsJIyBmaWxl cyB0aGF0IG1ha2UgLmluaXQgYW5kIC5maW5pIHNlY3Rpb25zIHdvcmsuCi0rCWFyY2hpdmVfY21k cz0nJENDIC1HICR7d2x9LWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKLSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kcz0nJExEIC1hc3NlcnQgcHVy ZS10ZXh0IC1Cc3RhdGljIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycK LSsgICAgICBmaQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicK LSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMK LSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgc3lz djQpCi0rICAgICAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KLSsJc25pKQotKwkgIGFyY2hpdmVfY21k cz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2Zs YWdzJwotKwkgIGhhcmRjb2RlX2RpcmVjdD15ZXMgIyBpcyB0aGlzIHJlYWxseSB0cnVlPz8/Ci0r CTs7Ci0rCXNpZW1lbnMpCi0rCSAgIyMgTEQgaXMgbGQgaXQgbWFrZXMgYSBQTEFNTElCCi0rCSAg IyMgQ0MganVzdCBtYWtlcyBhIEdyb3NzTW9kdWxlLgotKwkgIGFyY2hpdmVfY21kcz0nJExEIC1H IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICByZWxvYWRfY21k cz0nJENDIC1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rCSAgaGFyZGNvZGVfZGlyZWN0PW5v Ci0rICAgICAgICA7OwotKwltb3Rvcm9sYSkKLSsJICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAk c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICBoYXJk Y29kZV9kaXJlY3Q9bm8gI01vdG9yb2xhIG1hbnVhbCBzYXlzIHllcywgYnV0IG15IHRlc3RzIHNh eSB0aGV5IGxpZQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICBydW5wYXRoX3Zhcj0nTERfUlVO X1BBVEgnCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIDs7Ci0rCi0r ICAgIHN5c3Y0LjMqKQotKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGhhcmRjb2RlX3No bGlicGF0aF92YXI9bm8KLSsgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9Jy1CZXhwb3J0 JwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3Iv bmVjOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwloYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5v Ci0rCXJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICi0rCWhhcmRjb2RlX3J1bnBhdGhfdmFyPXllcwot KwlsZF9zaGxpYnM9eWVzCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCp1dzIq IHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJlNy5bMDFdLlsxMF0qIHwgdW5peHdhcmU3 KiB8IHNjbzMuMnY1LjAuWzAyNF0qKQotKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFnPScke3dsfS16 LHRleHQnCi0rICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9bm8KLSsgICAgICBoYXJkY29kZV9z aGxpYnBhdGhfdmFyPW5vCi0rICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJwotKwotKyAg ICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFy ZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRl eHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHM9JyRDQyAtRyAke3ds fS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0r CWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9s cyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBz Y281djYqKQotKyAgICAgICMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdo dCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90Ci0rICAgICAgIyBsaW5rIHdpdGggLWxjLCBhbmQg dGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGliYyB0bwotKyAgICAgICMg YWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3 b3VsZAotKyAgICAgICMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBH TlUgbGQgd2UgdXNlIC16IHRleHQKLSsgICAgICAjIHRob3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBz b21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5kZWQKLSsgICAgICAjIGFzIC16 IGRlZnMuCi0rICAgICAgbm9fdW5kZWZpbmVkX2ZsYWc9JyR7d2x9LXosdGV4dCcKLSsgICAgICBh bGxvd191bmRlZmluZWRfZmxhZz0nJHt3bH0teixub2RlZnMnCi0rICAgICAgYXJjaGl2ZV9jbWRz X25lZWRfbGM9bm8KLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tUiwkbGliZGlyJwotKyAgICAgIGhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3I9JzonCi0rICAgICAgbGlua19hbGxfZGVwbGlicz15ZXMKLSsgICAg ICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUJleHBvcnQnCi0rICAgICAgcnVucGF0 aF92YXI9J0xEX1JVTl9QQVRIJwotKwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVu Ci0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSck Q0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQot KwlhcmNoaXZlX2NtZHM9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtRyAk e3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwot KyAgICB1dHM0KikKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1u bwotKyAgICAgIDs7Ci0rCi0rICAgICopCi0rICAgICAgbGRfc2hsaWJzPW5vCi0rICAgICAgOzsK LSsgICAgZXNhYwotKwotKyAgICBpZiB0ZXN0IHgkaG9zdF92ZW5kb3IgPSB4c25pOyB0aGVuCi0r ICAgICAgY2FzZSAkaG9zdCBpbgotKyAgICAgIHN5c3Y0IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4z KiB8IHN5c3Y1KikKLSsJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1CbGFyZ2VkeW5z eW0nCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBmaQotKyAgZmkKLSsKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbGRfc2hsaWJzIiA+JjUKLSskYXNfZWNobyAiJGxkX3No bGlicyIgPiY2OyB9Ci0rdGVzdCAiJGxkX3NobGlicyIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVk PW5vCi0rCi0rd2l0aF9nbnVfbGQ9JHdpdGhfZ251X2xkCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rIwotKyMgRG8gd2UgbmVlZCB0byBleHBsaWNpdGx5IGxp bmsgbGliYz8KLSsjCi0rY2FzZSAieCRhcmNoaXZlX2NtZHNfbmVlZF9sYyIgaW4KLSt4fHh5ZXMp Ci0rICAjIEFzc3VtZSAtbGMgc2hvdWxkIGJlIGFkZGVkCi0rICBhcmNoaXZlX2NtZHNfbmVlZF9s Yz15ZXMKLSsKLSsgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIkR0ND IiA9IHllczsgdGhlbgotKyAgICBjYXNlICRhcmNoaXZlX2NtZHMgaW4KLSsgICAgKid+JyopCi0r ICAgICAgIyBGSVhNRTogd2UgbWF5IGhhdmUgdG8gZGVhbCB3aXRoIG11bHRpLWNvbW1hbmQgc2Vx dWVuY2VzLgotKyAgICAgIDs7Ci0rICAgICckQ0MgJyopCi0rICAgICAgIyBUZXN0IHdoZXRoZXIg dGhlIGNvbXBpbGVyIGltcGxpY2l0bHkgbGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29tZQotKyAg ICAgICMgc3lzdGVtcywgLWxnY2MgaGFzIHRvIGNvbWUgYmVmb3JlIC1sYy4gSWYgZ2NjIGFscmVh ZHkgcGFzc2VzIC1sYwotKyAgICAgICMgdG8gbGQsIGRvbid0IGFkZCAtbGMgYmVmb3JlIC1sZ2Nj LgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIC1s YyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4iID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbi4uLiAiID4mNjsg fQotKyAgICAgICRSTSBjb25mdGVzdCoKLSsgICAgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVf dGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICAgICBpZiB7IChldmFsIGVjaG8g IiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21w aWxlKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAyPmNvbmZ0ZXN0 LmVycjsgdGhlbgotKyAgICAgICAgc29uYW1lPWNvbmZ0ZXN0Ci0rICAgICAgICBsaWI9Y29uZnRl c3QKLSsgICAgICAgIGxpYm9ianM9Y29uZnRlc3QuJGFjX29iamV4dAotKyAgICAgICAgZGVwbGli cz0KLSsgICAgICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsCi0rCXBpY19mbGFnPSRsdF9wcm9n X2NvbXBpbGVyX3BpYwotKyAgICAgICAgY29tcGlsZXJfZmxhZ3M9LXYKLSsgICAgICAgIGxpbmtl cl9mbGFncz0tdgotKyAgICAgICAgdmVyc3RyaW5nPQotKyAgICAgICAgb3V0cHV0X29iamRpcj0u Ci0rICAgICAgICBsaWJuYW1lPWNvbmZ0ZXN0Ci0rICAgICAgICBsdF9zYXZlX2FsbG93X3VuZGVm aW5lZF9mbGFnPSRhbGxvd191bmRlZmluZWRfZmxhZwotKyAgICAgICAgYWxsb3dfdW5kZWZpbmVk X2ZsYWc9Ci0rICAgICAgICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhcmNo aXZlX2NtZHMgMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjFcIiIp ID4mNQotKyAgKGV2YWwgJGFyY2hpdmVfY21kcyAyXD5cJjEgXHwgJEdSRVAgXCIgLWxjIFwiIFw+ L2Rldi9udWxsIDJcPlwmMSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0KLSsgICAgICAgIHRoZW4KLSsJICBhcmNoaXZlX2NtZHNfbmVlZF9sYz1ubwotKyAgICAgICAg ZWxzZQotKwkgIGFyY2hpdmVfY21kc19uZWVkX2xjPXllcwotKyAgICAgICAgZmkKLSsgICAgICAg IGFsbG93X3VuZGVmaW5lZF9mbGFnPSRsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnCi0rICAg ICAgZWxzZQotKyAgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1Ci0rICAgICAgZmkKLSsgICAg ICAkUk0gY29uZnRlc3QqCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGFyY2hpdmVfY21kc19uZWVkX2xjIiA+JjUKLSskYXNfZWNobyAiJGFyY2hpdmVfY21kc19u ZWVkX2xjIiA+JjY7IH0KLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBmaQotKyAgOzsKLStlc2Fj Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg ZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MuLi4gIiA+JjY7IH0KLSsKLStpZiB0ZXN0 ICIkR0NDIiA9IHllczsgdGhlbgotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBkYXJ3aW4qKSBs dF9hd2tfYXJnPSIvXmxpYnJhcmllczovLC9MUi8iIDs7Ci0rICAgICopIGx0X2F3a19hcmc9Ii9e bGlicmFyaWVzOi8iIDs7Ci0rICBlc2FjCi0rICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXBy aW50LXNlYXJjaC1kaXJzIHwgYXdrICRsdF9hd2tfYXJnIHwgJFNFRCAtZSAicy9ebGlicmFyaWVz Oi8vIiAtZSAicyw9LywvLGciYAotKyAgaWYgJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8 ICRHUkVQICc7JyA+L2Rldi9udWxsIDsgdGhlbgotKyAgICAjIGlmIHRoZSBwYXRoIGNvbnRhaW5z ICI7IiB0aGVuIHdlIGFzc3VtZSBpdCB0byBiZSB0aGUgc2VwYXJhdG9yCi0rICAgICMgb3RoZXJ3 aXNlIGRlZmF1bHQgdG8gdGhlIHN0YW5kYXJkIHBhdGggc2VwYXJhdG9yIChpLmUuICI6IikgLSBp dCBpcwotKyAgICAjIGFzc3VtZWQgdGhhdCBubyBwYXJ0IG9mIGEgbm9ybWFsIHBhdGhuYW1lIGNv bnRhaW5zICI7IiBidXQgdGhhdCBzaG91bGQKLSsgICAgIyBva2F5IGluIHRoZSByZWFsIHdvcmxk IHdoZXJlICI7IiBpbiBkaXJwYXRocyBpcyBpdHNlbGYgcHJvYmxlbWF0aWMuCi0rICAgIGx0X3Nl YXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdz LzsvIC9nJ2AKLSsgIGVsc2UKLSsgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9z ZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAotKyAg ZmkKLSsgICMgT2ssIG5vdyB3ZSBoYXZlIHRoZSBwYXRoLCBzZXBhcmF0ZWQgYnkgc3BhY2VzLCB3 ZSBjYW4gc3RlcCB0aHJvdWdoIGl0Ci0rICAjIGFuZCBhZGQgbXVsdGlsaWIgZGlyIGlmIG5lY2Vz c2FyeS4KLSsgIGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPQotKyAgbHRfbXVsdGlfb3NfZGly PWAkQ0MgJENQUEZMQUdTICRDRkxBR1MgJExERkxBR1MgLXByaW50LW11bHRpLW9zLWRpcmVjdG9y eSAyPi9kZXYvbnVsbGAKLSsgIGZvciBsdF9zeXNfcGF0aCBpbiAkbHRfc2VhcmNoX3BhdGhfc3Bl YzsgZG8KLSsgICAgaWYgdGVzdCAtZCAiJGx0X3N5c19wYXRoLyRsdF9tdWx0aV9vc19kaXIiOyB0 aGVuCi0rICAgICAgbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9IiRsdF90bXBfbHRfc2VhcmNo X3BhdGhfc3BlYyAkbHRfc3lzX3BhdGgvJGx0X211bHRpX29zX2RpciIKLSsgICAgZWxzZQotKyAg ICAgIHRlc3QgLWQgIiRsdF9zeXNfcGF0aCIgJiYgXAotKwlsdF90bXBfbHRfc2VhcmNoX3BhdGhf c3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aCIKLSsgICAgZmkK LSsgIGRvbmUKLSsgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICRsdF90bXBfbHRfc2VhcmNo X3BhdGhfc3BlYyB8IGF3ayAnCi0rQkVHSU4ge1JTPSIgIjsgRlM9Ii98XG4iO30gewotKyAgbHRf Zm9vPSIiOwotKyAgbHRfY291bnQ9MDsKLSsgIGZvciAobHRfaSA9IE5GOyBsdF9pID4gMDsgbHRf aS0tKSB7Ci0rICAgIGlmICgkbHRfaSAhPSAiIiAmJiAkbHRfaSAhPSAiLiIpIHsKLSsgICAgICBp ZiAoJGx0X2kgPT0gIi4uIikgewotKyAgICAgICAgbHRfY291bnQrKzsKLSsgICAgICB9IGVsc2Ug ewotKyAgICAgICAgaWYgKGx0X2NvdW50ID09IDApIHsKLSsgICAgICAgICAgbHRfZm9vPSIvIiAk bHRfaSBsdF9mb287Ci0rICAgICAgICB9IGVsc2UgewotKyAgICAgICAgICBsdF9jb3VudC0tOwot KyAgICAgICAgfQotKyAgICAgIH0KLSsgICAgfQotKyAgfQotKyAgaWYgKGx0X2ZvbyAhPSAiIikg eyBsdF9mcmVxW2x0X2Zvb10rKzsgfQotKyAgaWYgKGx0X2ZyZXFbbHRfZm9vXSA9PSAxKSB7IHBy aW50IGx0X2ZvbzsgfQotK30nYAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAk bHRfc2VhcmNoX3BhdGhfc3BlY2AKLStlbHNlCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 Ii9saWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCi0rZmkKLStsaWJyYXJ5X25hbWVzX3NwZWM9 Ci0rbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKLStzb25hbWVfc3BlYz0KLStzaHJleHRfY21kcz0i LnNvIgotK3Bvc3RpbnN0YWxsX2NtZHM9Ci0rcG9zdHVuaW5zdGFsbF9jbWRzPQotK2ZpbmlzaF9j bWRzPQotK2ZpbmlzaF9ldmFsPQotK3NobGlicGF0aF92YXI9Ci0rc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPXVua25vd24KLSt2ZXJzaW9uX3R5cGU9bm9uZQotK2R5bmFtaWNfbGlua2VyPSIk aG9zdF9vcyBsZC5zbyIKLStzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xp YiIKLStuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgotK2hhcmRjb2RlX2ludG9fbGlicz1ubwotKwot KyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0byBubywgbWFrZSBzdXJlIGl0IGRvZXMgbm90 IGNhdXNlIC1zZXRfdmVyc2lvbgotKyMgZmxhZ3MgdG8gYmUgbGVmdCB3aXRob3V0IGFyZ3VtZW50 cwotK25lZWRfdmVyc2lvbj11bmtub3duCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotK2FpeDMqKQot KyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUuYScKLSsgIHNobGlicGF0 aF92YXI9TElCUEFUSAotKwotKyAgIyBBSVggMyBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBz byB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRvIHRoZSBuYW1lLgotKyAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIDs7Ci0rCi0rYWl4 WzQtOV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsg IG5lZWRfdmVyc2lvbj1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgaWYgdGVzdCAi JGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgIyBBSVggNSBzdXBwb3J0cyBJQTY0Ci0rICAg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUk e3NoYXJlZF9leHR9JwotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgZWxz ZQotKyAgICAjIFdpdGggR0NDIHVwIHRvIDIuOTUueCwgY29sbGVjdDIgd291bGQgY3JlYXRlIGFu IGltcG9ydCBmaWxlCi0rICAgICMgZm9yIGRlcGVuZGVuY2UgbGlicmFyaWVzLiAgVGhlIGltcG9y dCBmaWxlIHdvdWxkIHN0YXJ0IHdpdGgKLSsgICAgIyB0aGUgbGluZSBgIyEgLicuICBUaGlzIHdv dWxkIGNhdXNlIHRoZSBnZW5lcmF0ZWQgbGlicmFyeSB0bwotKyAgICAjIGRlcGVuZCBvbiBgLics IGFsd2F5cyBhbiBpbnZhbGlkIGxpYnJhcnkuICBUaGlzIHdhcyBmaXhlZCBpbgotKyAgICAjIGRl dmVsb3BtZW50IHNuYXBzaG90cyBvZiBHQ0MgcHJpb3IgdG8gMy4wLgotKyAgICBjYXNlICRob3N0 X29zIGluCi0rICAgICAgYWl4NCB8IGFpeDQuWzAxXSB8IGFpeDQuWzAxXS4qKQotKyAgICAgIGlm IHsgZWNobyAnI2lmIF9fR05VQ19fID4gMiB8fCAoX19HTlVDX18gPT0gMiAmJiBfX0dOVUNfTUlO T1JfXyA+PSA5NyknCi0rCSAgIGVjaG8gJyB5ZXMgJwotKwkgICBlY2hvICcjZW5kaWYnOyB9IHwg JHtDQ30gLUUgLSB8ICRHUkVQIHllcyA+IC9kZXYvbnVsbDsgdGhlbgotKwk6Ci0rICAgICAgZWxz ZQotKwljYW5fYnVpbGRfc2hhcmVkPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBlc2Fj Ci0rICAgICMgQUlYIChvbiBQb3dlciopIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIGN1 cnJlbnRseSB3ZSBjYW4gbm90IGhhcmRjb2RlIGNvcnJlY3QKLSsgICAgIyBzb25hbWUgaW50byBl eGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4gYWRkIHZlcnNpb25pbmcgc3VwcG9ydCB0bwotKyAg ICAjIGNvbGxlY3QyLCBzbyBhZGRpdGlvbmFsIGxpbmtzIGNhbiBiZSB1c2VmdWwgaW4gZnV0dXJl LgotKyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsg ICAgICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtpbmcgKG9uIEFJWCA0LjIgb3IgbGF0ZXIpIHVz ZSBsaWI8bmFtZT4uc28KLSsgICAgICAjIGluc3RlYWQgb2YgbGliPG5hbWU+LmEgdG8gbGV0IHBl b3BsZSBrbm93IHRoYXQgdGhlc2UgYXJlIG5vdAotKyAgICAgICMgdHlwaWNhbCBBSVggc2hhcmVk IGxpYnJhcmllcy4KLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgZWxzZQotKyAgICAgICMgV2Ug cHJlc2VydmUgLmEgYXMgZXh0ZW5zaW9uIGZvciBzaGFyZWQgbGlicmFyaWVzIHRocm91Z2ggQUlY NC4yCi0rICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3ZSBhcmUgbm90IGRvaW5nIHJ1biB0aW1lIGxp bmtpbmcuCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfS5h ICRsaWJuYW1lLmEnCi0rICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvcicKLSsgICAgZmkKLSsgICAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICi0r ICBmaQotKyAgOzsKLSsKLSthbWlnYW9zKikKLSsgIGNhc2UgJGhvc3RfY3B1IGluCi0rICBwb3dl cnBjKQotKyAgICAjIFNpbmNlIEp1bHkgMjAwNyBBbWlnYU9TNCBvZmZpY2lhbGx5IHN1cHBvcnRz IC5zbyBsaWJyYXJpZXMuCi0rICAgICMgV2hlbiBjb21waWxpbmcgdGhlIGV4ZWN1dGFibGUsIGFk ZCAtdXNlLWR5bmxkIC1Mc29ianM6IHRvIHRoZSBjb21waWxlbGluZS4KLSsgICAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCi0rICAgIDs7Ci0rICBtNjhrKQotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1l Lml4bGlicmFyeSAkbGlibmFtZS5hJwotKyAgICAjIENyZWF0ZSAke2xpYm5hbWV9X2l4bGlicmFy eS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgotKyAgICBmaW5pc2hfZXZhbD0nZm9yIGxpYiBpbiBg bHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYvbnVsbGA7IGRvIGxpYm5hbWU9YCRFQ0hPICJY JGxpYiIgfCAkWHNlZCAtZSAnXCcncyVeLiovXChbXi9dKlwpXC5peGxpYnJhcnkkJVwxJSdcJydg OyB0ZXN0ICRSTSAvc3lzL2xpYnMvJHtsaWJuYW1lfV9peGxpYnJhcnkuYTsgJHNob3cgImNkIC9z eXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEiOyBjZCAvc3lzL2xp YnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIHx8IGV4aXQgMTsgZG9uZScK LSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rYmVvcyopCi0rICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29z IGxkLnNvIgotKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rYnNkaVs0 NV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJl ZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvcicKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnICRs aWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9YMTEvbGliIC91c3IvY29udHJpYi9s aWIgL2xpYiAvdXNyL2xvY2FsL2xpYiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIv c2hsaWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCi0rICAjIHRoZSBkZWZhdWx0IGxkLnNvLmNv bmYgYWxzbyBjb250YWlucyAvdXNyL2NvbnRyaWIvbGliIGFuZAotKyAgIyAvdXNyL1gxMVI2L2xp YiAoL3Vzci9YMTEgaXMgYSBsaW5rIHRvIC91c3IvWDExUjYpLCBidXQgbGV0IHVzIGFsbG93Ci0r ICAjIGxpYnRvb2wgdG8gaGFyZC1jb2RlIHRoZXNlIGludG8gcHJvZ3JhbXMKLSsgIDs7Ci0rCi0r Y3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgdmVyc2lvbl90eXBlPXdpbmRv d3MKLSsgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBuZWVkX2xp Yl9wcmVmaXg9bm8KLSsKLSsgIGNhc2UgJEdDQywkaG9zdF9vcyBpbgotKyAgeWVzLGN5Z3dpbiog fCB5ZXMsbWluZ3cqIHwgeWVzLHB3MzIqIHwgeWVzLGNlZ2NjKikKLSsgICAgbGlicmFyeV9uYW1l c19zcGVjPSckbGlibmFtZS5kbGwuYScKLSsgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGli ZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcwotKyAgICBwb3N0aW5zdGFsbF9jbWRzPSdi YXNlX2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4KLSsgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYx IC1jICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTsgZWNobyBcJGRsbmFtZSdcJydg fgotKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KLSsgICAgICB0ZXN0 IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KLSsgICAgICAkaW5zdGFsbF9wcm9nICRk aXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+Ci0rICAgICAgY2htb2QgYSt4IFwkZGxkaXIvJGRs bmFtZX4KLSsgICAgICBpZiB0ZXN0IC1uICdcJyckc3RyaXBtZSdcJycgJiYgdGVzdCAtbiAnXCcn JHN0cmlwbGliJ1wnJzsgdGhlbgotKyAgICAgICAgZXZhbCAnXCcnJHN0cmlwbGliIFwkZGxkaXIv JGRsbmFtZSdcJycgfHwgZXhpdCBcJD87Ci0rICAgICAgZmknCi0rICAgIHBvc3R1bmluc3RhbGxf Y21kcz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wn J2B+Ci0rICAgICAgZGxwYXRoPSRkaXIvXCRkbGRsbH4KLSsgICAgICAgJFJNIFwkZGxwYXRoJwot KyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rCi0rICAgIGNhc2UgJGhvc3Rf b3MgaW4KLSsgICAgY3lnd2luKikKLSsgICAgICAjIEN5Z3dpbiBETExzIHVzZSAnY3lnJyBwcmVm aXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBzb25hbWVfc3BlYz0nYGVjaG8gJHtsaWJuYW1l fSB8IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1su XS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAvbGliIC91c3IvbG9jYWwvbGliIgotKyAg ICAgIDs7Ci0rICAgIG1pbmd3KiB8IGNlZ2NjKikKLSsgICAgICAjIE1pbkdXIERMTHMgdXNlIHRy YWRpdGlvbmFsICdsaWInIHByZWZpeAotKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVj aG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRf ZXh0fScKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNo LWRpcnMgfCAkR1JFUCAiXmxpYnJhcmllczoiIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAt ZSAicyw9LywvLGciYAotKyAgICAgIGlmICRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj IiB8ICRHUkVQICc7W2MtekMtWl06LycgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgIyBJdCBp cyBtb3N0IHByb2JhYmx5IGEgV2luZG93cyBmb3JtYXQgUEFUSCBwcmludGVkIGJ5Ci0rICAgICAg ICAjIG1pbmd3IGdjYywgYnV0IHdlIGFyZSBydW5uaW5nIG9uIEN5Z3dpbi4gR2NjIHByaW50cyBp dHMgc2VhcmNoCi0rICAgICAgICAjIHBhdGggd2l0aCA7IHNlcGFyYXRvcnMsIGFuZCB3aXRoIGRy aXZlIGxldHRlcnMuIFdlIGNhbiBoYW5kbGUgdGhlCi0rICAgICAgICAjIGRyaXZlIGxldHRlcnMg KGN5Z3dpbiBmaWxldXRpbHMgdW5kZXJzdGFuZHMgdGhlbSksIHNvIGxlYXZlIHRoZW0sCi0rICAg ICAgICAjIGVzcGVjaWFsbHkgYXMgd2UgbWlnaHQgcGFzcyBmaWxlcyBmb3VuZCB0aGVyZSB0byBh IG1pbmd3IG9iamR1bXAsCi0rICAgICAgICAjIHdoaWNoIHdvdWxkbid0IHVuZGVyc3RhbmQgYSBj eWd3aW5pZmllZCBwYXRoLiBBaGguCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAot KyAgICAgIGVsc2UKLSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAv ZyJgCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBwdzMyKikKLSsgICAgICAjIHB3MzIgRExM cyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBsaWJyYXJ5X25hbWVz X3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hvICR7cmVs ZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0r ICAgICAgOzsKLSsgICAgZXNhYwotKyAgICA7OwotKwotKyAgKikKLSsgICAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydg JHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCi0rICAgIDs7Ci0rICBlc2Fj Ci0rICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJwotKyAgIyBGSVhNRTogZmlyc3Qgd2Ug c2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCi0r ICBzaGxpYnBhdGhfdmFyPVBBVEgKLSsgIDs7Ci0rCi0rZGFyd2luKiB8IHJoYXBzb2R5KikKLSsg IGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgotKyAgdmVyc2lvbl90eXBlPWRhcndpbgot KyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0ICR7bGlibmFt ZX0kc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFq b3J9JHNoYXJlZF9leHQnCi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBz aGxpYnBhdGhfdmFyPURZTERfTElCUkFSWV9QQVRICi0rICBzaHJleHRfY21kcz0nYHRlc3QgLiRt b2R1bGUgPSAueWVzICYmIGVjaG8gLnNvIHx8IGVjaG8gLmR5bGliYCcKLSsKLSsgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvdXNyL2xvY2FsL2xp YiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvbGliIC91 c3IvbGliJwotKyAgOzsKLSsKLStkZ3V4KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVl ZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUkc2hhcmVkX2V4dCcKLSsgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgOzsKLSsKLStmcmVlYnNkMSopCi0rICBk eW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLStmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAj IERyYWdvbkZseSBkb2VzIG5vdCBoYXZlIGFvdXQuICBXaGVuL2lmIHRoZXkgaW1wbGVtZW50IGEg bmV3Ci0rICAjIHZlcnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1c3QgdGhpcy4KLSsgIGlmIHRlc3Qg LXggL3Vzci9iaW4vb2JqZm9ybWF0OyB0aGVuCi0rICAgIG9iamZvcm1hdD1gL3Vzci9iaW4vb2Jq Zm9ybWF0YAotKyAgZWxzZQotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGZyZWVic2RbMTIz XSopIG9iamZvcm1hdD1hb3V0IDs7Ci0rICAgICopIG9iamZvcm1hdD1lbGYgOzsKLSsgICAgZXNh YwotKyAgZmkKLSsgIHZlcnNpb25fdHlwZT1mcmVlYnNkLSRvYmpmb3JtYXQKLSsgIGNhc2UgJHZl cnNpb25fdHlwZSBpbgotKyAgICBmcmVlYnNkLWVsZiopCi0rICAgICAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgICAg bmVlZF92ZXJzaW9uPW5vCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgOzsKLSsg ICAgZnJlZWJzZC0qKQotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4JwotKyAgICAgIG5lZWRfdmVyc2lvbj15ZXMKLSsgICAgICA7OwotKyAgZXNhYwotKyAgc2hs aWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGZyZWVi c2QyKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICA7OwotKyAg ZnJlZWJzZDMuWzAxXSogfCBmcmVlYnNkZWxmMy5bMDFdKikKLSsgICAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPXllcwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0r ICBmcmVlYnNkMy5bMi05XSogfCBmcmVlYnNkZWxmMy5bMi05XSogfCBcCi0rICBmcmVlYnNkNC5b MC01XSB8IGZyZWVic2RlbGY0LlswLTVdIHwgZnJlZWJzZDQuMS4xIHwgZnJlZWJzZGVsZjQuMS4x KQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgaGFyZGNvZGVfaW50 b19saWJzPXllcwotKyAgICA7OwotKyAgKikgIyBmcm9tIDQuNiBvbiwgYW5kIERyYWdvbkZseQot KyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIGhhcmRjb2RlX2ludG9f bGlicz15ZXMKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rZ251KikKLSsgIHZlcnNpb25f dHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21ham9yfSAke2xpYm5h bWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAg aGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLStocHV4OSogfCBocHV4MTAqIHwgaHB1 eDExKikKLSsgICMgR2l2ZSBhIHNvbmFtZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBtYWpvciB2ZXJz aW9uIHNvIHRoYXQgZGxkLnNsIHJlZnVzZXMgdG8KLSsgICMgbGluayBhZ2FpbnN0IG90aGVyIHZl cnNpb25zLgotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsg IG5lZWRfdmVyc2lvbj1ubwotKyAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgIGlhNjQqKQotKyAgICBz aHJleHRfY21kcz0nLnNvJwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIGR5bmFt aWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc28iCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25v ZW52dmFyIGlzIHNwZWNpZmllZC4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGlmIHRlc3Qg IlgkSFBVWF9JQTY0X01PREUiID0gWDMyOyB0aGVuCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjPSIvdXNyL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIvaHB1eDMyIC91c3IvbG9jYWwv bGliIgotKyAgICBlbHNlCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xp Yi9ocHV4NjQgL3Vzci9sb2NhbC9saWIvaHB1eDY0IgotKyAgICBmaQotKyAgICBzeXNfbGliX2Rs c2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7Ci0rICBo cHBhKjY0KikKLSsgICAgc2hyZXh0X2NtZHM9Jy5zbCcKLSsgICAgaGFyZGNvZGVfaW50b19saWJz PXllcwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSCAjIEhvdyBzaG91bGQgd2UgaGFuZGxlIFNITElCX1BBVEgK LSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIg aXMgc3BlY2lmaWVkLgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjPSIvdXNyL2xpYi9wYTIwXzY0IC91c3IvY2NzL2xpYi9wYTIwXzY0IgotKyAgICBz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAg IDs7Ci0rICAqKQotKyAgICBzaHJleHRfY21kcz0nLnNsJwotKyAgICBkeW5hbWljX2xpbmtlcj0i JGhvc3Rfb3MgZGxkLnNsIgotKyAgICBzaGxpYnBhdGhfdmFyPVNITElCX1BBVEgKLSsgICAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vICMgK3MgaXMgcmVxdWlyZWQgdG8gZW5hYmxlIFNI TElCX1BBVEgKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIDs7Ci0rICBlc2FjCi0rICAjIEhQ LVVYIHJ1bnMgKnJlYWxseSogc2xvd2x5IHVubGVzcyBzaGFyZWQgbGlicmFyaWVzIGFyZSBtb2Rl IDU1NS4KLSsgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDU1NSAkbGliJwotKyAgOzsKLSsKLStp bnRlcml4WzMtOV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBkeW5hbWljX2xp bmtlcj0nSW50ZXJpeCAzLnggbGQuc28uMSAoUEUsIGxpa2UgRUxGKScKLSsgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsg IGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0raXJpeDUqIHwgaXJpeDYqIHwgbm9u c3RvcHV4KikKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgbm9uc3RvcHV4KikgdmVyc2lvbl90 eXBlPW5vbnN0b3B1eCA7OwotKyAgICAqKQotKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQi ID0geWVzOyB0aGVuCi0rCQl2ZXJzaW9uX3R5cGU9bGludXgKLSsJZWxzZQotKwkJdmVyc2lvbl90 eXBlPWlyaXgKLSsJZmkgOzsKLSsgIGVzYWMKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVl ZF92ZXJzaW9uPW5vCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yJwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJl ZF9leHR9JwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKLSsg ICAgbGlic3VmZj0gc2hsaWJzdWZmPQotKyAgICA7OwotKyAgKikKLSsgICAgY2FzZSAkTEQgaW4g IyBsaWJ0b29sLm00IHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAotKyAgICAq LTMyfCoiLTMyICJ8Ki1tZWxmMzJic21pcHwqIi1tZWxmMzJic21pcCAiKQotKyAgICAgIGxpYnN1 ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9MzItYml0OzsKLSsgICAgKi1uMzJ8KiItbjMyICJ8Ki1t ZWxmMzJibWlwbjMyfCoiLW1lbGYzMmJtaXBuMzIgIikKLSsgICAgICBsaWJzdWZmPTMyIHNobGli c3VmZj1OMzIgbGlibWFnaWM9TjMyOzsKLSsgICAgKi02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwq Ii1tZWxmNjRibWlwICIpCi0rICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9 NjQtYml0OzsKLSsgICAgKikgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZlci1tYXRj aDs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsgIGVzYWMKLSsgIHNobGlicGF0aF92YXI9TERfTElC UkFSWSR7c2hsaWJzdWZmfV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8K LSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xp YnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJzdWZmfSIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0 aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCi0rICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCi0rICA7OwotKwotKyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51 eCBvbGRsZCwgYW91dCwgb3IgY29mZi4KLStsaW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxp bnV4KmNvZmYqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rCi0rIyBUaGlzIG11c3Qg YmUgTGludXggRUxGLgotK2xpbnV4KiB8IGsqYnNkKi1nbnUpCi0rICB2ZXJzaW9uX3R5cGU9bGlu dXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRf ZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbiAk bGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD1ubwotKyAgIyBTb21lIGJpbnV0aWxzIGxkIGFyZSBwYXRjaGVkIHRv IHNldCBEVF9SVU5QQVRICi0rICBzYXZlX0xERkxBR1M9JExERkxBR1MKLSsgIHNhdmVfbGliZGly PSRsaWJkaXIKLSsgIGV2YWwgImxpYmRpcj0vZm9vOyB3bD1cIiRsdF9wcm9nX2NvbXBpbGVyX3ds XCI7IFwKLSsgICAgICAgTERGTEFHUz1cIlwkTERGTEFHUyAkaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY1wiIgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMu aC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsK LStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgot K3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNf dHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owot K2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikg Mj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193 ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0 ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5n IiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsg dGhlbgotKyAgaWYgICgkT0JKRFVNUCAtcCBjb25mdGVzdCRhY19leGVleHQpIDI+L2Rldi9udWxs IHwgZ3JlcCAiUlVOUEFUSC4qJGxpYmRpciIgPi9kZXYvbnVsbDsgdGhlbgotKyAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcwotK2ZpCi0rCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19t ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNf ZXh0ID4mNQotKwotKwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3Jl IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qu b28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICBMREZM QUdTPSRzYXZlX0xERkxBR1MKLSsgIGxpYmRpcj0kc2F2ZV9saWJkaXIKLSsKLSsgICMgVGhpcyBp bXBsaWVzIG5vIGZhc3RfaW5zdGFsbCwgd2hpY2ggaXMgdW5hY2NlcHRhYmxlLgotKyAgIyBTb21l IHJld29yayB3aWxsIGJlIG5lZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCi0rICAjIGJl Zm9yZSB0aGlzIGNhbiBiZSBlbmFibGVkLgotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKwot KyAgIyBBZGQgQUJJLXNwZWNpZmljIGRpcmVjdG9yaWVzIHRvIHRoZSBzeXN0ZW0gbGlicmFyeSBw YXRoLgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWI2NCAvdXNyL2xpYjY0IC9s aWIgL3Vzci9saWIiCi0rCi0rICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBz ZWFyY2ggcGF0aAotKyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KLSsgICAgbHRf bGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0 ICVzIDI+L2Rldi9udWxsIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBc JDA7IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15b CSBdKmh3Y2FwWwkgXS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nOy9e JC9kJyB8IHRyICdcbicgJyAnYAotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5 c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjICRsdF9sZF9leHRyYSIKLSsgIGZpCi0rCi0rICAjIFdl IHVzZWQgdG8gdGVzdCBmb3IgL2xpYi9sZC5zby4xIGFuZCBkaXNhYmxlIHNoYXJlZCBsaWJyYXJp ZXMgb24KLSsgICMgcG93ZXJwYywgYmVjYXVzZSBNa0xpbnV4IG9ubHkgc3VwcG9ydGVkIHNoYXJl ZCBsaWJyYXJpZXMgd2l0aCB0aGUKLSsgICMgR05VIGR5bmFtaWMgbGlua2VyLiAgU2luY2UgdGhp cyB3YXMgYnJva2VuIHdpdGggY3Jvc3MgY29tcGlsZXJzLAotKyAgIyBtb3N0IHBvd2VycGMtbGlu dXggYm94ZXMgc3VwcG9ydCBkeW5hbWljIGxpbmtpbmcgdGhlc2UgZGF5cyBhbmQKLSsgICMgcGVv cGxlIGNhbiBhbHdheXMgLS1kaXNhYmxlLXNoYXJlZCwgdGhlIHRlc3Qgd2FzIHJlbW92ZWQsIGFu ZCB3ZQotKyAgIyBhc3N1bWUgdGhlIEdOVS9MaW51eCBkeW5hbWljIGxpbmtlciBpcyBpbiB1c2Uu Ci0rICBkeW5hbWljX2xpbmtlcj0nR05VL0xpbnV4IGxkLnNvJwotKyAgOzsKLSsKLStuZXRic2Qq KQotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRf dmVyc2lvbj1ubwotKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9f ID4vZGV2L251bGw7IHRoZW4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCcKLSsgICAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcg LW0gJGxpYmRpcicKLSsgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCAoYS5vdXQpIGxkLnNvJwot KyAgZWxzZQotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0 QlNEIGxkLmVsZl9zbycKLSsgIGZpCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAot KyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19saWJz PXllcwotKyAgOzsKLSsKLStuZXdzb3M2KQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFy ZWRfZXh0fScKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICA7OwotKwotKypudG8qIHwgKnFueCopCi0rICB2ZXJz aW9uX3R5cGU9cW54Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwot KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwot KyAgZHluYW1pY19saW5rZXI9J2xkcW54LnNvJwotKyAgOzsKLSsKLStvcGVuYnNkKikKLSsgIHZl cnNpb25fdHlwZT1zdW5vcwotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGli IgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAjIFNvbWUgb2xkZXIgdmVyc2lvbnMgb2YgT3Bl bkJTRCAoMy4zIGF0IGxlYXN0KSAqZG8qIG5lZWQgdmVyc2lvbmVkIGxpYnMuCi0rICBjYXNlICRo b3N0X29zIGluCi0rICAgIG9wZW5ic2QzLjMgfCBvcGVuYnNkMy4zLiopCW5lZWRfdmVyc2lvbj15 ZXMgOzsKLSsgICAgKikJCQkJbmVlZF92ZXJzaW9uPW5vICA7OwotKyAgZXNhYwotKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgIGZpbmlzaF9jbWRzPSdQQVRI PSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAotKyAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwg JEdSRVAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIu OC1wb3dlcnBjIjsgdGhlbgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgb3BlbmJzZDIu Wzg5XSB8IG9wZW5ic2QyLls4OV0uKikKLSsJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5v Ci0rCTs7Ci0rICAgICAgKikKLSsJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKwk7 OwotKyAgICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcwotKyAgZmkKLSsgIDs7Ci0rCi0rb3MyKikKLSsgIGxpYm5hbWVfc3BlYz0nJG5hbWUnCi0r ICBzaHJleHRfY21kcz0iLmRsbCIKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbGlicmFyeV9u YW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUuYScKLSsgIGR5bmFtaWNf bGlua2VyPSdPUy8yIGxkLmV4ZScKLSsgIHNobGlicGF0aF92YXI9TElCUEFUSAotKyAgOzsKLSsK LStvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICB2ZXJzaW9uX3R5cGU9b3NmCi0rICBuZWVkX2xp Yl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc2hs aWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0i L3Vzci9zaGxpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIvY21wbHJzL2NjIC91c3IvbGliIC91c3Iv bG9jYWwvbGliIC92YXIvc2hsaWIiCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKLSsgIDs7Ci0rCi0rcmRvcyopCi0rICBkeW5hbWljX2xp bmtlcj1ubwotKyAgOzsKLSsKLStzb2xhcmlzKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAg bmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9Jwot KyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicK LSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9eWVzCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAjIGxkZCBjb21wbGFp bnMgdW5sZXNzIGxpYnJhcmllcyBhcmUgZXhlY3V0YWJsZQotKyAgcG9zdGluc3RhbGxfY21kcz0n Y2htb2QgK3ggJGxpYicKLSsgIDs7Ci0rCi0rc3Vub3M0KikKLSsgIHZlcnNpb25fdHlwZT1zdW5v cwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgIGZpbmlz aF9jbWRzPSdQQVRIPSJcJFBBVEg6L3Vzci9ldGMiIGxkY29uZmlnICRsaWJkaXInCi0rICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcwotKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICBuZWVkX2xp Yl9wcmVmaXg9bm8KLSsgIGZpCi0rICBuZWVkX3ZlcnNpb249eWVzCi0rICA7OwotKwotK3N5c3Y0 IHwgc3lzdjQuMyopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAg c29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBjYXNlICRob3N0X3ZlbmRvciBpbgot KyAgICBzbmkpCi0rICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAgICAg bmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsgICAg ICA7OwotKyAgICBzaWVtZW5zKQotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIDs7 Ci0rICAgIG1vdG9yb2xhKQotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIG5lZWRf dmVyc2lvbj1ubwotKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICAg IHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL2xpYiAvdXNyL2xpYiAvdXNyL2Njcy9saWInCi0r ICAgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rc3lzdjQqTVAqKQotKyAgaWYgdGVzdCAtZCAv dXNyL25lYyA7dGhlbgotKyAgICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgICAgbGlicmFyeV9uYW1l c19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVk X2V4dH0uJG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyRs aWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3InCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICi0rICBmaQotKyAgOzsKLSsKLStzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwg dW5peHdhcmUqIHwgT3BlblVOSVgqIHwgc3lzdjQqdXcyKikKLSsgIHZlcnNpb25fdHlwZT1mcmVl YnNkLWVsZgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9l eHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICBpZiB0ZXN0 ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz0nL3Vzci9sb2NhbC9saWIgL3Vzci9nbnUvbGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYiAvbGli JwotKyAgZWxzZQotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvY2NzL2xpYiAv dXNyL2xpYicKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIHNjbzMuMnY1KikKLSsgICAg ICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAv bGliIgotKwk7OwotKyAgICBlc2FjCi0rICBmaQotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3Nw ZWM9Jy91c3IvbGliJwotKyAgOzsKLSsKLSt0cGYqKQotKyAgIyBUUEYgaXMgYSBjcm9zcy10YXJn ZXQgb25seS4gIFByZWZlcnJlZCBjcm9zcy1ob3N0ID0gR05VL0xpbnV4LgotKyAgdmVyc2lvbl90 eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7 OwotKwotK3V0czQqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0r ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgOzsKLSsKLSsqKQotKyAgZHluYW1p Y19saW5rZXI9bm8KLSsgIDs7Ci0rZXNhYwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRkeW5hbWljX2xpbmtlciIgPiY1Ci0rJGFzX2VjaG8gIiRkeW5hbWljX2xpbmtlciIg PiY2OyB9Ci0rdGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9 bm8KLSsKLSt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAk cnVucGF0aF92YXIiCi0raWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgIHZhcmlhYmxlc19z YXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJF RklYIENPTVBJTEVSX1BBVEggTElCUkFSWV9QQVRIIgotK2ZpCi0rCi0raWYgdGVzdCAiJHtsdF9j dl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKLStmaQot K2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7 IHRoZW4KLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWMiCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGli cmFyeSBwYXRocyBpbnRvIHByb2dyYW1zIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBob3cg dG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zLi4uICIgPiY2OyB9Ci0raGFy ZGNvZGVfYWN0aW9uPQotK2lmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIiB8 fAotKyAgIHRlc3QgLW4gIiRydW5wYXRoX3ZhciIgfHwKLSsgICB0ZXN0ICJYJGhhcmRjb2RlX2F1 dG9tYXRpYyIgPSAiWHllcyIgOyB0aGVuCi0rCi0rICAjIFdlIGNhbiBoYXJkY29kZSBub24tZXhp c3RlbnQgZGlyZWN0b3JpZXMuCi0rICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiAhPSBubyAm JgotKyAgICAgIyBJZiB0aGUgb25seSBtZWNoYW5pc20gdG8gYXZvaWQgaGFyZGNvZGluZyBpcyBz aGxpYnBhdGhfdmFyLCB3ZQotKyAgICAgIyBoYXZlIHRvIHJlbGluaywgb3RoZXJ3aXNlIHdlIG1p Z2h0IGxpbmsgd2l0aCBhbiBpbnN0YWxsZWQgbGlicmFyeQotKyAgICAgIyB3aGVuIHdlIHNob3Vs ZCBiZSBsaW5raW5nIHdpdGggYSB5ZXQtdG8tYmUtaW5zdGFsbGVkIG9uZQotKyAgICAgIyMgdGVz dCAiJF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgKSIgIT0gbm8gJiYKLSsgICAg IHRlc3QgIiRoYXJkY29kZV9taW51c19MIiAhPSBubzsgdGhlbgotKyAgICAjIExpbmtpbmcgYWx3 YXlzIGhhcmRjb2RlcyB0aGUgdGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0b3J5LgotKyAgICBoYXJk Y29kZV9hY3Rpb249cmVsaW5rCi0rICBlbHNlCi0rICAgICMgV2UgY2FuIGxpbmsgd2l0aG91dCBo YXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRjb2RlIG5vbmV4aXN0aW5nIGRpcnMuCi0rICAgIGhh cmRjb2RlX2FjdGlvbj1pbW1lZGlhdGUKLSsgIGZpCi0rZWxzZQotKyAgIyBXZSBjYW5ub3QgaGFy ZGNvZGUgYW55dGhpbmcsIG9yIGVsc2Ugd2UgY2FuIG9ubHkgaGFyZGNvZGUgZXhpc3RpbmcKLSsg ICMgZGlyZWN0b3JpZXMuCi0rICBoYXJkY29kZV9hY3Rpb249dW5zdXBwb3J0ZWQKLStmaQotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRoYXJkY29kZV9hY3Rpb24iID4mNQot KyRhc19lY2hvICIkaGFyZGNvZGVfYWN0aW9uIiA+JjY7IH0KLSsKLStpZiB0ZXN0ICIkaGFyZGNv ZGVfYWN0aW9uIiA9IHJlbGluayB8fAotKyAgIHRlc3QgIiRpbmhlcml0X3JwYXRoIiA9IHllczsg dGhlbgotKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCi0rICBlbmFibGVf ZmFzdF9pbnN0YWxsPW5vCi0rZWxpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo IiA9IHllcyB8fAotKyAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0gbm87IHRoZW4KLSsgICMg RmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IG5lY2Vzc2FyeQotKyAgZW5hYmxlX2Zhc3RfaW5zdGFs bD1uZWVkbGVzcwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rICBpZiB0ZXN0ICJ4JGVuYWJsZV9k bG9wZW4iICE9IHh5ZXM7IHRoZW4KLSsgIGVuYWJsZV9kbG9wZW49dW5rbm93bgotKyAgZW5hYmxl X2Rsb3Blbl9zZWxmPXVua25vd24KLSsgIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93 bgotK2Vsc2UKLSsgIGx0X2N2X2Rsb3Blbj1ubwotKyAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0rCi0r ICBjYXNlICRob3N0X29zIGluCi0rICBiZW9zKikKLSsgICAgbHRfY3ZfZGxvcGVuPSJsb2FkX2Fk ZF9vbiIKLSsgICAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0rICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXll cwotKyAgICA7OwotKwotKyAgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAgIGx0X2N2X2Rs b3Blbj0iTG9hZExpYnJhcnkiCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJzPQotKyAgICA7OwotKwot KyAgY3lnd2luKikKLSsgICAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iCi0rICAgIGx0X2N2X2Rsb3Bl bl9saWJzPQotKyAgICA7OwotKwotKyAgZGFyd2luKikKLSsgICMgaWYgbGliZGwgaXMgaW5zdGFs bGVkIHdlIG5lZWQgdG8gbGluayBhZ2FpbnN0IGl0Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3Zf bGliX2RsX2Rsb3BlbitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWxk bCAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMu aC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsK LSsvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJv ci4KLSsgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUg b2YgYSBHQ0MKLSsgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291 bGQgc3RpbGwgYXBwbHkuICAqLwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIKLSsj ZW5kaWYKLStjaGFyIGRsb3BlbiAoKTsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBkbG9w ZW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgot K2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQot KyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAot KwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3Qk YWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAk YXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBhY19jdl9s aWJfZGxfZGxvcGVuPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJ YWNfY3ZfbGliX2RsX2Rsb3Blbj1ubwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLSty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThf Y29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0 Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9kbF9kbG9wZW4iID4mNQotKyRhc19lY2hvICIk YWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY2OyB9Ci0raWYgdGVzdCAieCRhY19jdl9saWJfZGxfZGxv cGVuIiA9IHgiInllczsgdGhlbgotKyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Bl bl9saWJzPSItbGRsIgotK2Vsc2UKLSsKLSsgICAgbHRfY3ZfZGxvcGVuPSJkeWxkIgotKyAgICBs dF9jdl9kbG9wZW5fbGlicz0KLSsgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCi0rCi0rZmkKLSsK LSsgICAgOzsKLSsKLSsgICopCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3Igc2hsX2xvYWQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBzaGxfbG9h ZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfZnVuY19zaGxfbG9hZCtzZXR9IiA9IHNl dDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKy8qIERlZmluZSBzaGxfbG9hZCB0 byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIHNobF9s b2FkLgotKyAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0 aW1lb2ZkYXkuICAqLwotKyNkZWZpbmUgc2hsX2xvYWQgaW5ub2N1b3VzX3NobF9sb2FkCi0rCi0r LyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZl dyBwcm90b3R5cGVzLAotKyAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHNobF9sb2Fk ICgpOyBiZWxvdy4KLSsgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NU RENfXyBpcyBkZWZpbmVkLCBzaW5jZQotKyAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZy ZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwotKwotKyNpZmRlZiBfX1NURENfXwotKyMgaW5jbHVk ZSA8bGltaXRzLmg+Ci0rI2Vsc2UKLSsjIGluY2x1ZGUgPGFzc2VydC5oPgotKyNlbmRpZgotKwot KyN1bmRlZiBzaGxfbG9hZAotKwotKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90 eXBlIHRvIGF2b2lkIGFuIGVycm9yLgotKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1h dGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwotKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFy Z3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCi0rI2lmZGVmIF9fY3BsdXNw bHVzCi0rZXh0ZXJuICJDIgotKyNlbmRpZgotK2NoYXIgc2hsX2xvYWQgKCk7Ci0rLyogVGhlIEdO VSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50 cwotKyAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBh Y3R1YWxseSBuYW1lZAotKyAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5v cm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KLSsjaWYgZGVmaW5lZCBfX3N0dWJfc2hsX2xvYWQg fHwgZGVmaW5lZCBfX3N0dWJfX19zaGxfbG9hZAotK2Nob2tlIG1lCi0rI2VuZGlmCi0rCi0raW50 Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gc2hsX2xvYWQgKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsK LSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVl eHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZh bCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIx Ci0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRl c3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgot KyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRj cm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4 dAotKyAgICAgICB9OyB0aGVuCi0rICBhY19jdl9mdW5jX3NobF9sb2FkPXllcwotK2Vsc2UKLSsg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY3ZfZnVuY19zaGxfbG9hZD1ubwotK2Zp Ci0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfZnVuY19zaGxfbG9hZCIgPiY1Ci0rJGFzX2VjaG8gIiRh Y19jdl9mdW5jX3NobF9sb2FkIiA+JjY7IH0KLStpZiB0ZXN0ICJ4JGFjX2N2X2Z1bmNfc2hsX2xv YWQiID0geCIieWVzOyB0aGVuCi0rICBsdF9jdl9kbG9wZW49InNobF9sb2FkIgotK2Vsc2UKLSsg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc2hsX2xvYWQgaW4gLWxk bGQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBzaGxfbG9hZCBpbiAtbGRsZC4uLiAi ID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfbGliX2RsZF9zaGxfbG9hZCtzZXR9IiA9IHNldDsg dGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19s aWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWxkbGQgICRMSUJTIgotK2NhdCA+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25m ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRl cm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCi0rICAgVXNlIGNoYXIgYmVjYXVzZSBp bnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCi0rICAgYnVpbHRpbiBhbmQg dGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KLSsjaWZk ZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiCi0rI2VuZGlmCi0rY2hhciBzaGxfbG9hZCAoKTsK LStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBzaGxfbG9hZCAoKTsKLSsgIDsKLSsgIHJldHVy biAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFj X2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgot KyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190 cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRM SU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsg IChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVz dC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewot KwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVz dCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNf ZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGFjX2N2X2xpYl9kbGRfc2hsX2xvYWQ9eWVzCi0r ZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2Vk ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlhY19jdl9saWJfZGxkX3NobF9s b2FkPW5vCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0r ICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVj a19saWJfc2F2ZV9MSUJTCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYWNfY3ZfbGliX2RsZF9zaGxfbG9hZCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9saWJfZGxk X3NobF9sb2FkIiA+JjY7IH0KLStpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kbGRfc2hsX2xvYWQiID0g eCIieWVzOyB0aGVuCi0rICBsdF9jdl9kbG9wZW49InNobF9sb2FkIiBsdF9jdl9kbG9wZW5fbGli cz0iLWxkbGQiCi0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciBkbG9wZW4iID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9wZW4uLi4gIiA+ JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X2Z1bmNfZGxvcGVuK3NldH0iID0gc2V0OyB0aGVuCi0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rLyogRGVmaW5lIGRsb3BlbiB0byBhbiBpbm5vY3Vv dXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGRsb3Blbi4KLSsgICBGb3Ig ZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8K LSsjZGVmaW5lIGRsb3BlbiBpbm5vY3VvdXNfZGxvcGVuCi0rCi0rLyogU3lzdGVtIGhlYWRlciB0 byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAotKyAg ICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGRsb3BlbiAoKTsgYmVsb3cuCi0rICAgIFBy ZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2lu Y2UKLSsgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJz LiAgKi8KLSsKLSsjaWZkZWYgX19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNl Ci0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYKLSsKLSsjdW5kZWYgZGxvcGVuCi0rCi0r LyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3Iu Ci0rICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9m IGEgR0NDCi0rICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxk IHN0aWxsIGFwcGx5LiAgKi8KLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiCi0rI2Vu ZGlmCi0rY2hhciBkbG9wZW4gKCk7Ci0rLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlz IGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwotKyAgICB0byBhbHdheXMgZmFpbCB3 aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAotKyAgICBzb21l dGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAg Ki8KLSsjaWYgZGVmaW5lZCBfX3N0dWJfZGxvcGVuIHx8IGRlZmluZWQgX19zdHViX19fZGxvcGVu Ci0rY2hva2UgbWUKLSsjZW5kaWYKLSsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBkbG9w ZW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgot K2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQot KyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAot KwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3Qk YWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAk YXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBhY19jdl9m dW5jX2Rsb3Blbj15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFj X2N2X2Z1bmNfZGxvcGVuPW5vCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25m dGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStm aQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9mdW5jX2Rsb3Bl biIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9mdW5jX2Rsb3BlbiIgPiY2OyB9Ci0raWYgdGVzdCAi eCRhY19jdl9mdW5jX2Rsb3BlbiIgPSB4IiJ5ZXM7IHRoZW4KLSsgIGx0X2N2X2Rsb3Blbj0iZGxv cGVuIgotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig ZGxvcGVuIGluIC1sZGwiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9wZW4gaW4g LWxkbC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfbGliX2RsX2Rsb3BlbitzZXR9IiA9 IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19j aGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWxkbCAgJExJQlMiCi0rY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsvKiBPdmVycmlkZSBhbnkgR0ND IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KLSsgICBVc2UgY2hhciBiZWNh dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKLSsgICBidWlsdGlu IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwot KyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIKLSsjZW5kaWYKLStjaGFyIGRsb3BlbiAo KTsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBkbG9wZW4gKCk7Ci0rICA7Ci0rICByZXR1 cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRh Y19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4K LSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0r ICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBn cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRl c3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsK LSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRl c3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFj X2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBhY19jdl9saWJfZGxfZGxvcGVuPXllcwotK2Vs c2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAn cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY3ZfbGliX2RsX2Rsb3Blbj1u bwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAg IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGli X3NhdmVfTElCUwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj X2N2X2xpYl9kbF9kbG9wZW4iID4mNQotKyRhc19lY2hvICIkYWNfY3ZfbGliX2RsX2Rsb3BlbiIg PiY2OyB9Ci0raWYgdGVzdCAieCRhY19jdl9saWJfZGxfZGxvcGVuIiA9IHgiInllczsgdGhlbgot KyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIgotK2Vsc2UK LSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1s c3ZsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbHN2bGQuLi4g IiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X2xpYl9zdmxkX2Rsb3BlbitzZXR9IiA9IHNldDsg dGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19s aWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWxzdmxkICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50 ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgotKyAgIFVzZSBjaGFyIGJlY2F1c2Ug aW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwotKyAgIGJ1aWx0aW4gYW5k IHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCi0rI2lm ZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJuICJDIgotKyNlbmRpZgotK2NoYXIgZGxvcGVuICgpOwot K2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIGRsb3BlbiAoKTsKLSsgIDsKLSsgIHJldHVybiAw OwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4 ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChl dmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAg LXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5l cjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkg dGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy Ci0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAi JGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhl ZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGFjX2N2X2xpYl9zdmxkX2Rsb3Blbj15ZXMKLStlbHNl Ci0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N2X2xpYl9zdmxkX2Rsb3Blbj1u bwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAg IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGli X3NhdmVfTElCUwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj X2N2X2xpYl9zdmxkX2Rsb3BlbiIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9saWJfc3ZsZF9kbG9w ZW4iID4mNjsgfQotK2lmIHRlc3QgIngkYWNfY3ZfbGliX3N2bGRfZGxvcGVuIiA9IHgiInllczsg dGhlbgotKyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbHN2bGQi Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBkbGRf bGluayBpbiAtbGRsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsZF9saW5rIGlu IC1sZGxkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9saWJfZGxkX2RsZF9saW5rK3Nl dH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsg IGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbGRsZCAgJExJQlMiCi0rY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9G Ci0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsvKiBPdmVycmlkZSBh bnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KLSsgICBVc2UgY2hh ciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKLSsgICBi dWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHku ICAqLwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIKLSsjZW5kaWYKLStjaGFyIGRs ZF9saW5rICgpOwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIGRsZF9saW5rICgpOwotKyAg OwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRh Y190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK LSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1 cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJt IC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVz KTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAt cyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAm JiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBj b25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgYWNfY3ZfbGliX2RsZF9kbGRf bGluaz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N2X2xp Yl9kbGRfZGxkX2xpbms9bm8KLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYg Y29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0 ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJ QlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19jdl9saWJfZGxkX2RsZF9saW5rIiA+JjUKLSskYXNfZWNobyAiJGFj X2N2X2xpYl9kbGRfZGxkX2xpbmsiID4mNjsgfQotK2lmIHRlc3QgIngkYWNfY3ZfbGliX2RsZF9k bGRfbGluayIgPSB4IiJ5ZXM7IHRoZW4KLSsgIGx0X2N2X2Rsb3Blbj0iZGxkX2xpbmsiIGx0X2N2 X2Rsb3Blbl9saWJzPSItbGRsZCIKLStmaQotKwotKwotK2ZpCi0rCi0rCi0rZmkKLSsKLSsKLStm aQotKwotKwotK2ZpCi0rCi0rCi0rZmkKLSsKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGlmIHRl c3QgIngkbHRfY3ZfZGxvcGVuIiAhPSB4bm87IHRoZW4KLSsgICAgZW5hYmxlX2Rsb3Blbj15ZXMK LSsgIGVsc2UKLSsgICAgZW5hYmxlX2Rsb3Blbj1ubwotKyAgZmkKLSsKLSsgIGNhc2UgJGx0X2N2 X2Rsb3BlbiBpbgotKyAgZGxvcGVuKQotKyAgICBzYXZlX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0r ICAgIHRlc3QgIngkYWNfY3ZfaGVhZGVyX2RsZmNuX2giID0geHllcyAmJiBDUFBGTEFHUz0iJENQ UEZMQUdTIC1ESEFWRV9ETEZDTl9IIgotKwotKyAgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgot KyAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlY1wiCi0rCi0rICAgIHNhdmVfTElCUz0iJExJQlMiCi0rICAg IExJQlM9IiRsdF9jdl9kbG9wZW5fbGlicyAkTElCUyIKLSsKLSsgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgYSBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxm IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGEgcHJvZ3JhbSBjYW4gZGxvcGVu IGl0c2VsZi4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfZGxvcGVuX3NlbGYrc2V0fSIg PSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgCSAg aWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4gOgotKyAgbHRfY3ZfZGxvcGVu X3NlbGY9Y3Jvc3MKLStlbHNlCi0rICBsdF9kbHVua25vd249MDsgbHRfZGxub191c2NvcmU9MTsg bHRfZGxuZWVkX3VzY29yZT0yCi0rICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93bgotKyAgY2F0ID4g Y29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLSsjbGluZSAxMjY4MSAiY29uZmlndXJlIgotKyNp bmNsdWRlICJjb25mZGVmcy5oIgotKwotKyNpZiBIQVZFX0RMRkNOX0gKLSsjaW5jbHVkZSA8ZGxm Y24uaD4KLSsjZW5kaWYKLSsKLSsjaW5jbHVkZSA8c3RkaW8uaD4KLSsKLSsjaWZkZWYgUlRMRF9H TE9CQUwKLSsjICBkZWZpbmUgTFRfRExHTE9CQUwJCVJUTERfR0xPQkFMCi0rI2Vsc2UKLSsjICBp ZmRlZiBETF9HTE9CQUwKLSsjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJRExfR0xPQkFMCi0rIyAg ZWxzZQotKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQkwCi0rIyAgZW5kaWYKLSsjZW5kaWYKLSsK LSsvKiBXZSBtYXkgaGF2ZSB0byBkZWZpbmUgTFRfRExMQVpZX09SX05PVyBpbiB0aGUgY29tbWFu ZCBsaW5lIGlmIHdlCi0rICAgZmluZCBvdXQgaXQgZG9lcyBub3Qgd29yayBpbiBzb21lIHBsYXRm b3JtLiAqLwotKyNpZm5kZWYgTFRfRExMQVpZX09SX05PVwotKyMgIGlmZGVmIFJUTERfTEFaWQot KyMgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCVJUTERfTEFaWQotKyMgIGVsc2UKLSsjICAg IGlmZGVmIERMX0xBWlkKLSsjICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCURMX0xBWlkK LSsjICAgIGVsc2UKLSsjICAgICAgaWZkZWYgUlRMRF9OT1cKLSsjICAgICAgICBkZWZpbmUgTFRf RExMQVpZX09SX05PVwlSVExEX05PVwotKyMgICAgICBlbHNlCi0rIyAgICAgICAgaWZkZWYgRExf Tk9XCi0rIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlETF9OT1cKLSsjICAgICAg ICBlbHNlCi0rIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkwCi0rIyAgICAgICAg ZW5kaWYKLSsjICAgICAgZW5kaWYKLSsjICAgIGVuZGlmCi0rIyAgZW5kaWYKLSsjZW5kaWYKLSsK LSt2b2lkIGZub3JkKCkgeyBpbnQgaT00Mjt9Ci0raW50IG1haW4gKCkKLSt7Ci0rICB2b2lkICpz ZWxmID0gZGxvcGVuICgwLCBMVF9ETEdMT0JBTHxMVF9ETExBWllfT1JfTk9XKTsKLSsgIGludCBz dGF0dXMgPSAkbHRfZGx1bmtub3duOwotKwotKyAgaWYgKHNlbGYpCi0rICAgIHsKLSsgICAgICBp ZiAoZGxzeW0gKHNlbGYsImZub3JkIikpICAgICAgIHN0YXR1cyA9ICRsdF9kbG5vX3VzY29yZTsK LSsgICAgICBlbHNlIGlmIChkbHN5bSggc2VsZiwiX2Zub3JkIikpIHN0YXR1cyA9ICRsdF9kbG5l ZWRfdXNjb3JlOwotKyAgICAgIC8qIGRsY2xvc2UgKHNlbGYpOyAqLwotKyAgICB9Ci0rICBlbHNl Ci0rICAgIHB1dHMgKGRsZXJyb3IgKCkpOwotKwotKyAgcmV0dXJuIHN0YXR1czsKLSt9Ci0rX0xU X0VPRgotKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikg PiY1Ci0rICAoZXZhbCAkYWNfbGluaykgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAyPi9kZXYvbnVsbDsgdGhl bgotKyAgICAoLi9jb25mdGVzdDsgZXhpdDsgKSA+JjUgMj4vZGV2L251bGwKLSsgICAgbHRfc3Rh dHVzPSQ/Ci0rICAgIGNhc2UgeCRsdF9zdGF0dXMgaW4KLSsgICAgICB4JGx0X2Rsbm9fdXNjb3Jl KSBsdF9jdl9kbG9wZW5fc2VsZj15ZXMgOzsKLSsgICAgICB4JGx0X2RsbmVlZF91c2NvcmUpIGx0 X2N2X2Rsb3Blbl9zZWxmPXllcyA7OwotKyAgICAgIHgkbHRfZGx1bmtub3dufHgqKSBsdF9jdl9k bG9wZW5fc2VsZj1ubyA7OwotKyAgICBlc2FjCi0rICBlbHNlIDoKLSsgICAgIyBjb21waWxhdGlv biBmYWlsZWQKLSsgICAgbHRfY3ZfZGxvcGVuX3NlbGY9bm8KLSsgIGZpCi0rZmkKLStybSAtZnIg Y29uZnRlc3QqCi0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkbHRfY3ZfZGxvcGVuX3NlbGYiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfZGxvcGVuX3NlbGYi ID4mNjsgfQotKwotKyAgICBpZiB0ZXN0ICJ4JGx0X2N2X2Rsb3Blbl9zZWxmIiA9IHh5ZXM7IHRo ZW4KLSsgICAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxB R1MgJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljXCIKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBhIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW0gY2Fu IGRsb3BlbiBpdHNlbGYiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgYSBzdGF0 aWNhbGx5IGxpbmtlZCBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmLi4uICIgPiY2OyB9Ci0raWYg dGVzdCAiJHtsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgCSAgaWYgdGVzdCAiJGNyb3NzX2Nv bXBpbGluZyIgPSB5ZXM7IHRoZW4gOgotKyAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPWNyb3Nz Ci0rZWxzZQotKyAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91 c2NvcmU9MgotKyAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KLSsgIGNhdCA+IGNvbmZ0ZXN0LiRh Y19leHQgPDxfTFRfRU9GCi0rI2xpbmUgMTI3NzcgImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29u ZmRlZnMuaCIKLSsKLSsjaWYgSEFWRV9ETEZDTl9ICi0rI2luY2x1ZGUgPGRsZmNuLmg+Ci0rI2Vu ZGlmCi0rCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rCi0rI2lmZGVmIFJUTERfR0xPQkFMCi0rIyAg ZGVmaW5lIExUX0RMR0xPQkFMCQlSVExEX0dMT0JBTAotKyNlbHNlCi0rIyAgaWZkZWYgRExfR0xP QkFMCi0rIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCURMX0dMT0JBTAotKyMgIGVsc2UKLSsjICAg IGRlZmluZSBMVF9ETEdMT0JBTAkJMAotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rLyogV2UgbWF5 IGhhdmUgdG8gZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cgaW4gdGhlIGNvbW1hbmQgbGluZSBpZiB3 ZQotKyAgIGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29tZSBwbGF0Zm9ybS4gKi8KLSsj aWZuZGVmIExUX0RMTEFaWV9PUl9OT1cKLSsjICBpZmRlZiBSVExEX0xBWlkKLSsjICAgIGRlZmlu ZSBMVF9ETExBWllfT1JfTk9XCQlSVExEX0xBWlkKLSsjICBlbHNlCi0rIyAgICBpZmRlZiBETF9M QVpZCi0rIyAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlETF9MQVpZCi0rIyAgICBlbHNl Ci0rIyAgICAgIGlmZGVmIFJUTERfTk9XCi0rIyAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9O T1cJUlRMRF9OT1cKLSsjICAgICAgZWxzZQotKyMgICAgICAgIGlmZGVmIERMX05PVwotKyMgICAg ICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCi0rIyAgICAgICAgZWxzZQotKyMg ICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJMAotKyMgICAgICAgIGVuZGlmCi0rIyAg ICAgIGVuZGlmCi0rIyAgICBlbmRpZgotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rdm9pZCBmbm9y ZCgpIHsgaW50IGk9NDI7fQotK2ludCBtYWluICgpCi0rewotKyAgdm9pZCAqc2VsZiA9IGRsb3Bl biAoMCwgTFRfRExHTE9CQUx8TFRfRExMQVpZX09SX05PVyk7Ci0rICBpbnQgc3RhdHVzID0gJGx0 X2RsdW5rbm93bjsKLSsKLSsgIGlmIChzZWxmKQotKyAgICB7Ci0rICAgICAgaWYgKGRsc3ltIChz ZWxmLCJmbm9yZCIpKSAgICAgICBzdGF0dXMgPSAkbHRfZGxub191c2NvcmU7Ci0rICAgICAgZWxz ZSBpZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSBzdGF0dXMgPSAkbHRfZGxuZWVkX3VzY29yZTsK LSsgICAgICAvKiBkbGNsb3NlIChzZWxmKTsgKi8KLSsgICAgfQotKyAgZWxzZQotKyAgICBwdXRz IChkbGVycm9yICgpKTsKLSsKLSsgIHJldHVybiBzdGF0dXM7Ci0rfQotK19MVF9FT0YKLSsgIGlm IHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotKyAgKGV2 YWwgJGFjX2xpbmspIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gMj4vZGV2L251bGw7IHRoZW4KLSsgICAgKC4v Y29uZnRlc3Q7IGV4aXQ7ICkgPiY1IDI+L2Rldi9udWxsCi0rICAgIGx0X3N0YXR1cz0kPwotKyAg ICBjYXNlIHgkbHRfc3RhdHVzIGluCi0rICAgICAgeCRsdF9kbG5vX3VzY29yZSkgbHRfY3ZfZGxv cGVuX3NlbGZfc3RhdGljPXllcyA7OwotKyAgICAgIHgkbHRfZGxuZWVkX3VzY29yZSkgbHRfY3Zf ZGxvcGVuX3NlbGZfc3RhdGljPXllcyA7OwotKyAgICAgIHgkbHRfZGx1bmtub3dufHgqKSBsdF9j dl9kbG9wZW5fc2VsZl9zdGF0aWM9bm8gOzsKLSsgICAgZXNhYwotKyAgZWxzZSA6Ci0rICAgICMg Y29tcGlsYXRpb24gZmFpbGVkCi0rICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1ubwotKyAg ZmkKLStmaQotK3JtIC1mciBjb25mdGVzdCoKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMiID4mNQotKyRhc19l Y2hvICIkbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIiA+JjY7IH0KLSsgICAgZmkKLSsKLSsgICAg Q1BQRkxBR1M9IiRzYXZlX0NQUEZMQUdTIgotKyAgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgot KyAgICBMSUJTPSIkc2F2ZV9MSUJTIgotKyAgICA7OwotKyAgZXNhYwotKwotKyAgY2FzZSAkbHRf Y3ZfZGxvcGVuX3NlbGYgaW4KLSsgIHllc3xubykgZW5hYmxlX2Rsb3Blbl9zZWxmPSRsdF9jdl9k bG9wZW5fc2VsZiA7OwotKyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25vd24gOzsKLSsgIGVz YWMKLSsKLSsgIGNhc2UgJGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyBpbgotKyAgeWVzfG5vKSBl bmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPSRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMgOzsKLSsg ICopIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93biA7OwotKyAgZXNhYwotK2ZpCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rc3RyaXBs aWI9Ci0rb2xkX3N0cmlwbGliPQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyB3aGV0aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2libGUiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIHdoZXRoZXIgc3RyaXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZS4uLiAi ID4mNjsgfQotK2lmIHRlc3QgLW4gIiRTVFJJUCIgJiYgJFNUUklQIC1WIDI+JjEgfCAkR1JFUCAi R05VIHN0cmlwIiA+L2Rldi9udWxsOyB0aGVuCi0rICB0ZXN0IC16ICIkb2xkX3N0cmlwbGliIiAm JiBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtLXN0cmlwLWRlYnVnIgotKyAgdGVzdCAteiAiJHN0cmlw bGliIiAmJiBzdHJpcGxpYj0iJFNUUklQIC0tc3RyaXAtdW5uZWVkZWQiCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsg fQotK2Vsc2UKLSsjIEZJWE1FIC0gaW5zZXJ0IHNvbWUgcmVhbCB0ZXN0cywgaG9zdF9vcyBpc24n dCByZWFsbHkgZ29vZCBlbm91Z2gKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGRhcndpbiopCi0r ICAgIGlmIHRlc3QgLW4gIiRTVFJJUCIgOyB0aGVuCi0rICAgICAgc3RyaXBsaWI9IiRTVFJJUCAt eCIKLSsgICAgICBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtUyIKLSsgICAgICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQot KyAgICBlbHNlCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rICAgIGZpCi0rICAgIDs7Ci0rICAqKQotKyAg ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8g Im5vIiA+JjY7IH0KLSsgICAgOzsKLSsgIGVzYWMKLStmaQotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKyAgIyBSZXBvcnQgd2hpY2ggbGlicmFyeSB0eXBlcyB3aWxsIGFjdHVh bGx5IGJlIGJ1aWx0Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYg bGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KLSsg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRjYW5fYnVpbGRfc2hhcmVkIiA+ JjUKLSskYXNfZWNobyAiJGNhbl9idWlsZF9zaGFyZWQiID4mNjsgfQotKwotKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJh cmllcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzaGFyZWQg bGlicmFyaWVzLi4uICIgPiY2OyB9Ci0rICB0ZXN0ICIkY2FuX2J1aWxkX3NoYXJlZCIgPSAibm8i ICYmIGVuYWJsZV9zaGFyZWQ9bm8KLSsKLSsgICMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVzIGFu ZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAotKyAgIyBhcmUg YWxsIGJ1aWx0IGZyb20gUElDLgotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgYWl4MyopCi0rICAg IHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rICAgIGlm IHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCi0rICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9j bWRzflwkUkFOTElCIFwkbGliIgotKyAgICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxp YicKLSsgICAgZmkKLSsgICAgOzsKLSsKLSsgIGFpeFs0LTldKikKLSsgICAgaWYgdGVzdCAiJGhv c3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsg dGhlbgotKyAgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGlj PW5vCi0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkZW5hYmxlX3NoYXJlZCIgPiY1Ci0rJGFzX2VjaG8gIiRlbmFibGVfc2hh cmVkIiA+JjY7IH0KLSsKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3 aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcy4uLiAiID4mNjsgfQotKyAgIyBN YWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCi0r ICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgfHwgZW5hYmxlX3N0YXRpYz15ZXMKLSsgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRlbmFibGVfc3RhdGljIiA+JjUKLSsk YXNfZWNobyAiJGVuYWJsZV9zdGF0aWMiID4mNjsgfQotKwotKwotKwotKwotK2ZpCi0rYWNfZXh0 PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdT ICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8gY29uZnRl c3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSsKLStD Qz0iJGx0X3NhdmVfQ0MiCi0rCi0rCi0rYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQ RkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhG TEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNf Y29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rYXJjaGl2ZV9jbWRzX25l ZWRfbGNfQ1hYPW5vCi0rYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPQotK2Fsd2F5c19leHBvcnRf c3ltYm9sc19DWFg9bm8KLSthcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0KLStjb21waWxlcl9uZWVk c19vYmplY3RfQ1hYPW5vCi0rZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0KLStoYXJkY29k ZV9kaXJlY3RfQ1hYPW5vCi0raGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlX0NYWD1ubwotK2hhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPQotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRf Q1hYPQotK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPQotK2hhcmRjb2RlX21pbnVzX0xf Q1hYPW5vCi0raGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9dW5zdXBwb3J0ZWQKLStoYXJkY29k ZV9hdXRvbWF0aWNfQ1hYPW5vCi0raW5oZXJpdF9ycGF0aF9DWFg9bm8KLSttb2R1bGVfY21kc19D WFg9Ci0rbW9kdWxlX2V4cHN5bV9jbWRzX0NYWD0KLStsaW5rX2FsbF9kZXBsaWJzX0NYWD11bmtu b3duCi0rb2xkX2FyY2hpdmVfY21kc19DWFg9JG9sZF9hcmNoaXZlX2NtZHMKLStub191bmRlZmlu ZWRfZmxhZ19DWFg9Ci0rd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPQotK2VuYWJsZV9zaGFy ZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfQ1hYPW5vCi0rCi0rIyBTb3VyY2UgZmlsZSBleHRlbnNp b24gZm9yIEMrKyB0ZXN0IHNvdXJjZXMuCi0rYWNfZXh0PWNwcAotKwotKyMgT2JqZWN0IGZpbGUg ZXh0ZW5zaW9uIGZvciBjb21waWxlZCBDKysgdGVzdCBzb3VyY2VzLgotK29iamV4dD1vCi0rb2Jq ZXh0X0NYWD0kb2JqZXh0Ci0rCi0rIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0ZXN0 cyBpZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAotKyMgdGhlIENYWCBjb21waWxlciBpc24n dCB3b3JraW5nLiAgU29tZSB2YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKLSsjIGFyZSBj dXJyZW50bHkgYXNzdW1lZCB0byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9uIHRoaXMgcGxhdGZv cm0sCi0rIyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9uIGEg bm9uLXdvcmtpbmcgY29tcGlsZXIuCi0raWYgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAh PSB5ZXM7IHRoZW4KLSsgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3Rz Ci0rICBsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImludCBzb21lX3ZhcmlhYmxlID0gMDsi Ci0rCi0rICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotKyAgbHRfc2lt cGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbihpbnQsIGNoYXIgKltdKSB7IHJldHVybigwKTsg fScKLSsKLSsgICMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9u cyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KLSsKLSsKLSsKLSsKLSsKLSsKLSsjIElmIG5vIEMg Y29tcGlsZXIgd2FzIHNwZWNpZmllZCwgdXNlIENDLgotK0xUQ0M9JHtMVENDLSIkQ0MifQotKwot KyMgSWYgbm8gQyBjb21waWxlciBmbGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4KLStM VENGTEFHUz0ke0xUQ0ZMQUdTLSIkQ0ZMQUdTIn0KLSsKLSsjIEFsbG93IENDIHRvIGJlIGEgcHJv Z3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgotK2NvbXBpbGVyPSRDQwotKwotKwotKyAgIyBzYXZl IHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLSsgIGFjX291dGZpbGU9 Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUi ID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8 ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCi0rX2x0X2NvbXBpbGVyX2JvaWxl cnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAotKyRSTSBjb25mdGVzdCoKLSsKLSsgIGFjX291dGZp bGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUi ID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2xpbmsiIDI+JjEgPi9kZXYvbnVsbCB8ICRT RUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCi0rX2x0X2xpbmtlcl9ib2lsZXJwbGF0 ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKLSskUk0gLXIgY29uZnRlc3QqCi0rCi0rCi0rICAjIEFsbG93 IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgotKyAgbHRfc2F2ZV9DQz0k Q0MKLSsgIGx0X3NhdmVfTEQ9JExECi0rICBsdF9zYXZlX0dDQz0kR0NDCi0rICBHQ0M9JEdYWAot KyAgbHRfc2F2ZV93aXRoX2dudV9sZD0kd2l0aF9nbnVfbGQKLSsgIGx0X3NhdmVfcGF0aF9MRD0k bHRfY3ZfcGF0aF9MRAotKyAgaWYgdGVzdCAtbiAiJHtsdF9jdl9wcm9nX2dudV9sZGN4eCtzZXR9 IjsgdGhlbgotKyAgICBsdF9jdl9wcm9nX2dudV9sZD0kbHRfY3ZfcHJvZ19nbnVfbGRjeHgKLSsg IGVsc2UKLSsgICAgJGFzX3Vuc2V0IGx0X2N2X3Byb2dfZ251X2xkCi0rICBmaQotKyAgaWYgdGVz dCAtbiAiJHtsdF9jdl9wYXRoX0xEQ1hYK3NldH0iOyB0aGVuCi0rICAgIGx0X2N2X3BhdGhfTEQ9 JGx0X2N2X3BhdGhfTERDWFgKLSsgIGVsc2UKLSsgICAgJGFzX3Vuc2V0IGx0X2N2X3BhdGhfTEQK LSsgIGZpCi0rICB0ZXN0IC16ICIke0xEQ1hYK3NldH0iIHx8IExEPSRMRENYWAotKyAgQ0M9JHtD WFgtImMrKyJ9Ci0rICBjb21waWxlcj0kQ0MKLSsgIGNvbXBpbGVyX0NYWD0kQ0MKLSsgIGZvciBj Y190ZW1wIGluICRjb21waWxlciIiOyBkbwotKyAgY2FzZSAkY2NfdGVtcCBpbgotKyAgICBjb21w aWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7Ci0rICAgIGRp c3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlmeSApIDs7Ci0rICAgIFwt KikgOzsKLSsgICAgKikgYnJlYWs7OwotKyAgZXNhYwotK2RvbmUKLStjY19iYXNlbmFtZT1gJEVD SE8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFzLSUl ImAKLSsKLSsKLSsgIGlmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KLSsgICAgIyBXZSBkb24n dCB3YW50IC1mbm8tZXhjZXB0aW9uIHdoZW4gY29tcGlsaW5nIEMrKyBjb2RlLCBzbyBzZXQgdGhl Ci0rICAgICMgbm9fYnVpbHRpbl9mbGFnIHNlcGFyYXRlbHkKLSsgICAgaWYgdGVzdCAiJEdYWCIg PSB5ZXM7IHRoZW4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFg9 JyAtZm5vLWJ1aWx0aW4nCi0rICAgIGVsc2UKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1 aWx0aW5fZmxhZ19DWFg9Ci0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0 aGVuCi0rICAgICAgIyBTZXQgdXAgZGVmYXVsdCBHTlUgQysrIGNvbmZpZ3VyYXRpb24KLSsKLSsK LSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLWdudS1sZCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAi JHt3aXRoX2dudV9sZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgd2l0aHZhbD0kd2l0aF9nbnVfbGQ7 IHRlc3QgIiR3aXRodmFsIiA9IG5vIHx8IHdpdGhfZ251X2xkPXllcwotK2Vsc2UKLSsgIHdpdGhf Z251X2xkPW5vCi0rZmkKLSsKLSthY19wcm9nPWxkCi0raWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRo ZW4KLSsgICMgQ2hlY2sgaWYgZ2NjIC1wcmludC1wcm9nLW5hbWU9bGQgZ2l2ZXMgYSBwYXRoLgot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBsZCB1c2VkIGJ5ICRD QyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgJENDLi4uICIgPiY2 OyB9Ci0rICBjYXNlICRob3N0IGluCi0rICAqLSotbWluZ3cqKQotKyAgICAjIGdjYyBsZWF2ZXMg YSB0cmFpbGluZyBjYXJyaWFnZSByZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3Ci0rICAgIGFjX3By b2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1J2AgOzsKLSsg ICopCi0rICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNWAgOzsKLSsg IGVzYWMKLSsgIGNhc2UgJGFjX3Byb2cgaW4KLSsgICAgIyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMu Ci0rICAgIFtcXC9dKiB8ID86W1xcL10qKQotKyAgICAgIHJlX2RpcmVsdD0nL1teL11bXi9dKi9c LlwuLycKLSsgICAgICAjIENhbm9uaWNhbGl6ZSB0aGUgcGF0aG5hbWUgb2YgbGQKLSsgICAgICBh Y19wcm9nPWAkRUNITyAiJGFjX3Byb2cifCAkU0VEICdzJVxcXFwlLyVnJ2AKLSsgICAgICB3aGls ZSAkRUNITyAiJGFjX3Byb2ciIHwgJEdSRVAgIiRyZV9kaXJlbHQiID4gL2Rldi9udWxsIDI+JjE7 IGRvCi0rCWFjX3Byb2c9YCRFQ0hPICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJlbHQlLyUiYAot KyAgICAgIGRvbmUKLSsgICAgICB0ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJvZyIKLSsgICAg ICA7OwotKyAgIiIpCi0rICAgICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3ZSBhcmVuJ3Qg dXNpbmcgR0NDLgotKyAgICBhY19wcm9nPWxkCi0rICAgIDs7Ci0rICAqKQotKyAgICAjIElmIGl0 IGlzIHJlbGF0aXZlLCB0aGVuIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEguCi0rICAg IHdpdGhfZ251X2xkPXVua25vd24KLSsgICAgOzsKLSsgIGVzYWMKLStlbGlmIHRlc3QgIiR3aXRo X2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgR05VIGxkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgR05VIGxkLi4u ICIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciBub24tR05VIGxkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Igbm9uLUdOVSBs ZC4uLiAiID4mNjsgfQotK2ZpCi0raWYgdGVzdCAiJHtsdF9jdl9wYXRoX0xEK3NldH0iID0gc2V0 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3Qg LXogIiRMRCI7IHRoZW4KLSsgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRP UgotKyAgZm9yIGFjX2RpciBpbiAkUEFUSDsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0r ICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgIiRhY19k aXIvJGFjX3Byb2ciIHx8IHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhlZXh0IjsgdGhl bgotKyAgICAgIGx0X2N2X3BhdGhfTEQ9IiRhY19kaXIvJGFjX3Byb2ciCi0rICAgICAgIyBDaGVj ayB0byBzZWUgaWYgdGhlIHByb2dyYW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1c2UgLS12ZXJz aW9uLAotKyAgICAgICMgYnV0IGFwcGFyZW50bHkgc29tZSB2YXJpYW50cyBvZiBHTlUgbGQgb25s eSBhY2NlcHQgLXYuCi0rICAgICAgIyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUgR05VL25vbi1H TlUgbGQgdGhhdCB3ZSBwcmVmZXIuCi0rICAgICAgY2FzZSBgIiRsdF9jdl9wYXRoX0xEIiAtdiAy PiYxIDwvZGV2L251bGxgIGluCi0rICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCi0rCXRlc3Qg IiR3aXRoX2dudV9sZCIgIT0gbm8gJiYgYnJlYWsKLSsJOzsKLSsgICAgICAqKQotKwl0ZXN0ICIk d2l0aF9nbnVfbGQiICE9IHllcyAmJiBicmVhawotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZmkK LSsgIGRvbmUKLSsgIElGUz0iJGx0X3NhdmVfaWZzIgotK2Vsc2UKLSsgIGx0X2N2X3BhdGhfTEQ9 IiRMRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rZmkK LStmaQotKwotK0xEPSIkbHRfY3ZfcGF0aF9MRCIKLStpZiB0ZXN0IC1uICIkTEQiOyB0aGVuCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTEQiID4mNQotKyRhc19lY2hv ICIkTEQiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rdGVzdCAteiAiJExEIiAm JiB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBsZCBm b3VuZCBpbiBcJFBBVEgiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRh YmxlIGxkIGZvdW5kIGluIFwkUEFUSCIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07 IH0KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAo JExEKSBpcyBHTlUgbGQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmIHRoZSBsaW5rZXIg KCRMRCkgaXMgR05VIGxkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9nX2dudV9s ZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICAjIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiBoZXJlLCBidXQgYXBwYXJlbnRseSBzb21l IEdOVSBsZHMgb25seSBhY2NlcHQgLXYuCi0rY2FzZSBgJExEIC12IDI+JjEgPC9kZXYvbnVsbGAg aW4KLSsqR05VKiB8ICond2l0aCBCRkQnKikKLSsgIGx0X2N2X3Byb2dfZ251X2xkPXllcwotKyAg OzsKLSsqKQotKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9bm8KLSsgIDs7Ci0rZXNhYwotK2ZpCi0reyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfZ251X2xkIiA+JjUK LSskYXNfZWNobyAiJGx0X2N2X3Byb2dfZ251X2xkIiA+JjY7IH0KLSt3aXRoX2dudV9sZD0kbHRf Y3ZfcHJvZ19nbnVfbGQKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsgICAgICAjIENoZWNrIGlmIEdO VSBDKysgdXNlcyBHTlUgbGQgYXMgdGhlIHVuZGVybHlpbmcgbGlua2VyLCBzaW5jZSB0aGUKLSsg ICAgICAjIGFyY2hpdmluZyBjb21tYW5kcyBiZWxvdyBhc3N1bWUgdGhhdCBHTlUgbGQgaXMgYmVp bmcgdXNlZC4KLSsgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICAg ICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rICAgICAgICBhcmNoaXZlX2V4cHN5bV9j bWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHds JHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAk bGliJwotKwotKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJw YXRoICR7d2x9JGxpYmRpcicKLSsgICAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9 JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsKLSsgICAgICAgICMgSWYgYXJjaGl2ZV9jbWRzIHJ1 bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hvdWxkIGJlIGVtcHR5Ci0rICAgICAgICAjIFhYWCBJIHRo aW5rIHdsYXJjIGNhbiBiZSBlbGltaW5hdGVkIGluIGx0Y2YtY3h4LCBidXQgSSBuZWVkIHRvCi0r ICAgICAgICAjICAgICBpbnZlc3RpZ2F0ZSBpdCBhIGxpdHRsZSBiaXQgbW9yZS4gKE1NKQotKyAg ICAgICAgd2xhcmM9JyR7d2x9JwotKwotKyAgICAgICAgIyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qg c3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgotKyAgICAgICAgaWYgZXZhbCAiYCRDQyAt cHJpbnQtcHJvZy1uYW1lPWxkYCAtLWhlbHAgMj4mMSIgfAotKwkgICRHUkVQICduby13aG9sZS1h cmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlY19DWFg9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIict LW5vLXdob2xlLWFyY2hpdmUnCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgIHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjX0NYWD0KLSsgICAgICAgIGZpCi0rICAgICAgZWxzZQotKyAgICAgICAgd2l0 aF9nbnVfbGQ9bm8KLSsgICAgICAgIHdsYXJjPQotKwotKyAgICAgICAgIyBBIGdlbmVyaWMgYW5k IHZlcnkgc2ltcGxlIGRlZmF1bHQgc2hhcmVkIGxpYnJhcnkgY3JlYXRpb24KLSsgICAgICAgICMg Y29tbWFuZCBmb3IgR05VIEMrKyBmb3IgdGhlIGNhc2Ugd2hlcmUgaXQgdXNlcyB0aGUgbmF0aXZl Ci0rICAgICAgICAjIGxpbmtlciwgaW5zdGVhZCBvZiBHTlUgbGQuICBJZiBwb3NzaWJsZSwgdGhp cyBzZXR0aW5nIHNob3VsZAotKyAgICAgICAgIyBvdmVycmlkZGVuIHRvIHRha2UgYWR2YW50YWdl IG9mIHRoZSBuYXRpdmUgbGlua2VyIGZlYXR1cmVzIG9uCi0rICAgICAgICAjIHRoZSBwbGF0Zm9y bSBpdCBpcyBiZWluZyB1c2VkIG9uLgotKyAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1z aGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkbGliJwotKyAgICAgIGZpCi0rCi0rICAgICAg IyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBs aXN0cwotKyAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQg ZmxhZ3MgYXJlIHVzZWQgd2hlbgotKyAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5Lgot KyAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNv bmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJwotKwotKyAgICBlbHNlCi0rICAgICAg R1hYPW5vCi0rICAgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgICB3bGFyYz0KLSsgICAgZmkKLSsK LSsgICAgIyBQT1JUTUU6IGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIEMr KyBsaW5rIGNoYXJhY3RlcmlzdGljcwotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFy ZWQgbGlicmFyaWVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSAkY29t cGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0K LSsgICAgbGRfc2hsaWJzX0NYWD15ZXMKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIGFp eDMqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0 Ci0rICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAgICAgICA7OwotKyAgICAgIGFpeFs0LTld KikKLSsgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rICAgICAgICAg ICMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwg c28gd2UgZG9uJ3QKLSsgICAgICAgICAgIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCi0r ICAgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KLSsgICAgICAgICAgZXhwX3N5bV9m bGFnPSctQmV4cG9ydCcKLSsgICAgICAgICAgbm9fZW50cnlfZmxhZz0iIgotKyAgICAgICAgZWxz ZQotKyAgICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCi0rCi0rICAgICAgICAgICMg VGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1hbAot KyAgICAgICAgICAjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hlcmUgaW4g TERGTEFHUywgd2UKLSsgICAgICAgICAgIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KLSsg ICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlsyM118YWl4NC5bMjNdLip8YWl4WzUtOV0q KQotKwkgICAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCi0rCSAgICAgIGNhc2UgJGxkX2Zs YWcgaW4KLSsJICAgICAgKi1icnRsKikKLSsJICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5n PXllcwotKwkgICAgICAgIGJyZWFrCi0rCSAgICAgICAgOzsKLSsJICAgICAgZXNhYwotKwkgICAg ZG9uZQotKwkgICAgOzsKLSsgICAgICAgICAgZXNhYwotKwotKyAgICAgICAgICBleHBfc3ltX2Zs YWc9Jy1iZXhwb3J0JwotKyAgICAgICAgICBub19lbnRyeV9mbGFnPSctYm5vZW50cnknCi0rICAg ICAgICBmaQotKwotKyAgICAgICAgIyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBv YmplY3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgotKyAgICAgICAgIyBoYXZlIHByb2JsZW1zIGNy ZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5Ci0rICAg ICAgICAjIG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBhZGQgLW1t aW5pbWFsLXRvYyB0bwotKyAgICAgICAgIyBDWFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJ biB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBub3QKLSsgICAgICAgICMgZW5vdWdoIHRvIGZpeCB0 aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgotKwotKyAgICAgICAgYXJj aGl2ZV9jbWRzX0NYWD0nJwotKyAgICAgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD15ZXMKLSsgICAg ICAgIGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFg9eWVzCi0rICAgICAgICBoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yX0NYWD0nOicKLSsgICAgICAgIGxpbmtfYWxsX2RlcGxpYnNfQ1hYPXll cwotKyAgICAgICAgZmlsZV9saXN0X3NwZWNfQ1hYPScke3dsfS1mLCcKLSsKLSsgICAgICAgIGlm IHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4gYWl4 NC5bMDEyXXxhaXg0LlswMTJdLiopCi0rICAgICAgICAgICMgV2Ugb25seSB3YW50IHRvIGRvIHRo aXMgb24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjawotKyAgICAgICAgICAjIGJlbG93IGZv ciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKLSsJICBjb2xsZWN0Mm5h bWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCi0rCSAgaWYgdGVzdCAtZiAiJGNv bGxlY3QybmFtZSIgJiYKLSsJICAgICBzdHJpbmdzICIkY29sbGVjdDJuYW1lIiB8ICRHUkVQIHJl c29sdmVfbGliX25hbWUgPi9kZXYvbnVsbAotKwkgIHRoZW4KLSsJICAgICMgV2UgaGF2ZSByZXdv cmtlZCBjb2xsZWN0MgotKwkgICAgOgotKwkgIGVsc2UKLSsJICAgICMgV2UgaGF2ZSBvbGQgY29s bGVjdDIKLSsJICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9dW5zdXBwb3J0ZWQKLSsJICAgICMgSXQg ZmFpbHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQK LSsJICAgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJk Y29kZV9taW51c19MCi0rCSAgICAjIHRvIHVuc3VwcG9ydGVkIGZvcmNlcyByZWxpbmtpbmcKLSsJ ICAgIGhhcmRjb2RlX21pbnVzX0xfQ1hYPXllcwotKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19DWFg9Jy1MJGxpYmRpcicKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hY PQotKwkgIGZpCi0rICAgICAgICAgIGVzYWMKLSsgICAgICAgICAgc2hhcmVkX2ZsYWc9Jy1zaGFy ZWQnCi0rCSAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0r CSAgICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICInJHt3bH0tRycKLSsJICBmaQotKyAgICAg ICAgZWxzZQotKyAgICAgICAgICAjIG5vdCB1c2luZyBnY2MKLSsgICAgICAgICAgaWYgdGVzdCAi JGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJICAjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41 IGZvciBBSVggNUwgZm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQotKwkgICMgY2hva2VzIG9uIC1X bCwtRy4gVGhlIGZvbGxvd2luZyBsaW5lIGlzIGNvcnJlY3Q6Ci0rCSAgc2hhcmVkX2ZsYWc9Jy1H JwotKyAgICAgICAgICBlbHNlCi0rCSAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2lu ZyIgPSB5ZXM7IHRoZW4KLSsJICAgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCi0rCSAgICBlbHNl Ci0rCSAgICAgIHNoYXJlZF9mbGFnPScke3dsfS1iTTpTUkUnCi0rCSAgICBmaQotKyAgICAgICAg ICBmaQotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19D WFg9JyR7d2x9LWJleHBhbGwnCi0rICAgICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBhbGwgZG9l cyBub3QgZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKLSsgICAgICAgICMgdW5kZXJzY29y ZSAoXyksIHNvIGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0bwot KwkjIGV4cG9ydC4KLSsgICAgICAgIGFsd2F5c19leHBvcnRfc3ltYm9sc19DWFg9eWVzCi0rICAg ICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsgICAg ICAgICAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVudGltZSBsb2FkaW5n IGZsYWdzICgtYnJ0bCksCi0rICAgICAgICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVy cm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsgICAgICAgICAgYWxsb3df dW5kZWZpbmVkX2ZsYWdfQ1hYPSctYmVyb2snCi0rICAgICAgICAgICMgRGV0ZXJtaW5lIHRoZSBk ZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbiBlbXB0eQotKyAgICAg ICAgICAjIGV4ZWN1dGFibGUuCi0rICAgICAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29u ZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQg Y29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVy biAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFj X2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgot KyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190 cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRM SU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsg IChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVz dC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewot KwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVz dC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0 ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRh Y19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKwotK2x0X2FpeF9saWJwYXRoX3NlZD0nCi0rICAg IC9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKLSsJL14wLyB7Ci0rCSAgICBzL14wICAqXCgu KlwpJC9cMS8KLSsJICAgIHAKLSsJfQotKyAgICB9JwotK2FpeF9saWJwYXRoPWBkdW1wIC1IIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0 aF9zZWQiYAotKyMgQ2hlY2sgZm9yIGEgNjQtYml0IG9iamVjdCBpZiB3ZSBkaWRuJ3QgZmluZCBh bnl0aGluZy4KLStpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuCi0rICBhaXhfbGlicGF0 aD1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1l ICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLStmaQotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKLSsKLSsKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9v IFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK2lmIHRlc3Qg LXogIiRhaXhfbGlicGF0aCI7IHRoZW4gYWl4X2xpYnBhdGg9Ii91c3IvbGliOi9saWIiOyBmaQot KwotKyAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tYmxpYnBh dGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSsKLSsgICAgICAgICAgYXJjaGl2ZV9leHBzeW1f Y21kc19DWFg9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJz ICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2Fs bG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuICRFQ0hPICJYJHt3bH0ke2FsbG93X3Vu ZGVmaW5lZF9mbGFnfSIgfCAkWHNlZDsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFn OlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgotKyAgICAgICAgZWxzZQotKyAgICAgICAg ICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkgICAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19DWFg9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJwotKwkgICAgYWxs b3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPSIteiBub2RlZnMiCi0rCSAgICBhcmNoaXZlX2V4cHN5bV9j bWRzX0NYWD0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRs aWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBv cnRfc3ltYm9scyIKLSsgICAgICAgICAgZWxzZQotKwkgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1 bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCi0rCSAgICAjIGVtcHR5IGV4 ZWN1dGFibGUuCi0rCSAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25m ZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK LStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAq LwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FD RU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7 IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xp bmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBj b25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQg Y29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRh Y19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAg IH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2Nv bXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAg ICAgIH07IHRoZW4KLSsKLStsdF9haXhfbGlicGF0aF9zZWQ9JwotKyAgICAvSW1wb3J0IEZpbGUg U3RyaW5ncy8sL14kLyB7Ci0rCS9eMC8gewotKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCi0rCSAg ICBwCi0rCX0KLSsgICAgfScKLSthaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVl eHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLSsjIENo ZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCi0raWYg dGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgotKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQg Y29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJw YXRoX3NlZCJgCi0rZmkKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCi0r ZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStpZiB0ZXN0IC16ICIkYWl4X2xpYnBh dGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKLSsKLSsJICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9s aWJwYXRoIgotKwkgICAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRp bWUgbG9hZGluZyBmbGFncywKLSsJICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9y LCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJICAgIG5vX3VuZGVmaW5lZF9m bGFnX0NYWD0nICR7d2x9LWJlcm5vdG9rJwotKwkgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hY PScgJHt3bH0tYmVyb2snCi0rCSAgICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBp bnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKLSsJICAgIHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjX0NYWD0nJGNvbnZlbmllbmNlJwotKwkgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hY PXllcwotKwkgICAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1 aWxkcyBpdHMgc2hhcmVkCi0rCSAgICAjIGxpYnJhcmllcy4KLSsJICAgIGFyY2hpdmVfZXhwc3lt X2NtZHNfQ1hYPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUg JGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJF OiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCi0r ICAgICAgICAgIGZpCi0rICAgICAgICBmaQotKyAgICAgICAgOzsKLSsKLSsgICAgICBiZW9zKikK LSsJaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxm JyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD11bnN1cHBv cnRlZAotKwkgICMgSm9zZXBoIEJlY2tlbmJhY2ggPGpyYjNAYmVzdC5jb20+IHNheXMgc29tZSBy ZWxlYXNlcyBvZiBnY2MKLSsJICAjIHN1cHBvcnQgLS11bmRlZmluZWQuICBUaGlzIGRlc2VydmVz IHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1FCi0rCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1u b3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHds JHNvbmFtZSAtbyAkbGliJwotKwllbHNlCi0rCSAgbGRfc2hsaWJzX0NYWD1ubwotKwlmaQotKwk7 OwotKwotKyAgICAgIGNob3J1cyopCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAg ICAgICAgICAqKQotKwkgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9y dAotKwkgIGxkX3NobGlic19DWFg9bm8KLSsJICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAg OzsKLSsKLSsgICAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAgICAg ICAjIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgQ1hYKSBpcyBhY3R1YWxs eSBtZWFuaW5nbGVzcywKLSsgICAgICAgICMgYXMgdGhlcmUgaXMgbm8gc2VhcmNoIHBhdGggZm9y IERMTHMuCi0rICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLUwkbGliZGly JwotKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPXVuc3VwcG9ydGVkCi0rICAgICAg ICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYPW5vCi0rICAgICAgICBlbmFibGVfc2hhcmVkX3dp dGhfc3RhdGljX3J1bnRpbWVzX0NYWD15ZXMKLSsKLSsgICAgICAgIGlmICRMRCAtLWhlbHAgMj4m MSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KLSsgICAgICAgICAgYXJj aGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0t b3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwotKyAgICAgICAgICAjIElmIHRoZSBleHBvcnQtc3lt Ym9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCi0rICAgICAgICAgICMg aXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCi0rICAgICAg ICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9z eW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgotKwkgICAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRw dXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKyAgICAgICAgICBlbHNlCi0rCSAgICBlY2hvIEVYUE9S VFMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJICAgIGNhdCAkZXhwb3J0X3N5bWJv bHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rICAgICAgICAgIGZpfgotKyAgICAg ICAgICAkQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWYgJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVy X2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdl LWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCi0rICAgICAgICBlbHNl Ci0rICAgICAgICAgIGxkX3NobGlic19DWFg9bm8KLSsgICAgICAgIGZpCi0rICAgICAgICA7Owot KyAgICAgIGRhcndpbiogfCByaGFwc29keSopCi0rCi0rCi0rICBhcmNoaXZlX2NtZHNfbmVlZF9s Y19DWFg9bm8KLSsgIGhhcmRjb2RlX2RpcmVjdF9DWFg9bm8KLSsgIGhhcmRjb2RlX2F1dG9tYXRp Y19DWFg9eWVzCi0rICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD11bnN1cHBvcnRlZAotKyAg d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScnCi0rICBsaW5rX2FsbF9kZXBsaWJzX0NYWD15 ZXMKLSsgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0iJF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVk IgotKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgIGlmb3J0KikgX2x0X2Rhcl9jYW5fc2hh cmVkPXllcyA7OwotKyAgICAgKikgX2x0X2Rhcl9jYW5fc2hhcmVkPSRHQ0MgOzsKLSsgIGVzYWMK LSsgIGlmIHRlc3QgIiRfbHRfZGFyX2Nhbl9zaGFyZWQiID0gInllcyI7IHRoZW4KLSsgICAgb3V0 cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZWNobwotKyAgICBhcmNoaXZlX2NtZHNfQ1hYPSJcJENDIC1k eW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVw bGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZl cnN0cmluZyAkX2x0X2Rhcl9zaW5nbGVfbW9kJHtfbHRfZHN5bXV0aWx9IgotKyAgICBtb2R1bGVf Y21kc19DWFg9IlwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwk bGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2RzeW11dGlsfSIKLSsgICAg YXJjaGl2ZV9leHBzeW1fY21kc19DWFg9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMg PiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtZHluYW1p Y2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMg XCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJp bmcgJHtfbHRfZGFyX3NpbmdsZV9tb2R9JHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11 dGlsfSIKLSsgICAgbW9kdWxlX2V4cHN5bV9jbWRzX0NYWD0ic2VkIC1lICdzLF4sXywnIDwgXCRl eHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5 bX5cJENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMg XCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5 bXV0aWx9IgotKyAgICAgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgIT0g InllcyI7IHRoZW4KLSsgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSJcJENDIC1yIC1rZWVwX3ByaXZh dGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+XCRDQyAt ZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwke2xpYn0tbWFzdGVy Lm8gXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29u YW1lIFwkdmVyc3RyaW5nJHtfbHRfZHN5bXV0aWx9IgotKyAgICAgIGFyY2hpdmVfZXhwc3ltX2Nt ZHNfQ1hYPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGly L1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5z IC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5hbWljbGli IFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBcJGRlcGxp YnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJz dHJpbmcke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICBmaQotKwot KyAgZWxzZQotKyAgbGRfc2hsaWJzX0NYWD1ubwotKyAgZmkKLSsKLSsJOzsKLSsKLSsgICAgICBk Z3V4KikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIGVjKysqKQot KwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBs ZF9zaGxpYnNfQ1hYPW5vCi0rCSAgICA7OwotKyAgICAgICAgICBnaGN4KikKLSsJICAgICMgR3Jl ZW4gSGlsbHMgQysrIENvbXBpbGVyCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBs aWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAg ICAgICopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQK LSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAg ICA7OwotKwotKyAgICAgIGZyZWVic2RbMTJdKikKLSsgICAgICAgICMgQysrIHNoYXJlZCBsaWJy YXJpZXMgcmVwb3J0ZWQgdG8gYmUgZmFpcmx5IGJyb2tlbiBiZWZvcmUKLSsJIyBzd2l0Y2ggdG8g RUxGCi0rICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAgICAgICA7OwotKwotKyAgICAgIGZy ZWVic2QtZWxmKikKLSsgICAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubwotKyAgICAg ICAgOzsKLSsKLSsgICAgICBmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAgICAgICAjIEZyZWVC U0QgMyBhbmQgbGF0ZXIgdXNlIEdOVSBDKysgYW5kIEdOVSBsZCB3aXRoIHN0YW5kYXJkIEVMRgot KyAgICAgICAgIyBjb252ZW50aW9ucwotKyAgICAgICAgbGRfc2hsaWJzX0NYWD15ZXMKLSsgICAg ICAgIDs7Ci0rCi0rICAgICAgZ251KikKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgaHB1eDkqKQot KyAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9K2IgJHt3bH0kbGli ZGlyJwotKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgotKyAgICAgICAg ZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tRScKLSsgICAgICAgIGhhcmRjb2Rl X2RpcmVjdF9DWFg9eWVzCi0rICAgICAgICBoYXJkY29kZV9taW51c19MX0NYWD15ZXMgIyBOb3Qg aW4gdGhlIHNlYXJjaCBQQVRILAotKwkJCQkgICAgICAgICAgICAgIyBidXQgYXMgdGhlIGRlZmF1 bHQKLSsJCQkJICAgICAgICAgICAgICMgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCi0rCi0rICAg ICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBDQyopCi0rICAgICAgICAgICAg IyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICAgICAg bGRfc2hsaWJzX0NYWD1ubwotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICAgIGFDQyopCi0rICAg ICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JEND IC1iICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0 cHV0X29iamRpci8kc29uYW1lICRsaWInCi0rICAgICAgICAgICAgIyBDb21tYW5kcyB0byBtYWtl IGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKyAgICAgICAgICAg ICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVz ZWQgd2hlbgotKyAgICAgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKyAgICAg ICAgICAgICMKLSsgICAgICAgICAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5 IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCi0rICAgICAgICAgICAgIyBleHBsaWNpdGx5 IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsg ICAgICAgICAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1 ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rICAgICAgICAgICAgIyBkZXBlbmRlbmNpZXMuCi0rICAgICAg ICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1Mg LXYgY29uZnRlc3QuJG9iamV4dCAyPiYxKSB8ICRFR1JFUCAiXC1MImA7IGxpc3Q9IiI7IGZvciB6 IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlz dCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNI TyAiWCRsaXN0IiB8ICRYc2VkJwotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICopCi0rICAg ICAgICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgICAgICAgICAgIGFyY2hp dmVfY21kc19DWFg9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkIC1ub3N0 ZGxpYiAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVj dHMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwg bXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwotKyAgICAgICAgICAgIGVsc2UKLSsgICAg ICAgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAg ICAgICAgICAgICAgbGRfc2hsaWJzX0NYWD1ubwotKyAgICAgICAgICAgIGZpCi0rICAgICAgICAg ICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgaHB1eDEwKnxocHV4 MTEqKQotKyAgICAgICAgaWYgdGVzdCAkd2l0aF9nbnVfbGQgPSBubzsgdGhlbgotKwkgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsJICBoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06Ci0rCi0rICAgICAgICAgIGNhc2UgJGhvc3RfY3B1 IGluCi0rICAgICAgICAgICAgaHBwYSo2NCp8aWE2NCopCi0rICAgICAgICAgICAgICA7OwotKyAg ICAgICAgICAgICopCi0rCSAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9 LUUnCi0rICAgICAgICAgICAgICA7OwotKyAgICAgICAgICBlc2FjCi0rICAgICAgICBmaQotKyAg ICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICAgICAgaHBwYSo2NCp8aWE2NCopCi0rICAg ICAgICAgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD1ubwotKyAgICAgICAgICAgIGhhcmRjb2RlX3No bGlicGF0aF92YXJfQ1hYPW5vCi0rICAgICAgICAgICAgOzsKLSsgICAgICAgICAgKikKLSsgICAg ICAgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcwotKyAgICAgICAgICAgIGhhcmRjb2RlX2Rp cmVjdF9hYnNvbHV0ZV9DWFg9eWVzCi0rICAgICAgICAgICAgaGFyZGNvZGVfbWludXNfTF9DWFg9 eWVzICMgTm90IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsJCQkJCSAgICAgICAgICMgYnV0IGFzIHRo ZSBkZWZhdWx0Ci0rCQkJCQkgICAgICAgICAjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotKyAg ICAgICAgICAgIDs7Ci0rICAgICAgICBlc2FjCi0rCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFt ZSBpbgotKyAgICAgICAgICBDQyopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBs aWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAg ICAgIGFDQyopCi0rCSAgICBjYXNlICRob3N0X2NwdSBpbgotKwkgICAgICBocHBhKjY0KikKLSsJ ICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgLW8g JGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgOzsKLSsJICAgICAgaWE2NCopCi0rCSAgICAgICAg YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVm YXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICAgIDs7Ci0rCSAgICAgICopCi0r CSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7 d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAg OzsKLSsJICAgIGVzYWMKLSsJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNl IHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJp ZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgIyBsaW5raW5n IGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICAjCi0rCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFy IHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCi0rCSAgICAjIGV4cGxp Y2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhl bQotKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRl ZCBpbiB0aGUgbGlicmFyeQotKwkgICAgIyBkZXBlbmRlbmNpZXMuCi0rCSAgICBvdXRwdXRfdmVy Ym9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2Jq ZXh0IDI+JjEpIHwgJEdSRVAgIlwtTCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRv IGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0 KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNl ZCcKLSsJICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsg dGhlbgotKwkgICAgICBpZiB0ZXN0ICR3aXRoX2dudV9sZCA9IG5vOyB0aGVuCi0rCSAgICAgICAg Y2FzZSAkaG9zdF9jcHUgaW4KLSsJICAgICAgICAgIGhwcGEqNjQqKQotKwkgICAgICAgICAgICBh cmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3ds fSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgICAgIDs7Ci0rCSAgICAgICAg ICBpYTY0KikKLSsJICAgICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5v c3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1v ICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICAgICAgICA7OwotKwkgICAgICAgICAgKikKLSsJICAg ICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7 d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MnCi0rCSAgICAgICAgICAgIDs7Ci0rCSAgICAgICAgZXNhYwotKwkgICAgICBmaQot KwkgICAgZWxzZQotKwkgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1 cHBvcnQKLSsJICAgICAgbGRfc2hsaWJzX0NYWD1ubwotKwkgICAgZmkKLSsJICAgIDs7Ci0rICAg ICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIGludGVyaXhbMy05XSopCi0rCWhhcmRj b2RlX2RpcmVjdF9DWFg9bm8KLSsJaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KLSsJaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCWV4cG9y dF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUUnCi0rCSMgSGFjazogT24gSW50ZXJpeCAz LngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEgYnJva2VuIGdjYy4KLSsJIyBJ bnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFyZSBsb2FkZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgx MDAwMDAwMCBieQotKwkjIGRlZmF1bHQpIGFuZCByZWxvY2F0ZWQgaWYgdGhleSBjb25mbGljdCwg d2hpY2ggaXMgYSBzbG93IHZlcnkgbWVtb3J5Ci0rCSMgY29uc3VtaW5nIGFuZCBmcmFnbWVudGlu ZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywgd2UgcGljayBhIHJhbmRvbSwKLSsJIyAyNTYgS2lC LWFsaWduZWQgaW1hZ2UgYmFzZSBiZXR3ZWVuIDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQg bGluawotKwkjIHRpbWUuICBNb3ZpbmcgdXAgZnJvbSAweDEwMDAwMDAwIGFsc28gYWxsb3dzIG1v cmUgc2JyaygyKSBzcGFjZS4KLSsJYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19m bGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3 bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsg MTM0MjE3NzI4MGAgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J3NlZCAicyxe LF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltfiRDQyAt c2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t aCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3ltYm9scy1maWxlLCRvdXRwdXRfb2JqZGlyLyRzb25h bWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAy IFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCi0rCTs7Ci0rICAgICAgaXJpeDUqIHwg aXJpeDYqKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQot KwkgICAgIyBTR0kgQysrCi0rCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtYWxs IC1tdWx0aWdvdCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5n IiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3Jl Z2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCi0rCSAgICAj IEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNp bmcKLSsJICAgICMgIkNDIC1hciIsIHdoZXJlICJDQyIgaXMgdGhlIElSSVggQysrIGNvbXBpbGVy LiAgVGhpcyBpcwotKwkgICAgIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0 ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCi0rCSAgICAjIGluIHRoZSBhcmNoaXZlLgotKwkgICAgb2xk X2FyY2hpdmVfY21kc19DWFg9JyRDQyAtYXIgLVdSLC11IC1vICRvbGRsaWIgJG9sZG9ianMnCi0r CSAgICA7OwotKyAgICAgICAgICAqKQotKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4K LSsJICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCSAgICAgICAgYXJj aGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNl dF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5 ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJICAgICAgZWxz ZQotKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYg JEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgIC1vICRs aWInCi0rCSAgICAgIGZpCi0rCSAgICBmaQotKwkgICAgbGlua19hbGxfZGVwbGlic19DWFg9eWVz Ci0rCSAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19DWFg9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICAgIGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsgICAgICAgIGluaGVyaXRfcnBhdGhfQ1hYPXllcwotKyAg ICAgICAgOzsKLSsKLSsgICAgICBsaW51eCogfCBrKmJzZCotZ251KQotKyAgICAgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgS0NDKikKLSsJICAgICMgS3VjayBhbmQgQXNzb2Np YXRlcywgSW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKLSsKLSsJICAgICMgS0NDIHdpbGwgb25seSBj cmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKLSsJICAgICMgZW5kcyB3 aXRoICIuc28iIChvciAiLnNsIiBmb3IgSFAtVVgpLCBzbyByZW5hbWUgdGhlIGxpYnJhcnkKLSsJ ICAgICMgdG8gaXRzIHByb3BlciBuYW1lICh3aXRoIHZlcnNpb24pIGFmdGVyIGxpbmtpbmcuCi0r CSAgICBhcmNoaXZlX2NtZHNfQ1hYPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAt ZSAnXCcncy9cKFteKCkwLTlBLVphLXp7fV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hv ICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29i amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3Mg LS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVtcGxpYiAkbGliJwotKwkgICAg YXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VE IC1lICdcJydzL1woW14oKTAtOUEtWmEtent9XVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVj aG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxl LCRleHBvcnRfc3ltYm9sczsgbXYgXCR0ZW1wbGliICRsaWInCi0rCSAgICAjIENvbW1hbmRzIHRv IG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAj IHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2Vk IHdoZW4KLSsJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAgIwotKwkgICAg IyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGls ZXIgZnJvbQotKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBz byB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQg dGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKLSsJICAgICMgZGVwZW5kZW5j aWVzLgotKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgJENGTEFH UyAtdiBjb25mdGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMSB8ICRH UkVQICJsZCJgOyBybSAtZiBsaWJjb25mdGVzdCRzaGFyZWRfZXh0OyBsaXN0PSIiOyBmb3IgeiBp biAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3Qg JHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8g IlgkbGlzdCIgfCAkWHNlZCcKLSsKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hY PScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NY WD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwotKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5n IEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCi0rCSAgICAjICJDQyAtQnN0 YXRpYyIsIHdoZXJlICJDQyIgaXMgdGhlIEtBSSBDKysgY29tcGlsZXIuCi0rCSAgICBvbGRfYXJj aGl2ZV9jbWRzX0NYWD0nJENDIC1Cc3RhdGljIC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgICA7 OwotKwkgIGljcGMqIHwgZWNwYyogKQotKwkgICAgIyBJbnRlbCBDKysKLSsJICAgIHdpdGhfZ251 X2xkPXllcwotKwkgICAgIyB2ZXJzaW9uIDguMCBhbmQgYWJvdmUgb2YgaWNwYyBjaG9rZSBvbiBt dWx0aXBseSBkZWZpbmVkIHN5bWJvbHMKLSsJICAgICMgaWYgd2UgYWRkICRwcmVkZXBfb2JqZWN0 cyBhbmQgJHBvc3RkZXBfb2JqZWN0cywgaG93ZXZlciA3LjEgYW5kCi0rCSAgICAjIGVhcmxpZXIg ZG8gbm90IGFkZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzLgotKwkgICAgY2FzZSBgJENDIC1WIDI+ JjFgIGluCi0rCSAgICAgICoiVmVyc2lvbiA3LiIqKQotKwkgICAgICAgIGFyY2hpdmVfY21kc19D WFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGli JwotKwkJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRf c3ltYm9scyAtbyAkbGliJwotKwkJOzsKLSsJICAgICAgKikgICMgVmVyc2lvbiA4LjAgb3IgbmV3 ZXIKLSsJICAgICAgICB0bXBfaWR5bj0KLSsJICAgICAgICBjYXNlICRob3N0X2NwdSBpbgotKwkJ ICBpYTY0KikgdG1wX2lkeW49JyAtaV9keW5hbWljJzs7Ci0rCQllc2FjCi0rCSAgICAgICAgYXJj aGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwkJYXJj aGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0 YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJCTs7Ci0rCSAg ICBlc2FjCi0rCSAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KLSsJICAgIGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgICAgZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwkgICAgd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5j ZSAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsJICAgIDs7Ci0rICAgICAgICAgIHBnQ0MqIHwg cGdjcHAqKQotKyAgICAgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBpbGVyCi0rCSAg ICBjYXNlIGAkQ0MgLVZgIGluCi0rCSAgICAqcGdDQ1wgWzEtNV0qIHwgKnBnY3BwXCBbMS01XSop Ci0rCSAgICAgIHByZWxpbmtfY21kc19DWFg9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+Ci0rCQlybSAt cmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGly ICR0cGxkaXIgJG9ianMgJGxpYm9ianMgJGNvbXBpbGVfZGVwbGlic34KLSsJCWNvbXBpbGVfY29t bWFuZD0iJGNvbXBpbGVfY29tbWFuZCBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCAkTkwyU1Bg IicKLSsJICAgICAgb2xkX2FyY2hpdmVfY21kc19DWFg9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+Ci0r CQlybSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRp b25fZGlyICR0cGxkaXIgJG9sZG9ianMkb2xkX2RlcGxpYnN+Ci0rCQkkQVIgJEFSX0ZMQUdTICRv bGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCAkTkwy U1BgfgotKwkJJFJBTkxJQiAkb2xkbGliJwotKwkgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSd0cGxk aXI9VGVtcGxhdGUuZGlyfgotKwkJcm0gLXJmICR0cGxkaXJ+Ci0rCQkkQ0MgLS1wcmVsaW5rX29i amVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGlyICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkY29udmVuaWVuY2UgJHBvc3RkZXBfb2JqZWN0c34KLSsJCSRDQyAtc2hhcmVk ICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgYGZpbmQgJHRwbGRp ciAtbmFtZSBcKi5vIHwgJE5MMlNQYCAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIC1vICRsaWInCi0rCSAgICAgIGFyY2hpdmVfZXhwc3lt X2NtZHNfQ1hYPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgotKwkJcm0gLXJmICR0cGxkaXJ+Ci0rCQkk Q0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGlyICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkY29udmVuaWVuY2UgJHBvc3RkZXBfb2JqZWN0c34K LSsJCSRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYCAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1i b2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICAgICAgOzsKLSsJICAg ICopICMgVmVyc2lvbiA2IHdpbGwgdXNlIHdlYWsgc3ltYm9scwotKwkgICAgICBhcmNoaXZlX2Nt ZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3ds fSRzb25hbWUgLW8gJGxpYicKLSsJICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAt c2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAke3ds fS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rCSAg ICAgIDs7Ci0rCSAgICBlc2FjCi0rCi0rCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NY WD0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKLSsJICAgIGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlY19DWFg9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsJICAgIHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjX0NYWD0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNl XCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29u dmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9 LS1uby13aG9sZS1hcmNoaXZlJwotKyAgICAgICAgICAgIDs7Ci0rCSAgY3h4KikKLSsJICAgICMg Q29tcGFxIEMrKwotKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICBhcmNoaXZlX2V4cHN5bV9j bWRzX0NYWD0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICAt byAkbGliICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzJwotKwot KwkgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfQ1hYPSctcnBhdGggJGxpYmRpcicKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3JfQ1hYPToKLSsKLSsJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZl cmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMs IG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgIyBsaW5raW5nIGEg c2hhcmVkIGxpYnJhcnkuCi0rCSAgICAjCi0rCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRv IGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCi0rCSAgICAjIGV4cGxpY2l0 bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQot KwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBp biB0aGUgbGlicmFyeQotKwkgICAgIyBkZXBlbmRlbmNpZXMuCi0rCSAgICBvdXRwdXRfdmVyYm9z ZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9i amV4dCAyPiYxIHwgJEdSRVAgImxkImA7IHRlbXBsaXN0PWAkRUNITyAiWCR0ZW1wbGlzdCIgfCAk WHNlZCAtZSAicy9cKF4uKmxkLipcKVwoIC4qbGQgLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6 IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlz dCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNI TyAiWCRsaXN0IiB8ICRYc2VkJwotKwkgICAgOzsKLSsJICB4bCopCi0rCSAgICAjIElCTSBYTCA4 LjAgb24gUFBDLCB3aXRoIEdOVSBsZAotKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19D WFg9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsJICAgIGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlY19DWFg9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsJICAgIGFyY2hpdmVfY21kc19DWFg9 JyRDQyAtcW1rc2hyb2JqICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1z b25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwkgICAgaWYgdGVzdCAieCRzdXBwb3J0c19hbm9u X3ZlcnNpb25pbmciID0geHllczsgdGhlbgotKwkgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NY WD0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJCWNh dCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLnZlcn4KLSsJCWVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUudmVyfgotKwkJJENDIC1xbWtzaHJvYmogJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZlcnNpb24tc2NyaXB0 ICR7d2x9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCi0rCSAgICBmaQotKwkg ICAgOzsKLSsJICAqKQotKwkgICAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCi0rCSAg ICAqU3VuXCBDKikKLSsJICAgICAgIyBTdW4gQysrIDUuOQotKwkgICAgICBub191bmRlZmluZWRf ZmxhZ19DWFg9JyAtemRlZnMnCi0rCSAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtRyR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9IC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAg YXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1o JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9 JGV4cG9ydF9zeW1ib2xzJwotKwkgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0n LVIkbGliZGlyJwotKwkgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS13 aG9sZS1hcmNoaXZlYG5ld19jb252ZW5pZW5jZT07IGZvciBjb252IGluICRjb252ZW5pZW5jZVwi XCI7IGRvIHRlc3QgLXogXCIkY29udlwiIHx8IG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVu aWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1u by13aG9sZS1hcmNoaXZlJwotKwkgICAgICBjb21waWxlcl9uZWVkc19vYmplY3RfQ1hYPXllcwot KwotKwkgICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgc29tZXRoaW5nIGJhc2VkIG9uCi0rCSAgICAg ICMgJENDICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRf ZXh0IDI+JjEKLSsJICAgICAgIyB3b3VsZCBiZSBiZXR0ZXIuCi0rCSAgICAgIG91dHB1dF92ZXJi b3NlX2xpbmtfY21kPSdlY2hvJwotKwotKwkgICAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysr IG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICAgIyAiQ0MgLXhhciIs IHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29tcGlsZXIuICBUaGlzIGlzCi0rCSAgICAgICMg bmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRl ZAotKwkgICAgICAjIGluIHRoZSBhcmNoaXZlLgotKwkgICAgICBvbGRfYXJjaGl2ZV9jbWRzX0NY WD0nJENDIC14YXIgLW8gJG9sZGxpYiAkb2xkb2JqcycKLSsJICAgICAgOzsKLSsJICAgIGVzYWMK LSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsKLSsgICAgICBseW54b3MqKQotKyAgICAgICAgIyBG SVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCWxkX3NobGlic19DWFg9 bm8KLSsJOzsKLSsKLSsgICAgICBtODhrKikKLSsgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubwotKwk7Owot KwotKyAgICAgIG12cyopCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAg ICBjeHgqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0 Ci0rCSAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rCSAgICA7OwotKwkgICopCi0rCSAgICAjIEZJWE1F OiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9 bm8KLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsKLSsgICAgICBuZXRic2QqKQotKyAgICAgICAg aWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRo ZW4KLSsJICBhcmNoaXZlX2NtZHNfQ1hYPSckTEQgLUJzaGFyZWFibGUgIC1vICRsaWIgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGxpbmtlcl9mbGFn cycKLSsJICB3bGFyYz0KLSsJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLVIkbGli ZGlyJwotKwkgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVzCi0rCSAgaGFyZGNvZGVfc2hsaWJwYXRo X3Zhcl9DWFg9bm8KLSsJZmkKLSsJIyBXb3JrYXJvdW5kIHNvbWUgYnJva2VuIHByZS0xLjUgdG9v bGNoYWlucwotKwlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAt diBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCBjb25mdGVzdC4kb2JqZXh0IHwgJFNFRCAt ZSAiczotbGdjYyAtbGMgLWxnY2M6OiInCi0rCTs7Ci0rCi0rICAgICAgKm50byogfCAqcW54KikK LSsgICAgICAgIGxkX3NobGlic19DWFg9eWVzCi0rCTs7Ci0rCi0rICAgICAgb3BlbmJzZDIqKQot KyAgICAgICAgIyBDKysgc2hhcmVkIGxpYnJhcmllcyBhcmUgZmFpcmx5IGJyb2tlbgotKwlsZF9z aGxpYnNfQ1hYPW5vCi0rCTs7Ci0rCi0rICAgICAgb3BlbmJzZCopCi0rCWlmIHRlc3QgLWYgL3Vz ci9saWJleGVjL2xkLnNvOyB0aGVuCi0rCSAgaGFyZGNvZGVfZGlyZWN0X0NYWD15ZXMKLSsJICBo YXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwotKwkgIGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0 ZV9DWFg9eWVzCi0rCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAtbyAkbGliJwotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3ds fS1ycGF0aCwkbGliZGlyJwotKwkgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUg LSB8IGdyZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJz ZDIuOC1wb3dlcnBjIjsgdGhlbgotKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAt c2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhw b3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9 JyR7d2x9LUUnCi0rCSAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9IiR3bGFyYyInLS13 aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCi0r CSAgZmkKLSsJICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1lY2hvCi0rCWVsc2UKLSsJICBsZF9z aGxpYnNfQ1hYPW5vCi0rCWZpCi0rCTs7Ci0rCi0rICAgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUq KQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgS0NDKikKLSsJICAg ICMgS3VjayBhbmQgQXNzb2NpYXRlcywgSW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKLSsKLSsJICAg ICMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZp bGUKLSsJICAgICMgZW5kcyB3aXRoICIuc28iIChvciAiLnNsIiBmb3IgSFAtVVgpLCBzbyByZW5h bWUgdGhlIGxpYnJhcnkKLSsJICAgICMgdG8gaXRzIHByb3BlciBuYW1lICh3aXRoIHZlcnNpb24p IGFmdGVyIGxpbmtpbmcuCi0rCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSd0ZW1wZXh0PWBlY2hvICRz aGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFteKCkwLTlBLVphLXp7fV1cKS9cXFxcXDEvZydc JydgOyB0ZW1wbGliPWBlY2hvICIkbGliIiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5z by8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0 ZW1wbGliICRsaWInCi0rCi0rCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3 bH0tcnBhdGgsJGxpYmRpcicKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToK LSsKLSsJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUg Y3JlYXRlZCB1c2luZwotKwkgICAgIyB0aGUgS0FJIEMrKyBjb21waWxlci4KLSsJICAgIGNhc2Ug JGhvc3QgaW4KLSsJICAgICAgb3NmMyopIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUJzdGF0 aWMgLW8gJG9sZGxpYiAkb2xkb2JqcycgOzsKLSsJICAgICAgKikgb2xkX2FyY2hpdmVfY21kc19D WFg9JyRDQyAtbyAkb2xkbGliICRvbGRvYmpzJyA7OwotKwkgICAgZXNhYwotKwkgICAgOzsKLSsg ICAgICAgICAgUkNDKikKLSsJICAgICMgUmF0aW9uYWwgQysrIDIuNC4xCi0rCSAgICAjIEZJWE1F OiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9 bm8KLSsJICAgIDs7Ci0rICAgICAgICAgIGN4eCopCi0rCSAgICBjYXNlICRob3N0IGluCi0rCSAg ICAgIG9zZjMqKQotKwkgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LWV4 cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0rCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICRz b25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24g JHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3Nv X2xvY2F0aW9ucyAtbyAkbGliJwotKwkgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf Q1hYPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rCQk7OwotKwkgICAgICAqKQotKwkgICAg ICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKLSsJ ICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2Zs YWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVn aXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJICAgICAgICBh cmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBk byBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBk b25lfgotKwkgICAgICAgICAgZWNobyAiLWhpZGRlbiI+PiAkbGliLmV4cH4KLSsJICAgICAgICAg ICRDQyAtc2hhcmVkJGFsbG93X3VuZGVmaW5lZF9mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1l ICRzb25hbWUgJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4cCAgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVn aXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4KLSsJICAgICAgICAg ICRSTSAkbGliLmV4cCcKLSsJICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0n LXJwYXRoICRsaWJkaXInCi0rCQk7OwotKwkgICAgZXNhYwotKwotKwkgICAgaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvcl9DWFg9OgotKwotKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVy IHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgIyB3aGF0ICJoaWRkZW4i IGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAj IGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAgICMKLSsJICAgICMgVGhlcmUgZG9lc24n dCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KLSsJICAg ICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBz dHJpcCB0aGVtCi0rCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0 IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSAgICAjIGRlcGVuZGVuY2llcy4KLSsJICAgIG91 dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAtdiBj b25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAibGQiIHwgJEdSRVAgLXYgImxkOiJgOyB0ZW1w bGlzdD1gJEVDSE8gIlgkdGVtcGxpc3QiIHwgJFhzZWQgLWUgInMvXCheLipsZC4qXClcKCAuKmxk LiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBj b25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0i JGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJwotKwkgICAgOzsK LSsJICAqKQotKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xk IiA9IG5vOyB0aGVuCi0rCSAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LWV4 cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0rCSAgICAgIGNhc2UgJGhvc3QgaW4KLSsJICAgICAg ICBvc2YzKikKLSsJICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0 ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9 JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lv biAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7 b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCQkgIDs7Ci0rCSAgICAgICAg KikKLSsJICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAk e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25hbWUg JHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiJHt3bH0tc2V0X3Zl cnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3 bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkJICA7OwotKwkgICAg ICBlc2FjCi0rCi0rCSAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1y cGF0aCAke3dsfSRsaWJkaXInCi0rCSAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hY PToKLSsKLSsJICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9z ZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBv YmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICAgIyBsaW5raW5nIGEg c2hhcmVkIGxpYnJhcnkuCi0rCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNo YXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJwotKwot KwkgICAgZWxzZQotKwkgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1 cHBvcnQKLSsJICAgICAgbGRfc2hsaWJzX0NYWD1ubwotKwkgICAgZmkKLSsJICAgIDs7Ci0rICAg ICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIHBzb3MqKQotKyAgICAgICAgIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICBsZF9zaGxpYnNf Q1hYPW5vCi0rICAgICAgICA7OwotKwotKyAgICAgIHN1bm9zNCopCi0rICAgICAgICBjYXNlICRj Y19iYXNlbmFtZSBpbgotKyAgICAgICAgICBDQyopCi0rCSAgICAjIFN1biBDKysgNC54Ci0rCSAg ICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3No bGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgIGxjYyopCi0rCSAgICAjIEx1Y2lkCi0r CSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxk X3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAgICAjIEZJWE1FOiBp bnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8K LSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIHNvbGFyaXMq KQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAg IyBTdW4gQysrIDQuMiwgNS54IGFuZCBDZW50ZXJsaW5lIEMrKwotKyAgICAgICAgICAgIGFyY2hp dmVfY21kc19uZWVkX2xjX0NYWD15ZXMKLSsJICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nIC16 ZGVmcycKLSsJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2Zs YWd9ICAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICBhcmNoaXZlX2V4cHN5bV9j bWRzX0NYWD0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMg fCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsi ID4+ICRsaWIuZXhwfgotKwkgICAgICAkQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAke3ds fS1NICR7d2x9JGxpYi5leHAgLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4 cCcKLSsKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctUiRsaWJkaXInCi0r CSAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwotKwkgICAgY2FzZSAkaG9zdF9vcyBp bgotKwkgICAgICBzb2xhcmlzMi5bMC01XSB8IHNvbGFyaXMyLlswLTVdLiopIDs7Ci0rCSAgICAg ICopCi0rCQkjIFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxp bmtlciBvcHRpb25zLAotKwkJIyBidXQgdW5kZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFnJy4KLSsJ ICAgICAgICAjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/KQotKwkJ d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16 IGRlZmF1bHRleHRyYWN0JwotKwkgICAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICBsaW5rX2Fs bF9kZXBsaWJzX0NYWD15ZXMKLSsKLSsJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hv JwotKwotKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBi ZSBjcmVhdGVkIHVzaW5nCi0rCSAgICAjICJDQyAteGFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgU3Vu IEMrKyBjb21waWxlci4gIFRoaXMgaXMKLSsJICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBp bnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAotKwkgICAgIyBpbiB0aGUgYXJjaGl2 ZS4KLSsJICAgIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXhhciAtbyAkb2xkbGliICRvbGRv YmpzJwotKwkgICAgOzsKLSsgICAgICAgICAgZ2N4KikKLSsJICAgICMgR3JlZW4gSGlsbHMgQysr IENvbXBpbGVyCi0rCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29i amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCi0rCi0rCSAgICAjIFRoZSBDKysgY29tcGlsZXIg bXVzdCBiZSB1c2VkIHRvIGNyZWF0ZSB0aGUgYXJjaGl2ZS4KLSsJICAgIG9sZF9hcmNoaXZlX2Nt ZHNfQ1hYPSckQ0MgJExERkxBR1MgLWFyY2hpdmUgLW8gJG9sZGxpYiAkb2xkb2JqcycKLSsJICAg IDs7Ci0rICAgICAgICAgICopCi0rCSAgICAjIEdOVSBDKysgY29tcGlsZXIgd2l0aCBTb2xhcmlz IGxpbmtlcgotKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xk IiA9IG5vOyB0aGVuCi0rCSAgICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LXogJHt3 bH1kZWZzJwotKwkgICAgICBpZiAkQ0MgLS12ZXJzaW9uIHwgJEdSRVAgLXYgJ14yXC43JyA+IC9k ZXYvbnVsbDsgdGhlbgotKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1u b3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCi0r CSAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGli LmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxp Yi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJCSAgJENDIC1zaGFyZWQg LW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIu ZXhwJwotKwotKwkgICAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZl cmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFy aWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICAgICAjIGxp bmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2Nt ZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAi XC1MIicKLSsJICAgICAgZWxzZQotKwkgICAgICAgICMgZysrIDIuNyBhcHBlYXJzIHRvIHJlcXVp cmUgYC1HJyBOT1QgYC1zaGFyZWQnIG9uIHRoaXMKLSsJICAgICAgICAjIHBsYXRmb3JtLgotKwkg ICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtRyAtbm9zdGRsaWIgJExERkxBR1MgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJwotKwkgICAgICAgIGFyY2hpdmVfZXhwc3lt X2NtZHNfQ1hYPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9s cyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9 OyIgPj4gJGxpYi5leHB+Ci0rCQkgICRDQyAtRyAtbm9zdGRsaWIgJHt3bH0tTSAkd2wkbGliLmV4 cCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCi0rCi0rCSAgICAgICAgIyBDb21tYW5k cyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkg ICAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3Mg YXJlIHVzZWQgd2hlbgotKwkgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkg ICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLUcgJENGTEFHUyAtdiBjb25mdGVz dC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKLSsJICAgICAgZmkKLSsKLSsJICAgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LVIgJHdsJGxpYmRpcicKLSsJICAgICAg Y2FzZSAkaG9zdF9vcyBpbgotKwkJc29sYXJpczIuWzAtNV0gfCBzb2xhcmlzMi5bMC01XS4qKSA7 OwotKwkJKikKLSsJCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS16ICR7d2x9 YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJhY3QnCi0rCQkg IDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgICA7OwotKyAgICAgICAgZXNhYwotKyAg ICAgICAgOzsKLSsKLSsgICAgc3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4 V2FyZTcuWzAxXS5bMTBdKiB8IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLlswMjRdKikKLSsgICAg ICBub191bmRlZmluZWRfZmxhZ19DWFg9JyR7d2x9LXosdGV4dCcKLSsgICAgICBhcmNoaXZlX2Nt ZHNfbmVlZF9sY19DWFg9bm8KLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwot KyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsgICAgICBjYXNlICRjY19iYXNl bmFtZSBpbgotKyAgICAgICAgQ0MqKQotKwkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtRyAke3ds fS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0r CSAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRf c3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCi0rCSAgOzsKLSsJKikKLSsJICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJl ZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBv cnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwot KyAgICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiopCi0rCSMgTm90ZTogV2UgY2FuIE5P VCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90Ci0rCSMg bGluayB3aXRoIC1sYywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55IHN5bWJvbHMgdXNlZCBmcm9t IGxpYmMgdG8KLSsJIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMganVzdCBhYm91 dCBubyBsaWJyYXJ5IHdvdWxkCi0rCSMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5v dCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKLSsJIyB0aG91Z2gsIHdoaWNoIGRvZXMgY2F0 Y2ggc29tZSBiYWQgc3ltYm9scyBidXQgaXNuJ3QgYXMgaGVhdnktaGFuZGVkCi0rCSMgYXMgLXog ZGVmcy4KLSsJbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScke3dsfS16LHRleHQnCi0rCWFsbG93X3Vu ZGVmaW5lZF9mbGFnX0NYWD0nJHt3bH0teixub2RlZnMnCi0rCWFyY2hpdmVfY21kc19uZWVkX2xj X0NYWD1ubwotKwloYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwotKwloYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tUiwkbGliZGlyJwotKwloYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yX0NYWD0nOicKLSsJbGlua19hbGxfZGVwbGlic19DWFg9eWVzCi0rCWV4cG9ydF9keW5h bWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUJleHBvcnQnCi0rCXJ1bnBhdGhfdmFyPSdMRF9SVU5f UEFUSCcKLSsKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAg YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hY PSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgOzsKLSsJICAq KQotKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgYXJjaGl2ZV9l eHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xz ICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKLSsJICAgIDs7Ci0rCWVzYWMKLSsgICAgICA7OwotKwotKyAgICAgIHRhbmRlbSopCi0rICAg ICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBOQ0MqKQotKwkgICAgIyBOb25T dG9wLVVYIE5DQyAzLjIwCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5 IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgICop Ci0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAg IGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7Owot KwotKyAgICAgIHZ4d29ya3MqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAgICAgICA7Owot KwotKyAgICAgICopCi0rICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5 IHN1cHBvcnQKLSsgICAgICAgIGxkX3NobGlic19DWFg9bm8KLSsgICAgICAgIDs7Ci0rICAgIGVz YWMKLSsKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGxkX3NobGli c19DWFgiID4mNQotKyRhc19lY2hvICIkbGRfc2hsaWJzX0NYWCIgPiY2OyB9Ci0rICAgIHRlc3Qg IiRsZF9zaGxpYnNfQ1hYIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KLSsKLSsgICAgR0ND X0NYWD0iJEdYWCIKLSsgICAgTERfQ1hYPSIkTEQiCi0rCi0rICAgICMjIENBVkVBVCBFTVBUT1I6 Ci0rICAgICMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcg bWFjcm9zLCBkbyBub3QgY2hhbmdlCi0rICAgICMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVy d2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5Ci0rICAgICMjIHdo YXQgeW91IGFyZSBkb2luZy4uLgotKyAgICAjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUg YW5kIGFmdGVyIHRoZSBvYmplY3QgYmVpbmcgbGlua2VkOgotK3ByZWRlcF9vYmplY3RzX0NYWD0K LStwb3N0ZGVwX29iamVjdHNfQ1hYPQotK3ByZWRlcHNfQ1hYPQotK3Bvc3RkZXBzX0NYWD0KLStj b21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYPQotKwotK2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQg PDxfTFRfRU9GCi0rY2xhc3MgRm9vCi0rewotK3B1YmxpYzoKLSsgIEZvbyAodm9pZCkgeyBhID0g MDsgfQotK3ByaXZhdGU6Ci0rICBpbnQgYTsKLSt9OwotK19MVF9FT0YKLSsKLStpZiB7IChldmFs IGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRh Y19jb21waWxlKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhl bgotKyAgIyBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3Nh cnkKLSsgICMgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgotKwotKyAgIyBT ZW50aW5lbCB1c2VkIHRvIGtlZXAgdHJhY2sgb2Ygd2hldGhlciBvciBub3Qgd2UgYXJlIGJlZm9y ZQotKyAgIyB0aGUgY29uZnRlc3Qgb2JqZWN0IGZpbGUuCi0rICBwcmVfdGVzdF9vYmplY3RfZGVw c19kb25lPW5vCi0rCi0rICBmb3IgcCBpbiBgZXZhbCAiJG91dHB1dF92ZXJib3NlX2xpbmtfY21k ImA7IGRvCi0rICAgIGNhc2UgJHAgaW4KLSsKLSsgICAgLUwqIHwgLVIqIHwgLWwqKQotKyAgICAg ICAjIFNvbWUgY29tcGlsZXJzIHBsYWNlIHNwYWNlIGJldHdlZW4gIi17TCxSfSIgYW5kIHRoZSBw YXRoLgotKyAgICAgICAjIFJlbW92ZSB0aGUgc3BhY2UuCi0rICAgICAgIGlmIHRlc3QgJHAgPSAi LUwiIHx8Ci0rICAgICAgICAgIHRlc3QgJHAgPSAiLVIiOyB0aGVuCi0rCSBwcmV2PSRwCi0rCSBj b250aW51ZQotKyAgICAgICBlbHNlCi0rCSBwcmV2PQotKyAgICAgICBmaQotKwotKyAgICAgICBp ZiB0ZXN0ICIkcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZSIgPSBubzsgdGhlbgotKwkgY2FzZSAk cCBpbgotKwkgLUwqIHwgLVIqKQotKwkgICAjIEludGVybmFsIGNvbXBpbGVyIGxpYnJhcnkgcGF0 aHMgc2hvdWxkIGNvbWUgYWZ0ZXIgdGhvc2UKLSsJICAgIyBwcm92aWRlZCB0aGUgdXNlci4gIFRo ZSBwb3N0ZGVwcyBhbHJlYWR5IGNvbWUgYWZ0ZXIgdGhlCi0rCSAgICMgdXNlciBzdXBwbGllZCBs aWJzIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJvY2VzcyB0aGVtLgotKwkgICBpZiB0ZXN0IC16 ICIkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWCI7IHRoZW4KLSsJICAgICBjb21waWxlcl9s aWJfc2VhcmNoX3BhdGhfQ1hYPSIke3ByZXZ9JHtwfSIKLSsJICAgZWxzZQotKwkgICAgIGNvbXBp bGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg9IiR7Y29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWH0g JHtwcmV2fSR7cH0iCi0rCSAgIGZpCi0rCSAgIDs7Ci0rCSAjIFRoZSAiLWwiIGNhc2Ugd291bGQg bmV2ZXIgY29tZSBiZWZvcmUgdGhlIG9iamVjdCBiZWluZwotKwkgIyBsaW5rZWQsIHNvIGRvbid0 IGJvdGhlciBoYW5kbGluZyB0aGlzIGNhc2UuCi0rCSBlc2FjCi0rICAgICAgIGVsc2UKLSsJIGlm IHRlc3QgLXogIiRwb3N0ZGVwc19DWFgiOyB0aGVuCi0rCSAgIHBvc3RkZXBzX0NYWD0iJHtwcmV2 fSR7cH0iCi0rCSBlbHNlCi0rCSAgIHBvc3RkZXBzX0NYWD0iJHtwb3N0ZGVwc19DWFh9ICR7cHJl dn0ke3B9IgotKwkgZmkKLSsgICAgICAgZmkKLSsgICAgICAgOzsKLSsKLSsgICAgKi4kb2JqZXh0 KQotKyAgICAgICAjIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSB0ZXN0IG9iamVjdCBmaWxlIG9ubHkg c2hvd3MgdXAKLSsgICAgICAgIyBvbmNlIGluIHRoZSBjb21waWxlciBvdXRwdXQuCi0rICAgICAg IGlmIHRlc3QgIiRwIiA9ICJjb25mdGVzdC4kb2JqZXh0IjsgdGhlbgotKwkgcHJlX3Rlc3Rfb2Jq ZWN0X2RlcHNfZG9uZT15ZXMKLSsJIGNvbnRpbnVlCi0rICAgICAgIGZpCi0rCi0rICAgICAgIGlm IHRlc3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9IG5vOyB0aGVuCi0rCSBpZiB0ZXN0 IC16ICIkcHJlZGVwX29iamVjdHNfQ1hYIjsgdGhlbgotKwkgICBwcmVkZXBfb2JqZWN0c19DWFg9 IiRwIgotKwkgZWxzZQotKwkgICBwcmVkZXBfb2JqZWN0c19DWFg9IiRwcmVkZXBfb2JqZWN0c19D WFggJHAiCi0rCSBmaQotKyAgICAgICBlbHNlCi0rCSBpZiB0ZXN0IC16ICIkcG9zdGRlcF9vYmpl Y3RzX0NYWCI7IHRoZW4KLSsJICAgcG9zdGRlcF9vYmplY3RzX0NYWD0iJHAiCi0rCSBlbHNlCi0r CSAgIHBvc3RkZXBfb2JqZWN0c19DWFg9IiRwb3N0ZGVwX29iamVjdHNfQ1hYICRwIgotKwkgZmkK LSsgICAgICAgZmkKLSsgICAgICAgOzsKLSsKLSsgICAgKikgOzsgIyBJZ25vcmUgdGhlIHJlc3Qu Ci0rCi0rICAgIGVzYWMKLSsgIGRvbmUKLSsKLSsgICMgQ2xlYW4gdXAuCi0rICBybSAtZiBhLm91 dCBhLmV4ZQotK2Vsc2UKLSsgIGVjaG8gImxpYnRvb2wubTQ6IGVycm9yOiBwcm9ibGVtIGNvbXBp bGluZyBDWFggdGVzdCBwcm9ncmFtIgotK2ZpCi0rCi0rJFJNIC1mIGNvbmZlc3QuJG9iamV4dAot KwotKyMgUE9SVE1FOiBvdmVycmlkZSBhYm92ZSB0ZXN0IG9uIHN5c3RlbXMgd2hlcmUgaXQgaXMg YnJva2VuCi0rY2FzZSAkaG9zdF9vcyBpbgotK2ludGVyaXhbMy05XSopCi0rICAjIEludGVyaXgg My41IGluc3RhbGxzIGNvbXBsZXRlbHkgaG9zZWQgLmxhIGZpbGVzIGZvciBDKyssIHNvIHJhdGhl ciB0aGFuCi0rICAjIGhhY2sgYWxsIGFyb3VuZCBpdCwgbGV0J3MganVzdCB0cnVzdCAiZysrIiB0 byBEVFJULgotKyAgcHJlZGVwX29iamVjdHNfQ1hYPQotKyAgcG9zdGRlcF9vYmplY3RzX0NYWD0K LSsgIHBvc3RkZXBzX0NYWD0KLSsgIDs7Ci0rCi0rbGludXgqKQotKyAgY2FzZSBgJENDIC1WIDI+ JjEgfCBzZWQgNXFgIGluCi0rICAqU3VuXCBDKikKLSsgICAgIyBTdW4gQysrIDUuOQotKwotKyAg ICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKLSsg ICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5n Ci0rICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4gYXMKLSsgICAg IyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0LgotKyAgICBjYXNlICIgJENYWCAkQ1hY RkxBR1MgIiBpbgotKyAgICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKLSsgICAgICBzb2xhcmlz X3VzZV9zdGxwb3J0ND15ZXMKLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGlmIHRlc3Qg IiRzb2xhcmlzX3VzZV9zdGxwb3J0NCIgIT0geWVzOyB0aGVuCi0rICAgICAgcG9zdGRlcHNfQ1hY PSctbGlicmFyeT1Dc3RkIC1saWJyYXJ5PUNydW4nCi0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2Fj Ci0rICA7OwotKwotK3NvbGFyaXMqKQotKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgIENDKikK LSsgICAgIyBUaGUgbW9yZSBzdGFuZGFyZHMtY29uZm9ybWluZyBzdGxwb3J0NCBsaWJyYXJ5IGlz Ci0rICAgICMgaW5jb21wYXRpYmxlIHdpdGggdGhlIENzdGQgbGlicmFyeS4gQXZvaWQgc3BlY2lm eWluZwotKyAgICAjIGl0IGlmIGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9yZSBsaWJDcnVuIGFzCi0r ICAgICMgLWxpYnJhcnk9c3RscG9ydDQgZGVwZW5kcyBvbiBpdC4KLSsgICAgY2FzZSAiICRDWFgg JENYWEZMQUdTICIgaW4KLSsgICAgKiIgLWxpYnJhcnk9c3RscG9ydDQgIiopCi0rICAgICAgc29s YXJpc191c2Vfc3RscG9ydDQ9eWVzCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICAjIEFk ZGluZyB0aGlzIHJlcXVpcmVzIGEga25vd24tZ29vZCBzZXR1cCBvZiBzaGFyZWQgbGlicmFyaWVz IGZvcgotKyAgICAjIFN1biBjb21waWxlciB2ZXJzaW9ucyBiZWZvcmUgNS42LCBlbHNlIFBJQyBv YmplY3RzIGZyb20gYW4gb2xkCi0rICAgICMgYXJjaGl2ZSB3aWxsIGJlIGxpbmtlZCBpbnRvIHRo ZSBvdXRwdXQsIGxlYWRpbmcgdG8gc3VidGxlIGJ1Z3MuCi0rICAgIGlmIHRlc3QgIiRzb2xhcmlz X3VzZV9zdGxwb3J0NCIgIT0geWVzOyB0aGVuCi0rICAgICAgcG9zdGRlcHNfQ1hYPSctbGlicmFy eT1Dc3RkIC1saWJyYXJ5PUNydW4nCi0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7Owot K2VzYWMKLSsKLSsKLStjYXNlICIgJHBvc3RkZXBzX0NYWCAiIGluCi0rKiIgLWxjICIqKSBhcmNo aXZlX2NtZHNfbmVlZF9sY19DWFg9bm8gOzsKLStlc2FjCi0rIGNvbXBpbGVyX2xpYl9zZWFyY2hf ZGlyc19DWFg9Ci0raWYgdGVzdCAtbiAiJHtjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYfSI7 IHRoZW4KLSsgY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWD1gZWNobyAiICR7Y29tcGlsZXJf bGliX3NlYXJjaF9wYXRoX0NYWH0iIHwgJHtTRUR9IC1lICdzISAtTCEgIWcnIC1lICdzIV4gISEn YAotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rICAgIGx0X3Byb2df Y29tcGlsZXJfd2xfQ1hYPQotK2x0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KLStsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpY19DWFg9Ci0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQy4uLiAiID4mNjsg fQotKwotKyAgIyBDKysgc3BlY2lmaWMgY2FzZXMgZm9yIHBpYywgc3RhdGljLCB3bCwgZXRjLgot KyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgbHRfcHJvZ19jb21waWxlcl93bF9D WFg9Jy1XbCwnCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLXN0YXRpYycKLSsK LSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBhaXgqKQotKyAgICAgICMgQWxsIEFJWCBjb2Rl IGlzIFBJQy4KLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIEFJ WCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgotKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Y19DWFg9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2Fvcyop Ci0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAgICAgICAgICAg ICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAgICAgICAgICBs dF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDJwotKyAgICAgICAgOzsKLSsgICAgICBtNjhr KQotKyAgICAgICAgICAgICMgRklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0byBi dWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKLSsgICAgICAgICAgICAjIGFkZGluZyB0aGUgYC1t NjgwMjAnIGZsYWcgdG8gR0NDIHByZXZlbnRzIGJ1aWxkaW5nIGFueXRoaW5nIGJldHRlciwKLSsg ICAgICAgICAgICAjIGxpa2UgYC1tNjgwNDAnLgotKyAgICAgICAgICAgIGx0X3Byb2dfY29tcGls ZXJfcGljX0NYWD0nLW02ODAyMCAtcmVzaWRlbnQzMiAtbWFsd2F5cy1yZXN0b3JlLWE0JwotKyAg ICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgYmVvcyogfCBpcml4NSog fCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgICAgICMg UElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgotKyAgICAgIDs7Ci0rICAgIG1pbmd3 KiB8IGN5Z3dpbiogfCBvczIqIHwgcHczMiogfCBjZWdjYyopCi0rICAgICAgIyBUaGlzIGhhY2sg aXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZwot KyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQg c3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBp Z25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQotKyAgICAgICMgKC0t ZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9w aWNfQ1hYPSctRERMTF9FWFBPUlQnCi0rICAgICAgOzsKLSsgICAgZGFyd2luKiB8IHJoYXBzb2R5 KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCi0rICAgICAg IyBDb21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcwotKyAgICAgIGx0 X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZuby1jb21tb24nCi0rICAgICAgOzsKLSsgICAgKmRq Z3BwKikKLSsgICAgICAjIERKR1BQIGRvZXMgbm90IHN1cHBvcnQgc2hhcmVkIGxpYnJhcmllcyBh dCBhbGwKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Ci0rICAgICAgOzsKLSsgICAg aW50ZXJpeFszLTldKikKLSsgICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJQyBvcHRp b25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgotKyAgICAgICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUg c2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgotKyAgICAgIDs7Ci0rICAgIHN5c3Y0Kk1QKikK LSsgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCi0rCWx0X3Byb2dfY29tcGlsZXJfcGlj X0NYWD0tS2NvbmZvcm1fcGljCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBocHV4KikKLSsg ICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgNjQtYml0IFBBIEhQLVVYLCBidXQgbm90IGZv ciAzMi1iaXQKLSsgICAgICAjIFBBIEhQLVVYLiAgT24gSUE2NCBIUC1VWCwgUElDIGlzIHRoZSBk ZWZhdWx0IGJ1dCB0aGUgcGljIGZsYWcKLSsgICAgICAjIHNldHMgdGhlIGRlZmF1bHQgVExTIG1v ZGVsIGFuZCBhZmZlY3RzIGlubGluaW5nLgotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAg ICAgaHBwYSo2NCopCi0rCTs7Ci0rICAgICAgKikKLSsJbHRfcHJvZ19jb21waWxlcl9waWNfQ1hY PSctZlBJQycKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsgICAgKnFueCogfCAqbnRv KikKLSsgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVk IG9wdGlvbiB0b28sIG90aGVyd2lzZQotKyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KLSsgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDIC1zaGFyZWQnCi0rICAgICAgOzsKLSsg ICAgKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDJwotKyAgICAgIDs7 Ci0rICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeFs0 LTldKikKLSsJIyBBbGwgQUlYIGNvZGUgaXMgUElDLgotKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0g aWE2NDsgdGhlbgotKwkgICMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCi0rCSAg bHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKLSsJZWxzZQotKwkgIGx0X3By b2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLWJuc28gLWJJOi9saWIvc3lzY2FsbHMuZXhwJwotKwlm aQotKwk7OwotKyAgICAgIGNob3J1cyopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCWN4Y2g2 OCopCi0rCSAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAjIF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9zdGF0aWMsIENYWCk9Ii0tbm9fYXV0b19pbnN0YW50aWF0aW9uIC11IF9f bWFpbiAtdSBfX3ByZW1haW4gLXUgX2Fib3J0IC1yICRDT09MX0RJUi9saWIvbGliT3JiLmEgJE1W TUVfRElSL2xpYi9DQy9saWJDLmEgJE1WTUVfRElSL2xpYi9jbGFzc2l4L2xpYmN4LnMuYSIKLSsJ ICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZGd1eCopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGlu Ci0rCSAgZWMrKyopCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJwotKwkg ICAgOzsKLSsJICBnaGN4KikKLSsJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCi0rCSAg ICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMnCi0rCSAgICA7OwotKwkgICopCi0rCSAg ICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKwkjIEZy ZWVCU0QgdXNlcyBHTlUgQysrCi0rCTs7Ci0rICAgICAgaHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgx MSopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgbHRfcHJvZ19jb21w aWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9JyR7 d2x9LWEgJHt3bH1hcmNoaXZlJwotKwkgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0 aGVuCi0rCSAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nK1onCi0rCSAgICBmaQotKwkg ICAgOzsKLSsJICBhQ0MqKQotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0r CSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJwot KwkgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsJICAgIGhwcGEqNjQqfGlhNjQqKQotKwkgICAgICAj ICtaIHRoZSBkZWZhdWx0Ci0rCSAgICAgIDs7Ci0rCSAgICAqKQotKwkgICAgICBsdF9wcm9nX2Nv bXBpbGVyX3BpY19DWFg9JytaJwotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAgOzsKLSsJ ICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIGludGVyaXgqKQotKwkjIFRoaXMg aXMgYzg5LCB3aGljaCBpcyBNUyBWaXN1YWwgQysrIChubyBzaGFyZWQgbGlicykKLSsJIyBBbnlv bmUgd2FudHMgdG8gZG8gYSBwb3J0PwotKwk7OwotKyAgICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5v bnN0b3B1eCopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgbHRfcHJv Z19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19D WFg9Jy1ub25fc2hhcmVkJwotKwkgICAgIyBDQyBwaWMgZmxhZyAtS1BJQyBpcyB0aGUgZGVmYXVs dC4KLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBsaW51 eCogfCBrKmJzZCotZ251KQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIEtDQyopCi0rCSAg ICAjIEtBSSBDKysgQ29tcGlsZXIKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctLWJh Y2tlbmQgLVdsLCcKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMnCi0rCSAg ICA7OwotKwkgIGVjcGMqICkKLSsJICAgICMgb2xkIEludGVsIEMrKyBmb3IgeDg2XzY0IHdoaWNo IHN0aWxsIHN1cHBvcnRlZCAtS1BJQy4KLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSct V2wsJwotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKLSsJICAgIGx0X3By b2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLXN0YXRpYycKLSsJICAgIDs7Ci0rCSAgaWNwYyogKQot KwkgICAgIyBJbnRlbCBDKyssIHVzZWQgdG8gYmUgaW5jb21wYXRpYmxlIHdpdGggR0NDLgotKwkg ICAgIyBJQ0MgMTAgZG9lc24ndCBhY2NlcHQgLUtQSUMgYW55IG1vcmUuCi0rCSAgICBsdF9wcm9n X2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0n LWZQSUMnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1zdGF0aWMnCi0rCSAg ICA7OwotKwkgIHBnQ0MqIHwgcGdjcHAqKQotKwkgICAgIyBQb3J0bGFuZCBHcm91cCBDKysgY29t cGlsZXIKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJwotKwkgICAgbHRfcHJv Z19jb21waWxlcl9waWNfQ1hYPSctZnBpYycKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj X0NYWD0nLUJzdGF0aWMnCi0rCSAgICA7OwotKwkgIGN4eCopCi0rCSAgICAjIENvbXBhcSBDKysK LSsJICAgICMgTWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhh dCBhbGwgQWxwaGEKLSsJICAgICMgTGludXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9iamVjdHMg YXJlIFBJQy4KLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KLSsJICAgIGx0X3Byb2df Y29tcGlsZXJfc3RhdGljX0NYWD0nLW5vbl9zaGFyZWQnCi0rCSAgICA7OwotKwkgIHhsYyogfCB4 bEMqKQotKwkgICAgIyBJQk0gWEwgOC4wIG9uIFBQQwotKwkgICAgbHRfcHJvZ19jb21waWxlcl93 bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1xcGljJwotKwkg ICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctcXN0YXRpY2xpbmsnCi0rCSAgICA7Owot KwkgICopCi0rCSAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KLSsJICAgICpTdW5c IEMqKQotKwkgICAgICAjIFN1biBDKysgNS45Ci0rCSAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGlj X0NYWD0nLUtQSUMnCi0rCSAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0 aWMnCi0rCSAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctUW9wdGlvbiBsZCAnCi0rCSAg ICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgbHlueG9z KikKLSsJOzsKLSsgICAgICBtODhrKikKLSsJOzsKLSsgICAgICBtdnMqKQotKwljYXNlICRjY19i YXNlbmFtZSBpbgotKwkgIGN4eCopCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1X IGMsZXhwb3J0YWxsJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7Owot KyAgICAgIG5ldGJzZCopCi0rCTs7Ci0rICAgICAgKnFueCogfCAqbnRvKikKLSsgICAgICAgICMg UU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywg b3RoZXJ3aXNlCi0rICAgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCi0rICAgICAgICBsdF9wcm9n X2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDIC1zaGFyZWQnCi0rICAgICAgICA7OwotKyAgICAgIG9z ZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBLQ0MqKQot KwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy0tYmFja2VuZCAtV2wsJwotKwkgICAgOzsK LSsJICBSQ0MqKQotKwkgICAgIyBSYXRpb25hbCBDKysgMi40LjEKLSsJICAgIGx0X3Byb2dfY29t cGlsZXJfcGljX0NYWD0nLXBpYycKLSsJICAgIDs7Ci0rCSAgY3h4KikKLSsJICAgICMgRGlnaXRh bC9Db21wYXEgQysrCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsJICAg ICMgTWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwg QWxwaGEKLSsJICAgICMgTGludXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJ Qy4KLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KLSsJICAgIGx0X3Byb2dfY29tcGls ZXJfc3RhdGljX0NYWD0nLW5vbl9zaGFyZWQnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7Owot Kwllc2FjCi0rCTs7Ci0rICAgICAgcHNvcyopCi0rCTs7Ci0rICAgICAgc29sYXJpcyopCi0rCWNh c2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgIyBTdW4gQysrIDQuMiwgNS54IGFu ZCBDZW50ZXJsaW5lIEMrKwotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJQycK LSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCi0rCSAgICBsdF9w cm9nX2NvbXBpbGVyX3dsX0NYWD0nLVFvcHRpb24gbGQgJwotKwkgICAgOzsKLSsJICBnY3gqKQot KwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJf cGljX0NYWD0nLVBJQycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsK LSsgICAgICBzdW5vczQqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIENDKikKLSsJICAg ICMgU3VuIEMrKyA0LngKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXBpYycKLSsJ ICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCi0rCSAgICA7OwotKwkg IGxjYyopCi0rCSAgICAjIEx1Y2lkCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1w aWMnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgc3lz djUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikKLSsJY2Fz ZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBDQyopCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NY WD0nLVdsLCcKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCi0rCSAgICBs dF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJwotKwkgICAgOzsKLSsJZXNhYwot Kwk7OwotKyAgICAgIHRhbmRlbSopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgTkNDKikK LSsJICAgICMgTm9uU3RvcC1VWCBOQ0MgMy4yMAotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNf Q1hYPSctS1BJQycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsg ICAgICB2eHdvcmtzKikKLSsJOzsKLSsgICAgICAqKQotKwlsdF9wcm9nX2NvbXBpbGVyX2Nhbl9i dWlsZF9zaGFyZWRfQ1hYPW5vCi0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rCi0rY2FzZSAkaG9z dF9vcyBpbgotKyAgIyBGb3IgcGxhdGZvcm1zIHdoaWNoIGRvIG5vdCBzdXBwb3J0IFBJQywgLURQ SUMgaXMgbWVhbmluZ2xlc3M6Ci0rICAqZGpncHAqKQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp Y19DWFg9Ci0rICAgIDs7Ci0rICAqKQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9IiRs dF9wcm9nX2NvbXBpbGVyX3BpY19DWFggLURQSUMiCi0rICAgIDs7Ci0rZXNhYwotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgiID4m NQotKyRhc19lY2hvICIkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIiA+JjY7IH0KLSsKLSsKLSsK LSsjCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGFjdHVhbGx5IHdvcmtzLgot KyMKLStpZiB0ZXN0IC1uICIkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIjsgdGhlbgotKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAk bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIHdvcmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyBpZiAkY29tcGlsZXIgUElDIGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCB3b3Jrcy4u LiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hY K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWD1ubwotKyAgIGFjX291dGZpbGU9 Y29uZnRlc3QuJGFjX29iamV4dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2Nv ZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9IiRsdF9wcm9nX2Nv bXBpbGVyX3BpY19DWFggLURQSUMiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEp IGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3 b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90 ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFu ZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhl IGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgICMgVGhlIG9wdGlvbiBpcyByZWZlcmVu Y2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2luZyBzZWQuCi0rICAgbHRfY29tcGls ZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9 IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46 ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxh ZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZToxNDc5NzogJGx0X2NvbXBpbGVcIiIgPiY1 KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCi0rICAgYWNfc3RhdHVz PSQ/Ci0rICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICBlY2hvICIkYXNfbWU6MTQ4MDE6IFwk PyA9ICRhY19zdGF0dXMiID4mNQotKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMg IiRhY19vdXRmaWxlIjsgdGhlbgotKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBh bmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5v IGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCi0rICAg ICAkRUNITyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+ Y29uZnRlc3QuZXhwCi0rICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5j b25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBjb25m dGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgbHRfY3ZfcHJv Z19jb21waWxlcl9waWNfd29ya3NfQ1hYPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgICRSTSBj b25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRs dF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFgiID4mNQotKyRhc19lY2hvICIkbHRfY3Zf cHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYIiA+JjY7IH0KLSsKLStpZiB0ZXN0IHgiJGx0X2N2 X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWCIgPSB4eWVzOyB0aGVuCi0rICAgIGNhc2UgJGx0 X3Byb2dfY29tcGlsZXJfcGljX0NYWCBpbgotKyAgICAgIiIgfCAiICIqKSA7OwotKyAgICAgKikg bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSIgJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCIgOzsK LSsgICAgIGVzYWMKLStlbHNlCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KLSsgICAg IGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZF9DWFg9bm8KLStmaQotKwotK2ZpCi0r Ci0rCi0rCi0rIwotKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBzdGF0aWMgZmxhZyBhY3R1YWxs eSB3b3Jrcy4KLSsjCi0rd2w9JGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYIGV2YWwgbHRfdG1wX3N0 YXRpY19mbGFnPVwiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWFwiCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1w X3N0YXRpY19mbGFnIHdvcmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGls ZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3b3Jrcy4uLiAiID4mNjsgfQotK2lm IHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYK3NldH0iID0gc2V0 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3By b2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWD1ubwotKyAgIHNhdmVfTERGTEFHUz0iJExERkxB R1MiCi0rICAgTERGTEFHUz0iJExERkxBR1MgJGx0X3RtcF9zdGF0aWNfZmxhZyIKLSsgICBlY2hv ICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgICBpZiAo ZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVl eHQ7IHRoZW4KLSsgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhl IG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJl IHdhcm5pbmdzCi0rICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotKyAgICAgICAj IEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgotKyAgICAgICBjYXQgY29uZnRl c3QuZXJyIDE+JjUKLSsgICAgICAgJEVDSE8gIlgkX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAk WHNlZCAtZSAnL14kL2QnID4gY29uZnRlc3QuZXhwCi0rICAgICAgICRTRUQgJy9eJC9kOyAvXiAq Ky9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgotKyAgICAgICBpZiBkaWZmIGNvbmZ0ZXN0 LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgIGx0X2N2X3Byb2df Y29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWD15ZXMKLSsgICAgICAgZmkKLSsgICAgIGVsc2UKLSsg ICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYPXllcwotKyAgICAgZmkK LSsgICBmaQotKyAgICRSTSAtciBjb25mdGVzdCoKLSsgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdT IgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3By b2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9n X2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFgiID4mNjsgfQotKwotK2lmIHRlc3QgeCIkbHRfY3Zf cHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYIiA9IHh5ZXM7IHRoZW4KLSsgICAgOgotK2Vs c2UKLSsgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPQotK2ZpCi0rCi0rCi0rCi0rCi0r ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3Vw cG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBp ZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2OyB9Ci0r aWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4K LSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3ZfcHJvZ19jb21w aWxlcl9jX29fQ1hYPW5vCi0rICAgJFJNIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCi0rICAgbWtk aXIgY29uZnRlc3QKLSsgICBjZCBjb25mdGVzdAotKyAgIG1rZGlyIG91dAotKyAgIGVjaG8gIiRs dF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwotKyAgIGx0 X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKLSsgICAjIEluc2Vy dCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBv cgotKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMp IGF0IHRoZSBlbmQuCi0rICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90 IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0aCBhIGRvbGxhciBzaWdu IChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCi0rICAg bHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFH U31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBdKmNv bmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29t cGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZToxNDg5NjogJGx0X2NvbXBp bGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQot KyAgIGFjX3N0YXR1cz0kPwotKyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8g IiRhc19tZToxNDkwMDogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAgaWYgKGV4aXQgJGFjX3N0 YXR1cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKLSsgICB0aGVuCi0rICAg ICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBu b3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0r ICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9k JyA+IG91dC9jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29u ZnRlc3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0 ZXN0LmVyMiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9u dWxsOyB0aGVuCi0rICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWD15ZXMKLSsgICAg IGZpCi0rICAgZmkKLSsgICBjaG1vZCB1K3cgLiAyPiY1Ci0rICAgJFJNIGNvbmZ0ZXN0KgotKyAg ICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBm b3IKLSsgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KLSsgICB0ZXN0IC1kIG91dC9paV9maWxl cyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCi0rICAgJFJNIG91 dC8qICYmIHJtZGlyIG91dAotKyAgIGNkIC4uCi0rICAgJFJNIC1yIGNvbmZ0ZXN0Ci0rICAgJFJN IGNvbmZ0ZXN0KgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9n X2NvbXBpbGVyX2Nfb19DWFgiID4mNjsgfQotKwotKwotKwotKyAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFj X29iamV4dCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRz IC1jIC1vIGZpbGUuJGFjX29iamV4dC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJv Z19jb21waWxlcl9jX29fQ1hYK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWD1ubwotKyAg ICRSTSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAotKyAgIG1rZGlyIGNvbmZ0ZXN0Ci0rICAgY2Qg Y29uZnRlc3QKLSsgICBta2RpciBvdXQKLSsgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVz dF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICBsdF9jb21waWxlcl9mbGFnPSItbyBv dXQvY29uZnRlc3QyLiRhY19vYmpleHQiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIg KDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUg YSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMg Tm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVz IGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28g dGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRh Y19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21w aWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGls ZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAo ZXZhbCBlY2hvICJcIlwkYXNfbWU6MTQ5NDg6ICRsdF9jb21waWxlXCIiID4mNSkKLSsgICAoZXZh bCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKLSsgICBhY19zdGF0dXM9JD8KLSsg ICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JjUKLSsgICBlY2hvICIkYXNfbWU6MTQ5NTI6IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0 L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0Ci0rICAgdGhlbgotKyAgICAgIyBUaGUgY29tcGlsZXIgY2Fu IG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAg ICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncwotKyAgICAgJEVDSE8gIlgkX2x0X2Nv bXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhw Ci0rICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0 ZXN0LmVyMgotKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQv Y29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICBs dF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFg9eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAgY2ht b2QgdSt3IC4gMj4mNQotKyAgICRSTSBjb25mdGVzdCoKLSsgICAjIFNHSSBDKysgY29tcGlsZXIg d2lsbCBjcmVhdGUgZGlyZWN0b3J5IG91dC9paV9maWxlcy8gZm9yCi0rICAgIyB0ZW1wbGF0ZSBp bnN0YW50aWF0aW9uCi0rICAgdGVzdCAtZCBvdXQvaWlfZmlsZXMgJiYgJFJNIG91dC9paV9maWxl cy8qICYmIHJtZGlyIG91dC9paV9maWxlcwotKyAgICRSTSBvdXQvKiAmJiBybWRpciBvdXQKLSsg ICBjZCAuLgotKyAgICRSTSAtciBjb25mdGVzdAotKyAgICRSTSBjb25mdGVzdCoKLSsKLStmaQot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVy X2Nfb19DWFgiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIiA+ JjY7IH0KLSsKLSsKLSsKLSsKLStoYXJkX2xpbmtzPSJub3R0ZXN0ZWQiCi0raWYgdGVzdCAiJGx0 X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0g bm87IHRoZW4KLSsgICMgZG8gbm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBw cm92aWRlZCBieSB0aGUgdXNlcgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxpbmtzLi4uICIgPiY2OyB9Ci0rICBoYXJk X2xpbmtzPXllcwotKyAgJFJNIGNvbmZ0ZXN0KgotKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5i IDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KLSsgIHRvdWNoIGNvbmZ0ZXN0LmEKLSsgIGxu IGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPiY1IHx8IGhhcmRfbGlua3M9bm8KLSsgIGxuIGNvbmZ0 ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkaGFyZF9saW5rcyIgPiY1Ci0rJGFzX2VjaG8g IiRoYXJkX2xpbmtzIiA+JjY7IH0KLSsgIGlmIHRlc3QgIiRoYXJkX2xpbmtzIiA9IG5vOyB0aGVu Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBcYCRDQycgZG9lcyBu b3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1v Jywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjI7fQotKyAgICBuZWVkX2xvY2tzPXdh cm4KLSsgIGZpCi0rZWxzZQotKyAgbmVlZF9sb2Nrcz1ubwotK2ZpCi0rCi0rCi0rCi0rICAgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIg bGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hh cmVkIGxpYnJhcmllcy4uLiAiID4mNjsgfQotKwotKyAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9 JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAn XCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIGNhc2Ug JGhvc3Rfb3MgaW4KLSsgIGFpeFs0LTldKikKLSsgICAgIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0s IHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCi0rICAgICMgLUMgbWVhbnMgZGVt YW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KLSsg ICAgaWYgJE5NIC1WIDI+JjEgfCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAg IGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSckTk0gLUJwZyAkbGlib2JqcyAkY29udmVuaWVuY2Ug fCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIg PT0gIkIiKSkgJiYgKHN1YnN0cihcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdc JycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgICBlbHNlCi0rICAgICAgZXhwb3J0 X3N5bWJvbHNfY21kc19DWFg9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sg J1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIi KSkgJiYgKHN1YnN0cihcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBz b3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgICBmaQotKyAgICA7OwotKyAgcHczMiopCi0r ICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSIkbHRkbGxfY21kcyIKLSsgIDs7Ci0rICBjeWd3 aW4qIHwgbWluZ3cqIHwgY2VnY2MqKQotKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5N ICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdc JycvXltCQ0RHUlNdWyBdL3MvLipbIF1cKFteIF0qXCkvXDEgREFUQS87L14uKlsgXV9fbm1fXy9z L14uKlsgXV9fbm1fX1woW14gXSpcKVsgXVteIF0qL1wxIERBVEEvOy9eSVsgXS9kOy9eW0FJVFdd WyBdL3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0rICA7Owot KyAgKikKLSsgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAkbGlib2JqcyAkY29udmVu aWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0 IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIDs7Ci0rICBlc2FjCi0rICBleGNsdWRlX2V4 cHN5bXNfQ1hYPSdfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionCi0rCi0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGxkX3NobGlic19DWFgiID4mNQot KyRhc19lY2hvICIkbGRfc2hsaWJzX0NYWCIgPiY2OyB9Ci0rdGVzdCAiJGxkX3NobGlic19DWFgi ID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwotK3dpdGhfZ251X2xkX0NYWD0kd2l0aF9n bnVfbGQKLSsKLSsKLSsKLSsKLSsKLSsKLSsjCi0rIyBEbyB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkg bGluayBsaWJjPwotKyMKLStjYXNlICJ4JGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWCIgaW4KLSt4 fHh5ZXMpCi0rICAjIEFzc3VtZSAtbGMgc2hvdWxkIGJlIGFkZGVkCi0rICBhcmNoaXZlX2NtZHNf bmVlZF9sY19DWFg9eWVzCi0rCi0rICBpZiB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYg dGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICAgY2FzZSAkYXJjaGl2ZV9jbWRzX0NYWCBpbgot KyAgICAqJ34nKikKLSsgICAgICAjIEZJWE1FOiB3ZSBtYXkgaGF2ZSB0byBkZWFsIHdpdGggbXVs dGktY29tbWFuZCBzZXF1ZW5jZXMuCi0rICAgICAgOzsKLSsgICAgJyRDQyAnKikKLSsgICAgICAj IFRlc3Qgd2hldGhlciB0aGUgY29tcGlsZXIgaW1wbGljaXRseSBsaW5rcyB3aXRoIC1sYyBzaW5j ZSBvbiBzb21lCi0rICAgICAgIyBzeXN0ZW1zLCAtbGdjYyBoYXMgdG8gY29tZSBiZWZvcmUgLWxj LiBJZiBnY2MgYWxyZWFkeSBwYXNzZXMgLWxjCi0rICAgICAgIyB0byBsZCwgZG9uJ3QgYWRkIC1s YyBiZWZvcmUgLWxnY2MuCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbiIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2Vk IGluLi4uICIgPiY2OyB9Ci0rICAgICAgJFJNIGNvbmZ0ZXN0KgotKyAgICAgIGVjaG8gIiRsdF9z aW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwotKyAgICAgIGlm IHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotKyAg KGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMp OyB9IDI+Y29uZnRlc3QuZXJyOyB0aGVuCi0rICAgICAgICBzb25hbWU9Y29uZnRlc3QKLSsgICAg ICAgIGxpYj1jb25mdGVzdAotKyAgICAgICAgbGlib2Jqcz1jb25mdGVzdC4kYWNfb2JqZXh0Ci0r ICAgICAgICBkZXBsaWJzPQotKyAgICAgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYCi0r CXBpY19mbGFnPSRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgKLSsgICAgICAgIGNvbXBpbGVyX2Zs YWdzPS12Ci0rICAgICAgICBsaW5rZXJfZmxhZ3M9LXYKLSsgICAgICAgIHZlcnN0cmluZz0KLSsg ICAgICAgIG91dHB1dF9vYmpkaXI9LgotKyAgICAgICAgbGlibmFtZT1jb25mdGVzdAotKyAgICAg ICAgbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZz0kYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hY Ci0rICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9Ci0rICAgICAgICBpZiB7IChldmFs IGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhcmNoaXZlX2NtZHNfQ1hYIDJcPlwmMSBcfCAkR1JF UCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxXCIiKSA+JjUKLSsgIChldmFsICRhcmNoaXZl X2NtZHNfQ1hYIDJcPlwmMSBcfCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxKSAy PiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotKyAgICAgICAgdGhlbgot KwkgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubwotKyAgICAgICAgZWxzZQotKwkgIGFyY2hp dmVfY21kc19uZWVkX2xjX0NYWD15ZXMKLSsgICAgICAgIGZpCi0rICAgICAgICBhbGxvd191bmRl ZmluZWRfZmxhZ19DWFg9JGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKLSsgICAgICBlbHNl Ci0rICAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKLSsgICAgICBmaQotKyAgICAgICRSTSBj b25mdGVzdCoKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXJj aGl2ZV9jbWRzX25lZWRfbGNfQ1hYIiA+JjUKLSskYXNfZWNobyAiJGFyY2hpdmVfY21kc19uZWVk X2xjX0NYWCIgPiY2OyB9Ci0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIDs7Ci0rZXNh YwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MuLi4gIiA+JjY7IH0KLSsK LStsaWJyYXJ5X25hbWVzX3NwZWM9Ci0rbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKLStzb25hbWVf c3BlYz0KLStzaHJleHRfY21kcz0iLnNvIgotK3Bvc3RpbnN0YWxsX2NtZHM9Ci0rcG9zdHVuaW5z dGFsbF9jbWRzPQotK2ZpbmlzaF9jbWRzPQotK2ZpbmlzaF9ldmFsPQotK3NobGlicGF0aF92YXI9 Ci0rc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXVua25vd24KLSt2ZXJzaW9uX3R5cGU9bm9u ZQotK2R5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKLStzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYz0iL2xpYiAvdXNyL2xpYiIKLStuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgotK2hhcmRj b2RlX2ludG9fbGlicz1ubwotKwotKyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0byBubywg bWFrZSBzdXJlIGl0IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVyc2lvbgotKyMgZmxhZ3MgdG8gYmUg bGVmdCB3aXRob3V0IGFyZ3VtZW50cwotK25lZWRfdmVyc2lvbj11bmtub3duCi0rCi0rY2FzZSAk aG9zdF9vcyBpbgotK2FpeDMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxp Ym5hbWUuYScKLSsgIHNobGlicGF0aF92YXI9TElCUEFUSAotKwotKyAgIyBBSVggMyBoYXMgbm8g dmVyc2lvbmluZyBzdXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRvIHRoZSBu YW1lLgotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKLSsgIDs7Ci0rCi0rYWl4WzQtOV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBu ZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgaGFyZGNvZGVfaW50b19s aWJzPXllcwotKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgIyBBSVgg NSBzdXBwb3J0cyBJQTY0Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAotKyAgZWxzZQotKyAgICAjIFdpdGggR0NDIHVwIHRvIDIuOTUueCwgY29s bGVjdDIgd291bGQgY3JlYXRlIGFuIGltcG9ydCBmaWxlCi0rICAgICMgZm9yIGRlcGVuZGVuY2Ug bGlicmFyaWVzLiAgVGhlIGltcG9ydCBmaWxlIHdvdWxkIHN0YXJ0IHdpdGgKLSsgICAgIyB0aGUg bGluZSBgIyEgLicuICBUaGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5lcmF0ZWQgbGlicmFyeSB0bwot KyAgICAjIGRlcGVuZCBvbiBgLicsIGFsd2F5cyBhbiBpbnZhbGlkIGxpYnJhcnkuICBUaGlzIHdh cyBmaXhlZCBpbgotKyAgICAjIGRldmVsb3BtZW50IHNuYXBzaG90cyBvZiBHQ0MgcHJpb3IgdG8g My4wLgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4NCB8IGFpeDQuWzAxXSB8IGFp eDQuWzAxXS4qKQotKyAgICAgIGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4gMiB8fCAoX19HTlVD X18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5NyknCi0rCSAgIGVjaG8gJyB5ZXMgJwotKwkg ICBlY2hvICcjZW5kaWYnOyB9IHwgJHtDQ30gLUUgLSB8ICRHUkVQIHllcyA+IC9kZXYvbnVsbDsg dGhlbgotKwk6Ci0rICAgICAgZWxzZQotKwljYW5fYnVpbGRfc2hhcmVkPW5vCi0rICAgICAgZmkK LSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgICMgQUlYIChvbiBQb3dlciopIGhhcyBubyB2ZXJz aW9uaW5nIHN1cHBvcnQsIHNvIGN1cnJlbnRseSB3ZSBjYW4gbm90IGhhcmRjb2RlIGNvcnJlY3QK LSsgICAgIyBzb25hbWUgaW50byBleGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4gYWRkIHZlcnNp b25pbmcgc3VwcG9ydCB0bwotKyAgICAjIGNvbGxlY3QyLCBzbyBhZGRpdGlvbmFsIGxpbmtzIGNh biBiZSB1c2VmdWwgaW4gZnV0dXJlLgotKyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlu a2luZyIgPSB5ZXM7IHRoZW4KLSsgICAgICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtpbmcgKG9u IEFJWCA0LjIgb3IgbGF0ZXIpIHVzZSBsaWI8bmFtZT4uc28KLSsgICAgICAjIGluc3RlYWQgb2Yg bGliPG5hbWU+LmEgdG8gbGV0IHBlb3BsZSBrbm93IHRoYXQgdGhlc2UgYXJlIG5vdAotKyAgICAg ICMgdHlwaWNhbCBBSVggc2hhcmVkIGxpYnJhcmllcy4KLSsgICAgICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsg ICAgZWxzZQotKyAgICAgICMgV2UgcHJlc2VydmUgLmEgYXMgZXh0ZW5zaW9uIGZvciBzaGFyZWQg bGlicmFyaWVzIHRocm91Z2ggQUlYNC4yCi0rICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3ZSBhcmUg bm90IGRvaW5nIHJ1biB0aW1lIGxpbmtpbmcuCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfS5hICRsaWJuYW1lLmEnCi0rICAgICAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgZmkKLSsgICAgc2hs aWJwYXRoX3Zhcj1MSUJQQVRICi0rICBmaQotKyAgOzsKLSsKLSthbWlnYW9zKikKLSsgIGNhc2Ug JGhvc3RfY3B1IGluCi0rICBwb3dlcnBjKQotKyAgICAjIFNpbmNlIEp1bHkgMjAwNyBBbWlnYU9T NCBvZmZpY2lhbGx5IHN1cHBvcnRzIC5zbyBsaWJyYXJpZXMuCi0rICAgICMgV2hlbiBjb21waWxp bmcgdGhlIGV4ZWN1dGFibGUsIGFkZCAtdXNlLWR5bmxkIC1Mc29ianM6IHRvIHRoZSBjb21waWxl bGluZS4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv ciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIDs7Ci0rICBtNjhrKQotKyAgICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyRsaWJuYW1lLml4bGlicmFyeSAkbGlibmFtZS5hJwotKyAgICAjIENyZWF0 ZSAke2xpYm5hbWV9X2l4bGlicmFyeS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgotKyAgICBmaW5p c2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYvbnVsbGA7 IGRvIGxpYm5hbWU9YCRFQ0hPICJYJGxpYiIgfCAkWHNlZCAtZSAnXCcncyVeLiovXChbXi9dKlwp XC5peGxpYnJhcnkkJVwxJSdcJydgOyB0ZXN0ICRSTSAvc3lzL2xpYnMvJHtsaWJuYW1lfV9peGxp YnJhcnkuYTsgJHNob3cgImNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhs aWJyYXJ5LmEiOyBjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFy eS5hIHx8IGV4aXQgMTsgZG9uZScKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rYmVvcyop Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgZHlu YW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgotKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZX1BB VEgKLSsgIDs7Ci0rCi0rYnNkaVs0NV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVk X3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBB VEg6L3NiaW4iIGxkY29uZmlnICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9Y MTEvbGliIC91c3IvY29udHJpYi9saWIgL2xpYiAvdXNyL2xvY2FsL2xpYiIKLSsgIHN5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCi0rICAj IHRoZSBkZWZhdWx0IGxkLnNvLmNvbmYgYWxzbyBjb250YWlucyAvdXNyL2NvbnRyaWIvbGliIGFu ZAotKyAgIyAvdXNyL1gxMVI2L2xpYiAoL3Vzci9YMTEgaXMgYSBsaW5rIHRvIC91c3IvWDExUjYp LCBidXQgbGV0IHVzIGFsbG93Ci0rICAjIGxpYnRvb2wgdG8gaGFyZC1jb2RlIHRoZXNlIGludG8g cHJvZ3JhbXMKLSsgIDs7Ci0rCi0rY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQot KyAgdmVyc2lvbl90eXBlPXdpbmRvd3MKLSsgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgbmVlZF92 ZXJzaW9uPW5vCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsKLSsgIGNhc2UgJEdDQywkaG9zdF9v cyBpbgotKyAgeWVzLGN5Z3dpbiogfCB5ZXMsbWluZ3cqIHwgeWVzLHB3MzIqIHwgeWVzLGNlZ2Nj KikKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScKLSsgICAgIyBETEwg aXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcwotKyAg ICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4KLSsgICAg ICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcn aTsgZWNobyBcJGRsbmFtZSdcJydgfgotKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwk ZGxwYXRoYH4KLSsgICAgICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KLSsg ICAgICAkaW5zdGFsbF9wcm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+Ci0rICAgICAg Y2htb2QgYSt4IFwkZGxkaXIvJGRsbmFtZX4KLSsgICAgICBpZiB0ZXN0IC1uICdcJyckc3RyaXBt ZSdcJycgJiYgdGVzdCAtbiAnXCcnJHN0cmlwbGliJ1wnJzsgdGhlbgotKyAgICAgICAgZXZhbCAn XCcnJHN0cmlwbGliIFwkZGxkaXIvJGRsbmFtZSdcJycgfHwgZXhpdCBcJD87Ci0rICAgICAgZmkn Ci0rICAgIHBvc3R1bmluc3RhbGxfY21kcz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdcJycuICRm aWxlOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAgICAgZGxwYXRoPSRkaXIvXCRkbGRsbH4KLSsg ICAgICAgJFJNIFwkZGxwYXRoJwotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVz Ci0rCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgY3lnd2luKikKLSsgICAgICAjIEN5Z3dp biBETExzIHVzZSAnY3lnJyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBzb25hbWVf c3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBlY2hvICR7cmVs ZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0r ICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAvbGli IC91c3IvbG9jYWwvbGliIgotKyAgICAgIDs7Ci0rICAgIG1pbmd3KiB8IGNlZ2NjKikKLSsgICAg ICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAotKyAgICAgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydg JHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCAkR1JFUCAiXmxpYnJhcmllczoiIHwgJFNFRCAt ZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAotKyAgICAgIGlmICRFQ0hPICIkc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRHUkVQICc7W2MtekMtWl06LycgPi9kZXYvbnVsbDsg dGhlbgotKyAgICAgICAgIyBJdCBpcyBtb3N0IHByb2JhYmx5IGEgV2luZG93cyBmb3JtYXQgUEFU SCBwcmludGVkIGJ5Ci0rICAgICAgICAjIG1pbmd3IGdjYywgYnV0IHdlIGFyZSBydW5uaW5nIG9u IEN5Z3dpbi4gR2NjIHByaW50cyBpdHMgc2VhcmNoCi0rICAgICAgICAjIHBhdGggd2l0aCA7IHNl cGFyYXRvcnMsIGFuZCB3aXRoIGRyaXZlIGxldHRlcnMuIFdlIGNhbiBoYW5kbGUgdGhlCi0rICAg ICAgICAjIGRyaXZlIGxldHRlcnMgKGN5Z3dpbiBmaWxldXRpbHMgdW5kZXJzdGFuZHMgdGhlbSks IHNvIGxlYXZlIHRoZW0sCi0rICAgICAgICAjIGVzcGVjaWFsbHkgYXMgd2UgbWlnaHQgcGFzcyBm aWxlcyBmb3VuZCB0aGVyZSB0byBhIG1pbmd3IG9iamR1bXAsCi0rICAgICAgICAjIHdoaWNoIHdv dWxkbid0IHVuZGVyc3RhbmQgYSBjeWd3aW5pZmllZCBwYXRoLiBBaGguCi0rICAgICAgICBzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8 ICRTRUQgLWUgJ3MvOy8gL2cnYAotKyAgICAgIGVsc2UKLSsgICAgICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUg InMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBwdzMy KikKLSsgICAgICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicK LSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3Mv XmxpYi9wdy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3Vm Zml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICA7OwotKwotKyAg KikKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8 ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5s aWInCi0rICAgIDs7Ci0rICBlc2FjCi0rICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJwot KyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRo ZSBleGVjdXRhYmxlIGlzIGluCi0rICBzaGxpYnBhdGhfdmFyPVBBVEgKLSsgIDs7Ci0rCi0rZGFy d2luKiB8IHJoYXBzb2R5KikKLSsgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgotKyAg dmVyc2lvbl90eXBlPWRhcndpbgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNp b249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9y fSRzaGFyZWRfZXh0ICR7bGlibmFtZX0kc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQnCi0rICBzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9eWVzCi0rICBzaGxpYnBhdGhfdmFyPURZTERfTElCUkFSWV9QQVRICi0rICBz aHJleHRfY21kcz0nYHRlc3QgLiRtb2R1bGUgPSAueWVzICYmIGVjaG8gLnNvIHx8IGVjaG8gLmR5 bGliYCcKLSsKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAv bGliIC91c3IvbGliJwotKyAgOzsKLSsKLStkZ3V4KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAot KyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUkc2hhcmVkX2V4dCcK LSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In Ci0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgOzsKLSsKLStmcmVlYnNkMSop Ci0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLStmcmVlYnNkKiB8IGRyYWdvbmZseSop Ci0rICAjIERyYWdvbkZseSBkb2VzIG5vdCBoYXZlIGFvdXQuICBXaGVuL2lmIHRoZXkgaW1wbGVt ZW50IGEgbmV3Ci0rICAjIHZlcnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1c3QgdGhpcy4KLSsgIGlm IHRlc3QgLXggL3Vzci9iaW4vb2JqZm9ybWF0OyB0aGVuCi0rICAgIG9iamZvcm1hdD1gL3Vzci9i aW4vb2JqZm9ybWF0YAotKyAgZWxzZQotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGZyZWVi c2RbMTIzXSopIG9iamZvcm1hdD1hb3V0IDs7Ci0rICAgICopIG9iamZvcm1hdD1lbGYgOzsKLSsg ICAgZXNhYwotKyAgZmkKLSsgIHZlcnNpb25fdHlwZT1mcmVlYnNkLSRvYmpmb3JtYXQKLSsgIGNh c2UgJHZlcnNpb25fdHlwZSBpbgotKyAgICBmcmVlYnNkLWVsZiopCi0rICAgICAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0r ICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAg OzsKLSsgICAgZnJlZWJzZC0qKQotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4JwotKyAgICAgIG5lZWRfdmVyc2lvbj15ZXMKLSsgICAgICA7OwotKyAgZXNhYwot KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsg IGZyZWVic2QyKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICA7 OwotKyAgZnJlZWJzZDMuWzAxXSogfCBmcmVlYnNkZWxmMy5bMDFdKikKLSsgICAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAg IDs7Ci0rICBmcmVlYnNkMy5bMi05XSogfCBmcmVlYnNkZWxmMy5bMi05XSogfCBcCi0rICBmcmVl YnNkNC5bMC01XSB8IGZyZWVic2RlbGY0LlswLTVdIHwgZnJlZWJzZDQuMS4xIHwgZnJlZWJzZGVs ZjQuMS4xKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgaGFyZGNv ZGVfaW50b19saWJzPXllcwotKyAgICA7OwotKyAgKikgIyBmcm9tIDQuNiBvbiwgYW5kIERyYWdv bkZseQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIGhhcmRjb2Rl X2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rZ251KikKLSsgIHZl cnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249 bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21ham9yfSAk e2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLStocHV4OSogfCBocHV4MTAq IHwgaHB1eDExKikKLSsgICMgR2l2ZSBhIHNvbmFtZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBtYWpv ciB2ZXJzaW9uIHNvIHRoYXQgZGxkLnNsIHJlZnVzZXMgdG8KLSsgICMgbGluayBhZ2FpbnN0IG90 aGVyIHZlcnNpb25zLgotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgIGlhNjQqKQot KyAgICBzaHJleHRfY21kcz0nLnNvJwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAg IGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc28iCi0rICAgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxl c3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGlm IHRlc3QgIlgkSFBVWF9JQTY0X01PREUiID0gWDMyOyB0aGVuCi0rICAgICAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIvaHB1eDMyIC91c3Iv bG9jYWwvbGliIgotKyAgICBlbHNlCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIv dXNyL2xpYi9ocHV4NjQgL3Vzci9sb2NhbC9saWIvaHB1eDY0IgotKyAgICBmaQotKyAgICBzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7 Ci0rICBocHBhKjY0KikKLSsgICAgc2hyZXh0X2NtZHM9Jy5zbCcKLSsgICAgaGFyZGNvZGVfaW50 b19saWJzPXllcwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSCAjIEhvdyBzaG91bGQgd2UgaGFuZGxlIFNITElC X1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9l bnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9wYTIwXzY0IC91c3IvY2NzL2xpYi9wYTIwXzY0Igot KyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj Ci0rICAgIDs7Ci0rICAqKQotKyAgICBzaHJleHRfY21kcz0nLnNsJwotKyAgICBkeW5hbWljX2xp bmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICBzaGxpYnBhdGhfdmFyPVNITElCX1BBVEgKLSsg ICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vICMgK3MgaXMgcmVxdWlyZWQgdG8gZW5h YmxlIFNITElCX1BBVEgKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIDs7Ci0rICBlc2FjCi0r ICAjIEhQLVVYIHJ1bnMgKnJlYWxseSogc2xvd2x5IHVubGVzcyBzaGFyZWQgbGlicmFyaWVzIGFy ZSBtb2RlIDU1NS4KLSsgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDU1NSAkbGliJwotKyAgOzsK LSsKLStpbnRlcml4WzMtOV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9w cmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBkeW5h bWljX2xpbmtlcj0nSW50ZXJpeCAzLnggbGQuc28uMSAoUEUsIGxpa2UgRUxGKScKLSsgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0raXJpeDUqIHwgaXJpeDYq IHwgbm9uc3RvcHV4KikKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgbm9uc3RvcHV4KikgdmVy c2lvbl90eXBlPW5vbnN0b3B1eCA7OwotKyAgICAqKQotKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19n bnVfbGQiID0geWVzOyB0aGVuCi0rCQl2ZXJzaW9uX3R5cGU9bGludXgKLSsJZWxzZQotKwkJdmVy c2lvbl90eXBlPWlyaXgKLSsJZmkgOzsKLSsgIGVzYWMKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwot KyAgbmVlZF92ZXJzaW9uPW5vCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUk e3NoYXJlZF9leHR9JwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgaXJpeDUqIHwgbm9uc3RvcHV4 KikKLSsgICAgbGlic3VmZj0gc2hsaWJzdWZmPQotKyAgICA7OwotKyAgKikKLSsgICAgY2FzZSAk TEQgaW4gIyBsaWJ0b29sLm00IHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAot KyAgICAqLTMyfCoiLTMyICJ8Ki1tZWxmMzJic21pcHwqIi1tZWxmMzJic21pcCAiKQotKyAgICAg IGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9MzItYml0OzsKLSsgICAgKi1uMzJ8KiItbjMy ICJ8Ki1tZWxmMzJibWlwbjMyfCoiLW1lbGYzMmJtaXBuMzIgIikKLSsgICAgICBsaWJzdWZmPTMy IHNobGlic3VmZj1OMzIgbGlibWFnaWM9TjMyOzsKLSsgICAgKi02NHwqIi02NCAifCotbWVsZjY0 Ym1pcHwqIi1tZWxmNjRibWlwICIpCi0rICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGli bWFnaWM9NjQtYml0OzsKLSsgICAgKikgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZl ci1tYXRjaDs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsgIGVzYWMKLSsgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWSR7c2hsaWJzdWZmfV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9bm8KLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9s aWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJzdWZmfSIKLSsgIHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCi0rICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotKyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZv ciBMaW51eCBvbGRsZCwgYW91dCwgb3IgY29mZi4KLStsaW51eCpvbGRsZCogfCBsaW51eCphb3V0 KiB8IGxpbnV4KmNvZmYqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rCi0rIyBUaGlz IG11c3QgYmUgTGludXggRUxGLgotK2xpbnV4KiB8IGsqYnNkKi1nbnUpCi0rICB2ZXJzaW9uX3R5 cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtz aGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZp ZyAtbiAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgIyBTb21lIGJpbnV0aWxzIGxkIGFyZSBwYXRj aGVkIHRvIHNldCBEVF9SVU5QQVRICi0rICBzYXZlX0xERkxBR1M9JExERkxBR1MKLSsgIHNhdmVf bGliZGlyPSRsaWJkaXIKLSsgIGV2YWwgImxpYmRpcj0vZm9vOyB3bD1cIiRsdF9wcm9nX2NvbXBp bGVyX3dsX0NYWFwiOyBcCi0rICAgICAgIExERkxBR1M9XCJcJExERkxBR1MgJGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfQ1hYXCIiCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0 LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZk ZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsK LSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVl eHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZh bCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIx Ci0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRl c3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy Ci0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAi JGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhl ZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGlmICAoJE9CSkRVTVAgLXAgY29uZnRlc3QkYWNfZXhl ZXh0KSAyPi9kZXYvbnVsbCB8IGdyZXAgIlJVTlBBVEguKiRsaWJkaXIiID4vZGV2L251bGw7IHRo ZW4KLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLStmaQotKwotK2Vsc2UKLSsg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5k U1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3Qu JGFjX2V4dAotKyAgTERGTEFHUz0kc2F2ZV9MREZMQUdTCi0rICBsaWJkaXI9JHNhdmVfbGliZGly Ci0rCi0rICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGwsIHdoaWNoIGlzIHVuYWNjZXB0 YWJsZS4KLSsgICMgU29tZSByZXdvcmsgd2lsbCBiZSBuZWVkZWQgdG8gYWxsb3cgZm9yIGZhc3Rf aW5zdGFsbAotKyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUgZW5hYmxlZC4KLSsgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKLSsKLSsgICMgQWRkIEFCSS1zcGVjaWZpYyBkaXJlY3RvcmllcyB0byB0aGUg c3lzdGVtIGxpYnJhcnkgcGF0aC4KLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGli NjQgL3Vzci9saWI2NCAvbGliIC91c3IvbGliIgotKwotKyAgIyBBcHBlbmQgbGQuc28uY29uZiBj b250ZW50cyB0byB0aGUgc2VhcmNoIHBhdGgKLSsgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25m OyB0aGVuCi0rICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmlu dGYoImNkIC9ldGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFwkMikpOyBza2lwID0gMTsgfSB7IGlm ICghc2tpcCkgcHJpbnQgXCQwOyBza2lwID0gMDsgfScgPCAvZXRjL2xkLnNvLmNvbmYgfCAkU0VE IC1lICdzLyMuKi8vOy9eWwkgXSpod2NhcFsJIF0vZDtzL1s6LAldLyAvZztzLz1bXj1dKiQvLztz Lz1bXj0gXSogLyAvZzsvXiQvZCcgfCB0ciAnXG4nICcgJ2AKLSsgICAgc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyAkbHRfbGRfZXh0cmEiCi0r ICBmaQotKwotKyAgIyBXZSB1c2VkIHRvIHRlc3QgZm9yIC9saWIvbGQuc28uMSBhbmQgZGlzYWJs ZSBzaGFyZWQgbGlicmFyaWVzIG9uCi0rICAjIHBvd2VycGMsIGJlY2F1c2UgTWtMaW51eCBvbmx5 IHN1cHBvcnRlZCBzaGFyZWQgbGlicmFyaWVzIHdpdGggdGhlCi0rICAjIEdOVSBkeW5hbWljIGxp bmtlci4gIFNpbmNlIHRoaXMgd2FzIGJyb2tlbiB3aXRoIGNyb3NzIGNvbXBpbGVycywKLSsgICMg bW9zdCBwb3dlcnBjLWxpbnV4IGJveGVzIHN1cHBvcnQgZHluYW1pYyBsaW5raW5nIHRoZXNlIGRh eXMgYW5kCi0rICAjIHBlb3BsZSBjYW4gYWx3YXlzIC0tZGlzYWJsZS1zaGFyZWQsIHRoZSB0ZXN0 IHdhcyByZW1vdmVkLCBhbmQgd2UKLSsgICMgYXNzdW1lIHRoZSBHTlUvTGludXggZHluYW1pYyBs aW5rZXIgaXMgaW4gdXNlLgotKyAgZHluYW1pY19saW5rZXI9J0dOVS9MaW51eCBsZC5zbycKLSsg IDs7Ci0rCi0rbmV0YnNkKikKLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgbmVlZF9saWJfcHJl Zml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAt IHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCi0rICAgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6 L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCi0rICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0Qg KGEub3V0KSBsZC5zbycKLSsgIGVsc2UKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgZHlu YW1pY19saW5rZXI9J05ldEJTRCBsZC5lbGZfc28nCi0rICBmaQotKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGhh cmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0rbmV3c29zNikKLSsgIHZlcnNpb25fdHlw ZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv ciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgOzsKLSsKLSsqbnRvKiB8 ICpxbngqKQotKyAgdmVyc2lvbl90eXBlPXFueAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBu ZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElC UkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRjb2Rl X2ludG9fbGlicz15ZXMKLSsgIGR5bmFtaWNfbGlua2VyPSdsZHFueC5zbycKLSsgIDs7Ci0rCi0r b3BlbmJzZCopCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0 aF9zcGVjPSIvdXNyL2xpYiIKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgIyBTb21lIG9sZGVy IHZlcnNpb25zIG9mIE9wZW5CU0QgKDMuMyBhdCBsZWFzdCkgKmRvKiBuZWVkIHZlcnNpb25lZCBs aWJzLgotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBvcGVuYnNkMy4zIHwgb3BlbmJzZDMuMy4q KQluZWVkX3ZlcnNpb249eWVzIDs7Ci0rICAgICopCQkJCW5lZWRfdmVyc2lvbj1ubyAgOzsKLSsg IGVzYWMKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICBm aW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJwotKyAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxG X18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9j cHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgot KyAgICAgIG9wZW5ic2QyLls4OV0gfCBvcGVuYnNkMi5bODldLiopCi0rCXNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD1ubwotKwk7OwotKyAgICAgICopCi0rCXNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD15ZXMKLSsJOzsKLSsgICAgICBlc2FjCi0rICBlbHNlCi0rICAgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGZpCi0rICA7OwotKwotK29zMiopCi0rICBsaWJuYW1l X3NwZWM9JyRuYW1lJwotKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCi0rICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9ICRsaWJuYW1l LmEnCi0rICBkeW5hbWljX2xpbmtlcj0nT1MvMiBsZC5leGUnCi0rICBzaGxpYnBhdGhfdmFyPUxJ QlBBVEgKLSsgIDs7Ci0rCi0rb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgdmVyc2lvbl90eXBl PW9zZgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFy ZWRfZXh0fScKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWM9Ii91c3Ivc2hsaWIgL3Vzci9jY3MvbGliIC91c3IvbGliL2NtcGxycy9j YyAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiAvdmFyL3NobGliIgotKyAgc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCi0rICA7OwotKwotK3Jkb3Mq KQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rCi0rc29sYXJpcyopCi0rICB2ZXJzaW9u X3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0r ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwot KyAgIyBsZGQgY29tcGxhaW5zIHVubGVzcyBsaWJyYXJpZXMgYXJlIGV4ZWN1dGFibGUKLSsgIHBv c3RpbnN0YWxsX2NtZHM9J2NobW9kICt4ICRsaWInCi0rICA7OwotKwotK3N1bm9zNCopCi0rICB2 ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXgnCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi91c3IvZXRjIiBsZGNvbmZpZyAk bGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRo ZW4KLSsgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBmaQotKyAgbmVlZF92ZXJzaW9uPXllcwot KyAgOzsKLSsKLStzeXN2NCB8IHN5c3Y0LjMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtz aGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgY2FzZSAk aG9zdF92ZW5kb3IgaW4KLSsgICAgc25pKQotKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD1ubwotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIHJ1bnBhdGhfdmFyPUxE X1JVTl9QQVRICi0rICAgICAgOzsKLSsgICAgc2llbWVucykKLSsgICAgICBuZWVkX2xpYl9wcmVm aXg9bm8KLSsgICAgICA7OwotKyAgICBtb3Rvcm9sYSkKLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgICAgICBuZWVkX3ZlcnNpb249bm8KLSsgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9bm8KLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy9saWIgL3Vzci9saWIg L3Vzci9jY3MvbGliJwotKyAgICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwotK3N5c3Y0Kk1QKikK LSsgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KLSsgICAgdmVyc2lvbl90eXBlPWxpbnV4Ci0r ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiR2ZXJzdWZmaXgg JGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAg IHNvbmFtZV9zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yJwotKyAgICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgZmkKLSsgIDs7Ci0rCi0rc3lzdjUqIHwgc2NvMy4y djUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCi0rICB2 ZXJzaW9uX3R5cGU9ZnJlZWJzZC1lbGYKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92 ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAot KyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19saWJz PXllcwotKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICBzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC91c3IvZ251L2xpYiAvdXNyL2Njcy9s aWIgL3Vzci9saWIgL2xpYicKLSsgIGVsc2UKLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj PScvdXNyL2Njcy9saWIgL3Vzci9saWInCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBz Y28zLjJ2NSopCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWMgL2xpYiIKLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHN5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xpYicKLSsgIDs7Ci0rCi0rdHBmKikKLSsgICMgVFBG IGlzIGEgY3Jvc3MtdGFyZ2V0IG9ubHkuICBQcmVmZXJyZWQgY3Jvc3MtaG9zdCA9IEdOVS9MaW51 eC4KLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVk X3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgaGFyZGNvZGVfaW50 b19saWJzPXllcwotKyAgOzsKLSsKLSt1dHM0KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIDs7Ci0r Ci0rKikKLSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotK2VzYWMKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZHluYW1pY19saW5rZXIiID4mNQotKyRhc19lY2hvICIk ZHluYW1pY19saW5rZXIiID4mNjsgfQotK3Rlc3QgIiRkeW5hbWljX2xpbmtlciIgPSBubyAmJiBj YW5fYnVpbGRfc2hhcmVkPW5vCi0rCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IlBBVEgg JHNobGlicGF0aF92YXIgJHJ1bnBhdGhfdmFyIgotK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVu Ci0rICB2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVs aW5rIEdDQ19FWEVDX1BSRUZJWCBDT01QSUxFUl9QQVRIIExJQlJBUllfUEFUSCIKLStmaQotKwot K2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0 aGVuCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX3NlYXJjaF9w YXRoX3NwZWMiCi0rZmkKLStpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9z cGVjK3NldH0iID0gc2V0OyB0aGVuCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJGx0 X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIgotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dy YW1zIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBw YXRocyBpbnRvIHByb2dyYW1zLi4uICIgPiY2OyB9Ci0raGFyZGNvZGVfYWN0aW9uX0NYWD0KLStp ZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFgiIHx8Ci0rICAgdGVzdCAt biAiJHJ1bnBhdGhfdmFyX0NYWCIgfHwKLSsgICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpY19D WFgiID0gIlh5ZXMiIDsgdGhlbgotKwotKyAgIyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4aXN0ZW50 IGRpcmVjdG9yaWVzLgotKyAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdF9DWFgiICE9IG5vICYm Ci0rICAgICAjIElmIHRoZSBvbmx5IG1lY2hhbmlzbSB0byBhdm9pZCBoYXJkY29kaW5nIGlzIHNo bGlicGF0aF92YXIsIHdlCi0rICAgICAjIGhhdmUgdG8gcmVsaW5rLCBvdGhlcndpc2Ugd2UgbWln aHQgbGluayB3aXRoIGFuIGluc3RhbGxlZCBsaWJyYXJ5Ci0rICAgICAjIHdoZW4gd2Ugc2hvdWxk IGJlIGxpbmtpbmcgd2l0aCBhIHlldC10by1iZS1pbnN0YWxsZWQgb25lCi0rICAgICAjIyB0ZXN0 ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCBDWFgpIiAhPSBubyAmJgotKyAg ICAgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0xfQ1hYIiAhPSBubzsgdGhlbgotKyAgICAjIExpbmtp bmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUgdGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0b3J5LgotKyAg ICBoYXJkY29kZV9hY3Rpb25fQ1hYPXJlbGluawotKyAgZWxzZQotKyAgICAjIFdlIGNhbiBsaW5r IHdpdGhvdXQgaGFyZGNvZGluZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlzdGluZyBkaXJz LgotKyAgICBoYXJkY29kZV9hY3Rpb25fQ1hYPWltbWVkaWF0ZQotKyAgZmkKLStlbHNlCi0rICAj IFdlIGNhbm5vdCBoYXJkY29kZSBhbnl0aGluZywgb3IgZWxzZSB3ZSBjYW4gb25seSBoYXJkY29k ZSBleGlzdGluZwotKyAgIyBkaXJlY3Rvcmllcy4KLSsgIGhhcmRjb2RlX2FjdGlvbl9DWFg9dW5z dXBwb3J0ZWQKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRoYXJk Y29kZV9hY3Rpb25fQ1hYIiA+JjUKLSskYXNfZWNobyAiJGhhcmRjb2RlX2FjdGlvbl9DWFgiID4m NjsgfQotKwotK2lmIHRlc3QgIiRoYXJkY29kZV9hY3Rpb25fQ1hYIiA9IHJlbGluayB8fAotKyAg IHRlc3QgIiRpbmhlcml0X3JwYXRoX0NYWCIgPSB5ZXM7IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxs YXRpb24gaXMgbm90IHN1cHBvcnRlZAotKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubwotK2VsaWYg dGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKLSsgICAgIHRlc3Qg IiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVuCi0rICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5v dCBuZWNlc3NhcnkKLSsgIGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKLStmaQotKwotKwot KwotKwotKwotKwotKwotKyAgZmkgIyB0ZXN0IC1uICIkY29tcGlsZXIiCi0rCi0rICBDQz0kbHRf c2F2ZV9DQwotKyAgTERDWFg9JExECi0rICBMRD0kbHRfc2F2ZV9MRAotKyAgR0NDPSRsdF9zYXZl X0dDQwotKyAgd2l0aF9nbnVfbGQ9JGx0X3NhdmVfd2l0aF9nbnVfbGQKLSsgIGx0X2N2X3BhdGhf TERDWFg9JGx0X2N2X3BhdGhfTEQKLSsgIGx0X2N2X3BhdGhfTEQ9JGx0X3NhdmVfcGF0aF9MRAot KyAgbHRfY3ZfcHJvZ19nbnVfbGRjeHg9JGx0X2N2X3Byb2dfZ251X2xkCi0rICBsdF9jdl9wcm9n X2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAotK2ZpICMgdGVzdCAiJF9sdF9jYXVnaHRfQ1hY X2Vycm9yIiAhPSB5ZXMKLSsKLSthY19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0r YWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1 JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1Mg JExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRh Y19jdl9jX2NvbXBpbGVyX2dudQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKyAgICAgICAgYWNfY29uZmlnX2NvbW1hbmRzPSIkYWNfY29uZmlnX2NvbW1hbmRzIGxpYnRv b2wiCi0rCi0rCi0rCi0rCi0rIyBPbmx5IGV4cGFuZCBvbmNlOgotKwotKwotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzLi4uICIgPiY2OyB9Ci0rTE5fUz0k YXNfbG5fcwotK2lmIHRlc3QgIiRMTl9TIiA9ICJsbiAtcyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9 Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8sIHVzaW5n ICRMTl9TIiA+JjUKLSskYXNfZWNobyAibm8sIHVzaW5nICRMTl9TIiA+JjY7IH0KLStmaQotKwot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyICR7TUFLRS1tYWtl fSBzZXRzIFwkKE1BS0UpIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICR7TUFL RS1tYWtlfSBzZXRzIFwkKE1BS0UpLi4uICIgPiY2OyB9Ci0rc2V0IHggJHtNQUtFLW1ha2V9Ci0r YWNfbWFrZT1gJGFzX2VjaG8gIiQyIiB8IHNlZCAncy8rL3AvZzsgcy9bXmEtekEtWjAtOV9dL18v ZydgCi0raWYgeyBhc192YXI9YWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0OyBldmFsICJ0 ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QubWFrZSA8PFxfQUNFT0YKLStT SEVMTCA9IC9iaW4vc2gKLSthbGw6Ci0rCUBlY2hvICdAQEAlJSU9JChNQUtFKT1AQEAlJSUnCi0r X0FDRU9GCi0rIyBHTlUgbWFrZSBzb21ldGltZXMgcHJpbnRzICJtYWtlWzFdOiBFbnRlcmluZy4u LiIsIHdoaWNoIHdvdWxkIGNvbmZ1c2UgdXMuCi0rY2FzZSBgJHtNQUtFLW1ha2V9IC1mIGNvbmZ0 ZXN0Lm1ha2UgMj4vZGV2L251bGxgIGluCi0rICAqQEBAJSUlPT8qPUBAQCUlJSopCi0rICAgIGV2 YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0PXllczs7Ci0rICAqKQotKyAgICBldmFs IGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldD1ubzs7Ci0rZXNhYwotK3JtIC1mIGNvbmZ0 ZXN0Lm1ha2UKLStmaQotK2lmIGV2YWwgdGVzdCBcJGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9 X3NldCA9IHllczsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog eWVzIiA+JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0KLSsgIFNFVF9NQUtFPQotK2Vsc2UKLSsg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAi bm8iID4mNjsgfQotKyAgU0VUX01BS0U9Ik1BS0U9JHtNQUtFLW1ha2V9IgotK2ZpCi0rCi0rCi0r IyBTZXQgZGVmYXVsdCBsYW5ndWFnZSB0byBDKysKLSthY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hY Q1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVl eHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4m NScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLSsjIENo ZWNrIGZvciBleGNlcHRpb25zIHN3aXRjaAotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1leGNl cHRpb25zIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9leGNlcHRpb25zK3NldH0iID0g c2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9leGNlcHRpb25zOwotK2NhdCA+PmNvbmZk ZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBTT0NJX0VYQ0VQVElPTlMgMQotK19BQ0VPRgotKwot K2ZpCi0rCi0rdGVzdCAieCRlbmFibGVfZXhjZXB0aW9ucyIgIT0geG5vICYmIGVuYWJsZV9leGNl cHRpb25zPXllcwotK3Rlc3QgIngkYXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiAhPSB4bm8gJiYgZW5h YmxlX2V4Y2VwdGlvbnM9eWVzCi0rCi0rIyBDaGVjayBmb3IgaW5mbyBwYWdlcwotKyMgQ2hlY2sg d2hldGhlciAtLWVuYWJsZS1pbmZvLWRvYyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVf aW5mb19kb2Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2luZm9fZG9j OwotK2ZpCi0rCi0rdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubyAmJiBlbmFibGVfaW5m b19kb2M9eWVzCi0rCi0rCi0rIyBDaGVjayBmb3IgaHRtbC1kb2Mgc3dpdGNoCi0rIyBDaGVjayB3 aGV0aGVyIC0tZW5hYmxlLWh0bWwtZG9jIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9o dG1sX2RvYytzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfaHRtbF9kb2M7 Ci0rZmkKLSsKLSt0ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgIT0geG5vICYmIGVuYWJsZV9odG1s X2RvYz15ZXMKLSsKLSsKLSsjIFByb3ZpZGUgLS13aXRoLWRvY2RpcgotKwotKyMgQ2hlY2sgd2hl dGhlciAtLXdpdGgtZG9jZGlyIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfZG9jZGlyK3Nl dH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFsPSR3aXRoX2RvY2RpcjsgRE9DX0RJUj0iJHdpdGh2 YWwiCi0rZWxzZQotKyAgRE9DX0RJUj0iIgotK2ZpCi0rCi0raWYgdGVzdCAieCRET0NfRElSIiAh PSB4OyB0aGVuCi0rICBkb2NkaXI9IiRET0NfRElSIgotK2Vsc2UKLSsgIGRvY2Rpcj0iJHtkYXRh ZGlyfS9kb2MvJFBBQ0tBR0UtJFZFUlNJT04iCi0rZmkKLSsKLSsKLSsKLSsjIENoZWNrIGZvciBi dXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFNPQ0kgaXRzZWxmKQotKyMgQ2hlY2sgd2hldGhlciAt LWVuYWJsZS1idXJyaWVkLWhlYWRlcnMgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2J1 cnJpZWRfaGVhZGVycytzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfYnVy cmllZF9oZWFkZXJzOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAgIGVu YWJsZV9idXJyaWVkX2hlYWRlcnM9bm8KLSsgICBlbHNlCi0rICAgICAgZW5hYmxlX2J1cnJpZWRf aGVhZGVycz15ZXMKLSsgICBmaQotK2Vsc2UKLSsgICBlbmFibGVfYnVycmllZF9oZWFkZXJzPW5v Ci0rZmkKLSsKLSsjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlvbgot K2VuYWJsZV9idXJyaWVkX2hlYWRlcnM9eWVzCi0rIGlmIHRlc3QgIngkZW5hYmxlX2J1cnJpZWRf aGVhZGVycyIgPSB4eWVzOyB0aGVuCi0rICBTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUU9Ci0rICBT T0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFPScjJwotK2Vsc2UKLSsgIFNPQ0lfSEVBREVSU19CVVJJ RURfVFJVRT0nIycKLSsgIFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0U9Ci0rZmkKLSsKLSsKLStp ZiB0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgIENQUEZM QUdTPSItRFNPQ0lfSEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgotK2ZpCi0rCi0rIyBDaGVjayBm b3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBNeVNRTCBjbGllbnQpCi0rIyBDaGVjayB3aGV0 aGVyIC0tZW5hYmxlLW15c3FsLWJ1cnJpZWQtaGVhZGVycyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAi JHtlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFi bGV2YWw9JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM7ICBpZiB0ZXN0ICIkZW5hYmxldmFs IiA9IG5vOyB0aGVuCi0rCWVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KLSsgICBlbHNl Ci0rCWVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCi0rICAgZmkKLStlbHNlCi0rICAg ZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz1ubwotK2ZpCi0rCi0rIyBUZW1wb3JhcnksIGZv ciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KLStlbmFibGVfbXlzcWxfYnVycmllZF9oZWFk ZXJzPXllcwotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHll czsgdGhlbgotKyAgU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9UUlVFPQotKyAgU09DSV9NWVNR TF9IRUFERVJTX0JVUklFRF9GQUxTRT0nIycKLStlbHNlCi0rICBTT0NJX01ZU1FMX0hFQURFUlNf QlVSSUVEX1RSVUU9JyMnCi0rICBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPQotK2Zp Ci0rCi0rCi0raWYgdGVzdCAieCRlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7 IHRoZW4KLSsgICBDUFBGTEFHUz0iLURTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEICRDUFBGTEFH UyIKLStmaQotKwotKyMgQ2hlY2sgZm9yIGJ1cnJpZWQgaGVhZGVyIGZpbGVzIChmb3IgUG9zdEdy ZVNRTCBjbGllbnQpCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXBvc3RncmVzcWwtYnVycmll ZC1oZWFkZXJzIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJp ZWRfaGVhZGVycytzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfcG9zdGdy ZXNxbF9idXJyaWVkX2hlYWRlcnM7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0r CWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz1ubwotKyAgIGVsc2UKLSsJZW5hYmxl X3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXllcwotKyAgIGZpCi0rZWxzZQotKyAgIGVuYWJs ZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz1ubwotK2ZpCi0rCi0rIyBUZW1wb3JhcnksIGZv ciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KLStlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVk X2hlYWRlcnM9eWVzCi0rIGlmIHRlc3QgIngkZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFk ZXJzIiA9IHh5ZXM7IHRoZW4KLSsgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9UUlVF PQotKyAgU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPScjJwotK2Vsc2UKLSsg IFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9UUlVFPScjJwotKyAgU09DSV9QT1NUR1JF U1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPQotK2ZpCi0rCi0rCi0raWYgdGVzdCAieCRlbmFibGVf cG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgIENQUEZMQUdTPSIt RFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCi0rZmkKLSsKLSsKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0rIyBCb29zdCAoU1RMIEV4dGVuc2lvbnM6IGh0dHA6Ly93d3cuYm9vc3Qub3JnKQotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsK LSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLWJvb3N0IHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIk e3dpdGhfYm9vc3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfYm9vc3Q7Ci0r ICAgICAgICAgICAgICAgIGlmIHRlc3QgIiR3aXRodmFsIiA9ICJubyI7IHRoZW4KLSsJCSAgICAg ICAgICAgIHdhbnRfYm9vc3Q9Im5vIgotKyAgICAgICAgICAgICAgICBlbGlmIHRlc3QgIiR3aXRo dmFsIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMi Ci0rICAgICAgICAgICAgICAgICAgICBhY19ib29zdF9wYXRoPSIiCi0rICAgICAgICAgICAgICAg IGVsc2UKLSsJCQkgICAgICAgIHdhbnRfYm9vc3Q9InllcyIKLSsgICAgICAgICAgICAJCWFjX2Jv b3N0X3BhdGg9IiR3aXRodmFsIgotKwkJICAgICAgICBmaQotKwotK2Vsc2UKLSsgIHdhbnRfYm9v c3Q9InllcyIKLStmaQotKwotKwotKyMgICAgQUNfQ0FOT05JQ0FMX0JVSUxECi0rQk9PU1RfTURX X1ZFUlNJT049IjEtMzMtMSIKLStCT09TVExJQl9NRFdfVkVSU0lPTj0iMV8zM18xIgotK0JPT1NU X3ZlcnNpb25faGVhZGVyPSJib29zdC92ZXJzaW9uLmhwcCIKLSsKLSsJaWYgdGVzdCAieCR3YW50 X2Jvb3N0IiA9ICJ4eWVzIjsgdGhlbgotKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxPTEuMzMKLSsJ CWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVuPWBleHByICRib29zdF9saWJfdmVyc2lvbl9y ZXEgOiAnXChbMC05XSpcLlswLTldKlwpJ2AKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpv cj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1woWzAtOV0qXCknYAotKwkJYm9vc3Rf bGliX3ZlcnNpb25fcmVxX21pbm9yPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnWzAt OV0qXC5cKFswLTldKlwpJ2AKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3I9YGV4 cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlswLTldKlwuXChbMC05XSpcKSdg Ci0rCQlpZiB0ZXN0ICJ4JGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3IiID0gIngiIDsg dGhlbgotKwkJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3I9IjAiCi0rICAgIAlmaQot KwkJV0FOVF9CT09TVF9WRVJTSU9OPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXFfbWFqb3Ig XCogMTAwMDAwIFwrICAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMCBcKyAkYm9v c3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcmAKLSsJCXsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgYm9vc3RsaWIgPj0gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGJvb3N0bGliID49ICRib29zdF9saWJfdmVyc2lv bl9yZXEuLi4gIiA+JjY7IH0KLSsJCXN1Y2NlZWRlZD1ubwotKwotKwkJCQkJCQkJCQlpZiB0ZXN0 IC1kIC9saWI2NAotKwkJdGhlbgotKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYjY0IgotKwkJZWxz ZQotKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYiIKLSsJCWZpCi0rCQlpZiB0ZXN0ICIkYWNfYm9v c3RfcGF0aCIgIT0gIiIKLSsJCXRoZW4KLSsJCQlpZiB0ZXN0ICIkQk9PU1RfTElCRElSVFlQRSIg PT0gImxpYjY0IgotKwkJCXRoZW4KLSsJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgvJEJP T1NUX0xJQkRJUlRZUEUiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJU WVBFIgotKwkJCQl0aGVuCi0rCSAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29z dF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQllbHNlCi0rICAgICAgICAgICAgICAgICAg ICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoL2xpYiIKLSsJCQkJZmkKLSsJCQllbHNlCi0r CQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgotKwkJCWZpCi0rCQkJQk9PU1Rf Q0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUiCi0rCQkJQk9PU1RfVkVSU0lPTj1gZ3Jl cCAiZGVmaW5lIEJPT1NUX0xJQl9WRVJTSU9OIiAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlLyR7Qk9P U1RfdmVyc2lvbl9oZWFkZXJ9IHwgY3V0IC1kJyAnIC1mMyB8IGN1dCAtZFwiIC1mMmAKLSsJCWVs c2UKLSsJCQlmb3IgYWNfYm9vc3RfcGF0aF90bXAgaW4gL3VzciAvdXNyL2xvY2FsIC9vcHQgL25h c3Rvb2xzL2Jvb3N0Ci0rCQkJZG8KLSsJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1w L2luY2x1ZGUvYm9vc3QiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jv b3N0IgotKwkJCQl0aGVuCi0rCQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoX3RtcC8k Qk9PU1RfTElCRElSVFlQRSIKLSsJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aF90 bXAvaW5jbHVkZSIKLSsJCQkJCUJPT1NUX1ZFUlNJT049YGdyZXAgImRlZmluZSBCT09TVF9MSUJf VkVSU0lPTiIgJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvJHtCT09TVF92ZXJzaW9uX2hlYWRl cn0gfCBjdXQgLWQnICcgLWYzIHwgY3V0IC1kXCIgLWYyYAotKwkJCQkJYnJlYWs7Ci0rCQkJCWZp Ci0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09T VF9NRFdfVkVSU0lPTi9ib29zdCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1 ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0IgotKwkJCQl0aGVuCi0rCQkJCQlCT09T VF9MSUJTPSItTCRhY19ib29zdF9wYXRoX3RtcC8kQk9PU1RfTElCRElSVFlQRSIKLSsJCQkJCUJP T1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURX X1ZFUlNJT04iCi0rCQkJCQlCT09TVF9WRVJTSU9OPWBncmVwICJkZWZpbmUgQk9PU1RfTElCX1ZF UlNJT04iICRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lP Ti8ke0JPT1NUX3ZlcnNpb25faGVhZGVyfSB8IGN1dCAtZCcgJyAtZjMgfCBjdXQgLWRcIiAtZjJg Ci0rCi0rCQkJCQkJCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9saWIiIFwKLSsJ CQkJCSYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9saWIiIFwKLSsJCQkJCSYmIHRlc3Qg ISAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYjY0IgotKwkJCQkJdGhlbgotKwkJCQkJCUJPT1NU X0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIKLSsJCQkJCQllY2hvICJIYWNrOiAkQk9P U1RfTElCUyIKLSsJCQkJCWZpCi0rCQkJCQlicmVhazsKLSsJCQkJZmkKLSsJCQlkb25lCi0rCQlm aQotKwotKwkJQ1BQRkxBR1NfU0FWRUQ9IiRDUFBGTEFHUyIKLSsJCUNQUEZMQUdTPSIkQ1BQRkxB R1MgJEJPT1NUX0NGTEFHUyIKLSsJCWV4cG9ydCBDUFBGTEFHUwotKwotKwkJTERGTEFHU19TQVZF RD0iJExERkxBR1MiCi0rCQlMREZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElCUyIKLSsJCWV4cG9y dCBMREZMQUdTCi0rCi0rICAgICAJY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyog Y29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KLSsKLSsjaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+Ci0rCi0raW50Ci0rbWFpbiAo KQotK3sKLSsKLSsjaWYgQk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCi0rLy8g RXZlcnl0aGluZyBpcyBva2F5Ci0rI2Vsc2UKLSsjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlzIHRv byBvbGQKLSsjZW5kaWYKLSsKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLSty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStj YXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEK LSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8 fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRl c3QuJGFjX29iamV4dDsgdGhlbgotKwotKyAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rCQkgc3VjY2Vl ZGVkPXllcwotKwkJIGZvdW5kX3N5c3RlbT15ZXMKLSsgICAgICAgICA6Ci0rCi0rZWxzZQotKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotKwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rCQkJCQkJ aWYgdGVzdCAieCRzdWNjZWVkZWQiICE9ICJ4eWVzIjsgdGhlbgotKwkJCV92ZXJzaW9uPTAKLSsJ CQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiI7IHRoZW4KLSsgICAgICAgICAgICAgICAg Qk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIKLSsJCQkJaWYg dGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoIjsgdGhl bgotKwkJCQkJZm9yIGkgaW4gYGxzIC1kICRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3QtKiAy Pi9kZXYvbnVsbGA7IGRvCi0rCQkJCQkJX3ZlcnNpb25fdG1wPWBlY2hvICRpIHwgc2VkICJzIyRh Y19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9vc3QtLy8nIHwgc2VkICdzL18v Li8nYAotKwkJCQkJCVZfQ0hFQ0s9YGV4cHIgJF92ZXJzaW9uX3RtcCBcPiAkX3ZlcnNpb25gCi0r CQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgotKwkJCQkJCQlfdmVyc2lvbj0k X3ZlcnNpb25fdG1wCi0rCQkJCQkJZmkKLSsJCQkJCQlWRVJTSU9OX1VOREVSU0NPUkU9YGVjaG8g JF92ZXJzaW9uIHwgc2VkICdzL1wuL18vJ2AKLSsJCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jv b3N0X3BhdGgvaW5jbHVkZS9ib29zdC0kVkVSU0lPTl9VTkRFUlNDT1JFIgotKwkJCQkJZG9uZQot KwkJCQlmaQotKwkJCWVsc2UKLSsJCQkJZm9yIGFjX2Jvb3N0X3BhdGggaW4gL3VzciAvdXNyL2xv Y2FsIC9vcHQgOyBkbwotKwkJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgiICYmIHRlc3Qg LXIgIiRhY19ib29zdF9wYXRoIjsgdGhlbgotKwkJCQkJCWZvciBpIGluIGBscyAtZCAkYWNfYm9v c3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxgOyBkbwotKwkJCQkJCQlfdmVyc2lv bl90bXA9YGVjaG8gJGkgfCBzZWQgInMjJGFjX2Jvb3N0X3BhdGgjIyIgfCBzZWQgJ3MvXC9pbmNs dWRlXC9ib29zdC0vLycgfCBzZWQgJ3MvXy8uLydgCi0rCQkJCQkJCVZfQ0hFQ0s9YGV4cHIgJF92 ZXJzaW9uX3RtcCBcPiAkX3ZlcnNpb25gCi0rCQkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9ICIx IiA7IHRoZW4KLSsJCQkJCQkJCV92ZXJzaW9uPSRfdmVyc2lvbl90bXAKLSsJCQkJCQkJCWJlc3Rf cGF0aD0kYWNfYm9vc3RfcGF0aAotKwkJCQkJCQlmaQotKwkJCQkJCWRvbmUKLSsJCQkJCWZpCi0r CQkJCWRvbmUKLSsKLSsJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVyc2lvbiB8IHNl ZCAncy9cLi9fLydgCi0rCQkJCUJPT1NUX0NGTEFHUz0iLUkkYmVzdF9wYXRoL2luY2x1ZGUvYm9v c3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKLSsJCQkJQk9PU1RfTElCUz0iLUwkYmVzdF9wYXRoLyRC T09TVF9MSUJESVJUWVBFIgotKwotKwkgICAgCQlpZiB0ZXN0ICJ4JEJPT1NUX1JPT1QiICE9ICJ4 IjsgdGhlbgotKwkJCQkJaWYgdGVzdCAtZCAiJEJPT1NUX1JPT1QiICYmIHRlc3QgLXIgIiRCT09T VF9ST09UIjsgdGhlbgotKwkJCQkJCXZlcnNpb25fZGlyPWBleHByIC8vJEJPT1NUX1JPT1QgOiAn LiovXCguKlwpJ2AKLSsJCQkJCQlzdGFnZV92ZXJzaW9uPWBlY2hvICR2ZXJzaW9uX2RpciB8IHNl ZCAncy9ib29zdF8vLycgfCBzZWQgJ3MvXy8uL2cnYAotKwkJCQkJCXN0YWdlX3ZlcnNpb25fc2hv cnRlbj1gZXhwciAkc3RhZ2VfdmVyc2lvbiA6ICdcKFswLTldKlwuWzAtOV0qXCknYAotKwkJCQkJ CVZfQ0hFQ0s9YGV4cHIgJHN0YWdlX3ZlcnNpb25fc2hvcnRlbiBcPlw9ICRfdmVyc2lvbmAKLSsJ CQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCi0rCQkJCQkJCXsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBXZSB3aWxsIHVzZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IGZyb20g JEJPT1NUX1JPT1QiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdlIHdpbGwgdXNlIGEgc3RhZ2Vk IGJvb3N0IGxpYnJhcnkgZnJvbSAkQk9PU1RfUk9PVCIgPiY2O30KLSsJCQkJCQkJQk9PU1RfQ0ZM QUdTPSItSSRCT09TVF9ST09UIgotKwkJCQkJCQlCT09TVF9MSUJTPSItTCRCT09TVF9ST09UL3N0 YWdlLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQkJCWZpCi0rCQkJCQlmaQotKwkgICAgCQlmaQot KwkJCWZpCi0rCi0rCQkJQ1BQRkxBR1M9IiRDUFBGTEFHUyAkQk9PU1RfQ0ZMQUdTIgotKwkJCWV4 cG9ydCBDUFBGTEFHUwotKwkJCUxERkxBR1M9IiRMREZMQUdTICRCT09TVF9MSUJTIgotKwkJCWV4 cG9ydCBMREZMQUdTCi0rCi0rICAgICAJCWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRl ZnMuaC4gICovCi0rCi0rI2luY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgotKwotK2ludAotK21h aW4gKCkKLSt7Ci0rCi0rI2lmIEJPT1NUX1ZFUlNJT04gPj0gJFdBTlRfQk9PU1RfVkVSU0lPTgot Ky8vIEV2ZXJ5dGhpbmcgaXMgb2theQotKyNlbHNlCi0rIyAgZXJyb3IgQm9vc3QgdmVyc2lvbiBp cyB0b28gb2xkCi0rI2VuZGlmCi0rCi0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9G Ci0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUi Ci0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3Qu ZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u ZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1 Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxh ZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsKLSsgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiB5ZXMgKCRfdmVyc2lvbikiID4mNQotKyRhc19lY2hvICJ5ZXMgKCRf dmVyc2lvbikiID4mNjsgfQotKwkJIHN1Y2NlZWRlZD15ZXMKLSsgICAgICAgICA6Ci0rCi0rZWxz ZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdz L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotKyAgICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vICgkX3ZlcnNpb24pIiA+JjUKLSskYXNfZWNobyAi bm8gKCRfdmVyc2lvbikiID4mNjsgfQotKyAgICAgICAgIDoKLSsKLStmaQotKwotK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJ ZmkKLSsKLSsJCWlmIHRlc3QgIiRzdWNjZWVkZWQiICE9ICJ5ZXMiIDsgdGhlbgotKwkJCWlmIHRl c3QgIiRfdmVyc2lvbiIgPSAiMCIgOyB0aGVuCi0rCQkJCXsgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGVycm9yOiBXZSBjb3VsZCBub3QgZGV0ZWN0IHRoZSBib29zdCBsaWJyYXJpZXMgKHZl cnNpb24gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVuIG9yIGhpZ2hlcikuIElmIHlvdSBo YXZlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgKHN0aWxsIG5vdCBpbnN0YWxsZWQpIHBsZWFzZSBz cGVjaWZ5IFwkQk9PU1RfUk9PVCBpbiB5b3VyIGVudmlyb25tZW50IGFuZCBkbyBub3QgZ2l2ZSBh IFBBVEggdG8gLS13aXRoLWJvb3N0IG9wdGlvbi4gIElmIHlvdSBhcmUgc3VyZSB5b3UgaGF2ZSBi b29zdCBpbnN0YWxsZWQsIHRoZW4gY2hlY2sgeW91ciB2ZXJzaW9uIG51bWJlciBsb29raW5nIGlu IDxib29zdC92ZXJzaW9uLmhwcD4uIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogV2Ug Y291bGQgbm90IGRldGVjdCB0aGUgYm9vc3QgbGlicmFyaWVzICh2ZXJzaW9uICRib29zdF9saWJf dmVyc2lvbl9yZXFfc2hvcnRlbiBvciBoaWdoZXIpLiBJZiB5b3UgaGF2ZSBhIHN0YWdlZCBib29z dCBsaWJyYXJ5IChzdGlsbCBub3QgaW5zdGFsbGVkKSBwbGVhc2Ugc3BlY2lmeSBcJEJPT1NUX1JP T1QgaW4geW91ciBlbnZpcm9ubWVudCBhbmQgZG8gbm90IGdpdmUgYSBQQVRIIHRvIC0td2l0aC1i b29zdCBvcHRpb24uICBJZiB5b3UgYXJlIHN1cmUgeW91IGhhdmUgYm9vc3QgaW5zdGFsbGVkLCB0 aGVuIGNoZWNrIHlvdXIgdmVyc2lvbiBudW1iZXIgbG9va2luZyBpbiA8Ym9vc3QvdmVyc2lvbi5o cHA+LiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsJCQllbHNlCi0rCQkJ CXsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAnWW91ciBib29zdCBsaWJyYXJp ZXMgc2VlbXMgdG8gb2xkICh2ZXJzaW9uICRfdmVyc2lvbikuICBXZSBuZWVkIGF0IGxlYXN0ICRi b29zdF9saWJfdmVyc2lvbl9zaG9ydGVuJyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 ICdZb3VyIGJvb3N0IGxpYnJhcmllcyBzZWVtcyB0byBvbGQgKHZlcnNpb24gJF92ZXJzaW9uKS4g IFdlIG5lZWQgYXQgbGVhc3QgJGJvb3N0X2xpYl92ZXJzaW9uX3Nob3J0ZW4nIiA+JjI7fQotKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKwkJCWZpCi0rCQllbHNlCi0rCi0rCi0rCi0rY2F0 ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfQk9PU1QgLyoqLwotK19BQ0VP RgotKwotKwotKyMKLSsjIEJvb3N0OjpGaWxlc3lzdGVtCi0rIwotKwkJCXsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6RmlsZXN5c3RlbSBsaWJy YXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUg Qm9vc3Q6OkZpbGVzeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiB0 ZXN0ICIke2F4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0rc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3Bw PSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRh Y19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM SUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJ CQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0r X0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8 Ym9vc3QvZmlsZXN5c3RlbS9wYXRoLmhwcD4KLStpbnQKLSttYWluICgpCi0rewotK3VzaW5nIG5h bWVzcGFjZSBib29zdDo6ZmlsZXN5c3RlbTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBhdGggbXlfcGF0aCggImZvby9iYXIvZGF0YS50eHQiICk7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30K LStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNf Y29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMK LStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0r JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5j b25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu ZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0 LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dl cnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRl c3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYXhfY3ZfYm9vc3RfZmlsZXN5c3Rl bT15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2X2Jvb3N0 X2ZpbGVzeXN0ZW09bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJIAkJICAgICAgICAJCQlhY19leHQ9Y3Bw Ci0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhG TEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBj b25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4k YWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9n bnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9j dl9ib29zdF9maWxlc3lzdGVtIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2ZpbGVzeXN0 ZW0iID4mNjsgfQotKwkJCWlmIHRlc3QgIiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA9ICJ5ZXMi OyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfQk9P U1RfRklMRVNZU1RFTSAvKiovCi0rX0FDRU9GCi0rCi0rCQkJCUJOPWJvb3N0X2ZpbGVzeXN0ZW0K LSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAk Qk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4t JENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1zICRCTi0kQ0MtbXQtJEJP 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 bCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIEJPT1NUX0ZJTEVTWVNURU1fTElCPSItbCRheF9saWIiICBs aW5rX2ZpbGVzeXN0ZW09InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX2ZpbGVzeXN0ZW09Im5v IgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfZmlsZXN5c3RlbSIg PSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5v dCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBu b3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KLSsJCQkJZmkKLSsJCQlmaQotKwotKyMK LSsjIEJvb3N0OjpTeXN0ZW0KLSsjCi0rICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpTeXN0ZW0gbGlicmFyeSBpcyBhdmFp bGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpTeXN0 ZW0gbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jv b3N0X3N5c3RlbStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rCi0rICAgICAgICAgICAgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAk Q1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRD WFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0r YWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rICAgICAgICAgICAg Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FD RU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9v c3Qvc3lzdGVtL2Vycm9yX2NvZGUuaHBwPgotK2ludAotK21haW4gKCkKLSt7Ci0rdXNpbmcgbmFt ZXNwYWNlIGJvb3N0OjpzeXN0ZW07Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlcnJvcl9jb2RlIG15RXJyb3JDb2RlKCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAt ZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNl ICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsg IGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAot KwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3Qu JGFjX29iamV4dDsgdGhlbgotKyAgYXhfY3ZfYm9vc3Rfc3lzdGVtPXllcwotK2Vsc2UKLSsgICRh c19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycg Y29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYXhfY3ZfYm9vc3Rfc3lzdGVtPW5vCi0rZmkKLSsK LStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRh Y19leHQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY19leHQ9Y3BwCi0r YWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25m dGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUK LSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9i b29zdF9zeXN0ZW0iID4mNQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rfc3lzdGVtIiA+JjY7IH0K LSsgICAgICAgICAgICBpZiB0ZXN0ICIkYXhfY3ZfYm9vc3Rfc3lzdGVtIiA9ICJ5ZXMiOyB0aGVu Ci0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfQk9PU1RfU1lT VEVNIC8qKi8KLStfQUNFT0YKLSsKLSsgICAgICAgICAgICAgICAgIEJOPWJvb3N0X3N5c3RlbQot KyAgICAgICAgICAgICAgICAgZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRC Ti0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0Mt cyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndyAkQk4tbWd3ICRCTi1t Z3ctbXQgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyA7IGRvCi0rICAgICAgICAgICAgICAgICAgICAg YXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9z aGAKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwk YXhfbGliIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIu Li4gIiA+JjY7IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFz X3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9s aWIgICRMSUJTIgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZz LmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2Nh dCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0r Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVy biAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFj X2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgot KyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190 cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRM SU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsg IChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVz dC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewot KwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVz dC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0 ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRh Y19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxz ZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdz L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlldmFsICIkYXNfYWNfTGliPW5vIgot K2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNv bmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3Nh dmVfTElCUwotK2ZpCi0rYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkg JGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSthc192 YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCIn YAotKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgotKyAgQk9PU1RfU1lTVEVN X0xJQj0iLWwkYXhfbGliIiAgbGlua19zeXN0ZW09InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5r X3N5c3RlbT0ibm8iCi0rZmkKLSsKLSsgICAgICAgICAgICAgICAgIGRvbmUKLSsgICAgICAgICAg ICAgICAgIGlmIHRlc3QgIngkbGlua19zeXN0ZW0iID0gInhubyI7IHRoZW4KLSsgICAgICAgICAg ICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdh aW5zdCAkYXhfbGliICEiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFn YWluc3QgJGF4X2xpYiAhIiA+JjY7fQotKyAgICAgICAgICAgICAgICAgZmkKLSsgICAgICAgICAg ICBmaQotKwotKyMKLSsjIEJvb3N0OjpQcm9ncmFtX09wdGlvbnMKLSsjCi0rCQkJeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpQcm9ncmFtX09w dGlvbnMgbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdo ZXRoZXIgdGhlIEJvb3N0OjpQcm9ncmFtX09wdGlvbnMgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4g IiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucytzZXR9IiA9 IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQ RkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhG TEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNf Y29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCQkJICAgICAgICAgICAg ICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0r X0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8 Ym9vc3QvcHJvZ3JhbV9vcHRpb25zLmhwcD4KLStpbnQKLSttYWluICgpCi0rewotK2Jvb3N0Ojpw cm9ncmFtX29wdGlvbnM6Om9wdGlvbnNfZGVzY3JpcHRpb24gZ2VuZXJpYygiR2VuZXJpYyBvcHRp b25zIik7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsg IDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0 Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAq XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9l Y2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVO TzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2 YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3Jl cCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0 LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0r CSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAg YXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKLSsKLSsJYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zPW5vCi0rZmkKLSsKLSty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19l eHQKLSsJCQkgICAgICAgICAgICAgICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBG TEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19j b21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnMi ID4mNQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zIiA+JjY7IH0KLSsJ CQlpZiB0ZXN0ICIkYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zIiA9IHllczsgdGhlbgotKwot K2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBIQVZFX0JPT1NUX1BST0dSQU1f T1BUSU9OUyAvKiovCi0rX0FDRU9GCi0rCi0rCQkJCUJOPWJvb3N0X3Byb2dyYW1fb3B0aW9ucwot KwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRC Ti0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0k Q0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OOyBkbwot KwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8 ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1h aW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAt bCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0 IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJT PSItbCRheF9saWIgICRMSUJTIgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj X2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMu aC4gICovCi0rCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsK LSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNf dHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0r ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i KSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9 JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAt ZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAt cyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAm JiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBj b25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgZXZhbCAiJGFzX2FjX0xpYj15 ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlldmFsICIkYXNfYWNf TGliPW5vIgotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAot KyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hl Y2tfbGliX3NhdmVfTElCUwotK2ZpCi0rYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xp Yid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7 IH0KLSthc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAi JGFzX3ZhbCInYAotKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgotKyAgQk9P U1RfUFJPR1JBTV9PUFRJT05TX0xJQj0iLWwkYXhfbGliIiAgbGlua19wcm9ncmFtX29wdGlvbnM9 InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8iCi0rZmkKLSsK LSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua19wcm9ncmFtX29wdGlvbnM9Im5vIiIg PSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5v dCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBu b3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KLSsJCQkJZmkKLSsJCQlmaQotKwotKyMK LSsjIEJvb3N0OjpUaHJlYWRzCi0rIwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6VGhyZWFkIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6VGhyZWFkIGxpYnJh cnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtheF9jdl9ib29zdF90aHJl YWQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19j b21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn Ci0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9 JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgQ1hYRkxBR1NfU0FWRT0kQ1hYRkxBR1MK LSsKLSsJCQkgaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFyaXMiIDsgdGhlbgotKyAgCQkJ CSBDWFhGTEFHUz0iLXB0aHJlYWRzICRDWFhGTEFHUyIKLSsJCQkgZWxpZiB0ZXN0ICJ4JGJ1aWxk X29zIiA9ICJ4bWluZzMyIiA7IHRoZW4KLSsJCQkJIENYWEZMQUdTPSItbXRocmVhZHMgJENYWEZM QUdTIgotKwkJCSBlbHNlCi0rCQkJCUNYWEZMQUdTPSItcHRocmVhZCAkQ1hYRkxBR1MiCi0rCQkJ IGZpCi0rCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmgu ICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+ PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2lu Y2x1ZGUgPGJvb3N0L3RocmVhZC90aHJlYWQuaHBwPgotK2ludAotK21haW4gKCkKLSt7Ci0rYm9v c3Q6OnRocmVhZF9ncm91cCB0aHJkczsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAwOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNv bmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigo JGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7 OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89 IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9l Y2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNf c3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgot KyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNf b2JqZXh0OyB0aGVuCi0rICBheF9jdl9ib29zdF90aHJlYWQ9eWVzCi0rZWxzZQotKyAgJGFzX2Vj aG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25m dGVzdC4kYWNfZXh0ID4mNQotKwotKwlheF9jdl9ib29zdF90aHJlYWQ9bm8KLStmaQotKwotK3Jt IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4 dAotKwkJCSBDWFhGTEFHUz0kQ1hYRkxBR1NfU0FWRQotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3Bw PSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRh Y19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM SUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsK LStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF90 aHJlYWQiID4mNQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfdGhyZWFkIiA+JjY7IH0KLSsJCQlp ZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3RocmVhZCIgPSAieHllcyI7IHRoZW4KLSsgICAgICAgICAg ICAgICBpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4c29sYXJpcyIgOyB0aGVuCi0rIAkJCQkgIEJP T1NUX0NGTEFHUz0iLXB0aHJlYWRzICRCT09TVF9DRkxBR1MiCi0rCQkJICAgZWxpZiB0ZXN0ICJ4 JGJ1aWxkX29zIiA9ICJ4bWluZzMyIiA7IHRoZW4KLSsgCQkJCSAgQk9PU1RfQ0ZMQUdTPSItbXRo cmVhZHMgJEJPT1NUX0NGTEFHUyIKLSsJCQkgICBlbHNlCi0rCQkJCSAgQk9PU1RfQ0ZMQUdTPSIt cHRocmVhZCAkQk9PU1RfQ0ZMQUdTIgotKwkJCSAgIGZpCi0rCi0rCi0rCi0rY2F0ID4+Y29uZmRl ZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfQk9PU1RfVEhSRUFEIC8qKi8KLStfQUNFT0YK LSsKLSsJCQkJQk49Ym9vc3RfdGhyZWFkCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi1tdCAk Qk4tJENDICRCTi0kQ0MtbXQgXAotKwkJCQkJCSAgIAkgICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMg XAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRC Ti0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkg ICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190 cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4g LWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9s aWIuLi4gIiA+JjY7IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7 JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRh eF9saWIgICRMSUJTIgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZk ZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAot K2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICov Ci0rCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJl dHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBp bgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBh Y190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21l OiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUK LSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsg IGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25m dGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYg ewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0r CSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVz dCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0r ZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2Vk ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlldmFsICIkYXNfYWNfTGliPW5v IgotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAg IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGli X3NhdmVfTElCUwotK2ZpCi0rYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0r CQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSth c192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3Zh bCInYAotKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgotKyAgQk9PU1RfVEhS RUFEX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKLStlbHNlCi0rICBs aW5rX3RocmVhZD0ibm8iCi0rZmkKLSsKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlu a190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJ ZmkKLSsKLSsjCi0rIyBCb29zdDo6SU9TdHJlYW1zCi0rIwotKwkJCXsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkg aXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29z dDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAi JHtheF9jdl9ib29zdF9pb3N0cmVhbXMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hY Q1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVl eHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4m NScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9G Ci0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3Qv aW9zdHJlYW1zL2ZpbHRlcmluZ19zdHJlYW0uaHBwPgotKwkJCQkJCQkJCQkJCSAjaW5jbHVkZSA8 Ym9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2UuaHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0r c3RkOjpzdHJpbmcgIGlucHV0ID0gIkhlbGxvIFdvcmxkISI7Ci0rCQkJCQkJCQkJIG5hbWVzcGFj ZSBpbyA9IGJvb3N0Ojppb3N0cmVhbXM7Ci0rCQkJCQkJCQkJIGlvOjpmaWx0ZXJpbmdfaXN0cmVh bSAgaW4oYm9vc3Q6Om1ha2VfaXRlcmF0b3JfcmFuZ2UoaW5wdXQpKTsKLSsJCQkJCQkJCQkgcmV0 dXJuIDA7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRl c3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNf dHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0r ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i KSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0 dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBy bSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpl eHQ7IHRoZW4KLSsgIGF4X2N2X2Jvb3N0X2lvc3RyZWFtcz15ZXMKLStlbHNlCi0rICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2X2Jvb3N0X2lvc3RyZWFtcz1ubwotK2ZpCi0rCi0r cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNf ZXh0Ci0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2Nv bXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScK LSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdT ICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0k YWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X2lvc3RyZWFtcyIgPiY1Ci0rJGFzX2VjaG8gIiRh eF9jdl9ib29zdF9pb3N0cmVhbXMiID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3Rf aW9zdHJlYW1zIiA9ICJ4eWVzIjsgdGhlbgotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9G Ci0rI2RlZmluZSBIQVZFX0JPT1NUX0lPU1RSRUFNUyAvKiovCi0rX0FDRU9GCi0rCi0rCQkJCUJO PWJvb3N0X2lvc3RyZWFtcwotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0Mt bXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ct bXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3 LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJ Ql9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9s aWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRh c19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4K LSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3Nh dmVfTElCUz0kTElCUwotK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsKLStpbnQKLSttYWluICgpCi0rewotK3Jl dHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNf bGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVz dC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0r ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9m bGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMg Y29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVz IHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0r ICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 Ci0rCi0rCWV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZ TQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Rf aXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRh Y19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLSthY19yZXM9YGV2YWwg J2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKwkgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFz X2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19M aWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192YWwiID0g eCIieWVzOyB0aGVuCi0rICBCT09TVF9JT1NUUkVBTVNfTElCPSItbCRheF9saWIiICBsaW5rX3Ro cmVhZD0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxpbmtfdGhyZWFkPSJubyIKLStmaQotKwotKyAg CQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJ CQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4 X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRh eF9saWIgISIgPiY2O30KLSsJCQkJZmkKLSsJCQlmaQotKwotKyMKLSsjIEJvb3N0OjpTZXJpYWxp emF0aW9uCi0rIwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0 aGVyIHRoZSBCb29zdDo6U2VyaWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGli cmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3Nl cmlhbGl6YXRpb24rc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFH UycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdT ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21w aWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8ZnN0cmVhbT4KLSsJCQkJCQkJ CQkJCQkgI2luY2x1ZGUgPGJvb3N0L2FyY2hpdmUvdGV4dF9vYXJjaGl2ZS5ocHA+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNpbmNsdWRlIDxib29z dC9hcmNoaXZlL3RleHRfaWFyY2hpdmUuaHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rc3Rk OjpvZnN0cmVhbSBvZnMoImZpbGVuYW1lIik7Ci0rCQkJCQkJCQkJYm9vc3Q6OmFyY2hpdmU6OnRl eHRfb2FyY2hpdmUgb2Eob2ZzKTsKLSsJCQkJCQkJCQkgcmV0dXJuIDA7Ci0rCi0rICA7Ci0rICBy ZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsg KGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNf Y29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsg IGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAt eiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsg ICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4X2N2X2Jv b3N0X3NlcmlhbGl6YXRpb249eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQot KwotKwlheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNf ZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAt YyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRD WFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29u ZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29t cGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29z dF9zZXJpYWxpemF0aW9uIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3Nlcmlh bGl6YXRpb24iID0gInh5ZXMiOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YK LSsjZGVmaW5lIEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTiAvKiovCi0rX0FDRU9GCi0rCi0rCQkJ CUJOPWJvb3N0X3NlcmlhbGl6YXRpb24KLSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAk Qk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1z IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAk Qk4tbWd3LW10IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMg JEJOLW1ndy1zICBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0k Qk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAi YWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiB7IGFz X3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNr X2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCA+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2Nh dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50Ci0rbWFpbiAoKQot K3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLSty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3Ry eT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStl c2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+ Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0 LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVz dC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93 ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0 ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5n IiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsg dGhlbgotKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19t ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNf ZXh0ID4mNQotKwotKwlldmFsICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0 ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25m dGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0rYWNfcmVz PWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AK LSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4m NQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSthc192YWw9YGV2YWwgJ2FzX3ZhbD0keyck YXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKyAgIGlmIHRlc3QgIngkYXNf dmFsIiA9IHgiInllczsgdGhlbgotKyAgQk9PU1RfU0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xp YiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCi0rZWxzZQotKyAgbGlua190aHJlYWQ9Im5vIgot K2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlCTj1ib29zdF93c2VyaWFsaXphdGlvbgotKwkJCQlm b3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0Mt cyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGli JEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJ CSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFz X3RyX3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBp biAtbCRheF9saWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4 X2xpYi4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJc JHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1s JGF4X2xpYiAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29u ZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0 Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KLSsKLSsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBtYWluICgpOwotKyAgOwotKyAg cmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnki IGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwot KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNv bmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsK LSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0 ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBldmFsICIkYXNfYWNfTGliPXllcyIK LStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWV2YWwgIiRhc19hY19MaWI9 bm8iCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAg ICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19s aWJfc2F2ZV9MSUJTCi0rZmkKLSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30K LSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQot K2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNf dmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCi0rICBCT09TVF9X U0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCi0r ZWxzZQotKyAgbGlua190aHJlYWQ9Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0 ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQl7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQotKwkJ CQlmaQotKwkJCWZpCi0rCi0rIwotKyMgQm9vc3Q6OlNpZ25hbHMKLSsjCi0rCQkJeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpTaWduYWxzIGxp YnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRo ZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7YXhfY3ZfYm9vc3Rfc2lnbmFscytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRD WFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFH UyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMg PiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwkJCSBj YXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNF T0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxib29z dC9zaWduYWwuaHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rYm9vc3Q6OnNpZ25hbDx2b2lk ICgpPiBzaWc7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAw OwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRh Y19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIg aW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/ Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYg Y29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0 aGVuCi0rICBheF9jdl9ib29zdF9zaWduYWxzPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKLSsKLSsJYXhfY3ZfYm9vc3Rfc2lnbmFscz1ubwotK2ZpCi0rCi0rcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCQkJ IGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRD WFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5r PSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4 X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGF4X2N2X2Jvb3N0X3NpZ25hbHMiID4mNQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rf c2lnbmFscyIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9zaWduYWxzIiA9ICJ4 eWVzIjsgdGhlbgotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBIQVZF X0JPT1NUX1NJR05BTFMgLyoqLwotK19BQ0VPRgotKwotKwkJCQlCTj1ib29zdF9zaWduYWxzCi0r CQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJO LSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRD QyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8K LSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIg fCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBt YWluIGluIC1sJGF4X2xpYiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4g LWwkYXhfbGliLi4uICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVz dCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElC Uz0iLWwkYXhfbGliICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsv KiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh Y19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZz LmguICAqLwotKwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7Ci0rICA7 Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFj X3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owot KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVz PSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0g LWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMp OyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEg LXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQg JiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3gg Y29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGV2YWwgIiRhc19hY19MaWI9 eWVzIgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m NQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJZXZhbCAiJGFzX2Fj X0xpYj1ubyIKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwK LSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2No ZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19M aWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2 OyB9Ci0rYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8g IiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIEJP T1NUX1NJR05BTFNfTElCPSItbCRheF9saWIiICBsaW5rX3NpZ25hbHM9InllcyIgYnJlYWsKLStl bHNlCi0rICBsaW5rX3NpZ25hbHM9Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0 ZXN0ICJ4JGxpbmtfc2lnbmFscyIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KLSsJ CQkJZmkKLSsJCQlmaQotKwotKyMKLSsjIEJvb3N0OjpEYXRlX1RpbWUKLSsjCi0rCQkJeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpEYXRlX1Rp bWUgbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRo ZXIgdGhlIEJvb3N0OjpEYXRlX1RpbWUgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0K LStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X2RhdGVfdGltZStzZXR9IiA9IHNldDsgdGhlbgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rCQkJIGFjX2V4dD1jcHAKLSth Y19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdT ICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQot KwotKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAg Ki8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNs dWRlIDxib29zdC9kYXRlX3RpbWUvZ3JlZ29yaWFuL2dyZWdvcmlhbl90eXBlcy5ocHA+Ci0rCi0r aW50Ci0rbWFpbiAoKQotK3sKLSt1c2luZyBuYW1lc3BhY2UgYm9vc3Q6OmdyZWdvcmlhbjsgZGF0 ZSBkKDIwMDIsSmFuLDEwKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIDA7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29u ZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgk YWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7 Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0i XCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2Vj aG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19z dGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0r ICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRl c3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19v YmpleHQ7IHRoZW4KLSsgIGF4X2N2X2Jvb3N0X2RhdGVfdGltZT15ZXMKLStlbHNlCi0rICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2X2Jvb3N0X2RhdGVfdGltZT1ubwotK2ZpCi0r Ci0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k YWNfZXh0Ci0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2Fj X2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4m NScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZM QUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2du dT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgPiY1Ci0rJGFzX2VjaG8g IiRheF9jdl9ib29zdF9kYXRlX3RpbWUiID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9v c3RfZGF0ZV90aW1lIiA9ICJ4eWVzIjsgdGhlbgotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FD RU9GCi0rI2RlZmluZSBIQVZFX0JPT1NUX0RBVEVfVElNRSAvKiovCi0rX0FDRU9GCi0rCi0rCQkJ CUJOPWJvb3N0X2RhdGVfdGltZQotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0k Q0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1t Z3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4t bWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09T VExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19j dl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFy PSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGli X3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsKLStpbnQKLSttYWluICgpCi0rewot K3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIk YWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMK LStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0r JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25m dGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJv cl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3Qg LXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0g eWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVu Ci0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBm YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg PiY1Ci0rCi0rCWV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3Qu ZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0 LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLSthY19yZXM9YGV2 YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKwkg ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0r JGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19h Y19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192YWwi ID0geCIieWVzOyB0aGVuCi0rICBCT09TVF9EQVRFX1RJTUVfTElCPSItbCRheF9saWIiICBsaW5r X2RhdGVfdGltZT0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxpbmtfZGF0ZV90aW1lPSJubyIKLStm aQotKwotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX2RhdGVfdGltZSI9Im5vIiA9 ICJ4bm8iOyB0aGVuCi0rCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90 IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5v dCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQotKwkJCQlmaQotKwkJCWZpCi0rCi0rIwot KyMgQm9vc3Q6OlJlZ2V4Ci0rIwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UmVnZXggbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlz IGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfcmVnZXgrc2V0 fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwot KwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxl PSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNf bGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2 X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G Ci0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz dC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvcmVnZXguaHBwPgotKwotK2ludAotK21haW4g KCkKLSt7Ci0rYm9vc3Q6OnJlZ2V4IHIoKTsgcmV0dXJuIDA7Ci0rICA7Ci0rICByZXR1cm4gMDsK LSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0i JGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStl c2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIp IDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0 ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25m dGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4 eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4X2N2X2Jvb3N0X3JlZ2V4 PXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m NQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYXhfY3ZfYm9vc3Rf cmVnZXg9bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQ ICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29u ZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQg JENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScK LSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9yZWdleCIgPiY1 Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9yZWdleCIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAieCRh eF9jdl9ib29zdF9yZWdleCIgPSAieHllcyI7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8 XF9BQ0VPRgotKyNkZWZpbmUgSEFWRV9CT09TVF9SRUdFWCAvKiovCi0rX0FDRU9GCi0rCi0rCQkJ CUJOPWJvb3N0X3JlZ2V4Ci0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1t dCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1t dCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ct cyAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElC X01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xp Yl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFz X2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2 ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwkYXhfbGliICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0 dXJuIG1haW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19s aW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0 LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNv bmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4m NQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsg IChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2Zs YWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBj b25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMg fHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsg IGV2YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxl ZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK LSsKLSsJZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lN Ci0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9p cGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFj X2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK2FjX3Jlcz1gZXZhbCAn YXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNf ZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xp Yid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4 IiJ5ZXM7IHRoZW4KLSsgIEJPT1NUX1JFR0VYX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9 InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX3RocmVhZD0ibm8iCi0rZmkKLSsKLSsgIAkJCQlk b25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCXsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIg ISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGli ICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6QVNJTzogaXQgbmVl ZHMgQm9vc3QuU3lzdGVtLCBCb29zdC5SZWdleCwgQm9vc3QuVGhyZWFkIGFuZAotKyMgQm9vc3Qu RGF0ZVRpbWUsIGJ1dCBkb2VzIG5vdCBwcm9kdWNlIGFueSAob3RoZXIpIGxpYnJhcnkuCi0rIwot KwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29z dDo6QXNpbyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg d2hldGhlciB0aGUgQm9vc3Q6OkFzaW8gbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0K LStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X2FzaW8rc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3Bw PSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRh Y19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM SUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJ CQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0r X0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8 Ym9vc3QvYXNpby5ocHA+Ci0raW50Ci0rbWFpbiAoKQotK3sKLStib29zdDo6YXNpbzo6aW9fc2Vy dmljZSBpbzsKLSsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vc3Q6OnN5c3Rl bTo6ZXJyb3JfY29kZSB0aW1lcl9yZXN1bHQ7Ci0rCSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJvb3N0Ojphc2lvOjpkZWFkbGluZV90aW1lciB0KGlvKTsKLSsJICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdC5jYW5jZWwoKTsKLSsJICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW8ucnVuX29uZSgpOwotKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gMDsKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAt ZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNl ICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsg IGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAot KwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3Qu JGFjX29iamV4dDsgdGhlbgotKyAgYXhfY3ZfYm9vc3RfYXNpbz15ZXMKLStlbHNlCi0rICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2X2Jvb3N0X2FzaW89bm8KLStmaQotKwotK3Jt IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4 dAotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21w aWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0r YWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFj X2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9hc2lvIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jv b3N0X2FzaW8iID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfYXNpbyIgPSAieHll cyI7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgSEFWRV9C T09TVF9BU0lPIC8qKi8KLStfQUNFT0YKLSsKLSsJCQkgICBCT09TVF9BU0lPX0xJQj0iJHtCT09T VF9TWVNURU1fTElCfSAke0JPT1NUX1RIUkVBRF9MSUJ9IgotKwkJCSAgIEJPT1NUX0FTSU9fTElC PSIke0JPT1NUX0FTSU9fTElCfSAke0JPT1NUX0RBVEVfVElNRV9MSUJ9IgotKwkJCSAgIEJPT1NU X0FTSU9fTElCPSIke0JPT1NUX0FTSU9fTElCfSAke0JPT1NUX1JFR0VYX0xJQn0iCi0rCQkJICAg Qk9PU1RfQVNJT19MSUI9IiR7Qk9PU1RfQVNJT19MSUJ9ICR7Qk9PU1RfU0VSSUFMSVpBVElPTl9M SUJ9IgotKwkJCWZpCi0rCi0rIwotKyMgU3VwcG9ydCBmb3IgUHl0aG9uIGFuZCBNUEkgKE1QSUNI MiwgQm9vc3Q6Ok1QSSwgQm9vc3Q6OlB5dGhvbiwKLSsjIEJvb3N0OjpTZXJpYWxpemF0aW9uLCBC b29zdDo6TVBJX1B5dGhvbikKLSsjIE5vdGU6IG9uIHNvbWUgZGlzdHJpYnV0aW9ucyAoZS5nLiwg RGViaWFuKSwgQm9vc3QuTVBJIHVzZXMgT3Blbk1QSSByYXRoZXIKLSsjICAgICAgIHRoYW4gTVBJ Q0gyCi0rIwotKwkJCUNQUEZMQUdTX09SSUc9IiR7Q1BQRkxBR1N9IgotKwkJCUNQUEZMQUdTPSIk e0NQUEZMQUdTfSAke1BZVEhPTl9DRkxBR1N9ICR7TVBJR0VOX0NGTEFHU30iCi0rIwkJCUNQUEZM QUdTPSIke0NQUEZMQUdTfSAke1BZVEhPTl9DRkxBR1N9ICR7TVBJQ0gyX0NGTEFHU30iCi0rIwkJ CUNQUEZMQUdTPSIke0NQUEZMQUdTfSAke1BZVEhPTl9DRkxBR1N9ICR7T1BFTk1QSV9DRkxBR1N9 IgotKwkJCUxERkxBR1NfT1JJRz0iJHtMREZMQUdTfSIKLSsJCQlMREZMQUdTPSIke0xERkxBR1N9 ICR7UFlUSE9OX0xJQlN9ICR7UFlUSE9OX0FERF9MSUJTfSAke01QSUdFTl9MSUJTfSIKLSsjCQkJ TERGTEFHUz0iJHtMREZMQUdTfSAke1BZVEhPTl9MSUJTfSAke1BZVEhPTl9BRERfTElCU30gJHtN UElDSDJfTElCU30iCi0rIwkJCUxERkxBR1M9IiR7TERGTEFHU30gJHtQWVRIT05fTElCU30gJHtQ WVRIT05fQUREX0xJQlN9ICR7T1BFTk1QSV9MSUJTfSIKLSsKLSsjCi0rIyBCb29zdDo6UHl0aG9u Ci0rIwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRo ZSBCb29zdDo6UHl0aG9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UHl0aG9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4u ICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtheF9jdl9ib29zdF9weXRob24rc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCWFjX2V4dD1j cHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENY WEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1v IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVy X2dudQotKwotKwotKwkJICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNv bmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4g ICovCi0rI2luY2x1ZGUgPGJvb3N0L3B5dGhvbi5ocHA+Ci0rCQkJY2hhciBjb25zdCogZ3JlZXQo KSB7IHJldHVybiAiaGVsbG8iOyB9Ci0rCQkJQk9PU1RfUFlUSE9OX01PRFVMRShoZWxsb19leHQp IHsgYm9vc3Q6OnB5dGhvbjo6ZGVmKCJncmVldCIsIGdyZWV0KTt9Ci0rCi0raW50Ci0rbWFpbiAo KQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVz dC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190 cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1 cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJt IC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVz KTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4 dDsgdGhlbgotKyAgYXhfY3ZfYm9vc3RfcHl0aG9uPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKLSsKLSsJYXhfY3ZfYm9vc3RfcHl0aG9uPW5vCi0rZmkKLSsKLStybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJ CQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0n JENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xp bms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxB R1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9j eHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYXhfY3ZfYm9vc3RfcHl0aG9uIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0 X3B5dGhvbiIgPiY2OyB9Ci0rCi0rCQkJQk9PU1RfUFlUSE9OX0xJQj0iLWxib29zdF9weXRob24g JHtQWVRIT05fTElCU30gJHtQWVRIT05fQUREX0xJQlN9IgotKwotKwotKyMKLSsjIEJvb3N0OjpN UEkKLSsjCi0rCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIg dGhlIEJvb3N0OjpNcGkgbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpNcGkgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+ JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X21waStzZXR9IiA9IHNldDsgdGhlbgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rCQkJIGFjX2V4dD1jcHAKLSth Y19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdT ICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQot KwotKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAg Ki8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNs dWRlIDxib29zdC9tcGkuaHBwPgotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rCSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0r fQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRh Y19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNh YwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK LSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAy PmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRl c3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhf d2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYg dGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBheF9jdl9ib29zdF9tcGk9eWVz Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0r c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlheF9jdl9ib29zdF9tcGk9 bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBG TEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19j b21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9tcGkiID4mNQotKyRhc19l Y2hvICIkYXhfY3ZfYm9vc3RfbXBpIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0 X21waSIgPSAieHllcyI7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNk ZWZpbmUgSEFWRV9CT09TVF9NUEkgLyoqLwotK19BQ0VPRgotKwotKwkJCQlCTj1ib29zdF9tcGkK LSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAk Qk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4t JENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1zICRCTi0kQ0MtbXQtJEJP T1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsKLSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8g ImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9Ci0raWYgeyBh c192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0Ijsg fTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVj a19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwkYXhfbGliICAkTElCUyIKLStjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotKwotK2ludAotK21haW4gKCkK LSt7Ci0rcmV0dXJuIG1haW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0r cm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190 cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0r ZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAy PmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRl c3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhf d2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYg dGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGlu ZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07 IHRoZW4KLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKLSsKLSsJZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStmaQotKwotK3JtIC1yZiBjb25m dGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29u ZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK2FjX3Jl cz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidg Ci0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+ JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rYXNfdmFsPWBldmFsICdhc192YWw9JHsn JGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4JGFz X3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIEJPT1NUX01QSV9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtf bXBpPSJ5ZXMiIGJyZWFrCi0rZWxzZQotKyAgbGlua19tcGk9Im5vIgotK2ZpCi0rCi0rICAJCQkJ ZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfbXBpIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQl7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEi ID4mNQotKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAh IiA+JjY7fQotKwkJCQllbHNlCi0rCQkJCQlCT09TVF9NUElfTElCPSIke0JPT1NUX01QSV9MSUJ9 ICR7Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUJ9ICR7TVBJR0VOX0xJQlN9IgotKwkJCQlmaQotKwkJ CWZpCi0rCi0rIwotKyMgQm9vc3Q6Ok1QSV9QeXRob24KLSsjCi0rCQkJeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpNcGlfUHl0aG9uIGxpYnJh cnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBC b29zdDo6TXBpX1B5dGhvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7YXhfY3ZfYm9vc3RfbXBpX3B5dGhvbitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9 JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBG TEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ QlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwkJ CSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStf QUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxi b29zdC9tcGkvcHl0aG9uL3NlcmlhbGl6ZS5ocHA+Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsK LSsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0rCi0rICA7Ci0r ICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lm IHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIk YWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYg J14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEK LSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVz dCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIK LSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4X2N2 X2Jvb3N0X21waV9weXRob249eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQot KwotKwlheF9jdl9ib29zdF9tcGlfcHl0aG9uPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNfZXh0 PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAk Q1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFgg LW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRl c3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGls ZXJfZ251Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YXhfY3ZfYm9vc3RfbXBpX3B5dGhvbiIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9tcGlf cHl0aG9uIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X21waV9weXRob24iID0g Inh5ZXMiOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhB VkVfQk9PU1RfTVBJX1BZVEhPTiAvKiovCi0rX0FDRU9GCi0rCi0rCQkJCUJOPWJvb3N0X21waV9w eXRob24KLSsjCQkJCUJOPWJvb3N0X21waV9weXRob24tcHkyNQotKwkJCQlmb3IgYXhfbGliIGlu ICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBs aWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0k Q0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04g OyBkbwotKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19t YWluIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFp biBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFs ICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMK LStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRl c3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29u ZmRlZnMuaC4gICovCi0rCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsK LSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAi KCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19z dGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0r ICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRl c3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rl c3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgZXZhbCAiJGFzX2Fj X0xpYj15ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz OiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlldmFsICIk YXNfYWNfTGliPW5vIgotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3Jl IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qu b28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0k YWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0rYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFz X2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVz IiA+JjY7IH0KLSthc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNf ZWNobyAiJGFzX3ZhbCInYAotKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgot KyAgQk9PU1RfTVBJX1BZVEhPTl9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfbXBpX3B5dGhvbj0ieWVz IiBicmVhawotK2Vsc2UKLSsgIGxpbmtfbXBpX3B5dGhvbj0ibm8iCi0rZmkKLSsKLSsgIAkJCQlk b25lCi0rCQkJCWlmIHRlc3QgIngkbGlua19tcGlfcHl0aG9uIiA9ICJ4bm8iOyB0aGVuCi0rCQkJ CQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhf bGliICEiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4 X2xpYiAhIiA+JjY7fQotKwkJCQllbHNlCi0rCQkJCQlCT09TVF9NUElfUFlUSE9OX0xJQj0iJHtC T09TVF9NUElfUFlUSE9OX0xJQn0gJHtCT09TVF9TRVJJQUxJWkFUSU9OX0xJQn0iCi0rCQkJCQlC T09TVF9NUElfUFlUSE9OX0xJQj0iJHtCT09TVF9NUElfUFlUSE9OX0xJQn0gJHtCT09TVF9QWVRI T05fTElCfSIKLSsJCQkJCUJPT1NUX01QSV9QWVRIT05fTElCPSIke0JPT1NUX01QSV9QWVRIT05f TElCfSAke0JPT1NUX01QSV9MSUJ9IgotKwkJCQkJQk9PU1RfTVBJX1BZVEhPTl9MSUI9IiR7Qk9P U1RfTVBJX1BZVEhPTl9MSUJ9ICR7TVBJR0VOX0xJQlN9IgotKwkJCQlmaQotKwkJCWZpCi0rCi0r IwotKyMgRW5kIG9mIHNlY3Rpb24gb24gc3VwcG9ydCBmb3IgTVBJCi0rIwotKwkJCUNQUEZMQUdT PSIke0NQUEZMQUdTX09SSUd9IgotKwkJCUxERkxBR1M9IiR7TERGTEFHU19PUklHfSIKLSsKLSsj Ci0rIyBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsKLSsjCi0rCQkJeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yayBs aWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0 aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2 OyB9Ci0raWYgdGVzdCAiJHtheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrK3NldH0iID0g c2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkg YWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENY WCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9 JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhf Y29tcGlsZXJfZ251Ci0rCi0rCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj X2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMu aC4gICovCi0rI2luY2x1ZGUgPGJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcD4KLStpbnQKLSttYWlu ICgpCi0rewotK3VzaW5nIGJvb3N0Ojp1bml0X3Rlc3Q6OnRlc3Rfc3VpdGU7Ci0rCQkJCQkgICAg ICAgICAgICAgICAgIHRlc3Rfc3VpdGUqIHRlc3Q9IEJPT1NUX1RFU1RfU1VJVEUoICJVbml0IHRl c3QgZXhhbXBsZSAxIiApOyByZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNF T0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGls ZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVz dC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0r ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9m bGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMg Y29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1l d29yaz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2X2Jv b3N0X3VuaXRfdGVzdF9mcmFtZXdvcms9bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3Bw Ci0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhG TEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBj b25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4k YWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9n bnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9j dl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0 X3VuaXRfdGVzdF9mcmFtZXdvcmsiID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3Rf dW5pdF90ZXN0X2ZyYW1ld29yayIgPSAieHllcyI7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5o IDw8XF9BQ0VPRgotKyNkZWZpbmUgSEFWRV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLIC8qKi8K LStfQUNFT0YKLSsKLSsJCQlCTj1ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrCi0rICAgIAkJc2F2 ZWRfbGRmbGFncz0iJHtMREZMQUdTfSIKLSsJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRC Ti0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10 ICRCTi1tZ3ctbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJO LSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKyAgICAgICAgICAgICAgICBMREZM QUdTPSIke0xERkxBR1N9IC1sJGF4X2xpYiIKLSsgICAgCQkJeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIHRoZSBuYW1lIG9mIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsg bGlicmFyeSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgdGhlIG5hbWUgb2YgdGhlIEJvb3N0 OjpVbml0VGVzdEZyYW1ld29yayBsaWJyYXJ5Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtheF9j dl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0n JENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNf ZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rICAg ICAgICAgICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMu aC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsj aW5jbHVkZSA8Ym9vc3QvdGVzdC91bml0X3Rlc3QuaHBwPgotK2ludAotK21haW4gKCkKLSt7Ci0r dXNpbmcgYm9vc3Q6OnVuaXRfdGVzdDo6dGVzdF9zdWl0ZTsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdF9zdWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVuaXQgdGVz dCBleGFtcGxlIDEiICk7IHJldHVybiAwOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VP RgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAo YWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5r IikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29u ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNf Y3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9 ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21w aWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAg ICB9OyB0aGVuCi0rICBsaW5rX3RocmVhZD0ieWVzIgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKLSsKLSsJbGlua190aHJlYWQ9Im5vIgotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0 LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVz dC4kYWNfZXh0Ci0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdT JwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1Mg JENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBp bGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsi ID4mNQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPiY2OyB9 Ci0rICAgICAgICAgICAgICAgIExERkxBR1M9IiR7c2F2ZWRfbGRmbGFnc30iCi0rCQkJICAgIGlm IHRlc3QgIngkbGlua190aHJlYWQiID0gInh5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgICAgICAg ICBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQj0iLWwkYXhfbGliIgotKwotKwkJCQkJYnJl YWsKLSsJCQkJZmkKLSsgICAgICAgICAgICAgIGRvbmUKLSsJCQkgICAgaWYgdGVzdCAieCRsaW5r X3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQotKyRhc19lY2hvICIkYXNf bWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQotKwkJCQlmaQotKwkJ CWZpCi0rCi0rCi0rCQlmaQotKyAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHU19TQVZFRCIKLSsg ICAgICAgIExERkxBR1M9IiRMREZMQUdTX1NBVkVEIgotKwotKwlmaQotKwotKwotKwotKwotKwot KwotKwotKwotKwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIE15U1FMIGJhY2tlbmQg KEMgY2xpZW50IEFQSSk6IGh0dHA6Ly93d3cubXlzcWwub3JnCi0rIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMg Q2hlY2sgd2hldGhlciAtLWVuYWJsZS1iYWNrZW5kLW15c3FsIHdhcyBnaXZlbi4KLStpZiB0ZXN0 ICIke2VuYWJsZV9iYWNrZW5kX215c3FsK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9 JGVuYWJsZV9iYWNrZW5kX215c3FsOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgot KyAgICAgIAkgZW5hYmxlX2JhY2tlbmRfbXlzcWw9bm8KLSsgICAgICBlbHNlCi0rCSBlbmFibGVf YmFja2VuZF9teXNxbD15ZXMKLSsgICAgICBmaQotK2Vsc2UKLSsgICBlbmFibGVfYmFja2VuZF9t eXNxbD1ubwotKwotK2ZpCi0rCi0rCi0raWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9teXNxbCIg PSAieHllcyI7IHRoZW4KLSsgICBNWVNRTF9ESVJTPSJteXNxbCIKLSsjICAgTVlTUUxfUkVRX1ZF UlNJT049IjMuMC4wIgotKwotKwkjCi0rCSMgU2V0IHVwIGNvbmZpZ3VyZSBzY3JpcHQgbWFjcm9z Ci0rCSMKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLW15c3FsIHdhcyBnaXZlbi4KLStpZiB0 ZXN0ICIke3dpdGhfbXlzcWwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfbXlz cWw7IE1ZU1FMX2xpYl9jaGVjaz0iJHdpdGhfbXlzcWwvbGliNjQvbXlzcWwgJHdpdGhfbXlzcWwv bGliL215c3FsICR3aXRoX215c3FsL2xpYjY0ICR3aXRoX215c3FsL2xpYiIKLSsJCU1ZU1FMX2lu Y19jaGVjaz0iJHdpdGhfbXlzcWwvaW5jbHVkZSAkd2l0aF9teXNxbC9pbmNsdWRlL215c3FsIgot KwkJTVlTUUxfYmluX2NoZWNrPSIkd2l0aF9teXNxbC9iaW4iCi0rZWxzZQotKyAgTVlTUUxfbGli X2NoZWNrPSIvdXNyL2xpYjY0IC91c3IvbGliIC91c3IvbGliNjQvbXlzcWwgL3Vzci9saWIvbXlz cWwgL3Vzci9sb2NhbC9saWI2NCAvdXNyL2xvY2FsL2xpYiAvdXNyL2xvY2FsL2xpYi9teXNxbCAv dXNyL2xvY2FsL215c3FsL2xpYiAvdXNyL2xvY2FsL215c3FsL2xpYi9teXNxbCAvb3B0L215c3Fs L2xpYiAvb3B0L215c3FsL2xpYi9teXNxbCIKLSsJCU1ZU1FMX2luY19jaGVjaz0iL3Vzci9pbmNs dWRlL215c3FsIC91c3IvbG9jYWwvaW5jbHVkZS9teXNxbCAvdXNyL2xvY2FsL215c3FsL2luY2x1 ZGUgL3Vzci9sb2NhbC9teXNxbC9pbmNsdWRlL215c3FsIC9vcHQvbXlzcWwvaW5jbHVkZS9teXNx bCIKLSsJCU1ZU1FMX2Jpbl9jaGVjaz0iL3Vzci9iaW4gL3Vzci9sb2NhbC9iaW4gL3Vzci9sb2Nh bC9teXNxbC9iaW4iCi0rZmkKLSsKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLW15c3Fs LWxpYiB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX215c3FsX2xpYitzZXR9IiA9IHNldDsg dGhlbgotKyAgd2l0aHZhbD0kd2l0aF9teXNxbF9saWI7IE1ZU1FMX2xpYl9jaGVjaz0iJHdpdGhf bXlzcWxfbGliICR3aXRoX215c3FsX2xpYi9saWI2NCAkd2l0aF9teXNxbF9saWIvbGliICR3aXRo X215c3FsX2xpYi9saWI2NC9teXNxbCAkd2l0aF9teXNxbF9saWIvbGliL215c3FsIgotK2ZpCi0r Ci0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1teXNxbC1pbmNsdWRlIHdhcyBnaXZlbi4K LStpZiB0ZXN0ICIke3dpdGhfbXlzcWxfaW5jbHVkZStzZXR9IiA9IHNldDsgdGhlbgotKyAgd2l0 aHZhbD0kd2l0aF9teXNxbF9pbmNsdWRlOyBNWVNRTF9pbmNfY2hlY2s9IiR3aXRoX215c3FsX2lu Y2x1ZGUgJHdpdGhfbXlzcWxfaW5jbHVkZS9pbmNsdWRlICR3aXRoX215c3FsX2luY2x1ZGUvaW5j bHVkZS9teXNxbCIKLStmaQotKwotKwotKwotKyAgICAjCi0rCSMgTG9vayBmb3IgTXlTUUwgQ29u ZmlndXJhdGlvbiBTY3JpcHQKLSsJIwotKwl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yIE15U1FMIGNvbmZpZ3VyYXRpb24gc2NyaXB0IiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBmb3IgTXlTUUwgY29uZmlndXJhdGlvbiBzY3JpcHQuLi4gIiA+JjY7IH0KLSsJTVlT UUxfQ09ORklHPQotKwlNWVNRTF9iaW5kaXI9Ci0rCWZvciBtIGluICRNWVNRTF9iaW5fY2hlY2sK LSsJCWRvCi0rCQkJaWYgdGVzdCAtZCAiJG0iICYmIHRlc3QgLWYgIiRtL215c3FsX2NvbmZpZyIK LSsJCQl0aGVuCi0rCQkJCU1ZU1FMX0NPTkZJRz0kbS9teXNxbF9jb25maWcKLSsJCQkJTVlTUUxf YmluZGlyPSRtCi0rCQkJYnJlYWsKLSsJCWZpCi0rCWRvbmUKLSsKLSsJaWYgdGVzdCAteiAiJE1Z U1FMX2JpbmRpciIKLSsJdGhlbgotKwkJeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJy b3I6IERpZG4ndCBmaW5kICRNWVNRTF9DT05GSUcgYmluYXJ5IGluICckTVlTUUxfYmluX2NoZWNr JyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IERpZG4ndCBmaW5kICRNWVNRTF9DT05G SUcgYmluYXJ5IGluICckTVlTUUxfYmluX2NoZWNrJyIgPiYyO30KLSsgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0KLSsJZmkKLSsKLSsJY2FzZSAiJE1ZU1FMX2JpbmRpciIgaW4KLSsJCS8qICkg OzsKLSsJCSogKSAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFRoZSBNeVNR TCBiaW5hcnkgZGlyZWN0b3J5ICgkTVlTUUxfYmluZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBh dGguIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogVGhlIE15U1FMIGJpbmFyeSBkaXJl Y3RvcnkgKCRNWVNRTF9iaW5kaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4iID4mMjt9Ci0r ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7Ci0rCWVzYWMKLSsKLSsJeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE1ZU1FMX0NPTkZJRyIgPiY1Ci0rJGFzX2VjaG8gIiRN WVNRTF9DT05GSUciID4mNjsgfQotKwotKyMJQUNfUEFUSF9QUk9HKE1ZU1FMX0NPTkZJRywgbXlz cWxfY29uZmlnLCAkTVlTUUxfYmluZGlyKQotKwotKwkjCi0rCSMgRGVjaWRlIHdoaWNoIEMgQVBJ IGxpYnJhcnkgdG8gdXNlLCBiYXNlZCBvbiB0aHJlYWQgc3VwcG9ydAotKwkjCi0rCWlmIHRlc3Qg IngkYWN4X3B0aHJlYWRfb2siID0geHllcwotKwl0aGVuCi0rCQlNWVNRTF9DX0xJQj1teXNxbGNs aWVudF9yCi0rCQlNWVNRTF9MSUJfT1BUSU9OPWxpYnNfcgotKwllbHNlCi0rCQlNWVNRTF9DX0xJ Qj1teXNxbGNsaWVudAotKwkJTVlTUUxfTElCX09QVElPTj1saWJzCi0rCWZpCi0rCi0rCWlmIHRl c3QgIngke01ZU1FMX0NPTkZJR30xIiA9ICJ4MSIKLSsJdGhlbgotKwkJTVlTUUxfVkVSU0lPTj1g JHtNWVNRTF9DT05GSUd9IC0tdmVyc2lvbmAKLSsJCU1ZU1FMX0NGTEFHUz1gJHtNWVNRTF9DT05G SUd9IC0tY2ZsYWdzYAotKwkJTVlTUUxfTElCUz1gJHtNWVNRTF9DT05GSUd9IC0tJHtNWVNRTF9M SUJfT1BUSU9OfWAKLSsJZWxzZQotKwkJIwotKwkJIyBMb29rIGZvciBNeVNRTCBDIEFQSSBsaWJy YXJ5Ci0rCQkjCi0rCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIE15 U1FMIGxpYnJhcnkgZGlyZWN0b3J5IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgTXlT UUwgbGlicmFyeSBkaXJlY3RvcnkuLi4gIiA+JjY7IH0KLSsJCU1ZU1FMX2xpYmRpcj0KLSsJCWZv ciBtIGluICRNWVNRTF9saWJfY2hlY2sKLSsJCWRvCi0rCQkJaWYgdGVzdCAtZCAiJG0iICYmIFwK LSsJCQkJKHRlc3QgLWYgIiRtL2xpYiRNWVNRTF9DX0xJQi5zbyIgXAotKwkJCQl8fCB0ZXN0IC1m ICIkbS9saWIkTVlTUUxfQ19MSUIuYSIpCi0rCQkJdGhlbgotKwkJCQlNWVNRTF9saWJkaXI9JG0K LSsJCQkJYnJlYWsKLSsJCQlmaQotKwkJZG9uZQotKwotKwkJaWYgdGVzdCAteiAiJE1ZU1FMX2xp YmRpciIKLSsJCXRoZW4KLSsJCQl7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjog RGlkbid0IGZpbmQgJE1ZU1FMX0NfTElCIGxpYnJhcnkgaW4gJyRNWVNRTF9saWJfY2hlY2snIiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogRGlkbid0IGZpbmQgJE1ZU1FMX0NfTElCIGxp YnJhcnkgaW4gJyRNWVNRTF9saWJfY2hlY2snIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQotKwkJZmkKLSsKLSsJCWNhc2UgIiRNWVNRTF9saWJkaXIiIGluCi0rCQkJLyogKSA7 OwotKwkJCSogKSAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFRoZSBNeVNR TCBsaWJyYXJ5IGRpcmVjdG9yeSAoJE1ZU1FMX2xpYmRpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBw YXRoLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFRoZSBNeVNRTCBsaWJyYXJ5IGRp cmVjdG9yeSAoJE1ZU1FMX2xpYmRpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLiIgPiYyO30K LSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0gOzsKLSsJCWVzYWMKLSsKLSsJCXsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRNWVNRTF9saWJkaXIiID4mNQotKyRhc19lY2hv ICIkTVlTUUxfbGliZGlyIiA+JjY7IH0KLSsKLSsjCQljYXNlICIkTVlTUUxfbGliZGlyIiBpbgot KyMJCSAgL3Vzci9saWIpIDs7Ci0rIwkJICAqKSBMREZMQUdTPSIkTERGTEFHUyAtTCR7TVlTUUxf bGliZGlyfSIgOzsKLSsjCQllc2FjCi0rCi0rCQkjCi0rCQkjIExvb2sgZm9yIE15U1FMIEMgQVBJ IGhlYWRlcnMKLSsJCSMKLSsJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciBNeVNRTCBpbmNsdWRlIGRpcmVjdG9yeS4uLiAiID4mNjsgfQotKwkJTVlTUUxfaW5jZGlyPQot KwkJZm9yIG0gaW4gJE1ZU1FMX2luY19jaGVjawotKwkJZG8KLSsJCQlpZiB0ZXN0IC1kICIkbSIg JiYgdGVzdCAtZiAiJG0vbXlzcWwuaCIKLSsJCQl0aGVuCi0rCQkJCU1ZU1FMX2luY2Rpcj0kbQot KwkJCQlicmVhawotKwkJCWZpCi0rCQlkb25lCi0rCi0rCQlpZiB0ZXN0IC16ICIkTVlTUUxfaW5j ZGlyIgotKwkJdGhlbgotKwkJCXsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBE aWRuJ3QgZmluZCB0aGUgTXlTUUwgaW5jbHVkZSBkaXIgaW4gJyRNWVNRTF9pbmNfY2hlY2snIiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogRGlkbid0IGZpbmQgdGhlIE15U1FMIGluY2x1 ZGUgZGlyIGluICckTVlTUUxfaW5jX2NoZWNrJyIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KLSsJCWZpCi0rCi0rCQljYXNlICIkTVlTUUxfaW5jZGlyIiBpbgotKwkJCSAvKiAp IDs7Ci0rCQkJICogKSAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFRoZSBN eVNRTCBpbmNsdWRlIGRpcmVjdG9yeSAoJE1ZU1FMX2luY2RpcikgbXVzdCBiZSBhbiBhYnNvbHV0 ZSBwYXRoLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFRoZSBNeVNRTCBpbmNsdWRl IGRpcmVjdG9yeSAoJE1ZU1FMX2luY2RpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLiIgPiYy O30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0gOzsKLSsJCWVzYWMKLSsKLSsJCXsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRNWVNRTF9pbmNkaXIiID4mNQotKyRhc19l Y2hvICIkTVlTUUxfaW5jZGlyIiA+JjY7IH0KLSsKLSsJCU1ZU1FMX1ZFUlNJT049YGdyZXAgImRl ZmluZSBNWVNRTF9TRVJWRVJfVkVSU0lPTiIgJE1ZU1FMX2luY2Rpci9teXNxbF92ZXJzaW9uLmgg fCBjdXQgLWRcIiAtZjJgCi0rCQlNWVNRTF9DRkxBR1M9Ii1JJHtNWVNRTF9pbmNkaXJ9IgotKwkJ TVlTUUxfTElCUz0iLUwke01ZU1FMX2xpYmRpcn0gLWwke01ZU1FMX0NfTElCfSIKLSsJZmkKLSsK LSsKLSsKLSsKLSsKLSsJc2F2ZV9MSUJTPSIkTElCUyIKLSsJTElCUz0iJExJQlMgJE1ZU1FMX0xJ QlMiCi0rCi0rYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRNWVNRTF9DX0xJQicnX215 c3FsX3N0b3JlX3Jlc3VsdCIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciBteXNxbF9zdG9yZV9yZXN1bHQgaW4gLWwkTVlTUUxfQ19MSUIiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBteXNxbF9zdG9yZV9yZXN1bHQgaW4gLWwkTVlT UUxfQ19MSUIuLi4gIiA+JjY7IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0 IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJT PSItbCRNWVNRTF9DX0xJQiAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G Ci0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz dC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KLSsKLSsvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0 byBhdm9pZCBhbiBlcnJvci4KLSsgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0 aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKLSsgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVu dCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotKyNpZmRlZiBfX2NwbHVzcGx1cwot K2V4dGVybiAiQyIKLSsjZW5kaWYKLStjaGFyIG15c3FsX3N0b3JlX3Jlc3VsdCAoKTsKLStpbnQK LSttYWluICgpCi0rewotK3JldHVybiBteXNxbF9zdG9yZV9yZXN1bHQgKCk7Ci0rICA7Ci0rICBy ZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIg aW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29u ZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewot KwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRl c3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgot K2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJZXZhbCAiJGFzX2FjX0xpYj1u byIKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAg ICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xp Yl9zYXZlX0xJQlMKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQot KwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0r YXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192 YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIGNhdCA+PmNv bmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIGAkYXNfZWNobyAiSEFWRV9MSUIkTVlTUUxfQ19M SUIiIHwgJGFzX3RyX2NwcGAgMQotK19BQ0VPRgotKwotKyAgTElCUz0iLWwkTVlTUUxfQ19MSUIg JExJQlMiCi0rCi0rZWxzZQotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6 IENvdWxkIG5vdCBmaW5kIHdvcmtpbmcgTXlTUUwgY2xpZW50IGxpYnJhcnkhIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogQ291bGQgbm90IGZpbmQgd29ya2luZyBNeVNRTCBjbGllbnQg bGlicmFyeSEiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rCi0rZmkKLSsK LSsKLSsJTElCUz0iJHNhdmVfTElCUyIKLSsKLStmaQotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNr ZW5kX215c3FsIiA9IHh5ZXM7IHRoZW4KLSsgIEhBVkVfTVlTUUxfVFJVRT0KLSsgIEhBVkVfTVlT UUxfRkFMU0U9JyMnCi0rZWxzZQotKyAgSEFWRV9NWVNRTF9UUlVFPScjJwotKyAgSEFWRV9NWVNR TF9GQUxTRT0KLStmaQotKwotKyNNWVNRTF9ESVJTPSJteXNxbCIKLSsKLSsKLSsKLSsKLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIE9yYWNsZSBiYWNrZW5kCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r IyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWJhY2tlbmQtb3JhY2xlIHdhcyBnaXZlbi4KLStpZiB0 ZXN0ICIke2VuYWJsZV9iYWNrZW5kX29yYWNsZStzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxl dmFsPSRlbmFibGVfYmFja2VuZF9vcmFjbGU7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0 aGVuCi0rICAgICAgCSBlbmFibGVfYmFja2VuZF9vcmFjbGU9bm8KLSsgICAgICBlbHNlCi0rCSBl bmFibGVfYmFja2VuZF9vcmFjbGU9eWVzCi0rICAgICAgZmkKLStlbHNlCi0rICAgZW5hYmxlX2Jh Y2tlbmRfb3JhY2xlPW5vCi0rCi0rZmkKLSsKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5k X29yYWNsZSIgPSAieHllcyI7IHRoZW4KLSsgICBPUkFDTEVfRElSUz0ib3JhY2xlIgotKyAgIE9S QUNMRV9PQ0lfUkVRX1ZFUlNJT049IjkuMCIKLSsKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13 aXRoLW9yYWNsZSB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX29yYWNsZStzZXR9IiA9IHNl dDsgdGhlbgotKyAgd2l0aHZhbD0kd2l0aF9vcmFjbGU7Ci0rICAgICAgICBpZiB0ZXN0ICIkd2l0 aHZhbCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9N RSI7IHRoZW4KLSsgICAgICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUi Ci0rICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiIK LSsgICAgICAgICAgICBmaQotKyAgICAgICAgZmkKLSsKLStlbHNlCi0rCi0rICAgICAgICBpZiB0 ZXN0IC1uICIkT1JBQ0xFX0hPTUUiOyB0aGVuCi0rICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGly PSIkT1JBQ0xFX0hPTUUiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgb3JhY2xlX2hvbWVf ZGlyPSIiCi0rICAgICAgICBmaQotKwotKwotK2ZpCi0rCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVy IC0td2l0aC1vcmFjbGUtaW5jbHVkZSB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX29yYWNs ZV9pbmNsdWRlK3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFsPSR3aXRoX29yYWNsZV9pbmNs dWRlOyBvcmFjbGVfaG9tZV9pbmNsdWRlX2Rpcj0iJHdpdGh2YWwiCi0rZWxzZQotKyAgb3JhY2xl X2hvbWVfaW5jbHVkZV9kaXI9IiIKLSsKLStmaQotKwotKwotKyMgQ2hlY2sgd2hldGhlciAtLXdp dGgtb3JhY2xlLWxpYiB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX29yYWNsZV9saWIrc2V0 fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfb3JhY2xlX2xpYjsgb3JhY2xlX2hvbWVf bGliX2Rpcj0iJHdpdGh2YWwiCi0rZWxzZQotKyAgb3JhY2xlX2hvbWVfbGliX2Rpcj0iIgotKwot K2ZpCi0rCi0rCi0rICAgIE9SQUNMRV9PQ0lfQ0ZMQUdTPSIiCi0rICAgIE9SQUNMRV9PQ0lfTERG TEFHUz0iIgotKyAgICBPUkFDTEVfT0NJX1ZFUlNJT049IiIKLSsKLSsgICAgICAgICAgICAgICAg d2FudF9vcmFjbGVfYnV0X25vX3BhdGg9Im5vIgotKwotKyAgICBpZiB0ZXN0IC1uICIkb3JhY2xl X2hvbWVfZGlyIjsgdGhlbgotKwotKyAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV9ob21lX2RpciIg IT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2RpciIgIT0gInllcyI7IHRoZW4KLSsKLSsgICAgICAg ICAgICAgICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVfaG9tZV9kaXIvcmRi bXMvcHVibGljIgotKwotKyAgICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rp cjI9IiRvcmFjbGVfaG9tZV9kaXIvcmRibXMvZGVtbyIKLSsKLSsgICAgICAgICAgICAgICAgICAg ICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21lX2Rpci9saWIiCi0rICAgICAgICBlbGlm IHRlc3QgIiRvcmFjbGVfaG9tZV9kaXIiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50 X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgotKyAgICAgICAgZmkKLSsKLSsgICAgZWxpZiB0ZXN0 IC1uICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiIC1vIC1uICIkb3JhY2xlX2hvbWVfbGliX2Rp ciI7IHRoZW4KLSsKLSsgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIg IT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiAhPSAieWVzIjsgdGhlbgotKyAg ICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rpcj0iJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIgot KyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiID0gInllcyI7IHRo ZW4KLSsgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgotKyAgICAgICAg ZmkKLSsKLSsgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiAhPSAibm8iIC1h ICIkb3JhY2xlX2hvbWVfbGliX2RpciIgIT0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICBvcmFj bGVfbGliX2Rpcj0iJG9yYWNsZV9ob21lX2xpYl9kaXIiCi0rICAgICAgICBlbGlmIHRlc3QgIiRv cmFjbGVfaG9tZV9saWJfZGlyIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9vcmFj bGVfYnV0X25vX3BhdGg9InllcyIKLSsgICAgICAgIGZpCi0rICAgIGZpCi0rCi0rICAgIGlmIHRl c3QgIiR3YW50X29yYWNsZV9idXRfbm9fcGF0aCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IE9yYWNsZSBzdXBwb3J0IGlzIHJlcXVl c3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVlbiBwcm92aWRlZC4gXAotK1BsZWFzZSwg bG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAtLXdpdGgtb3JhY2xlIG9yIFwKLSstLXdp dGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFjbGUtbGliIG9wdGlvbnMuIiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBPcmFjbGUgc3VwcG9ydCBpcyByZXF1ZXN0ZWQgYnV0 IG5vIE9yYWNsZSBwYXRocyBoYXZlIGJlZW4gcHJvdmlkZWQuIFwKLStQbGVhc2UsIGxvY2F0ZSBP cmFjbGUgZGlyZWN0b3JpZXMgdXNpbmcgLS13aXRoLW9yYWNsZSBvciBcCi0rLS13aXRoLW9yYWNs ZS1pbmNsdWRlIGFuZCAtLXdpdGgtb3JhY2xlLWxpYiBvcHRpb25zLiIgPiYyO30KLSsgICAgZmkK LSsKLSsgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9pbmNsdWRlX2RpciIgLWEg LW4gIiRvcmFjbGVfbGliX2RpciI7IHRoZW4KLSsKLSsgICAgICAgIHNhdmVkX0NQUEZMQUdTPSIk Q1BQRkxBR1MiCi0rICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTIC1JJG9yYWNsZV9pbmNsdWRl X2RpciIKLSsKLSsgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9pbmNsdWRlX2Rp cjIiOyB0aGVuCi0rICAgICAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSSRvcmFjbGVfaW5j bHVkZV9kaXIyIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgICMgRmlndXJlIG91dCBpZiB3ZSBh cmUgYnVpbGRpbmcgb24gd2luMzIuCi0rICAgICAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAg ICAgICAgKm1pbmd3MzIqICkgV0lOMzI9eWVzIDs7Ci0rICAgICAgICAgICAgKmN5Z3dpbiogKSAg V0lOMzI9eWVzIDs7Ci0rICAgICAgICAgICAgKikgV0lOMzI9bm8gOzsKLSsgICAgICAgIGVzYWMK LSsKLSsgICAgICAgIGlmIHRlc3QgIiRXSU4zMiIgPSAibm8iCi0rICAgICAgICB0aGVuCi0rICAg ICAgICAgICAgb2NpX2xpYnM9Ii1sY2xudHNoIC1sbm56MTEiCi0rICAgICAgICBlbHNlCi0rICAg ICAgICAgICAgb2NpX2xpYnM9Ii1sb2NpIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIHNhdmVk X0xERkxBR1M9IiRMREZMQUdTIgotKyAgICAgICAgc2F2ZWRfTElCUz0iJExJQlMiCi0rICAgICAg ICBvY2lfbGRmbGFncz0iLUwkb3JhY2xlX2xpYl9kaXIiCi0rICAgICAgICBMREZMQUdTPSIkTERG TEFHUyAkb2NpX2xkZmxhZ3MiCi0rICAgICAgICBMSUJTPSIkTElCUyAkb2NpX2xpYnMiCi0rCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZm9yIE9yYWNsZSBPQ0kgaGVhZGVycyBpbiAkb3JhY2xlX2luY2x1ZGVfZGly IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgT3JhY2xlIE9DSSBoZWFkZXJzIGluICRv cmFjbGVfaW5jbHVkZV9kaXIuLi4gIiA+JjY7IH0KLSsKLSsgICAgICAgIGFjX2V4dD1jcHAKLSth Y19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdT ICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQot KwotKyAgICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rCi0rICAgICAgICAg ICAgLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz dC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8b2NpLmg+Ci0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsj aWYgZGVmaW5lZChPQ0lfTUFKT1JfVkVSU0lPTikKLSsjaWYgT0NJX01BSk9SX1ZFUlNJT04gPT0g MTAgJiYgT0NJX01JTk9SX1ZFUlNJT04gPT0gMgotKy8vIE9yYWNsZSAxMC4yIGRldGVjdGVkCi0r I2VuZGlmCi0rI2VsaWYgZGVmaW5lZChPQ0lfVjdfU1lOVEFYKQotKy8vIE9LLCBvbGRlciBPcmFj bGUgZGV0ZWN0ZWQKLSsvLyBUT0RPIC0gbWxvc2tvdDogZmluZCBiZXR0ZXIgbWFjcm8gdG8gY2hl Y2sgZm9yIG9sZGVyIHZlcnNpb25zOwotKyNlbHNlCi0rIyAgZXJyb3IgT3JhY2xlIG9jaS5oIGhl YWRlciBub3QgZm91bmQKLSsjZW5kaWYKLSsKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStf QUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29t cGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25m dGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJv cl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3Qg LXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKwotKyAgICAgICAgICAgIE9SQUNMRV9PQ0lf Q0ZMQUdTPSItSSRvcmFjbGVfaW5jbHVkZV9kaXIiCi0rCi0rICAgICAgICAgICAgaWYgdGVzdCAt biAiJG9yYWNsZV9pbmNsdWRlX2RpcjIiOyB0aGVuCi0rICAgICAgICAgICAgICAgIE9SQUNMRV9P Q0lfQ0ZMQUdTPSIkT1JBQ0xFX09DSV9DRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyMiIKLSsg ICAgICAgICAgICBmaQotKwotKyAgICAgICAgICAgIG9jaV9oZWFkZXJfZm91bmQ9InllcyIKLSsg ICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQot KyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKLSsKLSsKLSsgICAgICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJubyIKLSsgICAgICAgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBub3QgZm91bmQiID4mNQotKyRh c19lY2hvICJub3QgZm91bmQiID4mNjsgfQotKwotKwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICAgICAgICBh Y19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hY IC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0n JENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9j b21waWxlcl9nbnUKLSsKLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRl c3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAgICAgICAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBPcmFjbGUgT0NJIGxpYnJhcmll cyBpbiAkb3JhY2xlX2xpYl9kaXIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBPcmFj bGUgT0NJIGxpYnJhcmllcyBpbiAkb3JhY2xlX2xpYl9kaXIuLi4gIiA+JjY7IH0KLSsKLSsgICAg ICAgICAgICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21w aWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0r YWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFj X2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsgICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKLSsKLSsgICAgICAgICAgICAgICAgLyogY29uZmRlZnMuaC4gICovCi0rX0FD RU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8b2Np Lmg+Ci0raW50Ci0rbWFpbiAoKQotK3sKLSsKLStPQ0lFbnYqIGVudmggPSAwOwotK09DSUVudkNy ZWF0ZSgmZW52aCwgT0NJX0RFRkFVTFQsIDAsIDAsIDAsIDAsIDAsIDApOwotK2lmIChlbnZoKSBP Q0lIYW5kbGVGcmVlKGVudmgsIE9DSV9IVFlQRV9FTlYpOwotKwotKwotKyAgOwotKyAgcmV0dXJu IDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNf ZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0r ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJ TkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAg KGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3Jl cCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0 LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0r CSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRl c3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFj X2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rCi0rICAgICAgICAgICAgICAgIE9SQUNMRV9PQ0lf TERGTEFHUz0iJG9jaV9sZGZsYWdzICRvY2lfbGlicyIKLSsgICAgICAgICAgICAgICAgb2NpX2xp Yl9mb3VuZD0ieWVzIgotKyAgICAgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKwotK2Vsc2UKLSsg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsKLSsgICAgICAgICAgICAgICAgb2NpX2xpYl9m b3VuZD0ibm8iCi0rICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6IG5vdCBmb3VuZCIgPiY1Ci0rJGFzX2VjaG8gIm5vdCBmb3VuZCIgPiY2OyB9Ci0rCi0r Ci0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAg Y29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICAgICAgICAgICBhY19leHQ9 Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRD WFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAt byBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxl cl9nbnUKLSsKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBDUFBGTEFHUz0iJHNhdmVkX0NQUEZM QUdTIgotKyAgICAgICAgTERGTEFHUz0iJHNhdmVkX0xERkxBR1MiCi0rICAgICAgICBMSUJTPSIk c2F2ZWRfTElCUyIKLSsgICAgZmkKLSsKLSsgICAgICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25f cmVxPSRPUkFDTEVfT0NJX1JFUV9WRVJTSU9OCi0rCi0rICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVy X2ZvdW5kIiA9ICJ5ZXMiIC1hICIkb2NpX2xpYl9mb3VuZCIgPSAieWVzIiAtYSBcCi0rICAgICAg ICAtbiAiJG9yYWNsZV92ZXJzaW9uX3JlcSI7IHRoZW4KLSsKLSsgICAgICAgIG9yYWNsZV92ZXJz aW9uX21ham9yPWBjYXQgJG9yYWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBcCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9NQUpPUl9WRVJTSU9OLionIFwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdzLyNkZWZpbmUgT0NJX01B Sk9SX1ZFUlNJT04gICovLycgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQg LWUgJ3MvICAqXC9cKi4qXCpcLy8vJ2AKLSsKLSsgICAgICAgIG9yYWNsZV92ZXJzaW9uX21pbm9y PWBjYXQgJG9yYWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBcCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9NSU5PUl9WRVJTSU9OLionIFwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdzLyNkZWZpbmUgT0NJX01JTk9SX1ZFUlNJ T04gICovLycgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvICAq XC9cKi4qXCpcLy8vJ2AKLSsKLSsgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBpZiBPcmFjbGUgT0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcSIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgT3JhY2xlIE9DSSB2ZXJzaW9uIGlzID49ICRv cmFjbGVfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0KLSsKLSsgICAgICAgIGlmIHRlc3QgLW4gIiRv cmFjbGVfdmVyc2lvbl9tYWpvciIgLWEgLW4gJCJvcmFjbGVfdmVyc2lvbl9taW5vciI7IHRoZW4K LSsKLSsgICAgICAgICAgICBPUkFDTEVfT0NJX1ZFUlNJT049IiRvcmFjbGVfdmVyc2lvbl9tYWpv ci4kb3JhY2xlX3ZlcnNpb25fbWlub3IiCi0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRvcmFjbGVfdmVyc2lvbl9y ZXEgOiAnXChbMC05XSpcKSdgCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX21pbm9y PWBleHByICRvcmFjbGVfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsKLSsg ICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRvcmFjbGVfdmVyc2lv bl9yZXFfbWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwYAotKwotKyAgICAg ICAgICAgICAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX251bWJlcj1gZXhwciAkb3JhY2xlX3Zl cnNpb25fbWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwrICRvcmFjbGVfdmVyc2lvbl9taW5vciBcKiAxMDAwYAotKwotKyAgICAgICAgICAgIG9y YWNsZV92ZXJzaW9uX2NoZWNrPWBleHByICRvcmFjbGVfdmVyc2lvbl9udW1iZXIgXD5cPSAkb3Jh Y2xlX3ZlcnNpb25fcmVxX251bWJlcmAKLSsgICAgICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX3Zl cnNpb25fY2hlY2siID0gIjEiOyB0aGVuCi0rICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0r Ci0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfT1JBQ0xFIDEKLStf QUNFT0YKLSsKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQot KyAgICAgICAgICAgICAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogT3Jh Y2xlICRPUkFDTEVfT0NJX1ZFUlNJT04gZm91bmQsIGJ1dCByZXF1aXJlZCB2ZXJzaW9uIGlzICRv cmFjbGVfdmVyc2lvbl9yZXEiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBPcmFjbGUg JE9SQUNMRV9PQ0lfVkVSU0lPTiBmb3VuZCwgYnV0IHJlcXVpcmVkIHZlcnNpb24gaXMgJG9yYWNs ZV92ZXJzaW9uX3JlcSIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgICAg ICAgICAgICBmaQotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIE9SQUNMRV9PQ0lfVkVSU0lP Tj0iVU5LTk9XTiIKLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsgICAgICAgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogT3JhY2xlIHZlcnNpb24gdW5rbm93biwgcHJv YmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hvICIk YXNfbWU6IFdBUk5JTkc6IE9yYWNsZSB2ZXJzaW9uIHVua25vd24sIHByb2JhYmx5IE9DSSBvbGRl ciB0aGFuIDEwLjIgaXMgYXZhaWxhYmxlIiA+JjI7fQotKyAgICAgICAgZmkKLSsgICAgZmkKLSsK LSsKLSsKLSsKLSsKLStmaQotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX29yYWNsZSIgPSB4 eWVzOyB0aGVuCi0rICBIQVZFX09SQUNMRV9UUlVFPQotKyAgSEFWRV9PUkFDTEVfRkFMU0U9JyMn Ci0rZWxzZQotKyAgSEFWRV9PUkFDTEVfVFJVRT0nIycKLSsgIEhBVkVfT1JBQ0xFX0ZBTFNFPQot K2ZpCi0rCi0rI09SQUNMRV9ESVJTPSJvcmFjbGUiCi0rCi0rCi0rCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r IyBTdXBwb3J0IGZvciBQb3N0Z3JlU1FMIGJhY2tlbmQKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNr IHdoZXRoZXIgLS1lbmFibGUtYmFja2VuZC1wb3N0Z3Jlc3FsIHdhcyBnaXZlbi4KLStpZiB0ZXN0 ICIke2VuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJs ZXZhbD0kZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbDsgIGlmIHRlc3QgIiRlbmFibGV2YWwiID0g bm87IHRoZW4KLSsgICAgICAJIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8KLSsgICAgICBl bHNlCi0rCSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPXllcwotKyAgICAgIGZpCi0rZWxzZQot KyAgIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8KLSsKLStmaQotKwotKwotK2lmIHRlc3Qg IngkZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCIgPSAieHllcyI7IHRoZW4KLSsgICBQT1NUR1JF U1FMX0RJUlM9InBvc3RncmVzcWwiCi0rICAgUE9TVEdSRVNRTF9SRVFfVkVSU0lPTj0iNy4xLjQi Ci0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1wb3N0Z3Jlc3FsIHdhcyBnaXZlbi4KLStp ZiB0ZXN0ICIke3dpdGhfcG9zdGdyZXNxbCtzZXR9IiA9IHNldDsgdGhlbgotKyAgd2l0aHZhbD0k d2l0aF9wb3N0Z3Jlc3FsOwotKwlQT1NUR1JFU1FMX2luY19jaGVjaz0iJHdpdGhfcG9zdGdyZXNx bC9pbmNsdWRlIgotKyAgICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0gIm5vIjsgdGhlbgotKyAg ICAgICAgICAgIHdhbnRfcG9zdGdyZXNxbD0ibm8iCi0rICAgICAgICBlbGlmIHRlc3QgIiR3aXRo dmFsIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCi0r ICAgICAgICBlbHNlCi0rICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCi0rICAgICAg ICAgICAgUEdfQ09ORklHPSIkd2l0aHZhbCIKLSsgICAgICAgIGZpCi0rCi0rZWxzZQotKyAgd2Fu dF9wb3N0Z3Jlc3FsPSJ5ZXMiCi0rCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUg L3Vzci9sb2NhbCAvb3B0IgotKwotK2ZpCi0rCi0rCi0rICAgIFBPU1RHUkVTUUxfQ0ZMQUdTPSIi Ci0rICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iIgotKyAgICBQT1NUR1JFU1FMX1BPU1RHUkVTUUw9 IiIKLSsKLSsKLSsgICAgaWYgdGVzdCAiJHdhbnRfcG9zdGdyZXNxbCIgPSAieWVzIjsgdGhlbgot KwotKyAgICAgICAgaWYgdGVzdCAteiAiJFBHX0NPTkZJRyIgLW8gdGVzdDsgdGhlbgotKyAgICAg ICAgICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicGdfY29uZmlnIiwgc28gaXQgY2Fu IGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgcGdfY29uZmlnOyBhY193 b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0r aWYgdGVzdCAiJHthY19jdl9wYXRoX1BHX0NPTkZJRytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXNlICRQR19DT05GSUcgaW4KLSsg IFtcXC9dKiB8ID86W1xcL10qKQotKyAgYWNfY3ZfcGF0aF9QR19DT05GSUc9IiRQR19DT05GSUci ICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgotKyAgOzsKLSsg ICopCi0rICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2Rp ciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu Ci0rICAgIGFjX2N2X3BhdGhfUEdfQ09ORklHPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZT PSRhc19zYXZlX0lGUwotKwotKyAgOzsKLStlc2FjCi0rZmkKLStQR19DT05GSUc9JGFjX2N2X3Bh dGhfUEdfQ09ORklHCi0raWYgdGVzdCAtbiAiJFBHX0NPTkZJRyI7IHRoZW4KLSsgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRQR19DT05GSUciID4mNQotKyRhc19lY2hvICIk UEdfQ09ORklHIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgICAg ICAgZmkKLSsKLSsgICAgICAgIGlmIHRlc3QgISAteCAiJFBHX0NPTkZJRyI7IHRoZW4KLSsgICAg ICAgICAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogJFBHX0NPTkZJRyBk b2VzIG5vdCBleGlzdCBvciBpdCBpcyBub3QgYW4gZXhlY3R1YWJsZSBmaWxlIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogJFBHX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBpdCBpcyBu b3QgYW4gZXhlY3R1YWJsZSBmaWxlIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fQotKyAgICAgICAgICAgIFBHX0NPTkZJRz0ibm8iCi0rICAgICAgICAgICAgZm91bmRfcG9zdGdy ZXNxbD0ibm8iCi0rICAgICAgICBmaQotKwotKyAgICAgICAgaWYgdGVzdCAiJFBHX0NPTkZJRyIg IT0gIm5vIjsgdGhlbgotKyAgICAgICAgICAgICMKLSsgICAgICAgICAgICAjIExvb2sgZm9yIFBv c3RncmVzcWwgQyBBUEkgaGVhZGVycwotKyAgICAgICAgICAgICMKLSsgICAgICAgICAgICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIFBvc3RncmVzcWwgaW5jbHVkZSBk aXJlY3RvcnkiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBQb3N0Z3Jlc3FsIGluY2x1 ZGUgZGlyZWN0b3J5Li4uICIgPiY2OyB9Ci0rICAgICAgICAgICAgUE9TVEdSRVNRTF9pbmNkaXI9 Ci0rICAgICAgICAgICAgZm9yIHBvc3RncmVzcWxfaW5jX2RpciBpbiAkUE9TVEdSRVNRTF9pbmNf Y2hlY2sKLSsgICAgICAgICAgICBkbwotKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1kICIkcG9z dGdyZXNxbF9pbmNfZGlyIiBcCi0rICAgICAgICAgICAgICAgICYmIHRlc3QgLWYgIiRwb3N0Z3Jl c3FsX2luY19kaXIvcG9zdGdyZXNfZXh0LmgiCi0rICAgICAgICAgICAgICAgIHRoZW4KLSsgICAg ICAgICAgICAgICAgICAgIFBPU1RHUkVTUUxfaW5jZGlyPSRwb3N0Z3Jlc3FsX2luY19kaXIKLSsg ICAgICAgICAgICAgICAgICAgIGJyZWFrCi0rICAgICAgICAgICAgICAgIGZpCi0rICAgICAgICAg ICAgZG9uZQotKwotKyAgICAgICAgICAgIGlmIHRlc3QgLXogIiRQT1NUR1JFU1FMX2luY2RpciIK LSsgICAgICAgICAgICB0aGVuCi0rICAgICAgICAgICAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBEaWRuJ3QgZmluZCB0aGUgUG9zdGdyZXNxbCBpbmNsdWRlIGRpciBp biAnJFBPU1RHUkVTUUxfaW5jX2NoZWNrJyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IERpZG4ndCBmaW5kIHRoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyIGluICckUE9TVEdSRVNRTF9p bmNfY2hlY2snIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICAgICAg ICAgIGZpCi0rCi0rICAgICAgICAgICAgY2FzZSAiJFBPU1RHUkVTUUxfaW5jZGlyIiBpbgotKyAg ICAgICAgICAgICAgICAvKiApIDs7Ci0rICAgICAgICAgICAgICAgICogKSAgeyB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFRoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5 ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4iID4mNQotKyRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBUaGUgUG9zdGdyZXNxbCBpbmNsdWRlIGRpcmVjdG9yeSAo JFBPU1RHUkVTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjI7fQotKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OwotKyAgICAgICAgICAgIGVzYWMKLSsKLSsgICAg ICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUE9TVEdSRVNRTF9p bmNkaXIiID4mNQotKyRhc19lY2hvICIkUE9TVEdSRVNRTF9pbmNkaXIiID4mNjsgfQotKwotKyAg ICAgICAgICAgIGlmIHRlc3QgIiRQT1NUR1JFU1FMX2luY2RpciIgPSAiL3Vzci9pbmNsdWRlIjsg dGhlbgotKyAgICAgICAgICAgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKLSsgICAgICAgICAgICBl bHNlCi0rICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iLUkke1BPU1RHUkVTUUxfaW5j ZGlyfSIKLSsgICAgICAgICAgICBmaQotKwotKyAgICAgICAgICAgIFBPU1RHUkVTUUxfTERGTEFH Uz0iLUxgJFBHX0NPTkZJRyAtLWxpYmRpcmAgLWxwcSIKLSsKLSsgICAgICAgICAgICBQT1NUR1JF U1FMX1ZFUlNJT049YCRQR19DT05GSUcgLS12ZXJzaW9uIHwgc2VkIC1lICdzI1Bvc3RncmVTUUwg IyMnYAotKwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBIQVZFX1BP U1RHUkVTUUwgMQotK19BQ0VPRgotKwotKwotKyAgICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9 InllcyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBmb3VuZF9wb3N0Z3Jlc3FsPSJubyIK LSsgICAgICAgIGZpCi0rICAgIGZpCi0rCi0rCi0rCi0rICAgIHBvc3RncmVzcWxfdmVyc2lvbl9y ZXE9JFBPU1RHUkVTUUxfUkVRX1ZFUlNJT04KLSsKLSsgICAgaWYgdGVzdCAiJGZvdW5kX3Bvc3Rn cmVzcWwiID0gInllcyIgLWEgLW4gIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIjsgdGhlbgotKwot KyAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIFBvc3RncmVT UUwgdmVyc2lvbiBpcyA+PSAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgaWYgUG9zdGdyZVNRTCB2ZXJzaW9uIGlzID49ICRwb3N0Z3Jlc3FsX3ZlcnNp b25fcmVxLi4uICIgPiY2OyB9Ci0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgcG9zdGdyZXNx bF92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdcKFsw LTldKlwpJ2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJHBv c3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsgICAgICAgIHBv c3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm89YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEg OiAnWzAtOV0qXC5bMC05XSpcLlwoWzAtOV0qXCknYAotKyAgICAgICAgaWYgdGVzdCAieCRwb3N0 Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvIiA9ICJ4IjsgdGhlbgotKyAgICAgICAgICAgIHBvc3Rn cmVzcWxfdmVyc2lvbl9yZXFfbWljcm89IjAiCi0rICAgICAgICBmaQotKwotKyAgICAgICAgcG9z dGdyZXNxbF92ZXJzaW9uX3JlcV9udW1iZXI9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFf bWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc KyAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwIFwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvYAot KwotKyAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9tYWpvcj1gZXhw ciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1woWzAtOV0qXCknYAotKyAgICAgICAgcG9zdGdyZXNx bF92ZXJzaW9uX21pbm9yPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnWzAtOV0qXC5cKFsw LTldKlwpJ2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz1gZXhwciAkUE9TVEdS RVNRTF9WRVJTSU9OIDogJ1swLTldKlwuWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsgICAgICAgIGlm IHRlc3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvIiA9ICJ4IjsgdGhlbgotKyAgICAgICAg ICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz0iMCIKLSsgICAgICAgIGZpCi0rCi0rICAgICAg ICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWFq b3IgXCogMTAwMDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAk cG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9taWNyb2AKLSsKLSsgICAgICAg IHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjaz1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX251bWJl ciBcPlw9ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcmAKLSsgICAgICAgIGlmIHRlc3Qg IiRwb3N0Z3Jlc3FsX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCi0rICAgICAgICAgICAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLSskYXNfZWNobyAieWVz IiA+JjY7IH0KLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsgICAgICAg IGZpCi0rICAgIGZpCi0rCi0rCi0rCi0rCi0rCi0rZmkKLSsgaWYgdGVzdCAieCRlbmFibGVfYmFj a2VuZF9wb3N0Z3Jlc3FsIiA9IHh5ZXM7IHRoZW4KLSsgIEhBVkVfUE9TVEdSRVNRTF9UUlVFPQot KyAgSEFWRV9QT1NUR1JFU1FMX0ZBTFNFPScjJwotK2Vsc2UKLSsgIEhBVkVfUE9TVEdSRVNRTF9U UlVFPScjJwotKyAgSEFWRV9QT1NUR1JFU1FMX0ZBTFNFPQotK2ZpCi0rCi0rI1BPU1RHUkVTUUxf RElSUz0icG9zdGdyZXNxbCIKLSsKLSsKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQg Zm9yIGRvY3VtZW50YXRpb24KLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrcyBmb3IgZG9jdW1lbnRh dGlvbiBidWlsZCB0b29scwotKyNBQ19DSEVDS19QUk9HKFt0ZXhpbmZvX29rXSwgW3RleGluZm9d LCBbeWVzXSwgW25vXSkKLSsjaWYgdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubzsgdGhl bgotKyMgIHRlc3QgIngkdGV4aW5mb19vayIgIT0geHllcyAmJiBlbmFibGVfaW5mb19kb2M9bm8K LSsjICBBQ19QQVRIX1BST0coW1BFUkxdLCBbcGVybF0sIFtdKQotKyNmaQotKyBpZiB0ZXN0ICJ4 JGVuYWJsZV9pbmZvX2RvYyIgPSB4eWVzOyB0aGVuCi0rICBJTkZPX0RPQ19UUlVFPQotKyAgSU5G T19ET0NfRkFMU0U9JyMnCi0rZWxzZQotKyAgSU5GT19ET0NfVFJVRT0nIycKLSsgIElORk9fRE9D X0ZBTFNFPQotK2ZpCi0rCi0rCi0rIyBDaGVja3MgZm9yIGRvY3VtZW50YXRpb24gYnVpbGQgdG9v bHMKLSsjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImRveHlnZW4iLCBzbyBpdCBjYW4gYmUg YSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBkb3h5Z2VuOyBhY193b3JkPSQy Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVz dCAiJHthY19jdl9wcm9nX2RveHlnZW5fb2src2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGRveHlnZW5fb2siOyB0 aGVuCi0rICBhY19jdl9wcm9nX2RveHlnZW5fb2s9IiRkb3h5Z2VuX29rIiAjIExldCB0aGUgdXNl ciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRI X1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lG UwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBp biAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2RveHlnZW5fb2s9InllcyIK LSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0k YXNfc2F2ZV9JRlMKLSsKLSsgIHRlc3QgLXogIiRhY19jdl9wcm9nX2RveHlnZW5fb2siICYmIGFj X2N2X3Byb2dfZG94eWdlbl9vaz0ibm8iCi0rZmkKLStmaQotK2RveHlnZW5fb2s9JGFjX2N2X3By b2dfZG94eWdlbl9vawotK2lmIHRlc3QgLW4gIiRkb3h5Z2VuX29rIjsgdGhlbgotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGRveHlnZW5fb2siID4mNQotKyRhc19lY2hv ICIkZG94eWdlbl9vayIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsj IEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImxhdGV4Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgbGF0ZXg7IGFjX3dvcmQ9JDIKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2 X3Byb2dfbGF0ZXhfb2src2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGxhdGV4X29rIjsgdGhlbgotKyAgYWNfY3Zf cHJvZ19sYXRleF9vaz0iJGxhdGV4X29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBh c19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs ZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsg dGhlbgotKyAgICBhY19jdl9wcm9nX2xhdGV4X29rPSJ5ZXMiCi0rICAgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAg IGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICB0 ZXN0IC16ICIkYWNfY3ZfcHJvZ19sYXRleF9vayIgJiYgYWNfY3ZfcHJvZ19sYXRleF9vaz0ibm8i Ci0rZmkKLStmaQotK2xhdGV4X29rPSRhY19jdl9wcm9nX2xhdGV4X29rCi0raWYgdGVzdCAtbiAi JGxhdGV4X29rIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGxhdGV4X29rIiA+JjUKLSskYXNfZWNobyAiJGxhdGV4X29rIiA+JjY7IH0KLStlbHNlCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5v IiA+JjY7IH0KLStmaQotKwotKwotKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZHZpcHMi LCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBkdmlw czsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig JGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4m NjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19kdmlwc19vaytzZXR9IiA9IHNldDsgdGhlbgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkZHZp cHNfb2siOyB0aGVuCi0rICBhY19jdl9wcm9nX2R2aXBzX29rPSIkZHZpcHNfb2siICMgTGV0IHRo ZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9 JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3Nh dmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNf ZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfZHZpcHNfb2s9Inll cyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lG Uz0kYXNfc2F2ZV9JRlMKLSsKLSsgIHRlc3QgLXogIiRhY19jdl9wcm9nX2R2aXBzX29rIiAmJiBh Y19jdl9wcm9nX2R2aXBzX29rPSJubyIKLStmaQotK2ZpCi0rZHZpcHNfb2s9JGFjX2N2X3Byb2df ZHZpcHNfb2sKLStpZiB0ZXN0IC1uICIkZHZpcHNfb2siOyB0aGVuCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZHZpcHNfb2siID4mNQotKyRhc19lY2hvICIkZHZpcHNf b2siID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rIyBFeHRyYWN0IHRo ZSBmaXJzdCB3b3JkIG9mICJncyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCi0rc2V0IGR1bW15IGdzOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y ICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2dzX29rK3NldH0i ID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlm IHRlc3QgLW4gIiRnc19vayI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfZ3Nfb2s9IiRnc19vayIgIyBM ZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0k YXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNf ZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVz dCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19nc19vaz0i eWVzIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0r SUZTPSRhc19zYXZlX0lGUwotKwotKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfZ3Nfb2siICYmIGFj X2N2X3Byb2dfZ3Nfb2s9Im5vIgotK2ZpCi0rZmkKLStnc19vaz0kYWNfY3ZfcHJvZ19nc19vawot K2lmIHRlc3QgLW4gIiRnc19vayI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRnc19vayIgPiY1Ci0rJGFzX2VjaG8gIiRnc19vayIgPiY2OyB9Ci0rZWxzZQot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hv ICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgIT0g eG5vOyB0aGVuCi0rICB0ZXN0ICJ4JGRveHlnZW5fb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxf ZG9jPW5vCi0rICB0ZXN0ICJ4JGxhdGV4X29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1u bwotKyAgdGVzdCAieCRkdmlwc19vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KLSsg IHRlc3QgIngkZ3Nfb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCi0rICAjIEV4dHJh Y3QgdGhlIGZpcnN0IHdvcmQgb2YgInBlcmwiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmdzLgotK3NldCBkdW1teSBwZXJsOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wYXRoX1BF Ukwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKyAgY2FzZSAkUEVSTCBpbgotKyAgW1xcL10qIHwgPzpbXFwvXSopCi0rICBhY19jdl9wYXRo X1BFUkw9IiRQRVJMIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0 aC4KLSsgIDs7Ci0rICAqKQotKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRP UgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNf ZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wYXRoX1BFUkw9IiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2Rv bmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICA7OwotK2VzYWMKLStmaQotK1BFUkw9JGFjX2N2 X3BhdGhfUEVSTAotK2lmIHRlc3QgLW4gIiRQRVJMIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJFBFUkwiID4mNQotKyRhc19lY2hvICIkUEVSTCIgPiY2OyB9 Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQot KyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotKyBpZiB0ZXN0ICJ4JGVuYWJs ZV9odG1sX2RvYyIgPSB4eWVzOyB0aGVuCi0rICBIVE1MX0RPQ19UUlVFPQotKyAgSFRNTF9ET0Nf RkFMU0U9JyMnCi0rZWxzZQotKyAgSFRNTF9ET0NfVFJVRT0nIycKLSsgIEhUTUxfRE9DX0ZBTFNF PQotK2ZpCi0rCi0rCi0rCi0rIyBDaGVjayBmb3IgZGlmZiBwcm9ncmFtIHVzZWQgZm9yIHRlc3Rz Ci0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJkaWZmIiwgc28gaXQgY2FuIGJlIGEgcHJv Z3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgZGlmZjsgYWNfd29yZD0kMgotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNf Y3ZfcHJvZ19kaWZmX29rK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRkaWZmX29rIjsgdGhlbgotKyAgYWNfY3Zf cHJvZ19kaWZmX29rPSIkZGlmZl9vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu Ci0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNf ZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KLSsgICAgYWNfY3ZfcHJvZ19kaWZmX29rPSJ5ZXMiCi0rICAgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJy ZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICB0ZXN0 IC16ICIkYWNfY3ZfcHJvZ19kaWZmX29rIiAmJiBhY19jdl9wcm9nX2RpZmZfb2s9Im5vIgotK2Zp Ci0rZmkKLStkaWZmX29rPSRhY19jdl9wcm9nX2RpZmZfb2sKLStpZiB0ZXN0IC1uICIkZGlmZl9v ayI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRkaWZmX29r IiA+JjUKLSskYXNfZWNobyAiJGRpZmZfb2siID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQot K2ZpCi0rCi0rCi0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJzZWQiLCBzbyBpdCBjYW4g YmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBzZWQ7IGFjX3dvcmQ9JDIK LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0 ICIke2FjX2N2X3Byb2dfc2VkX29rK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRzZWRfb2siOyB0aGVuCi0rICBh Y19jdl9wcm9nX3NlZF9vaz0iJHNlZF9vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl c3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3Ig YXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRh c19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19zZWRfb2s9InllcyIKLSsgICAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAg YnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgIHRl c3QgLXogIiRhY19jdl9wcm9nX3NlZF9vayIgJiYgYWNfY3ZfcHJvZ19zZWRfb2s9Im5vIgotK2Zp Ci0rZmkKLStzZWRfb2s9JGFjX2N2X3Byb2dfc2VkX29rCi0raWYgdGVzdCAtbiAiJHNlZF9vayI7 IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRzZWRfb2siID4m NQotKyRhc19lY2hvICIkc2VkX29rIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQot KwotKwotK2VuYWJsZV90ZXN0cz15ZXMKLSt0ZXN0ICJ4JGRpZmZfb2siICE9IHh5ZXMgJiYgZW5h YmxlX3Rlc3RzPW5vCi0rdGVzdCAieCRzZWRfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5v Ci0rIGlmIHRlc3QgIngkZW5hYmxlX3Rlc3RzIiA9IHh5ZXM7IHRoZW4KLSsgIFJVTl9URVNUU19U UlVFPQotKyAgUlVOX1RFU1RTX0ZBTFNFPScjJwotK2Vsc2UKLSsgIFJVTl9URVNUU19UUlVFPScj JwotKyAgUlVOX1RFU1RTX0ZBTFNFPQotK2ZpCi0rCi0rCi0rCi0rIyBDaGVja3MgZm9yIGhlYWRl ciBmaWxlcwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQU5T SSBDIGhlYWRlciBmaWxlcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEFOU0kgQyBo ZWFkZXIgZmlsZXMuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zdGRjK3Nl dH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsg IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19B Q0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPHN0 ZGxpYi5oPgotKyNpbmNsdWRlIDxzdGRhcmcuaD4KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rI2lu Y2x1ZGUgPGZsb2F0Lmg+Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVy biAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNf dHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21w aWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIk YWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY3ZfaGVhZGVy X3N0ZGM9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz OiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlhY19jdl9o ZWFkZXJfc3RkYz1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCi0raWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0 ZGMgPSB5ZXM7IHRoZW4KLSsgICMgU3VuT1MgNC54IHN0cmluZy5oIGRvZXMgbm90IGRlY2xhcmUg bWVtKiwgY29udHJhcnkgdG8gQU5TSS4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRl c3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29u ZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPHN0cmluZy5oPgotKwotK19BQ0VPRgotK2lmIChldmFs ICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSsgICRFR1JFUCAibWVtY2hyIiA+ L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBhY19jdl9oZWFkZXJfc3RkYz1u bwotK2ZpCi0rcm0gLWYgY29uZnRlc3QqCi0rCi0rZmkKLSsKLStpZiB0ZXN0ICRhY19jdl9oZWFk ZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyBJU0MgMi4wLjIgc3RkbGliLmggZG9lcyBub3QgZGVj bGFyZSBmcmVlLCBjb250cmFyeSB0byBBTlNJLgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rCi0rX0FDRU9GCi0raWYg KGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotKyAgJEVHUkVQICJmcmVl IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBhY19jdl9oZWFkZXJfc3Rk Yz1ubwotK2ZpCi0rcm0gLWYgY29uZnRlc3QqCi0rCi0rZmkKLSsKLStpZiB0ZXN0ICRhY19jdl9o ZWFkZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyAvYmluL2NjIGluIElyaXgtNC4wLjUgZ2V0cyBu b24tQU5TSSBjdHlwZSBtYWNyb3MgdW5sZXNzIHVzaW5nIC1hbnNpLgotKyAgaWYgdGVzdCAiJGNy b3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxjdHlwZS5oPgotKyNpbmNs dWRlIDxzdGRsaWIuaD4KLSsjaWYgKCgnICcgJiAweDBGRikgPT0gMHgwMjApCi0rIyBkZWZpbmUg SVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ3onKQotKyMgZGVmaW5lIFRPVVBQRVIo YykgKElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2EnKSA6IChjKSkKLSsjZWxzZQotKyMgZGVm aW5lIElTTE9XRVIoYykgXAotKwkJICAgKCgnYScgPD0gKGMpICYmIChjKSA8PSAnaScpIFwKLSsJ CSAgICAgfHwgKCdqJyA8PSAoYykgJiYgKGMpIDw9ICdyJykgXAotKwkJICAgICB8fCAoJ3MnIDw9 IChjKSAmJiAoYykgPD0gJ3onKSkKLSsjIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VSKGMpID8g KChjKSB8IDB4NDApIDogKGMpKQotKyNlbmRpZgotKwotKyNkZWZpbmUgWE9SKGUsIGYpICgoKGUp ICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCi0raW50Ci0rbWFpbiAoKQotK3sKLSsgIGludCBp OwotKyAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQotKyAgICBpZiAoWE9SIChpc2xvd2VyIChp KSwgSVNMT1dFUiAoaSkpCi0rCXx8IHRvdXBwZXIgKGkpICE9IFRPVVBQRVIgKGkpKQotKyAgICAg IHJldHVybiAyOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0JGFj X2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgot KyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190 cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRM SU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsg IChldmFsICIkYWNfbGluayIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMp OyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSsgIHsgKGNhc2UgIigoJGFj X3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owot KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1Ci0rICAoZXZhbCAiJGFjX3RyeSIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRh Y19zdGF0dXMpOyB9OyB9OyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTog cHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4k YWNfZXh0ID4mNQotKwotKyggZXhpdCAkYWNfc3RhdHVzICkKLSthY19jdl9oZWFkZXJfc3RkYz1u bwotK2ZpCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlICouY29yZSBjb3JlLmNv bmZ0ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotKwotKwotK2ZpCi0rZmkKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNQotKyRhc19l Y2hvICIkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNjsgfQotK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9z dGRjID0geWVzOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5l IFNURENfSEVBREVSUyAxCi0rX0FDRU9GCi0rCi0rZmkKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aW1lLmggYW5kIHN5cy90aW1lLmggbWF5IGJvdGgg YmUgaW5jbHVkZWQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGltZS5oIGFu ZCBzeXMvdGltZS5oIG1heSBib3RoIGJlIGluY2x1ZGVkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAi JHthY19jdl9oZWFkZXJfdGltZStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsv KiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh Y19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZz LmguICAqLwotKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSsjaW5jbHVkZSA8c3lzL3RpbWUuaD4K LSsjaW5jbHVkZSA8dGltZS5oPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0raWYgKChzdHJ1Y3Qg dG0gKikgMCkKLStyZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLSty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStj YXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEK LSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8 fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRl c3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY3ZfaGVhZGVyX3RpbWU9eWVzCi0rZWxzZQotKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlhY19jdl9oZWFkZXJfdGltZT1ubwotK2ZpCi0r Ci0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k YWNfZXh0Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zf aGVhZGVyX3RpbWUiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfaGVhZGVyX3RpbWUiID4mNjsgfQot K2lmIHRlc3QgJGFjX2N2X2hlYWRlcl90aW1lID0geWVzOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRl ZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCi0rX0FDRU9GCi0r Ci0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLStmb3Ig YWNfaGVhZGVyIGluIGNtYXRoIFwKLSsgIGRlcXVlIFwKLSsgIGZzdHJlYW0gXAotKyAgaW9tYW5p cCBcCi0rICBpb3N0cmVhbSBcCi0rICBzc3RyZWFtIFwKLSsgIGxpbWl0cyBcCi0rICBsaXN0IFwK LSsgIHNldCBcCi0rICB2ZWN0b3IgXAotKyAgbWFwIFwKLSsgIHF1ZXVlIFwKLSsgIHN0ZGV4Y2Vw dCBcCi0rICBzdHJpbmcKLStkbwotK2FzX2FjX0hlYWRlcj1gJGFzX2VjaG8gImFjX2N2X2hlYWRl cl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKLStpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBl dmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICIgPiY2OyB9Ci0raWYgeyBhc192YXI9 JGFzX2FjX0hlYWRlcjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsg dGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStmaQotK2FjX3Jlcz1gZXZhbCAn YXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAg ICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSsk YXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rZWxzZQotKyAgIyBJcyB0aGUgaGVhZGVyIGNvbXBp bGFibGU/Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIg dXNhYmlsaXR5IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyAkYWNfaGVhZGVyIHVzYWJpbGl0 eS4uLiAiID4mNjsgfQotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZk ZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAot K2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICov Ci0rJGFjX2luY2x1ZGVzX2RlZmF1bHQKLSsjaW5jbHVkZSA8JGFjX2hlYWRlcj4KLStfQUNFT0YK LStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIK LStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5l cjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m dGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK LSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFn IiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29u ZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwotK2Vsc2UK LSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9e L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfaGVhZGVyX2NvbXBpbGVyPW5vCi0r ZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0LiRhY19leHQKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVh ZGVyX2NvbXBpbGVyIiA+JjUKLSskYXNfZWNobyAiJGFjX2hlYWRlcl9jb21waWxlciIgPiY2OyB9 Ci0rCi0rIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2UiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nICRhY19oZWFkZXIgcHJlc2VuY2UuLi4gIiA+JjY7IH0KLStjYXQgPmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMu aCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDwkYWNfaGVhZGVyPgotK19BQ0VPRgot K2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgotK2Nhc2UgIigoJGFjX3Ry eSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAg KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRh c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikg PiY1Ci0rICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEK LSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhp dCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfcHJl cHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgotKyAgICAgICB9OyB0aGVuCi0rICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKLStlbHNl Ci0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICBhY19oZWFkZXJfcHJlcHJvYz1ubwot K2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQotKyRhc19l Y2hvICIkYWNfaGVhZGVyX3ByZXByb2MiID4mNjsgfQotKwotKyMgU28/ICBXaGF0IGFib3V0IHRo aXMgaGVhZGVyPwotK2Nhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6 JGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBpbgotKyAgeWVzOm5vOiApCi0rICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUg Y29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJl amVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQotKyAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21w aWxlcidzIHJlc3VsdCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRl cjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30KLSsgICAgYWNf aGVhZGVyX3ByZXByb2M9eWVzCi0rICAgIDs7Ci0rICBubzp5ZXM6KiApCi0rICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBjYW5u b3QgYmUgY29tcGlsZWQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFk ZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KLSsgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBjaGVjayBmb3IgbWlz c2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6ICRhY19oZWFkZXI6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVy cz8iID4mMjt9Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNf aGVhZGVyOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQotKyRhc19lY2hvICIk YXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlv biIgPiYyO30KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19o ZWFkZXI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4m NQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBzZWN0aW9uIFwi UHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9Ci0rICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhl IHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzog JGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4m Mjt9Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVy OiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mNQot KyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRo ZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiYyO30KLSsgICAgKCBjYXQgPDxcX0FT Qk9YCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMj Ci0rIyMgUmVwb3J0IHRoaXMgdG8gbXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0ICMjCi0r IyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rX0FT Qk9YCi0rICAgICApIHwgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCi0rICAg IDs7Ci0rZXNhYwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFj X2hlYWRlciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gIiA+ JjY7IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3Zh citzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGV2YWwgIiRhc19hY19IZWFkZXI9XCRhY19oZWFkZXJfcHJlcHJvYyIKLStmaQot K2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQotKwkJICRhc19lY2hvICIk YXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rCi0rZmkKLSthc192YWw9 YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfSGVhZGVyJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCIn YAotKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgotKyAgY2F0ID4+Y29uZmRl ZnMuaCA8PF9BQ0VPRgotKyNkZWZpbmUgYCRhc19lY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFz X3RyX2NwcGAgMQotK19BQ0VPRgotKwotK2ZpCi0rCi0rZG9uZQotKwotKwotKwotKyMgRGVmaW5l IGNvbmZpZ3VyZWQgZmlsZXMKLSthY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFr ZWZpbGUgc29jaS1jb25maWcgc29jaS5wYyBzb2NpLnNwZWMgc29jaS9NYWtlZmlsZSBzb2NpL2Nv cmUvTWFrZWZpbGUgc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9NYWtlZmls ZSBzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlIHNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9N YWtlZmlsZSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUgc29j aS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZSBtYW4vTWFrZWZpbGUgZG9jL01ha2VmaWxl IGRvYy9iYWNrZW5kcy9NYWtlZmlsZSBidWlsZC9NYWtlZmlsZSBidWlsZC91bml4L01ha2VmaWxl IGJ1aWxkL21zdmM4MC9NYWtlZmlsZSBidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlIGJ1aWxkL21z dmM4MC9saWIvTWFrZWZpbGUiCi0rCi0rCi0rY2F0ID5jb25mY2FjaGUgPDxcX0FDRU9GCi0rIyBU aGlzIGZpbGUgaXMgYSBzaGVsbCBzY3JpcHQgdGhhdCBjYWNoZXMgdGhlIHJlc3VsdHMgb2YgY29u ZmlndXJlCi0rIyB0ZXN0cyBydW4gb24gdGhpcyBzeXN0ZW0gc28gdGhleSBjYW4gYmUgc2hhcmVk IGJldHdlZW4gY29uZmlndXJlCi0rIyBzY3JpcHRzIGFuZCBjb25maWd1cmUgcnVucywgc2VlIGNv bmZpZ3VyZSdzIG9wdGlvbiAtLWNvbmZpZy1jYWNoZS4KLSsjIEl0IGlzIG5vdCB1c2VmdWwgb24g b3RoZXIgc3lzdGVtcy4gIElmIGl0IGNvbnRhaW5zIHJlc3VsdHMgeW91IGRvbid0Ci0rIyB3YW50 IHRvIGtlZXAsIHlvdSBtYXkgcmVtb3ZlIG9yIGVkaXQgaXQuCi0rIwotKyMgY29uZmlnLnN0YXR1 cyBvbmx5IHBheXMgYXR0ZW50aW9uIHRvIHRoZSBjYWNoZSBmaWxlIGlmIHlvdSBnaXZlIGl0Ci0r IyB0aGUgLS1yZWNoZWNrIG9wdGlvbiB0byByZXJ1biBjb25maWd1cmUuCi0rIwotKyMgYGFjX2N2 X2Vudl9mb28nIHZhcmlhYmxlcyAoc2V0IG9yIHVuc2V0KSB3aWxsIGJlIG92ZXJyaWRkZW4gd2hl bgotKyMgbG9hZGluZyB0aGlzIGZpbGUsIG90aGVyICp1bnNldCogYGFjX2N2X2Zvbycgd2lsbCBi ZSBhc3NpZ25lZCB0aGUKLSsjIGZvbGxvd2luZyB2YWx1ZXMuCi0rCi0rX0FDRU9GCi0rCi0rIyBU aGUgZm9sbG93aW5nIHdheSBvZiB3cml0aW5nIHRoZSBjYWNoZSBtaXNoYW5kbGVzIG5ld2xpbmVz IGluIHZhbHVlcywKLSsjIGJ1dCB3ZSBrbm93IG9mIG5vIHdvcmthcm91bmQgdGhhdCBpcyBzaW1w bGUsIHBvcnRhYmxlLCBhbmQgZWZmaWNpZW50LgotKyMgU28sIHdlIGtpbGwgdmFyaWFibGVzIGNv bnRhaW5pbmcgbmV3bGluZXMuCi0rIyBVbHRyaXggc2ggc2V0IHdyaXRlcyB0byBzdGRlcnIgYW5k IGNhbid0IGJlIHJlZGlyZWN0ZWQgZGlyZWN0bHksCi0rIyBhbmQgc2V0cyB0aGUgaGlnaCBiaXQg aW4gdGhlIGNhY2hlIGZpbGUgdW5sZXNzIHdlIGFzc2lnbiB0byB0aGUgdmFycy4KLSsoCi0rICBm b3IgYWNfdmFyIGluIGAoc2V0KSAyPiYxIHwgc2VkIC1uICdzL15cKFthLXpBLVpfXVthLXpBLVow LTlfXSpcKT0uKi9cMS9wJ2A7IGRvCi0rICAgIGV2YWwgYWNfdmFsPVwkJGFjX3ZhcgotKyAgICBj YXNlICRhY192YWwgaW4gIygKLSsgICAgKiR7YXNfbmx9KikKLSsgICAgICBjYXNlICRhY192YXIg aW4gIygKLSsgICAgICAqX2N2XyopIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5H OiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogV0FSTklORzogY2FjaGUgdmFyaWFibGUgJGFjX3ZhciBjb250YWlucyBhIG5l d2xpbmUiID4mMjt9IDs7Ci0rICAgICAgZXNhYwotKyAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAot KyAgICAgIF8gfCBJRlMgfCBhc19ubCkgOzsgIygKLSsgICAgICBCQVNIX0FSR1YgfCBCQVNIX1NP VVJDRSkgZXZhbCAkYWNfdmFyPSA7OyAjKAotKyAgICAgICopICRhc191bnNldCAkYWNfdmFyIDs7 Ci0rICAgICAgZXNhYyA7OwotKyAgICBlc2FjCi0rICBkb25lCi0rCi0rICAoc2V0KSAyPiYxIHwK LSsgICAgY2FzZSAkYXNfbmxgKGFjX3NwYWNlPScgJzsgc2V0KSAyPiYxYCBpbiAjKAotKyAgICAq JHthc19ubH1hY19zcGFjZT1cICopCi0rICAgICAgIyBgc2V0JyBkb2VzIG5vdCBxdW90ZSBjb3Jy ZWN0bHksIHNvIGFkZCBxdW90ZXMgKGRvdWJsZS1xdW90ZQotKyAgICAgICMgc3Vic3RpdHV0aW9u IHR1cm5zIFxcXFwgaW50byBcXCwgYW5kIHNlZCB0dXJucyBcXCBpbnRvIFwpLgotKyAgICAgIHNl ZCAtbiBcCi0rCSJzLycvJ1xcXFwnJy9nOwotKwkgIHMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3Zf W18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9J1xcMicvcCIKLSsgICAgICA7OyAjKAot KyAgICAqKQotKyAgICAgICMgYHNldCcgcXVvdGVzIGNvcnJlY3RseSBhcyByZXF1aXJlZCBieSBQ T1NJWCwgc28gZG8gbm90IGFkZCBxdW90ZXMuCi0rICAgICAgc2VkIC1uICIvXltfJGFzX2NyX2Fs bnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKj0vcCIKLSsgICAgICA7OwotKyAgICBlc2FjIHwKLSsg ICAgc29ydAotKykgfAotKyAgc2VkICcKLSsgICAgIC9eYWNfY3ZfZW52Xy9iIGVuZAotKyAgICAg dCBjbGVhcgotKyAgICAgOmNsZWFyCi0rICAgICBzL15cKFtePV0qXCk9XCguKlt7fV0uKlwpJC90 ZXN0ICIke1wxK3NldH0iID0gc2V0IHx8ICYvCi0rICAgICB0IGVuZAotKyAgICAgcy9eXChbXj1d KlwpPVwoLipcKSQvXDE9JHtcMT1cMn0vCi0rICAgICA6ZW5kJyA+PmNvbmZjYWNoZQotK2lmIGRp ZmYgIiRjYWNoZV9maWxlIiBjb25mY2FjaGUgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UK LSsgIGlmIHRlc3QgLXcgIiRjYWNoZV9maWxlIjsgdGhlbgotKyAgICB0ZXN0ICJ4JGNhY2hlX2Zp bGUiICE9ICJ4L2Rldi9udWxsIiAmJgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiB1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogdXBk YXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9Ci0rICAgIGNhdCBjb25mY2FjaGUgPiRjYWNo ZV9maWxlCi0rICBlbHNlCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBub3QgdXBk YXRpbmcgdW53cml0YWJsZSBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogbm90IHVwZGF0aW5nIHVud3JpdGFibGUgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9Ci0rICBm aQotK2ZpCi0rcm0gLWYgY29uZmNhY2hlCi0rCi0rdGVzdCAieCRwcmVmaXgiID0geE5PTkUgJiYg cHJlZml4PSRhY19kZWZhdWx0X3ByZWZpeAotKyMgTGV0IG1ha2UgZXhwYW5kIGV4ZWNfcHJlZml4 LgotK3Rlc3QgIngkZXhlY19wcmVmaXgiID0geE5PTkUgJiYgZXhlY19wcmVmaXg9JyR7cHJlZml4 fScKLSsKLStERUZTPS1ESEFWRV9DT05GSUdfSAotKwotK2FjX2xpYm9ianM9Ci0rYWNfbHRsaWJv YmpzPQotK2ZvciBhY19pIGluIDogJExJQk9CSlM7IGRvIHRlc3QgIngkYWNfaSIgPSB4OiAmJiBj b250aW51ZQotKyAgIyAxLiBSZW1vdmUgdGhlIGV4dGVuc2lvbiwgYW5kICRVIGlmIGFscmVhZHkg aW5zdGFsbGVkLgotKyAgYWNfc2NyaXB0PSdzL1wkVVwuLy4vO3MvXC5vJC8vO3MvXC5vYmokLy8n Ci0rICBhY19pPWAkYXNfZWNobyAiJGFjX2kiIHwgc2VkICIkYWNfc2NyaXB0ImAKLSsgICMgMi4g UHJlcGVuZCBMSUJPQkpESVIuICBXaGVuIHVzZWQgd2l0aCBhdXRvbWFrZT49MS4xMCBMSUJPQkpE SVIKLSsgICMgICAgd2lsbCBiZSBzZXQgdG8gdGhlIGRpcmVjdG9yeSB3aGVyZSBMSUJPQkpTIG9i amVjdHMgYXJlIGJ1aWx0LgotKyAgYWNfbGlib2Jqcz0iJGFjX2xpYm9ianMgXCR7TElCT0JKRElS fSRhY19pXCRVLiRhY19vYmpleHQiCi0rICBhY19sdGxpYm9ianM9IiRhY19sdGxpYm9ianMgXCR7 TElCT0JKRElSfSRhY19pIickVS5sbycKLStkb25lCi0rTElCT0JKUz0kYWNfbGlib2JqcwotKwot K0xUTElCT0JKUz0kYWNfbHRsaWJvYmpzCi0rCi0rCi0rIGlmIHRlc3QgLW4gIiRFWEVFWFQiOyB0 aGVuCi0rICBhbV9fRVhFRVhUX1RSVUU9Ci0rICBhbV9fRVhFRVhUX0ZBTFNFPScjJwotK2Vsc2UK LSsgIGFtX19FWEVFWFRfVFJVRT0nIycKLSsgIGFtX19FWEVFWFRfRkFMU0U9Ci0rZmkKLSsKLStp ZiB0ZXN0IC16ICIke0hBVkVfQ1BQVU5JVF9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX0NQUFVO SVRfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6 IGNvbmRpdGlvbmFsIFwiSEFWRV9DUFBVTklUXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxs eSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX0NQUFVOSVRc IiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBv bmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIke0FNREVQX1RSVUV9IiAmJiB0ZXN0IC16ICIke0FN REVQX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBjb25kaXRpb25hbCBcIkFNREVQXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlz IG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJBTURFUFwiIHdhcyBuZXZlciBk ZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBj b25kaXRpb25hbGx5LiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQot K2lmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhfVFJVRX0iICYmIHRlc3QgLXogIiR7YW1fX2Zh c3RkZXBDWFhfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog ZXJyb3I6IGNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDWFhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4K LStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9u YWxseS4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19m YXN0ZGVwQ1hYXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBt YWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0raWYgdGVzdCAteiAiJHthbV9fZmFzdGRlcENDX1RSVUV9 IiAmJiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ0NfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDQ1wi IHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9u bHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IGNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFs bHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIg PiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRlc3QgLXogIiR7 YW1fX2Zhc3RkZXBDWFhfVFJVRX0iICYmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhfRkFMU0V9 IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlv bmFsIFwiYW1fX2Zhc3RkZXBDWFhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMg bWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ1hYXCIgd2Fz IG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBp bnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fQotK2ZpCi0raWYgdGVzdCAteiAiJHtTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUV9IiAmJiB0ZXN0 IC16ICIke1NPQ0lfSEVBREVSU19CVVJJRURfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU09DSV9IRUFERVJTX0JVUklF RFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2Fz IG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IGNvbmRpdGlvbmFsIFwiU09DSV9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZpbmVk LgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRp b25hbGx5LiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRl c3QgLXogIiR7U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9UUlVFfSIgJiYgdGVzdCAteiAiJHtT T0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIlNPQ0lfTVlTUUxfSEVBREVSU19C VVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3Jv IHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBjb25kaXRpb25hbCBcIlNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURcIiB3YXMgbmV2 ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9r ZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0r ZmkKLStpZiB0ZXN0IC16ICIke1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9UUlVFfSIg JiYgdGVzdCAteiAiJHtTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfRkFMU0V9IjsgdGhl bgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwi U09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1 YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHku IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJTT0NJX1BPU1RH UkVTUUxfSEVBREVSU19CVVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMg bWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0r ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIke0hBVkVfTVlT UUxfVFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9NWVNRTF9GQUxTRX0iOyB0aGVuCi0rICB7IHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX01ZU1FM XCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMg b25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogY29uZGl0aW9uYWwgXCJIQVZFX01ZU1FMXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxs eSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+ JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0raWYgdGVzdCAteiAiJHtI QVZFX09SQUNMRV9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX09SQUNMRV9GQUxTRX0iOyB0aGVu Ci0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJI QVZFX09SQUNMRVwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUg bWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9PUkFDTEVcIiB3YXMgbmV2ZXIgZGVmaW5l ZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0 aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0 ZXN0IC16ICIke0hBVkVfUE9TVEdSRVNRTF9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX1BPU1RH UkVTUUxfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJy b3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9QT1NUR1JFU1FMXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0r VXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFs bHkuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX1BP U1RHUkVTUUxcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1h Y3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIke0lORk9fRE9DX1RSVUV9IiAmJiB0 ZXN0IC16ICIke0lORk9fRE9DX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIklORk9fRE9DXCIgd2FzIG5ldmVyIGRlZmlu ZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRp dGlvbmFsbHkuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJJ TkZPX0RPQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFj cm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSsgICB7IChleGl0IDEp OyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRlc3QgLXogIiR7SFRNTF9ET0NfVFJVRX0iICYmIHRl c3QgLXogIiR7SFRNTF9ET0NfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSFRNTF9ET0NcIiB3YXMgbmV2ZXIgZGVmaW5l ZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0 aW9uYWxseS4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIkhU TUxfRE9DXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNy byB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQotK2ZpCi0raWYgdGVzdCAteiAiJHtSVU5fVEVTVFNfVFJVRX0iICYmIHRl c3QgLXogIiR7UlVOX1RFU1RTX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIlJVTl9URVNUU1wiIHdhcyBuZXZlciBkZWZp bmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25k aXRpb25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwi UlVOX1RFU1RTXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBt YWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0rCi0rOiAke0NPTkZJR19TVEFUVVM9Li9jb25maWcuc3Rh dHVzfQotK2FjX3dyaXRlX2ZhaWw9MAotK2FjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFuX2Zp bGVzCi0rYWNfY2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxlcyAkQ09ORklHX1NUQVRVUyIKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY3JlYXRpbmcgJENPTkZJR19TVEFUVVMiID4mNQot KyRhc19lY2hvICIkYXNfbWU6IGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjY7fQotK2NhdCA+ JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rIyEgJFNIRUxMCi0r IyBHZW5lcmF0ZWQgYnkgJGFzX21lLgotKyMgUnVuIHRoaXMgZmlsZSB0byByZWNyZWF0ZSB0aGUg Y3VycmVudCBjb25maWd1cmF0aW9uLgotKyMgQ29tcGlsZXIgb3V0cHV0IHByb2R1Y2VkIGJ5IGNv bmZpZ3VyZSwgdXNlZnVsIGZvciBkZWJ1Z2dpbmcKLSsjIGNvbmZpZ3VyZSwgaXMgaW4gY29uZmln LmxvZyBpZiBpdCBleGlzdHMuCi0rCi0rZGVidWc9ZmFsc2UKLSthY19jc19yZWNoZWNrPWZhbHNl Ci0rYWNfY3Nfc2lsZW50PWZhbHNlCi0rU0hFTEw9XCR7Q09ORklHX1NIRUxMLSRTSEVMTH0KLStf QUNFT0YKLSsKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFp bD0xCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgTTRzaCBJbml0aWFsaXphdGlv bi4gICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rCi0rIyBCZSBtb3JlIEJvdXJu ZSBjb21wYXRpYmxlCi0rRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAot K2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251 bGwgMj4mMTsgdGhlbgotKyAgZW11bGF0ZSBzaAotKyAgTlVMTENNRD06Ci0rICAjIFByZS00LjIg dmVyc2lvbnMgb2YgWnNoIGRvIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKLSsg ICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCi0rICBh bGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKLSsgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZWxz ZQotKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGluCi0rICAqcG9zaXgqKSBzZXQgLW8g cG9zaXggOzsKLStlc2FjCi0rCi0rZmkKLSsKLSsKLSsKLSsKLSsjIFBBVEggbmVlZHMgQ1IKLSsj IEF2b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCi0rYXNfY3JfbGV0dGVycz0n YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonCi0rYXNfY3JfTEVUVEVSUz0nQUJDREVGR0hJSktM TU5PUFFSU1RVVldYWVonCi0rYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRU RVJTCi0rYXNfY3JfZGlnaXRzPScwMTIzNDU2Nzg5JwotK2FzX2NyX2FsbnVtPSRhc19jcl9MZXR0 ZXJzJGFzX2NyX2RpZ2l0cwotKwotK2FzX25sPScKLSsnCi0rZXhwb3J0IGFzX25sCi0rIyBQcmlu dGluZyBhIGxvbmcgc3RyaW5nIGNyYXNoZXMgU29sYXJpcyA3IC91c3IvYmluL3ByaW50Zi4KLSth c19lY2hvPSdcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcJwot K2FzX2VjaG89JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobwotK2FzX2Vj aG89JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvCi0raWYg KHRlc3QgIlhgcHJpbnRmICVzICRhc19lY2hvYCIgPSAiWCRhc19lY2hvIikgMj4vZGV2L251bGw7 IHRoZW4KLSsgIGFzX2VjaG89J3ByaW50ZiAlc1xuJwotKyAgYXNfZWNob19uPSdwcmludGYgJXMn Ci0rZWxzZQotKyAgaWYgdGVzdCAiWGAoL3Vzci91Y2IvZWNobyAtbiAtbiAkYXNfZWNobykgMj4v ZGV2L251bGxgIiA9ICJYLW4gJGFzX2VjaG8iOyB0aGVuCi0rICAgIGFzX2VjaG9fYm9keT0nZXZh bCAvdXNyL3VjYi9lY2hvIC1uICIkMSRhc19ubCInCi0rICAgIGFzX2VjaG9fbj0nL3Vzci91Y2Iv ZWNobyAtbicKLSsgIGVsc2UKLSsgICAgYXNfZWNob19ib2R5PSdldmFsIGV4cHIgIlgkMSIgOiAi WFxcKC4qXFwpIicKLSsgICAgYXNfZWNob19uX2JvZHk9J2V2YWwKLSsgICAgICBhcmc9JDE7Ci0r ICAgICAgY2FzZSAkYXJnIGluCi0rICAgICAgKiIkYXNfbmwiKikKLSsJZXhwciAiWCRhcmciIDog IlhcXCguKlxcKSRhc19ubCI7Ci0rCWFyZz1gZXhwciAiWCRhcmciIDogIi4qJGFzX25sXFwoLipc XCkiYDs7Ci0rICAgICAgZXNhYzsKLSsgICAgICBleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpIiB8 IHRyIC1kICIkYXNfbmwiCi0rICAgICcKLSsgICAgZXhwb3J0IGFzX2VjaG9fbl9ib2R5Ci0rICAg IGFzX2VjaG9fbj0nc2ggLWMgJGFzX2VjaG9fbl9ib2R5IGFzX2VjaG8nCi0rICBmaQotKyAgZXhw b3J0IGFzX2VjaG9fYm9keQotKyAgYXNfZWNobz0nc2ggLWMgJGFzX2VjaG9fYm9keSBhc19lY2hv JwotK2ZpCi0rCi0rIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCi0raWYgdGVzdCAiJHtQQVRI X1NFUEFSQVRPUitzZXR9IiAhPSBzZXQ7IHRoZW4KLSsgIFBBVEhfU0VQQVJBVE9SPToKLSsgIChQ QVRIPScvYmluOy9iaW4nOyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9kZXYvbnVsbCAyPiYxICYm IHsKLSsgICAgKFBBVEg9Jy9iaW46L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9u dWxsIDI+JjEgfHwKLSsgICAgICBQQVRIX1NFUEFSQVRPUj0nOycKLSsgIH0KLStmaQotKwotKyMg U3VwcG9ydCB1bnNldCB3aGVuIHBvc3NpYmxlLgotK2lmICggKE1BSUw9NjA7IHVuc2V0IE1BSUwp IHx8IGV4aXQpID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgYXNfdW5zZXQ9dW5zZXQKLStlbHNl Ci0rICBhc191bnNldD1mYWxzZQotK2ZpCi0rCi0rCi0rIyBJRlMKLSsjIFdlIG5lZWQgc3BhY2Us IHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLiAgUXVvdGluZyBpcwot KyMgdGhlcmUgdG8gcHJldmVudCBlZGl0b3JzIGZyb20gY29tcGxhaW5pbmcgYWJvdXQgc3BhY2Ut dGFiLgotKyMgKElmIF9BU19QQVRIX1dBTEsgd2VyZSBjYWxsZWQgd2l0aCBJRlMgdW5zZXQsIGl0 IHdvdWxkIGRpc2FibGUgd29yZAotKyMgc3BsaXR0aW5nIGJ5IHNldHRpbmcgSUZTIHRvIGVtcHR5 IHZhbHVlLikKLStJRlM9IiAiIgkkYXNfbmwiCi0rCi0rIyBGaW5kIHdobyB3ZSBhcmUuICBMb29r IGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8gZGlyZWN0b3J5IHNlcGFyYXRvci4KLStjYXNl ICQwIGluCi0rICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7Ci0rICAqKSBhc19zYXZlX0lGUz0k SUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJ RlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgdGVz dCAtciAiJGFzX2Rpci8kMCIgJiYgYXNfbXlzZWxmPSRhc19kaXIvJDAgJiYgYnJlYWsKLStkb25l Ci0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgICAgOzsKLStlc2FjCi0rIyBXZSBkaWQgbm90IGZp bmQgb3Vyc2VsdmVzLCBtb3N0IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBDT01NQU5EJwot KyMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgotK2lm IHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRoZW4KLSsgIGFzX215c2VsZj0kMAotK2ZpCi0raWYg dGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhlbgotKyAgJGFzX2VjaG8gIiRhc19teXNlbGY6IGVy cm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgZmlsZSBuYW1l IiA+JjIKLSsgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfQotK2ZpCi0rCi0rIyBXb3JrIGFyb3VuZCBi dWdzIGluIHByZS0zLjAgVVdJTiBrc2guCi0rZm9yIGFzX3ZhciBpbiBFTlYgTUFJTCBNQUlMUEFU SAotK2RvICgkYXNfdW5zZXQgJGFzX3ZhcikgPi9kZXYvbnVsbCAyPiYxICYmICRhc191bnNldCAk YXNfdmFyCi0rZG9uZQotK1BTMT0nJCAnCi0rUFMyPSc+ICcKLStQUzQ9JysgJwotKwotKyMgTkxT IG51aXNhbmNlcy4KLStMQ19BTEw9QwotK2V4cG9ydCBMQ19BTEwKLStMQU5HVUFHRT1DCi0rZXhw b3J0IExBTkdVQUdFCi0rCi0rIyBSZXF1aXJlZCB0byB1c2UgYmFzZW5hbWUuCi0raWYgZXhwciBh IDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjEgJiYKLSsgICB0ZXN0ICJYYGV4cHIgMDAwMDEgOiAn LipcKC4uLlwpJ2AiID0gWDAwMTsgdGhlbgotKyAgYXNfZXhwcj1leHByCi0rZWxzZQotKyAgYXNf ZXhwcj1mYWxzZQotK2ZpCi0rCi0raWYgKGJhc2VuYW1lIC0tIC8pID4vZGV2L251bGwgMj4mMSAm JiB0ZXN0ICJYYGJhc2VuYW1lIC0tIC8gMj4mMWAiID0gIlgvIjsgdGhlbgotKyAgYXNfYmFzZW5h bWU9YmFzZW5hbWUKLStlbHNlCi0rICBhc19iYXNlbmFtZT1mYWxzZQotK2ZpCi0rCi0rCi0rIyBO YW1lIG9mIHRoZSBleGVjdXRhYmxlLgotK2FzX21lPWAkYXNfYmFzZW5hbWUgLS0gIiQwIiB8fAot KyRhc19leHByIFgvIiQwIiA6ICcuKi9cKFteL11bXi9dKlwpLyokJyBcfCBcCi0rCSBYIiQwIiA6 ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkMCIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8 Ci0rJGFzX2VjaG8gWC8iJDAiIHwKLSsgICAgc2VkICcvXi4qXC9cKFteL11bXi9dKlwpXC8qJC97 Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXC9cKFwvXC9cKSQvewotKwkg ICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwvXChcL1wpLiovewotKwkgICAgcy8v XDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIHMvLiovLi87IHEnYAotKwotKyMgQ0RQQVRILgotKyRh c191bnNldCBDRFBBVEgKLSsKLSsKLSsKLSsgIGFzX2xpbmVub18xPSRMSU5FTk8KLSsgIGFzX2xp bmVub18yPSRMSU5FTk8KLSsgIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18y IiAmJgotKyAgdGVzdCAieGBleHByICRhc19saW5lbm9fMSArIDFgIiA9ICJ4JGFzX2xpbmVub18y IiB8fCB7Ci0rCi0rICAjIENyZWF0ZSAkYXNfbWUubGluZW5vIGFzIGEgY29weSBvZiAkYXNfbXlz ZWxmLCBidXQgd2l0aCAkTElORU5PCi0rICAjIHVuaWZvcm1seSByZXBsYWNlZCBieSB0aGUgbGlu ZSBudW1iZXIuICBUaGUgZmlyc3QgJ3NlZCcgaW5zZXJ0cyBhCi0rICAjIGxpbmUtbnVtYmVyIGxp bmUgYWZ0ZXIgZWFjaCBsaW5lIHVzaW5nICRMSU5FTk87IHRoZSBzZWNvbmQgJ3NlZCcKLSsgICMg ZG9lcyB0aGUgcmVhbCB3b3JrLiAgVGhlIHNlY29uZCBzY3JpcHQgdXNlcyAnTicgdG8gcGFpciBl YWNoCi0rICAjIGxpbmUtbnVtYmVyIGxpbmUgd2l0aCB0aGUgbGluZSBjb250YWluaW5nICRMSU5F Tk8sIGFuZCBhcHBlbmRzCi0rICAjIHRyYWlsaW5nICctJyBkdXJpbmcgc3Vic3RpdHV0aW9uIHNv IHRoYXQgJExJTkVOTyBpcyBub3QgYSBzcGVjaWFsCi0rICAjIGNhc2UgYXQgbGluZSBlbmQuCi0r ICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNlZCAnPScsIGFuZCBQYXVsIEVnZ2VydCB3 cm90ZSB0aGUKLSsgICMgc2NyaXB0cyB3aXRoIG9wdGltaXphdGlvbiBoZWxwIGZyb20gUGFvbG8g Qm9uemluaS4gIEJsYW1lIExlZQotKyAgIyBFLiBNY01haG9uICgxOTMxLTE5ODkpIGZvciBzZWQn cyBzeW50YXguICA6LSkKLSsgIHNlZCAtbiAnCi0rICAgIHAKLSsgICAgL1skXUxJTkVOTy89Ci0r ICAnIDwkYXNfbXlzZWxmIHwKLSsgICAgc2VkICcKLSsgICAgICBzL1skXUxJTkVOTy4qLyYtLwot KyAgICAgIHQgbGluZW5vCi0rICAgICAgYgotKyAgICAgIDpsaW5lbm8KLSsgICAgICBOCi0rICAg ICAgOmxvb3AKLSsgICAgICBzL1skXUxJTkVOT1woW14nJGFzX2NyX2FsbnVtJ19dLipcblwpXCgu KlwpL1wyXDFcMi8KLSsgICAgICB0IGxvb3AKLSsgICAgICBzLy1cbi4qLy8KLSsgICAgJyA+JGFz X21lLmxpbmVubyAmJgotKyAgY2htb2QgK3ggIiRhc19tZS5saW5lbm8iIHx8Ci0rICAgIHsgJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgJGFzX21lLmxpbmVubzsgcmVydW4g d2l0aCBhIFBPU0lYIHNoZWxsIiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsK LSsgICMgRG9uJ3QgdHJ5IHRvIGV4ZWMgYXMgaXQgY2hhbmdlcyAkWzBdLCBjYXVzaW5nIGFsbCBz b3J0IG9mIHByb2JsZW1zCi0rICAjICh0aGUgZGlybmFtZSBvZiAkWzBdIGlzIG5vdCB0aGUgcGxh Y2Ugd2hlcmUgd2UgbWlnaHQgZmluZCB0aGUKLSsgICMgb3JpZ2luYWwgYW5kIHNvIG9uLiAgQXV0 b2NvbmYgaXMgZXNwZWNpYWxseSBzZW5zaXRpdmUgdG8gdGhpcykuCi0rICAuICIuLyRhc19tZS5s aW5lbm8iCi0rICAjIEV4aXQgc3RhdHVzIGlzIHRoYXQgb2YgdGhlIGxhc3QgY29tbWFuZC4KLSsg IGV4aXQKLSt9Ci0rCi0rCi0raWYgKGFzX2Rpcj1gZGlybmFtZSAtLSAvYCAmJiB0ZXN0ICJYJGFz X2RpciIgPSBYLykgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBhc19kaXJuYW1lPWRpcm5hbWUK LStlbHNlCi0rICBhc19kaXJuYW1lPWZhbHNlCi0rZmkKLSsKLStFQ0hPX0M9IEVDSE9fTj0gRUNI T19UPQotK2Nhc2UgYGVjaG8gLW4geGAgaW4KLSstbiopCi0rICBjYXNlIGBlY2hvICd4XGMnYCBp bgotKyAgKmMqKSBFQ0hPX1Q9JwknOzsJIyBFQ0hPX1QgaXMgc2luZ2xlIHRhYiBjaGFyYWN0ZXIu Ci0rICAqKSAgIEVDSE9fQz0nXGMnOzsKLSsgIGVzYWM7OwotKyopCi0rICBFQ0hPX049Jy1uJzs7 Ci0rZXNhYwotK2lmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxICYmCi0rICAgdGVz dCAiWGBleHByIDAwMDAxIDogJy4qXCguLi5cKSdgIiA9IFgwMDE7IHRoZW4KLSsgIGFzX2V4cHI9 ZXhwcgotK2Vsc2UKLSsgIGFzX2V4cHI9ZmFsc2UKLStmaQotKwotK3JtIC1mIGNvbmYkJCBjb25m JCQuZXhlIGNvbmYkJC5maWxlCi0raWYgdGVzdCAtZCBjb25mJCQuZGlyOyB0aGVuCi0rICBybSAt ZiBjb25mJCQuZGlyL2NvbmYkJC5maWxlCi0rZWxzZQotKyAgcm0gLWYgY29uZiQkLmRpcgotKyAg bWtkaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotK2ZpCi0raWYgKGVjaG8gPmNvbmYkJC5maWxl KSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgaWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rl di9udWxsOyB0aGVuCi0rICAgIGFzX2xuX3M9J2xuIC1zJwotKyAgICAjIC4uLiBidXQgdGhlcmUg YXJlIHR3byBnb3RjaGFzOgotKyAgICAjIDEpIE9uIE1TWVMsIGJvdGggYGxuIC1zIGZpbGUgZGly JyBhbmQgYGxuIGZpbGUgZGlyJyBmYWlsLgotKyAgICAjIDIpIERKR1BQIDwgMi4wNCBoYXMgbm8g c3ltbGlua3M7IGBsbiAtcycgY3JlYXRlcyBhIHdyYXBwZXIgZXhlY3V0YWJsZS4KLSsgICAgIyBJ biBib3RoIGNhc2VzLCB3ZSBoYXZlIHRvIGRlZmF1bHQgdG8gYGNwIC1wJy4KLSsgICAgbG4gLXMg Y29uZiQkLmZpbGUgY29uZiQkLmRpciAyPi9kZXYvbnVsbCAmJiB0ZXN0ICEgLWYgY29uZiQkLmV4 ZSB8fAotKyAgICAgIGFzX2xuX3M9J2NwIC1wJwotKyAgZWxpZiBsbiBjb25mJCQuZmlsZSBjb25m JCQgMj4vZGV2L251bGw7IHRoZW4KLSsgICAgYXNfbG5fcz1sbgotKyAgZWxzZQotKyAgICBhc19s bl9zPSdjcCAtcCcKLSsgIGZpCi0rZWxzZQotKyAgYXNfbG5fcz0nY3AgLXAnCi0rZmkKLStybSAt ZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZGlyL2NvbmYkJC5maWxlIGNvbmYkJC5maWxlCi0r cm1kaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotKwotK2lmIG1rZGlyIC1wIC4gMj4vZGV2L251 bGw7IHRoZW4KLSsgIGFzX21rZGlyX3A9OgotK2Vsc2UKLSsgIHRlc3QgLWQgLi8tcCAmJiBybWRp ciAuLy1wCi0rICBhc19ta2Rpcl9wPWZhbHNlCi0rZmkKLSsKLStpZiB0ZXN0IC14IC8gPi9kZXYv bnVsbCAyPiYxOyB0aGVuCi0rICBhc190ZXN0X3g9J3Rlc3QgLXgnCi0rZWxzZQotKyAgaWYgbHMg LWRMIC8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgIGFzX2xzX0xfb3B0aW9uPUwKLSsgIGVs c2UKLSsgICAgYXNfbHNfTF9vcHRpb249Ci0rICBmaQotKyAgYXNfdGVzdF94PScKLSsgICAgZXZh bCBzaCAtYyAnXCcnCi0rICAgICAgaWYgdGVzdCAtZCAiJDEiOyB0aGVuCi0rCXRlc3QgLWQgIiQx Ly4iOwotKyAgICAgIGVsc2UKLSsJY2FzZSAkMSBpbgotKwktKilzZXQgIi4vJDEiOzsKLSsJZXNh YzsKLSsJY2FzZSBgbHMgLWxkJyRhc19sc19MX29wdGlvbicgIiQxIiAyPi9kZXYvbnVsbGAgaW4K LSsJPz8/W3N4XSopOjs7KilmYWxzZTs7ZXNhYztmaQotKyAgICAnXCcnIHNoCi0rICAnCi0rZmkK LSthc19leGVjdXRhYmxlX3A9JGFzX3Rlc3RfeAotKwotKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFw IGEgc3RyaW5nIG9udG8gYSB2YWxpZCBDUFAgbmFtZS4KLSthc190cl9jcHA9ImV2YWwgc2VkICd5 JSokYXNfY3JfbGV0dGVycyVQJGFzX2NyX0xFVFRFUlMlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcn IgotKwotKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCB2YXJp YWJsZSBuYW1lLgotK2FzX3RyX3NoPSJldmFsIHNlZCAneSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxu dW1dJV8lZyciCi0rCi0rCi0rZXhlYyA2PiYxCi0rCi0rIyBTYXZlIHRoZSBsb2cgbWVzc2FnZSwg dG8ga2VlcCAkWzBdIGFuZCBzbyBvbiBtZWFuaW5nZnVsLCBhbmQgdG8KLSsjIHJlcG9ydCBhY3R1 YWwgaW5wdXQgdmFsdWVzIG9mIENPTkZJR19GSUxFUyBldGMuIGluc3RlYWQgb2YgdGhlaXIKLSsj IHZhbHVlcyBhZnRlciBvcHRpb25zIGhhbmRsaW5nLgotK2FjX2xvZz0iCi0rVGhpcyBmaWxlIHdh cyBleHRlbmRlZCBieSBTT0NJICRhc19tZSAzLjAuMCwgd2hpY2ggd2FzCi0rZ2VuZXJhdGVkIGJ5 IEdOVSBBdXRvY29uZiAyLjYzLiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCi0rCi0rICBD T05GSUdfRklMRVMgICAgPSAkQ09ORklHX0ZJTEVTCi0rICBDT05GSUdfSEVBREVSUyAgPSAkQ09O RklHX0hFQURFUlMKLSsgIENPTkZJR19MSU5LUyAgICA9ICRDT05GSUdfTElOS1MKLSsgIENPTkZJ R19DT01NQU5EUyA9ICRDT05GSUdfQ09NTUFORFMKLSsgICQgJDAgJEAKLSsKLStvbiBgKGhvc3Ru YW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKLSsiCi0rCi0rX0FDRU9GCi0r Ci0rY2FzZSAkYWNfY29uZmlnX2ZpbGVzIGluICoiCi0rIiopIHNldCB4ICRhY19jb25maWdfZmls ZXM7IHNoaWZ0OyBhY19jb25maWdfZmlsZXM9JCo7OwotK2VzYWMKLSsKLStjYXNlICRhY19jb25m aWdfaGVhZGVycyBpbiAqIgotKyIqKSBzZXQgeCAkYWNfY29uZmlnX2hlYWRlcnM7IHNoaWZ0OyBh Y19jb25maWdfaGVhZGVycz0kKjs7Ci0rZXNhYwotKwotKwotK2NhdCA+PiRDT05GSUdfU1RBVFVT IDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKyMgRmlsZXMgdGhhdCBjb25maWcuc3RhdHVz IHdhcyBtYWRlIGZvci4KLStjb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMiCi0rY29uZmln X2hlYWRlcnM9IiRhY19jb25maWdfaGVhZGVycyIKLStjb25maWdfY29tbWFuZHM9IiRhY19jb25m aWdfY29tbWFuZHMiCi0rCi0rX0FDRU9GCi0rCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FD RU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotK2FjX2NzX3VzYWdlPSJcCi0rXGAkYXNfbWUnIGluc3Rh bnRpYXRlcyBmaWxlcyBmcm9tIHRlbXBsYXRlcyBhY2NvcmRpbmcgdG8gdGhlCi0rY3VycmVudCBj b25maWd1cmF0aW9uLgotKwotK1VzYWdlOiAkMCBbT1BUSU9OXS4uLiBbRklMRV0uLi4KLSsKLSsg IC1oLCAtLWhlbHAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKLSsgIC1WLCAtLXZl cnNpb24gICAgcHJpbnQgdmVyc2lvbiBudW1iZXIgYW5kIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3Ms IHRoZW4gZXhpdAotKyAgLXEsIC0tcXVpZXQsIC0tc2lsZW50Ci0rICAgICAgICAgICAgICAgICAg IGRvIG5vdCBwcmludCBwcm9ncmVzcyBtZXNzYWdlcwotKyAgLWQsIC0tZGVidWcgICAgICBkb24n dCByZW1vdmUgdGVtcG9yYXJ5IGZpbGVzCi0rICAgICAgLS1yZWNoZWNrICAgIHVwZGF0ZSAkYXNf bWUgYnkgcmVjb25maWd1cmluZyBpbiB0aGUgc2FtZSBjb25kaXRpb25zCi0rICAgICAgLS1maWxl PUZJTEVbOlRFTVBMQVRFXQotKyAgICAgICAgICAgICAgICAgICBpbnN0YW50aWF0ZSB0aGUgY29u ZmlndXJhdGlvbiBmaWxlIEZJTEUKLSsgICAgICAtLWhlYWRlcj1GSUxFWzpURU1QTEFURV0KLSsg ICAgICAgICAgICAgICAgICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24gaGVhZGVyIEZJ TEUKLSsKLStDb25maWd1cmF0aW9uIGZpbGVzOgotKyRjb25maWdfZmlsZXMKLSsKLStDb25maWd1 cmF0aW9uIGhlYWRlcnM6Ci0rJGNvbmZpZ19oZWFkZXJzCi0rCi0rQ29uZmlndXJhdGlvbiBjb21t YW5kczoKLSskY29uZmlnX2NvbW1hbmRzCi0rCi0rUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1hdXRvY29u ZkBnbnUub3JnPi4iCi0rCi0rX0FDRU9GCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0Yg fHwgYWNfd3JpdGVfZmFpbD0xCi0rYWNfY3NfdmVyc2lvbj0iXFwKLStTT0NJIGNvbmZpZy5zdGF0 dXMgMy4wLjAKLStjb25maWd1cmVkIGJ5ICQwLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIu NjMsCi0rICB3aXRoIG9wdGlvbnMgXFwiYCRhc19lY2hvICIkYWNfY29uZmlndXJlX2FyZ3MiIHwg c2VkICdzL14gLy87IHMvW1xcIiJcYFwkXS9cXFxcJi9nJ2BcXCIKLSsKLStDb3B5cmlnaHQgKEMp IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rVGhpcyBjb25maWcuc3RhdHVz IHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0r Z2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5 IGl0LiIKLSsKLSthY19wd2Q9JyRhY19wd2QnCi0rc3JjZGlyPSckc3JjZGlyJwotK0lOU1RBTEw9 JyRJTlNUQUxMJwotK01LRElSX1A9JyRNS0RJUl9QJwotK0FXSz0nJEFXSycKLSt0ZXN0IC1uICJc JEFXSyIgfHwgQVdLPWF3awotK19BQ0VPRgotKwotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9B Q0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLSsjIFRoZSBkZWZhdWx0IGxpc3RzIGFwcGx5IGlmIHRo ZSB1c2VyIGRvZXMgbm90IHNwZWNpZnkgYW55IGZpbGUuCi0rYWNfbmVlZF9kZWZhdWx0cz06Ci0r d2hpbGUgdGVzdCAkIyAhPSAwCi0rZG8KLSsgIGNhc2UgJDEgaW4KLSsgIC0tKj0qKQotKyAgICBh Y19vcHRpb249YGV4cHIgIlgkMSIgOiAnWFwoW149XSpcKT0nYAotKyAgICBhY19vcHRhcmc9YGV4 cHIgIlgkMSIgOiAnWFtePV0qPVwoLipcKSdgCi0rICAgIGFjX3NoaWZ0PToKLSsgICAgOzsKLSsg ICopCi0rICAgIGFjX29wdGlvbj0kMQotKyAgICBhY19vcHRhcmc9JDIKLSsgICAgYWNfc2hpZnQ9 c2hpZnQKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGNhc2UgJGFjX29wdGlvbiBpbgotKyAgIyBI YW5kbGluZyBvZiB0aGUgb3B0aW9ucy4KLSsgIC1yZWNoZWNrIHwgLS1yZWNoZWNrIHwgLS1yZWNo ZWMgfCAtLXJlY2hlIHwgLS1yZWNoIHwgLS1yZWMgfCAtLXJlIHwgLS1yKQotKyAgICBhY19jc19y ZWNoZWNrPTogOzsKLSsgIC0tdmVyc2lvbiB8IC0tdmVyc2lvIHwgLS12ZXJzaSB8IC0tdmVycyB8 IC0tdmVyIHwgLS12ZSB8IC0tdiB8IC1WICkKLSsgICAgJGFzX2VjaG8gIiRhY19jc192ZXJzaW9u IjsgZXhpdCA7OwotKyAgLS1kZWJ1ZyB8IC0tZGVidSB8IC0tZGViIHwgLS1kZSB8IC0tZCB8IC1k ICkKLSsgICAgZGVidWc9OiA7OwotKyAgLS1maWxlIHwgLS1maWwgfCAtLWZpIHwgLS1mICkKLSsg ICAgJGFjX3NoaWZ0Ci0rICAgIGNhc2UgJGFjX29wdGFyZyBpbgotKyAgICAqXCcqKSBhY19vcHRh cmc9YCRhc19lY2hvICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7Owot KyAgICBlc2FjCi0rICAgIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyAnJGFjX29wdGFyZyci Ci0rICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotKyAgLS1oZWFkZXIgfCAtLWhlYWRlIHwg LS1oZWFkIHwgLS1oZWEgKQotKyAgICAkYWNfc2hpZnQKLSsgICAgY2FzZSAkYWNfb3B0YXJnIGlu Ci0rICAgICpcJyopIGFjX29wdGFyZz1gJGFzX2VjaG8gIiRhY19vcHRhcmciIHwgc2VkICJzLycv J1xcXFxcXFxcJycvZyJgIDs7Ci0rICAgIGVzYWMKLSsgICAgQ09ORklHX0hFQURFUlM9IiRDT05G SUdfSEVBREVSUyAnJGFjX29wdGFyZyciCi0rICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7Owot KyAgLS1oZSB8IC0taCkKLSsgICAgIyBDb25mbGljdCBiZXR3ZWVuIC0taGVscCBhbmQgLS1oZWFk ZXIKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogYW1iaWd1b3VzIG9wdGlvbjogJDEK LStUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyCi0rICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9OzsKLSsgIC0taGVscCB8IC0taGVsIHwgLWggKQotKyAgICAkYXNf ZWNobyAiJGFjX2NzX3VzYWdlIjsgZXhpdCA7OwotKyAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwg LS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKLSsgIHwgLXNpbGVudCB8IC0tc2lsZW50IHwg LS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsIHwgLS1zaSB8IC0tcykKLSsgICAgYWNfY3Nfc2lsZW50 PTogOzsKLSsKLSsgICMgVGhpcyBpcyBhbiBlcnJvci4KLSsgIC0qKSB7ICRhc19lY2hvICIkYXNf bWU6IGVycm9yOiB1bnJlY29nbml6ZWQgb3B0aW9uOiAkMQotK1RyeSBcYCQwIC0taGVscCcgZm9y IG1vcmUgaW5mb3JtYXRpb24uIiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0gOzsK LSsKLSsgICopIGFjX2NvbmZpZ190YXJnZXRzPSIkYWNfY29uZmlnX3RhcmdldHMgJDEiCi0rICAg ICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlIDs7Ci0rCi0rICBlc2FjCi0rICBzaGlmdAotK2RvbmUK LSsKLSthY19jb25maWd1cmVfZXh0cmFfYXJncz0KLSsKLStpZiAkYWNfY3Nfc2lsZW50OyB0aGVu Ci0rICBleGVjIDY+L2Rldi9udWxsCi0rICBhY19jb25maWd1cmVfZXh0cmFfYXJncz0iJGFjX2Nv bmZpZ3VyZV9leHRyYV9hcmdzIC0tc2lsZW50IgotK2ZpCi0rCi0rX0FDRU9GCi0rY2F0ID4+JENP TkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0raWYgXCRhY19jc19yZWNo ZWNrOyB0aGVuCi0rICBzZXQgWCAnJFNIRUxMJyAnJDAnICRhY19jb25maWd1cmVfYXJncyBcJGFj X2NvbmZpZ3VyZV9leHRyYV9hcmdzIC0tbm8tY3JlYXRlIC0tbm8tcmVjdXJzaW9uCi0rICBzaGlm dAotKyAgXCRhc19lY2hvICJydW5uaW5nIENPTkZJR19TSEVMTD0kU0hFTEwgXCQqIiA+JjYKLSsg IENPTkZJR19TSEVMTD0nJFNIRUxMJwotKyAgZXhwb3J0IENPTkZJR19TSEVMTAotKyAgZXhlYyAi XCRAIgotK2ZpCi0rCi0rX0FDRU9GCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8 IGFjX3dyaXRlX2ZhaWw9MQotK2V4ZWMgNT4+Y29uZmlnLmxvZwotK3sKLSsgIGVjaG8KLSsgIHNl ZCAnaDtzLy4vLS9nO3MvXi4uLi8jIyAvO3MvLi4uJC8gIyMvO3A7eDtwO3gnIDw8X0FTQk9YCi0r IyMgUnVubmluZyAkYXNfbWUuICMjCi0rX0FTQk9YCi0rICAkYXNfZWNobyAiJGFjX2xvZyIKLSt9 ID4mNQotKwotK19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dy aXRlX2ZhaWw9MQotKyMKLSsjIElOSVQtQ09NTUFORFMKLSsjCi0rQU1ERVBfVFJVRT0iJEFNREVQ X1RSVUUiIGFjX2F1eF9kaXI9IiRhY19hdXhfZGlyIgotKwotKwotKyMgVGhlIEhQLVVYIGtzaCBh bmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc3Rkb3V0Ci0rIyBp ZiBDRFBBVEggaXMgc2V0LgotKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNl dCBDRFBBVEgKLSsKLStzZWRfcXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3QnCi0rZG91Ymxl X3F1b3RlX3N1YnN0PSckZG91YmxlX3F1b3RlX3N1YnN0JwotK2RlbGF5X3ZhcmlhYmxlX3N1YnN0 PSckZGVsYXlfdmFyaWFibGVfc3Vic3QnCi0rZW5hYmxlX3NoYXJlZD0nYCRFQ0hPICJYJGVuYWJs ZV9zaGFyZWQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStlbmFi bGVfc3RhdGljPSdgJEVDSE8gIlgkZW5hYmxlX3N0YXRpYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJwotK21hY3JvX3ZlcnNpb249J2AkRUNITyAiWCRtYWNyb192ZXJz aW9uIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbWFjcm9fcmV2 aXNpb249J2AkRUNITyAiWCRtYWNyb19yZXZpc2lvbiIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJwotK3BpY19tb2RlPSdgJEVDSE8gIlgkcGljX21vZGUiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStlbmFibGVfZmFzdF9pbnN0YWxsPSdg JEVDSE8gIlgkZW5hYmxlX2Zhc3RfaW5zdGFsbCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK2hvc3RfYWxpYXM9J2AkRUNITyAiWCRob3N0X2FsaWFzIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raG9zdD0nYCRFQ0hPICJYJGhvc3Qi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStob3N0X29zPSdgJEVD SE8gIlgkaG9zdF9vcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K2J1aWxkX2FsaWFzPSdgJEVDSE8gIlgkYnVpbGRfYWxpYXMiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStidWlsZD0nYCRFQ0hPICJYJGJ1aWxkIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYnVpbGRfb3M9J2AkRUNITyAiWCRidWls ZF9vcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK1NFRD0nYCRF Q0hPICJYJFNFRCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK1hz ZWQ9J2AkRUNITyAiWCRYc2VkIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rR1JFUD0nYCRFQ0hPICJYJEdSRVAiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKLStFR1JFUD0nYCRFQ0hPICJYJEVHUkVQIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rRkdSRVA9J2AkRUNITyAiWCRGR1JFUCIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0xEPSdgJEVDSE8gIlgkTEQiIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStOTT0nYCRFQ0hPICJYJE5NIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rTE5fUz0nYCRFQ0hPICJY JExOX1MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSttYXhfY21k X2xlbj0nYCRFQ0hPICJYJG1heF9jbWRfbGVuIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rYWNfb2JqZXh0PSdgJEVDSE8gIlgkYWNfb2JqZXh0IiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZXhlZXh0PSdgJEVDSE8gIlgkZXhlZXh0 IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfdW5zZXQ9J2Ak RUNITyAiWCRsdF91bnNldCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK2x0X1NQMk5MPSdgJEVDSE8gIlgkbHRfU1AyTkwiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKLStsdF9OTDJTUD0nYCRFQ0hPICJYJGx0X05MMlNQIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcmVsb2FkX2ZsYWc9J2AkRUNITyAi WCRyZWxvYWRfZmxhZyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K3JlbG9hZF9jbWRzPSdgJEVDSE8gIlgkcmVsb2FkX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStPQkpEVU1QPSdgJEVDSE8gIlgkT0JKRFVNUCIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2RlcGxpYnNfY2hlY2tfbWV0aG9k PSdgJEVDSE8gIlgkZGVwbGlic19jaGVja19tZXRob2QiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKLStmaWxlX21hZ2ljX2NtZD0nYCRFQ0hPICJYJGZpbGVfbWFnaWNf Y21kIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rQVI9J2AkRUNI TyAiWCRBUiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0FSX0ZM QUdTPSdgJEVDSE8gIlgkQVJfRkxBR1MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStTVFJJUD0nYCRFQ0hPICJYJFNUUklQIiB8ICRYc2VkIC1lICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCi0rUkFOTElCPSdgJEVDSE8gIlgkUkFOTElCIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX3Bvc3RpbnN0YWxsX2NtZHM9J2Ak RUNITyAiWCRvbGRfcG9zdGluc3RhbGxfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK29sZF9wb3N0dW5pbnN0YWxsX2NtZHM9J2AkRUNITyAiWCRvbGRfcG9z dHVuaW5zdGFsbF9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0rb2xkX2FyY2hpdmVfY21kcz0nYCRFQ0hPICJYJG9sZF9hcmNoaXZlX2NtZHMiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStDQz0nYCRFQ0hPICJYJENDIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rQ0ZMQUdTPSdgJEVDSE8gIlgk Q0ZMQUdTIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29tcGls ZXI9J2AkRUNITyAiWCRjb21waWxlciIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK0dDQz0nYCRFQ0hPICJYJEdDQyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9J2AkRUNITyAiWCRs dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9J2AkRUNITyAi WCRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9h ZGRyZXNzPSdgJEVDSE8gIlgkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJl c3MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9jdl9zeXNf Z2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSdgJEVDSE8gIlgkbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeCIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK29iamRpcj0nYCRFQ0hPICJYJG9i amRpciIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK1NIRUxMPSdg JEVDSE8gIlgkU0hFTEwiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStFQ0hPPSdgJEVDSE8gIlgkRUNITyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK01BR0lDX0NNRD0nYCRFQ0hPICJYJE1BR0lDX0NNRCIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9m bGFnPSdgJEVDSE8gIlgkbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWciIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9wcm9nX2NvbXBpbGVyX3dsPSdg JEVDSE8gIlgkbHRfcHJvZ19jb21waWxlcl93bCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK2x0X3Byb2dfY29tcGlsZXJfcGljPSdgJEVDSE8gIlgkbHRfcHJvZ19j b21waWxlcl9waWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSts dF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nYCRFQ0hPICJYJGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfY3ZfcHJvZ19j b21waWxlcl9jX289J2AkRUNITyAiWCRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK25lZWRfbG9ja3M9J2AkRUNITyAiWCRu ZWVkX2xvY2tzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rRFNZ TVVUSUw9J2AkRUNITyAiWCREU1lNVVRJTCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJwotK05NRURJVD0nYCRFQ0hPICJYJE5NRURJVCIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0xJUE89J2AkRUNITyAiWCRMSVBPIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rT1RPT0w9J2AkRUNITyAiWCRPVE9PTCIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK09UT09MNjQ9J2AkRUNI TyAiWCRPVE9PTDY0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0r bGliZXh0PSdgJEVDSE8gIlgkbGliZXh0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0rc2hyZXh0X2NtZHM9J2AkRUNITyAiWCRzaHJleHRfY21kcyIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4dHJhY3RfZXhwc3ltc19jbWRzPSdg JEVDSE8gIlgkZXh0cmFjdF9leHBzeW1zX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLSthcmNoaXZlX2NtZHNfbmVlZF9sYz0nYCRFQ0hPICJYJGFyY2hpdmVf Y21kc19uZWVkX2xjIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0r ZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcz0nYCRFQ0hPICJYJGVuYWJsZV9zaGFy ZWRfd2l0aF9zdGF0aWNfcnVudGltZXMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9J2AkRUNITyAiWCRleHBvcnRfZHlu YW1pY19mbGFnX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LSt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nYCRFQ0hPICJYJHdob2xlX2FyY2hpdmVfZmxhZ19z cGVjIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29tcGlsZXJf bmVlZHNfb2JqZWN0PSdgJEVDSE8gIlgkY29tcGlsZXJfbmVlZHNfb2JqZWN0IiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21k cz0nYCRFQ0hPICJYJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0n YCRFQ0hPICJYJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYXJjaGl2ZV9jbWRzPSdgJEVDSE8gIlgkYXJjaGl2 ZV9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYXJjaGl2 ZV9leHBzeW1fY21kcz0nYCRFQ0hPICJYJGFyY2hpdmVfZXhwc3ltX2NtZHMiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSttb2R1bGVfY21kcz0nYCRFQ0hPICJYJG1v ZHVsZV9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbW9k dWxlX2V4cHN5bV9jbWRzPSdgJEVDSE8gIlgkbW9kdWxlX2V4cHN5bV9jbWRzIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rd2l0aF9nbnVfbGQ9J2AkRUNITyAiWCR3 aXRoX2dudV9sZCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2Fs bG93X3VuZGVmaW5lZF9mbGFnPSdgJEVDSE8gIlgkYWxsb3dfdW5kZWZpbmVkX2ZsYWciIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStub191bmRlZmluZWRfZmxhZz0n YCRFQ0hPICJYJG5vX3VuZGVmaW5lZF9mbGFnIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nYCRFQ0hPICJYJGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSdgJEVDSE8gIlgkaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19sZCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9J2AkRUNITyAiWCRoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0r aGFyZGNvZGVfZGlyZWN0PSdgJEVDSE8gIlgkaGFyZGNvZGVfZGlyZWN0IiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPSdg JEVDSE8gIlgkaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlIiB8ICRYc2VkIC1lICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfbWludXNfTD0nYCRFQ0hPICJYJGhhcmRjb2Rl X21pbnVzX0wiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJk Y29kZV9zaGxpYnBhdGhfdmFyPSdgJEVDSE8gIlgkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2F1dG9tYXRp Yz0nYCRFQ0hPICJYJGhhcmRjb2RlX2F1dG9tYXRpYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJwotK2luaGVyaXRfcnBhdGg9J2AkRUNITyAiWCRpbmhlcml0X3JwYXRo IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbGlua19hbGxfZGVw bGlicz0nYCRFQ0hPICJYJGxpbmtfYWxsX2RlcGxpYnMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKLStmaXhfc3JjZmlsZV9wYXRoPSdgJEVDSE8gIlgkZml4X3NyY2Zp bGVfcGF0aCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2Fsd2F5 c19leHBvcnRfc3ltYm9scz0nYCRFQ0hPICJYJGFsd2F5c19leHBvcnRfc3ltYm9scyIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4cG9ydF9zeW1ib2xzX2NtZHM9 J2AkRUNITyAiWCRleHBvcnRfc3ltYm9sc19jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCi0rZXhjbHVkZV9leHBzeW1zPSdgJEVDSE8gIlgkZXhjbHVkZV9leHBz eW1zIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raW5jbHVkZV9l eHBzeW1zPSdgJEVDSE8gIlgkaW5jbHVkZV9leHBzeW1zIiB8ICRYc2VkIC1lICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCi0rcHJlbGlua19jbWRzPSdgJEVDSE8gIlgkcHJlbGlua19jbWRz IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZmlsZV9saXN0X3Nw ZWM9J2AkRUNITyAiWCRmaWxlX2xpc3Rfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSdgJEVDSE8gIlgkdmFy aWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStuZWVkX2xpYl9wcmVmaXg9J2AkRUNITyAiWCRuZWVkX2xpYl9wcmVmaXgiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStuZWVkX3ZlcnNpb249J2Ak RUNITyAiWCRuZWVkX3ZlcnNpb24iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLSt2ZXJzaW9uX3R5cGU9J2AkRUNITyAiWCR2ZXJzaW9uX3R5cGUiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStydW5wYXRoX3Zhcj0nYCRFQ0hPICJYJHJ1 bnBhdGhfdmFyIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rc2hs aWJwYXRoX3Zhcj0nYCRFQ0hPICJYJHNobGlicGF0aF92YXIiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9J2AkRUNI TyAiWCRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKLStsaWJuYW1lX3NwZWM9J2AkRUNITyAiWCRsaWJuYW1lX3NwZWMi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsaWJyYXJ5X25hbWVz X3NwZWM9J2AkRUNITyAiWCRsaWJyYXJ5X25hbWVzX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStzb25hbWVfc3BlYz0nYCRFQ0hPICJYJHNvbmFtZV9zcGVj IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcG9zdGluc3RhbGxf Y21kcz0nYCRFQ0hPICJYJHBvc3RpbnN0YWxsX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKLStwb3N0dW5pbnN0YWxsX2NtZHM9J2AkRUNITyAiWCRwb3N0dW5p bnN0YWxsX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStm aW5pc2hfY21kcz0nYCRFQ0hPICJYJGZpbmlzaF9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCi0rZmluaXNoX2V2YWw9J2AkRUNITyAiWCRmaW5pc2hfZXZhbCIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2ludG9f bGlicz0nYCRFQ0hPICJYJGhhcmRjb2RlX2ludG9fbGlicyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJwotK3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nYCRFQ0hPICJY JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJwotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSdgJEVDSE8gIlgkc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStoYXJkY29kZV9hY3Rpb249J2AkRUNITyAiWCRoYXJkY29kZV9hY3Rpb24iIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStlbmFibGVfZGxvcGVuPSdgJEVD SE8gIlgkZW5hYmxlX2Rsb3BlbiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK2VuYWJsZV9kbG9wZW5fc2VsZj0nYCRFQ0hPICJYJGVuYWJsZV9kbG9wZW5fc2VsZiIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2VuYWJsZV9kbG9wZW5f c2VsZl9zdGF0aWM9J2AkRUNITyAiWCRlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX3N0cmlwbGliPSdgJEVDSE8g Ilgkb2xkX3N0cmlwbGliIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0rc3RyaXBsaWI9J2AkRUNITyAiWCRzdHJpcGxpYiIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJwotK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycz0nYCRFQ0hPICJYJGNv bXBpbGVyX2xpYl9zZWFyY2hfZGlycyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK3ByZWRlcF9vYmplY3RzPSdgJEVDSE8gIlgkcHJlZGVwX29iamVjdHMiIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStwb3N0ZGVwX29iamVjdHM9J2Ak RUNITyAiWCRwb3N0ZGVwX29iamVjdHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStwcmVkZXBzPSdgJEVDSE8gIlgkcHJlZGVwcyIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3Bvc3RkZXBzPSdgJEVDSE8gIlgkcG9zdGRlcHMiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStjb21waWxlcl9saWJfc2Vh cmNoX3BhdGg9J2AkRUNITyAiWCRjb21waWxlcl9saWJfc2VhcmNoX3BhdGgiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStMRF9DWFg9J2AkRUNITyAiWCRMRF9DWFgi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStvbGRfYXJjaGl2ZV9j bWRzX0NYWD0nYCRFQ0hPICJYJG9sZF9hcmNoaXZlX2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29tcGlsZXJfQ1hYPSdgJEVDSE8gIlgkY29tcGls ZXJfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rR0NDX0NY WD0nYCRFQ0hPICJYJEdDQ19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFg9J2AkRUNITyAiWCRs dF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nYCRFQ0hPICJY JGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0rbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSdgJEVDSE8gIlgkbHRfcHJvZ19j b21waWxlcl9waWNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0rbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSdgJEVDSE8gIlgkbHRfcHJvZ19jb21waWxl cl9zdGF0aWNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0r bHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYPSdgJEVDSE8gIlgkbHRfY3ZfcHJvZ19jb21waWxl cl9jX29fQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYXJj aGl2ZV9jbWRzX25lZWRfbGNfQ1hYPSdgJEVDSE8gIlgkYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hY IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZW5hYmxlX3NoYXJl ZF93aXRoX3N0YXRpY19ydW50aW1lc19DWFg9J2AkRUNITyAiWCRlbmFibGVfc2hhcmVkX3dpdGhf c3RhdGljX3J1bnRpbWVzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9J2AkRUNITyAiWCRleHBvcnRfZHlu YW1pY19mbGFnX3NwZWNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSdgJEVDSE8gIlgkd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0rY29tcGlsZXJfbmVlZHNfb2JqZWN0X0NYWD0nYCRFQ0hPICJYJGNvbXBpbGVyX25lZWRzX29i amVjdF9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStvbGRf YXJjaGl2ZV9mcm9tX25ld19jbWRzX0NYWD0nYCRFQ0hPICJYJG9sZF9hcmNoaXZlX2Zyb21fbmV3 X2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xk X2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfQ1hYPSdgJEVDSE8gIlgkb2xkX2FyY2hpdmVfZnJv bV9leHBzeW1zX2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rYXJjaGl2ZV9jbWRzX0NYWD0nYCRFQ0hPICJYJGFyY2hpdmVfY21kc19DWFgiIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSthcmNoaXZlX2V4cHN5bV9jbWRz X0NYWD0nYCRFQ0hPICJYJGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbW9kdWxlX2NtZHNfQ1hYPSdgJEVDSE8gIlgkbW9k dWxlX2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0r bW9kdWxlX2V4cHN5bV9jbWRzX0NYWD0nYCRFQ0hPICJYJG1vZHVsZV9leHBzeW1fY21kc19DWFgi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSt3aXRoX2dudV9sZF9D WFg9J2AkRUNITyAiWCR3aXRoX2dudV9sZF9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLSthbGxvd191bmRlZmluZWRfZmxhZ19DWFg9J2AkRUNITyAiWCRhbGxv d191bmRlZmluZWRfZmxhZ19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStub191bmRlZmluZWRfZmxhZ19DWFg9J2AkRUNITyAiWCRub191bmRlZmluZWRfZmxh Z19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nYCRFQ0hPICJYJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9DWFg9J2AkRUNITyAiWCRoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX2xkX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPSdgJEVDSE8gIlgkaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvcl9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStoYXJkY29kZV9kaXJlY3RfQ1hYPSdgJEVDSE8gIlgkaGFyZGNvZGVfZGlyZWN0X0NYWCIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2RpcmVjdF9h YnNvbHV0ZV9DWFg9J2AkRUNITyAiWCRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hYIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfbWludXNfTF9D WFg9J2AkRUNITyAiWCRoYXJkY29kZV9taW51c19MX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPSdgJEVDSE8g IlgkaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9hdXRvbWF0aWNfQ1hYPSdgJEVDSE8gIlgkaGFyZGNv ZGVfYXV0b21hdGljX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK2luaGVyaXRfcnBhdGhfQ1hYPSdgJEVDSE8gIlgkaW5oZXJpdF9ycGF0aF9DWFgiIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsaW5rX2FsbF9kZXBsaWJzX0NY WD0nYCRFQ0hPICJYJGxpbmtfYWxsX2RlcGxpYnNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCi0rZml4X3NyY2ZpbGVfcGF0aF9DWFg9J2AkRUNITyAiWCRmaXhf c3JjZmlsZV9wYXRoX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK2Fsd2F5c19leHBvcnRfc3ltYm9sc19DWFg9J2AkRUNITyAiWCRhbHdheXNfZXhwb3J0X3N5 bWJvbHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZXhw b3J0X3N5bWJvbHNfY21kc19DWFg9J2AkRUNITyAiWCRleHBvcnRfc3ltYm9sc19jbWRzX0NYWCIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4Y2x1ZGVfZXhwc3lt c19DWFg9J2AkRUNITyAiWCRleGNsdWRlX2V4cHN5bXNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raW5jbHVkZV9leHBzeW1zX0NYWD0nYCRFQ0hPICJYJGlu Y2x1ZGVfZXhwc3ltc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStwcmVsaW5rX2NtZHNfQ1hYPSdgJEVDSE8gIlgkcHJlbGlua19jbWRzX0NYWCIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2ZpbGVfbGlzdF9zcGVjX0NYWD0n YCRFQ0hPICJYJGZpbGVfbGlzdF9zcGVjX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2FjdGlvbl9DWFg9J2AkRUNITyAiWCRoYXJkY29kZV9h Y3Rpb25fQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29t cGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWD0nYCRFQ0hPICJYJGNvbXBpbGVyX2xpYl9zZWFyY2hf ZGlyc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStwcmVk ZXBfb2JqZWN0c19DWFg9J2AkRUNITyAiWCRwcmVkZXBfb2JqZWN0c19DWFgiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStwb3N0ZGVwX29iamVjdHNfQ1hYPSdgJEVD SE8gIlgkcG9zdGRlcF9vYmplY3RzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJwotK3ByZWRlcHNfQ1hYPSdgJEVDSE8gIlgkcHJlZGVwc19DWFgiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStwb3N0ZGVwc19DWFg9J2AkRUNITyAi WCRwb3N0ZGVwc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYPSdgJEVDSE8gIlgkY29tcGlsZXJfbGliX3Nl YXJjaF9wYXRoX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot KwotK0xUQ0M9JyRMVENDJwotK0xUQ0ZMQUdTPSckTFRDRkxBR1MnCi0rY29tcGlsZXI9JyRjb21w aWxlcl9ERUZBVUxUJwotKwotKyMgUXVvdGUgZXZhbGVkIHN0cmluZ3MuCi0rZm9yIHZhciBpbiBT RUQgXAotK0dSRVAgXAotK0VHUkVQIFwKLStGR1JFUCBcCi0rTEQgXAotK05NIFwKLStMTl9TIFwK LStsdF9TUDJOTCBcCi0rbHRfTkwyU1AgXAotK3JlbG9hZF9mbGFnIFwKLStPQkpEVU1QIFwKLStk ZXBsaWJzX2NoZWNrX21ldGhvZCBcCi0rZmlsZV9tYWdpY19jbWQgXAotK0FSIFwKLStBUl9GTEFH UyBcCi0rU1RSSVAgXAotK1JBTkxJQiBcCi0rQ0MgXAotK0NGTEFHUyBcCi0rY29tcGlsZXIgXAot K2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgXAotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3RvX2NkZWNsIFwKLStsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyBc Ci0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeCBc Ci0rU0hFTEwgXAotK0VDSE8gXAotK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIFwK LStsdF9wcm9nX2NvbXBpbGVyX3dsIFwKLStsdF9wcm9nX2NvbXBpbGVyX3BpYyBcCi0rbHRfcHJv Z19jb21waWxlcl9zdGF0aWMgXAotK2x0X2N2X3Byb2dfY29tcGlsZXJfY19vIFwKLStuZWVkX2xv Y2tzIFwKLStEU1lNVVRJTCBcCi0rTk1FRElUIFwKLStMSVBPIFwKLStPVE9PTCBcCi0rT1RPT0w2 NCBcCi0rc2hyZXh0X2NtZHMgXAotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyBcCi0rd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMgXAotK2NvbXBpbGVyX25lZWRzX29iamVjdCBcCi0rd2l0aF9nbnVf bGQgXAotK2FsbG93X3VuZGVmaW5lZF9mbGFnIFwKLStub191bmRlZmluZWRfZmxhZyBcCi0raGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyBcCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCBc Ci0raGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBcCi0rZml4X3NyY2ZpbGVfcGF0aCBcCi0rZXhj bHVkZV9leHBzeW1zIFwKLStpbmNsdWRlX2V4cHN5bXMgXAotK2ZpbGVfbGlzdF9zcGVjIFwKLSt2 YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayBcCi0rbGlibmFtZV9zcGVjIFwKLStsaWJyYXJ5X25h bWVzX3NwZWMgXAotK3NvbmFtZV9zcGVjIFwKLStmaW5pc2hfZXZhbCBcCi0rb2xkX3N0cmlwbGli IFwKLStzdHJpcGxpYiBcCi0rY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzIFwKLStwcmVkZXBfb2Jq ZWN0cyBcCi0rcG9zdGRlcF9vYmplY3RzIFwKLStwcmVkZXBzIFwKLStwb3N0ZGVwcyBcCi0rY29t cGlsZXJfbGliX3NlYXJjaF9wYXRoIFwKLStMRF9DWFggXAotK2NvbXBpbGVyX0NYWCBcCi0rbHRf cHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYIFwKLStsdF9wcm9nX2NvbXBpbGVyX3ds X0NYWCBcCi0rbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIFwKLStsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpY19DWFggXAotK2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCBcCi0rZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjX0NYWCBcCi0rd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYIFwKLStjb21w aWxlcl9uZWVkc19vYmplY3RfQ1hYIFwKLSt3aXRoX2dudV9sZF9DWFggXAotK2FsbG93X3VuZGVm aW5lZF9mbGFnX0NYWCBcCi0rbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYIFwKLStoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX0NYWCBcCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9DWFggXAot K2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYIFwKLStmaXhfc3JjZmlsZV9wYXRoX0NYWCBc Ci0rZXhjbHVkZV9leHBzeW1zX0NYWCBcCi0raW5jbHVkZV9leHBzeW1zX0NYWCBcCi0rZmlsZV9s aXN0X3NwZWNfQ1hYIFwKLStjb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYIFwKLStwcmVkZXBf b2JqZWN0c19DWFggXAotK3Bvc3RkZXBfb2JqZWN0c19DWFggXAotK3ByZWRlcHNfQ1hYIFwKLStw b3N0ZGVwc19DWFggXAotK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg7IGRvCi0rICAgIGNh c2UgXGBldmFsIFxcXFxcJEVDSE8gIlhcXFxcXCRcJHZhciJcYCBpbgotKyAgICAqW1xcXFxcXFxg XFwiXFxcJF0qKQotKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwi WFxcXCRcJHZhclxcIiB8IFxcXCRYc2VkIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCJcXFxg XFxcXFxcIiIKLSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxc XCJcXFwkXCR2YXJcXFxcXFwiIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLStkb25lCi0rCi0rIyBE b3VibGUtcXVvdGUgZG91YmxlLWV2YWxlZCBzdHJpbmdzLgotK2ZvciB2YXIgaW4gcmVsb2FkX2Nt ZHMgXAotK29sZF9wb3N0aW5zdGFsbF9jbWRzIFwKLStvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIFwK LStvbGRfYXJjaGl2ZV9jbWRzIFwKLStleHRyYWN0X2V4cHN5bXNfY21kcyBcCi0rb2xkX2FyY2hp dmVfZnJvbV9uZXdfY21kcyBcCi0rb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMgXAotK2Fy Y2hpdmVfY21kcyBcCi0rYXJjaGl2ZV9leHBzeW1fY21kcyBcCi0rbW9kdWxlX2NtZHMgXAotK21v ZHVsZV9leHBzeW1fY21kcyBcCi0rZXhwb3J0X3N5bWJvbHNfY21kcyBcCi0rcHJlbGlua19jbWRz IFwKLStwb3N0aW5zdGFsbF9jbWRzIFwKLStwb3N0dW5pbnN0YWxsX2NtZHMgXAotK2ZpbmlzaF9j bWRzIFwKLStzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgXAotK3N5c19saWJfZGxzZWFyY2hfcGF0 aF9zcGVjIFwKLStvbGRfYXJjaGl2ZV9jbWRzX0NYWCBcCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdf Y21kc19DWFggXAotK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0NYWCBcCi0rYXJjaGl2 ZV9jbWRzX0NYWCBcCi0rYXJjaGl2ZV9leHBzeW1fY21kc19DWFggXAotK21vZHVsZV9jbWRzX0NY WCBcCi0rbW9kdWxlX2V4cHN5bV9jbWRzX0NYWCBcCi0rZXhwb3J0X3N5bWJvbHNfY21kc19DWFgg XAotK3ByZWxpbmtfY21kc19DWFg7IGRvCi0rICAgIGNhc2UgXGBldmFsIFxcXFxcJEVDSE8gIlhc XFxcXCRcJHZhciJcYCBpbgotKyAgICAqW1xcXFxcXFxgXFwiXFxcJF0qKQotKyAgICAgIGV2YWwg Imx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiWFxcXCRcJHZhclxcIiB8IFxcXCRYc2Vk IC1lIFxcIlxcXCRkb3VibGVfcXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxcJHNlZF9xdW90ZV9zdWJz dFxcIiAtZSBcXCJcXFwkZGVsYXlfdmFyaWFibGVfc3Vic3RcXCJcXFxgXFxcXFxcIiIKLSsgICAg ICA7OwotKyAgICAqKQotKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFwkXCR2YXJcXFxc XFwiIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLStkb25lCi0rCi0rIyBGaXgtdXAgZmFsbGJhY2sg ZWNobyBpZiBpdCB3YXMgbWFuZ2xlZCBieSB0aGUgYWJvdmUgcXVvdGluZyBydWxlcy4KLStjYXNl IFwkbHRfRUNITyBpbgotKyonXFxcJDAgLS1mYWxsYmFjay1lY2hvIicpICBsdF9FQ0hPPVxgXCRF Q0hPICJYXCRsdF9FQ0hPIiB8IFwkWHNlZCAtZSAncy9cXFxcXFxcXFxcXFxcXFwkMCAtLWZhbGxi YWNrLWVjaG8iXCQvXCQwIC0tZmFsbGJhY2stZWNobyIvJ1xgCi0rICA7OwotK2VzYWMKLSsKLSth Y19hdXhfZGlyPSckYWNfYXV4X2RpcicKLSt4c2lfc2hlbGw9JyR4c2lfc2hlbGwnCi0rbHRfc2hl bGxfYXBwZW5kPSckbHRfc2hlbGxfYXBwZW5kJwotKwotKyMgU2VlIGlmIHdlIGFyZSBydW5uaW5n IG9uIHpzaCwgYW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKLSsjIGNvbW1hbmRz IHRocm91Z2ggd2l0aG91dCByZW1vdmFsIG9mIFwgZXNjYXBlcyBJTklULgotK2lmIHRlc3QgLW4g Ilwke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgotKyAgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0r ZmkKLSsKLSsKLSsgICAgUEFDS0FHRT0nJFBBQ0tBR0UnCi0rICAgIFZFUlNJT049JyRWRVJTSU9O JwotKyAgICBUSU1FU1RBTVA9JyRUSU1FU1RBTVAnCi0rICAgIFJNPSckUk0nCi0rICAgIG9maWxl PSckb2ZpbGUnCi0rCi0rCi0rCi0rCi0rCi0rCi0rX0FDRU9GCi0rCi0rY2F0ID4+JENPTkZJR19T VEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKwotKyMgSGFuZGxpbmcgb2YgYXJn dW1lbnRzLgotK2ZvciBhY19jb25maWdfdGFyZ2V0IGluICRhY19jb25maWdfdGFyZ2V0cwotK2Rv Ci0rICBjYXNlICRhY19jb25maWdfdGFyZ2V0IGluCi0rICAgICJzb2NpL2NvbmZpZy5oIikgQ09O RklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyBzb2NpL2NvbmZpZy5oIiA7OwotKyAgICAiZGVw ZmlsZXMiKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMgZGVwZmlsZXMiIDs7Ci0r ICAgICJsaWJ0b29sIikgQ09ORklHX0NPTU1BTkRTPSIkQ09ORklHX0NPTU1BTkRTIGxpYnRvb2wi IDs7Ci0rICAgICJNYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBNYWtlZmls ZSIgOzsKLSsgICAgInNvY2ktY29uZmlnIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNv Y2ktY29uZmlnIiA7OwotKyAgICAic29jaS5wYyIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxF UyBzb2NpLnBjIiA7OwotKyAgICAic29jaS5zcGVjIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJ TEVTIHNvY2kuc3BlYyIgOzsKLSsgICAgInNvY2kvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRD T05GSUdfRklMRVMgc29jaS9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvY29yZS9NYWtlZmlsZSIp IENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2NvcmUvTWFrZWZpbGUiIDs7Ci0rICAg ICJzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBz b2NpL2NvcmUvdGVzdC9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMvTWFrZWZpbGUi KSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9NYWtlZmlsZSIgOzsK LSsgICAgInNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05G SUdfRklMRVMgc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvYmFj a2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBz b2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUiIDs7Ci0rICAgICJzb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlIiA7OwotKyAgICAic29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUiIDs7Ci0rICAgICJzb2NpL2JhY2tlbmRz L29yYWNsZS9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tl bmRzL29yYWNsZS9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qv TWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9vcmFj bGUvdGVzdC9NYWtlZmlsZSIgOzsKLSsgICAgIm1hbi9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0i JENPTkZJR19GSUxFUyBtYW4vTWFrZWZpbGUiIDs7Ci0rICAgICJkb2MvTWFrZWZpbGUiKSBDT05G SUdfRklMRVM9IiRDT05GSUdfRklMRVMgZG9jL01ha2VmaWxlIiA7OwotKyAgICAiZG9jL2JhY2tl bmRzL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGRvYy9iYWNrZW5kcy9N YWtlZmlsZSIgOzsKLSsgICAgImJ1aWxkL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklH X0ZJTEVTIGJ1aWxkL01ha2VmaWxlIiA7OwotKyAgICAiYnVpbGQvdW5peC9NYWtlZmlsZSIpIENP TkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBidWlsZC91bml4L01ha2VmaWxlIiA7OwotKyAgICAi YnVpbGQvbXN2YzgwL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGJ1aWxk L21zdmM4MC9NYWtlZmlsZSIgOzsKLSsgICAgImJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUiKSBD T05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZSIgOzsK LSsgICAgImJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdf RklMRVMgYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSIgOzsKLSsKLSsgICopIHsgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIGFyZ3VtZW50OiAkYWNfY29uZmlnX3Rh cmdldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6ICRh Y19jb25maWdfdGFyZ2V0IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7Ci0r ICBlc2FjCi0rZG9uZQotKwotKwotKyMgSWYgdGhlIHVzZXIgZGlkIG5vdCB1c2UgdGhlIGFyZ3Vt ZW50cyB0byBzcGVjaWZ5IHRoZSBpdGVtcyB0byBpbnN0YW50aWF0ZSwKLSsjIHRoZW4gdGhlIGVu dnZhciBpbnRlcmZhY2UgaXMgdXNlZC4gIFNldCBvbmx5IHRob3NlIHRoYXQgYXJlIG5vdC4KLSsj IFdlIHVzZSB0aGUgbG9uZyBmb3JtIGZvciB0aGUgZGVmYXVsdCBhc3NpZ25tZW50IGJlY2F1c2Ug b2YgYW4gZXh0cmVtZWx5Ci0rIyBiaXphcnJlIGJ1ZyBvbiBTdW5PUyA0LjEuMy4KLStpZiAkYWNf bmVlZF9kZWZhdWx0czsgdGhlbgotKyAgdGVzdCAiJHtDT05GSUdfRklMRVMrc2V0fSIgPSBzZXQg fHwgQ09ORklHX0ZJTEVTPSRjb25maWdfZmlsZXMKLSsgIHRlc3QgIiR7Q09ORklHX0hFQURFUlMr c2V0fSIgPSBzZXQgfHwgQ09ORklHX0hFQURFUlM9JGNvbmZpZ19oZWFkZXJzCi0rICB0ZXN0ICIk e0NPTkZJR19DT01NQU5EUytzZXR9IiA9IHNldCB8fCBDT05GSUdfQ09NTUFORFM9JGNvbmZpZ19j b21tYW5kcwotK2ZpCi0rCi0rIyBIYXZlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgY29udmVu aWVuY2UuICBNYWtlIGl0IGluIHRoZSBidWlsZCB0cmVlCi0rIyBzaW1wbHkgYmVjYXVzZSB0aGVy ZSBpcyBubyByZWFzb24gYWdhaW5zdCBoYXZpbmcgaXQgaGVyZSwgYW5kIGluIGFkZGl0aW9uLAot KyMgY3JlYXRpbmcgYW5kIG1vdmluZyBmaWxlcyBmcm9tIC90bXAgY2FuIHNvbWV0aW1lcyBjYXVz ZSBwcm9ibGVtcy4KLSsjIEhvb2sgZm9yIGl0cyByZW1vdmFsIHVubGVzcyBkZWJ1Z2dpbmcuCi0r IyBOb3RlIHRoYXQgdGhlcmUgaXMgYSBzbWFsbCB3aW5kb3cgaW4gd2hpY2ggdGhlIGRpcmVjdG9y eSB3aWxsIG5vdCBiZSBjbGVhbmVkOgotKyMgYWZ0ZXIgaXRzIGNyZWF0aW9uIGJ1dCBiZWZvcmUg aXRzIG5hbWUgaGFzIGJlZW4gYXNzaWduZWQgdG8gYCR0bXAnLgotKyRkZWJ1ZyB8fAotK3sKLSsg IHRtcD0KLSsgIHRyYXAgJ2V4aXRfc3RhdHVzPSQ/Ci0rICB7IHRlc3QgLXogIiR0bXAiIHx8IHRl c3QgISAtZCAiJHRtcCIgfHwgcm0gLWZyICIkdG1wIjsgfSAmJiBleGl0ICRleGl0X3N0YXR1cwot KycgMAotKyAgdHJhcCAneyAoZXhpdCAxKTsgZXhpdCAxOyB9JyAxIDIgMTMgMTUKLSt9Ci0rIyBD cmVhdGUgYSAoc2VjdXJlKSB0bXAgZGlyZWN0b3J5IGZvciB0bXAgZmlsZXMuCi0rCi0rewotKyAg dG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAiLi9jb25mWFhYWFhYIikgMj4vZGV2L251bGxg ICYmCi0rICB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0IC1kICIkdG1wIgotK30gIHx8Ci0rewotKyAg dG1wPS4vY29uZiQkLSRSQU5ET00KLSsgICh1bWFzayAwNzcgJiYgbWtkaXIgIiR0bXAiKQotK30g fHwKLSt7Ci0rICAgJGFzX2VjaG8gIiRhc19tZTogY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBk aXJlY3RvcnkgaW4gLiIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0rfQotKwotKyMg U2V0IHVwIHRoZSBzY3JpcHRzIGZvciBDT05GSUdfRklMRVMgc2VjdGlvbi4KLSsjIE5vIG5lZWQg dG8gZ2VuZXJhdGUgdGhlbSBpZiB0aGVyZSBhcmUgbm8gQ09ORklHX0ZJTEVTLgotKyMgVGhpcyBo YXBwZW5zIGZvciBpbnN0YW5jZSB3aXRoIGAuL2NvbmZpZy5zdGF0dXMgY29uZmlnLmgnLgotK2lm IHRlc3QgLW4gIiRDT05GSUdfRklMRVMiOyB0aGVuCi0rCi0rCi0rYWNfY3I9Jw0nCi0rYWNfY3Nf YXdrX2NyPWAkQVdLICdCRUdJTiB7IHByaW50ICJhXHJiIiB9JyA8L2Rldi9udWxsIDI+L2Rldi9u dWxsYAotK2lmIHRlc3QgIiRhY19jc19hd2tfY3IiID0gImEke2FjX2NyfWIiOyB0aGVuCi0rICBh Y19jc19hd2tfY3I9J1xccicKLStlbHNlCi0rICBhY19jc19hd2tfY3I9JGFjX2NyCi0rZmkKLSsK LStlY2hvICdCRUdJTiB7JyA+IiR0bXAvc3ViczEuYXdrIiAmJgotK19BQ0VPRgotKwotKwotK3sK LSsgIGVjaG8gImNhdCA+Y29uZiQkc3Vicy5hd2sgPDxfQUNFT0YiICYmCi0rICBlY2hvICIkYWNf c3Vic3RfdmFycyIgfCBzZWQgJ3MvLiovJiEkJiRhY19kZWxpbS8nICYmCi0rICBlY2hvICJfQUNF T0YiCi0rfSA+Y29uZiQkc3Vicy5zaCB8fAotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiID4mMjt9Ci0rICAg eyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rYWNfZGVsaW1fbnVtPWBlY2hvICIkYWNfc3Vic3Rf dmFycyIgfCBncmVwIC1jICckJ2AKLSthY19kZWxpbT0nJSFfISMgJwotK2ZvciBhY19sYXN0X3Ry eSBpbiBmYWxzZSBmYWxzZSBmYWxzZSBmYWxzZSBmYWxzZSA6OyBkbwotKyAgLiAuL2NvbmYkJHN1 YnMuc2ggfHwKLSsgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxk IG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjog Y291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhp dCAxOyB9OyB9Ci0rCi0rICBhY19kZWxpbV9uPWBzZWQgLW4gInMvLiokYWNfZGVsaW1cJC9YL3Ai IGNvbmYkJHN1YnMuYXdrIHwgZ3JlcCAtYyBYYAotKyAgaWYgdGVzdCAkYWNfZGVsaW1fbiA9ICRh Y19kZWxpbV9udW07IHRoZW4KLSsgICAgYnJlYWsKLSsgIGVsaWYgJGFjX2xhc3RfdHJ5OyB0aGVu Ci0rICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgbWFr ZSAkQ09ORklHX1NUQVRVUyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5v dCBtYWtlICRDT05GSUdfU1RBVFVTIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fQotKyAgZWxzZQotKyAgICBhY19kZWxpbT0iJGFjX2RlbGltISRhY19kZWxpbSBfJGFjX2RlbGlt ISEgIgotKyAgZmkKLStkb25lCi0rcm0gLWYgY29uZiQkc3Vicy5zaAotKwotK2NhdCA+PiRDT05G SUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotK2NhdCA+PiJcJHRtcC9zdWJz MS5hd2siIDw8XFxfQUNBV0sgJiYKLStfQUNFT0YKLStzZWQgLW4gJwotK2gKLStzL14vU1siLzsg cy8hLiovIl09LwotK3AKLStnCi0rcy9eW14hXSohLy8KLSs6cmVwbAotK3QgcmVwbAotK3MvJyIk YWNfZGVsaW0iJyQvLwotK3QgZGVsaW0KLSs6bmwKLStoCi0rcy9cKC5cezE0OFx9XCkuKi9cMS8K LSt0IG1vcmUxCi0rcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvXFxuIlxcLwotK3AKLStuCi0r YiByZXBsCi0rOm1vcmUxCi0rcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIlxcLwotK3AKLStn Ci0rcy8uXHsxNDhcfS8vCi0rdCBubAotKzpkZWxpbQotK2gKLStzL1woLlx7MTQ4XH1cKS4qL1wx LwotK3QgbW9yZTIKLStzL1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC8iLwotK3AKLStiCi0rOm1v cmUyCi0rcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIlxcLwotK3AKLStnCi0rcy8uXHsxNDhc fS8vCi0rdCBkZWxpbQotKycgPGNvbmYkJHN1YnMuYXdrIHwgc2VkICcKLSsvXlteIiJdL3sKLSsg IE4KLSsgIHMvXG4vLwotK30KLSsnID4+JENPTkZJR19TVEFUVVMgfHwgYWNfd3JpdGVfZmFpbD0x Ci0rcm0gLWYgY29uZiQkc3Vicy5hd2sKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8 fCBhY193cml0ZV9mYWlsPTEKLStfQUNBV0sKLStjYXQgPj4iXCR0bXAvc3ViczEuYXdrIiA8PF9B Q0FXSyAmJgotKyAgZm9yIChrZXkgaW4gUykgU19pc19zZXRba2V5XSA9IDEKLSsgIEZTID0gIgci Ci0rCi0rfQotK3sKLSsgIGxpbmUgPSAkIDAKLSsgIG5maWVsZHMgPSBzcGxpdChsaW5lLCBmaWVs ZCwgIkAiKQotKyAgc3Vic3RlZCA9IDAKLSsgIGxlbiA9IGxlbmd0aChmaWVsZFsxXSkKLSsgIGZv ciAoaSA9IDI7IGkgPCBuZmllbGRzOyBpKyspIHsKLSsgICAga2V5ID0gZmllbGRbaV0KLSsgICAg a2V5bGVuID0gbGVuZ3RoKGtleSkKLSsgICAgaWYgKFNfaXNfc2V0W2tleV0pIHsKLSsgICAgICB2 YWx1ZSA9IFNba2V5XQotKyAgICAgIGxpbmUgPSBzdWJzdHIobGluZSwgMSwgbGVuKSAiIiB2YWx1 ZSAiIiBzdWJzdHIobGluZSwgbGVuICsga2V5bGVuICsgMykKLSsgICAgICBsZW4gKz0gbGVuZ3Ro KHZhbHVlKSArIGxlbmd0aChmaWVsZFsrK2ldKQotKyAgICAgIHN1YnN0ZWQgPSAxCi0rICAgIH0g ZWxzZQotKyAgICAgIGxlbiArPSAxICsga2V5bGVuCi0rICB9Ci0rCi0rICBwcmludCBsaW5lCi0r fQotKwotK19BQ0FXSwotK19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8 fCBhY193cml0ZV9mYWlsPTEKLStpZiBzZWQgInMvJGFjX2NyLy8iIDwgL2Rldi9udWxsID4gL2Rl di9udWxsIDI+JjE7IHRoZW4KLSsgIHNlZCAicy8kYWNfY3JcJC8vOyBzLyRhY19jci8kYWNfY3Nf YXdrX2NyL2ciCi0rZWxzZQotKyAgY2F0Ci0rZmkgPCAiJHRtcC9zdWJzMS5hd2siID4gIiR0bXAv c3Vicy5hd2siIFwKLSsgIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBj b3VsZCBub3Qgc2V0dXAgY29uZmlnIGZpbGVzIG1hY2hpbmVyeSIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogZXJyb3I6IGNvdWxkIG5vdCBzZXR1cCBjb25maWcgZmlsZXMgbWFjaGluZXJ5IiA+JjI7 fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK19BQ0VPRgotKwotKyMgVlBBVEggbWF5 IGNhdXNlIHRyb3VibGUgd2l0aCBzb21lIG1ha2VzLCBzbyB3ZSByZW1vdmUgJChzcmNkaXIpLAot KyMgJHtzcmNkaXJ9IGFuZCBAc3JjZGlyQCBmcm9tIFZQQVRIIGlmIHNyY2RpciBpcyAiLiIsIHN0 cmlwIGxlYWRpbmcgYW5kCi0rIyB0cmFpbGluZyBjb2xvbnMgYW5kIHRoZW4gcmVtb3ZlIHRoZSB3 aG9sZSBsaW5lIGlmIFZQQVRIIGJlY29tZXMgZW1wdHkKLSsjIChhY3R1YWxseSB3ZSBsZWF2ZSBh biBlbXB0eSBsaW5lIHRvIHByZXNlcnZlIGxpbmUgbnVtYmVycykuCi0raWYgdGVzdCAieCRzcmNk aXIiID0geC47IHRoZW4KLSsgIGFjX3Zwc3ViPScvXlsJIF0qVlBBVEhbCSBdKj0vewotK3MvOipc JChzcmNkaXIpOiovOi8KLStzLzoqXCR7c3JjZGlyfToqLzovCi0rcy86KkBzcmNkaXJAOiovOi8K LStzL15cKFtePV0qPVsJIF0qXCk6Ki9cMS8KLStzLzoqJC8vCi0rcy9eW149XSo9WwkgXSokLy8K LSt9JwotK2ZpCi0rCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRl X2ZhaWw9MQotK2ZpICMgdGVzdCAtbiAiJENPTkZJR19GSUxFUyIKLSsKLSsjIFNldCB1cCB0aGUg c2NyaXB0cyBmb3IgQ09ORklHX0hFQURFUlMgc2VjdGlvbi4KLSsjIE5vIG5lZWQgdG8gZ2VuZXJh dGUgdGhlbSBpZiB0aGVyZSBhcmUgbm8gQ09ORklHX0hFQURFUlMuCi0rIyBUaGlzIGhhcHBlbnMg Zm9yIGluc3RhbmNlIHdpdGggYC4vY29uZmlnLnN0YXR1cyBNYWtlZmlsZScuCi0raWYgdGVzdCAt biAiJENPTkZJR19IRUFERVJTIjsgdGhlbgotK2NhdCA+IiR0bXAvZGVmaW5lcy5hd2siIDw8XF9B Q0FXSyB8fAotK0JFR0lOIHsKLStfQUNFT0YKLSsKLSsjIFRyYW5zZm9ybSBjb25mZGVmcy5oIGlu dG8gYW4gYXdrIHNjcmlwdCBgZGVmaW5lcy5hd2snLCBlbWJlZGRlZCBhcwotKyMgaGVyZS1kb2N1 bWVudCBpbiBjb25maWcuc3RhdHVzLCB0aGF0IHN1YnN0aXR1dGVzIHRoZSBwcm9wZXIgdmFsdWVz IGludG8KLSsjIGNvbmZpZy5oLmluIHRvIHByb2R1Y2UgY29uZmlnLmguCi0rCi0rIyBDcmVhdGUg YSBkZWxpbWl0ZXIgc3RyaW5nIHRoYXQgZG9lcyBub3QgZXhpc3QgaW4gY29uZmRlZnMuaCwgdG8g ZWFzZQotKyMgaGFuZGxpbmcgb2YgbG9uZyBsaW5lcy4KLSthY19kZWxpbT0nJSFfISMgJwotK2Zv ciBhY19sYXN0X3RyeSBpbiBmYWxzZSBmYWxzZSA6OyBkbwotKyAgYWNfdD1gc2VkIC1uICIvJGFj X2RlbGltL3AiIGNvbmZkZWZzLmhgCi0rICBpZiB0ZXN0IC16ICIkYWNfdCI7IHRoZW4KLSsgICAg YnJlYWsKLSsgIGVsaWYgJGFjX2xhc3RfdHJ5OyB0aGVuCi0rICAgIHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX0hFQURFUlMiID4mNQot KyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX0hFQURFUlMi ID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICBlbHNlCi0rICAgIGFjX2Rl bGltPSIkYWNfZGVsaW0hJGFjX2RlbGltIF8kYWNfZGVsaW0hISAiCi0rICBmaQotK2RvbmUKLSsK LSsjIEZvciB0aGUgYXdrIHNjcmlwdCwgRCBpcyBhbiBhcnJheSBvZiBtYWNybyB2YWx1ZXMga2V5 ZWQgYnkgbmFtZSwKLSsjIGxpa2V3aXNlIFAgY29udGFpbnMgbWFjcm8gcGFyYW1ldGVycyBpZiBh bnkuICBQcmVzZXJ2ZSBiYWNrc2xhc2gKLSsjIG5ld2xpbmUgc2VxdWVuY2VzLgotKwotK2FjX3dv cmRfcmU9W18kYXNfY3JfTGV0dGVyc11bXyRhc19jcl9hbG51bV0qCi0rc2VkIC1uICcKLStzLy5c ezE0OFx9LyYnIiRhY19kZWxpbSInL2cKLSt0IHJzZXQKLSs6cnNldAotK3MvXlsJIF0qI1sJIF0q ZGVmaW5lWwkgXVsJIF0qLyAvCi0rdCBkZWYKLStkCi0rOmRlZgotK3MvXFwkLy8KLSt0IGJzbmwK LStzL1siXFxdL1xcJi9nCi0rcy9eIFwoJyIkYWNfd29yZF9yZSInXClcKChbXigpXSopXClbCSBd KlwoLipcKS9QWyJcMSJdPSJcMiJcCi0rRFsiXDEiXT0iIFwzIi9wCi0rcy9eIFwoJyIkYWNfd29y ZF9yZSInXClbCSBdKlwoLipcKS9EWyJcMSJdPSIgXDIiL3AKLStkCi0rOmJzbmwKLStzL1siXFxd L1xcJi9nCi0rcy9eIFwoJyIkYWNfd29yZF9yZSInXClcKChbXigpXSopXClbCSBdKlwoLipcKS9Q WyJcMSJdPSJcMiJcCi0rRFsiXDEiXT0iIFwzXFxcXFxcbiJcXC9wCi0rdCBjb250Ci0rcy9eIFwo JyIkYWNfd29yZF9yZSInXClbCSBdKlwoLipcKS9EWyJcMSJdPSIgXDJcXFxcXFxuIlxcL3AKLSt0 IGNvbnQKLStkCi0rOmNvbnQKLStuCi0rcy8uXHsxNDhcfS8mJyIkYWNfZGVsaW0iJy9nCi0rdCBj bGVhcgotKzpjbGVhcgotK3MvXFwkLy8KLSt0IGJzbmxjCi0rcy9bIlxcXS9cXCYvZzsgcy9eLyIv OyBzLyQvIi9wCi0rZAotKzpic25sYwotK3MvWyJcXF0vXFwmL2c7IHMvXi8iLzsgcy8kL1xcXFxc XG4iXFwvcAotK2IgY29udAotKycgPGNvbmZkZWZzLmggfCBzZWQgJwotK3MvJyIkYWNfZGVsaW0i Jy8iXFxcCi0rIi9nJyA+PiRDT05GSUdfU1RBVFVTIHx8IGFjX3dyaXRlX2ZhaWw9MQotKwotK2Nh dCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKyAgZm9yIChr ZXkgaW4gRCkgRF9pc19zZXRba2V5XSA9IDEKLSsgIEZTID0gIgciCi0rfQotKy9eW1x0IF0qI1tc dCBdKihkZWZpbmV8dW5kZWYpW1x0IF0rJGFjX3dvcmRfcmUoW1x0IChdfFwkKS8gewotKyAgbGlu ZSA9IFwkIDAKLSsgIHNwbGl0KGxpbmUsIGFyZywgIiAiKQotKyAgaWYgKGFyZ1sxXSA9PSAiIyIp IHsKLSsgICAgZGVmdW5kZWYgPSBhcmdbMl0KLSsgICAgbWFjMSA9IGFyZ1szXQotKyAgfSBlbHNl IHsKLSsgICAgZGVmdW5kZWYgPSBzdWJzdHIoYXJnWzFdLCAyKQotKyAgICBtYWMxID0gYXJnWzJd Ci0rICB9Ci0rICBzcGxpdChtYWMxLCBtYWMyLCAiKCIpICMpCi0rICBtYWNybyA9IG1hYzJbMV0K LSsgIHByZWZpeCA9IHN1YnN0cihsaW5lLCAxLCBpbmRleChsaW5lLCBkZWZ1bmRlZikgLSAxKQot KyAgaWYgKERfaXNfc2V0W21hY3JvXSkgewotKyAgICAjIFByZXNlcnZlIHRoZSB3aGl0ZSBzcGFj ZSBzdXJyb3VuZGluZyB0aGUgIiMiLgotKyAgICBwcmludCBwcmVmaXggImRlZmluZSIsIG1hY3Jv IFBbbWFjcm9dIERbbWFjcm9dCi0rICAgIG5leHQKLSsgIH0gZWxzZSB7Ci0rICAgICMgUmVwbGFj ZSAjdW5kZWYgd2l0aCBjb21tZW50cy4gIFRoaXMgaXMgbmVjZXNzYXJ5LCBmb3IgZXhhbXBsZSwK LSsgICAgIyBpbiB0aGUgY2FzZSBvZiBfUE9TSVhfU09VUkNFLCB3aGljaCBpcyBwcmVkZWZpbmVk IGFuZCByZXF1aXJlZAotKyAgICAjIG9uIHNvbWUgc3lzdGVtcyB3aGVyZSBjb25maWd1cmUgd2ls bCBub3QgZGVjaWRlIHRvIGRlZmluZSBpdC4KLSsgICAgaWYgKGRlZnVuZGVmID09ICJ1bmRlZiIp IHsKLSsgICAgICBwcmludCAiLyoiLCBwcmVmaXggZGVmdW5kZWYsIG1hY3JvLCAiKi8iCi0rICAg ICAgbmV4dAotKyAgICB9Ci0rICB9Ci0rfQotK3sgcHJpbnQgfQotK19BQ0FXSwotK19BQ0VPRgot K2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLSsgIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3Qgc2V0dXAgY29uZmln IGhlYWRlcnMgbWFjaGluZXJ5IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQg bm90IHNldHVwIGNvbmZpZyBoZWFkZXJzIG1hY2hpbmVyeSIgPiYyO30KLSsgICB7IChleGl0IDEp OyBleGl0IDE7IH07IH0KLStmaSAjIHRlc3QgLW4gIiRDT05GSUdfSEVBREVSUyIKLSsKLSsKLStl dmFsIHNldCBYICIgIDpGICRDT05GSUdfRklMRVMgIDpIICRDT05GSUdfSEVBREVSUyAgICA6QyAk Q09ORklHX0NPTU1BTkRTIgotK3NoaWZ0Ci0rZm9yIGFjX3RhZwotK2RvCi0rICBjYXNlICRhY190 YWcgaW4KLSsgIDpbRkhMQ10pIGFjX21vZGU9JGFjX3RhZzsgY29udGludWU7OwotKyAgZXNhYwot KyAgY2FzZSAkYWNfbW9kZSRhY190YWcgaW4KLSsgIDpbRkhMXSo6Kik7OwotKyAgOkwqIHwgOkMq OiopIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIHRhZyAkYWNf dGFnIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCB0YWcgJGFjX3RhZyIg PiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OwotKyAgOltGSF0tKSBhY190YWc9 LTotOzsKLSsgIDpbRkhdKikgYWNfdGFnPSRhY190YWc6JGFjX3RhZy5pbjs7Ci0rICBlc2FjCi0r ICBhY19zYXZlX0lGUz0kSUZTCi0rICBJRlM9OgotKyAgc2V0IHggJGFjX3RhZwotKyAgSUZTPSRh Y19zYXZlX0lGUwotKyAgc2hpZnQKLSsgIGFjX2ZpbGU9JDEKLSsgIHNoaWZ0Ci0rCi0rICBjYXNl ICRhY19tb2RlIGluCi0rICA6TCkgYWNfc291cmNlPSQxOzsKLSsgIDpbRkhdKQotKyAgICBhY19m aWxlX2lucHV0cz0KLSsgICAgZm9yIGFjX2YKLSsgICAgZG8KLSsgICAgICBjYXNlICRhY19mIGlu Ci0rICAgICAgLSkgYWNfZj0iJHRtcC9zdGRpbiI7OwotKyAgICAgICopICMgTG9vayBmb3IgdGhl IGZpbGUgZmlyc3QgaW4gdGhlIGJ1aWxkIHRyZWUsIHRoZW4gaW4gdGhlIHNvdXJjZSB0cmVlCi0r CSAjIChpZiB0aGUgcGF0aCBpcyBub3QgYWJzb2x1dGUpLiAgVGhlIGFic29sdXRlIHBhdGggY2Fu bm90IGJlIERPUy1zdHlsZSwKLSsJICMgYmVjYXVzZSAkYWNfZiBjYW5ub3QgY29udGFpbiBgOicu Ci0rCSB0ZXN0IC1mICIkYWNfZiIgfHwKLSsJICAgY2FzZSAkYWNfZiBpbgotKwkgICBbXFwvJF0q KSBmYWxzZTs7Ci0rCSAgICopIHRlc3QgLWYgIiRzcmNkaXIvJGFjX2YiICYmIGFjX2Y9IiRzcmNk aXIvJGFjX2YiOzsKLSsJICAgZXNhYyB8fAotKwkgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGFjX2YiID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkYWNfZiIgPiYyO30KLSsg ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OwotKyAgICAgIGVzYWMKLSsgICAgICBjYXNlICRh Y19mIGluICpcJyopIGFjX2Y9YCRhc19lY2hvICIkYWNfZiIgfCBzZWQgInMvJy8nXFxcXFxcXFwn Jy9nImA7OyBlc2FjCi0rICAgICAgYWNfZmlsZV9pbnB1dHM9IiRhY19maWxlX2lucHV0cyAnJGFj X2YnIgotKyAgICBkb25lCi0rCi0rICAgICMgTGV0J3Mgc3RpbGwgcHJldGVuZCBpdCBpcyBgY29u ZmlndXJlJyB3aGljaCBpbnN0YW50aWF0ZXMgKGkuZS4sIGRvbid0Ci0rICAgICMgdXNlICRhc19t ZSksIHBlb3BsZSB3b3VsZCBiZSBzdXJwcmlzZWQgdG8gcmVhZDoKLSsgICAgIyAgICAvKiBjb25m aWcuaC4gIEdlbmVyYXRlZCBieSBjb25maWcuc3RhdHVzLiAgKi8KLSsgICAgY29uZmlndXJlX2lu cHV0PSdHZW5lcmF0ZWQgZnJvbSAnYAotKwkgICRhc19lY2hvICIkKiIgfCBzZWQgJ3N8XlteOl0q L3x8O3N8OlteOl0qL3wsIHxnJwotKwlgJyBieSBjb25maWd1cmUuJwotKyAgICBpZiB0ZXN0IHgi JGFjX2ZpbGUiICE9IHgtOyB0aGVuCi0rICAgICAgY29uZmlndXJlX2lucHV0PSIkYWNfZmlsZS4g ICRjb25maWd1cmVfaW5wdXQiCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNy ZWF0aW5nICRhY19maWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBjcmVhdGluZyAkYWNfZmls ZSIgPiY2O30KLSsgICAgZmkKLSsgICAgIyBOZXV0cmFsaXplIHNwZWNpYWwgY2hhcmFjdGVycyBp bnRlcnByZXRlZCBieSBzZWQgaW4gcmVwbGFjZW1lbnQgc3RyaW5ncy4KLSsgICAgY2FzZSAkY29u ZmlndXJlX2lucHV0IGluICMoCi0rICAgICpcJiogfCAqXHwqIHwgKlxcKiApCi0rICAgICAgIGFj X3NlZF9jb25mX2lucHV0PWAkYXNfZWNobyAiJGNvbmZpZ3VyZV9pbnB1dCIgfAotKyAgICAgICBz ZWQgJ3MvW1xcXFwmfF0vXFxcXCYvZydgOzsgIygKLSsgICAgKikgYWNfc2VkX2NvbmZfaW5wdXQ9 JGNvbmZpZ3VyZV9pbnB1dDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgY2FzZSAkYWNfdGFnIGluCi0r ICAgICo6LToqIHwgKjotKSBjYXQgPiIkdG1wL3N0ZGluIiBcCi0rICAgICAgfHwgeyB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4m NQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+ JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OwotKyAgICBlc2FjCi0rICAgIDs7 Ci0rICBlc2FjCi0rCi0rICBhY19kaXI9YCRhc19kaXJuYW1lIC0tICIkYWNfZmlsZSIgfHwKLSsk YXNfZXhwciBYIiRhY19maWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAot KwkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwKLSsJIFgiJGFjX2ZpbGUiIDogJ1hc KC8vXCkkJyBcfCBcCi0rCSBYIiRhY19maWxlIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwg fHwKLSskYXNfZWNobyBYIiRhY19maWxlIiB8Ci0rICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8q W14vXVteL10qXC8qJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChc L1wvXClbXi9dLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9c L1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wpLiovewot KwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIHMvLiovLi87IHEnYAotKyAgeyBhc19k aXI9IiRhY19kaXIiCi0rICBjYXNlICRhc19kaXIgaW4gIygKLSsgIC0qKSBhc19kaXI9Li8kYXNf ZGlyOzsKLSsgIGVzYWMKLSsgIHRlc3QgLWQgIiRhc19kaXIiIHx8IHsgJGFzX21rZGlyX3AgJiYg bWtkaXIgLXAgIiRhc19kaXIiOyB9IHx8IHsKLSsgICAgYXNfZGlycz0KLSsgICAgd2hpbGUgOjsg ZG8KLSsgICAgICBjYXNlICRhc19kaXIgaW4gIygKLSsgICAgICAqXCcqKSBhc19xZGlyPWAkYXNf ZWNobyAiJGFzX2RpciIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OyAjJygKLSsgICAgICAq KSBhc19xZGlyPSRhc19kaXI7OwotKyAgICAgIGVzYWMKLSsgICAgICBhc19kaXJzPSInJGFzX3Fk aXInICRhc19kaXJzIgotKyAgICAgIGFzX2Rpcj1gJGFzX2Rpcm5hbWUgLS0gIiRhc19kaXIiIHx8 Ci0rJGFzX2V4cHIgWCIkYXNfZGlyIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwg XAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdY XCgvL1wpJCcgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwg fHwKLSskYXNfZWNobyBYIiRhc19kaXIiIHwKLSsgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypb Xi9dW14vXSpcLyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwv XC9cKVteL10uKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wv XCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXCkuKi97Ci0r CSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgCi0rICAgICAgdGVz dCAtZCAiJGFzX2RpciIgJiYgYnJlYWsKLSsgICAgZG9uZQotKyAgICB0ZXN0IC16ICIkYXNfZGly cyIgfHwgZXZhbCAibWtkaXIgJGFzX2RpcnMiCi0rICB9IHx8IHRlc3QgLWQgIiRhc19kaXIiIHx8 IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVj dG9yeSAkYXNfZGlyIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0 ZSBkaXJlY3RvcnkgJGFzX2RpciIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07 IH0KLSsgIGFjX2J1aWxkZGlyPS4KLSsKLStjYXNlICIkYWNfZGlyIiBpbgotKy4pIGFjX2Rpcl9z dWZmaXg9IGFjX3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4PSA7OwotKyop Ci0rICBhY19kaXJfc3VmZml4PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwgc2VkICdzfF5cLltcXC9d fHwnYAotKyAgIyBBICIuLiIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4Lgot KyAgYWNfdG9wX2J1aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAn c3wvW15cXC9dKnwvLi58ZztzfC98fCdgCi0rICBjYXNlICRhY190b3BfYnVpbGRkaXJfc3ViIGlu Ci0rICAiIikgYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7Ci0r ICAqKSAgYWNfdG9wX2J1aWxkX3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1Yi8gOzsKLSsgIGVz YWMgOzsKLStlc2FjCi0rYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfcHdkCi0rYWNfYWJzX2J1aWxk ZGlyPSRhY19wd2QkYWNfZGlyX3N1ZmZpeAotKyMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk6 Ci0rYWNfdG9wX2J1aWxkZGlyPSRhY190b3BfYnVpbGRfcHJlZml4Ci0rCi0rY2FzZSAkc3JjZGly IGluCi0rICAuKSAgIyBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCi0rICAgIGFjX3NyY2Rpcj0u Ci0rICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKLSsgICAgYWNfYWJzX3Rv cF9zcmNkaXI9JGFjX3B3ZCA7OwotKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBu YW1lLgotKyAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OwotKyAgICBhY190b3Bf c3JjZGlyPSRzcmNkaXIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JHNyY2RpciA7OwotKyAgKikg IyBSZWxhdGl2ZSBuYW1lLgotKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgkc3Jj ZGlyJGFjX2Rpcl9zdWZmaXgKLSsgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZp eCRzcmNkaXIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3JjZGlyIDs7Ci0rZXNh YwotK2FjX2Fic19zcmNkaXI9JGFjX2Fic190b3Bfc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLSsKLSsK LSsgIGNhc2UgJGFjX21vZGUgaW4KLSsgIDpGKQotKyAgIwotKyAgIyBDT05GSUdfRklMRQotKyAg IwotKwotKyAgY2FzZSAkSU5TVEFMTCBpbgotKyAgW1xcLyRdKiB8ID86W1xcL10qICkgYWNfSU5T VEFMTD0kSU5TVEFMTCA7OwotKyAgKikgYWNfSU5TVEFMTD0kYWNfdG9wX2J1aWxkX3ByZWZpeCRJ TlNUQUxMIDs7Ci0rICBlc2FjCi0rICBhY19NS0RJUl9QPSRNS0RJUl9QCi0rICBjYXNlICRNS0RJ Ul9QIGluCi0rICBbXFwvJF0qIHwgPzpbXFwvXSogKSA7OwotKyAgKi8qKSBhY19NS0RJUl9QPSRh Y190b3BfYnVpbGRfcHJlZml4JE1LRElSX1AgOzsKLSsgIGVzYWMKLStfQUNFT0YKLSsKLStjYXQg Pj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rIyBJZiB0aGUg dGVtcGxhdGUgZG9lcyBub3Qga25vdyBhYm91dCBkYXRhcm9vdGRpciwgZXhwYW5kIGl0LgotKyMg RklYTUU6IFRoaXMgaGFjayBzaG91bGQgYmUgcmVtb3ZlZCBhIGZldyB5ZWFycyBhZnRlciAyLjYw LgotK2FjX2RhdGFyb290ZGlyX2hhY2s9OyBhY19kYXRhcm9vdGRpcl9zZWVuPQotKwotK2FjX3Nl ZF9kYXRhcm9vdD0nCi0rL2RhdGFyb290ZGlyLyB7Ci0rICBwCi0rICBxCi0rfQotKy9AZGF0YWRp ckAvcAotKy9AZG9jZGlyQC9wCi0rL0BpbmZvZGlyQC9wCi0rL0Bsb2NhbGVkaXJAL3AKLSsvQG1h bmRpckAvcAotKycKLStjYXNlIGBldmFsICJzZWQgLW4gXCJcJGFjX3NlZF9kYXRhcm9vdFwiICRh Y19maWxlX2lucHV0cyJgIGluCi0rKmRhdGFyb290ZGlyKikgYWNfZGF0YXJvb3RkaXJfc2Vlbj15 ZXM7OwotKypAZGF0YWRpckAqfCpAZG9jZGlyQCp8KkBpbmZvZGlyQCp8KkBsb2NhbGVkaXJAKnwq QG1hbmRpckAqKQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19m aWxlX2lucHV0cyBzZWVtcyB0byBpZ25vcmUgdGhlIC0tZGF0YXJvb3RkaXIgc2V0dGluZyIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2ZpbGVfaW5wdXRzIHNlZW1zIHRvIGln bm9yZSB0aGUgLS1kYXRhcm9vdGRpciBzZXR0aW5nIiA+JjI7fQotK19BQ0VPRgotK2NhdCA+PiRD T05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKyAgYWNfZGF0YXJvb3Rk aXJfaGFjaz0nCi0rICBzJkBkYXRhZGlyQCYkZGF0YWRpciZnCi0rICBzJkBkb2NkaXJAJiRkb2Nk aXImZwotKyAgcyZAaW5mb2RpckAmJGluZm9kaXImZwotKyAgcyZAbG9jYWxlZGlyQCYkbG9jYWxl ZGlyJmcKLSsgIHMmQG1hbmRpckAmJG1hbmRpciZnCi0rICAgIHMmXFxcJHtkYXRhcm9vdGRpcn0m JGRhdGFyb290ZGlyJmcnIDs7Ci0rZXNhYwotK19BQ0VPRgotKwotKyMgTmV1dHJhbGl6ZSBWUEFU SCB3aGVuIGAkc3JjZGlyJyA9IGAuJy4KLSsjIFNoZWxsIGNvZGUgaW4gY29uZmlndXJlLmFjIG1p Z2h0IHNldCBleHRyYXN1Yi4KLSsjIEZJWE1FOiBkbyB3ZSByZWFsbHkgd2FudCB0byBtYWludGFp biB0aGlzIGZlYXR1cmU/Ci0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3Jp dGVfZmFpbD0xCi0rYWNfc2VkX2V4dHJhPSIkYWNfdnBzdWIKLSskZXh0cmFzdWIKLStfQUNFT0YK LStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rOnQK LSsvQFthLXpBLVpfXVthLXpBLVpfMC05XSpALyFiCi0rc3xAY29uZmlndXJlX2lucHV0QHwkYWNf c2VkX2NvbmZfaW5wdXR8O3QgdAotK3MmQHRvcF9idWlsZGRpckAmJGFjX3RvcF9idWlsZGRpcl9z dWImO3QgdAotK3MmQHRvcF9idWlsZF9wcmVmaXhAJiRhY190b3BfYnVpbGRfcHJlZml4Jjt0IHQK LStzJkBzcmNkaXJAJiRhY19zcmNkaXImO3QgdAotK3MmQGFic19zcmNkaXJAJiRhY19hYnNfc3Jj ZGlyJjt0IHQKLStzJkB0b3Bfc3JjZGlyQCYkYWNfdG9wX3NyY2RpciY7dCB0Ci0rcyZAYWJzX3Rv cF9zcmNkaXJAJiRhY19hYnNfdG9wX3NyY2RpciY7dCB0Ci0rcyZAYnVpbGRkaXJAJiRhY19idWls ZGRpciY7dCB0Ci0rcyZAYWJzX2J1aWxkZGlyQCYkYWNfYWJzX2J1aWxkZGlyJjt0IHQKLStzJkBh YnNfdG9wX2J1aWxkZGlyQCYkYWNfYWJzX3RvcF9idWlsZGRpciY7dCB0Ci0rcyZASU5TVEFMTEAm JGFjX0lOU1RBTEwmO3QgdAotK3MmQE1LRElSX1BAJiRhY19NS0RJUl9QJjt0IHQKLSskYWNfZGF0 YXJvb3RkaXJfaGFjawotKyIKLStldmFsIHNlZCBcIlwkYWNfc2VkX2V4dHJhXCIgIiRhY19maWxl X2lucHV0cyIgfCAkQVdLIC1mICIkdG1wL3N1YnMuYXdrIiA+JHRtcC9vdXQgXAotKyAgfHwgeyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2Zp bGUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19m aWxlIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKwotK3Rlc3QgLXogIiRh Y19kYXRhcm9vdGRpcl9oYWNrJGFjX2RhdGFyb290ZGlyX3NlZW4iICYmCi0rICB7IGFjX291dD1g c2VkIC1uICcvXCR7ZGF0YXJvb3RkaXJ9L3AnICIkdG1wL291dCJgOyB0ZXN0IC1uICIkYWNfb3V0 IjsgfSAmJgotKyAgeyBhY19vdXQ9YHNlZCAtbiAnL15bCSBdKmRhdGFyb290ZGlyWwkgXSo6Kj0v cCcgIiR0bXAvb3V0ImA7IHRlc3QgLXogIiRhY19vdXQiOyB9ICYmCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2ZpbGUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8g dGhlIHZhcmlhYmxlIFxgZGF0YXJvb3RkaXInCi0rd2hpY2ggc2VlbXMgdG8gYmUgdW5kZWZpbmVk LiAgUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBkZWZpbmVkLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogV0FSTklORzogJGFjX2ZpbGUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIHZhcmlhYmxl IFxgZGF0YXJvb3RkaXInCi0rd2hpY2ggc2VlbXMgdG8gYmUgdW5kZWZpbmVkLiAgUGxlYXNlIG1h a2Ugc3VyZSBpdCBpcyBkZWZpbmVkLiIgPiYyO30KLSsKLSsgIHJtIC1mICIkdG1wL3N0ZGluIgot KyAgY2FzZSAkYWNfZmlsZSBpbgotKyAgLSkgY2F0ICIkdG1wL291dCIgJiYgcm0gLWYgIiR0bXAv b3V0Ijs7Ci0rICAqKSBybSAtZiAiJGFjX2ZpbGUiICYmIG12ICIkdG1wL291dCIgIiRhY19maWxl Ijs7Ci0rICBlc2FjIFwKLSsgIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KLSsgOzsKLSsgIDpIKQotKyAgIwotKyAgIyBDT05GSUdfSEVBREVSCi0rICAjCi0r ICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCi0rICAgIHsKLSsgICAgICAkYXNfZWNo byAiLyogJGNvbmZpZ3VyZV9pbnB1dCAgKi8iIFwKLSsgICAgICAmJiBldmFsICckQVdLIC1mICIk dG1wL2RlZmluZXMuYXdrIicgIiRhY19maWxlX2lucHV0cyIKLSsgICAgfSA+IiR0bXAvY29uZmln LmgiIFwKLSsgICAgICB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291 bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNv dWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9Ci0rICAgIGlmIGRpZmYgIiRhY19maWxlIiAiJHRtcC9jb25maWcuaCIgPi9kZXYvbnVsbCAy PiYxOyB0aGVuCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86ICRhY19maWxlIGlz IHVuY2hhbmdlZCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogJGFjX2ZpbGUgaXMgdW5jaGFuZ2Vk IiA+JjY7fQotKyAgICBlbHNlCi0rICAgICAgcm0gLWYgIiRhY19maWxlIgotKyAgICAgIG12ICIk dG1wL2NvbmZpZy5oIiAiJGFjX2ZpbGUiIFwKLSsJfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mNQotKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjI7fQotKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICBmaQotKyAgZWxzZQotKyAgICAkYXNfZWNobyAiLyog JGNvbmZpZ3VyZV9pbnB1dCAgKi8iIFwKLSsgICAgICAmJiBldmFsICckQVdLIC1mICIkdG1wL2Rl ZmluZXMuYXdrIicgIiRhY19maWxlX2lucHV0cyIgXAotKyAgICAgIHx8IHsgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlIC0iID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlIC0iID4mMjt9Ci0rICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9Ci0rICBmaQotKyMgQ29tcHV0ZSAiJGFjX2ZpbGUiJ3MgaW5kZXggaW4g JGNvbmZpZ19oZWFkZXJzLgotK19hbV9hcmc9IiRhY19maWxlIgotK19hbV9zdGFtcF9jb3VudD0x Ci0rZm9yIF9hbV9oZWFkZXIgaW4gJGNvbmZpZ19oZWFkZXJzIDo7IGRvCi0rICBjYXNlICRfYW1f aGVhZGVyIGluCi0rICAgICRfYW1fYXJnIHwgJF9hbV9hcmc6KiApCi0rICAgICAgYnJlYWsgOzsK LSsgICAgKiApCi0rICAgICAgX2FtX3N0YW1wX2NvdW50PWBleHByICRfYW1fc3RhbXBfY291bnQg KyAxYCA7OwotKyAgZXNhYwotK2RvbmUKLStlY2hvICJ0aW1lc3RhbXAgZm9yICRfYW1fYXJnIiA+ YCRhc19kaXJuYW1lIC0tICIkX2FtX2FyZyIgfHwKLSskYXNfZXhwciBYIiRfYW1fYXJnIiA6ICdY XCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkX2FtX2FyZyIgOiAnWFwoLy9c KVteL10nIFx8IFwKLSsJIFgiJF9hbV9hcmciIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRfYW1f YXJnIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRfYW1fYXJn IiB8Ci0rICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97Ci0rCSAgICBz Ly9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXClbXi9dLiovewotKwkgICAgcy8v XDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJ ICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wpLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0r CSAgfQotKwkgIHMvLiovLi87IHEnYC9zdGFtcC1oJF9hbV9zdGFtcF9jb3VudAotKyA7OwotKwot KyAgOkMpICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXhlY3V0aW5nICRhY19maWxlIGNv bW1hbmRzIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBleGVjdXRpbmcgJGFjX2ZpbGUgY29tbWFu ZHMiID4mNjt9Ci0rIDs7Ci0rICBlc2FjCi0rCi0rCi0rICBjYXNlICRhY19maWxlJGFjX21vZGUg aW4KLSsgICAgImRlcGZpbGVzIjpDKSB0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCB7Ci0r ICAjIEF1dG9jb25mIDIuNjIgcXVvdGVzIC0tZmlsZSBhcmd1bWVudHMgZm9yIGV2YWwsIGJ1dCBu b3Qgd2hlbiBmaWxlcwotKyAgIyBhcmUgbGlzdGVkIHdpdGhvdXQgLS1maWxlLiAgTGV0J3MgcGxh eSBzYWZlIGFuZCBvbmx5IGVuYWJsZSB0aGUgZXZhbAotKyAgIyBpZiB3ZSBkZXRlY3QgdGhlIHF1 b3RpbmcuCi0rICBjYXNlICRDT05GSUdfRklMRVMgaW4KLSsgICpcJyopIGV2YWwgc2V0IHggIiRD T05GSUdfRklMRVMiIDs7Ci0rICAqKSAgIHNldCB4ICRDT05GSUdfRklMRVMgOzsKLSsgIGVzYWMK LSsgIHNoaWZ0Ci0rICBmb3IgbWYKLSsgIGRvCi0rICAgICMgU3RyaXAgTUYgc28gd2UgZW5kIHVw IHdpdGggdGhlIG5hbWUgb2YgdGhlIGZpbGUuCi0rICAgIG1mPWBlY2hvICIkbWYiIHwgc2VkIC1l ICdzLzouKiQvLydgCi0rICAgICMgQ2hlY2sgd2hldGhlciB0aGlzIGlzIGFuIEF1dG9tYWtlIGdl bmVyYXRlZCBNYWtlZmlsZSBvciBub3QuCi0rICAgICMgV2UgdXNlZCB0byBtYXRjaCBvbmx5IHRo ZSBmaWxlcyBuYW1lZCBgTWFrZWZpbGUuaW4nLCBidXQKLSsgICAgIyBzb21lIHBlb3BsZSByZW5h bWUgdGhlbTsgc28gaW5zdGVhZCB3ZSBsb29rIGF0IHRoZSBmaWxlIGNvbnRlbnQuCi0rICAgICMg R3JlcCdpbmcgdGhlIGZpcnN0IGxpbmUgaXMgbm90IGVub3VnaDogc29tZSBwZW9wbGUgcG9zdC1w cm9jZXNzCi0rICAgICMgZWFjaCBNYWtlZmlsZS5pbiBhbmQgYWRkIGEgbmV3IGxpbmUgb24gdG9w IG9mIGVhY2ggZmlsZSB0byBzYXkgc28uCi0rICAgICMgR3JlcCdpbmcgdGhlIHdob2xlIGZpbGUg aXMgbm90IGdvb2QgZWl0aGVyOiBBSVggZ3JlcCBoYXMgYSBsaW5lCi0rICAgICMgbGltaXQgb2Yg MjA0OCwgYnV0IGFsbCBzZWQncyB3ZSBrbm93IGhhdmUgdW5kZXJzdGFuZCBhdCBsZWFzdCA0MDAw LgotKyAgICBpZiBzZWQgLW4gJ3MsXiMuKmdlbmVyYXRlZCBieSBhdXRvbWFrZS4qLFgscCcgIiRt ZiIgfCBncmVwIFggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgICAgZGlycGFydD1gJGFzX2Rp cm5hbWUgLS0gIiRtZiIgfHwKLSskYXNfZXhwciBYIiRtZiIgOiAnWFwoLipbXi9dXCkvLypbXi9d W14vXSovKiQnIFx8IFwKLSsJIFgiJG1mIiA6ICdYXCgvL1wpW14vXScgXHwgXAotKwkgWCIkbWYi IDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRtZiIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxs IHx8Ci0rJGFzX2VjaG8gWCIkbWYiIHwKLSsgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9d W14vXSpcLyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9c KVteL10uKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXCkk L3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXCkuKi97Ci0rCSAg ICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgCi0rICAgIGVsc2UKLSsg ICAgICBjb250aW51ZQotKyAgICBmaQotKyAgICAjIEV4dHJhY3QgdGhlIGRlZmluaXRpb24gb2Yg REVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQotKyAgICAjIGZyb20gdGhlIE1ha2Vm aWxlIHdpdGhvdXQgcnVubmluZyBgbWFrZScuCi0rICAgIERFUERJUj1gc2VkIC1uICdzL15ERVBE SVIgPSAvL3AnIDwgIiRtZiJgCi0rICAgIHRlc3QgLXogIiRERVBESVIiICYmIGNvbnRpbnVlCi0r ICAgIGFtX19pbmNsdWRlPWBzZWQgLW4gJ3MvXmFtX19pbmNsdWRlID0gLy9wJyA8ICIkbWYiYAot KyAgICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29udGludWUKLSsgICAgYW1fX3F1b3RlPWBz ZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcgPCAiJG1mImAKLSsgICAgIyBXaGVuIHVzaW5nIGFu c2kya25yLCBVIG1heSBiZSBlbXB0eSBvciBhbiB1bmRlcnNjb3JlOyBleHBhbmQgaXQKLSsgICAg VT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAotKyAgICAjIEZpbmQgYWxsIGRlcGVuZGVu Y3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFyZSBpbmNsdWRlZCBmaWxlcyB3aXRoCi0rICAgICMgJChE RVBESVIpIGluIHRoZWlyIG5hbWVzLiAgV2UgaW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0IGlz IHRoZQotKyAgICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBp dHMgYWN0dWFsIHZhbHVlIGluIHRoZQotKyAgICAjIGV4cGFuc2lvbi4KLSsgICAgZm9yIGZpbGUg aW4gYHNlZCAtbiAiCi0rICAgICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4qKERFUERJ UikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCi0rCSBzZWQgLWUgJ3MvXCQoREVQ RElSKS8nIiRERVBESVIiJy9nJyAtZSAncy9cJFUvJyIkVSInL2cnYDsgZG8KLSsgICAgICAjIE1h a2Ugc3VyZSB0aGUgZGlyZWN0b3J5IGV4aXN0cy4KLSsgICAgICB0ZXN0IC1mICIkZGlycGFydC8k ZmlsZSIgJiYgY29udGludWUKLSsgICAgICBmZGlyPWAkYXNfZGlybmFtZSAtLSAiJGZpbGUiIHx8 Ci0rJGFzX2V4cHIgWCIkZmlsZSIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwK LSsJIFgiJGZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0rCSBYIiRmaWxlIiA6ICdYXCgvL1wp JCcgXHwgXAotKwkgWCIkZmlsZSIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0rJGFz X2VjaG8gWCIkZmlsZSIgfAotKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwv KiQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpW14vXS4q L3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKSQvewotKwkg ICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cKS4qL3sKLSsJICAgIHMvL1wx LwotKwkgICAgcQotKwkgIH0KLSsJICBzLy4qLy4vOyBxJ2AKLSsgICAgICB7IGFzX2Rpcj0kZGly cGFydC8kZmRpcgotKyAgY2FzZSAkYXNfZGlyIGluICMoCi0rICAtKikgYXNfZGlyPS4vJGFzX2Rp cjs7Ci0rICBlc2FjCi0rICB0ZXN0IC1kICIkYXNfZGlyIiB8fCB7ICRhc19ta2Rpcl9wICYmIG1r ZGlyIC1wICIkYXNfZGlyIjsgfSB8fCB7Ci0rICAgIGFzX2RpcnM9Ci0rICAgIHdoaWxlIDo7IGRv Ci0rICAgICAgY2FzZSAkYXNfZGlyIGluICMoCi0rICAgICAgKlwnKikgYXNfcWRpcj1gJGFzX2Vj aG8gIiRhc19kaXIiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsgIycoCi0rICAgICAgKikg YXNfcWRpcj0kYXNfZGlyOzsKLSsgICAgICBlc2FjCi0rICAgICAgYXNfZGlycz0iJyRhc19xZGly JyAkYXNfZGlycyIKLSsgICAgICBhc19kaXI9YCRhc19kaXJuYW1lIC0tICIkYXNfZGlyIiB8fAot KyRhc19leHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwK LSsJIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKLSsJIFgiJGFzX2RpciIgOiAnWFwo Ly9cKSQnIFx8IFwKLSsJIFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8 Ci0rJGFzX2VjaG8gWCIkYXNfZGlyIiB8Ci0rICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14v XVteL10qXC8qJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wv XClbXi9dLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wp JC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wpLiovewotKwkg ICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIHMvLiovLi87IHEnYAotKyAgICAgIHRlc3Qg LWQgIiRhc19kaXIiICYmIGJyZWFrCi0rICAgIGRvbmUKLSsgICAgdGVzdCAteiAiJGFzX2RpcnMi IHx8IGV2YWwgIm1rZGlyICRhc19kaXJzIgotKyAgfSB8fCB0ZXN0IC1kICIkYXNfZGlyIiB8fCB7 IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3Rv cnkgJGFzX2RpciIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUg ZGlyZWN0b3J5ICRhc19kaXIiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9 Ci0rICAgICAgIyBlY2hvICJjcmVhdGluZyAkZGlycGFydC8kZmlsZSIKLSsgICAgICBlY2hvICcj IGR1bW15JyA+ICIkZGlycGFydC8kZmlsZSIKLSsgICAgZG9uZQotKyAgZG9uZQotK30KLSsgOzsK LSsgICAgImxpYnRvb2wiOkMpCi0rCi0rICAgICMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpz aCwgYW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKLSsgICAgIyBjb21tYW5kcyB0 aHJvdWdoIHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMuCi0rICAgIGlmIHRlc3QgLW4gIiR7 WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCi0rICAgICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLSsg ICAgZmkKLSsKLSsgICAgY2ZnZmlsZT0iJHtvZmlsZX1UIgotKyAgICB0cmFwICIkUk0gXCIkY2Zn ZmlsZVwiOyBleGl0IDEiIDEgMiAxNQotKyAgICAkUk0gIiRjZmdmaWxlIgotKwotKyAgICBjYXQg PDxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsjISAkU0hFTEwKLSsKLSsjIGAkRUNITyAiJG9maWxl IiB8IHNlZCAncyVeLiovJSUnYCAtIFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGlicmFyeS1idWlsZGlu ZyBzdXBwb3J0IHNlcnZpY2VzLgotKyMgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgJGFzX21l ICgkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCi0rIyBMaWJ0b29sIHdhcyBjb25maWd1cmVk IG9uIGhvc3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgOgot KyMgTk9URTogQ2hhbmdlcyBtYWRlIHRvIHRoaXMgZmlsZSB3aWxsIGJlIGxvc3Q6IGxvb2sgYXQg bHRtYWluLnNoLgotKyMKLSsjICAgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5 LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LAotKyMgICAgICAgICAgICAgICAgIDIwMDYs IDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyAgIFdyaXR0ZW4g YnkgR29yZG9uIE1hdHppZ2tlaXQsIDE5OTYKLSsjCi0rIyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IEdOVSBMaWJ0b29sLgotKyMKLSsjIEdOVSBMaWJ0b29sIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKLSsjIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCi0rIyB0aGUgTGlj ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBBcyBh IHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKLSsj IGlmIHlvdSBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSBvciBsaWJy YXJ5IHRoYXQKLSsjIGlzIGJ1aWx0IHVzaW5nIEdOVSBMaWJ0b29sLCB5b3UgbWF5IGluY2x1ZGUg dGhpcyBmaWxlIHVuZGVyIHRoZQotKyMgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3Ug dXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0rIwotKyMgR05VIExpYnRvb2wgaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m Ci0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIEdOVSBMaWJ0b29sOyBzZWUgdGhlIGZp bGUgQ09QWUlORy4gIElmIG5vdCwgYSBjb3B5Ci0rIyBjYW4gYmUgZG93bmxvYWRlZCBmcm9tIGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbCwgb3IKLSsjIG9idGFpbmVkIGJ5IHdy aXRpbmcgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKLSsjIDUxIEZyYW5r bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotKwot KwotKyMgVGhlIG5hbWVzIG9mIHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbnMgc3VwcG9ydGVkIGJ5 IHRoaXMgc2NyaXB0LgotK2F2YWlsYWJsZV90YWdzPSJDWFggIgotKwotKyMgIyMjIEJFR0lOIExJ QlRPT0wgQ09ORklHCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzaGFyZWQgbGlicmFy aWVzLgotK2J1aWxkX2xpYnRvb2xfbGlicz0kZW5hYmxlX3NoYXJlZAotKwotKyMgV2hldGhlciBv ciBub3QgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcy4KLStidWlsZF9vbGRfbGlicz0kZW5hYmxl X3N0YXRpYwotKwotKyMgV2hpY2ggcmVsZWFzZSBvZiBsaWJ0b29sLm00IHdhcyB1c2VkPwotK21h Y3JvX3ZlcnNpb249JG1hY3JvX3ZlcnNpb24KLSttYWNyb19yZXZpc2lvbj0kbWFjcm9fcmV2aXNp b24KLSsKLSsjIFdoYXQgdHlwZSBvZiBvYmplY3RzIHRvIGJ1aWxkLgotK3BpY19tb2RlPSRwaWNf bW9kZQotKwotKyMgV2hldGhlciBvciBub3QgdG8gb3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0 aW9uLgotK2Zhc3RfaW5zdGFsbD0kZW5hYmxlX2Zhc3RfaW5zdGFsbAotKwotKyMgVGhlIGhvc3Qg c3lzdGVtLgotK2hvc3RfYWxpYXM9JGhvc3RfYWxpYXMKLStob3N0PSRob3N0Ci0raG9zdF9vcz0k aG9zdF9vcwotKwotKyMgVGhlIGJ1aWxkIHN5c3RlbS4KLStidWlsZF9hbGlhcz0kYnVpbGRfYWxp YXMKLStidWlsZD0kYnVpbGQKLStidWlsZF9vcz0kYnVpbGRfb3MKLSsKLSsjIEEgc2VkIHByb2dy YW0gdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQuCi0rU0VEPSRsdF9TRUQKLSsKLSsjIFNl ZCB0aGF0IGhlbHBzIHVzIGF2b2lkIGFjY2lkZW50YWxseSB0cmlnZ2VyaW5nIGVjaG8oMSkgb3B0 aW9ucyBsaWtlIC1uLgotK1hzZWQ9IlwkU0VEIC1lIDFzL15YLy8iCi0rCi0rIyBBIGdyZXAgcHJv Z3JhbSB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcy4KLStHUkVQPSRsdF9HUkVQCi0rCi0rIyBBbiBF UkUgbWF0Y2hlci4KLStFR1JFUD0kbHRfRUdSRVAKLSsKLSsjIEEgbGl0ZXJhbCBzdHJpbmcgbWF0 Y2hlci4KLStGR1JFUD0kbHRfRkdSRVAKLSsKLSsjIEEgQlNELSBvciBNUy1jb21wYXRpYmxlIG5h bWUgbGlzdGVyLgotK05NPSRsdF9OTQotKwotKyMgV2hldGhlciB3ZSBuZWVkIHNvZnQgb3IgaGFy ZCBsaW5rcy4KLStMTl9TPSRsdF9MTl9TCi0rCi0rIyBXaGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0 aCBvZiBhIGNvbW1hbmQ/Ci0rbWF4X2NtZF9sZW49JG1heF9jbWRfbGVuCi0rCi0rIyBPYmplY3Qg ZmlsZSBzdWZmaXggKG5vcm1hbGx5ICJvIikuCi0rb2JqZXh0PSRhY19vYmpleHQKLSsKLSsjIEV4 ZWN1dGFibGUgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKS4KLStleGVleHQ9JGV4ZWV4dAotKwot KyMgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgInVuc2V0Ii4KLStsdF91bnNldD0kbHRf dW5zZXQKLSsKLSsjIHR1cm4gc3BhY2VzIGludG8gbmV3bGluZXMuCi0rU1AyTkw9JGx0X2x0X1NQ Mk5MCi0rCi0rIyB0dXJuIG5ld2xpbmVzIGludG8gc3BhY2VzLgotK05MMlNQPSRsdF9sdF9OTDJT UAotKwotKyMgSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KLStyZWxvYWRf ZmxhZz0kbHRfcmVsb2FkX2ZsYWcKLStyZWxvYWRfY21kcz0kbHRfcmVsb2FkX2NtZHMKLSsKLSsj IEFuIG9iamVjdCBzeW1ib2wgZHVtcGVyLgotK09CSkRVTVA9JGx0X09CSkRVTVAKLSsKLSsjIE1l dGhvZCB0byBjaGVjayB3aGV0aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmpl Y3RzLgotK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9kZXBsaWJzX2NoZWNrX21ldGhvZAotKwot KyMgQ29tbWFuZCB0byB1c2Ugd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9PSAiZmlsZV9tYWdp YyIuCi0rZmlsZV9tYWdpY19jbWQ9JGx0X2ZpbGVfbWFnaWNfY21kCi0rCi0rIyBUaGUgYXJjaGl2 ZXIuCi0rQVI9JGx0X0FSCi0rQVJfRkxBR1M9JGx0X0FSX0ZMQUdTCi0rCi0rIyBBIHN5bWJvbCBz dHJpcHBpbmcgcHJvZ3JhbS4KLStTVFJJUD0kbHRfU1RSSVAKLSsKLSsjIENvbW1hbmRzIHVzZWQg dG8gaW5zdGFsbCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4KLStSQU5MSUI9JGx0X1JBTkxJQgotK29s ZF9wb3N0aW5zdGFsbF9jbWRzPSRsdF9vbGRfcG9zdGluc3RhbGxfY21kcwotK29sZF9wb3N0dW5p bnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0dW5pbnN0YWxsX2NtZHMKLSsKLSsjIEEgQyBjb21waWxl ci4KLStMVENDPSRsdF9DQwotKwotKyMgTFRDQyBjb21waWxlciBmbGFncy4KLStMVENGTEFHUz0k bHRfQ0ZMQUdTCi0rCi0rIyBUYWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5kIHByb2R1Y2UgYSBsaXN0 aW5nIG9mIHJhdyBzeW1ib2xzIGFuZCBDIG5hbWVzLgotK2dsb2JhbF9zeW1ib2xfcGlwZT0kbHRf bHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZQotKwotKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQg b2Ygbm0gaW4gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbi4KLStnbG9iYWxfc3ltYm9sX3RvX2NkZWNs PSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbAotKwotKyMgVHJhbnNmb3JtIHRo ZSBvdXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBwYWlyLgotK2dsb2JhbF9zeW1ib2xf dG9fY19uYW1lX2FkZHJlc3M9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9h ZGRyZXNzCi0rCi0rIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRy ZXNzIHBhaXIgd2hlbiBsaWIgcHJlZml4IGlzIG5lZWRlZC4KLStnbG9iYWxfc3ltYm9sX3RvX2Nf bmFtZV9hZGRyZXNzX2xpYl9wcmVmaXg9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2Nf bmFtZV9hZGRyZXNzX2xpYl9wcmVmaXgKLSsKLSsjIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3Rvcnkg dGhhdCBjb250YWlucyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxlcy4KLStvYmpkaXI9JG9iamRpcgot KwotKyMgU2hlbGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0cy4KLStTSEVMTD0k bHRfU0hFTEwKLSsKLSsjIEFuIGVjaG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90IGludGVycHJldCBi YWNrc2xhc2hlcy4KLStFQ0hPPSRsdF9FQ0hPCi0rCi0rIyBVc2VkIHRvIGV4YW1pbmUgbGlicmFy aWVzIHdoZW4gZmlsZV9tYWdpY19jbWQgYmVnaW5zIHdpdGggImZpbGUiLgotK01BR0lDX0NNRD0k TUFHSUNfQ01ECi0rCi0rIyBNdXN0IHdlIGxvY2sgZmlsZXMgd2hlbiBkb2luZyBjb21waWxhdGlv bj8KLStuZWVkX2xvY2tzPSRsdF9uZWVkX2xvY2tzCi0rCi0rIyBUb29sIHRvIG1hbmlwdWxhdGUg YXJjaGl2ZWQgRFdBUkYgZGVidWcgc3ltYm9sIGZpbGVzIG9uIE1hYyBPUyBYLgotK0RTWU1VVElM PSRsdF9EU1lNVVRJTAotKwotKyMgVG9vbCB0byBjaGFuZ2UgZ2xvYmFsIHRvIGxvY2FsIHN5bWJv bHMgb24gTWFjIE9TIFguCi0rTk1FRElUPSRsdF9OTUVESVQKLSsKLSsjIFRvb2wgdG8gbWFuaXB1 bGF0ZSBmYXQgb2JqZWN0cyBhbmQgYXJjaGl2ZXMgb24gTWFjIE9TIFguCi0rTElQTz0kbHRfTElQ TwotKwotKyMgbGRkL3JlYWRlbGYgbGlrZSB0b29sIGZvciBNYWNoLU8gYmluYXJpZXMgb24gTWFj IE9TIFguCi0rT1RPT0w9JGx0X09UT09MCi0rCi0rIyBsZGQvcmVhZGVsZiBsaWtlIHRvb2wgZm9y IDY0IGJpdCBNYWNoLU8gYmluYXJpZXMgb24gTWFjIE9TIFggMTAuNC4KLStPVE9PTDY0PSRsdF9P VE9PTDY0Ci0rCi0rIyBPbGQgYXJjaGl2ZSBzdWZmaXggKG5vcm1hbGx5ICJhIikuCi0rbGliZXh0 PSRsaWJleHQKLSsKLSsjIFNoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgIi5zbyIpLgot K3NocmV4dF9jbWRzPSRsdF9zaHJleHRfY21kcwotKwotKyMgVGhlIGNvbW1hbmRzIHRvIGV4dHJh Y3QgdGhlIGV4cG9ydGVkIHN5bWJvbCBsaXN0IGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KLStleHRy YWN0X2V4cHN5bXNfY21kcz0kbHRfZXh0cmFjdF9leHBzeW1zX2NtZHMKLSsKLSsjIFZhcmlhYmxl cyB3aG9zZSB2YWx1ZXMgc2hvdWxkIGJlIHNhdmVkIGluIGxpYnRvb2wgd3JhcHBlciBzY3JpcHRz IGFuZAotKyMgcmVzdG9yZWQgYXQgbGluayB0aW1lLgotK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVs aW5rPSRsdF92YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluawotKwotKyMgRG8gd2UgbmVlZCB0aGUg ImxpYiIgcHJlZml4IGZvciBtb2R1bGVzPwotK25lZWRfbGliX3ByZWZpeD0kbmVlZF9saWJfcHJl Zml4Ci0rCi0rIyBEbyB3ZSBuZWVkIGEgdmVyc2lvbiBmb3IgbGlicmFyaWVzPwotK25lZWRfdmVy c2lvbj0kbmVlZF92ZXJzaW9uCi0rCi0rIyBMaWJyYXJ5IHZlcnNpb25pbmcgdHlwZS4KLSt2ZXJz aW9uX3R5cGU9JHZlcnNpb25fdHlwZQotKwotKyMgU2hhcmVkIGxpYnJhcnkgcnVudGltZSBwYXRo IHZhcmlhYmxlLgotK3J1bnBhdGhfdmFyPSRydW5wYXRoX3ZhcgotKwotKyMgU2hhcmVkIGxpYnJh cnkgcGF0aCB2YXJpYWJsZS4KLStzaGxpYnBhdGhfdmFyPSRzaGxpYnBhdGhfdmFyCi0rCi0rIyBJ cyBzaGxpYnBhdGggc2VhcmNoZWQgYmVmb3JlIHRoZSBoYXJkLWNvZGVkIGxpYnJhcnkgc2VhcmNo IHBhdGg/Ci0rc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSRzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGgKLSsKLSsjIEZvcm1hdCBvZiBsaWJyYXJ5IG5hbWUgcHJlZml4LgotK2xpYm5hbWVf c3BlYz0kbHRfbGlibmFtZV9zcGVjCi0rCi0rIyBMaXN0IG9mIGFyY2hpdmUgbmFtZXMuICBGaXJz dCBuYW1lIGlzIHRoZSByZWFsIG9uZSwgdGhlIHJlc3QgYXJlIGxpbmtzLgotKyMgVGhlIGxhc3Qg bmFtZSBpcyB0aGUgb25lIHRoYXQgdGhlIGxpbmtlciBmaW5kcyB3aXRoIC1sTkFNRQotK2xpYnJh cnlfbmFtZXNfc3BlYz0kbHRfbGlicmFyeV9uYW1lc19zcGVjCi0rCi0rIyBUaGUgY29kZWQgbmFt ZSBvZiB0aGUgbGlicmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFtZS4KLStzb25h bWVfc3BlYz0kbHRfc29uYW1lX3NwZWMKLSsKLSsjIENvbW1hbmQgdG8gdXNlIGFmdGVyIGluc3Rh bGxhdGlvbiBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK3Bvc3RpbnN0YWxsX2NtZHM9JGx0X3Bvc3Rp bnN0YWxsX2NtZHMKLSsKLSsjIENvbW1hbmQgdG8gdXNlIGFmdGVyIHVuaW5zdGFsbGF0aW9uIG9m IGEgc2hhcmVkIGFyY2hpdmUuCi0rcG9zdHVuaW5zdGFsbF9jbWRzPSRsdF9wb3N0dW5pbnN0YWxs X2NtZHMKLSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gZmluaXNoIGEgbGlidG9vbCBsaWJyYXJ5IGlu c3RhbGxhdGlvbiBpbiBhIGRpcmVjdG9yeS4KLStmaW5pc2hfY21kcz0kbHRfZmluaXNoX2NtZHMK LSsKLSsjIEFzICJmaW5pc2hfY21kcyIsIGV4Y2VwdCBhIHNpbmdsZSBzY3JpcHQgZnJhZ21lbnQg dG8gYmUgZXZhbGVkIGJ1dAotKyMgbm90IHNob3duLgotK2ZpbmlzaF9ldmFsPSRsdF9maW5pc2hf ZXZhbAotKwotKyMgV2hldGhlciB3ZSBzaG91bGQgaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRv IGxpYnJhcmllcy4KLStoYXJkY29kZV9pbnRvX2xpYnM9JGhhcmRjb2RlX2ludG9fbGlicwotKwot KyMgQ29tcGlsZS10aW1lIHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzLgotK3N5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rCi0rIyBS dW4tdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcy4KLStzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMKLSsKLSsjIFdoZXRo ZXIgZGxvcGVuIGlzIHN1cHBvcnRlZC4KLStkbG9wZW5fc3VwcG9ydD0kZW5hYmxlX2Rsb3Blbgot KwotKyMgV2hldGhlciBkbG9wZW4gb2YgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgotK2Rsb3Blbl9z ZWxmPSRlbmFibGVfZGxvcGVuX3NlbGYKLSsKLSsjIFdoZXRoZXIgZGxvcGVuIG9mIHN0YXRpY2Fs bHkgbGlua2VkIHByb2dyYW1zIGlzIHN1cHBvcnRlZC4KLStkbG9wZW5fc2VsZl9zdGF0aWM9JGVu YWJsZV9kbG9wZW5fc2VsZl9zdGF0aWMKLSsKLSsjIENvbW1hbmRzIHRvIHN0cmlwIGxpYnJhcmll cy4KLStvbGRfc3RyaXBsaWI9JGx0X29sZF9zdHJpcGxpYgotK3N0cmlwbGliPSRsdF9zdHJpcGxp YgotKwotKwotKyMgVGhlIGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllcy4KLStMRD0kbHRf TEQKLSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW4gb2xkLXN0eWxlIGFyY2hpdmUuCi0r b2xkX2FyY2hpdmVfY21kcz0kbHRfb2xkX2FyY2hpdmVfY21kcwotKwotKyMgQSBsYW5ndWFnZSBz cGVjaWZpYyBjb21waWxlci4KLStDQz0kbHRfY29tcGlsZXIKLSsKLSsjIElzIHRoZSBjb21waWxl ciB0aGUgR05VIGNvbXBpbGVyPwotK3dpdGhfZ2NjPSRHQ0MKLSsKLSsjIENvbXBpbGVyIGZsYWcg dG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCi0rbm9fYnVpbHRpbl9mbGFnPSRsdF9sdF9w cm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZwotKwotKyMgSG93IHRvIHBhc3MgYSBsaW5rZXIg ZmxhZyB0aHJvdWdoIHRoZSBjb21waWxlci4KLSt3bD0kbHRfbHRfcHJvZ19jb21waWxlcl93bAot KwotKyMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmpl Y3RzLgotK3BpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3BpYwotKwotKyMgQ29tcGlsZXIg ZmxhZyB0byBwcmV2ZW50IGR5bmFtaWMgbGlua2luZy4KLStsaW5rX3N0YXRpY19mbGFnPSRsdF9s dF9wcm9nX2NvbXBpbGVyX3N0YXRpYwotKwotKyMgRG9lcyBjb21waWxlciBzaW11bHRhbmVvdXNs eSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zPwotK2NvbXBpbGVyX2Nfbz0kbHRfbHRfY3ZfcHJv Z19jb21waWxlcl9jX28KLSsKLSsjIFdoZXRoZXIgb3Igbm90IHRvIGFkZCAtbGMgZm9yIGJ1aWxk aW5nIHNoYXJlZCBsaWJyYXJpZXMuCi0rYnVpbGRfbGlidG9vbF9uZWVkX2xjPSRhcmNoaXZlX2Nt ZHNfbmVlZF9sYwotKwotKyMgV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hhcmVkIGxpYnMg d2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpYy4KLSthbGxvd19saWJ0b29sX2xpYnNfd2l0aF9z dGF0aWNfcnVudGltZXM9JGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMKLSsKLSsj IENvbXBpbGVyIGZsYWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRsb3BlbnMuCi0rZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjPSRsdF9leHBvcnRfZHluYW1pY19mbGFnX3NwZWMKLSsKLSsjIENvbXBpbGVy IGZsYWcgdG8gZ2VuZXJhdGUgc2hhcmVkIG9iamVjdHMgZGlyZWN0bHkgZnJvbSBhcmNoaXZlcy4K LSt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0kbHRfd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMKLSsK LSsjIFdoZXRoZXIgdGhlIGNvbXBpbGVyIGNvcGVzIHdpdGggcGFzc2luZyBubyBvYmplY3RzIGRp cmVjdGx5LgotK2NvbXBpbGVyX25lZWRzX29iamVjdD0kbHRfY29tcGlsZXJfbmVlZHNfb2JqZWN0 Ci0rCi0rIyBDcmVhdGUgYW4gb2xkLXN0eWxlIGFyY2hpdmUgZnJvbSBhIHNoYXJlZCBhcmNoaXZl LgotK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zyb21fbmV3X2Nt ZHMKLSsKLSsjIENyZWF0ZSBhIHRlbXBvcmFyeSBvbGQtc3R5bGUgYXJjaGl2ZSB0byBsaW5rIGlu c3RlYWQgb2YgYSBzaGFyZWQgYXJjaGl2ZS4KLStvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21k cz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMKLSsKLSsjIENvbW1hbmRzIHVzZWQg dG8gYnVpbGQgYSBzaGFyZWQgYXJjaGl2ZS4KLSthcmNoaXZlX2NtZHM9JGx0X2FyY2hpdmVfY21k cwotK2FyY2hpdmVfZXhwc3ltX2NtZHM9JGx0X2FyY2hpdmVfZXhwc3ltX2NtZHMKLSsKLSsjIENv bW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBsb2FkYWJsZSBtb2R1bGUgaWYgZGlmZmVyZW50IGZyb20g YnVpbGRpbmcKLSsjIGEgc2hhcmVkIGFyY2hpdmUuCi0rbW9kdWxlX2NtZHM9JGx0X21vZHVsZV9j bWRzCi0rbW9kdWxlX2V4cHN5bV9jbWRzPSRsdF9tb2R1bGVfZXhwc3ltX2NtZHMKLSsKLSsjIFdo ZXRoZXIgd2UgYXJlIGJ1aWxkaW5nIHdpdGggR05VIGxkIG9yIG5vdC4KLSt3aXRoX2dudV9sZD0k bHRfd2l0aF9nbnVfbGQKLSsKLSsjIEZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3 aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0LgotK2FsbG93X3VuZGVmaW5lZF9mbGFn PSRsdF9hbGxvd191bmRlZmluZWRfZmxhZwotKwotKyMgRmxhZyB0aGF0IGVuZm9yY2VzIG5vIHVu ZGVmaW5lZCBzeW1ib2xzLgotK25vX3VuZGVmaW5lZF9mbGFnPSRsdF9ub191bmRlZmluZWRfZmxh ZwotKwotKyMgRmxhZyB0byBoYXJkY29kZSBcJGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1cmluZyBs aW5raW5nLgotKyMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5vdCBleGlz dAotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMKLSsKLSsjIElmIGxkIGlzIHVzZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlIFwk bGliZGlyIGludG8gYSBiaW5hcnkKLSsjIGR1cmluZyBsaW5raW5nLiAgVGhpcyBtdXN0IHdvcmsg ZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5vdCBleGlzdC4KLStoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX2xkPSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkCi0rCi0rIyBXaGV0aGVyIHdl IG5lZWQgYSBzaW5nbGUgIi1ycGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50Lgot K2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9JGx0X2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IK LSsKLSsjIFNldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRVwke3NoYXJlZF9leHR9IGR1 cmluZyBsaW5raW5nIGhhcmRjb2RlcwotKyMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnku Ci0raGFyZGNvZGVfZGlyZWN0PSRoYXJkY29kZV9kaXJlY3QKLSsKLSsjIFNldCB0byAieWVzIiBp ZiB1c2luZyBESVIvbGliTkFNRVwke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2Rl cwotKyMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkgYW5kIHRoZSByZXN1bHRpbmcgbGli cmFyeSBkZXBlbmRlbmN5IGlzCi0rIyAiYWJzb2x1dGUiLGkuZSBpbXBvc3NpYmxlIHRvIGNoYW5n ZSBieSBzZXR0aW5nIFwke3NobGlicGF0aF92YXJ9IGlmIHRoZQotKyMgbGlicmFyeSBpcyByZWxv Y2F0ZWQuCi0raGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPSRoYXJkY29kZV9kaXJlY3RfYWJzb2x1 dGUKLSsKLSsjIFNldCB0byAieWVzIiBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcgbGlu a2luZyBoYXJkY29kZXMgRElSCi0rIyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRj b2RlX21pbnVzX0w9JGhhcmRjb2RlX21pbnVzX0wKLSsKLSsjIFNldCB0byAieWVzIiBpZiB1c2lu ZyBTSExJQlBBVEhfVkFSPURJUiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCi0rIyBpbnRv IHRoZSByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRjb2RlX3NobGlicGF0aF92YXI9JGhhcmRjb2Rl X3NobGlicGF0aF92YXIKLSsKLSsjIFNldCB0byAieWVzIiBpZiBidWlsZGluZyBhIHNoYXJlZCBs aWJyYXJ5IGF1dG9tYXRpY2FsbHkgaGFyZGNvZGVzIERJUgotKyMgaW50byB0aGUgbGlicmFyeSBh bmQgYWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQKLSsjIGFn YWluc3QgaXQuCi0raGFyZGNvZGVfYXV0b21hdGljPSRoYXJkY29kZV9hdXRvbWF0aWMKLSsKLSsj IFNldCB0byB5ZXMgaWYgbGlua2VyIGFkZHMgcnVudGltZSBwYXRocyBvZiBkZXBlbmRlbnQgbGli cmFyaWVzCi0rIyB0byBydW50aW1lIHBhdGggbGlzdC4KLStpbmhlcml0X3JwYXRoPSRpbmhlcml0 X3JwYXRoCi0rCi0rIyBXaGV0aGVyIGxpYnRvb2wgbXVzdCBsaW5rIGEgcHJvZ3JhbSBhZ2FpbnN0 IGFsbCBpdHMgZGVwZW5kZW5jeSBsaWJyYXJpZXMuCi0rbGlua19hbGxfZGVwbGlicz0kbGlua19h bGxfZGVwbGlicwotKwotKyMgRml4IHRoZSBzaGVsbCB2YXJpYWJsZSBcJHNyY2ZpbGUgZm9yIHRo ZSBjb21waWxlci4KLStmaXhfc3JjZmlsZV9wYXRoPSRsdF9maXhfc3JjZmlsZV9wYXRoCi0rCi0r IyBTZXQgdG8gInllcyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCi0rYWx3YXlz X2V4cG9ydF9zeW1ib2xzPSRhbHdheXNfZXhwb3J0X3N5bWJvbHMKLSsKLSsjIFRoZSBjb21tYW5k cyB0byBsaXN0IGV4cG9ydGVkIHN5bWJvbHMuCi0rZXhwb3J0X3N5bWJvbHNfY21kcz0kbHRfZXhw b3J0X3N5bWJvbHNfY21kcwotKwotKyMgU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVk IGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KLStleGNsdWRlX2V4cHN5bXM9JGx0X2V4Y2x1ZGVf ZXhwc3ltcwotKwotKyMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgotK2lu Y2x1ZGVfZXhwc3ltcz0kbHRfaW5jbHVkZV9leHBzeW1zCi0rCi0rIyBDb21tYW5kcyBuZWNlc3Nh cnkgZm9yIGxpbmtpbmcgcHJvZ3JhbXMgKGFnYWluc3QgbGlicmFyaWVzKSB3aXRoIHRlbXBsYXRl cy4KLStwcmVsaW5rX2NtZHM9JGx0X3ByZWxpbmtfY21kcwotKwotKyMgU3BlY2lmeSBmaWxlbmFt ZSBjb250YWluaW5nIGlucHV0IGZpbGVzLgotK2ZpbGVfbGlzdF9zcGVjPSRsdF9maWxlX2xpc3Rf c3BlYwotKwotKyMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFu IGV4ZWN1dGFibGUuCi0raGFyZGNvZGVfYWN0aW9uPSRoYXJkY29kZV9hY3Rpb24KLSsKLSsjIFRo ZSBkaXJlY3RvcmllcyBzZWFyY2hlZCBieSB0aGlzIGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBz aGFyZWQgbGlicmFyeS4KLStjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9JGx0X2NvbXBpbGVyX2xp Yl9zZWFyY2hfZGlycwotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0 ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvCi0rIyBjcmVhdGUgYSBzaGFyZWQgbGlicmFy eS4KLStwcmVkZXBfb2JqZWN0cz0kbHRfcHJlZGVwX29iamVjdHMKLStwb3N0ZGVwX29iamVjdHM9 JGx0X3Bvc3RkZXBfb2JqZWN0cwotK3ByZWRlcHM9JGx0X3ByZWRlcHMKLStwb3N0ZGVwcz0kbHRf cG9zdGRlcHMKLSsKLSsjIFRoZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBi eSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCi0rIyBhIHNoYXJlZCBsaWJyYXJ5LgotK2NvbXBp bGVyX2xpYl9zZWFyY2hfcGF0aD0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoCi0rCi0rIyAj IyMgRU5EIExJQlRPT0wgQ09ORklHCi0rCi0rX0xUX0VPRgotKwotKyAgY2FzZSAkaG9zdF9vcyBp bgotKyAgYWl4MyopCi0rICAgIGNhdCA8PFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsjIEFJWCBz b21ldGltZXMgaGFzIHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFtLiAgRm9y IHNvbWUKLSsjIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50 IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMKLSsjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCi0r aWYgdGVzdCAiWCR7Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVuCi0rICBDT0xMRUNU X05BTUVTPQotKyAgZXhwb3J0IENPTExFQ1RfTkFNRVMKLStmaQotK19MVF9FT0YKLSsgICAgOzsK LSsgIGVzYWMKLSsKLSsKLStsdG1haW49IiRhY19hdXhfZGlyL2x0bWFpbi5zaCIKLSsKLSsKLSsg ICMgV2UgdXNlIHNlZCBpbnN0ZWFkIG9mIGNhdCBiZWNhdXNlIGJhc2ggb24gREpHUFAgZ2V0cyBj b25mdXNlZCBpZgotKyAgIyBpZiBmaW5kcyBtaXhlZCBDUi9MRiBhbmQgTEYtb25seSBsaW5lcy4g IFNpbmNlIHNlZCBvcGVyYXRlcyBpbgotKyAgIyB0ZXh0IG1vZGUsIGl0IHByb3Blcmx5IGNvbnZl cnRzIGxpbmVzIHRvIENSL0xGLiAgVGhpcyBiYXNoIHByb2JsZW0KLSsgICMgaXMgcmVwb3J0ZWRs eSBmaXhlZCwgYnV0IHdoeSBub3QgcnVuIG9uIG9sZCB2ZXJzaW9ucyB0b28/Ci0rICBzZWQgJy9e IyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUvcScgIiRsdG1haW4iID4+ ICIkY2ZnZmlsZSIgXAotKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQotKwotKyAg Y2FzZSAkeHNpX3NoZWxsIGluCi0rICB5ZXMpCi0rICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNm Z2ZpbGUiCi0rCi0rIyBmdW5jX2Rpcm5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50 Ci0rIyBDb21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwgYWRkIEFQUEVO RCB0byB0aGUgcmVzdWx0LAotKyMgb3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9ORElSX1JFUExB Q0VNRU5ULgotK2Z1bmNfZGlybmFtZSAoKQotK3sKLSsgIGNhc2UgJHsxfSBpbgotKyAgICAqLyop IGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9IiA7OwotKyAgICAqICApIGZ1bmNfZGly bmFtZV9yZXN1bHQ9IiR7M30iIDs7Ci0rICBlc2FjCi0rfQotKwotKyMgZnVuY19iYXNlbmFtZSBm aWxlCi0rZnVuY19iYXNlbmFtZSAoKQotK3sKLSsgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEj IyovfSIKLSt9Ci0rCi0rIyBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lIGZpbGUgYXBwZW5kIG5v bmRpcl9yZXBsYWNlbWVudAotKyMgcGVyZm9ybSBmdW5jX2Jhc2VuYW1lIGFuZCBmdW5jX2Rpcm5h bWUgaW4gYSBzaW5nbGUgZnVuY3Rpb24KLSsjIGNhbGw6Ci0rIyAgIGRpcm5hbWU6ICBDb21wdXRl IHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwKLSsjICAgICAgICAgICAgIGFkZCBB UFBFTkQgdG8gdGhlIHJlc3VsdCwgb3RoZXJ3aXNlIHNldCByZXN1bHQKLSsjICAgICAgICAgICAg IHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KLSsjICAgICAgICAgICAgIHZhbHVlIHJldHVybmVkIGlu ICIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSsjICAgYmFzZW5hbWU6IENvbXB1dGUgZmlsZW5hbWUg b2YgRklMRS4KLSsjICAgICAgICAgICAgIHZhbHVlIHJldHVuZWQgaW4gIiRmdW5jX2Jhc2VuYW1l X3Jlc3VsdCIKLSsjIEltcGxlbWVudGF0aW9uIG11c3QgYmUga2VwdCBzeW5jaHJvbml6ZWQgd2l0 aCBmdW5jX2Rpcm5hbWUKLSsjIGFuZCBmdW5jX2Jhc2VuYW1lLiBGb3IgZWZmaWNpZW5jeSwgd2Ug ZG8gbm90IGRlbGVnYXRlIHRvCi0rIyB0aG9zZSBmdW5jdGlvbnMgYnV0IGluc3RlYWQgZHVwbGlj YXRlIHRoZSBmdW5jdGlvbmFsaXR5IGhlcmUuCi0rZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAo KQotK3sKLSsgIGNhc2UgJHsxfSBpbgotKyAgICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7 MSUvKn0kezJ9IiA7OwotKyAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iIDs7Ci0r ICBlc2FjCi0rICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD0iJHsxIyMqL30iCi0rfQotKwotKyMgZnVu Y19zdHJpcG5hbWUgcHJlZml4IHN1ZmZpeCBuYW1lCi0rIyBzdHJpcCBQUkVGSVggYW5kIFNVRkZJ WCBvZmYgb2YgTkFNRS4KLSsjIFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNvbnRhaW4gZ2xv YmJpbmcgb3IgcmVnZXggc3BlY2lhbAotKyMgY2hhcmFjdGVycywgaGFzaGVzLCBwZXJjZW50IHNp Z25zLCBidXQgU1VGRklYIG1heSBjb250YWluIGEgbGVhZGluZwotKyMgZG90IChpbiB3aGljaCBj YXNlIHRoYXQgbWF0Y2hlcyBvbmx5IGEgZG90KS4KLStmdW5jX3N0cmlwbmFtZSAoKQotK3sKLSsg ICMgcGRrc2ggNS4yLjE0IGRvZXMgbm90IGRvICR7WCUkWX0gY29ycmVjdGx5IGlmIGJvdGggWCBh bmQgWSBhcmUKLSsgICMgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLCBzbyBhc3NpZ24gb25lIHRvIG9y ZGluYXJ5IHBhcmFtZXRlciBmaXJzdC4KLSsgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0kezN9Ci0r ICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQjIiR7MX0ifQot KyAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0JSIkezJ9In0K LSt9Ci0rCi0rIyBmdW5jX29wdF9zcGxpdAotK2Z1bmNfb3B0X3NwbGl0ICgpCi0rewotKyAgZnVu Y19vcHRfc3BsaXRfb3B0PSR7MSUlPSp9Ci0rICBmdW5jX29wdF9zcGxpdF9hcmc9JHsxIyo9fQot K30KLSsKLSsjIGZ1bmNfbG8ybyBvYmplY3QKLStmdW5jX2xvMm8gKCkKLSt7Ci0rICBjYXNlICR7 MX0gaW4KLSsgICAgKi5sbykgZnVuY19sbzJvX3Jlc3VsdD0kezElLmxvfS4ke29iamV4dH0gOzsK LSsgICAgKikgICAgZnVuY19sbzJvX3Jlc3VsdD0kezF9IDs7Ci0rICBlc2FjCi0rfQotKwotKyMg ZnVuY194Zm9ybSBsaWJvYmotb3Itc291cmNlCi0rZnVuY194Zm9ybSAoKQotK3sKLSsgIGZ1bmNf eGZvcm1fcmVzdWx0PSR7MSUuKn0ubG8KLSt9Ci0rCi0rIyBmdW5jX2FyaXRoIGFyaXRobWV0aWMt dGVybS4uLgotK2Z1bmNfYXJpdGggKCkKLSt7Ci0rICBmdW5jX2FyaXRoX3Jlc3VsdD0kKCggJCog KSkKLSt9Ci0rCi0rIyBmdW5jX2xlbiBzdHJpbmcKLSsjIFNUUklORyBtYXkgbm90IHN0YXJ0IHdp dGggYSBoeXBoZW4uCi0rZnVuY19sZW4gKCkKLSt7Ci0rICBmdW5jX2xlbl9yZXN1bHQ9JHsjMX0K LSt9Ci0rCi0rX0xUX0VPRgotKyAgICA7OwotKyAgKikgIyBCb3VybmUgY29tcGF0aWJsZSBmdW5j dGlvbnMuCi0rICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCi0rCi0rIyBmdW5jX2Rp cm5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50Ci0rIyBDb21wdXRlIHRoZSBkaXJu YW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LAotKyMg b3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgotK2Z1bmNfZGlybmFt ZSAoKQotK3sKLSsgICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCi0r ICBmdW5jX2Rpcm5hbWVfcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRkaXJuYW1l ImAKLSsgIGlmIHRlc3QgIlgkZnVuY19kaXJuYW1lX3Jlc3VsdCIgPSAiWCR7MX0iOyB0aGVuCi0r ICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iCi0rICBlbHNlCi0rICAgIGZ1bmNfZGlybmFt ZV9yZXN1bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0JHsyfSIKLSsgIGZpCi0rfQotKwotKyMgZnVu Y19iYXNlbmFtZSBmaWxlCi0rZnVuY19iYXNlbmFtZSAoKQotK3sKLSsgIGZ1bmNfYmFzZW5hbWVf cmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCi0rfQotKwotKwot KyMgZnVuY19zdHJpcG5hbWUgcHJlZml4IHN1ZmZpeCBuYW1lCi0rIyBzdHJpcCBQUkVGSVggYW5k IFNVRkZJWCBvZmYgb2YgTkFNRS4KLSsjIFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNvbnRh aW4gZ2xvYmJpbmcgb3IgcmVnZXggc3BlY2lhbAotKyMgY2hhcmFjdGVycywgaGFzaGVzLCBwZXJj ZW50IHNpZ25zLCBidXQgU1VGRklYIG1heSBjb250YWluIGEgbGVhZGluZwotKyMgZG90IChpbiB3 aGljaCBjYXNlIHRoYXQgbWF0Y2hlcyBvbmx5IGEgZG90KS4KLSsjIGZ1bmNfc3RyaXBfc3VmZml4 IHByZWZpeCBuYW1lCi0rZnVuY19zdHJpcG5hbWUgKCkKLSt7Ci0rICBjYXNlICR7Mn0gaW4KLSsg ICAgLiopIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezN9IiBcCi0rICAgICAgICAg ICB8ICRYc2VkIC1lICJzJV4kezF9JSUiIC1lICJzJVxcXFwkezJ9XCQlJSJgOzsKLSsgICAgKikg IGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezN9IiBcCi0rICAgICAgICAgICB8ICRY c2VkIC1lICJzJV4kezF9JSUiIC1lICJzJSR7Mn1cJCUlImA7OwotKyAgZXNhYwotK30KLSsKLSsj IHNlZCBzY3JpcHRzOgotK215X3NlZF9sb25nX29wdD0nMXMvXlwoLVtePV0qXCk9LiovXDEvO3En Ci0rbXlfc2VkX2xvbmdfYXJnPScxcy9eLVtePV0qPS8vJwotKwotKyMgZnVuY19vcHRfc3BsaXQK LStmdW5jX29wdF9zcGxpdCAoKQotK3sKLSsgIGZ1bmNfb3B0X3NwbGl0X29wdD1gJEVDSE8gIlgk ezF9IiB8ICRYc2VkIC1lICIkbXlfc2VkX2xvbmdfb3B0ImAKLSsgIGZ1bmNfb3B0X3NwbGl0X2Fy Zz1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbXlfc2VkX2xvbmdfYXJnImAKLSt9Ci0rCi0r IyBmdW5jX2xvMm8gb2JqZWN0Ci0rZnVuY19sbzJvICgpCi0rewotKyAgZnVuY19sbzJvX3Jlc3Vs dD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbG8ybyJgCi0rfQotKwotKyMgZnVuY194Zm9y bSBsaWJvYmotb3Itc291cmNlCi0rZnVuY194Zm9ybSAoKQotK3sKLSsgIGZ1bmNfeGZvcm1fcmVz dWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgJ3MvXC5bXi5dKiQvLmxvLydgCi0rfQotKwot KyMgZnVuY19hcml0aCBhcml0aG1ldGljLXRlcm0uLi4KLStmdW5jX2FyaXRoICgpCi0rewotKyAg ZnVuY19hcml0aF9yZXN1bHQ9YGV4cHIgIiRAImAKLSt9Ci0rCi0rIyBmdW5jX2xlbiBzdHJpbmcK LSsjIFNUUklORyBtYXkgbm90IHN0YXJ0IHdpdGggYSBoeXBoZW4uCi0rZnVuY19sZW4gKCkKLSt7 Ci0rICBmdW5jX2xlbl9yZXN1bHQ9YGV4cHIgIiQxIiA6ICIuKiIgMj4vZGV2L251bGwgfHwgZWNo byAkbWF4X2NtZF9sZW5gCi0rfQotKwotK19MVF9FT0YKLStlc2FjCi0rCi0rY2FzZSAkbHRfc2hl bGxfYXBwZW5kIGluCi0rICB5ZXMpCi0rICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUi Ci0rCi0rIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUKLSsjIEFwcGVuZCBWQUxVRSB0byB0aGUgZW5k IG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KLStmdW5jX2FwcGVuZCAoKQotK3sKLSsgIGV2YWwgIiQx Kz1cJDIiCi0rfQotK19MVF9FT0YKLSsgICAgOzsKLSsgICopCi0rICAgIGNhdCA8PCBcX0xUX0VP RiA+PiAiJGNmZ2ZpbGUiCi0rCi0rIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUKLSsjIEFwcGVuZCBW QUxVRSB0byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KLStmdW5jX2FwcGVuZCAoKQot K3sKLSsgIGV2YWwgIiQxPVwkJDFcJDIiCi0rfQotKwotK19MVF9FT0YKLSsgICAgOzsKLSsgIGVz YWMKLSsKLSsKLSsgIHNlZCAtbiAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5zZXJ0 ZWQgaGVyZS8sJHAnICIkbHRtYWluIiA+PiAiJGNmZ2ZpbGUiIFwKLSsgICAgfHwgKHJtIC1mICIk Y2ZnZmlsZSI7IGV4aXQgMSkKLSsKLSsgIG12IC1mICIkY2ZnZmlsZSIgIiRvZmlsZSIgfHwKLSsg ICAgKHJtIC1mICIkb2ZpbGUiICYmIGNwICIkY2ZnZmlsZSIgIiRvZmlsZSIgJiYgcm0gLWYgIiRj ZmdmaWxlIikKLSsgIGNobW9kICt4ICIkb2ZpbGUiCi0rCi0rCi0rICAgIGNhdCA8PF9MVF9FT0Yg Pj4gIiRvZmlsZSIKLSsKLSsjICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6IENYWAotKwot KyMgVGhlIGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllcy4KLStMRD0kbHRfTERfQ1hYCi0r Ci0rIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuIG9sZC1zdHlsZSBhcmNoaXZlLgotK29sZF9h cmNoaXZlX2NtZHM9JGx0X29sZF9hcmNoaXZlX2NtZHNfQ1hYCi0rCi0rIyBBIGxhbmd1YWdlIHNw ZWNpZmljIGNvbXBpbGVyLgotK0NDPSRsdF9jb21waWxlcl9DWFgKLSsKLSsjIElzIHRoZSBjb21w aWxlciB0aGUgR05VIGNvbXBpbGVyPwotK3dpdGhfZ2NjPSRHQ0NfQ1hYCi0rCi0rIyBDb21waWxl ciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zLgotK25vX2J1aWx0aW5fZmxhZz0k bHRfbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYCi0rCi0rIyBIb3cgdG8gcGFz cyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgotK3dsPSRsdF9sdF9wcm9nX2Nv bXBpbGVyX3dsX0NYWAotKwotKyMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRp bmcgbGlicmFyeSBvYmplY3RzLgotK3BpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3BpY19D WFgKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmcuCi0rbGlu a19zdGF0aWNfZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYCi0rCi0rIyBEb2Vz IGNvbXBpbGVyIHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/Ci0rY29t cGlsZXJfY19vPSRsdF9sdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgKLSsKLSsjIFdoZXRoZXIg b3Igbm90IHRvIGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMuCi0rYnVpbGRf bGlidG9vbF9uZWVkX2xjPSRhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFgKLSsKLSsjIFdoZXRoZXIg b3Igbm90IHRvIGRpc2FsbG93IHNoYXJlZCBsaWJzIHdoZW4gcnVudGltZSBsaWJzIGFyZSBzdGF0 aWMuCi0rYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzPSRlbmFibGVfc2hh cmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0NYWAotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxv dyByZWZsZXhpdmUgZGxvcGVucy4KLStleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JGx0X2V4cG9y dF9keW5hbWljX2ZsYWdfc3BlY19DWFgKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUg c2hhcmVkIG9iamVjdHMgZGlyZWN0bHkgZnJvbSBhcmNoaXZlcy4KLSt3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYz0kbHRfd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYCi0rCi0rIyBXaGV0aGVyIHRo ZSBjb21waWxlciBjb3BlcyB3aXRoIHBhc3Npbmcgbm8gb2JqZWN0cyBkaXJlY3RseS4KLStjb21w aWxlcl9uZWVkc19vYmplY3Q9JGx0X2NvbXBpbGVyX25lZWRzX29iamVjdF9DWFgKLSsKLSsjIENy ZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCi0rb2xkX2Fy Y2hpdmVfZnJvbV9uZXdfY21kcz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19DWFgKLSsK LSsjIENyZWF0ZSBhIHRlbXBvcmFyeSBvbGQtc3R5bGUgYXJjaGl2ZSB0byBsaW5rIGluc3RlYWQg b2YgYSBzaGFyZWQgYXJjaGl2ZS4KLStvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0kbHRf b2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfQ1hYCi0rCi0rIyBDb21tYW5kcyB1c2VkIHRv IGJ1aWxkIGEgc2hhcmVkIGFyY2hpdmUuCi0rYXJjaGl2ZV9jbWRzPSRsdF9hcmNoaXZlX2NtZHNf Q1hYCi0rYXJjaGl2ZV9leHBzeW1fY21kcz0kbHRfYXJjaGl2ZV9leHBzeW1fY21kc19DWFgKLSsK LSsjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBsb2FkYWJsZSBtb2R1bGUgaWYgZGlmZmVyZW50 IGZyb20gYnVpbGRpbmcKLSsjIGEgc2hhcmVkIGFyY2hpdmUuCi0rbW9kdWxlX2NtZHM9JGx0X21v ZHVsZV9jbWRzX0NYWAotK21vZHVsZV9leHBzeW1fY21kcz0kbHRfbW9kdWxlX2V4cHN5bV9jbWRz X0NYWAotKwotKyMgV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90Lgot K3dpdGhfZ251X2xkPSRsdF93aXRoX2dudV9sZF9DWFgKLSsKLSsjIEZsYWcgdGhhdCBhbGxvd3Mg c2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0LgotK2Fs bG93X3VuZGVmaW5lZF9mbGFnPSRsdF9hbGxvd191bmRlZmluZWRfZmxhZ19DWFgKLSsKLSsjIEZs YWcgdGhhdCBlbmZvcmNlcyBubyB1bmRlZmluZWQgc3ltYm9scy4KLStub191bmRlZmluZWRfZmxh Zz0kbHRfbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYCi0rCi0rIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGli ZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCi0rIyBUaGlzIG11c3Qgd29yayBldmVu IGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0Ci0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0k bHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFgKLSsKLSsjIElmIGxkIGlzIHVzZWQgd2hl biBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkKLSsjIGR1 cmluZyBsaW5raW5nLiAgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5vdCBl eGlzdC4KLStoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSRsdF9oYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX2xkX0NYWAotKwotKyMgV2hldGhlciB3ZSBuZWVkIGEgc2luZ2xlICItcnBhdGgi IGZsYWcgd2l0aCBhIHNlcGFyYXRlZCBhcmd1bWVudC4KLStoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yPSRsdF9oYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWAotKwotKyMgU2V0IHRvICJ5ZXMi IGlmIHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNv ZGVzCi0rIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KLStoYXJkY29kZV9kaXJlY3Q9 JGhhcmRjb2RlX2RpcmVjdF9DWFgKLSsKLSsjIFNldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGli TkFNRVwke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcwotKyMgRElSIGludG8g dGhlIHJlc3VsdGluZyBiaW5hcnkgYW5kIHRoZSByZXN1bHRpbmcgbGlicmFyeSBkZXBlbmRlbmN5 IGlzCi0rIyAiYWJzb2x1dGUiLGkuZSBpbXBvc3NpYmxlIHRvIGNoYW5nZSBieSBzZXR0aW5nIFwk e3NobGlicGF0aF92YXJ9IGlmIHRoZQotKyMgbGlicmFyeSBpcyByZWxvY2F0ZWQuCi0raGFyZGNv ZGVfZGlyZWN0X2Fic29sdXRlPSRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hYCi0rCi0rIyBT ZXQgdG8gInllcyIgaWYgdXNpbmcgdGhlIC1MRElSIGZsYWcgZHVyaW5nIGxpbmtpbmcgaGFyZGNv ZGVzIERJUgotKyMgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KLStoYXJkY29kZV9taW51c19M PSRoYXJkY29kZV9taW51c19MX0NYWAotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIFNITElC UEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKLSsjIGludG8gdGhlIHJl c3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0kaGFyZGNvZGVfc2hsaWJw YXRoX3Zhcl9DWFgKLSsKLSsjIFNldCB0byAieWVzIiBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJy YXJ5IGF1dG9tYXRpY2FsbHkgaGFyZGNvZGVzIERJUgotKyMgaW50byB0aGUgbGlicmFyeSBhbmQg YWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQKLSsjIGFnYWlu c3QgaXQuCi0raGFyZGNvZGVfYXV0b21hdGljPSRoYXJkY29kZV9hdXRvbWF0aWNfQ1hYCi0rCi0r IyBTZXQgdG8geWVzIGlmIGxpbmtlciBhZGRzIHJ1bnRpbWUgcGF0aHMgb2YgZGVwZW5kZW50IGxp YnJhcmllcwotKyMgdG8gcnVudGltZSBwYXRoIGxpc3QuCi0raW5oZXJpdF9ycGF0aD0kaW5oZXJp dF9ycGF0aF9DWFgKLSsKLSsjIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFn YWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KLStsaW5rX2FsbF9kZXBsaWJzPSRs aW5rX2FsbF9kZXBsaWJzX0NYWAotKwotKyMgRml4IHRoZSBzaGVsbCB2YXJpYWJsZSBcJHNyY2Zp bGUgZm9yIHRoZSBjb21waWxlci4KLStmaXhfc3JjZmlsZV9wYXRoPSRsdF9maXhfc3JjZmlsZV9w YXRoX0NYWAotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVp cmVkLgotK2Fsd2F5c19leHBvcnRfc3ltYm9scz0kYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0NYWAot KwotKyMgVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KLStleHBvcnRfc3lt Ym9sc19jbWRzPSRsdF9leHBvcnRfc3ltYm9sc19jbWRzX0NYWAotKwotKyMgU3ltYm9scyB0aGF0 IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KLStleGNsdWRl X2V4cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltc19DWFgKLSsKLSsjIFN5bWJvbHMgdGhhdCBtdXN0 IGFsd2F5cyBiZSBleHBvcnRlZC4KLStpbmNsdWRlX2V4cHN5bXM9JGx0X2luY2x1ZGVfZXhwc3lt c19DWFgKLSsKLSsjIENvbW1hbmRzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyBwcm9ncmFtcyAoYWdh aW5zdCBsaWJyYXJpZXMpIHdpdGggdGVtcGxhdGVzLgotK3ByZWxpbmtfY21kcz0kbHRfcHJlbGlu a19jbWRzX0NYWAotKwotKyMgU3BlY2lmeSBmaWxlbmFtZSBjb250YWluaW5nIGlucHV0IGZpbGVz LgotK2ZpbGVfbGlzdF9zcGVjPSRsdF9maWxlX2xpc3Rfc3BlY19DWFgKLSsKLSsjIEhvdyB0byBo YXJkY29kZSBhIHNoYXJlZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxlLgotK2hhcmRj b2RlX2FjdGlvbj0kaGFyZGNvZGVfYWN0aW9uX0NYWAotKwotKyMgVGhlIGRpcmVjdG9yaWVzIHNl YXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNoYXJlZCBsaWJyYXJ5Lgot K2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycz0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NY WAotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVj dHMgYmVpbmcgbGlua2VkIHRvCi0rIyBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeS4KLStwcmVkZXBf b2JqZWN0cz0kbHRfcHJlZGVwX29iamVjdHNfQ1hYCi0rcG9zdGRlcF9vYmplY3RzPSRsdF9wb3N0 ZGVwX29iamVjdHNfQ1hYCi0rcHJlZGVwcz0kbHRfcHJlZGVwc19DWFgKLStwb3N0ZGVwcz0kbHRf cG9zdGRlcHNfQ1hYCi0rCi0rIyBUaGUgbGlicmFyeSBzZWFyY2ggcGF0aCB1c2VkIGludGVybmFs bHkgYnkgdGhlIGNvbXBpbGVyIHdoZW4gbGlua2luZwotKyMgYSBzaGFyZWQgbGlicmFyeS4KLStj b21waWxlcl9saWJfc2VhcmNoX3BhdGg9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFgK LSsKLSsjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiBDWFgKLStfTFRfRU9GCi0rCi0rIDs7 Ci0rCi0rICBlc2FjCi0rZG9uZSAjIGZvciBhY190YWcKLSsKLSsKLSt7IChleGl0IDApOyBleGl0 IDA7IH0KLStfQUNFT0YKLStjaG1vZCAreCAkQ09ORklHX1NUQVRVUwotK2FjX2NsZWFuX2ZpbGVz PSRhY19jbGVhbl9maWxlc19zYXZlCi0rCi0rdGVzdCAkYWNfd3JpdGVfZmFpbCA9IDAgfHwKLSsg IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiB3cml0ZSBmYWlsdXJlIGNyZWF0 aW5nICRDT05GSUdfU1RBVFVTIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogd3JpdGUg ZmFpbHVyZSBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiYyO30KLSsgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0KLSsKLSsKLSsjIGNvbmZpZ3VyZSBpcyB3cml0aW5nIHRvIGNvbmZpZy5sb2cs IGFuZCB0aGVuIGNhbGxzIGNvbmZpZy5zdGF0dXMuCi0rIyBjb25maWcuc3RhdHVzIGRvZXMgaXRz IG93biByZWRpcmVjdGlvbiwgYXBwZW5kaW5nIHRvIGNvbmZpZy5sb2cuCi0rIyBVbmZvcnR1bmF0 ZWx5LCBvbiBET1MgdGhpcyBmYWlscywgYXMgY29uZmlnLmxvZyBpcyBzdGlsbCBrZXB0IG9wZW4K LSsjIGJ5IGNvbmZpZ3VyZSwgc28gY29uZmlnLnN0YXR1cyB3b24ndCBiZSBhYmxlIHRvIHdyaXRl IHRvIGl0OyBpdHMKLSsjIG91dHB1dCBpcyBzaW1wbHkgZGlzY2FyZGVkLiAgU28gd2UgZXhlYyB0 aGUgRkQgdG8gL2Rldi9udWxsLAotKyMgZWZmZWN0aXZlbHkgY2xvc2luZyBjb25maWcubG9nLCBz byBpdCBjYW4gYmUgcHJvcGVybHkgKHJlKW9wZW5lZCBhbmQKLSsjIGFwcGVuZGVkIHRvIGJ5IGNv bmZpZy5zdGF0dXMuICBXaGVuIGNvbWluZyBiYWNrIHRvIGNvbmZpZ3VyZSwgd2UKLSsjIG5lZWQg dG8gbWFrZSB0aGUgRkQgYXZhaWxhYmxlIGFnYWluLgotK2lmIHRlc3QgIiRub19jcmVhdGUiICE9 IHllczsgdGhlbgotKyAgYWNfY3Nfc3VjY2Vzcz06Ci0rICBhY19jb25maWdfc3RhdHVzX2FyZ3M9 Ci0rICB0ZXN0ICIkc2lsZW50IiA9IHllcyAmJgotKyAgICBhY19jb25maWdfc3RhdHVzX2FyZ3M9 IiRhY19jb25maWdfc3RhdHVzX2FyZ3MgLS1xdWlldCIKLSsgIGV4ZWMgNT4vZGV2L251bGwKLSsg ICRTSEVMTCAkQ09ORklHX1NUQVRVUyAkYWNfY29uZmlnX3N0YXR1c19hcmdzIHx8IGFjX2NzX3N1 Y2Nlc3M9ZmFsc2UKLSsgIGV4ZWMgNT4+Y29uZmlnLmxvZwotKyAgIyBVc2UgfHwsIG5vdCAmJiwg dG8gYXZvaWQgZXhpdGluZyBmcm9tIHRoZSBpZiB3aXRoICQ/ID0gMSwgd2hpY2gKLSsgICMgd291 bGQgbWFrZSBjb25maWd1cmUgZmFpbCBpZiB0aGlzIGlzIHRoZSBsYXN0IGluc3RydWN0aW9uLgot KyAgJGFjX2NzX3N1Y2Nlc3MgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0rZmkKLStpZiB0ZXN0 IC1uICIkYWNfdW5yZWNvZ25pemVkX29wdHMiICYmIHRlc3QgIiRlbmFibGVfb3B0aW9uX2NoZWNr aW5nIiAhPSBubzsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6 IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IFdBUk5JTkc6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25p emVkX29wdHMiID4mMjt9Ci0rZmkKLSsKLSsKLStlY2hvICIKLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSskUEFDS0FHRS0kVkVSU0lPTiBsaWJyYXJ5IGNvbmZpZ3VyYXRpb246Ci0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rCi0rRGlyZWN0b3JpZXM6Ci0rICAtIHByZWZpeCAuLi4uLi4uLi4uLi4u Li4gOiAke3ByZWZpeH0KLSsgIC0gZXhlY19wcmVmaXggLi4uLi4uLi4uLiA6ICR7ZXhlY19wcmVm aXh9Ci0rICAtIGluY2x1ZGVkaXIgLi4uLi4uLi4uLi4gOiAke2luY2x1ZGVkaXJ9Ci0rICAtIGxp YmRpciAuLi4uLi4uLi4uLi4uLi4gOiAke2xpYmRpcn0KLSsgIC0gZG9jZGlyIC4uLi4uLi4uLi4u Li4uLiA6ICR7ZG9jZGlyfQotKyAgLSBtYW5kaXIgLi4uLi4uLi4uLi4uLi4uIDogJHttYW5kaXJ9 Ci0rICAtIGluZm9kaXIgLi4uLi4uLi4uLi4uLi4gOiAke2luZm9kaXJ9Ci0rCi0rU3dpdGNoZXM6 Ci0rICAtIGV4Y2VwdGlvbnMgLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9leGNlcHRpb25zfQotKyAg LSBpbmZvLWRvYyAuLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfaW5mb19kb2N9Ci0rICAtIGh0bWwt ZG9jIC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9odG1sX2RvY30KLSsgIC0gc2hhcmVkIC4uLi4u Li4uLi4uLi4uLiA6ICR7ZW5hYmxlX3NoYXJlZH0KLSsgIC0gc3RhdGljIC4uLi4uLi4uLi4uLi4u LiA6ICR7ZW5hYmxlX3N0YXRpY30KLSsKLStEb2N1bWVudGF0aW9uIHRvb2xzOgotKyAgLSB0ZXhp bmZvIC4uLi4uLi4uLi4uLi4uIDogJHt0ZXhpbmZvX29rfQotKyAgLSBkb3h5Z2VuIC4uLi4uLi4u Li4uLi4uIDogJHtkb3h5Z2VuX29rfQotKyAgLSBsYXRleCAuLi4uLi4uLi4uLi4uLi4uIDogJHts YXRleF9va30KLSsgIC0gZHZpcHMgLi4uLi4uLi4uLi4uLi4uLiA6ICR7ZHZpcHNfb2t9Ci0rICAt IGdob3N0c2NyaXB0IC4uLi4uLi4uLi4gOiAke2dzX29rfQotKwotK1Rlc3RpbmcgdG9vbHM6Ci0r ICAtIGRpZmYgLi4uLi4uLi4uLi4uLi4uLi4gOiAke2RpZmZfb2t9Ci0rICAtIHNlZCAuLi4uLi4u Li4uLi4uLi4uLi4gOiAke3NlZF9va30KLSsKLStDb21waWxlci9saW5rZXIgZmxhZ3MvbGlicy9k ZWZzOgotKyAgLSBDWFggLi4uLi4uLi4uLi4uLi4uLi4uIDogJHtDWFh9Ci0rICAtIENYWEZMQUdT IC4uLi4uLi4uLi4uLi4gOiAke0NYWEZMQUdTfQotKyAgLSBDUFBGTEFHUyAuLi4uLi4uLi4uLi4u IDogJHtDUFBGTEFHU30KLSsgIC0gTERGTEFHUyAuLi4uLi4uLi4uLi4uLiA6ICR7TERGTEFHU30K LSsgIC0gTElCUyAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7TElCU30KLSsKLStCdXJyaWVkIGhlYWRl ciBmaWxlczoKLSsgIC0gU09DSV9IRUFERVJTX0JVUklFRCAuLi4uLi4uIDogJHtlbmFibGVfYnVy cmllZF9oZWFkZXJzfQotKyAgLSBNWVNRTF9IRUFERVJTX0JVUklFRCAuLi4uLi4gOiAke2VuYWJs ZV9teXNxbF9idXJyaWVkX2hlYWRlcnN9Ci0rICAtIFBPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQg LiA6ICR7ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzfQotKwotK0V4dGVybmFsIGxp YnJhcmllczoKLSsgIC0gQm9vc3QgLi4uLi4uLi4uLi4uLi4uLiA6Ci0rICAgIG8gQk9PU1RfVkVS U0lPTiAuLi4uLi4gOiAke0JPT1NUX1ZFUlNJT059Ci0rICAgIG8gQk9PU1RfQ0ZMQUdTIC4uLi4u Li4gOiAke0JPT1NUX0NGTEFHU30KLSsgICAgbyBCT09TVF9MSUJTIC4uLi4uLi4uLiA6ICR7Qk9P U1RfTElCU30KLSsgICAgbyBCT09TVF9EVF9MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfREFURV9USU1F X0xJQn0KLSsgICAgbyBCT09TVF9QT19MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQn0KLSsKLSsgIC0gTXlTUUwgc3VwcG9ydCAuLi4uLi4uLiA6ICR7ZW5hYmxlX2JhY2tl bmRfbXlzcWx9Ci0rICAgIG8gTVlTUUxfVkVSU0lPTiAuLi4uLi4gOiAke01ZU1FMX1ZFUlNJT059 Ci0rICAgIG8gTVlTUUxfQ0ZMQUdTIC4uLi4uLi4gOiAke01ZU1FMX0NGTEFHU30KLSsgICAgbyBN WVNRTF9MSUJTIC4uLi4uLi4uLiA6ICR7TVlTUUxfTElCU30KLSsKLSsgIC0gUG9zdEdyZVNRTCBz dXBwb3J0IC4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbH0KLSsgICAgbyBQT1NUR1JF U1FMX1ZFUlNJT04gLiA6ICR7UE9TVEdSRVNRTF9WRVJTSU9OfQotKyAgICBvIFBPU1RHUkVTUUxf Q0ZMQUdTIC4uIDogJHtQT1NUR1JFU1FMX0NGTEFHU30KLSsgICAgbyBQT1NUR1JFU1FMX0xERkxB R1MgLiA6ICR7UE9TVEdSRVNRTF9MREZMQUdTfQotKwotKyAgLSBPcmFjbGUgc3VwcG9ydCAuLi4u Li4uIDogJHtlbmFibGVfYmFja2VuZF9vcmFjbGV9Ci0rICAgIG8gT1JBQ0xFX1ZFUlNJT04gLi4u Li4gOiAke09SQUNMRV9PQ0lfVkVSU0lPTn0KLSsgICAgbyBPUkFDTEVfQ0ZMQUdTIC4uLi4uLiA6 ICR7T1JBQ0xFX09DSV9DRkxBR1N9Ci0rICAgIG8gT1JBQ0xFX0xERkxBR1MgLi4uLi4gOiAke09S QUNMRV9PQ0lfTERGTEFHU30KLSsKLSsgIC0gQ1BQVW5pdCAuLi4uLi4uLi4uLi4uLiA6Ci0rICAg IG8gQ1BQVU5JVF9WRVJTSU9OIC4uLi4gOiAke0NQUFVOSVRfVkVSU0lPTn0KLSsgICAgbyBDUFBV TklUX0NGTEFHUyAuLi4uLiA6ICR7Q1BQVU5JVF9DRkxBR1N9Ci0rICAgIG8gQ1BQVU5JVF9MSUJT IC4uLi4uLi4gOiAke0NQUFVOSVRfTElCU30KLSAKLS1lY2hvICcnCi0tY2QgYnVpbGQvdW5peDsg YGNhdCBsb2NhbC90Y2xgIHBhcnNlLXBhcmFtZXRlcnMudGNsCi0tCi0tZWNobyAnJwotLWVjaG8g J0NvbmZpZ3VyZSBkb25lLicKLS1lY2hvICdZZXMsIGl0IHdhcyBzaG9ydC4nCi0tZWNobyAnJwot LWVjaG8gJ1lvdSBjYW4gbm93IHJ1biBtYWtlLicKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStO b3cgdHlwZSAnbWFrZSAmJiBtYWtlIGluc3RhbGwnIHRvIGJ1aWxkIGFuZCBpbnN0YWxsICRQQUNL QUdFLSRWRVJTSU9OIGxpYnJhcnkKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsiCi1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlndXJlLmFjIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25m aWd1cmUuYWMKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWd1cmUuYWMJMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlndXJl LmFjCTIwMTAtMDEtMjMgMTQ6NDI6NDIuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDQwMiBA QAotKyMgUHJvY2VzcyB0aGlzIGZpbGUgd2l0aCBhdXRvY29uZiB0byBwcm9kdWNlIGEgY29uZmln dXJlIHNjcmlwdAotKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfUFJFUkVRKDIuNTkpCi0rQUNfQ09QWVJJR0hU KFtDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOSBNYWNpZWogU29iY3phayA8bXNvYmN6YWtAdXNlcnMu c291cmNlZm9yZ2UubmV0Pl0pCi0rQUNfSU5JVChbU09DSV0sWzMuMC4wXSxbbXNvYmN6YWtAdXNl cnMuc291cmNlZm9yZ2UubmV0XSxbc29jaV0pCi0rQUNfQ09ORklHX0hFQURFUihbc29jaS9jb25m aWcuaF0pCi0rQUNfQ09ORklHX1NSQ0RJUihbc29jaS9jb3JlL2Vycm9yLmNwcF0pCi0rQUNfQ09O RklHX0FVWF9ESVIoW2NvbmZpZ10pCi0rQU1fSU5JVF9BVVRPTUFLRQotK0FNX1BBVEhfQ1BQVU5J VCgxLjEwKQotK0FNX0NPTkRJVElPTkFMKFtIQVZFX0NQUFVOSVRdLCBbdGVzdCAieCRDUFBVTklU X0xJQlMiICE9IHhdKQotKwotKyMgUlBNIHJlbGVhc2UgbnVtYmVyCi0rUlBNX1JFTEVBU0U9IjE2 IgotK0FDX1NVQlNUKFJQTV9SRUxFQVNFKQotKwotKyMgU2hhcmVkIGxpYnJhcnkgdmVyc2lvbmlu ZwotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OPSIzOjA6MCIKLSsjICAgICAgICAgICAgICAgICAg ICAgICAgfCB8IHwKLSsjICAgICAgICAgICAgICAgICArLS0tLS0tKyB8ICstLS0rCi0rIyAgICAg ICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAotKyMgICAgICAgICAgICAgIGN1cnJlbnQ6cmV2 aXNpb246YWdlCi0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAotKyMgICAgICAg ICAgICAgICAgIHwgICAgICAgIHwgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUg YmVlbiBhZGRlZDsKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICAgICBzZXQgdG8g emVybyBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiAKLSsjICAgICAgICAgICAgICAgICB8ICAgICAg ICB8ICAgICAgICByZW1vdmVkIG9yIGNoYW5nZWQKLSsjICAgICAgICAgICAgICAgICB8ICAgICAg ICArLSBpbmNyZW1lbnQgaWYgc291cmNlIGNvZGUgaGFzIGNoYW5nZWQ7Ci0rIyAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgc2V0IHRvIHplcm8gaWYgY3VycmVudCBpcyBpbmNyZW1lbnRlZAot KyMgICAgICAgICAgICAgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiBh ZGRlZCwgcmVtb3ZlZAotKyMgICAgICAgICAgICAgICAgICAgIG9yIGNoYW5nZWQKLStBQ19TVUJT VChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLSsjIFVwbG9hZCBjb21tYW5kIGZvciBTb3Vy Y2VGb3JnZQotK1VQTE9BRF9DT01NQU5EPSJuY2Z0cHB1dCAtdiB1cGxvYWQuc291cmNlZm9yZ2Uu bmV0IC9pbmNvbWluZyIKLStBQ19TVUJTVChVUExPQURfQ09NTUFORCkKLSsKLSsjIENoZWNrIGZv ciBob3N0IGFuZCBkaXNhYmxlIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgaW4gV2luZG93cwot K0FDX0NBTk9OSUNBTF9IT1NUCi0rY2FzZSAkaG9zdCBpbgotKyAgKi0qLW1zZG9zKiB8ICotKi1n bzMyKiB8ICotKi1taW5ndzMyKiB8ICotKi1jeWd3aW4qIHwgKi0qLXdpbmRvd3MqKSAKLSsgICAg QUNfRElTQUJMRV9TSEFSRUQKLSsgICAgQUNfRU5BQkxFX1NUQVRJQwotKyAgICA7OwotKyAgKikg IAotKyAgICBBQ19FTkFCTEVfU0hBUkVECi0rICAgIEFDX0RJU0FCTEVfU1RBVElDCi0rICAgIDs7 Ci0rZXNhYwotKwotKyMgQ2hlY2tzIGZvciBwcm9ncmFtcwotK3NhdmVfQ1hYRkxBR1M9IiRDWFhG TEFHUyIKLStBQ19QUk9HX0NYWAotK0FDX1BST0dfQ1hYQ1BQCi0rQ1hYRkxBR1M9IiRzYXZlX0NY WEZMQUdTIgotK0FDX1BST0dfSU5TVEFMTAotK0FDX1BST0dfTElCVE9PTAotK0FDX1BST0dfTE5f UwotK0FDX1BST0dfTUFLRV9TRVQKLSsKLSsjIFNldCBkZWZhdWx0IGxhbmd1YWdlIHRvIEMrKwot K0FDX0xBTkcoW0MrK10pCi0rCi0rIyBDaGVjayBmb3IgZXhjZXB0aW9ucyBzd2l0Y2gKLStBQ19B UkdfRU5BQkxFKGV4Y2VwdGlvbnMsCi0rICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0t ZW5hYmxlLWV4Y2VwdGlvbnNdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbmFi bGUgZXhjZXB0aW9ucyBoYW5kbGluZyBtZWNoYW5pc21dKV0sCi0rICAgICAgICAgICAgICBbQUNf REVGSU5FKFtTT0NJX0VYQ0VQVElPTlNdLCBbMV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAg IFtEZWZpbmUgaWYgeW91IHdhbnQgZXhjZXB0aW9ucyBoYW5kbGluZ10pXSkKLSt0ZXN0ICJ4JGVu YWJsZV9leGNlcHRpb25zIiAhPSB4bm8gJiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVzCi0rdGVzdCAi eCRheF9jdl9ib29zdF9kYXRlX3RpbWUiICE9IHhubyAmJiBlbmFibGVfZXhjZXB0aW9ucz15ZXMK LSsKLSsjIENoZWNrIGZvciBpbmZvIHBhZ2VzCi0rQUNfQVJHX0VOQUJMRShpbmZvLWRvYywgCi0r ICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1pbmZvLWRvY10sCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RvIG5vdCBnZW5lcmF0ZSBJbmZvIGRvY3VtZW50 YXRpb25dKV0pCi0rdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubyAmJiBlbmFibGVfaW5m b19kb2M9eWVzCi0rCi0rCi0rIyBDaGVjayBmb3IgaHRtbC1kb2Mgc3dpdGNoCi0rQUNfQVJHX0VO QUJMRShodG1sLWRvYywgCi0rICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJs ZS1odG1sLWRvY10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RvIG5vdCBnZW5l cmF0ZSBIVE1MIGRvY3VtZW50YXRpb25dKV0pCi0rdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiICE9 IHhubyAmJiBlbmFibGVfaHRtbF9kb2M9eWVzCi0rCi0rCi0rIyBQcm92aWRlIC0td2l0aC1kb2Nk aXIKLStBQ19BUkdfV0lUSChkb2NkaXIsCi0rICAgICAgICAgICAgW0FTX0hFTFBfU1RSSU5HKFst LXdpdGgtZG9jZGlyPURJUl0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZXQgZG9j dW1lbnRhdGlvbiBkaXJlY3RvcnkgdG8gRElSXSldLAotKyAgICAgICAgICAgIFtET0NfRElSPSIk d2l0aHZhbCJdLAotKyAgICAgICAgICAgIFtET0NfRElSPSIiXSkKLStpZiB0ZXN0ICJ4JERPQ19E SVIiICE9IHg7IHRoZW4KLSsgIGRvY2Rpcj0iJERPQ19ESVIiCi0rZWxzZQotKyAgZG9jZGlyPSIk e2RhdGFkaXJ9L2RvYy8kUEFDS0FHRS0kVkVSU0lPTiIKLStmaQotK0FDX1NVQlNUKGRvY2RpcikK LSsKLSsKLSsjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFNPQ0kgaXRzZWxm KQotK0FDX0FSR19FTkFCTEUoYnVycmllZC1oZWFkZXJzLCAKLSsgQVNfSEVMUF9TVFJJTkcoWy0t ZW5hYmxlLWJ1cnJpZWQtaGVhZGVyc10sCi0rCQlbaW5jbHVkZSBoZWFkZXIgZmlsZXMgZnJvbSBh IGRpcmVjdG9yeSBzdHJ1Y3R1cmVdKSwKLSsgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0 aGVuCi0rICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz1ubwotKyAgIGVsc2UKLSsgICAgICBl bmFibGVfYnVycmllZF9oZWFkZXJzPXllcwotKyAgIGZpIF0sCi0rIFsgZW5hYmxlX2J1cnJpZWRf aGVhZGVycz1ubyBdKQotKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0 aW9uCi0rZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15ZXMKLStBTV9DT05ESVRJT05BTChbU09DSV9I RUFERVJTX0JVUklFRF0sIFt0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMiID0geHllc10p Ci0rQUNfU1VCU1QoU09DSV9IRUFERVJTX0JVUklFRCkKLStpZiB0ZXN0ICJ4JGVuYWJsZV9idXJy aWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgIENQUEZMQUdTPSItRFNPQ0lfSEVBREVSU19C VVJJRUQgJENQUEZMQUdTIgotK2ZpCi0rCi0rIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmls ZXMgKGZvciBNeVNRTCBjbGllbnQpCi0rQUNfQVJHX0VOQUJMRShteXNxbC1idXJyaWVkLWhlYWRl cnMsIAotKyBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtbXlzcWwtYnVycmllZC1oZWFkZXJzXSwK LSsJCVtpbmNsdWRlIE15U1FMIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVy ZV0pLAotKyBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KLSsJZW5hYmxlX215c3Fs X2J1cnJpZWRfaGVhZGVycz1ubwotKyAgIGVsc2UKLSsJZW5hYmxlX215c3FsX2J1cnJpZWRfaGVh ZGVycz15ZXMKLSsgICBmaSBdLAotKyBbIGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9bm8g XSkKLSsjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlvbgotK2VuYWJs ZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCi0rQU1fQ09ORElUSU9OQUwoW1NPQ0lfTVlTUUxf SEVBREVSU19CVVJJRURdLAotKyAgICAgICAgICAgICAgIFt0ZXN0ICJ4JGVuYWJsZV9teXNxbF9i dXJyaWVkX2hlYWRlcnMiID0geHllc10pCi0rQUNfU1VCU1QoU09DSV9NWVNRTF9IRUFERVJTX0JV UklFRCkKLStpZiB0ZXN0ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsg dGhlbgotKyAgIENQUEZMQUdTPSItRFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgJENQUEZMQUdT IgotK2ZpCi0rCi0rIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBQb3N0R3Jl U1FMIGNsaWVudCkKLStBQ19BUkdfRU5BQkxFKHBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzLCAK LSsgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzXSwK LSsJCVtpbmNsdWRlIFBvc3RHcmVTUUwgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3Rvcnkgc3Ry dWN0dXJlXSksCi0rIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKwllbmFibGVf cG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KLSsgICBlbHNlCi0rCWVuYWJsZV9wb3N0Z3Jl c3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKLSsgICBmaSBdLAotKyBbIGVuYWJsZV9wb3N0Z3Jlc3Fs X2J1cnJpZWRfaGVhZGVycz1ubyBdKQotKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdl cyBnZW5lcmF0aW9uCi0rZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXllcwotK0FN X0NPTkRJVElPTkFMKFtTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURdLAotKyAgICAgICAg ICAgICAgIFt0ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVz XSkKLStBQ19TVUJTVChTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQpCi0raWYgdGVzdCAi eCRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgIENQ UEZMQUdTPSItRFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCi0rZmkK LSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBCb29zdCAoU1RMIEV4dGVuc2lvbnM6IGh0dHA6Ly93d3cuYm9vc3Qub3Jn KQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLStBWF9CT09TVChbMS4zM10pCi0rQUNfU1VCU1QoQk9PU1RfVkVSU0lPTikKLStBQ19T VUJTVChCT09TVF9DRkxBR1MpCi0rQUNfU1VCU1QoQk9PU1RfTElCUykKLStBQ19TVUJTVChCT09T VF9EQVRFX1RJTUVfTElCKQotK0FDX1NVQlNUKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpCi0r QUNfU1VCU1QoQk9PU1RfRklMRVNZU1RFTV9MSUIpCi0rQUNfU1VCU1QoQk9PU1RfVEhSRUFEX0xJ QikKLStBQ19TVUJTVChCT09TVF9QWVRIT05fTElCKQotKwotKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1 cHBvcnQgZm9yIE15U1FMIGJhY2tlbmQgKEMgY2xpZW50IEFQSSk6IGh0dHA6Ly93d3cubXlzcWwu b3JnCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0FSR19FTkFCTEUoW2JhY2tlbmQtbXlzcWxdLAotKyAg ICBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtYmFja2VuZC1teXNxbF0sCi0rICAgICAgICBbYnVp bGQtaW4gTXlTUUwgYmFja2VuZCBzdXBwb3J0IEA8OkBkZWZhdWx0PW5vQDo+QF0KLSsgICAgKSwK LSsgICAgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0rICAgICAgCSBlbmFibGVf YmFja2VuZF9teXNxbD1ubwotKyAgICAgIGVsc2UKLSsJIGVuYWJsZV9iYWNrZW5kX215c3FsPXll cwotKyAgICAgIGZpIF0sCi0rICAgIFsgZW5hYmxlX2JhY2tlbmRfbXlzcWw9bm8gXQotKykKLSsK LStpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX215c3FsIiA9ICJ4eWVzIjsgdGhlbgotKyAgIE1Z U1FMX0RJUlM9Im15c3FsIgotKyMgICBNWVNRTF9SRVFfVkVSU0lPTj0iMy4wLjAiCi0rICAgQVhf TVlTUUwKLStmaQotK0FNX0NPTkRJVElPTkFMKFtIQVZFX01ZU1FMXSwgW3Rlc3QgIngkZW5hYmxl X2JhY2tlbmRfbXlzcWwiID0geHllc10pCi0rI01ZU1FMX0RJUlM9Im15c3FsIgotKwotK0FDX1NV QlNUKFtNWVNRTF9ESVJTXSkKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIE9y YWNsZSBiYWNrZW5kCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfQVJHX0VOQUJMRShbYmFja2VuZC1vcmFj bGVdLAotKyAgICBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtYmFja2VuZC1vcmFjbGVdLAotKwkJ ICAgW2J1aWxkLWluIE9SQUNMRSBiYWNrZW5kIHN1cHBvcnQgQDw6QGRlZmF1bHQ9bm9AOj5AXSks Ci0rICAgIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAgIAkgZW5hYmxl X2JhY2tlbmRfb3JhY2xlPW5vCi0rICAgICAgZWxzZQotKwkgZW5hYmxlX2JhY2tlbmRfb3JhY2xl PXllcwotKyAgICAgIGZpIF0sCi0rICAgIFsgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPW5vIF0KLSsp Ci0rCi0raWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9vcmFjbGUiID0gInh5ZXMiOyB0aGVuCi0r ICAgT1JBQ0xFX0RJUlM9Im9yYWNsZSIKLSsgICBPUkFDTEVfT0NJX1JFUV9WRVJTSU9OPSI5LjAi Ci0rICAgQVhfTElCX09SQUNMRV9PQ0koJE9SQUNMRV9PQ0lfUkVRX1ZFUlNJT04pCi0rZmkKLStB TV9DT05ESVRJT05BTChbSEFWRV9PUkFDTEVdLCBbdGVzdCAieCRlbmFibGVfYmFja2VuZF9vcmFj bGUiID0geHllc10pCi0rI09SQUNMRV9ESVJTPSJvcmFjbGUiCi0rCi0rQUNfU1VCU1QoW09SQUNM RV9ESVJTXSkKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIFBvc3RncmVTUUwgYmFj a2VuZAotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0FSR19FTkFCTEUoW2JhY2tlbmQtcG9zdGdyZXNxbF0s Ci0rICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1iYWNrZW5kLXBvc3RncmVzcWxdLAotKyAg ICAgICAgW2J1aWxkLWluIFBvc3RncmVTUUwgYmFja2VuZCBzdXBwb3J0IEA8OkBkZWZhdWx0PW5v QDo+QF0KLSsgICAgKSwKLSsgICAgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0r ICAgICAgCSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPW5vCi0rICAgICAgZWxzZQotKwkgZW5h YmxlX2JhY2tlbmRfcG9zdGdyZXNxbD15ZXMKLSsgICAgICBmaSBdLAotKyAgICBbIGVuYWJsZV9i YWNrZW5kX3Bvc3RncmVzcWw9bm8gXQotKykKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5k X3Bvc3RncmVzcWwiID0gInh5ZXMiOyB0aGVuCi0rICAgUE9TVEdSRVNRTF9ESVJTPSJwb3N0Z3Jl c3FsIgotKyAgIFBPU1RHUkVTUUxfUkVRX1ZFUlNJT049IjcuMS40IgotKyAgIEFYX0xJQl9QT1NU R1JFU1FMKCRQT1NUR1JFU1FMX1JFUV9WRVJTSU9OKQotK2ZpCi0rQU1fQ09ORElUSU9OQUwoW0hB VkVfUE9TVEdSRVNRTF0sIFt0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwiID0geHll c10pCi0rI1BPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKLSsKLStBQ19TVUJTVChbUE9TVEdS RVNRTF9ESVJTXSkKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIGRvY3VtZW50 YXRpb24KLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrcyBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZCB0 b29scwotKyNBQ19DSEVDS19QUk9HKFt0ZXhpbmZvX29rXSwgW3RleGluZm9dLCBbeWVzXSwgW25v XSkKLSsjaWYgdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubzsgdGhlbgotKyMgIHRlc3Qg IngkdGV4aW5mb19vayIgIT0geHllcyAmJiBlbmFibGVfaW5mb19kb2M9bm8KLSsjICBBQ19QQVRI X1BST0coW1BFUkxdLCBbcGVybF0sIFtdKQotKyNmaQotK0FNX0NPTkRJVElPTkFMKFtJTkZPX0RP Q10sIFt0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgPSB4eWVzXSkKLSsKLSsjIENoZWNrcyBmb3Ig ZG9jdW1lbnRhdGlvbiBidWlsZCB0b29scwotK0FDX0NIRUNLX1BST0coW2RveHlnZW5fb2tdLCBb ZG94eWdlbl0sIFt5ZXNdLCBbbm9dKQotK0FDX0NIRUNLX1BST0coW2xhdGV4X29rXSwgW2xhdGV4 XSwgW3llc10sIFtub10pCi0rQUNfQ0hFQ0tfUFJPRyhbZHZpcHNfb2tdLCBbZHZpcHNdLCBbeWVz XSwgW25vXSkKLStBQ19DSEVDS19QUk9HKFtnc19va10sIFtnc10sIFt5ZXNdLCBbbm9dKQotK2lm IHRlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiAhPSB4bm87IHRoZW4KLSsgIHRlc3QgIngkZG94eWdl bl9vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KLSsgIHRlc3QgIngkbGF0ZXhfb2si ICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCi0rICB0ZXN0ICJ4JGR2aXBzX29rIiAhPSB4 eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubwotKyAgdGVzdCAieCRnc19vayIgIT0geHllcyAmJiBl bmFibGVfaHRtbF9kb2M9bm8KLSsgIEFDX1BBVEhfUFJPRyhbUEVSTF0sIFtwZXJsXSwgW10pCi0r ZmkKLStBTV9DT05ESVRJT05BTChbSFRNTF9ET0NdLCBbdGVzdCAieCRlbmFibGVfaHRtbF9kb2Mi ID0geHllc10pCi0rCi0rCi0rIyBDaGVjayBmb3IgZGlmZiBwcm9ncmFtIHVzZWQgZm9yIHRlc3Rz Ci0rQUNfQ0hFQ0tfUFJPRyhbZGlmZl9va10sIFtkaWZmXSwgW3llc10sIFtub10pCi0rQUNfQ0hF Q0tfUFJPRyhbc2VkX29rXSwgW3NlZF0sIFt5ZXNdLCBbbm9dKQotK2VuYWJsZV90ZXN0cz15ZXMK LSt0ZXN0ICJ4JGRpZmZfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCi0rdGVzdCAieCRz ZWRfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCi0rQU1fQ09ORElUSU9OQUwoW1JVTl9U RVNUU10sIFt0ZXN0ICJ4JGVuYWJsZV90ZXN0cyIgPSB4eWVzXSkKLSsKLSsKLSsjIENoZWNrcyBm b3IgaGVhZGVyIGZpbGVzCi0rQUNfSEVBREVSX1NUREMKLStBQ19IRUFERVJfVElNRQotK0FDX0NI RUNLX0hFQURFUlMoW2NtYXRoIFwKLSsgIGRlcXVlIFwKLSsgIGZzdHJlYW0gXAotKyAgaW9tYW5p cCBcCi0rICBpb3N0cmVhbSBcCi0rICBzc3RyZWFtIFwKLSsgIGxpbWl0cyBcCi0rICBsaXN0IFwK LSsgIHNldCBcCi0rICB2ZWN0b3IgXAotKyAgbWFwIFwKLSsgIHF1ZXVlIFwKLSsgIHN0ZGV4Y2Vw dCBcCi0rICBzdHJpbmddKQotKwotKwotKyMgRGVmaW5lIGNvbmZpZ3VyZWQgZmlsZXMKLStBQ19D T05GSUdfRklMRVMoCi0rCU1ha2VmaWxlCi0rCXNvY2ktY29uZmlnCi0rCXNvY2kucGMKLSsJc29j aS5zcGVjCi0rCXNvY2kvTWFrZWZpbGUKLSsJc29jaS9jb3JlL01ha2VmaWxlCi0rCXNvY2kvY29y ZS90ZXN0L01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvTWFrZWZpbGUKLSsJc29jaS9iYWNrZW5k cy9teXNxbC9NYWtlZmlsZQotKwlzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUKLSsJ c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC90ZXN0L01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlCi0rCXNv Y2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUKLSsJbWFuL01ha2VmaWxlCi0rICAgICAg ICBkb2MvTWFrZWZpbGUKLSsgICAgICAgIGRvYy9iYWNrZW5kcy9NYWtlZmlsZQotKwlidWlsZC9N YWtlZmlsZQotKwlidWlsZC91bml4L01ha2VmaWxlCi0rCWJ1aWxkL21zdmM4MC9NYWtlZmlsZQot KwlidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlCi0rCWJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUp Ci0rCi0rQUNfT1VUUFVUCi0rCi0rZWNobyAiCi0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rJFBB Q0tBR0UtJFZFUlNJT04gbGlicmFyeSBjb25maWd1cmF0aW9uOgotKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKwotK0RpcmVjdG9yaWVzOgotKyAgLSBwcmVmaXggLi4uLi4uLi4uLi4uLi4uIDogJHtw cmVmaXh9Ci0rICAtIGV4ZWNfcHJlZml4IC4uLi4uLi4uLi4gOiAke2V4ZWNfcHJlZml4fQotKyAg LSBpbmNsdWRlZGlyIC4uLi4uLi4uLi4uIDogJHtpbmNsdWRlZGlyfQotKyAgLSBsaWJkaXIgLi4u Li4uLi4uLi4uLi4uIDogJHtsaWJkaXJ9Ci0rICAtIGRvY2RpciAuLi4uLi4uLi4uLi4uLi4gOiAk e2RvY2Rpcn0KLSsgIC0gbWFuZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7bWFuZGlyfQotKyAgLSBp bmZvZGlyIC4uLi4uLi4uLi4uLi4uIDogJHtpbmZvZGlyfQotKwotK1N3aXRjaGVzOgotKyAgLSBl eGNlcHRpb25zIC4uLi4uLi4uLi4uIDogJHtlbmFibGVfZXhjZXB0aW9uc30KLSsgIC0gaW5mby1k b2MgLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX2luZm9fZG9jfQotKyAgLSBodG1sLWRvYyAuLi4u Li4uLi4uLi4uIDogJHtlbmFibGVfaHRtbF9kb2N9Ci0rICAtIHNoYXJlZCAuLi4uLi4uLi4uLi4u Li4gOiAke2VuYWJsZV9zaGFyZWR9Ci0rICAtIHN0YXRpYyAuLi4uLi4uLi4uLi4uLi4gOiAke2Vu YWJsZV9zdGF0aWN9Ci0rCi0rRG9jdW1lbnRhdGlvbiB0b29sczoKLSsgIC0gdGV4aW5mbyAuLi4u Li4uLi4uLi4uLiA6ICR7dGV4aW5mb19va30KLSsgIC0gZG94eWdlbiAuLi4uLi4uLi4uLi4uLiA6 ICR7ZG94eWdlbl9va30KLSsgIC0gbGF0ZXggLi4uLi4uLi4uLi4uLi4uLiA6ICR7bGF0ZXhfb2t9 Ci0rICAtIGR2aXBzIC4uLi4uLi4uLi4uLi4uLi4gOiAke2R2aXBzX29rfQotKyAgLSBnaG9zdHNj cmlwdCAuLi4uLi4uLi4uIDogJHtnc19va30KLSsKLStUZXN0aW5nIHRvb2xzOgotKyAgLSBkaWZm IC4uLi4uLi4uLi4uLi4uLi4uIDogJHtkaWZmX29rfQotKyAgLSBzZWQgLi4uLi4uLi4uLi4uLi4u Li4uIDogJHtzZWRfb2t9Ci0rCi0rQ29tcGlsZXIvbGlua2VyIGZsYWdzL2xpYnMvZGVmczoKLSsg IC0gQ1hYIC4uLi4uLi4uLi4uLi4uLi4uLiA6ICR7Q1hYfQotKyAgLSBDWFhGTEFHUyAuLi4uLi4u Li4uLi4uIDogJHtDWFhGTEFHU30KLSsgIC0gQ1BQRkxBR1MgLi4uLi4uLi4uLi4uLiA6ICR7Q1BQ RkxBR1N9Ci0rICAtIExERkxBR1MgLi4uLi4uLi4uLi4uLi4gOiAke0xERkxBR1N9Ci0rICAtIExJ QlMgLi4uLi4uLi4uLi4uLi4uLi4gOiAke0xJQlN9Ci0rCi0rQnVycmllZCBoZWFkZXIgZmlsZXM6 Ci0rICAtIFNPQ0lfSEVBREVSU19CVVJJRUQgLi4uLi4uLiA6ICR7ZW5hYmxlX2J1cnJpZWRfaGVh ZGVyc30KLSsgIC0gTVlTUUxfSEVBREVSU19CVVJJRUQgLi4uLi4uIDogJHtlbmFibGVfbXlzcWxf YnVycmllZF9oZWFkZXJzfQotKyAgLSBQT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEIC4gOiAke2Vu YWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVyc30KLSsKLStFeHRlcm5hbCBsaWJyYXJpZXM6 Ci0rICAtIEJvb3N0IC4uLi4uLi4uLi4uLi4uLi4gOgotKyAgICBvIEJPT1NUX1ZFUlNJT04gLi4u Li4uIDogJHtCT09TVF9WRVJTSU9OfQotKyAgICBvIEJPT1NUX0NGTEFHUyAuLi4uLi4uIDogJHtC T09TVF9DRkxBR1N9Ci0rICAgIG8gQk9PU1RfTElCUyAuLi4uLi4uLi4gOiAke0JPT1NUX0xJQlN9 Ci0rICAgIG8gQk9PU1RfRFRfTElCIC4uLi4uLi4gOiAke0JPT1NUX0RBVEVfVElNRV9MSUJ9Ci0r ICAgIG8gQk9PU1RfUE9fTElCIC4uLi4uLi4gOiAke0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJ9 Ci0rCi0rICAtIE15U1FMIHN1cHBvcnQgLi4uLi4uLi4gOiAke2VuYWJsZV9iYWNrZW5kX215c3Fs fQotKyAgICBvIE1ZU1FMX1ZFUlNJT04gLi4uLi4uIDogJHtNWVNRTF9WRVJTSU9OfQotKyAgICBv IE1ZU1FMX0NGTEFHUyAuLi4uLi4uIDogJHtNWVNRTF9DRkxBR1N9Ci0rICAgIG8gTVlTUUxfTElC UyAuLi4uLi4uLi4gOiAke01ZU1FMX0xJQlN9Ci0rCi0rICAtIFBvc3RHcmVTUUwgc3VwcG9ydCAu Li4gOiAke2VuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWx9Ci0rICAgIG8gUE9TVEdSRVNRTF9WRVJT SU9OIC4gOiAke1BPU1RHUkVTUUxfVkVSU0lPTn0KLSsgICAgbyBQT1NUR1JFU1FMX0NGTEFHUyAu LiA6ICR7UE9TVEdSRVNRTF9DRkxBR1N9Ci0rICAgIG8gUE9TVEdSRVNRTF9MREZMQUdTIC4gOiAk e1BPU1RHUkVTUUxfTERGTEFHU30gCi0rCi0rICAtIE9yYWNsZSBzdXBwb3J0IC4uLi4uLi4gOiAk e2VuYWJsZV9iYWNrZW5kX29yYWNsZX0KLSsgICAgbyBPUkFDTEVfVkVSU0lPTiAuLi4uLiA6ICR7 T1JBQ0xFX09DSV9WRVJTSU9OfQotKyAgICBvIE9SQUNMRV9DRkxBR1MgLi4uLi4uIDogJHtPUkFD TEVfT0NJX0NGTEFHU30KLSsgICAgbyBPUkFDTEVfTERGTEFHUyAuLi4uLiA6ICR7T1JBQ0xFX09D SV9MREZMQUdTfSAKLSsKLSsgIC0gQ1BQVW5pdCAuLi4uLi4uLi4uLi4uLiA6Ci0rICAgIG8gQ1BQ VU5JVF9WRVJTSU9OIC4uLi4gOiAke0NQUFVOSVRfVkVSU0lPTn0KLSsgICAgbyBDUFBVTklUX0NG TEFHUyAuLi4uLiA6ICR7Q1BQVU5JVF9DRkxBR1N9Ci0rICAgIG8gQ1BQVU5JVF9MSUJTIC4uLi4u Li4gOiAke0NQUFVOSVRfTElCU30KLSsKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStOb3cgdHlw ZSAnbWFrZSAmJiBtYWtlIGluc3RhbGwnIHRvIGJ1aWxkIGFuZCBpbnN0YWxsICRQQUNLQUdFLSRW RVJTSU9OIGxpYnJhcnkKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsiCi1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svQ09QWUlORyBzb2NpLTMuMC4wX3RyZXAzMDAvQ09QWUlORwotLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL0NPUFlJTkcJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvQ09QWUlORwkyMDA5LTA0LTE2IDE5OjM3OjEwLjAw MDAwMDAwMCArMDIwMAotQEAgLTIxLDMgKzIxLDQgQEAKLSBGT1IgQU5ZIERBTUFHRVMgT1IgT1RI RVIgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKLSBB UklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9S IFRIRSBVU0UgT1IgT1RIRVIKLSBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0rCi1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svZG9jL2JhY2tlbmRzL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBf dHJlcDMwMC9kb2MvYmFja2VuZHMvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9k b2MvYmFja2VuZHMvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL2JhY2tlbmRzL01ha2VmaWxlLmFtCTIwMDkt MDQtMTYgMTk6NTA6MzguMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE2IEBACi0rIyMgZG9j L2JhY2tlbmRzIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUu Y29tbW9uCi0raW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5tawotKwotKyMjIFNvdXJjZSBkaXJl Y3RvcnkKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElS UyA9Ci0rCi0rRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gJChodG1sX2Jja19z b3VyY2VzKQotKyNmaXJlYmlyZC5odG1sIGluZGV4Lmh0bWwgbXlzcWwuaHRtbCBvZGJjLmh0bWwg b3JhY2xlLmh0bWwgcG9zdGdyZXNxbC5odG1sIHNxbGl0ZTMuaHRtbAotKwotK0VYVFJBX0RJU1Qg PSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLSsKLSsjcGtnZGF0YWRpciA9 ICQoaHRtbF9iY2tfc291cmNlcykKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFj a2VuZHMvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtlZmls ZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbgkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9k b2MvYmFja2VuZHMvTWFrZWZpbGUuaW4JMjAxMC0wMS0yMyAxNDo0NDo1MS4wMDAwMDAwMDAgKzAx MDAKLUBAIC0wLDAgKzEsNjI5IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21h a2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMg Q29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAy MDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAotKyMgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBp cyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1 bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0 aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJl c2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRo ZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxB UiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRp ciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikv QFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmV4ZWNk aXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZF UlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGlu c3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkg LWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURF UiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwg PSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5J TlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhv c3RACi0rRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2Vm aWxlLmluIFwKLSsJJChzcmNkaXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5j b21tb24KLStzdWJkaXIgPSBkb2MvYmFja2VuZHMKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGly KS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmln L2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQu bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1f X2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBF TkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxf c2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0r Q09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQotK1NPVVJD RVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZl IGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKLSsJaHRtbC1yZWN1cnNpdmUgaW5mby1y ZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2 ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0 YWxsLWluZm8tcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMt cmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBp bnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmlu c3RhbGwtcmVjdXJzaXZlCi0rUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1y ZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRh aW5lci1jbGVhbi1yZWN1cnNpdmUKLStBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZF X1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKLSsJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVj dXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKLSsJZGlzdGRpcgotK0VUQUdTID0gZXRh Z3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxF UyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJ U1QpCi0rYW1fX3JlbGF0aXZpemUgPSBcCi0rICBkaXIwPWBwd2RgOyBcCi0rICBzZWRfZmlyc3Q9 J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKLSsgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBc Ci0rICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAotKyAgc2VkX2J1dGxhc3Q9 J3MsLypbXi9dKiQkLCwnOyBcCi0rICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCi0rICAg IGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgIGlm IHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBcCi0rICAgICAgaWYgdGVzdCAiJCRmaXJzdCIg PSAiLi4iOyB0aGVuIFwKLSsgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQk c2VkX2xhc3QiYC8iJCRkaXIyIjsgXAotKyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNl ZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCi0rICAgICAgZWxzZSBcCi0rICAgICAgICBmaXJzdDI9 YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAgICAgIGlmIHRl c3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhlbiBcCi0rICAgICAgICAgIGRpcjI9YGVjaG8g IiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgICAgICAgZWxzZSBcCi0rICAg ICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKLSsgICAgICAgIGZpOyBcCi0rICAgICAgICBkaXIw PSIkJGRpcjAiLyIkJGZpcnN0IjsgXAotKyAgICAgIGZpOyBcCi0rICAgIGZpOyBcCi0rICAgIGRp cjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgZG9uZTsgXAot KyAgcmVsZGlyPSIkJGRpcjIiCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFS QAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVU T0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NG TEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRF X1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElC QAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9M SUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAotK0JP T1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAotK0JPT1NUX1BST0dS QU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9QWVRI T05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JF R0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9O X0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9T WVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09T VF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VO SVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAK LStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAot K0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AK LStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0g QENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQ UFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRf VkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9 IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQ QVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBA RFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNI T19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VY RUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJ T04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwg PSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJP R1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJ UFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStM RCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJ QlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1Mg PSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZP QAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAot K01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AK LStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJT SU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1Q QAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JB Q0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdT ID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09D SV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNL QUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRA Ci0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNL QUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tB R0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9T RVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9T VEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0g QFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZM QUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElC ID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAot K1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19C VVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJ UEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJ T05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19z cmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bf c3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0 X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2Ft X19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGlu Z19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0r YW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1 aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9j cHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRv ckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJv b3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBk b2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0r ZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nf b2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AK LStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5k b3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBA aW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxs X3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhl Y2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0 ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK2x0X0VDSE8gPSBAbHRfRUNIT0AKLSttYW5kaXIgPSBA bWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1 ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1f dHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2Rp ckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0 ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIg PSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWls ZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxk ZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3Bf YnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK2h0bWxfYmNrX3NvdXJjZXMgPSAkKHRvcF9zcmNk aXIpL2RvYy9iYWNrZW5kcy9pbmRleC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2Vu ZHMvZmlyZWJpcmQuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL215c3FsLmh0 bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9vZGJjLmh0bWwgXAotKwkkKHRvcF9z cmNkaXIpL2RvYy9iYWNrZW5kcy9vcmFjbGUuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2Jh Y2tlbmRzL3Bvc3RncmVzcWwuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL3Nx bGl0ZTMuaHRtbAotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJE SVJTID0gCi0rRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gJChodG1sX2Jja19z b3VyY2VzKQotKyNmaXJlYmlyZC5odG1sIGluZGV4Lmh0bWwgbXlzcWwuaHRtbCBvZGJjLmh0bWwg b3JhY2xlLmh0bWwgcG9zdGdyZXNxbC5odG1sIHNxbGl0ZTMuaHRtbAotK0VYVFJBX0RJU1QgPSAk KEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLSthbGw6IGFsbC1yZWN1cnNpdmUK LSsKLSsuU1VGRklYRVM6Ci0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2Vm aWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1r ICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2Ug JyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAo IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJy ZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBc Ci0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IGRvYy9iYWNr ZW5kcy9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQo QVVUT01BS0UpIC0tZ251IGRvYy9iYWNrZW5kcy9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZp bGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25m aWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkg ICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChT SEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSkn OyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVz ICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0 b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09O RklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJl OiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xv Y2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaAotKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0rCi0rbW9zdGx5Y2xl YW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJm IC5saWJzIF9saWJzCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBt b3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtl JyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUg dmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMs Ci0rIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQg YGNvbmZpZy5zdGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0 byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2Us IHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQo UkVDVVJTSVZFX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3Ig ZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwg LS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2Fj OyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2Vk IHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0r CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsg XAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAg IGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAg fHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9 ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIg fHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHgg JCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10q KTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJ ZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVh bi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJ ICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6 OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9u ZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1 cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2lu ZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7 IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwK LSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9f Y2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBc Ci0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0r dGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJz aXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNP VVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVS UykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUK LSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJD RVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJ c2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRl IC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0t LWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNs dWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3Qg IiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIv VEFHUyB8fCBcCi0rCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRz dWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykg JChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGlu ICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxz ZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sg ZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25l bXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsgXAot KwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAot KwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBpZiB0 ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1f RVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCi0r CSAgZWxzZSBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykg JChFVEFHU19BUkdTKSBcCi0rCSAgICAgICQkdW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkKLStj dGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VT KSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1 bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhl biBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwK LSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAg IEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsg XAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAk KENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1 bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBw d2RgIFwKLSsJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkg JChHVEFHU19BUkdTKSAiJCRoZXJlIgotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFH UyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJ TEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxc Kl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8 IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsg XAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRv bmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUg InN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQk ZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMi IHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8 IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0 X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRo ZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmls ZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQk LCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJ ICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVj IGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNy Y2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNw IC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJ ICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVj IGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRm aWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVz dCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQo ZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25l Ci0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAot KwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1k ICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIp LyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBs aXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlm IHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICBkaXIxPSQkc3ViZGly OyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7 IFwKLSsJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBk aXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAg ICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGly IiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKLSsJICAgIGVjaG8gIiAgICAgYW1fX3Jl bW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9 OiBkaXN0ZGlyKSI7IFwKLSsJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAotKwkgICAgICAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3Rv cF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAotKwkJYW1f X3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkJYW1f X3NraXBfbW9kZV9maXg9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0 IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVj ay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJz LXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFtOgotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZl Ci0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBp bnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0r Ci0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxs LWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2st cmVjdXJzaXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5T VEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3No X1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1z IFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJP R1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2Vu ZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVz dCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxF UykKLSsJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQ QVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCi0rCi0rbWFp bnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVk IGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQg bWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJ TlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2Ns ZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1s aWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZl Ci0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdl bmVyaWMgZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06 Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStodG1sLWFtOgotKwotK2luZm86IGluZm8t cmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFs bC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2lu c3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUK LSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVj dXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3Rh bGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStp bnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0r aW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4t cmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3Rj bGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5 Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMg bW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToK LSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwot Ky5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBj dGFncy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNp dmUKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RB UkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBj bGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlz dGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFu LXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBp bnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3Rh bGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBp bnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5m by1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCi0rCWluc3RhbGwt cHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCi0rCWluc3RhbGxj aGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJ bWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMg XAotKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJl Y3Vyc2l2ZSBcCi0rCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rCi0r I3BrZ2RhdGFkaXIgPSAkKGh0bWxfYmNrX3NvdXJjZXMpCi0rCi0rIyBUZWxsIHZlcnNpb25zIFsz LjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90 aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRl ZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL2JhY2tlbmRz L3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9zb3VyY2VzLm1rCi0t LS0gc29jaS0zLjAuMF80LXBhY2svZG9jL2JhY2tlbmRzL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL2JhY2tl bmRzL3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTo0Nzo1My4wMDAwMDAwMDAgKzAyMDAKLUBAIC0w LDAgKzEsNyBAQAotK2h0bWxfYmNrX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5k cy9pbmRleC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvZmlyZWJpcmQuaHRt bCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL215c3FsLmh0bWwgXAotKwkkKHRvcF9z cmNkaXIpL2RvYy9iYWNrZW5kcy9vZGJjLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNr ZW5kcy9vcmFjbGUuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL3Bvc3RncmVz cWwuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL3NxbGl0ZTMuaHRtbAotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAz MDAvZG9jL01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svZG9jL01ha2VmaWxlLmFt CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVw MzAwL2RvYy9NYWtlZmlsZS5hbQkyMDEwLTAxLTIzIDEzOjI1OjU3LjAwMDAwMDAwMCArMDEwMAot QEAgLTAsMCArMSw4IEBACi0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL2RvYy9zb3VyY2VzLm1rCi0r Ci0rU1VCRElSUyA9IGJhY2tlbmRzCi0rCi0rRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklM SVRZID0gJChodG1sX2xvY2FsX3NvdXJjZXMpIFwKLSsJJChjc3NfbG9jYWxfc291cmNlcykgJChp bWdfbG9jYWxfc291cmNlcykKLSsKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJ X0NPTVBBVElCSUxJVFkpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL01ha2VmaWxl LmluIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQt cGFjay9kb2MvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6 NTEuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDYzMiBAQAotKyMgTWFrZWZpbGUuaW4gZ2Vu ZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3Vy ZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5 OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw MDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRo aXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJp YnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRo aXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBAc3Jj ZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIg PSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FH RUAKLStwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBD RFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFs bF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0g PSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1j Ci0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dy YW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6 Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFM TCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hv c3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFt ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3NvdXJjZXMubWsK LStzdWJkaXIgPSBkb2MKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0r YW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdy ZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRp b25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9i c29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBz ID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJ JChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklH X0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJ TEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09V UkNFUyA9Ci0rUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2 ZSBkdmktcmVjdXJzaXZlIFwKLSsJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFs bC1kYXRhLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMt cmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJz aXZlIFwKLSsJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3Rh bGwtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1 cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZl Ci0rUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4t cmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1 cnNpdmUKLStBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vy c2l2ZT0pIFwKLSsJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBU QUdTIGN0YWdzIENUQUdTIFwKLSsJZGlzdGRpcgotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0 YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01N T04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rYW1fX3JlbGF0 aXZpemUgPSBcCi0rICBkaXIwPWBwd2RgOyBcCi0rICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8u KiQkLFwxLCc7IFwKLSsgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCi0rICBzZWRfbGFzdD0n cyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAotKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwn OyBcCi0rICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCi0rICAgIGZpcnN0PWBlY2hvICIk JGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgIGlmIHRlc3QgIiQkZmlyc3Qi ICE9ICIuIjsgdGhlbiBcCi0rICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwK LSsgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRk aXIyIjsgXAotKyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0 bGFzdCJgOyBcCi0rICAgICAgZWxzZSBcCi0rICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIg fCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9 ICIkJGZpcnN0IjsgdGhlbiBcCi0rICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQg LWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgICAgICAgZWxzZSBcCi0rICAgICAgICAgIGRpcjI9Ii4u LyQkZGlyMiI7IFwKLSsgICAgICAgIGZpOyBcCi0rICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZp cnN0IjsgXAotKyAgICAgIGZpOyBcCi0rICAgIGZpOyBcCi0rICAgIGRpcjE9YGVjaG8gIiQkZGly MSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgZG9uZTsgXAotKyAgcmVsZGlyPSIkJGRp cjIiCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAot K0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRP TUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9D RkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JP T1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RS RUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJ QlNACi0rQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAotK0JPT1NUX01QSV9QWVRIT05f TElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIg PSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9QWVRIT05fTElCID0gQEJPT1NU X1BZVEhPTl9MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09T VF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9T SUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9TWVNURU1fTElCID0gQEJP T1NUX1NZU1RFTV9MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAot K0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdP UktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFM SVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0ND REVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAot K0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdT QAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBD UFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFgg PSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAot K0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9 IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVN UEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAK LStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRA Ci0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19M SUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJ TlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxM X1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9T VFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZM QUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStM SUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJ Qk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBA TUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElCID0g QE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJTID0g QE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5N QAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBP QkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1Mg PSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lf TERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09U T09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VA Ci0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1F ID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQ QUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQ QUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVS TCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1Mg PSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElS U0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVT UUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStS UE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNF VF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9I RUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxf SEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lf UE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09N TUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxk ZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3Rv cF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190 b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9D WFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFt X19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1 b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFt X191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2Fs aWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3Mg PSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9 IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJv b3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdl bl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZp cHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0r aG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBo b3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5k b3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStp bmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29r ID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVj ZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0 YXRlZGlyQAotK2x0X0VDSE8gPSBAbHRfRUNIT0AKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGly X3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGly ID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUg PSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0g QHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRz dGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAK LSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9w X2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNk aXIgPSBAdG9wX3NyY2RpckAKLStodG1sX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2Rv Yy9iYWNrZW5kcy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFzaWNzLmh0bWwgXAotKwkk KHRvcF9zcmNkaXIpL2RvYy9iZXlvbmQuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2Jvb3N0 Lmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9lcnJvcnMuaHRtbCBcCi0rCSQodG9wX3NyY2Rp cikvZG9jL2V4Y2hhbmdlLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9pbmRleC5odG1sIFwK LSsJJCh0b3Bfc3JjZGlyKS9kb2MvaW50ZXJmYWNlcy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9k b2MvbXVsdGl0aHJlYWRpbmcuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3JhdGlvbmFsZS5o dG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvcmVmZXJlbmNlLmh0bWwgXAotKwkkKHRvcF9zcmNk aXIpL2RvYy9zdGF0ZW1lbnRzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUu aHRtbAotKwotK2Nzc19sb2NhbF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mvc3R5bGUuY3Nz Ci0raW1nX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUucG5nCi0r U1VCRElSUyA9IGJhY2tlbmRzCi0rRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0g JChodG1sX2xvY2FsX3NvdXJjZXMpIFwKLSsJJChjc3NfbG9jYWxfc291cmNlcykgJChpbWdfbG9j YWxfc291cmNlcykKLSsKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBB VElCSUxJVFkpCi0rYWxsOiBhbGwtcmVjdXJzaXZlCi0rCi0rLlNVRkZJWEVTOgotKyQoc3JjZGly KS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL2RvYy9z b3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAot KwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAot KwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAw OyBlbHNlIGJyZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAot Kwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251 IGRvYy9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQo QVVUT01BS0UpIC0tZ251IGRvYy9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtl ZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVz Ci0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAot KwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9j b25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAg ICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGly KS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRk aXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRV U19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9f Y29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2Rl cHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaAotKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0rCi0rbW9zdGx5Y2xlYW4tbGlidG9v bDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9s aWJzCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5k ZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0 IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9m IGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkg aWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5z dGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdl bmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhl IGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZF X1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQk TUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7 OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRv bmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vy c2l2ZS8vYDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRv IFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAg bG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3Rh cmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAk JGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRo ZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAx OyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VU Uyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxB R1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJ ICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAot Kwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFp bnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0 PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwK LSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwly ZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7 IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdl dCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAot KwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxv Y2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3Vi ZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwg ZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1 cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAot KwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIk JHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQo TElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBU QUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRB R1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwK LSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lv bikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWlu Y2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlv bj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VC RElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBc Ci0rCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFH UyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0 IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3Qg LW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAt Z3QgMDsgdGhlbiBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFH UykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBc Ci0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19B UkdTKSBcCi0rCSAgICAgICQkdW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczogQ1RB R1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdT X0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCWxpc3Q9JyQoU09V UkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZv ciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQk aTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFX SykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlm IChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0 IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxB R1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1bmlxdWUKLSsK LStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJ ICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19B UkdTKSAiJCRoZXJlIgotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFH UyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlA c3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYv ZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9b XS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRp c3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0r CSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9w c3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxl cyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJ CSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkg ICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBk byBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBl bHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBc Ci0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAot KwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmlu ZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUr cnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRm aWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChz cmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmlu ZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUr cnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRp c3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChk aXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikv JCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0 PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3Rk aXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGly IiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJ U1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQk c3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIk KGRpc3RkaXIpLyQkc3ViZGlyIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAg IG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRv cF9kaXN0ZGlyKSI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfdG9w X2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGly PSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKLSsJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0 ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGly KSI7IFwKLSsJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGly IiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAotKwkJYW1fX3JlbW92ZV9k aXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkJYW1fX3NraXBfbW9k ZV9maXg9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJ ICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNp dmUKLSthbGwtYW06IE1ha2VmaWxlCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2 ZQotK2luc3RhbGxkaXJzLWFtOgotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFs bC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRh dGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFs bC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0g aW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZl Ci0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9H UkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09 IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBg dGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9 U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsK LStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChD T05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJLXRl c3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVT KSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWlu dGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVp cmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0r Ci0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQot KwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLStk aXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCi0r Ci0rZHZpOiBkdmktcmVjdXJzaXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJz aXZlCi0rCi0raHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06 Ci0rCi0raW5zdGFsbC1kYXRhLWFtOgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1 cnNpdmUKLSsKLStpbnN0YWxsLWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5z dGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1odG1sLWFtOgot KwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaW5m by1hbToKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVj dXJzaXZlCi0rCi0raW5zdGFsbC1wZGYtYW06Ci0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1y ZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBzLWFtOgotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLStt YWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFr ZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVh bi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21v c3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsK LStwZGY6IHBkZi1yZWN1cnNpdmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQot KwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbToKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJaW5z dGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZlCi0rCi0rLlBIT05ZOiAkKFJFQ1VS U0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0r CWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0 b29sIFwKLSsJY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJp YyBcCi0rCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1h bSBodG1sIFwKLSsJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3Rh bGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBp bnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRt bC1hbSBpbnN0YWxsLWluZm8gXAotKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFs bC1wZGYgaW5zdGFsbC1wZGYtYW0gXAotKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFs bC1zdHJpcCBpbnN0YWxsY2hlY2sgXAotKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5z dGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJp YyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9v bCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAotKwl1bmluc3RhbGwg dW5pbnN0YWxsLWFtCi0rCi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBt YWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBs aW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVw MzAwL2RvYy9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2svZG9jL3NvdXJjZXMubWsJ MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAz MDAvZG9jL3NvdXJjZXMubWsJMjAxMC0wMS0yMyAxMzoyNTo1Ny4wMDAwMDAwMDAgKzAxMDAKLUBA IC0wLDAgKzEsMTggQEAKLStodG1sX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9i YWNrZW5kcy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFzaWNzLmh0bWwgXAotKwkkKHRv cF9zcmNkaXIpL2RvYy9iZXlvbmQuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2Jvb3N0Lmh0 bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9lcnJvcnMuaHRtbCBcCi0rCSQodG9wX3NyY2Rpcikv ZG9jL2V4Y2hhbmdlLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9pbmRleC5odG1sIFwKLSsJ JCh0b3Bfc3JjZGlyKS9kb2MvaW50ZXJmYWNlcy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2Mv bXVsdGl0aHJlYWRpbmcuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3JhdGlvbmFsZS5odG1s IFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvcmVmZXJlbmNlLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIp L2RvYy9zdGF0ZW1lbnRzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUuaHRt bAotKwotK2Nzc19sb2NhbF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mvc3R5bGUuY3NzCi0r Ci0raW1nX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUucG5nCi0r Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svSU5TVEFMTCBzb2NpLTMuMC4wX3RyZXAzMDAv SU5TVEFMTAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL0lOU1RBTEwJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvSU5TVEFMTAkyMDEwLTAx LTIzIDE0OjQ0OjUyLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSwzNjUgQEAKLStJbnN0YWxs YXRpb24gSW5zdHJ1Y3Rpb25zCi0rKioqKioqKioqKioqKioqKioqKioqKioqKgotKwotK0NvcHly aWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwNCwg MjAwNSwKLSsyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgotKwotKyAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpbGUsIHdpdGgg b3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi0rYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdp dGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0Ci0rbm90aWNlIGFuZCB0aGlzIG5v dGljZSBhcmUgcHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIG9mZmVyZWQgYXMtaXMsCi0rd2l0aG91 dCB3YXJyYW50eSBvZiBhbnkga2luZC4KLSsKLStCYXNpYyBJbnN0YWxsYXRpb24KLSs9PT09PT09 PT09PT09PT09PT0KLSsKLSsgICBCcmllZmx5LCB0aGUgc2hlbGwgY29tbWFuZHMgYC4vY29uZmln dXJlOyBtYWtlOyBtYWtlIGluc3RhbGwnIHNob3VsZAotK2NvbmZpZ3VyZSwgYnVpbGQsIGFuZCBp bnN0YWxsIHRoaXMgcGFja2FnZS4gIFRoZSBmb2xsb3dpbmcKLSttb3JlLWRldGFpbGVkIGluc3Ry dWN0aW9ucyBhcmUgZ2VuZXJpYzsgc2VlIHRoZSBgUkVBRE1FJyBmaWxlIGZvcgotK2luc3RydWN0 aW9ucyBzcGVjaWZpYyB0byB0aGlzIHBhY2thZ2UuICBTb21lIHBhY2thZ2VzIHByb3ZpZGUgdGhp cwotK2BJTlNUQUxMJyBmaWxlIGJ1dCBkbyBub3QgaW1wbGVtZW50IGFsbCBvZiB0aGUgZmVhdHVy ZXMgZG9jdW1lbnRlZAotK2JlbG93LiAgVGhlIGxhY2sgb2YgYW4gb3B0aW9uYWwgZmVhdHVyZSBp biBhIGdpdmVuIHBhY2thZ2UgaXMgbm90Ci0rbmVjZXNzYXJpbHkgYSBidWcuICBNb3JlIHJlY29t bWVuZGF0aW9ucyBmb3IgR05VIHBhY2thZ2VzIGNhbiBiZSBmb3VuZAotK2luICpub3RlIE1ha2Vm aWxlIENvbnZlbnRpb25zOiAoc3RhbmRhcmRzKU1ha2VmaWxlIENvbnZlbnRpb25zLgotKwotKyAg IFRoZSBgY29uZmlndXJlJyBzaGVsbCBzY3JpcHQgYXR0ZW1wdHMgdG8gZ3Vlc3MgY29ycmVjdCB2 YWx1ZXMgZm9yCi0rdmFyaW91cyBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxlcyB1c2VkIGR1cmlu ZyBjb21waWxhdGlvbi4gIEl0IHVzZXMKLSt0aG9zZSB2YWx1ZXMgdG8gY3JlYXRlIGEgYE1ha2Vm aWxlJyBpbiBlYWNoIGRpcmVjdG9yeSBvZiB0aGUgcGFja2FnZS4KLStJdCBtYXkgYWxzbyBjcmVh dGUgb25lIG9yIG1vcmUgYC5oJyBmaWxlcyBjb250YWluaW5nIHN5c3RlbS1kZXBlbmRlbnQKLStk ZWZpbml0aW9ucy4gIEZpbmFsbHksIGl0IGNyZWF0ZXMgYSBzaGVsbCBzY3JpcHQgYGNvbmZpZy5z dGF0dXMnIHRoYXQKLSt5b3UgY2FuIHJ1biBpbiB0aGUgZnV0dXJlIHRvIHJlY3JlYXRlIHRoZSBj dXJyZW50IGNvbmZpZ3VyYXRpb24sIGFuZCBhCi0rZmlsZSBgY29uZmlnLmxvZycgY29udGFpbmlu ZyBjb21waWxlciBvdXRwdXQgKHVzZWZ1bCBtYWlubHkgZm9yCi0rZGVidWdnaW5nIGBjb25maWd1 cmUnKS4KLSsKLSsgICBJdCBjYW4gYWxzbyB1c2UgYW4gb3B0aW9uYWwgZmlsZSAodHlwaWNhbGx5 IGNhbGxlZCBgY29uZmlnLmNhY2hlJwotK2FuZCBlbmFibGVkIHdpdGggYC0tY2FjaGUtZmlsZT1j b25maWcuY2FjaGUnIG9yIHNpbXBseSBgLUMnKSB0aGF0IHNhdmVzCi0rdGhlIHJlc3VsdHMgb2Yg aXRzIHRlc3RzIHRvIHNwZWVkIHVwIHJlY29uZmlndXJpbmcuICBDYWNoaW5nIGlzCi0rZGlzYWJs ZWQgYnkgZGVmYXVsdCB0byBwcmV2ZW50IHByb2JsZW1zIHdpdGggYWNjaWRlbnRhbCB1c2Ugb2Yg c3RhbGUKLStjYWNoZSBmaWxlcy4KLSsKLSsgICBJZiB5b3UgbmVlZCB0byBkbyB1bnVzdWFsIHRo aW5ncyB0byBjb21waWxlIHRoZSBwYWNrYWdlLCBwbGVhc2UgdHJ5Ci0rdG8gZmlndXJlIG91dCBo b3cgYGNvbmZpZ3VyZScgY291bGQgY2hlY2sgd2hldGhlciB0byBkbyB0aGVtLCBhbmQgbWFpbAot K2RpZmZzIG9yIGluc3RydWN0aW9ucyB0byB0aGUgYWRkcmVzcyBnaXZlbiBpbiB0aGUgYFJFQURN RScgc28gdGhleSBjYW4KLStiZSBjb25zaWRlcmVkIGZvciB0aGUgbmV4dCByZWxlYXNlLiAgSWYg eW91IGFyZSB1c2luZyB0aGUgY2FjaGUsIGFuZCBhdAotK3NvbWUgcG9pbnQgYGNvbmZpZy5jYWNo ZScgY29udGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3Qgd2FudCB0byBrZWVwLCB5b3UKLSttYXkgcmVt b3ZlIG9yIGVkaXQgaXQuCi0rCi0rICAgVGhlIGZpbGUgYGNvbmZpZ3VyZS5hYycgKG9yIGBjb25m aWd1cmUuaW4nKSBpcyB1c2VkIHRvIGNyZWF0ZQotK2Bjb25maWd1cmUnIGJ5IGEgcHJvZ3JhbSBj YWxsZWQgYGF1dG9jb25mJy4gIFlvdSBuZWVkIGBjb25maWd1cmUuYWMnIGlmCi0reW91IHdhbnQg dG8gY2hhbmdlIGl0IG9yIHJlZ2VuZXJhdGUgYGNvbmZpZ3VyZScgdXNpbmcgYSBuZXdlciB2ZXJz aW9uCi0rb2YgYGF1dG9jb25mJy4KLSsKLSsgICBUaGUgc2ltcGxlc3Qgd2F5IHRvIGNvbXBpbGUg dGhpcyBwYWNrYWdlIGlzOgotKwotKyAgMS4gYGNkJyB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5p bmcgdGhlIHBhY2thZ2UncyBzb3VyY2UgY29kZSBhbmQgdHlwZQotKyAgICAgYC4vY29uZmlndXJl JyB0byBjb25maWd1cmUgdGhlIHBhY2thZ2UgZm9yIHlvdXIgc3lzdGVtLgotKwotKyAgICAgUnVu bmluZyBgY29uZmlndXJlJyBtaWdodCB0YWtlIGEgd2hpbGUuICBXaGlsZSBydW5uaW5nLCBpdCBw cmludHMKLSsgICAgIHNvbWUgbWVzc2FnZXMgdGVsbGluZyB3aGljaCBmZWF0dXJlcyBpdCBpcyBj aGVja2luZyBmb3IuCi0rCi0rICAyLiBUeXBlIGBtYWtlJyB0byBjb21waWxlIHRoZSBwYWNrYWdl LgotKwotKyAgMy4gT3B0aW9uYWxseSwgdHlwZSBgbWFrZSBjaGVjaycgdG8gcnVuIGFueSBzZWxm LXRlc3RzIHRoYXQgY29tZSB3aXRoCi0rICAgICB0aGUgcGFja2FnZSwgZ2VuZXJhbGx5IHVzaW5n IHRoZSBqdXN0LWJ1aWx0IHVuaW5zdGFsbGVkIGJpbmFyaWVzLgotKwotKyAgNC4gVHlwZSBgbWFr ZSBpbnN0YWxsJyB0byBpbnN0YWxsIHRoZSBwcm9ncmFtcyBhbmQgYW55IGRhdGEgZmlsZXMgYW5k Ci0rICAgICBkb2N1bWVudGF0aW9uLiAgV2hlbiBpbnN0YWxsaW5nIGludG8gYSBwcmVmaXggb3du ZWQgYnkgcm9vdCwgaXQgaXMKLSsgICAgIHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhY2thZ2UgYmUg Y29uZmlndXJlZCBhbmQgYnVpbHQgYXMgYSByZWd1bGFyCi0rICAgICB1c2VyLCBhbmQgb25seSB0 aGUgYG1ha2UgaW5zdGFsbCcgcGhhc2UgZXhlY3V0ZWQgd2l0aCByb290Ci0rICAgICBwcml2aWxl Z2VzLgotKwotKyAgNS4gT3B0aW9uYWxseSwgdHlwZSBgbWFrZSBpbnN0YWxsY2hlY2snIHRvIHJl cGVhdCBhbnkgc2VsZi10ZXN0cywgYnV0Ci0rICAgICB0aGlzIHRpbWUgdXNpbmcgdGhlIGJpbmFy aWVzIGluIHRoZWlyIGZpbmFsIGluc3RhbGxlZCBsb2NhdGlvbi4KLSsgICAgIFRoaXMgdGFyZ2V0 IGRvZXMgbm90IGluc3RhbGwgYW55dGhpbmcuICBSdW5uaW5nIHRoaXMgdGFyZ2V0IGFzIGEKLSsg ICAgIHJlZ3VsYXIgdXNlciwgcGFydGljdWxhcmx5IGlmIHRoZSBwcmlvciBgbWFrZSBpbnN0YWxs JyByZXF1aXJlZAotKyAgICAgcm9vdCBwcml2aWxlZ2VzLCB2ZXJpZmllcyB0aGF0IHRoZSBpbnN0 YWxsYXRpb24gY29tcGxldGVkCi0rICAgICBjb3JyZWN0bHkuCi0rCi0rICA2LiBZb3UgY2FuIHJl bW92ZSB0aGUgcHJvZ3JhbSBiaW5hcmllcyBhbmQgb2JqZWN0IGZpbGVzIGZyb20gdGhlCi0rICAg ICBzb3VyY2UgY29kZSBkaXJlY3RvcnkgYnkgdHlwaW5nIGBtYWtlIGNsZWFuJy4gIFRvIGFsc28g cmVtb3ZlIHRoZQotKyAgICAgZmlsZXMgdGhhdCBgY29uZmlndXJlJyBjcmVhdGVkIChzbyB5b3Ug Y2FuIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9yCi0rICAgICBhIGRpZmZlcmVudCBraW5kIG9mIGNv bXB1dGVyKSwgdHlwZSBgbWFrZSBkaXN0Y2xlYW4nLiAgVGhlcmUgaXMKLSsgICAgIGFsc28gYSBg bWFrZSBtYWludGFpbmVyLWNsZWFuJyB0YXJnZXQsIGJ1dCB0aGF0IGlzIGludGVuZGVkIG1haW5s eQotKyAgICAgZm9yIHRoZSBwYWNrYWdlJ3MgZGV2ZWxvcGVycy4gIElmIHlvdSB1c2UgaXQsIHlv dSBtYXkgaGF2ZSB0byBnZXQKLSsgICAgIGFsbCBzb3J0cyBvZiBvdGhlciBwcm9ncmFtcyBpbiBv cmRlciB0byByZWdlbmVyYXRlIGZpbGVzIHRoYXQgY2FtZQotKyAgICAgd2l0aCB0aGUgZGlzdHJp YnV0aW9uLgotKwotKyAgNy4gT2Z0ZW4sIHlvdSBjYW4gYWxzbyB0eXBlIGBtYWtlIHVuaW5zdGFs bCcgdG8gcmVtb3ZlIHRoZSBpbnN0YWxsZWQKLSsgICAgIGZpbGVzIGFnYWluLiAgSW4gcHJhY3Rp Y2UsIG5vdCBhbGwgcGFja2FnZXMgaGF2ZSB0ZXN0ZWQgdGhhdAotKyAgICAgdW5pbnN0YWxsYXRp b24gd29ya3MgY29ycmVjdGx5LCBldmVuIHRob3VnaCBpdCBpcyByZXF1aXJlZCBieSB0aGUKLSsg ICAgIEdOVSBDb2RpbmcgU3RhbmRhcmRzLgotKwotKyAgOC4gU29tZSBwYWNrYWdlcywgcGFydGlj dWxhcmx5IHRob3NlIHRoYXQgdXNlIEF1dG9tYWtlLCBwcm92aWRlIGBtYWtlCi0rICAgICBkaXN0 Y2hlY2snLCB3aGljaCBjYW4gYnkgdXNlZCBieSBkZXZlbG9wZXJzIHRvIHRlc3QgdGhhdCBhbGwg b3RoZXIKLSsgICAgIHRhcmdldHMgbGlrZSBgbWFrZSBpbnN0YWxsJyBhbmQgYG1ha2UgdW5pbnN0 YWxsJyB3b3JrIGNvcnJlY3RseS4KLSsgICAgIFRoaXMgdGFyZ2V0IGlzIGdlbmVyYWxseSBub3Qg cnVuIGJ5IGVuZCB1c2Vycy4KLSsKLStDb21waWxlcnMgYW5kIE9wdGlvbnMKLSs9PT09PT09PT09 PT09PT09PT09PT0KLSsKLSsgICBTb21lIHN5c3RlbXMgcmVxdWlyZSB1bnVzdWFsIG9wdGlvbnMg Zm9yIGNvbXBpbGF0aW9uIG9yIGxpbmtpbmcgdGhhdAotK3RoZSBgY29uZmlndXJlJyBzY3JpcHQg ZG9lcyBub3Qga25vdyBhYm91dC4gIFJ1biBgLi9jb25maWd1cmUgLS1oZWxwJwotK2ZvciBkZXRh aWxzIG9uIHNvbWUgb2YgdGhlIHBlcnRpbmVudCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCi0rCi0r ICAgWW91IGNhbiBnaXZlIGBjb25maWd1cmUnIGluaXRpYWwgdmFsdWVzIGZvciBjb25maWd1cmF0 aW9uIHBhcmFtZXRlcnMKLStieSBzZXR0aW5nIHZhcmlhYmxlcyBpbiB0aGUgY29tbWFuZCBsaW5l IG9yIGluIHRoZSBlbnZpcm9ubWVudC4gIEhlcmUKLStpcyBhbiBleGFtcGxlOgotKwotKyAgICAg Li9jb25maWd1cmUgQ0M9Yzk5IENGTEFHUz0tZyBMSUJTPS1scG9zaXgKLSsKLSsgICAqTm90ZSBE ZWZpbmluZyBWYXJpYWJsZXM6OiwgZm9yIG1vcmUgZGV0YWlscy4KLSsKLStDb21waWxpbmcgRm9y IE11bHRpcGxlIEFyY2hpdGVjdHVyZXMKLSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLSsKLSsgICBZb3UgY2FuIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9yIG1vcmUgdGhhbiBv bmUga2luZCBvZiBjb21wdXRlciBhdCB0aGUKLStzYW1lIHRpbWUsIGJ5IHBsYWNpbmcgdGhlIG9i amVjdCBmaWxlcyBmb3IgZWFjaCBhcmNoaXRlY3R1cmUgaW4gdGhlaXIKLStvd24gZGlyZWN0b3J5 LiAgVG8gZG8gdGhpcywgeW91IGNhbiB1c2UgR05VIGBtYWtlJy4gIGBjZCcgdG8gdGhlCi0rZGly ZWN0b3J5IHdoZXJlIHlvdSB3YW50IHRoZSBvYmplY3QgZmlsZXMgYW5kIGV4ZWN1dGFibGVzIHRv IGdvIGFuZCBydW4KLSt0aGUgYGNvbmZpZ3VyZScgc2NyaXB0LiAgYGNvbmZpZ3VyZScgYXV0b21h dGljYWxseSBjaGVja3MgZm9yIHRoZQotK3NvdXJjZSBjb2RlIGluIHRoZSBkaXJlY3RvcnkgdGhh dCBgY29uZmlndXJlJyBpcyBpbiBhbmQgaW4gYC4uJy4gIFRoaXMKLStpcyBrbm93biBhcyBhICJW UEFUSCIgYnVpbGQuCi0rCi0rICAgV2l0aCBhIG5vbi1HTlUgYG1ha2UnLCBpdCBpcyBzYWZlciB0 byBjb21waWxlIHRoZSBwYWNrYWdlIGZvciBvbmUKLSthcmNoaXRlY3R1cmUgYXQgYSB0aW1lIGlu IHRoZSBzb3VyY2UgY29kZSBkaXJlY3RvcnkuICBBZnRlciB5b3UgaGF2ZQotK2luc3RhbGxlZCB0 aGUgcGFja2FnZSBmb3Igb25lIGFyY2hpdGVjdHVyZSwgdXNlIGBtYWtlIGRpc3RjbGVhbicgYmVm b3JlCi0rcmVjb25maWd1cmluZyBmb3IgYW5vdGhlciBhcmNoaXRlY3R1cmUuCi0rCi0rICAgT24g TWFjT1MgWCAxMC41IGFuZCBsYXRlciBzeXN0ZW1zLCB5b3UgY2FuIGNyZWF0ZSBsaWJyYXJpZXMg YW5kCi0rZXhlY3V0YWJsZXMgdGhhdCB3b3JrIG9uIG11bHRpcGxlIHN5c3RlbSB0eXBlcy0ta25v d24gYXMgImZhdCIgb3IKLSsidW5pdmVyc2FsIiBiaW5hcmllcy0tYnkgc3BlY2lmeWluZyBtdWx0 aXBsZSBgLWFyY2gnIG9wdGlvbnMgdG8gdGhlCi0rY29tcGlsZXIgYnV0IG9ubHkgYSBzaW5nbGUg YC1hcmNoJyBvcHRpb24gdG8gdGhlIHByZXByb2Nlc3Nvci4gIExpa2UKLSt0aGlzOgotKwotKyAg ICAgLi9jb25maWd1cmUgQ0M9ImdjYyAtYXJjaCBpMzg2IC1hcmNoIHg4Nl82NCAtYXJjaCBwcGMg LWFyY2ggcHBjNjQiIFwKLSsgICAgICAgICAgICAgICAgIENYWD0iZysrIC1hcmNoIGkzODYgLWFy Y2ggeDg2XzY0IC1hcmNoIHBwYyAtYXJjaCBwcGM2NCIgXAotKyAgICAgICAgICAgICAgICAgQ1BQ PSJnY2MgLUUiIENYWENQUD0iZysrIC1FIgotKwotKyAgIFRoaXMgaXMgbm90IGd1YXJhbnRlZWQg dG8gcHJvZHVjZSB3b3JraW5nIG91dHB1dCBpbiBhbGwgY2FzZXMsIHlvdQotK21heSBoYXZlIHRv IGJ1aWxkIG9uZSBhcmNoaXRlY3R1cmUgYXQgYSB0aW1lIGFuZCBjb21iaW5lIHRoZSByZXN1bHRz Ci0rdXNpbmcgdGhlIGBsaXBvJyB0b29sIGlmIHlvdSBoYXZlIHByb2JsZW1zLgotKwotK0luc3Rh bGxhdGlvbiBOYW1lcwotKz09PT09PT09PT09PT09PT09PQotKwotKyAgIEJ5IGRlZmF1bHQsIGBt YWtlIGluc3RhbGwnIGluc3RhbGxzIHRoZSBwYWNrYWdlJ3MgY29tbWFuZHMgdW5kZXIKLStgL3Vz ci9sb2NhbC9iaW4nLCBpbmNsdWRlIGZpbGVzIHVuZGVyIGAvdXNyL2xvY2FsL2luY2x1ZGUnLCBl dGMuICBZb3UKLStjYW4gc3BlY2lmeSBhbiBpbnN0YWxsYXRpb24gcHJlZml4IG90aGVyIHRoYW4g YC91c3IvbG9jYWwnIGJ5IGdpdmluZwotK2Bjb25maWd1cmUnIHRoZSBvcHRpb24gYC0tcHJlZml4 PVBSRUZJWCcsIHdoZXJlIFBSRUZJWCBtdXN0IGJlIGFuCi0rYWJzb2x1dGUgZmlsZSBuYW1lLgot KwotKyAgIFlvdSBjYW4gc3BlY2lmeSBzZXBhcmF0ZSBpbnN0YWxsYXRpb24gcHJlZml4ZXMgZm9y Ci0rYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGZpbGVzIGFuZCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRl bnQgZmlsZXMuICBJZiB5b3UKLStwYXNzIHRoZSBvcHRpb24gYC0tZXhlYy1wcmVmaXg9UFJFRklY JyB0byBgY29uZmlndXJlJywgdGhlIHBhY2thZ2UgdXNlcwotK1BSRUZJWCBhcyB0aGUgcHJlZml4 IGZvciBpbnN0YWxsaW5nIHByb2dyYW1zIGFuZCBsaWJyYXJpZXMuCi0rRG9jdW1lbnRhdGlvbiBh bmQgb3RoZXIgZGF0YSBmaWxlcyBzdGlsbCB1c2UgdGhlIHJlZ3VsYXIgcHJlZml4LgotKwotKyAg IEluIGFkZGl0aW9uLCBpZiB5b3UgdXNlIGFuIHVudXN1YWwgZGlyZWN0b3J5IGxheW91dCB5b3Ug Y2FuIGdpdmUKLStvcHRpb25zIGxpa2UgYC0tYmluZGlyPURJUicgdG8gc3BlY2lmeSBkaWZmZXJl bnQgdmFsdWVzIGZvciBwYXJ0aWN1bGFyCi0ra2luZHMgb2YgZmlsZXMuICBSdW4gYGNvbmZpZ3Vy ZSAtLWhlbHAnIGZvciBhIGxpc3Qgb2YgdGhlIGRpcmVjdG9yaWVzCi0reW91IGNhbiBzZXQgYW5k IHdoYXQga2luZHMgb2YgZmlsZXMgZ28gaW4gdGhlbS4gIEluIGdlbmVyYWwsIHRoZQotK2RlZmF1 bHQgZm9yIHRoZXNlIG9wdGlvbnMgaXMgZXhwcmVzc2VkIGluIHRlcm1zIG9mIGAke3ByZWZpeH0n LCBzbyB0aGF0Ci0rc3BlY2lmeWluZyBqdXN0IGAtLXByZWZpeCcgd2lsbCBhZmZlY3QgYWxsIG9m IHRoZSBvdGhlciBkaXJlY3RvcnkKLStzcGVjaWZpY2F0aW9ucyB0aGF0IHdlcmUgbm90IGV4cGxp Y2l0bHkgcHJvdmlkZWQuCi0rCi0rICAgVGhlIG1vc3QgcG9ydGFibGUgd2F5IHRvIGFmZmVjdCBp bnN0YWxsYXRpb24gbG9jYXRpb25zIGlzIHRvIHBhc3MgdGhlCi0rY29ycmVjdCBsb2NhdGlvbnMg dG8gYGNvbmZpZ3VyZSc7IGhvd2V2ZXIsIG1hbnkgcGFja2FnZXMgcHJvdmlkZSBvbmUgb3IKLSti b3RoIG9mIHRoZSBmb2xsb3dpbmcgc2hvcnRjdXRzIG9mIHBhc3NpbmcgdmFyaWFibGUgYXNzaWdu bWVudHMgdG8gdGhlCi0rYG1ha2UgaW5zdGFsbCcgY29tbWFuZCBsaW5lIHRvIGNoYW5nZSBpbnN0 YWxsYXRpb24gbG9jYXRpb25zIHdpdGhvdXQKLStoYXZpbmcgdG8gcmVjb25maWd1cmUgb3IgcmVj b21waWxlLgotKwotKyAgIFRoZSBmaXJzdCBtZXRob2QgaW52b2x2ZXMgcHJvdmlkaW5nIGFuIG92 ZXJyaWRlIHZhcmlhYmxlIGZvciBlYWNoCi0rYWZmZWN0ZWQgZGlyZWN0b3J5LiAgRm9yIGV4YW1w bGUsIGBtYWtlIGluc3RhbGwKLStwcmVmaXg9L2FsdGVybmF0ZS9kaXJlY3RvcnknIHdpbGwgY2hv b3NlIGFuIGFsdGVybmF0ZSBsb2NhdGlvbiBmb3IgYWxsCi0rZGlyZWN0b3J5IGNvbmZpZ3VyYXRp b24gdmFyaWFibGVzIHRoYXQgd2VyZSBleHByZXNzZWQgaW4gdGVybXMgb2YKLStgJHtwcmVmaXh9 Jy4gIEFueSBkaXJlY3RvcmllcyB0aGF0IHdlcmUgc3BlY2lmaWVkIGR1cmluZyBgY29uZmlndXJl JywKLStidXQgbm90IGluIHRlcm1zIG9mIGAke3ByZWZpeH0nLCBtdXN0IGVhY2ggYmUgb3ZlcnJp ZGRlbiBhdCBpbnN0YWxsCi0rdGltZSBmb3IgdGhlIGVudGlyZSBpbnN0YWxsYXRpb24gdG8gYmUg cmVsb2NhdGVkLiAgVGhlIGFwcHJvYWNoIG9mCi0rbWFrZWZpbGUgdmFyaWFibGUgb3ZlcnJpZGVz IGZvciBlYWNoIGRpcmVjdG9yeSB2YXJpYWJsZSBpcyByZXF1aXJlZCBieQotK3RoZSBHTlUgQ29k aW5nIFN0YW5kYXJkcywgYW5kIGlkZWFsbHkgY2F1c2VzIG5vIHJlY29tcGlsYXRpb24uCi0rSG93 ZXZlciwgc29tZSBwbGF0Zm9ybXMgaGF2ZSBrbm93biBsaW1pdGF0aW9ucyB3aXRoIHRoZSBzZW1h bnRpY3Mgb2YKLStzaGFyZWQgbGlicmFyaWVzIHRoYXQgZW5kIHVwIHJlcXVpcmluZyByZWNvbXBp bGF0aW9uIHdoZW4gdXNpbmcgdGhpcwotK21ldGhvZCwgcGFydGljdWxhcmx5IG5vdGljZWFibGUg aW4gcGFja2FnZXMgdGhhdCB1c2UgR05VIExpYnRvb2wuCi0rCi0rICAgVGhlIHNlY29uZCBtZXRo b2QgaW52b2x2ZXMgcHJvdmlkaW5nIHRoZSBgREVTVERJUicgdmFyaWFibGUuICBGb3IKLStleGFt cGxlLCBgbWFrZSBpbnN0YWxsIERFU1RESVI9L2FsdGVybmF0ZS9kaXJlY3RvcnknIHdpbGwgcHJl cGVuZAotK2AvYWx0ZXJuYXRlL2RpcmVjdG9yeScgYmVmb3JlIGFsbCBpbnN0YWxsYXRpb24gbmFt ZXMuICBUaGUgYXBwcm9hY2ggb2YKLStgREVTVERJUicgb3ZlcnJpZGVzIGlzIG5vdCByZXF1aXJl ZCBieSB0aGUgR05VIENvZGluZyBTdGFuZGFyZHMsIGFuZAotK2RvZXMgbm90IHdvcmsgb24gcGxh dGZvcm1zIHRoYXQgaGF2ZSBkcml2ZSBsZXR0ZXJzLiAgT24gdGhlIG90aGVyIGhhbmQsCi0raXQg ZG9lcyBiZXR0ZXIgYXQgYXZvaWRpbmcgcmVjb21waWxhdGlvbiBpc3N1ZXMsIGFuZCB3b3JrcyB3 ZWxsIGV2ZW4KLSt3aGVuIHNvbWUgZGlyZWN0b3J5IG9wdGlvbnMgd2VyZSBub3Qgc3BlY2lmaWVk IGluIHRlcm1zIG9mIGAke3ByZWZpeH0nCi0rYXQgYGNvbmZpZ3VyZScgdGltZS4KLSsKLStPcHRp b25hbCBGZWF0dXJlcwotKz09PT09PT09PT09PT09PT09Ci0rCi0rICAgSWYgdGhlIHBhY2thZ2Ug c3VwcG9ydHMgaXQsIHlvdSBjYW4gY2F1c2UgcHJvZ3JhbXMgdG8gYmUgaW5zdGFsbGVkCi0rd2l0 aCBhbiBleHRyYSBwcmVmaXggb3Igc3VmZml4IG9uIHRoZWlyIG5hbWVzIGJ5IGdpdmluZyBgY29u ZmlndXJlJyB0aGUKLStvcHRpb24gYC0tcHJvZ3JhbS1wcmVmaXg9UFJFRklYJyBvciBgLS1wcm9n cmFtLXN1ZmZpeD1TVUZGSVgnLgotKwotKyAgIFNvbWUgcGFja2FnZXMgcGF5IGF0dGVudGlvbiB0 byBgLS1lbmFibGUtRkVBVFVSRScgb3B0aW9ucyB0bwotK2Bjb25maWd1cmUnLCB3aGVyZSBGRUFU VVJFIGluZGljYXRlcyBhbiBvcHRpb25hbCBwYXJ0IG9mIHRoZSBwYWNrYWdlLgotK1RoZXkgbWF5 IGFsc28gcGF5IGF0dGVudGlvbiB0byBgLS13aXRoLVBBQ0tBR0UnIG9wdGlvbnMsIHdoZXJlIFBB Q0tBR0UKLStpcyBzb21ldGhpbmcgbGlrZSBgZ251LWFzJyBvciBgeCcgKGZvciB0aGUgWCBXaW5k b3cgU3lzdGVtKS4gIFRoZQotK2BSRUFETUUnIHNob3VsZCBtZW50aW9uIGFueSBgLS1lbmFibGUt JyBhbmQgYC0td2l0aC0nIG9wdGlvbnMgdGhhdCB0aGUKLStwYWNrYWdlIHJlY29nbml6ZXMuCi0r Ci0rICAgRm9yIHBhY2thZ2VzIHRoYXQgdXNlIHRoZSBYIFdpbmRvdyBTeXN0ZW0sIGBjb25maWd1 cmUnIGNhbiB1c3VhbGx5Ci0rZmluZCB0aGUgWCBpbmNsdWRlIGFuZCBsaWJyYXJ5IGZpbGVzIGF1 dG9tYXRpY2FsbHksIGJ1dCBpZiBpdCBkb2Vzbid0LAotK3lvdSBjYW4gdXNlIHRoZSBgY29uZmln dXJlJyBvcHRpb25zIGAtLXgtaW5jbHVkZXM9RElSJyBhbmQKLStgLS14LWxpYnJhcmllcz1ESVIn IHRvIHNwZWNpZnkgdGhlaXIgbG9jYXRpb25zLgotKwotKyAgIFNvbWUgcGFja2FnZXMgb2ZmZXIg dGhlIGFiaWxpdHkgdG8gY29uZmlndXJlIGhvdyB2ZXJib3NlIHRoZQotK2V4ZWN1dGlvbiBvZiBg bWFrZScgd2lsbCBiZS4gIEZvciB0aGVzZSBwYWNrYWdlcywgcnVubmluZyBgLi9jb25maWd1cmUK LSstLWVuYWJsZS1zaWxlbnQtcnVsZXMnIHNldHMgdGhlIGRlZmF1bHQgdG8gbWluaW1hbCBvdXRw dXQsIHdoaWNoIGNhbiBiZQotK292ZXJyaWRkZW4gd2l0aCBgbWFrZSBWPTEnOyB3aGlsZSBydW5u aW5nIGAuL2NvbmZpZ3VyZQotKy0tZGlzYWJsZS1zaWxlbnQtcnVsZXMnIHNldHMgdGhlIGRlZmF1 bHQgdG8gdmVyYm9zZSwgd2hpY2ggY2FuIGJlCi0rb3ZlcnJpZGRlbiB3aXRoIGBtYWtlIFY9MCcu Ci0rCi0rUGFydGljdWxhciBzeXN0ZW1zCi0rPT09PT09PT09PT09PT09PT09Ci0rCi0rICAgT24g SFAtVVgsIHRoZSBkZWZhdWx0IEMgY29tcGlsZXIgaXMgbm90IEFOU0kgQyBjb21wYXRpYmxlLiAg SWYgR05VCi0rQ0MgaXMgbm90IGluc3RhbGxlZCwgaXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIHRo ZSBmb2xsb3dpbmcgb3B0aW9ucyBpbgotK29yZGVyIHRvIHVzZSBhbiBBTlNJIEMgY29tcGlsZXI6 Ci0rCi0rICAgICAuL2NvbmZpZ3VyZSBDQz0iY2MgLUFlIC1EX1hPUEVOX1NPVVJDRT01MDAiCi0r Ci0rYW5kIGlmIHRoYXQgZG9lc24ndCB3b3JrLCBpbnN0YWxsIHByZS1idWlsdCBiaW5hcmllcyBv ZiBHQ0MgZm9yIEhQLVVYLgotKwotKyAgIE9uIE9TRi8xIGEuay5hLiBUcnU2NCwgc29tZSB2ZXJz aW9ucyBvZiB0aGUgZGVmYXVsdCBDIGNvbXBpbGVyIGNhbm5vdAotK3BhcnNlIGl0cyBgPHdjaGFy Lmg+JyBoZWFkZXIgZmlsZS4gIFRoZSBvcHRpb24gYC1ub2R0aycgY2FuIGJlIHVzZWQgYXMKLSth IHdvcmthcm91bmQuICBJZiBHTlUgQ0MgaXMgbm90IGluc3RhbGxlZCwgaXQgaXMgdGhlcmVmb3Jl IHJlY29tbWVuZGVkCi0rdG8gdHJ5Ci0rCi0rICAgICAuL2NvbmZpZ3VyZSBDQz0iY2MiCi0rCi0r YW5kIGlmIHRoYXQgZG9lc24ndCB3b3JrLCB0cnkKLSsKLSsgICAgIC4vY29uZmlndXJlIENDPSJj YyAtbm9kdGsiCi0rCi0rICAgT24gU29sYXJpcywgZG9uJ3QgcHV0IGAvdXNyL3VjYicgZWFybHkg aW4geW91ciBgUEFUSCcuICBUaGlzCi0rZGlyZWN0b3J5IGNvbnRhaW5zIHNldmVyYWwgZHlzZnVu Y3Rpb25hbCBwcm9ncmFtczsgd29ya2luZyB2YXJpYW50cyBvZgotK3RoZXNlIHByb2dyYW1zIGFy ZSBhdmFpbGFibGUgaW4gYC91c3IvYmluJy4gIFNvLCBpZiB5b3UgbmVlZCBgL3Vzci91Y2InCi0r aW4geW91ciBgUEFUSCcsIHB1dCBpdCBfYWZ0ZXJfIGAvdXNyL2JpbicuCi0rCi0rICAgT24gSGFp a3UsIHNvZnR3YXJlIGluc3RhbGxlZCBmb3IgYWxsIHVzZXJzIGdvZXMgaW4gYC9ib290L2NvbW1v bicsCi0rbm90IGAvdXNyL2xvY2FsJy4gIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGUgZm9s bG93aW5nIG9wdGlvbnM6Ci0rCi0rICAgICAuL2NvbmZpZ3VyZSAtLXByZWZpeD0vYm9vdC9jb21t b24KLSsKLStTcGVjaWZ5aW5nIHRoZSBTeXN0ZW0gVHlwZQotKz09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0rCi0rICAgVGhlcmUgbWF5IGJlIHNvbWUgZmVhdHVyZXMgYGNvbmZpZ3VyZScgY2Fu bm90IGZpZ3VyZSBvdXQKLSthdXRvbWF0aWNhbGx5LCBidXQgbmVlZHMgdG8gZGV0ZXJtaW5lIGJ5 IHRoZSB0eXBlIG9mIG1hY2hpbmUgdGhlIHBhY2thZ2UKLSt3aWxsIHJ1biBvbi4gIFVzdWFsbHks IGFzc3VtaW5nIHRoZSBwYWNrYWdlIGlzIGJ1aWx0IHRvIGJlIHJ1biBvbiB0aGUKLStfc2FtZV8g YXJjaGl0ZWN0dXJlcywgYGNvbmZpZ3VyZScgY2FuIGZpZ3VyZSB0aGF0IG91dCwgYnV0IGlmIGl0 IHByaW50cwotK2EgbWVzc2FnZSBzYXlpbmcgaXQgY2Fubm90IGd1ZXNzIHRoZSBtYWNoaW5lIHR5 cGUsIGdpdmUgaXQgdGhlCi0rYC0tYnVpbGQ9VFlQRScgb3B0aW9uLiAgVFlQRSBjYW4gZWl0aGVy IGJlIGEgc2hvcnQgbmFtZSBmb3IgdGhlIHN5c3RlbQotK3R5cGUsIHN1Y2ggYXMgYHN1bjQnLCBv ciBhIGNhbm9uaWNhbCBuYW1lIHdoaWNoIGhhcyB0aGUgZm9ybToKLSsKLSsgICAgIENQVS1DT01Q QU5ZLVNZU1RFTQotKwotK3doZXJlIFNZU1RFTSBjYW4gaGF2ZSBvbmUgb2YgdGhlc2UgZm9ybXM6 Ci0rCi0rICAgICBPUwotKyAgICAgS0VSTkVMLU9TCi0rCi0rICAgU2VlIHRoZSBmaWxlIGBjb25m aWcuc3ViJyBmb3IgdGhlIHBvc3NpYmxlIHZhbHVlcyBvZiBlYWNoIGZpZWxkLiAgSWYKLStgY29u ZmlnLnN1YicgaXNuJ3QgaW5jbHVkZWQgaW4gdGhpcyBwYWNrYWdlLCB0aGVuIHRoaXMgcGFja2Fn ZSBkb2Vzbid0Ci0rbmVlZCB0byBrbm93IHRoZSBtYWNoaW5lIHR5cGUuCi0rCi0rICAgSWYgeW91 IGFyZSBfYnVpbGRpbmdfIGNvbXBpbGVyIHRvb2xzIGZvciBjcm9zcy1jb21waWxpbmcsIHlvdSBz aG91bGQKLSt1c2UgdGhlIG9wdGlvbiBgLS10YXJnZXQ9VFlQRScgdG8gc2VsZWN0IHRoZSB0eXBl IG9mIHN5c3RlbSB0aGV5IHdpbGwKLStwcm9kdWNlIGNvZGUgZm9yLgotKwotKyAgIElmIHlvdSB3 YW50IHRvIF91c2VfIGEgY3Jvc3MgY29tcGlsZXIsIHRoYXQgZ2VuZXJhdGVzIGNvZGUgZm9yIGEK LStwbGF0Zm9ybSBkaWZmZXJlbnQgZnJvbSB0aGUgYnVpbGQgcGxhdGZvcm0sIHlvdSBzaG91bGQg c3BlY2lmeSB0aGUKLSsiaG9zdCIgcGxhdGZvcm0gKGkuZS4sIHRoYXQgb24gd2hpY2ggdGhlIGdl bmVyYXRlZCBwcm9ncmFtcyB3aWxsCi0rZXZlbnR1YWxseSBiZSBydW4pIHdpdGggYC0taG9zdD1U WVBFJy4KLSsKLStTaGFyaW5nIERlZmF1bHRzCi0rPT09PT09PT09PT09PT09PQotKwotKyAgIElm IHlvdSB3YW50IHRvIHNldCBkZWZhdWx0IHZhbHVlcyBmb3IgYGNvbmZpZ3VyZScgc2NyaXB0cyB0 byBzaGFyZSwKLSt5b3UgY2FuIGNyZWF0ZSBhIHNpdGUgc2hlbGwgc2NyaXB0IGNhbGxlZCBgY29u ZmlnLnNpdGUnIHRoYXQgZ2l2ZXMKLStkZWZhdWx0IHZhbHVlcyBmb3IgdmFyaWFibGVzIGxpa2Ug YENDJywgYGNhY2hlX2ZpbGUnLCBhbmQgYHByZWZpeCcuCi0rYGNvbmZpZ3VyZScgbG9va3MgZm9y IGBQUkVGSVgvc2hhcmUvY29uZmlnLnNpdGUnIGlmIGl0IGV4aXN0cywgdGhlbgotK2BQUkVGSVgv ZXRjL2NvbmZpZy5zaXRlJyBpZiBpdCBleGlzdHMuICBPciwgeW91IGNhbiBzZXQgdGhlCi0rYENP TkZJR19TSVRFJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byB0aGUgbG9jYXRpb24gb2YgdGhlIHNp dGUgc2NyaXB0LgotK0Egd2FybmluZzogbm90IGFsbCBgY29uZmlndXJlJyBzY3JpcHRzIGxvb2sg Zm9yIGEgc2l0ZSBzY3JpcHQuCi0rCi0rRGVmaW5pbmcgVmFyaWFibGVzCi0rPT09PT09PT09PT09 PT09PT09Ci0rCi0rICAgVmFyaWFibGVzIG5vdCBkZWZpbmVkIGluIGEgc2l0ZSBzaGVsbCBzY3Jp cHQgY2FuIGJlIHNldCBpbiB0aGUKLStlbnZpcm9ubWVudCBwYXNzZWQgdG8gYGNvbmZpZ3VyZScu ICBIb3dldmVyLCBzb21lIHBhY2thZ2VzIG1heSBydW4KLStjb25maWd1cmUgYWdhaW4gZHVyaW5n IHRoZSBidWlsZCwgYW5kIHRoZSBjdXN0b21pemVkIHZhbHVlcyBvZiB0aGVzZQotK3ZhcmlhYmxl cyBtYXkgYmUgbG9zdC4gIEluIG9yZGVyIHRvIGF2b2lkIHRoaXMgcHJvYmxlbSwgeW91IHNob3Vs ZCBzZXQKLSt0aGVtIGluIHRoZSBgY29uZmlndXJlJyBjb21tYW5kIGxpbmUsIHVzaW5nIGBWQVI9 dmFsdWUnLiAgRm9yIGV4YW1wbGU6Ci0rCi0rICAgICAuL2NvbmZpZ3VyZSBDQz0vdXNyL2xvY2Fs Mi9iaW4vZ2NjCi0rCi0rY2F1c2VzIHRoZSBzcGVjaWZpZWQgYGdjYycgdG8gYmUgdXNlZCBhcyB0 aGUgQyBjb21waWxlciAodW5sZXNzIGl0IGlzCi0rb3ZlcnJpZGRlbiBpbiB0aGUgc2l0ZSBzaGVs bCBzY3JpcHQpLgotKwotK1VuZm9ydHVuYXRlbHksIHRoaXMgdGVjaG5pcXVlIGRvZXMgbm90IHdv cmsgZm9yIGBDT05GSUdfU0hFTEwnIGR1ZSB0bwotK2FuIEF1dG9jb25mIGJ1Zy4gIFVudGlsIHRo ZSBidWcgaXMgZml4ZWQgeW91IGNhbiB1c2UgdGhpcyB3b3JrYXJvdW5kOgotKwotKyAgICAgQ09O RklHX1NIRUxMPS9iaW4vYmFzaCAvYmluL2Jhc2ggLi9jb25maWd1cmUgQ09ORklHX1NIRUxMPS9i aW4vYmFzaAotKwotK2Bjb25maWd1cmUnIEludm9jYXRpb24KLSs9PT09PT09PT09PT09PT09PT09 PT09Ci0rCi0rICAgYGNvbmZpZ3VyZScgcmVjb2duaXplcyB0aGUgZm9sbG93aW5nIG9wdGlvbnMg dG8gY29udHJvbCBob3cgaXQKLStvcGVyYXRlcy4KLSsKLStgLS1oZWxwJwotK2AtaCcKLSsgICAg IFByaW50IGEgc3VtbWFyeSBvZiBhbGwgb2YgdGhlIG9wdGlvbnMgdG8gYGNvbmZpZ3VyZScsIGFu ZCBleGl0LgotKwotK2AtLWhlbHA9c2hvcnQnCi0rYC0taGVscD1yZWN1cnNpdmUnCi0rICAgICBQ cmludCBhIHN1bW1hcnkgb2YgdGhlIG9wdGlvbnMgdW5pcXVlIHRvIHRoaXMgcGFja2FnZSdzCi0r ICAgICBgY29uZmlndXJlJywgYW5kIGV4aXQuICBUaGUgYHNob3J0JyB2YXJpYW50IGxpc3RzIG9w dGlvbnMgdXNlZAotKyAgICAgb25seSBpbiB0aGUgdG9wIGxldmVsLCB3aGlsZSB0aGUgYHJlY3Vy c2l2ZScgdmFyaWFudCBsaXN0cyBvcHRpb25zCi0rICAgICBhbHNvIHByZXNlbnQgaW4gYW55IG5l c3RlZCBwYWNrYWdlcy4KLSsKLStgLS12ZXJzaW9uJwotK2AtVicKLSsgICAgIFByaW50IHRoZSB2 ZXJzaW9uIG9mIEF1dG9jb25mIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGBjb25maWd1cmUnCi0rICAg ICBzY3JpcHQsIGFuZCBleGl0LgotKwotK2AtLWNhY2hlLWZpbGU9RklMRScKLSsgICAgIEVuYWJs ZSB0aGUgY2FjaGU6IHVzZSBhbmQgc2F2ZSB0aGUgcmVzdWx0cyBvZiB0aGUgdGVzdHMgaW4gRklM RSwKLSsgICAgIHRyYWRpdGlvbmFsbHkgYGNvbmZpZy5jYWNoZScuICBGSUxFIGRlZmF1bHRzIHRv IGAvZGV2L251bGwnIHRvCi0rICAgICBkaXNhYmxlIGNhY2hpbmcuCi0rCi0rYC0tY29uZmlnLWNh Y2hlJwotK2AtQycKLSsgICAgIEFsaWFzIGZvciBgLS1jYWNoZS1maWxlPWNvbmZpZy5jYWNoZScu Ci0rCi0rYC0tcXVpZXQnCi0rYC0tc2lsZW50JwotK2AtcScKLSsgICAgIERvIG5vdCBwcmludCBt ZXNzYWdlcyBzYXlpbmcgd2hpY2ggY2hlY2tzIGFyZSBiZWluZyBtYWRlLiAgVG8KLSsgICAgIHN1 cHByZXNzIGFsbCBub3JtYWwgb3V0cHV0LCByZWRpcmVjdCBpdCB0byBgL2Rldi9udWxsJyAoYW55 IGVycm9yCi0rICAgICBtZXNzYWdlcyB3aWxsIHN0aWxsIGJlIHNob3duKS4KLSsKLStgLS1zcmNk aXI9RElSJwotKyAgICAgTG9vayBmb3IgdGhlIHBhY2thZ2UncyBzb3VyY2UgY29kZSBpbiBkaXJl Y3RvcnkgRElSLiAgVXN1YWxseQotKyAgICAgYGNvbmZpZ3VyZScgY2FuIGRldGVybWluZSB0aGF0 IGRpcmVjdG9yeSBhdXRvbWF0aWNhbGx5LgotKwotK2AtLXByZWZpeD1ESVInCi0rICAgICBVc2Ug RElSIGFzIHRoZSBpbnN0YWxsYXRpb24gcHJlZml4LiAgKm5vdGUgSW5zdGFsbGF0aW9uIE5hbWVz OjoKLSsgICAgIGZvciBtb3JlIGRldGFpbHMsIGluY2x1ZGluZyBvdGhlciBvcHRpb25zIGF2YWls YWJsZSBmb3IgZmluZS10dW5pbmcKLSsgICAgIHRoZSBpbnN0YWxsYXRpb24gbG9jYXRpb25zLgot KwotK2AtLW5vLWNyZWF0ZScKLStgLW4nCi0rICAgICBSdW4gdGhlIGNvbmZpZ3VyZSBjaGVja3Ms IGJ1dCBzdG9wIGJlZm9yZSBjcmVhdGluZyBhbnkgb3V0cHV0Ci0rICAgICBmaWxlcy4KLSsKLStg Y29uZmlndXJlJyBhbHNvIGFjY2VwdHMgc29tZSBvdGhlciwgbm90IHdpZGVseSB1c2VmdWwsIG9w dGlvbnMuICBSdW4KLStgY29uZmlndXJlIC0taGVscCcgZm9yIG1vcmUgZGV0YWlscy4KLSsKLWRp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZSBzb2NpLTMuMC4wX3RyZXAzMDAvTWFr ZWZpbGUKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZQkyMDEwLTAxLTIzIDE0OjQ1OjQ0 LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZQkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTEsMjAgKzAsMCBAQAotLWJ1aWxkX2xp YnMgOgotLQljZCBidWlsZC91bml4OyBgY2F0IGxvY2FsL3RjbGAgYnVpbGQudGNsIGNvcmUgY29y ZS1zbyBteXNxbCBteXNxbC1zbyBwb3N0Z3Jlc3FsIHBvc3RncmVzcWwtc28gb3JhY2xlIG9yYWNs ZS1zbwotLQotLXRlc3RzIDoKLS0JY2QgYnVpbGQvdW5peDsgYGNhdCBsb2NhbC90Y2xgIGJ1aWxk LnRjbCBteXNxbC10ZXN0IG9yYWNsZS10ZXN0IHBvc3RncmVzcWwtdGVzdAotLQotLWluc3RhbGwg OgotLQljZCBidWlsZC91bml4OyBgY2F0IGxvY2FsL3RjbGAgaW5zdGFsbC50Y2wKLS0KLS11bmlu c3RhbGwgOgotLQljZCBidWlsZC91bml4L2xvY2FsOyAvYmluL3NoIHVuaW5zdGFsbC5zaAotLQot LWNsZWFuIDoKLS0JZmluZCAuIC1uYW1lICcqLm8nIHwgeGFyZ3Mgcm0KLS0JZmluZCAuIC1uYW1l ICcqLmEnIHwgeGFyZ3Mgcm0KLS0JZmluZCAuIC1uYW1lICcqLnNvJyB8IHhhcmdzIHJtCi0tCXJt IC1mIHNyYy9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwKLS0Jcm0gLWYgc3JjL2JhY2tl bmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlCi0tCXJtIC1mIHNyYy9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsCi0tCXJtIC1yZiBidWlsZC91bml4L2luY2x1ZGUgYnVp bGQvdW5peC9saWIgYnVpbGQvdW5peC90ZXN0cwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4w LjBfNC1wYWNrL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw Ci0rKysgc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmFtCTIwMDktMDUtMDMgMDA6MTk6NDIu MDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDYyIEBACi0rIyMgdG9wIGRpcmVjdG9yeQotK2lu Y2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLStBQ0xPQ0FMX0FNRkxBR1Mg PSAtSSBjb25maWcKLSsKLStBVVRPTUFLRV9PUFRJT05TID0gZGlzdC1iemlwMgotKwotK2lmIFJV Tl9URVNUUwotKyMgIFRFU1RfRElSID0gdGVzdAotK2VuZGlmCi0rCi0rTUFOX0RPQ19ESVIgPSBt YW4KLSsKLSsjIE1haW50YWluYW5jZSBmaWxlcwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFr ZWZpbGUuaW4gYWNsb2NhbC5tNCBjb25maWd1cmUgXAotKwkJCWNvbmZpZy1oLmluIHNpYy9zdGFt cC1oLmluIGF1dG9nZW4uc2ggYm9vdHN0cmFwCi0rCi0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09N UEFUSUJJTElUWSA9IC5fY29uZmlndXJlIC5fTWFrZWZpbGUgY29udHJpYgotK0VYVFJBX0RJU1Rf Rk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IGNvbnRyaWIKLSsKLStFWFRSQV9ESVNUID0gTWFrZWZp bGUuY29tbW9uICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKSBAUEFDS0FHRUAu bTQKLSsKLSsjIEJ1aWxkIGluIHRoZXNlIGRpcmVjdG9yaWVzOgotK1NVQkRJUlMgPSBidWlsZCBA UEFDS0FHRUAgJChNQU5fRE9DX0RJUikgZG9jICQoVEVTVF9ESVIpCi0rCi0rCi0rIyBDb25maWd1 cmF0aW9uIGhlbHBlcnMKLStiaW5fU0NSSVBUUyA9IEBQQUNLQUdFQC1jb25maWcKLSsKLStwa2dj b25maWdkaXIgPSAkKGxpYmRpcikvcGtnY29uZmlnCi0rcGtnY29uZmlnX0RBVEEgPSBAUEFDS0FH RUAucGMKLSsKLSttNGRhdGFkaXIgPSAkKGRhdGFkaXIpL2FjbG9jYWwKLSttNGRhdGFfREFUQSA9 IEBQQUNLQUdFQC5tNAotKwotKyMgVGFyZ2V0cwotK3VuaW5zdGFsbC1sb2NhbDoKLSsJcm0gLXJm ICQoREVTVERJUikkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotKwotK2Rpc3QtaHRtbDoKLSsJJChN QUtFKSAtQyBkb2MgZGlzdC1odG1sCi0rCi0rCi0rc25hcHNob3Q6IHNuYXBzaG90LXNyYyBzbmFw c2hvdC1odG1sCi0rCi0rCi0rc25hcHNob3Qtc3JjOgotKyAgICAgICAgJChNQUtFKSBkaXN0IGRp c3RkaXI9QFBBQ0tBR0VfVEFSTkFNRUAtYGRhdGUgKyIlWSVtJWQiYAotKwotK3NuYXBzaG90LWh0 bWw6Ci0rCSQoTUFLRSkgLUMgZG9jIGRpc3QtaHRtbCBodG1sX3Rhcm5hbWU9QFBBQ0tBR0VfVEFS TkFNRUAtaHRtbC1kb2MtYGRhdGUgKyIlWSVtJWQiYAotKwotK3VwbG9hZDogdXBsb2FkLXNyYyB1 cGxvYWQtaHRtbAotKwotK3VwbG9hZC1zcmM6IGRpc3QKLSsJQFVQTE9BRF9DT01NQU5EQCBAUEFD S0FHRV9UQVJOQU1FQC1AVkVSU0lPTkAudGFyLmd6IFwKLSsJQFBBQ0tBR0VfVEFSTkFNRUAtQFZF UlNJT05ALnRhci5iejIKLSsKLSt1cGxvYWQtaHRtbDogZGlzdC1odG1sCi0rCUBVUExPQURfQ09N TUFOREAgQFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtQFZFUlNJT05ALnRhci5neiBcCi0rCUBQ QUNLQUdFX1RBUk5BTUVALWh0bWwtZG9jLUBWRVJTSU9OQC50YXIuYnoyCi0rCi1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUuY29tbW9uIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtl ZmlsZS5jb21tb24KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5jb21tb24JMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTWFr ZWZpbGUuY29tbW9uCTIwMDktMDQtMTggMTc6MjA6MzIuMDAwMDAwMDAwICswMjAwCi1AQCAtMCww ICsxLDIgQEAKLStAU0VUX01BS0VACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAt SSQodG9wX3NyY2RpcikKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5pbiBz b2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9NYWtl ZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9NYWtlZmlsZS5pbgkyMDEwLTAxLTIzIDE0OjQ0OjUyLjAwMDAwMDAwMCArMDEw MAotQEAgLTAsMCArMSw5MjQgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFr ZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBD b3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIw MDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlz IGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVu bGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRo IG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVz ZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhl IGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFS IFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotKwotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dk YXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRl ZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGli ZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHta U0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9 ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxs X3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExf SEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9y bV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5T VEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9T VF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQg PSBAaG9zdEAKLStESVNUX0NPTU1PTiA9IFJFQURNRSAkKGFtX19jb25maWd1cmVfZGVwcykgJChz cmNkaXIpL01ha2VmaWxlLmFtIFwKLSsJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9z b2NpLWNvbmZpZy5pbiBcCi0rCSQoc3JjZGlyKS9zb2NpLnBjLmluICQoc3JjZGlyKS9zb2NpLnNw ZWMuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZSBBVVRIT1JTIFwKLSsJQ09QWUlORyBDaGFuZ2VMb2cgSU5TVEFMTCBORVdTIGNvbmZp Zy9jb25maWcuZ3Vlc3MgXAotKwljb25maWcvY29uZmlnLnN1YiBjb25maWcvZGVwY29tcCBjb25m aWcvaW5zdGFsbC1zaCBcCi0rCWNvbmZpZy9sdG1haW4uc2ggY29uZmlnL21pc3NpbmcKLStzdWJk aXIgPSAuCi0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xv Y2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf b3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5t NCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1f X2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NB TF9NNCkKLSthbV9fQ09ORklHX0RJU1RDTEVBTl9GSUxFUyA9IGNvbmZpZy5zdGF0dXMgY29uZmln LmNhY2hlIGNvbmZpZy5sb2cgXAotKyBjb25maWd1cmUubGluZW5vIGNvbmZpZy5zdGF0dXMubGlu ZW5vCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0g JCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPSBzb2Np LWNvbmZpZyBzb2NpLnBjIHNvY2kuc3BlYwotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0r YW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2Vk ICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKLSsgICAgJChzcmNk aXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKLSsg ICAgKikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8 IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFsbF9tYXggPSA0MAotK2FtX19ub2Jhc2Vf c3RyaXBfc2V0dXAgPSBcCi0rICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAn cy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCi0rYW1fX25vYmFzZV9zdHJpcCA9IFwKLSsgIGZvciBw IGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlw L3x8IgotK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKLSsg IGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCi0rICBzZWQgInN8 ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSok JCxcMSwnIHwgXAotKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNb JCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAotKyAgICBpZiAoKytuWyQkMl0gPT0gJChhbV9f aW5zdGFsbF9tYXgpKSBcCi0rICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9 IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAotKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykg cHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCi0rYW1fX2Jhc2VfbGlzdCA9IFwKLSsgIHNlZCAnJCQh TjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCi0rICBzZWQgJyQk IU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCi0rYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJ UikkKGJpbmRpcikiICIkKERFU1RESVIpJChtNGRhdGFkaXIpIiBcCi0rCSIkKERFU1RESVIpJChw a2djb25maWdkaXIpIgotK1NDUklQVFMgPSAkKGJpbl9TQ1JJUFRTKQotK1NPVVJDRVMgPQotK0RJ U1RfU09VUkNFUyA9Ci0rUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJl Y3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKLSsJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUg aW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxs LWV4ZWMtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8t cmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZl IGluc3RhbGwtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGly cy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVj dXJzaXZlCi0rREFUQSA9ICQobTRkYXRhX0RBVEEpICQocGtnY29uZmlnX0RBVEEpCi0rUkVDVVJT SVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZl CVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStB TV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwK LSsJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdz IENUQUdTIFwKLSsJZGlzdGRpciBkaXN0IGRpc3QtYWxsIGRpc3RjaGVjawotK0VUQUdTID0gZXRh Z3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxF UyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJ U1QpCi0rZGlzdGRpciA9ICQoUEFDS0FHRSktJChWRVJTSU9OKQotK3RvcF9kaXN0ZGlyID0gJChk aXN0ZGlyKQotK2FtX19yZW1vdmVfZGlzdGRpciA9IFwKLSsgIHsgdGVzdCAhIC1kICIkKGRpc3Rk aXIpIiBcCi0rICAgIHx8IHsgZmluZCAiJChkaXN0ZGlyKSIgLXR5cGUgZCAhIC1wZXJtIC0yMDAg LWV4ZWMgY2htb2QgdSt3IHt9ICc7JyBcCi0rICAgICAgICAgJiYgcm0gLWZyICIkKGRpc3RkaXIp IjsgfTsgfQotK2FtX19yZWxhdGl2aXplID0gXAotKyAgZGlyMD1gcHdkYDsgXAotKyAgc2VkX2Zp cnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCi0rICBzZWRfcmVzdD0ncyxeW14vXSovKiws JzsgXAotKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKLSsgIHNlZF9idXRs YXN0PSdzLC8qW14vXSokJCwsJzsgXAotKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAot KyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAg ICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAotKyAgICAgIGlmIHRlc3QgIiQkZmly c3QiID0gIi4uIjsgdGhlbiBcCi0rICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1l ICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKLSsgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIg fCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAotKyAgICAgIGVsc2UgXAotKyAgICAgICAgZmly c3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgICAgICBp ZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAotKyAgICAgICAgICBkaXIyPWBl Y2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgICAgICAgIGVsc2UgXAot KyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCi0rICAgICAgICBmaTsgXAotKyAgICAgICAg ZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKLSsgICAgICBmaTsgXAotKyAgICBmaTsgXAotKyAg ICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgIGRvbmU7 IFwKLSsgIHJlbGRpcj0iJCRkaXIyIgotK0RJU1RfQVJDSElWRVMgPSAkKGRpc3RkaXIpLnRhci5n eiAkKGRpc3RkaXIpLnRhci5iejIKLStHWklQX0VOViA9IC0tYmVzdAotK2Rpc3R1bmluc3RhbGxj aGVja19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQKLStkaXN0Y2xlYW5jaGVja19s aXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0r QU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVU T0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBB V0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElC ID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1Rf RklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNf TElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NU X01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJA Ci0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElC QAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9M SUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NU X1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNf TElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJF QURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19M SUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBC T09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFM SVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxB R1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQ VU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5J VF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJ T04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAK LStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lH UEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAK LStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0g QEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAg PSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklD X0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdS RVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFA Ci0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9 IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJ UF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0g QExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0g QExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlO Rk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBN WVNRTF9DRkxBR1NACi0rTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElSUyA9 IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJTSU9O 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 QUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rQUNMT0NBTF9BTUZMQUdT ID0gLUkgY29uZmlnCi0rQVVUT01BS0VfT1BUSU9OUyA9IGRpc3QtYnppcDIKLSsKLSsjICBURVNU X0RJUiA9IHRlc3QKLStNQU5fRE9DX0RJUiA9IG1hbgotKwotKyMgTWFpbnRhaW5hbmNlIGZpbGVz Ci0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbiBhY2xvY2FsLm00IGNvbmZpZ3Vy ZSBcCi0rCQkJY29uZmlnLWguaW4gc2ljL3N0YW1wLWguaW4gYXV0b2dlbi5zaCBib290c3RyYXAK LSsKLSsKLSsjRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gLl9jb25maWd1cmUg Ll9NYWtlZmlsZSBjb250cmliCi0rRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0g Y29udHJpYgotK0VYVFJBX0RJU1QgPSBNYWtlZmlsZS5jb21tb24gJChFWFRSQV9ESVNUX0ZPUl9T T0NJX0NPTVBBVElCSUxJVFkpIEBQQUNLQUdFQC5tNAotKwotKyMgQnVpbGQgaW4gdGhlc2UgZGly ZWN0b3JpZXM6Ci0rU1VCRElSUyA9IGJ1aWxkIEBQQUNLQUdFQCAkKE1BTl9ET0NfRElSKSBkb2Mg JChURVNUX0RJUikKLSsKLSsjIENvbmZpZ3VyYXRpb24gaGVscGVycwotK2Jpbl9TQ1JJUFRTID0g QFBBQ0tBR0VALWNvbmZpZwotK3BrZ2NvbmZpZ2RpciA9ICQobGliZGlyKS9wa2djb25maWcKLStw a2djb25maWdfREFUQSA9IEBQQUNLQUdFQC5wYwotK200ZGF0YWRpciA9ICQoZGF0YWRpcikvYWNs b2NhbAotK200ZGF0YV9EQVRBID0gQFBBQ0tBR0VALm00Ci0rYWxsOiBhbGwtcmVjdXJzaXZlCi0r Ci0rLlNVRkZJWEVTOgotK2FtLS1yZWZyZXNoOgotKwlAOgotKyQoc3JjZGlyKS9NYWtlZmlsZS5p bjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAk KGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICck KGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAgICAgZWNo byAnIGNkICQoc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSc7IFwKLSsJICAgICAgJChhbV9f Y2QpICQoc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBcCi0rCQkmJiBleGl0IDA7IFwKLSsJ ICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0 b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBNYWtlZmlsZSc7IFwKLSsJJChhbV9fY2Qp ICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IE1ha2VmaWxlCi0rLlBS RUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3Bf YnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5z dGF0dXMqKSBcCi0rCSAgICBlY2hvICcgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzJzsgXAotKwkg ICAgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRAICQoYW1fX2Rl cGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAu L2NvbmZpZy5zdGF0dXMgJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwot KyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAk KENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwkkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMg LS1yZWNoZWNrCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVf ZGVwcykKLSsJJChhbV9fY2QpICQoc3JjZGlyKSAmJiAkKEFVVE9DT05GKQotKyQoQUNMT0NBTF9N NCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCSQoYW1fX2NkKSAkKHNyY2RpcikgJiYgJChB Q0xPQ0FMKSAkKEFDTE9DQUxfQU1GTEFHUykKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgotK3Nv Y2ktY29uZmlnOiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cyAkKHNyY2Rpcikvc29jaS1j b25maWcuaW4KLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1 cyAkQAotK3NvY2kucGM6ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9z b2NpLnBjLmluCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0 dXMgJEAKLStzb2NpLnNwZWM6ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGly KS9zb2NpLnNwZWMuaW4KLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmln LnN0YXR1cyAkQAotK2luc3RhbGwtYmluU0NSSVBUUzogJChiaW5fU0NSSVBUUykKLSsJQCQoTk9S TUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQoYmluZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNU RElSKSQoYmluZGlyKSIKLSsJQGxpc3Q9JyQoYmluX1NDUklQVFMpJzsgdGVzdCAtbiAiJChiaW5k aXIpIiB8fCBsaXN0PTsgXAotKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1m ICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotKwkgIGlmIHRlc3Qg LWYgIiQkZCQkcCI7IHRoZW4gZWNobyAiJCRkJCRwIjsgZWNobyAiJCRwIjsgZWxzZSA6OyBmaTsg XAotKwlkb25lIHwgXAotKwlzZWQgLWUgJ3A7cywuKi8sLDtuJyBcCi0rCSAgICAtZSAnaDtzfC4q fC58JyBcCi0rCSAgICAtZSAncDt4O3MsLiovLCw7JCh0cmFuc2Zvcm0pJyB8IHNlZCAnTjtOO047 cyxcbiwgLGcnIHwgXAotKwkkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiOyBkaXJzWyIu Il0gPSAxOyB9IFwKLSsJICB7IGQ9JCQzOyBpZiAoZGlyc1tkXSAhPSAxKSB7IHByaW50ICJkIiwg ZDsgZGlyc1tkXSA9IDEgfSBcCi0rCSAgICBpZiAoJCQyID09ICQkNCkgeyBmaWxlc1tkXSA9IGZp bGVzW2RdICIgIiAkJDE7IFwKLSsJICAgICAgaWYgKCsrbltkXSA9PSAkKGFtX19pbnN0YWxsX21h eCkpIHsgXAotKwkJcHJpbnQgImYiLCBkLCBmaWxlc1tkXTsgbltkXSA9IDA7IGZpbGVzW2RdID0g IiIgfSB9IFwKLSsJICAgIGVsc2UgeyBwcmludCAiZiIsIGQgIi8iICQkNCwgJCQxIH0gfSBcCi0r CSAgRU5EIHsgZm9yIChkIGluIGZpbGVzKSBwcmludCAiZiIsIGQsIGZpbGVzW2RdIH0nIHwgXAot Kwl3aGlsZSByZWFkIHR5cGUgZGlyIGZpbGVzOyBkbyBcCi0rCSAgICAgaWYgdGVzdCAiJCRkaXIi ID0gLjsgdGhlbiBkaXI9OyBlbHNlIGRpcj0vJCRkaXI7IGZpOyBcCi0rCSAgICAgdGVzdCAteiAi JCRmaWxlcyIgfHwgeyBcCi0rCSAgICAgICBlY2hvICIgJChJTlNUQUxMX1NDUklQVCkgJCRmaWxl cyAnJChERVNURElSKSQoYmluZGlyKSQkZGlyJyI7IFwKLSsJICAgICAgICQoSU5TVEFMTF9TQ1JJ UFQpICQkZmlsZXMgIiQoREVTVERJUikkKGJpbmRpcikkJGRpciIgfHwgZXhpdCAkJD87IFwKLSsJ ICAgICB9IFwKLSsJOyBkb25lCi0rCi0rdW5pbnN0YWxsLWJpblNDUklQVFM6Ci0rCUAkKE5PUk1B TF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKGJpbl9TQ1JJUFRTKSc7IHRlc3QgLW4gIiQoYmluZGly KSIgfHwgZXhpdCAwOyBcCi0rCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7 IGRvbmUgfCBcCi0rCSAgICAgICBzZWQgLWUgJ3MsLiovLCw7JCh0cmFuc2Zvcm0pJ2A7IFwKLSsJ dGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKLSsJZWNobyAiICggY2QgJyQoREVTVERJUikk KGJpbmRpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAotKwljZCAiJChERVNURElSKSQoYmlu ZGlyKSIgJiYgcm0gLWYgJCRmaWxlcwotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAt ZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotKwotK2Rp c3RjbGVhbi1saWJ0b29sOgotKwktcm0gLWYgbGlidG9vbCBjb25maWcubHQKLStpbnN0YWxsLW00 ZGF0YURBVEE6ICQobTRkYXRhX0RBVEEpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16 ICIkKG00ZGF0YWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKG00ZGF0YWRpcikiCi0r CUBsaXN0PSckKG00ZGF0YV9EQVRBKSc7IHRlc3QgLW4gIiQobTRkYXRhZGlyKSIgfHwgbGlzdD07 IFwKLSsJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBk PTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLSsJICBlY2hvICIkJGQkJHAiOyBcCi0rCWRv bmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAotKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCi0rCSAg ZWNobyAiICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICckKERFU1RESVIpJChtNGRhdGFkaXIpJyI7 IFwKLSsJICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNURElSKSQobTRkYXRhZGlyKSIg fHwgZXhpdCAkJD87IFwKLSsJZG9uZQotKwotK3VuaW5zdGFsbC1tNGRhdGFEQVRBOgotKwlAJChO T1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChtNGRhdGFfREFUQSknOyB0ZXN0IC1uICIkKG00 ZGF0YWRpcikiIHx8IGxpc3Q9OyBcCi0rCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8g JCRwOyBkb25lIHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCi0rCXRlc3QgLW4gIiQkZmlsZXMiIHx8 IGV4aXQgMDsgXAotKwllY2hvICIgKCBjZCAnJChERVNURElSKSQobTRkYXRhZGlyKScgJiYgcm0g LWYiICQkZmlsZXMgIikiOyBcCi0rCWNkICIkKERFU1RESVIpJChtNGRhdGFkaXIpIiAmJiBybSAt ZiAkJGZpbGVzCi0raW5zdGFsbC1wa2djb25maWdEQVRBOiAkKHBrZ2NvbmZpZ19EQVRBKQotKwlA JChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChwa2djb25maWdkaXIpIiB8fCAkKE1LRElS X1ApICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIgotKwlAbGlzdD0nJChwa2djb25maWdfREFU QSknOyB0ZXN0IC1uICIkKHBrZ2NvbmZpZ2RpcikiIHx8IGxpc3Q9OyBcCi0rCWZvciBwIGluICQk bGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNk aXIpLyI7IGZpOyBcCi0rCSAgZWNobyAiJCRkJCRwIjsgXAotKwlkb25lIHwgJChhbV9fYmFzZV9s aXN0KSB8IFwKLSsJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAotKwkgIGVjaG8gIiAkKElOU1RBTExf REFUQSkgJCRmaWxlcyAnJChERVNURElSKSQocGtnY29uZmlnZGlyKSciOyBcCi0rCSAgJChJTlNU QUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiIHx8IGV4aXQgJCQ/ OyBcCi0rCWRvbmUKLSsKLSt1bmluc3RhbGwtcGtnY29uZmlnREFUQToKLSsJQCQoTk9STUFMX1VO SU5TVEFMTCkKLSsJQGxpc3Q9JyQocGtnY29uZmlnX0RBVEEpJzsgdGVzdCAtbiAiJChwa2djb25m aWdkaXIpIiB8fCBsaXN0PTsgXAotKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICQk cDsgZG9uZSB8IHNlZCAtZSAnc3xeLiovfHwnYDsgXAotKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBl eGl0IDA7IFwKLSsJZWNobyAiICggY2QgJyQoREVTVERJUikkKHBrZ2NvbmZpZ2RpciknICYmIHJt IC1mIiAkJGZpbGVzICIpIjsgXAotKwljZCAiJChERVNURElSKSQocGtnY29uZmlnZGlyKSIgJiYg cm0gLWYgJCRmaWxlcwotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUg bW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFr ZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhl IHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVz LAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0 IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMg dG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNl LCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KLSsk KFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9y IGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8 IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNh YzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNl ZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAot KwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15ZXM7 IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAg ICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKCQoYW1fX2NkKSAk JHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkg IHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIg PSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0i IHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NM RUFOX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4 ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtd Kik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0r CWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xl YW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCi0r CSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1 YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4g OjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0rCWRv bmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVj dXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJNYWtp bmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4i OyB0aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBc Ci0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKCQoYW1f X2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkg XAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgot K3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxp c3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vy c2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0r CSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVBREVSUykgJChT T1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7 IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAk KHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQk MF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsg Zm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVl Ci0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VS Q0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0r CXNldCB4OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVk ZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249 LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5j bHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0 ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGly L1RBR1MgfHwgXAotKwkgICAgICBzZXQgIiQkQCIgIiQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQk c3ViZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlsaXN0PSckKFNPVVJDRVMp ICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBp biAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVs c2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7 IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9u ZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJc2hpZnQ7IFwK LSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwK LSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgaWYg dGVzdCAkJCMgLWd0IDA7IHRoZW4gXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFN X0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAot KwkgIGVsc2UgXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1Mp ICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAkJHVuaXF1ZTsgXAotKwkgIGZpOyBcCi0rCWZpCi0r Y3RhZ3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNF UykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBc Ci0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykg JChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQk dW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYg cHdkYCBcCi0rCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1p ICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRB R1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RG SUxFUykKLSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0rCXRlc3QgLWQgIiQoZGlzdGRpcikiIHx8 IG1rZGlyICIkKGRpc3RkaXIpIgotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIk KHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0n JChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8g ZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3Qi IFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3Qi YDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hv ICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7 cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9y IGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVz dCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRl c3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2Vk IC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZp bGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAt cGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAg aWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhl biBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8 fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAt cGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAg Y3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVs c2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1w ICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJ ICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBc Ci0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElS X1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsg XAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAg ICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAotKwkgICAgJChh bV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBk aXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKLSsJICAgICQoYW1fX3JlbGF0 aXZpemUpOyBcCi0rCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGVjaG8g IiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQk bmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKLSsJICAgIGVj aG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1f X3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKLSsJICAgICgkKGFtX19jZCkgJCRzdWJkaXIg JiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rp c3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlz dGRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2No ZWNrPTogXAotKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAot KwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCS10ZXN0IC1uICIkKGFt X19za2lwX21vZGVfZml4KSIgXAotKwl8fCBmaW5kICIkKGRpc3RkaXIpIiAtdHlwZSBkICEgLXBl cm0gLTc1NSBcCi0rCQktZXhlYyBjaG1vZCB1K3J3eCxnbytyeCB7fSBcOyAtbyBcCi0rCSAgISAt dHlwZSBkICEgLXBlcm0gLTQ0NCAtbGlua3MgMSAtZXhlYyBjaG1vZCBhK3Ige30gXDsgLW8gXAot KwkgICEgLXR5cGUgZCAhIC1wZXJtIC00MDAgLWV4ZWMgY2htb2QgYStyIHt9IFw7IC1vIFwKLSsJ ICAhIC10eXBlIGQgISAtcGVybSAtNDQ0IC1leGVjICQoaW5zdGFsbF9zaCkgLWMgLW0gYStyIHt9 IHt9IFw7IFwKLSsJfHwgY2htb2QgLVIgYStyICIkKGRpc3RkaXIpIgotK2Rpc3QtZ3ppcDogZGlz dGRpcgotKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgR1pJUD0kKEdaSVBfRU5W KSBnemlwIC1jID4kKGRpc3RkaXIpLnRhci5negotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKLStk aXN0LWJ6aXAyOiBkaXN0ZGlyCi0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBi emlwMiAtOSAtYyA+JChkaXN0ZGlyKS50YXIuYnoyCi0rCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQot KwotK2Rpc3QtbHptYTogZGlzdGRpcgotKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIp IHwgbHptYSAtOSAtYyA+JChkaXN0ZGlyKS50YXIubHptYQotKwkkKGFtX19yZW1vdmVfZGlzdGRp cikKLSsKLStkaXN0LXh6OiBkaXN0ZGlyCi0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3Rh cikgfCB4eiAtYyA+JChkaXN0ZGlyKS50YXIueHoKLSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0r Ci0rZGlzdC10YXJaOiBkaXN0ZGlyCi0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3Rhcikg fCBjb21wcmVzcyAtYyA+JChkaXN0ZGlyKS50YXIuWgotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikK LSsKLStkaXN0LXNoYXI6IGRpc3RkaXIKLSsJc2hhciAkKGRpc3RkaXIpIHwgR1pJUD0kKEdaSVBf RU5WKSBnemlwIC1jID4kKGRpc3RkaXIpLnNoYXIuZ3oKLSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIp Ci0rCi0rZGlzdC16aXA6IGRpc3RkaXIKLSsJLXJtIC1mICQoZGlzdGRpcikuemlwCi0rCXppcCAt cnEgJChkaXN0ZGlyKS56aXAgJChkaXN0ZGlyKQotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKLSsK LStkaXN0IGRpc3QtYWxsOiBkaXN0ZGlyCi0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3Rh cikgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlzdGRpcikudGFyLmd6Ci0rCXRhcmRp cj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBiemlwMiAtOSAtYyA+JChkaXN0ZGlyKS50YXIu YnoyCi0rCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotKwotKyMgVGhpcyB0YXJnZXQgdW50YXJzIHRo ZSBkaXN0IGZpbGUgYW5kIHRyaWVzIGEgVlBBVEggY29uZmlndXJhdGlvbi4gIFRoZW4KLSsjIGl0 IGd1YXJhbnRlZXMgdGhhdCB0aGUgZGlzdHJpYnV0aW9uIGlzIHNlbGYtY29udGFpbmVkIGJ5IG1h a2luZyBhbm90aGVyCi0rIyB0YXJmaWxlLgotK2Rpc3RjaGVjazogZGlzdAotKwljYXNlICckKERJ U1RfQVJDSElWRVMpJyBpbiBcCi0rCSoudGFyLmd6KikgXAotKwkgIEdaSVA9JChHWklQX0VOVikg Z3ppcCAtZGMgJChkaXN0ZGlyKS50YXIuZ3ogfCAkKGFtX191bnRhcikgOztcCi0rCSoudGFyLmJ6 MiopIFwKLSsJICBiemlwMiAtZGMgJChkaXN0ZGlyKS50YXIuYnoyIHwgJChhbV9fdW50YXIpIDs7 XAotKwkqLnRhci5sem1hKikgXAotKwkgIGx6bWEgLWRjICQoZGlzdGRpcikudGFyLmx6bWEgfCAk KGFtX191bnRhcikgOztcCi0rCSoudGFyLnh6KikgXAotKwkgIHh6IC1kYyAkKGRpc3RkaXIpLnRh ci54eiB8ICQoYW1fX3VudGFyKSA7O1wKLSsJKi50YXIuWiopIFwKLSsJICB1bmNvbXByZXNzIC1j ICQoZGlzdGRpcikudGFyLlogfCAkKGFtX191bnRhcikgOztcCi0rCSouc2hhci5neiopIFwKLSsJ ICBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWRjICQoZGlzdGRpcikuc2hhci5neiB8IHVuc2hhciA7 O1wKLSsJKi56aXAqKSBcCi0rCSAgdW56aXAgJChkaXN0ZGlyKS56aXAgOztcCi0rCWVzYWMKLSsJ Y2htb2QgLVIgYS13ICQoZGlzdGRpcik7IGNobW9kIGErdyAkKGRpc3RkaXIpCi0rCW1rZGlyICQo ZGlzdGRpcikvX2J1aWxkCi0rCW1rZGlyICQoZGlzdGRpcikvX2luc3QKLSsJY2htb2QgYS13ICQo ZGlzdGRpcikKLSsJdGVzdCAtZCAkKGRpc3RkaXIpL19idWlsZCB8fCBleGl0IDA7IFwKLSsJZGNf aW5zdGFsbF9iYXNlPWAkKGFtX19jZCkgJChkaXN0ZGlyKS9faW5zdCAmJiBwd2QgfCBzZWQgLWUg J3MsXlteOlxcL106W1xcL10sLywnYCBcCi0rCSAgJiYgZGNfZGVzdGRpcj0iJCR7VE1QRElSLS90 bXB9L2FtLWRjLSQkJCQvIiBcCi0rCSAgJiYgYW1fX2N3ZD1gcHdkYCBcCi0rCSAgJiYgJChhbV9f Y2QpICQoZGlzdGRpcikvX2J1aWxkIFwKLSsJICAmJiAuLi9jb25maWd1cmUgLS1zcmNkaXI9Li4g LS1wcmVmaXg9IiQkZGNfaW5zdGFsbF9iYXNlIiBcCi0rCSAgICAkKERJU1RDSEVDS19DT05GSUdV UkVfRkxBR1MpIFwKLSsJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgZHZpIFwKLSsJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBjaGVjayBcCi0rCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbCBcCi0rCSAg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbGNoZWNrIFwKLSsJICAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSB1bmluc3RhbGwgXAotKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGRpc3R1bmluc3RhbGxjaGVja19kaXI9IiQkZGNfaW5zdGFsbF9iYXNlIiBcCi0rCSAgICAg ICAgZGlzdHVuaW5zdGFsbGNoZWNrIFwKLSsJICAmJiBjaG1vZCAtUiBhLXcgIiQkZGNfaW5zdGFs bF9iYXNlIiBcCi0rCSAgJiYgKHsgXAotKwkgICAgICAgKGNkIC4uLy4uICYmIHVtYXNrIDA3NyAm JiBta2RpciAiJCRkY19kZXN0ZGlyIikgXAotKwkgICAgICAgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgREVTVERJUj0iJCRkY19kZXN0ZGlyIiBpbnN0YWxsIFwKLSsJICAgICAgICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIERFU1RESVI9IiQkZGNfZGVzdGRpciIgdW5pbnN0YWxsIFwKLSsJ ICAgICAgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIERFU1RESVI9IiQkZGNfZGVzdGRpciIg XAotKwkgICAgICAgICAgICBkaXN0dW5pbnN0YWxsY2hlY2tfZGlyPSIkJGRjX2Rlc3RkaXIiIGRp c3R1bmluc3RhbGxjaGVjazsgXAotKwkgICAgICB9IHx8IHsgcm0gLXJmICIkJGRjX2Rlc3RkaXIi OyBleGl0IDE7IH0pIFwKLSsJICAmJiBybSAtcmYgIiQkZGNfZGVzdGRpciIgXAotKwkgICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGRpc3QgXAotKwkgICYmIHJtIC1yZiAkKERJU1RfQVJDSElW RVMpIFwKLSsJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkaXN0Y2xlYW5jaGVjayBcCi0r CSAgJiYgY2QgIiQkYW1fX2N3ZCIgXAotKwkgIHx8IGV4aXQgMQotKwkkKGFtX19yZW1vdmVfZGlz dGRpcikKLSsJQChlY2hvICIkKGRpc3RkaXIpIGFyY2hpdmVzIHJlYWR5IGZvciBkaXN0cmlidXRp b246ICI7IFwKLSsJICBsaXN0PSckKERJU1RfQVJDSElWRVMpJzsgZm9yIGkgaW4gJCRsaXN0OyBk byBlY2hvICQkaTsgZG9uZSkgfCBcCi0rCSAgc2VkIC1lIDFoIC1lIDFzLy4vPS9nIC1lIDFwIC1l IDF4IC1lICckJHAnIC1lICckJHgnCi0rZGlzdHVuaW5zdGFsbGNoZWNrOgotKwlAJChhbV9fY2Qp ICckKGRpc3R1bmluc3RhbGxjaGVja19kaXIpJyBcCi0rCSYmIHRlc3QgYCQoZGlzdHVuaW5zdGFs bGNoZWNrX2xpc3RmaWxlcykgfCB3YyAtbGAgLWxlIDEgXAotKwkgICB8fCB7IGVjaG8gIkVSUk9S OiBmaWxlcyBsZWZ0IGFmdGVyIHVuaW5zdGFsbDoiIDsgXAotKwkgICAgICAgIGlmIHRlc3QgLW4g IiQoREVTVERJUikiOyB0aGVuIFwKLSsJICAgICAgICAgIGVjaG8gIiAgKGNoZWNrIERFU1RESVIg c3VwcG9ydCkiOyBcCi0rCSAgICAgICAgZmkgOyBcCi0rCSAgICAgICAgJChkaXN0dW5pbnN0YWxs Y2hlY2tfbGlzdGZpbGVzKSA7IFwKLSsJICAgICAgICBleGl0IDE7IH0gPiYyCi0rZGlzdGNsZWFu Y2hlY2s6IGRpc3RjbGVhbgotKwlAaWYgdGVzdCAnJChzcmNkaXIpJyA9IC4gOyB0aGVuIFwKLSsJ ICBlY2hvICJFUlJPUjogZGlzdGNsZWFuY2hlY2sgY2FuIG9ubHkgcnVuIGZyb20gYSBWUEFUSCBi dWlsZCIgOyBcCi0rCSAgZXhpdCAxIDsgXAotKwlmaQotKwlAdGVzdCBgJChkaXN0Y2xlYW5jaGVj a19saXN0ZmlsZXMpIHwgd2MgLWxgIC1lcSAwIFwKLSsJICB8fCB7IGVjaG8gIkVSUk9SOiBmaWxl cyBsZWZ0IGluIGJ1aWxkIGRpcmVjdG9yeSBhZnRlciBkaXN0Y2xlYW46IiA7IFwKLSsJICAgICAg ICQoZGlzdGNsZWFuY2hlY2tfbGlzdGZpbGVzKSA7IFwKLSsJICAgICAgIGV4aXQgMTsgfSA+JjIK LStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQotK2FsbC1hbTogTWFr ZWZpbGUgJChTQ1JJUFRTKSAkKERBVEEpCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vy c2l2ZQotK2luc3RhbGxkaXJzLWFtOgotKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChiaW5kaXIp IiAiJChERVNURElSKSQobTRkYXRhZGlyKSIgIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiOyBk byBcCi0rCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAotKwlkb25l Ci0raW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhl Yy1yZWN1cnNpdmUKLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKLSt1bmlu c3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsK LStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKLStpbnN0YWxsLXN0cmlwOgot KwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJ UF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BS T0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScg fHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVAp JyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0r Ci0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUyki IHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQoc3JjZGlyKSIg fHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJ R19DTEVBTl9WUEFUSF9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBl Y2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJ QGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRv IHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1m ICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQotKwotK2Ns ZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KLSsKLStk aXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mICQoYW1fX0NPTkZJR19ESVNU Q0xFQU5fRklMRVMpCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0g ZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4tdGFncwot KwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vy c2l2ZQotKwotK2h0bWwtYW06Ci0rCi0raW5mbzogaW5mby1yZWN1cnNpdmUKLSsKLStpbmZvLWFt OgotKwotK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1tNGRhdGFEQVRBIGluc3RhbGwtcGtnY29u ZmlnREFUQQotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKLSsKLStpbnN0 YWxsLWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtYmluU0NSSVBUUwotKwot K2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaHRtbC1h bToKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxs LWluZm8tYW06Ci0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRm LXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcGRmLWFtOgotKwotK2luc3RhbGwtcHM6IGluc3RhbGwt cHMtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wcy1hbToKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0r Ci0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1m ICQoYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMpCi0rCS1ybSAtcmYgJCh0b3Bfc3JjZGlyKS9h dXRvbTR0ZS5jYWNoZQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBk aXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1v c3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5l cmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1cnNpdmUKLSsKLStwZGYt YW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbTog dW5pbnN0YWxsLWJpblNDUklQVFMgdW5pbnN0YWxsLWxvY2FsIFwKLSsJdW5pbnN0YWxsLW00ZGF0 YURBVEEgdW5pbnN0YWxsLXBrZ2NvbmZpZ0RBVEEKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJaW5z dGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZlCi0rCi0rLlBIT05ZOiAkKFJFQ1VS U0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0r CWFsbCBhbGwtYW0gYW0tLXJlZnJlc2ggY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJp YyBcCi0rCWNsZWFuLWxpYnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3QgZGlzdC1hbGwg ZGlzdC1iemlwMiBcCi0rCWRpc3QtZ3ppcCBkaXN0LWx6bWEgZGlzdC1zaGFyIGRpc3QtdGFyWiBk aXN0LXh6IGRpc3QtemlwIFwKLSsJZGlzdGNoZWNrIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJp YyBkaXN0Y2xlYW4tbGlidG9vbCBcCi0rCWRpc3RjbGVhbi10YWdzIGRpc3RjbGVhbmNoZWNrIGRp c3RkaXIgZGlzdHVuaW5zdGFsbGNoZWNrIGR2aSBcCi0rCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5m byBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCi0rCWluc3RhbGwtYmluU0NSSVBUUyBpbnN0 YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKLSsJaW5zdGFsbC1kdmktYW0g aW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgXAotKwlpbnN0YWxsLWh0 bWwtYW0gaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBcCi0rCWluc3RhbGwtbTRkYXRhREFU QSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCi0rCWluc3RhbGwtcGtn Y29uZmlnREFUQSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCi0rCWlu c3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gXAot KwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBc Ci0rCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBz IHBzLWFtIFwKLSsJdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIFwK LSsJdW5pbnN0YWxsLWJpblNDUklQVFMgdW5pbnN0YWxsLWxvY2FsIHVuaW5zdGFsbC1tNGRhdGFE QVRBIFwKLSsJdW5pbnN0YWxsLXBrZ2NvbmZpZ0RBVEEKLSsKLStAU0VUX01BS0VACi0rCi0rIyBU YXJnZXRzCi0rdW5pbnN0YWxsLWxvY2FsOgotKwlybSAtcmYgJChERVNURElSKSQoaW5jbHVkZWRp cikvQFBBQ0tBR0VACi0rCi0rZGlzdC1odG1sOgotKwkkKE1BS0UpIC1DIGRvYyBkaXN0LWh0bWwK LSsKLStzbmFwc2hvdDogc25hcHNob3Qtc3JjIHNuYXBzaG90LWh0bWwKLSsKLStzbmFwc2hvdC1z cmM6Ci0rICAgICAgICAkKE1BS0UpIGRpc3QgZGlzdGRpcj1AUEFDS0FHRV9UQVJOQU1FQC1gZGF0 ZSArIiVZJW0lZCJgCi0rCi0rc25hcHNob3QtaHRtbDoKLSsJJChNQUtFKSAtQyBkb2MgZGlzdC1o dG1sIGh0bWxfdGFybmFtZT1AUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1gZGF0ZSArIiVZJW0l ZCJgCi0rCi0rdXBsb2FkOiB1cGxvYWQtc3JjIHVwbG9hZC1odG1sCi0rCi0rdXBsb2FkLXNyYzog ZGlzdAotKwlAVVBMT0FEX0NPTU1BTkRAIEBQQUNLQUdFX1RBUk5BTUVALUBWRVJTSU9OQC50YXIu Z3ogXAotKwlAUEFDS0FHRV9UQVJOQU1FQC1AVkVSU0lPTkAudGFyLmJ6MgotKwotK3VwbG9hZC1o dG1sOiBkaXN0LWh0bWwKLSsJQFVQTE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJOQU1FQC1odG1s LWRvYy1AVkVSU0lPTkAudGFyLmd6IFwKLSsJQFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtQFZF UlNJT05ALnRhci5iejIKLSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1h a2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxp bWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9tYW4vTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVw MzAwL21hbi9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9NYWtlZmlsZS5h bQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9tYW4vTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTozNzowOS4wMDAwMDAwMDAgKzAyMDAK LUBAIC0wLDAgKzEsNCBAQAotKyMgTWFuIHBhZ2VzCi0rbWFuX01BTlMgPSBzb2NpLWNvbmZpZy4x Ci0rCi0rRVhUUkFfRElTVCA9ICQobWFuX01BTlMpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svbWFuL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vTWFrZWZpbGUuaW4KLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9tYW4vTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL01ha2VmaWxlLmluCTIw MTAtMDEtMjMgMTQ6NDQ6NTEuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDQ5NCBAQAotKyMg TWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFt LgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwg MTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQs IDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwK LSsjIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29w eSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25z LCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7 IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VA Ci0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAot K3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQo bGliZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FH RUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUiki ICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0 YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAk KGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFu c2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0r UFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6 Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0 ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK3N1YmRpciA9IG1hbgotK0RJU1Rf Q09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbgotK0FD TE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBz ID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2ku bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRv b2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJz aW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3Jj ZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200 X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtp bnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVp bGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVB Tl9WUEFUSF9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLSthbV9fdnBhdGhf YWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcn YDsKLSthbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAotKyAgICAkKHNyY2RpcikvKikgZj1g ZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAotKyAgICAqKSBmPSQk cDs7IFwKLSsgIGVzYWM7Ci0rYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdz fF4uKi98fCdgOwotK2FtX19pbnN0YWxsX21heCA9IDQwCi0rYW1fX25vYmFzZV9zdHJpcF9zZXR1 cCA9IFwKLSsgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRc XCp8XS9cXFxcJi9nJ2AKLSthbV9fbm9iYXNlX3N0cmlwID0gXAotKyAgZm9yIHAgaW4gJCRsaXN0 OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkIC1lICJzfCQkc3JjZGlyc3RyaXAvfHwiCi0rYW1f X25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAotKyAgZm9yIHAgaW4g JCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKLSsgIHNlZCAic3wgJCRzcmNkaXJz dHJpcC98IHw7IicgLyAuKlwvLyFzLyAuKi8gLi87IHMsXCggLipcKS9bXi9dKiQkLFwxLCcgfCBc Ci0rICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmls ZXNbJCQyXSAiICIgJCQxOyBcCi0rICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21h eCkpIFwKLSsgICAgICB7IHByaW50ICQkMiwgZmlsZXNbJCQyXTsgblskJDJdID0gMDsgZmlsZXNb JCQyXSA9ICIiIH0gfSBcCi0rICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIs IGZpbGVzW2Rpcl0gfScKLSthbV9fYmFzZV9saXN0ID0gXAotKyAgc2VkICckJCFOOyQkIU47JCQh TjskJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJyB8IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQk IU47JCQhTjtzL1xuLyAvZycKLSttYW4xZGlyID0gJChtYW5kaXIpL21hbjEKLSthbV9faW5zdGFs bGRpcnMgPSAiJChERVNURElSKSQobWFuMWRpcikiCi0rTlJPRkYgPSBucm9mZgotK01BTlMgPSAk KG1hbl9NQU5TKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAk KFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0g QEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIg PSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JP T1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09T VF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNU RU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStC T09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElC QAotK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAotK0JPT1NU X1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09T VF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJP T1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJ WkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStC T09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9 IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJP T1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVS U0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05f TElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENG TEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZM QUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklH QAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQ UFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQ TU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9 IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVU SUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NA Ci0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQ QAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZ X1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lO U1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RB TExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFM TF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JB TUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpT QAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAot K0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1B S0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZM QUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlTUUxf RElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNR TF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBP QkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNA Ci0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9M REZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JB Q0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAK LStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdS RVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9 IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAot K1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBA UEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdA Ci0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9E SVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNR TF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0r UkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBA U0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVB REVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9 IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0g QFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0g QGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fi c190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAot K2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklO QAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9f bGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190 YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxk ID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBi dWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxk X3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0r ZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2Rp ciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlk aXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhA Ci0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9h bGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9z dF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVk aXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBp bnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0r bGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9j YWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK2x0X0VDSE8gPSBAbHRfRUNIT0AKLSttYW5k aXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9s ZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3By b2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9 IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFy ZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2Nv bmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3Rv cF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9w X2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLSsKLSsjIE1hbiBwYWdlcwot K21hbl9NQU5TID0gc29jaS1jb25maWcuMQotK0VYVFJBX0RJU1QgPSAkKG1hbl9NQU5TKQotK2Fs bDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3Jj ZGlyKS9NYWtlZmlsZS5hbSAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/ OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRk ZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhl biBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBl c2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFL RSkgLS1nbnUgbWFuL01ha2VmaWxlJzsgXAotKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBc Ci0rCSAgJChBVVRPTUFLRSkgLS1nbnUgbWFuL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmls ZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZp Zy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAg ICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNI RUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7 IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMg JChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRv cF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05G SUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6 ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9j YWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoCi0rJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKLSsKLSttb3N0bHljbGVh bi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYg LmxpYnMgX2xpYnMKLStpbnN0YWxsLW1hbjE6ICQobWFuX01BTlMpCi0rCUAkKE5PUk1BTF9JTlNU QUxMKQotKwl0ZXN0IC16ICIkKG1hbjFkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJCht YW4xZGlyKSIKLSsJQGxpc3Q9Jyc7IHRlc3QgLW4gIiQobWFuMWRpcikiIHx8IGV4aXQgMDsgXAot Kwl7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZTsgXAotKwlsMj0nJChtYW5f TUFOUyknOyBmb3IgaSBpbiAkJGwyOyBkbyBlY2hvICIkJGkiOyBkb25lIHwgXAotKwkgIHNlZCAt biAnL1wuMVthLXpdKiQkL3AnOyBcCi0rCX0gfCB3aGlsZSByZWFkIHA7IGRvIFwKLSsJICBpZiB0 ZXN0IC1mICQkcDsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLSsJICBlY2hv ICIkJGQkJHAiOyBlY2hvICIkJHAiOyBcCi0rCWRvbmUgfCBcCi0rCXNlZCAtZSAnbjtzLC4qLyws O3A7aDtzLC4qXC4sLDtzLF5bXjFdWzAtOWEtel0qJCQsMSw7eCcgXAotKwkgICAgICAtZSAncyxc LlswLTlhLXpdKiQkLCw7JCh0cmFuc2Zvcm0pO0c7cyxcbiwuLCcgfCBcCi0rCXNlZCAnTjtOO3Ms XG4sICxnJyB8IHsgXAotKwlsaXN0PTsgd2hpbGUgcmVhZCBmaWxlIGJhc2UgaW5zdDsgZG8gXAot KwkgIGlmIHRlc3QgIiQkYmFzZSIgPSAiJCRpbnN0IjsgdGhlbiBsaXN0PSIkJGxpc3QgJCRmaWxl IjsgZWxzZSBcCi0rCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICckJGZpbGUnICckKERFU1RE SVIpJChtYW4xZGlyKS8kJGluc3QnIjsgXAotKwkgICAgJChJTlNUQUxMX0RBVEEpICIkJGZpbGUi ICIkKERFU1RESVIpJChtYW4xZGlyKS8kJGluc3QiIHx8IGV4aXQgJCQ/OyBcCi0rCSAgZmk7IFwK LSsJZG9uZTsgXAotKwlmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCAkKGFt X19iYXNlX2xpc3QpIHwgXAotKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCi0rCSAgdGVzdCAteiAi JCRmaWxlcyIgfHwgeyBcCi0rCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgJyQo REVTVERJUikkKG1hbjFkaXIpJyI7IFwKLSsJICAgICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICIk KERFU1RESVIpJChtYW4xZGlyKSIgfHwgZXhpdCAkJD87IH07IFwKLSsJZG9uZTsgfQotKwotK3Vu aW5zdGFsbC1tYW4xOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJzsgdGVzdCAt biAiJChtYW4xZGlyKSIgfHwgZXhpdCAwOyBcCi0rCWZpbGVzPWB7IGZvciBpIGluICQkbGlzdDsg ZG8gZWNobyAiJCRpIjsgZG9uZTsgXAotKwlsMj0nJChtYW5fTUFOUyknOyBmb3IgaSBpbiAkJGwy OyBkbyBlY2hvICIkJGkiOyBkb25lIHwgXAotKwkgIHNlZCAtbiAnL1wuMVthLXpdKiQkL3AnOyBc Ci0rCX0gfCBzZWQgLWUgJ3MsLiovLCw7aDtzLC4qXC4sLDtzLF5bXjFdWzAtOWEtel0qJCQsMSw7 eCcgXAotKwkgICAgICAtZSAncyxcLlswLTlhLXpdKiQkLCw7JCh0cmFuc2Zvcm0pO0c7cyxcbiwu LCdgOyBcCi0rCXRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAotKwkgIGVjaG8gIiAoIGNkICckKERF U1RESVIpJChtYW4xZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCi0rCSAgY2QgIiQoREVT VERJUikkKG1hbjFkaXIpIiAmJiBybSAtZiAkJGZpbGVzOyB9Ci0rdGFnczogVEFHUwotK1RBR1M6 Ci0rCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6Ci0rCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMp Ci0rCUBsaXN0PSckKE1BTlMpJzsgaWYgdGVzdCAtbiAiJCRsaXN0IjsgdGhlbiBcCi0rCSAgbGlz dD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBkPTsg ZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkZCQkcCI7IHRo ZW4gZWNobyAiJCRkJCRwIjsgZWxzZSA6OyBmaTsgZG9uZWA7IFwKLSsJICBpZiB0ZXN0IC1uICIk JGxpc3QiICYmIFwKLSsJICAgIGdyZXAgJ2FiIGhlbHAybWFuIGlzIHJlcXVpcmVkIHRvIGdlbmVy YXRlIHRoaXMgcGFnZScgJCRsaXN0ID4vZGV2L251bGw7IHRoZW4gXAotKwkgICAgZWNobyAiZXJy b3I6IGZvdW5kIG1hbiBwYWdlcyBjb250YWluaW5nIHRoZSBcYG1pc3NpbmcgaGVscDJtYW4nIHJl cGxhY2VtZW50IHRleHQ6IiA+JjI7IFwKLSsJICAgIGdyZXAgLWwgJ2FiIGhlbHAybWFuIGlzIHJl cXVpcmVkIHRvIGdlbmVyYXRlIHRoaXMgcGFnZScgJCRsaXN0IHwgc2VkICdzL14vICAgICAgICAg LycgPiYyOyBcCi0rCSAgICBlY2hvICIgICAgICAgdG8gZml4IHRoZW0sIGluc3RhbGwgaGVscDJt YW4sIHJlbW92ZSBhbmQgcmVnZW5lcmF0ZSB0aGUgbWFuIHBhZ2VzOyIgPiYyOyBcCi0rCSAgICBl Y2hvICIgICAgICAgdHlwaWNhbGx5IFxgbWFrZSBtYWludGFpbmVyLWNsZWFuJyB3aWxsIHJlbW92 ZSB0aGVtIiA+JjI7IFwKLSsJICAgIGV4aXQgMTsgXAotKwkgIGVsc2UgOjsgZmk7IFwKLSsJZWxz ZSA6OyBmaQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14k JFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIp IiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMp JzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7 IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAg LWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNl ICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmls ZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCws JyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRk aXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7 IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQk ZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9d KiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwK LSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1l eGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAk KHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAg IGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwK LSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1l eGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQv JCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAg dGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUg IiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlk b25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTogTWFrZWZp bGUgJChNQU5TKQotK2luc3RhbGxkaXJzOgotKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChtYW4x ZGlyKSI7IGRvIFwKLSsJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBc Ci0rCWRvbmUKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4 ZWMtYW0KLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQotK3VuaW5zdGFsbDogdW5pbnN0 YWxsLWFtCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0 YWxsY2hlY2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJ TlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxf c2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9 LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9Q Uk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1n ZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10 ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJ TEVTKQotKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5f VlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKLSsKLStt YWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5k ZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhh dCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotK2NsZWFuOiBjbGVhbi1h bQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4t YW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0 Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljCi0rCi0rZHZpOiBkdmktYW0KLSsK LStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1hbQotKwotK2h0bWwtYW06Ci0rCi0raW5mbzogaW5m by1hbQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW1hbgotKwot K2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2lu c3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQotKwotK2lu c3RhbGwtaHRtbC1hbToKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQotKwotK2lu c3RhbGwtaW5mby1hbToKLSsKLStpbnN0YWxsLW1hbjogaW5zdGFsbC1tYW4xCi0rCi0raW5zdGFs bC1wZGY6IGluc3RhbGwtcGRmLWFtCi0rCi0raW5zdGFsbC1wZGYtYW06Ci0rCi0raW5zdGFsbC1w czogaW5zdGFsbC1wcy1hbQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFt OgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJLXJtIC1mIE1h a2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xl YW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwotK21vc3RseWNs ZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6 IHBkZi1hbQotKwotK3BkZi1hbToKLSsKLStwczogcHMtYW0KLSsKLStwcy1hbToKLSsKLSt1bmlu c3RhbGwtYW06IHVuaW5zdGFsbC1tYW4KLSsKLSt1bmluc3RhbGwtbWFuOiB1bmluc3RhbGwtbWFu MQotKwotKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6IGFsbCBh bGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwK LSsJZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIg ZHZpIFwKLSsJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxs LWFtIFwKLSsJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxs LWR2aS1hbSBcCi0rCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGlu c3RhbGwtaHRtbC1hbSBcCi0rCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1t YW4gaW5zdGFsbC1tYW4xIFwKLSsJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1w cyBpbnN0YWxsLXBzLWFtIFwKLSsJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNo ZWNrLWFtIGluc3RhbGxkaXJzIFwKLSsJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFu LWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAotKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFu LWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCi0rCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0g dW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtbWFuMQotKwotKwotKyMgVGVsbCB2ZXJzaW9ucyBbMy41 OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhl cndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQu Ci0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9zb2NpLWNvbmZp Zy4xIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vc29jaS1jb25maWcuMQotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL21hbi9zb2NpLWNvbmZpZy4xCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL21hbi9zb2NpLWNvbmZpZy4xCTIwMDktMDQtMTYg MTk6Mzc6MDkuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDM5IEBACi0rLlRIIFNPQ0kgMSAi MjggTWFyY2ggMjAwOSIKLSsuU0ggTkFNRQotK3NvY2ktY29uZmlnIC0gc2NyaXB0IHRvIGdldCB2 ZXJzaW9uIG51bWJlciBhbmQgY29tcGlsZXIgZmxhZ3Mgb2YgdGhlIGluc3RhbGxlZCBTT0NJIGxp YnJhcnkKLSsuU0ggU1lOT1BTSVMKLSsuQiBzb2NpLWNvbmZpZwotK1tcLVwtcHJlZml4XSAgW1wt XC12ZXJzaW9uXSBbXC1cLWxpYnNdIFtcLVwtY2ZsYWdzXQotKy5TSCBERVNDUklQVElPTgotKy5Q UAotK1xmSXNvY2ktY29uZmlnXGZQIGlzIGEgdG9vbCB0aGF0IGlzIHVzZWQgdG8gY29uZmlndXJl IHRvIGRldGVybWluZQotK3RoZSBjb21waWxlciBhbmQgbGlua2VyIGZsYWdzIHRoYXQgc2hvdWxk IGJlIHVzZWQgdG8gY29tcGlsZQotK2FuZCBsaW5rIHByb2dyYW1zIHRoYXQgdXNlIFxmSVNPQ0lc ZlAuIEl0IGlzIGFsc28gdXNlZCBpbnRlcm5hbGx5Ci0rdG8gdGhlIC5tNCBtYWNyb3MgZm9yIEdO VSBhdXRvY29uZiB0aGF0IGFyZSBpbmNsdWRlZCB3aXRoIFxmSVNPQ0lcZlAuCi0rLgotKy5TSCBP UFRJT05TCi0rLmwKLStcZklzb2NpLWNvbmZpZ1xmUCBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgb3B0 aW9uczoKLSsuVFAgOAotKy5CICBcLVwtdmVyc2lvbgotK1ByaW50IHRoZSBjdXJyZW50bHkgaW5z dGFsbGVkIHZlcnNpb24gb2YgXGZJU09DSVxmUCBvbiB0aGUgc3RhbmRhcmQgb3V0cHV0LgotKy5U UCA4Ci0rLkIgIFwtXC1saWJzCi0rUHJpbnQgdGhlIGxpbmtlciBmbGFncyB0aGF0IGFyZSBuZWNl c3NhcnkgdG8gbGluayBhIFxmSVNPQ0lcZlAgcHJvZ3JhbSwgd2l0aCBjYmxhcwotKy5UUCA4Ci0r LkIgIFwtXC1jZmxhZ3MKLStQcmludCB0aGUgY29tcGlsZXIgZmxhZ3MgdGhhdCBhcmUgbmVjZXNz YXJ5IHRvIGNvbXBpbGUgYSBcZklTT0NJXGZQIHByb2dyYW0uCi0rLlRQIDgKLSsuQiAgXC1cLXBy ZWZpeAotK1Nob3cgdGhlIFNPQ0kgaW5zdGFsbGF0aW9uIHByZWZpeC4KLSsuU0ggU0VFIEFMU08K LSsuQlIgZ3RrLWNvbmZpZyAoMSksCi0rLkJSIGdub21lLWNvbmZpZyAoMSkKLSsuU0ggQ09QWVJJ R0hUCi0rQ29weXJpZ2h0IFwoY28gIDIwMDkgRGVuaXMgQXJuYXVkCi0rCi0rUGVybWlzc2lvbiB0 byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBhbmQgaXRz Ci0rZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2UgYW5kIHdpdGhvdXQgZmVlIGlzIGhlcmVi eSBncmFudGVkLAotK3Byb3ZpZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBw ZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQKLStib3RoIHRoYXQgY29weXJpZ2h0IG5vdGljZSBh bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4KLStzdXBwb3J0aW5nIGRvY3VtZW50 YXRpb24uCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svTkVXUyBzb2NpLTMuMC4wX3RyZXAz MDAvTkVXUwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL05FV1MJMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTkVXUwkyMDA5LTA0LTE2IDE5 OjM3OjEwLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwzIEBACi0rCi0rKiBXZWQgTWFyIDI2 IDIwMDkgUlBNIHJlbGVhc2UgZm9yIHZlcnNpb24gMy4wLjAKLSsKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmFtCTIwMDktMDQtMjgg MjM6MTU6MTQuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDkgQEAKLStpbmNsdWRlICQodG9w X3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rCi0rIyMgU291cmNlIGRpcmVjdG9yeQotKwotK01B SU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLStTVUJESVJTID0gQE1ZU1FMX0RJ UlNAIEBQT1NUR1JFU1FMX0RJUlNAIEBPUkFDTEVfRElSU0AKLSsKLStFWFRSQV9ESVNUID0KLWRp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmluIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL01ha2VmaWxl LmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTEuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDYxNyBA QAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2Vm aWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwg MTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMs IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwKLSsjIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24g dG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmlj YXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBi eSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VU X01BS0VACi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNL QUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRp ciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9A UEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFS QVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQK LStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJ UFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkK LSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwg PSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RB TEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90 cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0g JChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCi0rCSQodG9wX3Ny Y2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGlyID0gc29jaS9iYWNrZW5kcwotK0FDTE9DQUxf TTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9j b25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMp ICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxs ZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIp L3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFU SF9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLStSRUNVUlNJVkVfVEFSR0VU UyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1s LXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5z dGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0 bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1 cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxs Y2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJ cHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VU UyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFu LXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0FNX1JFQ1VSU0lWRV9UQVJH RVRTID0gJChSRUNVUlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAotKwkkKFJFQ1VSU0lWRV9D TEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAotKwlkaXN0 ZGlyCi0rRVRBR1MgPSBldGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNV QkRJUlMpCi0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVY SU5GT1MpICQoRVhUUkFfRElTVCkKLSthbV9fcmVsYXRpdml6ZSA9IFwKLSsgIGRpcjA9YHB3ZGA7 IFwKLSsgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAotKyAgc2VkX3Jlc3Q9 J3MsXlteL10qLyosLCc7IFwKLSsgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBc Ci0rICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKLSsgIHdoaWxlIHRlc3QgLW4gIiQk ZGlyMSI7IGRvIFwKLSsgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2Zp cnN0ImA7IFwKLSsgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKLSsgICAgICBp ZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4gXAotKyAgICAgICAgZGlyMj1gZWNobyAiJCRk aXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCi0rICAgICAgICBkaXIwPWBl Y2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKLSsgICAgICBlbHNlIFwK LSsgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsg XAotKyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKLSsgICAg ICAgICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICAg ICAgICBlbHNlIFwKLSsgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAotKyAgICAgICAgZmk7 IFwKLSsgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCi0rICAgICAgZmk7IFwKLSsg ICAgZmk7IFwKLSsgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJg OyBcCi0rICBkb25lOyBcCi0rICByZWxkaXI9IiQkZGlyMiIKLStBQ0xPQ0FMID0gQEFDTE9DQUxA Ci0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0r QVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9 IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVf TElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9P U1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVB TVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJP T1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9M SUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNf TElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdF WF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJP T1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05B TFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9U SFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9 IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VS SUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStD RkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0r Q1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQ VU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZF UlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQ UEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0r Q1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJ UkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19D ID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdS RVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5F UklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0g QEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RB VEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQ VCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9T VFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpT ID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBP ID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFL RUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9 IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElS UyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJT SU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStP QkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBP UkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStP UkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVS U0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9 IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQ QUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tB R0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdF X1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NF UEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0g QFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQ T1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9 IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxf VkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNF QAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExA Ci0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlT UUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BP U1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVE QAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAot K1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fi c19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVp bGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBA YWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFj X2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdf ZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190 YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5k aXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVp bGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5k b3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBA ZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZf b2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZp ZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBl eGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlh cyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9z dF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJA Ci0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0 YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0g QGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2Fs ZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9F Q0hPQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1 ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBw cmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1l QAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2Vk X29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNk aXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRf YWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWls ZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQ UEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rTUFJTlRBSU5FUkNM RUFORklMRVMgPSBNYWtlZmlsZS5pbgotK1NVQkRJUlMgPSBATVlTUUxfRElSU0AgQFBPU1RHUkVT UUxfRElSU0AgQE9SQUNMRV9ESVJTQAotK0VYVFJBX0RJU1QgPSAKLSthbGw6IGFsbC1yZWN1cnNp dmUKLSsKLSsuU1VGRklYRVM6Ci0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01h a2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9k ZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9k ZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKLSsJICAgICAgICAm JiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAotKwkg ICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRv cF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvTWFrZWZpbGUnOyBc Ci0rCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBz b2NpL2JhY2tlbmRzL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAk KHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNh c2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikg XAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5z dGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQo YW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29u ZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVO REVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1 cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJ Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo Ci0rJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwkt cm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLSsK LSsjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVu dDsgeW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcg dGhyb3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2Un IHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsjICgxKSBpZiB0aGUg dmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycK LSsjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVk IHdoZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJl ZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNVUlNJVkVfVEFSR0VU Uyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxB R1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJ ICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAot Kwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9g OyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkg IGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVzOyBcCi0rCSAgICBsb2NhbF90 YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIk JHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNv bTsgXAotKwlkb25lOyBcCi0rCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0r CSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJ Zmk7IHRlc3QgLXogIiQkZmFpbCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJ QGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8g XAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsq KSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9z ZWVuPW5vOyBcCi0rCWNhc2UgIiRAIiBpbiBcCi0rCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVy LWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VC RElSUyknIDs7IFwKLSsJZXNhYzsgXAotKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBk byBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAg cmV2PSIkJHN1YmRpciAkJHJldiI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRy ZXYgLiI7IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlm b3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQk c3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBs b2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQk ZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKLSt0YWdzLXJlY3Vyc2l2ZToK LSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVz dCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQo U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGly IiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBj dGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAk KFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsK LStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBF TkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwlzZXQgeDsgXAotKwloZXJl PWBwd2RgOyBcCi0rCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rl di9udWxsIDI+JjE7IHRoZW4gXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsg XAotKwkgIGVtcHR5X2ZpeD0uOyBcCi0rCWVsc2UgXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5j bHVkZTsgXAotKwkgIGVtcHR5X2ZpeD07IFwKLSsJZmk7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsg dGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKLSsJICAg ICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAot KwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJ U1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0r CSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIp LyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsg bm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBp biBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXNoaWZ0OyBcCi0rCWlmIHRlc3QgLXogIiQo RVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1 bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0 aGVuIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVU QUdTX0FSR1MpIFwKLSsJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKLSsJICBlbHNlIFwKLSsJICAg ICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwK LSsJICAgICAgJCR1bmlxdWU7IFwKLSsJICBmaTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NU QUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5E RU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQo Q1RBR1NfQVJHUykkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChB TV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHVuaXF1ZQotKwotK0dUQUdT OgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmICQo YW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIk JGhlcmUiCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFH UyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJz dHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwK LSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRc XCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxl cz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQg LWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJz dHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwK LSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2Vk ICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQg LXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJ ICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0k KHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAg IGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBp ZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAotKwkgICAgICBmaW5kICIkKGRp c3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30g XDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYg dGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLWZwUiAkKHNyY2Rpcikv JCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgICAgICBmaW5kICIkKGRp c3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30g XDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikk JGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIp LyQkZmlsZSIgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUi IFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJQGxpc3Q9JyQoRElT VF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRz dWJkaXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJ ICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJQGxpc3Q9JyQoRElTVF9TVUJE SVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRp cikvJCRzdWJkaXIiOyBcCi0rCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAotKwkgICAgbmV3X2Rp c3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3Rk aXIpIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld190b3BfZGlzdGRp cj0kJHJlbGRpcjsgXAotKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3 X2Rpc3RkaXIiIFxcIjsgXAotKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBh bV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAot KwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCi0rCSAgICAgICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIFwKLSsJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKLSsJ ICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCi0rCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9 OiBcCi0rCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCi0rCQlhbV9fc2tpcF9tb2RlX2ZpeD06 IFwKLSsJICAgICAgICBkaXN0ZGlyKSBcCi0rCSAgICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBc Ci0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQotK2Fs bC1hbTogTWFrZWZpbGUKLStpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCi0raW5z dGFsbGRpcnMtYW06Ci0raW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKLStpbnN0YWxsLWV4ZWM6 IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1 cnNpdmUKLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWFtOiBh bGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxs LWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKLStpbnN0 YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQo SU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNU QUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16 ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBS T0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFu LWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19D TEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0g IiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBy bSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdl bmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJz IHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVj aWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxF UykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLXJlY3Vy c2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xl YW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mIE1ha2Vm aWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4t dGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1s LXJlY3Vyc2l2ZQotKwotK2h0bWwtYW06Ci0rCi0raW5mbzogaW5mby1yZWN1cnNpdmUKLSsKLStp bmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1k dmktcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1kdmktYW06Ci0rCi0raW5zdGFsbC1leGVjLWFtOgot KwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaHRt bC1hbToKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0 YWxsLWluZm8tYW06Ci0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwt cGRmLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcGRmLWFtOgotKwotK2luc3RhbGwtcHM6IGluc3Rh bGwtcHMtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wcy1hbToKLSsKLStpbnN0YWxsY2hlY2stYW06 Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJt IC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWlu ZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUK LSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0 b29sCi0rCi0rcGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1yZWN1 cnNpdmUKLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6ICQoUkVDVVJT SVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vyc2l2ZSBc Ci0rCWluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQotKwotKy5QSE9OWTog JChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RB R1MgXAotKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xl YW4tbGlidG9vbCBcCi0rCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFu LWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2 aSBkdmktYW0gaHRtbCBcCi0rCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1h bSBpbnN0YWxsLWRhdGEgXAotKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1k dmktYW0gaW5zdGFsbC1leGVjIFwKLSsJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0 YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKLSsJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFu IGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKLSsJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFt IGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKLSsJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxk aXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFu LWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFu LWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKLSsJdW5p bnN0YWxsIHVuaW5zdGFsbC1hbQotKwotK0BTRVRfTUFLRUAKLSsKLSsjIFRlbGwgdmVyc2lvbnMg WzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMg T3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2Vl ZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL215c3FsL2NvbW1vbi5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlz cWwvY29tbW9uLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwv Y29tbW9uLmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAJMjAwOS0wNC0xNiAx OTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC02LDcgKzYsMTMgQEAKLSAvLwotIAotICNpbmNs dWRlICJjb21tb24uaCIKLS0jaW5jbHVkZSAic29jaS1iYWNrZW5kLmgiCi0rLy8KLSsjaWYgZGVm aW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Nv Y2ktYmFja2VuZC5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsjZW5k aWYKLSsvLwotICNpbmNsdWRlIDxjaXNvNjQ2PgotICNpbmNsdWRlIDxjc3RkbGliPgotICNpbmNs dWRlIDxjdGltZT4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215 c3FsL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01h a2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtl ZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6 Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDI2IEBACi0rIyMgYmFja2VuZHMvbXlz cWwgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24K LStpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMg PSBNYWtlZmlsZS5pbgotKwotK1NVQkRJUlMgPSAuIHRlc3QKLSsKLStpZiBIQVZFX01ZU1FMCi0r bGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX215c3FsLmxhCi0rCi0rbGlic29jaV9teXNxbF9sYV9T T1VSQ0VTPSAkKGJja19teXNxbF9oX3NvdXJjZXMpICQoYmNrX215c3FsX2NjX3NvdXJjZXMpIAot K2xpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MgPSAkKE1ZU1FMX0NGTEFHUykKLStsaWJzb2NpX215 c3FsX2xhX0xJQkFERCA9Ci0rbGlic29jaV9teXNxbF9sYV9MREZMQUdTID0gXAotKwkkKEJPT1NU X0xJQlMpICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElC KSBcCi0rCS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLStwa2dp bmNsdWRlX0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1t eXNxbC5oCi0rZW5kaWYKLStpZiBTT0NJX0hFQURFUlNfQlVSSUVECi0rc29jaV9pbmNsdWRlX2Rp ciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9teXNxbAotK2Vsc2UKLStzb2NpX2luY2x1 ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK2VuZGlmCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9p bmNsdWRlX2RpcikKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215 c3FsL01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3Fs L01ha2VmaWxlLmJhc2ljCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNx bC9NYWtlZmlsZS5iYXNpYwkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAotKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmJhc2ljCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi1AQCAtMSw5NyArMCwwIEBACi0tIyBU aGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCB0 aGVpciBjb3JyZWN0Ci0tIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQg LSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgotLQotLU1ZU1FMTElCRElSID0gLUwv dXNyL2xpYi9teXNxbAotLU1ZU1FMTElCUyA9IC1sbXlzcWxjbGllbnQgLWx6Ci0tTVlTUUxJTkNM VURFRElSID0gLUkvdXNyL2luY2x1ZGUvbXlzcWwKLS0KLS0jIFRoZSByZXN0IG9mIHRoZSBNYWtl ZmlsZSBpcyBpbmRlcGVuZGVudCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgotLQotLUNPTVBJ TEVSID0gZysrCi0tQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKLS1D WFhGTEFHU1NPID0gJHtDWFhGTEFHU30gLWZQSUMKLS1JTkNMVURFRElSUyA9IC1JLi4vLi4vY29y ZSAke01ZU1FMSU5DTFVERURJUn0KLS0KLS0KLS1PQkpFQ1RTID0gYmxvYi5vIGZhY3RvcnkubyBy b3ctaWQubyBzZXNzaW9uLm8gc3RhbmRhcmQtaW50by10eXBlLm8gXAotLQlzdGFuZGFyZC11c2Ut dHlwZS5vIHN0YXRlbWVudC5vIHZlY3Rvci1pbnRvLXR5cGUubyB2ZWN0b3ItdXNlLXR5cGUubyBc Ci0tCWNvbW1vbi5vCi0tCi0tCi0tT0JKRUNUU1NPID0gYmxvYi1zLm8gZmFjdG9yeS1zLm8gcm93 LWlkLXMubyBzZXNzaW9uLXMubyBcCi0tCXN0YW5kYXJkLWludG8tdHlwZS1zLm8gc3RhbmRhcmQt dXNlLXR5cGUtcy5vIHN0YXRlbWVudC1zLm8gXAotLQl2ZWN0b3ItaW50by10eXBlLXMubyB2ZWN0 b3ItdXNlLXR5cGUtcy5vIGNvbW1vbi1zLm8KLS0KLS0KLS1saWJzb2NpX215c3FsLmEgOiAke09C SkVDVFN9Ci0tCWFyIHJ2ICRAICQ/Ci0tCXJtICoubwotLQotLQotLWJsb2IubyA6IGJsb2IuY3Bw Ci0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tY29t bW9uLm8gOiBjb21tb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9Ci0tCi0tZmFjdG9yeS5vIDogZmFjdG9yeS5jcHAKLS0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1yb3ctaWQubyA6IHJvdy1pZC5jcHAK LS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zZXNz aW9uLm8gOiBzZXNzaW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQotLQotLXN0YW5kYXJkLWludG8tdHlwZS5vIDogc3RhbmRhcmQtaW50by10eXBl LmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQot LXN0YW5kYXJkLXVzZS10eXBlLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxF Un0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zdGF0ZW1lbnQubyA6IHN0 YXRlbWVudC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElS U30KLS0KLS12ZWN0b3ItaW50by10eXBlLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAotLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci11c2Ut dHlwZS5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZM QUdTfSAke0lOQ0xVREVESVJTfQotLQotLXNoYXJlZCA6ICR7T0JKRUNUU1NPfQotLQkke0NPTVBJ TEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfbXlzcWwuc28gJHtPQkpFQ1RTU099Ci0tCXJtICoubwot LQotLWJsb2Itcy5vIDogYmxvYi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhG TEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLWNvbW1vbi1zLm8gOiBjb21tb24uY3BwCi0tCSR7 Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1m YWN0b3J5LXMubyA6IGZhY3RvcnkuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hY RkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1yb3ctaWQtcy5vIDogcm93LWlkLmNwcAotLQkk e0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0t c2Vzc2lvbi1zLm8gOiBzZXNzaW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NY WEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtaW50by10eXBlLXMubyA6IHN0 YW5kYXJkLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFH U1NPfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLXVzZS10eXBlLXMubyA6IHN0YW5kYXJk LXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7 SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50LXMubyA6IHN0YXRlbWVudC5jcHAKLS0JJHtDT01Q SUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rv ci1pbnRvLXR5cGUtcy5vIDogdmVjdG9yLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMg LW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci11c2UtdHlw ZS1zLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7 Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1mIGxpYnNv Y2lfbXlzcWwuYSBsaWJzb2NpX215c3FsLnNvCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9teXNxbC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvbXlzcWwvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5p bgkyMDEwLTAxLTIzIDE0OjQ0OjUxLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw4OTggQEAK LSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmls ZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5 OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAy MDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRv IGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0 aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK LSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkg bGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9N QUtFQAotKwotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9A UEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2Rp ciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVS U0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5z dGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAt YwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVS ID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1l KQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9 IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklO U1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9z dEAKLStESVNUX0NPTU1PTiA9ICQoYW1fX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUKSAkKHNyY2Rp cikvTWFrZWZpbGUuYW0gXAotKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJj ZXMubWsgXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IHNvY2kv YmFja2VuZHMvbXlzcWwKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0r YW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdy ZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRp b25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9i c29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBz ID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJ JChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklH X0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJ TEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQotK2FtX192cGF0aF9hZGpfc2V0dXAg PSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOwotK2FtX192 cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCi0rICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAi IHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCi0rICAgICopIGY9JCRwOzsgXAotKyAg ZXNhYzsKLSthbV9fc3RyaXBfZGlyID0gZj1gZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7 Ci0rYW1fX2luc3RhbGxfbWF4ID0gNDAKLSthbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAotKyAg c3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKnxdL1xcXFwm L2cnYAotK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCi0rICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8g IiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKLSthbV9fbm9iYXNlX2xp c3QgPSAkKGFtX19ub2Jhc2Vfc3RyaXBfc2V0dXApOyBcCi0rICBmb3IgcCBpbiAkJGxpc3Q7IGRv IGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAotKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsi JyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKLSsgICQoQVdL KSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiIgfSB7IGZpbGVzWyQkMl0gPSBmaWxlc1skJDJdICIg IiAkJDE7IFwKLSsgICAgaWYgKCsrblskJDJdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgXAotKyAg ICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIg fSB9IFwKLSsgICAgRU5EIHsgZm9yIChkaXIgaW4gZmlsZXMpIHByaW50IGRpciwgZmlsZXNbZGly XSB9JwotK2FtX19iYXNlX2xpc3QgPSBcCi0rICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQh TjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAotKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOO3Mv XG4vIC9nJwotK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNU RElSKSQocGtnaW5jbHVkZWRpcikiCi0rTFRMSUJSQVJJRVMgPSAkKGxpYl9MVExJQlJBUklFUykK LStsaWJzb2NpX215c3FsX2xhX0RFUEVOREVOQ0lFUyA9Ci0rYW1fX2xpYnNvY2lfbXlzcWxfbGFf U09VUkNFU19ESVNUID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Nv bW1vbi5oIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwu aCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCBcCi0rCSQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwIFwKLSsJJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rYW1fX29iamVjdHNfMSA9Ci0rYW1f X29iamVjdHNfMiA9IGxpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbyBsaWJzb2NpX215c3FsX2xhLWNv bW1vbi5sbyBcCi0rCWxpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbyBsaWJzb2NpX215c3FsX2xh LXJvdy1pZC5sbyBcCi0rCWxpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbyBcCi0rCWxpYnNvY2lf bXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIFwKLSsJbGlic29jaV9teXNxbF9sYS1zdGFu ZGFyZC11c2UtdHlwZS5sbyBcCi0rCWxpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvIFwKLSsJ bGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIFwKLSsJbGlic29jaV9teXNxbF9s YS12ZWN0b3ItdXNlLXR5cGUubG8KLStASEFWRV9NWVNRTF9UUlVFQGFtX2xpYnNvY2lfbXlzcWxf bGFfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkgXAotK0BIQVZFX01ZU1FMX1RSVUVACSQoYW1f X29iamVjdHNfMikKLStsaWJzb2NpX215c3FsX2xhX09CSkVDVFMgPSAkKGFtX2xpYnNvY2lfbXlz cWxfbGFfT0JKRUNUUykKLStsaWJzb2NpX215c3FsX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsg JChDWFhMRCkgXAotKwkkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIFwK LSsJJChsaWJzb2NpX215c3FsX2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKLStASEFWRV9N WVNRTF9UUlVFQGFtX2xpYnNvY2lfbXlzcWxfbGFfcnBhdGggPSAtcnBhdGggJChsaWJkaXIpCi0r REVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQot K2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCi0rYW1fX2Rl cGZpbGVzX21heWJlID0gZGVwZmlsZXMKLSthbV9fbXYgPSBtdiAtZgotK0NYWENPTVBJTEUgPSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStMVENYWENP TVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hY RkxBR1MpICQoQ1hYRkxBR1MpCi0rQ1hYTEQgPSAkKENYWCkKLStDWFhMSU5LID0gJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9k ZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykg XAotKwkkKExERkxBR1MpIC1vICRACi0rQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCi0rCSQoQ1BQRkxBR1MpICQo QU1fQ0ZMQUdTKSAkKENGTEFHUykKLStMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAkKEND KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCi0rQ0NMRCA9ICQoQ0MpCi0r TElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSBcCi0rCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFN X0xERkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK1NPVVJDRVMgPSAkKGxpYnNvY2lfbXlz cWxfbGFfU09VUkNFUykKLStESVNUX1NPVVJDRVMgPSAkKGFtX19saWJzb2NpX215c3FsX2xhX1NP VVJDRVNfRElTVCkKLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVj dXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBp bnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwt ZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1y ZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUg aW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJz LXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1 cnNpdmUKLSthbV9fcGtnaW5jbHVkZV9IRUFERVJTX0RJU1QgPSAgXAotKwkkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCi0rSEVBREVSUyA9ICQocGtnaW5jbHVk ZV9IRUFERVJTKQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJz aXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXIt Y2xlYW4tcmVjdXJzaXZlCi0rQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJH RVRTOi1yZWN1cnNpdmU9KSBcCi0rCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2 ZT0pIHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCi0rCWRpc3RkaXIKLStFVEFHUyA9IGV0YWdzCi0r Q1RBR1MgPSBjdGFncwotK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKLStESVNURklMRVMgPSAk KERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQot K2FtX19yZWxhdGl2aXplID0gXAotKyAgZGlyMD1gcHdkYDsgXAotKyAgc2VkX2ZpcnN0PSdzLF5c KFteL10qXCkvLiokJCxcMSwnOyBcCi0rICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAotKyAg c2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKLSsgIHNlZF9idXRsYXN0PSdzLC8q W14vXSokJCwsJzsgXAotKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAotKyAgICBmaXJz dD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICBpZiB0ZXN0 ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAotKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4u IjsgdGhlbiBcCi0rICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9s YXN0ImAvIiQkZGlyMiI7IFwKLSsgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUg IiQkc2VkX2J1dGxhc3QiYDsgXAotKyAgICAgIGVsc2UgXAotKyAgICAgICAgZmlyc3QyPWBlY2hv ICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgICAgICBpZiB0ZXN0ICIk JGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAotKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRp cjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgICAgICAgIGVsc2UgXAotKyAgICAgICAg ICBkaXIyPSIuLi8kJGRpcjIiOyBcCi0rICAgICAgICBmaTsgXAotKyAgICAgICAgZGlyMD0iJCRk aXIwIi8iJCRmaXJzdCI7IFwKLSsgICAgICBmaTsgXAotKyAgICBmaTsgXAotKyAgICBkaXIxPWBl Y2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgIGRvbmU7IFwKLSsgIHJl bGRpcj0iJCRkaXIyIgotK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCi0rQUNM T0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05G ID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBB VVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0r Qk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVT WVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIg PSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9P U1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAotK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJP T1NUX01QSV9QWVRIT05fTElCQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1Rf UFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9M SUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJ WkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJ QiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RF TV9MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VO SVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAot K0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9M SUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9 IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdT ID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVO SVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJ QlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAot K0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdT ID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAot K0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBE VU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1Qg PSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAg PSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZF UlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RB VEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1A Ci0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9H UkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExE RkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0g QExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBA TFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAK LStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0Nf TElCQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJ QlNACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJ VCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0r T1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xF X09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AK LStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9U T09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FH RV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tB R0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RB Uk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZF UlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJM QAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdS RVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NU R1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lP TiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFT RSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAot K1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JV UklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19C VVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBV UExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFi c19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRp ciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGly QAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNf Y3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRl QAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFt X19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAK LStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1 aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRf b3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRp ckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0r ZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBk b3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0r ZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBo b3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAK LStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRt bGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0g QGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4 X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xv Y2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAot K2x0X0VDSE8gPSBAbHRfRUNIT0AKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtk aXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRp ckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJA Ci0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAK LStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRf YWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3By ZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9w X3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGly KQotK2Jja19teXNxbF9oX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvY29tbW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAotKwotK2Jja19teXNxbF9jY19zb3VyY2VzID0gXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAgXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8t dHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0 YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSsKLStNQUlOVEFJTkVS Q0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rU1VCRElSUyA9IC4gdGVzdAotK0BIQVZFX01ZU1FM X1RSVUVAbGliX0xUTElCUkFSSUVTID0gbGlic29jaV9teXNxbC5sYQotK0BIQVZFX01ZU1FMX1RS VUVAbGlic29jaV9teXNxbF9sYV9TT1VSQ0VTID0gJChiY2tfbXlzcWxfaF9zb3VyY2VzKSAkKGJj a19teXNxbF9jY19zb3VyY2VzKSAKLStASEFWRV9NWVNRTF9UUlVFQGxpYnNvY2lfbXlzcWxfbGFf Q1hYRkxBR1MgPSAkKE1ZU1FMX0NGTEFHUykKLStASEFWRV9NWVNRTF9UUlVFQGxpYnNvY2lfbXlz cWxfbGFfTElCQUREID0gCi0rQEhBVkVfTVlTUUxfVFJVRUBsaWJzb2NpX215c3FsX2xhX0xERkxB R1MgPSBcCi0rQEhBVkVfTVlTUUxfVFJVRUAJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElN RV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAotK0BIQVZFX01ZU1FMX1RSVUVA CS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLStASEFWRV9NWVNR TF9UUlVFQHBrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9zb2NpLW15c3FsLmgKLStAU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2NpX2luY2x1 ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVAc29jaV9p bmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9teXNxbAotK2FsbDogYWxs LXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSsuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoK LSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3Jj ZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJl X2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJl X2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAg ICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0r CSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQo dG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9teXNxbC9NYWtl ZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0Up IC0tZ251IHNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxl Ci0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmln LnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAg IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hF TEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsg XAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAk KHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9w X2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJ R19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTog ICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2Nh bF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgotK2luc3RhbGwtbGliTFRM SUJSQVJJRVM6ICQobGliX0xUTElCUkFSSUVTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVz dCAteiAiJChsaWJkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChsaWJkaXIpIgotKwlA bGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0PTsg XAotKwlsaXN0Mj07IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRwOyB0 aGVuIFwKLSsJICAgIGxpc3QyPSIkJGxpc3QyICQkcCI7IFwKLSsJICBlbHNlIDo7IGZpOyBcCi0r CWRvbmU7IFwKLSsJdGVzdCAteiAiJCRsaXN0MiIgfHwgeyBcCi0rCSAgZWNobyAiICQoTElCVE9P TCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElO U1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICckKERFU1RESVIpJChsaWJkaXIp JyI7IFwKLSsJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWluc3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJCRsaXN0MiAi JChERVNURElSKSQobGliZGlyKSI7IFwKLSsJfQotKwotK3VuaW5zdGFsbC1saWJMVExJQlJBUklF UzoKLSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7 IHRlc3QgLW4gIiQobGliZGlyKSIgfHwgbGlzdD07IFwKLSsJZm9yIHAgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgJChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICckKERFU1RE SVIpJChsaWJkaXIpLyQkZiciOyBcCi0rCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikkKGxpYmRp cikvJCRmIjsgXAotKwlkb25lCi0rCi0rY2xlYW4tbGliTFRMSUJSQVJJRVM6Ci0rCS10ZXN0IC16 ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQotKwlAbGlz dD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZGlyPSJg ZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAotKwkgIHRlc3QgIiQkZGlyIiAh PSAiJCRwIiB8fCBkaXI9LjsgXAotKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlv bnNcIiI7IFwKLSsJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCi0rCWRvbmUKLSts aWJzb2NpX215c3FsLmxhOiAkKGxpYnNvY2lfbXlzcWxfbGFfT0JKRUNUUykgJChsaWJzb2NpX215 c3FsX2xhX0RFUEVOREVOQ0lFUykgCi0rCSQobGlic29jaV9teXNxbF9sYV9MSU5LKSAkKGFtX2xp YnNvY2lfbXlzcWxfbGFfcnBhdGgpICQobGlic29jaV9teXNxbF9sYV9PQkpFQ1RTKSAkKGxpYnNv Y2lfbXlzcWxfbGFfTElCQUREKSAkKExJQlMpCi0rCi0rbW9zdGx5Y2xlYW4tY29tcGlsZToKLSsJ LXJtIC1mICouJChPQkpFWFQpCi0rCi0rZGlzdGNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLnRh Yi5jCi0rCi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIp L2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9f aW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWNvbW1vbi5Q bG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS9saWJzb2NpX215c3FsX2xhLWZhY3RvcnkuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9s YS1yb3ctaWQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9f cXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlBsb0BhbV9fcXVvdGVA Ci0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEt c3RhbmRhcmQtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQuUGxv QGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlBsb0BhbV9fcXVvdGVACi0r QEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lf bXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0rCi0rLmNwcC5vOgotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERF UERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBC QUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rLmNwcC5vYmo6 Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1G ICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8K LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0n JEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAt byAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0rCi0rLmNwcC5sbzoKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBv IC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikv JCouVHBvICQoREVQRElSKS8kKi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotK2xpYnNvY2lfbXlzcWxfbGEt YmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwCi0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1i bG9iLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWJsb2IuVHBvIC1j IC1vIGxpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWJsb2IuVHBvICQoREVQRElSKS9s aWJzb2NpX215c3FsX2xhLWJsb2IuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCcg b2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLWJsb2IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215 c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWJsb2Iu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Js b2IuY3BwCi0rCi0rbGlic29jaV9teXNxbF9sYS1jb21tb24ubG86ICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElC VE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1jb21tb24ubG8gLU1EIC1NUCAtTUYgJChE RVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtY29tbW9uLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xh LWNvbW1vbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Nv bW1vbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9jb21tb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERF UERJUikvbGlic29jaV9teXNxbF9sYS1jb21tb24uVHBvICQoREVQRElSKS9saWJzb2NpX215c3Fs X2xhLWNvbW1vbi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAnIG9iamVjdD0n bGlic29jaV9teXNxbF9sYS1jb21tb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21t b24uY3BwCi0rCi0rbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG8gLU1EIC1NUCAtTUYg JChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5UcG8gLWMgLW8gbGlic29jaV9teXNx bF9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19t dikgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5UcG8gJChERVBESVIpL2xpYnNv Y2lfbXlzcWxfbGEtZmFjdG9yeS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3Bw JyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEt ZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Zh Y3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvZmFjdG9yeS5jcHAKLSsKLStsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1yb3ctaWQuVHBvIC1jIC1vIGxp YnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXJvdy1pZC5UcG8gJChERVBESVIp L2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlk LmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxf bGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv cm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3Jvdy1pZC5jcHAKLSsKLStsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG86ICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlRwbyAtYyAt byBsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlRwbyAk KERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlBsbwotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvc2Vzc2lvbi5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvJyBsaWJ0 b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9teXNxbF9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEt c3RhbmRhcmQtaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv c3RhbmRhcmQtaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wp ICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gLWMg LW8gbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRh cmQtaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBE SVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAkKERFUERJUikvbGli c29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRh cmQtaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRv LXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEtc3Rh bmRhcmQtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFu ZGFyZC11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1NVCBsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJz b2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5 cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29j aV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxf bGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11 c2UtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5s bycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1j IC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFy ZC11c2UtdHlwZS5jcHAKLSsKLStsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5sbzogJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQuVHBvIC1j IC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YXRl bWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LlBsbwotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXN0 YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09M KSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAK LSsKLStsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8t dHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50 by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBl LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlRwbyAkKERFUERJ UikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS12ZWN0 b3ItaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlw ZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVz ZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10 eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJz b2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS12 ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVz ZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuUGxv Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNv Y2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS12ZWN0b3It dXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92 ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotKwotK21vc3RseWNsZWFuLWxp YnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGli cyBfbGlicwotK2luc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtnaW5jbHVkZV9IRUFERVJT KQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChwa2dpbmNsdWRlZGlyKSIgfHwg JChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCi0rCUBsaXN0PSckKHBrZ2lu Y2x1ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAot Kwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBl bHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotKwkgIGVjaG8gIiQkZCQkcCI7IFwKLSsJZG9uZSB8 ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCi0rCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKLSsJICBlY2hv ICIgJChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAnJChERVNURElSKSQocGtnaW5jbHVkZWRpcikn IjsgXAotKwkgICQoSU5TVEFMTF9IRUFERVIpICQkZmlsZXMgIiQoREVTVERJUikkKHBrZ2luY2x1 ZGVkaXIpIiB8fCBleGl0ICQkPzsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLXBrZ2luY2x1ZGVI RUFERVJTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hF QURFUlMpJzsgdGVzdCAtbiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgbGlzdD07IFwKLSsJZmlsZXM9 YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7 IFwKLSsJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCi0rCWVjaG8gIiAoIGNkICckKERF U1RESVIpJChwa2dpbmNsdWRlZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCi0rCWNkICIk KERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIgJiYgcm0gLWYgJCRmaWxlcwotKwotKyMgVGhpcyBk aXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2Fu IGNkCi0rIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRo aXMgTWFrZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVz OiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBp cyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3 aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3Ug cnVuIGBtYWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBv biB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZh aWw9IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAot KwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBm YWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVu PW5vOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlz dD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFr aW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIu IjsgdGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0Ijsg XAotKwkgIGZpOyBcCi0rCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRv bmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAt eiAiJCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFp bGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2Fz ZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209 J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwK LSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikg bGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsg XAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBp ZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3Vi ZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAot Kwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIg aW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBc Ci0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3Rhcmdl dD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFy Z2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBc Ci0rCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSck KFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRp ciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg dGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAo JChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAot Kwlkb25lCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxF UykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7 IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQk aSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRv bmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAot KwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9 OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6IHRh Z3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykg XAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXNldCB4OyBcCi0rCWhlcmU9YHB3ZGA7IFwK LSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4m MTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1w dHlfZml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0r CSAgZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVs c2UgXAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICBzZXQgIiQk QCIgIiQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwK LSsJZG9uZTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9 IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKLSsJc2hpZnQ7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdT KSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwg dW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAotKwkg ICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykg XAotKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAotKwkgIGVsc2UgXAotKwkgICAgJChFVEFHUykg JChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAk JHVuaXF1ZTsgXAotKwkgIGZpOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdz LXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwK LSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykg ICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRv IFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNy Y2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0g PSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9y IChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdT KSQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxB R1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9 YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgJChhbV9fY2QpICQo dG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKLSsK LStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQ QVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hv ICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNk aXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYv ZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmls ZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRz cmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRv cF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikg JChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtz fF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAot Kwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3Qg LWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsg Zmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hv ICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQg IiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRm aWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkg ICAgZmk7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAh PSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQo ZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRm aWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkg ICAgZmk7IFwKLSsJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBl eGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBc Ci0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAg fHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMp JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAu OyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAot KwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhp dCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVu IDo7IGVsc2UgXAotKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRp ciI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfZGlzdGRpcj0kJHJl bGRpcjsgXAotKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCi0r CSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAotKwkgICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGly OyBcCi0rCSAgICBlY2hvICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIg XFwiOyBcCi0rCSAgICBlY2hvICIgICAgIGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xl bmd0aF9jaGVjaz06IGFtX19za2lwX21vZGVfZml4PTogZGlzdGRpcikiOyBcCi0rCSAgICAoJChh bV9fY2QpICQkc3ViZGlyICYmIFwKLSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAot KwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRp c3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFt X19za2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJCWFtX19za2lwX21vZGVfZml4PTogXAotKwkgICAg ICAgIGRpc3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQot K2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtl ZmlsZSAkKExUTElCUkFSSUVTKSAkKEhFQURFUlMpCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJz LXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFtOgotKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChs aWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiOyBkbyBcCi0rCSAgdGVzdCAteiAi JCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAotKwlkb25lCi0raW5zdGFsbDogaW5zdGFs bC1yZWN1cnNpdmUKLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKLStpbnN0 YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1y ZWN1cnNpdmUKLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGlu c3RhbGxjaGVjay1yZWN1cnNpdmUKLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkg IGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NU UklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAi SU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0 bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVy aWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklH X0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05G SUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxF UykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQg aXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMg ZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVz dCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFO RklMRVMpCi0rY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5l cmljIGNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgXAotKwltb3N0bHljbGVhbi1h bQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLXJmIC4vJChERVBE SVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFu LWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tdGFncwotKwotK2R2aTog ZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwot K2h0bWwtYW06Ci0rCi0raW5mbzogaW5mby1yZWN1cnNpdmUKLSsKLStpbmZvLWFtOgotKwotK2lu c3RhbGwtZGF0YS1hbTogaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotK2luc3RhbGwtZHZp OiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWR2aS1hbToKLSsKLStpbnN0YWxs LWV4ZWMtYW06IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKLSsKLStpbnN0YWxsLWh0bWw6IGluc3Rh bGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZv OiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3Rh bGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0 YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2lu c3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46 IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJt IC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWlu ZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUK LSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5l cmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwot K3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxs LWFtOiB1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJT Ci0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdF VFMpIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJl Y3Vyc2l2ZQotKwotKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJ VkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAotKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNs ZWFuIGNsZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29s IGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBk aXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRp c3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBp bnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBp bnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1o dG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAotKwlpbnN0YWxsLWluZm8tYW0gaW5z dGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwt cGRmLWFtIGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wcyBcCi0rCWluc3RhbGwt cHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKLSsJaW5z dGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXIt Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKLSsJbW9zdGx5 Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAot Kwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAotKwl1bmluc3Rh bGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rQFNFVF9N QUtFQAotKwotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3Qg ZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBT eXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAotLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCTIwMTAtMDEtMjMgMTQ6 NDU6NDQuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvbXlzcWwvc29jaS1teXNxbC5oCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAw Ci1AQCAtMjMsMTIgKzIzLDIzIEBACi0gI2lmbmRlZiBTT0NJX01ZU1FMX0RFQ0wKLSAjIGRlZmlu ZSBTT0NJX01ZU1FMX0RFQ0wKLSAjZW5kaWYKLS0KLS0jaW5jbHVkZSAic29jaS1iYWNrZW5kLmgi Ci0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVk ZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLWJh Y2tlbmQuaD4KLSsjZW5kaWYKLSsvLwotICNpZmRlZiBfV0lOMzIKLSAjaW5jbHVkZSA8d2luc29j ay5oPiAvLyBTT0NLRVQKLSAjZW5kaWYgLy8gX1dJTjMyCi0tI2luY2x1ZGUgPG15c3FsLmg+IC8v IE15U1FMIENsaWVudAotKy8vCi0rLy8gTXlTUUwgQ2xpZW50Ci0rI2lmIGRlZmluZWQoU09DSV9N WVNRTF9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPG15c3FsL215c3FsLmg+Ci0r I2Vsc2UKLSsjCWluY2x1ZGUgPG15c3FsLmg+Ci0rI2VuZGlmCi0gI2luY2x1ZGUgPHZlY3Rvcj4K LSAKLSAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Nv dXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5t awotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5tawkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL215c3FsL3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAw MDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTQgQEAKLStiY2tfbXlzcWxfaF9zb3VyY2VzID0gXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKLSti Y2tfbXlzcWxfY2Nfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC9ibG9iLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvY29tbW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvZmFjdG9yeS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3Jvdy1pZC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAgXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3Bw IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNl LXR5cGUuY3BwCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNx bC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAxMC0wMS0yMyAxNDo0NTo0 NC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9t eXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAw ICswMjAwCi1AQCAtOCw4ICs4LDE0IEBACi0gCi0gI2RlZmluZSBTT0NJX01ZU1FMX1NPVVJDRQot ICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0tI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KLSAj aW5jbHVkZSAiY29tbW9uLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVE KQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KLSsjZWxzZQot KyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGNp c282NDY+Ci0gI2luY2x1ZGUgPGNhc3NlcnQ+Ci0gI2luY2x1ZGUgPGN0aW1lPgotZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUu Y3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10 eXBlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRh cmQtdXNlLXR5cGUuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCi0rKysg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUu Y3BwCTIwMDktMDUtMDUgMjI6MjU6NDAuMDAwMDAwMDAwICswMjAwCi1AQCAtOSw3ICs5LDEyIEBA Ci0gI2RlZmluZSBTT0NJX01ZU1FMX1NPVVJDRQotICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0g I2luY2x1ZGUgImNvbW1vbi5oIgotLSNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rLy8KLSsj aWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9j b3JlL3NvY2ktcGxhdGZvcm0uaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5o PgotKyNlbmRpZgotIC8vCi0gI2luY2x1ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUgPGxpbWl0cz4K LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFr ZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtl ZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9N YWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYW0JMjAxMC0w MS0yMyAxNDo0MzoxOC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMTggQEAKLSsjIyBiYWNr ZW5kL215c3FsL3Rlc3Qgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtl ZmlsZS5jb21tb24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0rCi0rTUFJTlRBSU5F UkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK2lmIFJVTl9URVNUUwotKyAgbm9pbnN0X1BS T0dSQU1TID0gdGVzdF9teXNxbAotK2VuZGlmCi0rCi0rdGVzdF9teXNxbF9TT1VSQ0VTID0gJCht eXNxbF90ZXN0X2NjX3NvdXJjZXMpCi0rdGVzdF9teXNxbF9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZM QUdTKQotK3Rlc3RfbXlzcWxfTERBREQgPQotK3Rlc3RfbXlzcWxfTERGTEFHUyA9ICQodG9wX2J1 aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAotKwkJJCh0b3BfYnVpbGRk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvbGlic29jaV9teXNxbC5sYSBcCi0rCQkkKE1ZU1FMX0xJ QlMpCi0rCi0rI25vZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKG15c3FsX3Rlc3RfaF9zb3Vy Y2VzKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVz dC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90 ZXN0L01ha2VmaWxlLmJhc2ljCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtl ZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTEsMjIg KzAsMCBAQAotLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIHNwZWNpZmljIHRvIHRoaXMg YmFja2VuZCBhbmQgdGhlaXIgY29ycmVjdAotLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3Vy IGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KLS0KLS1NWVNR TExJQkRJUiA9IC1ML3Vzci9saWIvbXlzcWwKLS1NWVNRTExJQlMgPSAtbG15c3FsY2xpZW50IC1s egotLU1ZU1FMSU5DTFVERURJUiA9IC1JL3Vzci9pbmNsdWRlL215c3FsCi0tCi0tIyBUaGUgcmVz dCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbmRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVu dC4KLS0KLS1DT01QSUxFUiA9IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8t bG9uZy1sb25nCi0tSU5DTFVERURJUlMgPSAtSS4uIC1JLi4vLi4vLi4vY29yZSAke01ZU1FMSU5D TFVERURJUn0KLS1MSUJESVJTID0gLUwuLiAtTC4uLy4uLy4uL2NvcmUgJHtNWVNRTExJQkRJUn0K LS1MSUJTID0gLWxzb2NpX2NvcmUgLWxzb2NpX215c3FsIC1sZGwgJHtNWVNRTExJQlN9Ci0tCi0t Ci0tdGVzdC1teXNxbCA6IHRlc3QtbXlzcWwuY3BwCi0tCSR7Q09NUElMRVJ9IC1vICRAICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9ICR7TElCRElSU30gJHtMSUJTfQotLQotLQotLWNsZWFu IDoKLS0Jcm0gLWYgdGVzdC1teXNxbAotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwv dGVzdC9NYWtlZmlsZS5pbgkyMDEwLTAxLTIzIDE0OjQ0OjUxLjAwMDAwMDAwMCArMDEwMAotQEAg LTAsMCArMSw1NTggQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEx LjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmln aHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIw MDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUg c29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRl ZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdp dGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQu Ci0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVu dCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBP U0UuCi0rCi0rQFNFVF9NQUtFQAotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0g JChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFD S0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9 ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lP TisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFs bF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwot K2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0g JChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQot K05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoK LStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RB TEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAK LStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUu aW4gXAotKwkkKHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1v bgotK0BSVU5fVEVTVFNfVFJVRUBub2luc3RfUFJPR1JBTVMgPSB0ZXN0X215c3FsJChFWEVFWFQp Ci0rc3ViZGlyID0gc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0Ci0rQUNMT0NBTF9NNCA9ICQodG9w X3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9j cHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0 c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5h YwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdV UkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChp bnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25m aWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0K LStQUk9HUkFNUyA9ICQobm9pbnN0X1BST0dSQU1TKQotK2FtX19vYmplY3RzXzEgPSB0ZXN0X215 c3FsLXRlc3QtbXlzcWwuJChPQkpFWFQpCi0rYW1fdGVzdF9teXNxbF9PQkpFQ1RTID0gJChhbV9f b2JqZWN0c18xKQotK3Rlc3RfbXlzcWxfT0JKRUNUUyA9ICQoYW1fdGVzdF9teXNxbF9PQkpFQ1RT KQotK3Rlc3RfbXlzcWxfREVQRU5ERU5DSUVTID0KLSt0ZXN0X215c3FsX0xJTksgPSAkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1t b2RlPWxpbmsgJChDWFhMRCkgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSBcCi0rCSQoQ1hYRkxBR1Mp ICQodGVzdF9teXNxbF9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rREVGQVVMVF9JTkNMVURF UyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQotK2RlcGNvbXAgPSAkKFNI RUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCi0rYW1fX2RlcGZpbGVzX21heWJlID0g ZGVwZmlsZXMKLSthbV9fbXYgPSBtdiAtZgotK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStMVENYWENPTVBJTEUgPSAkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxB R1MpCi0rQ1hYTEQgPSAkKENYWCkKLStDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1saW5rICQoQ1hYTEQp ICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1Mp IC1vICRACi0rU09VUkNFUyA9ICQodGVzdF9teXNxbF9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9 ICQodGVzdF9teXNxbF9TT1VSQ0VTKQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0r RElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQo RVhUUkFfRElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIg PSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVS QAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0g QEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9M SUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9P U1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBA Qk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJ X1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIg PSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElC QAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAot K0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9M SUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVB RF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNU X0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NU X1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBA Q0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9 IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5J VF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9M SUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9O QAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERF UE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AK LStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJ TEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBA RUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0g QEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBH RU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNU QUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0g QElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJ TlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExE QAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBM SUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9T QAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtE SVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxf Q19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FM X0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0r Tk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JK RVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJ X0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JB Q0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJ T05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBA UEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNL QUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RS SU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJT SU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRP UkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FM X0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdS RVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0r UE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFO TElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01B S0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09D SV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQg PSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQ TE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSth YnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAK LSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIg PSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0g QGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1 ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAK LSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50 YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0r YnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLSti dWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1 aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9 IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAK LStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19v ayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBn c19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3Rf Y3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBo b3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRl ZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0r bGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0g QGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0g QGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBtYW5kaXJA Ci0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAK LStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zv cm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3Ni aW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0g QHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNj b25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZp eCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0r dG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRp cikgLUkkKHRvcF9zcmNkaXIpCi0rbXlzcWxfdGVzdF9oX3NvdXJjZXMgPSAKLStteXNxbF90ZXN0 X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0 LW15c3FsLmNwcAotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSt0ZXN0X215 c3FsX1NPVVJDRVMgPSAkKG15c3FsX3Rlc3RfY2Nfc291cmNlcykKLSt0ZXN0X215c3FsX0NYWEZM QUdTID0gJChCT09TVF9DRkxBR1MpCi0rdGVzdF9teXNxbF9MREFERCA9IAotK3Rlc3RfbXlzcWxf TERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1sZGwg XAotKwkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvbGlic29jaV9teXNxbC5s YSBcCi0rCQkkKE1ZU1FMX0xJQlMpCi0rCi0rYWxsOiBhbGwtYW0KLSsKLSsuU1VGRklYRVM6Ci0r LlNVRkZJWEVTOiAuY3BwIC5sbyAubyAub2JqCi0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChz cmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGly KS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8g XAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikg XAotKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhp dCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsg XAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0t Z251IHNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQo dG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvbXlz cWwvdGVzdC9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNk aXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICck PycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJ ICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVz ICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9i dWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19k ZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5z dGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJ RVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2Rl cHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQo YW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0rCi0rY2xlYW4tbm9pbnN0UFJPR1JBTVM6Ci0rCUBsaXN0 PSckKG5vaW5zdF9QUk9HUkFNUyknOyB0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAotKwll Y2hvICIgcm0gLWYiICQkbGlzdDsgXAotKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKLSsJ dGVzdCAtbiAiJChFWEVFWFQpIiB8fCBleGl0IDA7IFwKLSsJbGlzdD1gZm9yIHAgaW4gJCRsaXN0 OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAotKwllY2hv ICIgcm0gLWYiICQkbGlzdDsgXAotKwlybSAtZiAkJGxpc3QKLSt0ZXN0X215c3FsJChFWEVFWFQp OiAkKHRlc3RfbXlzcWxfT0JKRUNUUykgJCh0ZXN0X215c3FsX0RFUEVOREVOQ0lFUykgCi0rCUBy bSAtZiB0ZXN0X215c3FsJChFWEVFWFQpCi0rCSQodGVzdF9teXNxbF9MSU5LKSAkKHRlc3RfbXlz cWxfT0JKRUNUUykgJCh0ZXN0X215c3FsX0xEQUREKSAkKExJQlMpCi0rCi0rbW9zdGx5Y2xlYW4t Y29tcGlsZToKLSsJLXJtIC1mICouJChPQkpFWFQpCi0rCi0rZGlzdGNsZWFuLWNvbXBpbGU6Ci0r CS1ybSAtZiAqLnRhYi5jCi0rCi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3Rl QC4vJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5Qb0BhbV9fcXVvdGVACi0rCi0rLmNw cC5vOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1Q IC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1u byBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA Ci0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0r LmNwcC5vYmo6Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1N RCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJ UikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwn IG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01Q SUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0rCi0rLmNwcC5sbzoKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJ UikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAk KERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJB Q0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotK3Rlc3RfbXlz cWwtdGVzdC1teXNxbC5vOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90 ZXN0LW15c3FsLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo dGVzdF9teXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3RfbXlzcWwtdGVzdC1teXNx bC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuVHBvIC1jIC1v IHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlz cWwuVHBvICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuUG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnIG9iamVjdD0ndGVzdF9teXNxbC10ZXN0LW15c3Fs Lm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KHRlc3RfbXlzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3RfbXlzcWwtdGVzdC1t eXNxbC5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90 ZXN0LW15c3FsLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKLSsKLSt0ZXN0X215c3FsLXRlc3QtbXlz cWwub2JqOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3Fs LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9teXNx bF9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vYmogLU1E IC1NUCAtTUYgJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5UcG8gLWMgLW8gdGVzdF9t eXNxbC10ZXN0LW15c3FsLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyBlbHNlICQo Q1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90 ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgZmlgCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlRwbyAkKERFUERJUikvdGVzdF9teXNx bC10ZXN0LW15c3FsLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3Bw JyBvYmplY3Q9J3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFD S1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1jIC1vIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vYmogYGlmIHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgdGhl biAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rl c3QtbXlzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IGZpYAotKwotK21vc3Rs eWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJt IC1yZiAubGlicyBfbGlicwotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAk KFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsK LStUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0r CQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsgXAotKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBc Ci0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKLSsJc2hpZnQ7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsg dGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlf Zml4OyBcCi0rCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAotKwkgICAgJChFVEFHUykgJChF VEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAiJCRA IiAkJHVuaXF1ZTsgXAotKwkgIGVsc2UgXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAk KEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAkJHVuaXF1ZTsgXAotKwkg IGZpOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNF UykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBc Ci0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykg JChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQk dW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYg cHdkYCBcCi0rCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1p ICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRB R1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RG SUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRc XCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIg fCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7 IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBk b25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1l ICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAk JGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVz IiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcg fCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlz dF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0 aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZp bGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSok JCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCi0r CSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhl YyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChz cmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBj cCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0r CSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhl YyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1mcFIgJCRkLyQk ZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRl c3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIk KGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9u ZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stYW0KLSthbGwtYW06IE1ha2VmaWxl ICQoUFJPR1JBTVMpCi0raW5zdGFsbGRpcnM6Ci0raW5zdGFsbDogaW5zdGFsbC1hbQotK2luc3Rh bGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0K LSt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChN QUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwot K2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtF KSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JB TSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIg SU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJ ICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0 YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3Rj bGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAt ZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3Qg LXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5f VlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhp cyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJp dCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxk LiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5U QUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1hbQotKwotK2NsZWFuLWFtOiBjbGVhbi1n ZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgXAotKwltb3N0bHljbGVh bi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCi0rCS1ybSAtcmYgLi8kKERFUERJUikK LSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29t cGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmkt YW0KLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1hbQotKwotK2h0bWwtYW06Ci0rCi0raW5m bzogaW5mby1hbQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOgotKwotK2luc3Rh bGwtZHZpOiBpbnN0YWxsLWR2aS1hbQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwt ZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQotKwotK2luc3RhbGwt aHRtbC1hbToKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQotKwotK2luc3RhbGwt aW5mby1hbToKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYt YW0KLSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCi0r Ci0raW5zdGFsbC1wcy1hbToKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1j bGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAt ZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVy LWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KLSsKLSttb3N0 bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJ bW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLWFtCi0rCi0rcGRmLWFtOgotKwotK3Bz OiBwcy1hbQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbToKLSsKLSsuTUFLRTogaW5zdGFs bC1hbSBpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNo ZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJ0b29sIGNsZWFu LW5vaW5zdFBST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBcCi0rCWRpc3RjbGVhbi1jb21waWxlIGRp c3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKLSsJZGlzdGNsZWFuLXRhZ3MgZGlz dGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAotKwlpbnN0YWxsIGlu c3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCi0rCWlu c3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwK LSsJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1t YW4gXAotKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMt YW0gXAotKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFs bGRpcnMgXAotKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbiBcCi0rCW1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbi1saWJ0b29sIFwKLSsJcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHVuaW5zdGFsbCB1 bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rCi0rI25vZGlzdF9wa2dpbmNsdWRlX0hFQURF UlMgPSAkKG15c3FsX3Rlc3RfaF9zb3VyY2VzKQotKwotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwz LjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndp c2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0r Lk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlz cWwvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3Fs L3Rlc3Qvc291cmNlcy5tawotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlz cWwvdGVzdC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0r Kysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9zb3VyY2VzLm1r CTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDIgQEAKLStt eXNxbF90ZXN0X2hfc291cmNlcyA9Ci0rbXlzcWxfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKLWRpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNw cAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15 c3FsLmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAJMjAwOS0w NC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC02LDkgKzYsMTcgQEAKLSAvLyBodHRw Oi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCi0gLy8KLSAKLS0jaW5jbHVkZSAic29j aS5oIgotLSNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0tI2luY2x1ZGUgInRlc3QvY29tbW9uLXRl c3RzLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAg aW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvYmFja2Vu ZHMvbXlzcWwvc29jaS1teXNxbC5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Rlc3Qv Y29tbW9uLXRlc3RzLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2kuaD4KLSsjCWluY2x1ZGUg PHNvY2ktbXlzcWwuaD4KLSsjICAgICAgIGluY2x1ZGUgPHRlc3QvY29tbW9uLXRlc3RzLmg+Ci0r I2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8aW9zdHJlYW0+Ci0gI2luY2x1ZGUgPHNzdHJlYW0+Ci0g I2luY2x1ZGUgPHN0cmluZz4KLUBAIC0xOCw4ICsyNiwxNCBAQAotICNpbmNsdWRlIDxjdGltZT4K LSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLSAjaW5jbHVkZSA8Y3N0ZGxpYj4KLS0jaW5jbHVkZSA8bXlz cWxkX2Vycm9yLmg+Ci0tI2luY2x1ZGUgPGVycm1zZy5oPgotKy8vIE15U1FMIENsaWVudAotKyNp ZiBkZWZpbmVkKFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxt eXNxbC9teXNxbGRfZXJyb3IuaD4KLSsjICAgICAgIGluY2x1ZGUgPG15c3FsL2Vycm1zZy5oPgot KyNlbHNlCi0rIyAgICAgICBpbmNsdWRlIDxteXNxbGRfZXJyb3IuaD4KLSsjICAgICAgIGluY2x1 ZGUgPGVycm1zZy5oPgotKyNlbmRpZgotIAotIHVzaW5nIG5hbWVzcGFjZSBzb2NpOwotIHVzaW5n IG5hbWVzcGFjZSBzb2NpOjp0ZXN0czsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAkyMDEwLTAxLTIz IDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAw MDAwMDAwICswMjAwCi1AQCAtOSw3ICs5LDEzIEBACi0gI2RlZmluZSBTT0NJX01ZU1FMX1NPVVJD RQotICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0gI2luY2x1ZGUgImNvbW1vbi5oIgotLSNpbmNs dWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVS SUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KLSsjZWxz ZQotKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUg PGNpc282NDY+Ci0gCi0gI2lmZGVmIF9NU0NfVkVSCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAJMjAxMC0w MS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCTIwMDktMDUtMDUgMjI6MjM6Mjku MDAwMDAwMDAwICswMjAwCi1AQCAtOSw3ICs5LDEyIEBACi0gI2RlZmluZSBTT0NJX01ZU1FMX1NP VVJDRQotICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0gI2luY2x1ZGUgImNvbW1vbi5oIgotLSNp bmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNf QlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KLSsj ZWxzZQotKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotKyNlbmRpZgotIC8vCi0gI2luY2x1 ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUgPGxpbWl0cz4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9ibG9iLmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEw MAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAky MDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTcsNyArNywxMyBAQAotIAot ICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgotICNpbmNsdWRlICJlcnJvci5oIgotLSNpbmNsdWRl ICJzdGF0ZW1lbnQuaCIKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0r IyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc3RhdGVtZW50Lmg+Ci0rI2Vsc2UKLSsjCWluY2x1 ZGUgPHN0YXRlbWVudC5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGNzdHJpbmc+Ci0gI2lu Y2x1ZGUgPHNzdHJlYW0+Ci0gI2luY2x1ZGUgPGNzdGRpbz4KLWRpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNs ZS9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTAs MCArMSwyNyBAQAotKyMjIGJhY2tlbmRzL29yYWNsZSBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAk KHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMu bWsKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9 IC4gdGVzdAotKwotK2lmIEhBVkVfT1JBQ0xFCi0rbGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX29y YWNsZS5sYQotKwotK2xpYnNvY2lfb3JhY2xlX2xhX1NPVVJDRVM9ICQoYmNrX29yYWNsZV9oX3Nv dXJjZXMpICQoYmNrX29yYWNsZV9jY19zb3VyY2VzKSAKLStsaWJzb2NpX29yYWNsZV9sYV9DWFhG TEFHUyA9ICQoT1JBQ0xFX09DSV9DRkxBR1MpCi0rbGlic29jaV9vcmFjbGVfbGFfTElCQUREID0K LStsaWJzb2NpX29yYWNsZV9sYV9MREZMQUdTID0gXAotKwkkKEJPT1NUX0xJQlMpICQoQk9PU1Rf REFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCi0rCSQoT1JBQ0xF X09DSV9MREZMQUdTKSBcCi0rCS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lP TikKLSsKLStub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCi0rZW5kaWYKLStpZiBTT0NJX0hFQURFUlNfQlVS SUVECi0rc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUKLStlbHNlCi0rc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKLStlbmRpZgotK3Br Z2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmJhc2ljCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYmFzaWMJMjAxMC0wMS0yMyAxNDo0 NTo0NC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9vcmFjbGUvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKLUBAIC0xLDk1ICswLDAgQEAKLS0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgaXMgc3BlY2lm aWMgdG8gdGhpcyBiYWNrZW5kIGFuZCBpdHMgY29ycmVjdAotLSMgdmFsdWVzIG1pZ2h0IGRlcGVu ZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4K LS0KLS1PUkFDTEVJTkNMVURFRElSID0gLUkvdXNyL2xpYi9vcmFjbGUveGUvYXBwL29yYWNsZS9w cm9kdWN0LzEwLjIuMC9zZXJ2ZXIvcmRibXMvcHVibGljCi0tCi0tIyBUaGUgcmVzdCBvZiB0aGUg TWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KLS0KLS1D T01QSUxFUiA9IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25n Ci0tQ1hYRkxBR1NTTyA9ICR7Q1hYRkxBR1N9IC1mUElDCi0tSU5DTFVERURJUlMgPSAtSS4uLy4u L2NvcmUgJHtPUkFDTEVJTkNMVURFRElSfQotLQotLU9CSkVDVFMgPSBibG9iLm8gZmFjdG9yeS5v IHJvdy1pZC5vIHNlc3Npb24ubyBzdGFuZGFyZC1pbnRvLXR5cGUubyBcCi0tCXN0YW5kYXJkLXVz ZS10eXBlLm8gc3RhdGVtZW50Lm8gdmVjdG9yLWludG8tdHlwZS5vIHZlY3Rvci11c2UtdHlwZS5v IFwKLS0JZXJyb3IubwotLQotLU9CSkVDVFNTTyA9IGJsb2Itcy5vIGZhY3Rvcnktcy5vIHJvdy1p ZC1zLm8gc2Vzc2lvbi1zLm8gXAotLQlzdGFuZGFyZC1pbnRvLXR5cGUtcy5vIHN0YW5kYXJkLXVz ZS10eXBlLXMubyBzdGF0ZW1lbnQtcy5vIFwKLS0JdmVjdG9yLWludG8tdHlwZS1zLm8gdmVjdG9y LXVzZS10eXBlLXMubyBlcnJvci1zLm8KLS0KLS1saWJzb2NpX29yYWNsZS5hIDogJHtPQkpFQ1RT fQotLQlhciBydiAkQCAkPwotLQlybSAqLm8KLS0KLS1zb2NpLW9yYWNsZS5vIDogc29jaS1vcmFj bGUuY3BwIAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQot LQkKLS1ibG9iLm8gOiBibG9iLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAk e0lOQ0xVREVESVJTfQotLQotLWVycm9yLm8gOiBlcnJvci5jcHAKLS0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1mYWN0b3J5Lm8gOiBmYWN0b3J5LmNw cAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXJv dy1pZC5vIDogcm93LWlkLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQotLQotLXNlc3Npb24ubyA6IHNlc3Npb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1j ICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtaW50by10eXBlLm8g OiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtdXNlLXR5cGUubyA6IHN0YW5kYXJkLXVzZS10 eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQot LQotLXN0YXRlbWVudC5vIDogc3RhdGVtZW50LmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NY WEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci1pbnRvLXR5cGUubyA6IHZlY3Rvci1p bnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJ UlN9Ci0tCi0tdmVjdG9yLXVzZS10eXBlLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCi0tCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tCi0tc2hhcmVkIDog JHtPQkpFQ1RTU099Ci0tCSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8gbGlic29jaV9vcmFjbGUuc28g JHtPQkpFQ1RTU099Ci0tCXJtICoubwotLQotLWJsb2Itcy5vIDogYmxvYi5jcHAKLS0JJHtDT01Q SUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLWVycm9y LXMubyA6IGVycm9yLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099 ICR7SU5DTFVERURJUlN9Ci0tCi0tZmFjdG9yeS1zLm8gOiBmYWN0b3J5LmNwcAotLQkke0NPTVBJ TEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tcm93LWlk LXMubyA6IHJvdy1pZC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NP fSAke0lOQ0xVREVESVJTfQotLQotLXNlc3Npb24tcy5vIDogc2Vzc2lvbi5jcHAKLS0JJHtDT01Q SUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5k YXJkLWludG8tdHlwZS1zLm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9 IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zdGFuZGFyZC11 c2UtdHlwZS1zLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8g JEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXN0YXRlbWVudC1zLm8gOiBz dGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJ TkNMVURFRElSU30KLS0KLS12ZWN0b3ItaW50by10eXBlLXMubyA6IHZlY3Rvci1pbnRvLXR5cGUu Y3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElS U30KLS0KLS12ZWN0b3ItdXNlLXR5cGUtcy5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAotLQkke0NP TVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tCi0t Y2xlYW4gOgotLQlybSAtZiAqLm8gbGlic29jaV9vcmFjbGUuYSBsaWJzb2NpX29yYWNsZS5zbwot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxl LmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5pbgot LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmluCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTEuMDAw MDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDkwMyBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVk IGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1 dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5 OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIw MDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRoaXMgTWFr ZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgot KyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBp dCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90 aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsj IFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rCi0rCi0rVlBBVEggPSBAc3Jj ZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQo bGliZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FH RUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUiki ICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0 YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAk KGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFu c2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0r UFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6 Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0 ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChhbV9f bm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUKSBcCi0rCSQoc3JjZGlyKS9NYWtlZmlsZS5h bSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9z cmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvb3JhY2xlCi0r QUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2Rl cHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29j aS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGli dG9vbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZl cnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9z cmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxf bTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStt a2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9i dWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rQ09ORklHX0NM RUFOX1ZQQVRIX0ZJTEVTID0KLSthbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVj aG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKLSthbV9fdnBhdGhfYWRqID0gY2FzZSAk JHAgaW4gXAotKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNk aXJzdHJpcC98fCJgOzsgXAotKyAgICAqKSBmPSQkcDs7IFwKLSsgIGVzYWM7Ci0rYW1fX3N0cmlw X2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOwotK2FtX19pbnN0YWxsX21h eCA9IDQwCi0rYW1fX25vYmFzZV9zdHJpcF9zZXR1cCA9IFwKLSsgIHNyY2RpcnN0cmlwPWBlY2hv ICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKLSthbV9fbm9iYXNl X3N0cmlwID0gXAotKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2Vk IC1lICJzfCQkc3JjZGlyc3RyaXAvfHwiCi0rYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNl X3N0cmlwX3NldHVwKTsgXAotKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsg ZG9uZSB8IFwKLSsgIHNlZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwvLyFzLyAuKi8g Li87IHMsXCggLipcKS9bXi9dKiQkLFwxLCcgfCBcCi0rICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNb Ii4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCi0rICAgIGlm ICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKLSsgICAgICB7IHByaW50ICQkMiwg ZmlsZXNbJCQyXTsgblskJDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCi0rICAgIEVORCB7 IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKLSthbV9fYmFzZV9s aXN0ID0gXAotKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOO3MvXG4v IC9nJyB8IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKLSthbV9faW5z dGFsbGRpcnMgPSAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVk aXIpIgotK0xUTElCUkFSSUVTID0gJChsaWJfTFRMSUJSQVJJRVMpCi0rbGlic29jaV9vcmFjbGVf bGFfREVQRU5ERU5DSUVTID0KLSthbV9fbGlic29jaV9vcmFjbGVfbGFfU09VUkNFU19ESVNUID0g IFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5oIFwKLSsJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oIFwKLSsJJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvcm93LWlkLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvc2Vzc2lvbi5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0 YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvc3RhdGVtZW50LmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSthbV9fb2JqZWN0c18xID0KLSthbV9fb2Jq ZWN0c18yID0gbGlic29jaV9vcmFjbGVfbGEtYmxvYi5sbyBsaWJzb2NpX29yYWNsZV9sYS1lcnJv ci5sbyBcCi0rCWxpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG8gbGlic29jaV9vcmFjbGVfbGEt cm93LWlkLmxvIFwKLSsJbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5sbyBcCi0rCWxpYnNvY2lf b3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBcCi0rCWxpYnNvY2lfb3JhY2xlX2xhLXN0 YW5kYXJkLXVzZS10eXBlLmxvIFwKLSsJbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LmxvIFwK LSsJbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBcCi0rCWxpYnNvY2lfb3Jh Y2xlX2xhLXZlY3Rvci11c2UtdHlwZS5sbwotK0BIQVZFX09SQUNMRV9UUlVFQGFtX2xpYnNvY2lf b3JhY2xlX2xhX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpIFwKLStASEFWRV9PUkFDTEVfVFJV RUAJJChhbV9fb2JqZWN0c18yKQotK2xpYnNvY2lfb3JhY2xlX2xhX09CSkVDVFMgPSAkKGFtX2xp YnNvY2lfb3JhY2xlX2xhX09CSkVDVFMpCi0rbGlic29jaV9vcmFjbGVfbGFfTElOSyA9ICQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCi0rCSQoTElCVE9PTEZMQUdTKSAt LW1vZGU9bGluayAkKENYWExEKSBcCi0rCSQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIFwKLSsJJChsaWJzb2NpX29yYWNsZV9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1v ICRACi0rQEhBVkVfT1JBQ0xFX1RSVUVAYW1fbGlic29jaV9vcmFjbGVfbGFfcnBhdGggPSAtcnBh dGggJChsaWJkaXIpCi0rREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9i dWlsZGRpcikvc29jaQotK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9k ZXBjb21wCi0rYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKLSthbV9fbXYgPSBtdiAtZgot K0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhG TEFHUykKLStMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rQ1hYTEQgPSAkKENYWCkKLStDWFhM SU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSBcCi0rCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp ICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0rQ09NUElMRSA9ICQoQ0MpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCi0r CSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKLStMVENPTVBJTEUgPSAkKExJQlRP T0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1v ZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg XAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCi0r Q0NMRCA9ICQoQ0MpCi0rTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1Mp ICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK1NPVVJDRVMg PSAkKGxpYnNvY2lfb3JhY2xlX2xhX1NPVVJDRVMpCi0rRElTVF9TT1VSQ0VTID0gJChhbV9fbGli c29jaV9vcmFjbGVfbGFfU09VUkNFU19ESVNUKQotK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJl Y3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJzaXZl IGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2aS1y ZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1cnNp dmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0 YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVjay1yZWN1 cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1cnNp dmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK2FtX19ub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTX0RJ U1QgPSAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xl LmgKLStIRUFERVJTID0gJChub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTKQotK1JFQ1VSU0lWRV9D TEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCi0r ICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rQU1fUkVD VVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCi0rCSQo UkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFncyBDVEFH UyBcCi0rCWRpc3RkaXIKLStFVEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJU1RfU1VC RElSUyA9ICQoU1VCRElSUykKLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09V UkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK2FtX19yZWxhdGl2aXplID0gXAotKyAg ZGlyMD1gcHdkYDsgXAotKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCi0r ICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAotKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14vXSpc KSQkLFwxLCc7IFwKLSsgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAotKyAgd2hpbGUg dGVzdCAtbiAiJCRkaXIxIjsgZG8gXAotKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNlZCAt ZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4g XAotKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCi0rICAgICAgICBkaXIy PWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKLSsgICAg ICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAotKyAg ICAgIGVsc2UgXAotKyAgICAgICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNl ZF9maXJzdCJgOyBcCi0rICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRo ZW4gXAotKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0 ImA7IFwKLSsgICAgICAgIGVsc2UgXAotKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCi0r ICAgICAgICBmaTsgXAotKyAgICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKLSsgICAg ICBmaTsgXAotKyAgICBmaTsgXAotKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIk JHNlZF9yZXN0ImA7IFwKLSsgIGRvbmU7IFwKLSsgIHJlbGRpcj0iJCRkaXIyIgotK3BrZ2luY2x1 ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFS ID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFE RVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAot K0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBC T09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVT WVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAK LStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElf TElCQAotK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAotK0JP T1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStC T09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACi0rQk9PU1RfUkVHRVhfTElCID0g QEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJ QUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAK LStCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJACi0rQk9PU1RfVEhSRUFEX0xJ QiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0g QEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1Rf VkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJ T05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0g QENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRf Q0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09O RklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0g QENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hY REVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhf VyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZ TVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hP X0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVH UkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJS QVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAot K0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lO U1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5T VEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJP R1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJP QkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBP QAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0g QE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxf Q0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlT UUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBN WVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9 IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJ UlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09D SV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBA T1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2 NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9C VUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklO RyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1F QAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1Ig PSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05G SUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNR TF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdS RVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05A Ci0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQg PSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lf SEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURF UlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJ UCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9O ID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGly ID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAot K2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0ND QAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1Q QklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBh bV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFt X190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1 aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9 IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1 aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJA Ci0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2Rv Y2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBk dmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVm aXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9z dF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0r aG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1 ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9 IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJA Ci0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0r bG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK2x0X0VDSE8gPSBAbHRfRUNIT0AKLStt YW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0g QG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAot K3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2Rp ciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStz aGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5 c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAot K3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBA dG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9 IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK2Jja19vcmFjbGVfaF9zb3VyY2Vz ID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5o IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFj bGUuaAotKwotK2Jja19vcmFjbGVfY2Nfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlw ZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0 ZW1lbnQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv dmVjdG9yLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMg PSBNYWtlZmlsZS5pbgotK1NVQkRJUlMgPSAuIHRlc3QKLStASEFWRV9PUkFDTEVfVFJVRUBsaWJf TFRMSUJSQVJJRVMgPSBsaWJzb2NpX29yYWNsZS5sYQotK0BIQVZFX09SQUNMRV9UUlVFQGxpYnNv Y2lfb3JhY2xlX2xhX1NPVVJDRVMgPSAkKGJja19vcmFjbGVfaF9zb3VyY2VzKSAkKGJja19vcmFj bGVfY2Nfc291cmNlcykgCi0rQEhBVkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfQ1hY RkxBR1MgPSAkKE9SQUNMRV9PQ0lfQ0ZMQUdTKQotK0BIQVZFX09SQUNMRV9UUlVFQGxpYnNvY2lf b3JhY2xlX2xhX0xJQkFERCA9IAotK0BIQVZFX09SQUNMRV9UUlVFQGxpYnNvY2lfb3JhY2xlX2xh X0xERkxBR1MgPSBcCi0rQEhBVkVfT1JBQ0xFX1RSVUVACSQoQk9PU1RfTElCUykgJChCT09TVF9E QVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLStASEFWRV9PUkFD TEVfVFJVRUAJJChPUkFDTEVfT0NJX0xERkxBR1MpIFwKLStASEFWRV9PUkFDTEVfVFJVRUAJLXZl cnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwotK0BIQVZFX09SQUNMRV9U UlVFQG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgKLStAU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2Np X2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVA c29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUKLSth bGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rLlNVRkZJWEVTOiAuY3BwIC5sbyAu byAub2JqCi0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2Nv bmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2Nv bmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAoIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKLSsJ ICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsg fTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8g JyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvb3Jh Y2xlL01ha2VmaWxlJzsgXAotKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChB VVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6 IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRp cikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyop IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNf bWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmln LnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwot KwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3Vy ZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChh bV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgotK2luc3Rh bGwtbGliTFRMSUJSQVJJRVM6ICQobGliX0xUTElCUkFSSUVTKQotKwlAJChOT1JNQUxfSU5TVEFM TCkKLSsJdGVzdCAteiAiJChsaWJkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChsaWJk aXIpIgotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8 fCBsaXN0PTsgXAotKwlsaXN0Mj07IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3Qg LWYgJCRwOyB0aGVuIFwKLSsJICAgIGxpc3QyPSIkJGxpc3QyICQkcCI7IFwKLSsJICBlbHNlIDo7 IGZpOyBcCi0rCWRvbmU7IFwKLSsJdGVzdCAteiAiJCRsaXN0MiIgfHwgeyBcCi0rCSAgZWNobyAi ICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5z dGFsbCAkKElOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICckKERFU1RESVIp JChsaWJkaXIpJyI7IFwKLSsJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykg JCRsaXN0MiAiJChERVNURElSKSQobGliZGlyKSI7IFwKLSsJfQotKwotK3VuaW5zdGFsbC1saWJM VExJQlJBUklFUzoKLSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQobGliX0xUTElC UkFSSUVTKSc7IHRlc3QgLW4gIiQobGliZGlyKSIgfHwgbGlzdD07IFwKLSsJZm9yIHAgaW4gJCRs aXN0OyBkbyBcCi0rCSAgJChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQoTElCVE9PTCkg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1m ICckKERFU1RESVIpJChsaWJkaXIpLyQkZiciOyBcCi0rCSAgJChMSUJUT09MKSAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJ UikkKGxpYmRpcikvJCRmIjsgXAotKwlkb25lCi0rCi0rY2xlYW4tbGliTFRMSUJSQVJJRVM6Ci0r CS10ZXN0IC16ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVT KQotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0r CSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAotKwkgIHRlc3Qg IiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAotKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9z b19sb2NhdGlvbnNcIiI7IFwKLSsJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCi0r CWRvbmUKLStsaWJzb2NpX29yYWNsZS5sYTogJChsaWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTKSAk KGxpYnNvY2lfb3JhY2xlX2xhX0RFUEVOREVOQ0lFUykgCi0rCSQobGlic29jaV9vcmFjbGVfbGFf TElOSykgJChhbV9saWJzb2NpX29yYWNsZV9sYV9ycGF0aCkgJChsaWJzb2NpX29yYWNsZV9sYV9P QkpFQ1RTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0xJQkFERCkgJChMSUJTKQotKwotK21vc3RseWNs ZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLiQoT0JKRVhUKQotKwotK2Rpc3RjbGVhbi1jb21waWxl OgotKwktcm0gLWYgKi50YWIuYwotKwotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1ibG9iLlBsb0BhbV9fcXVvdGVACi0r QEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lf b3JhY2xlX2xhLWVycm9yLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRl QCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuUGxvQGFt X19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJ UikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVA QGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXNl c3Npb24uUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVv dGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsb0Bh bV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBE SVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0r QEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lf b3JhY2xlX2xhLXN0YXRlbWVudC5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5j bHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50 by10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1 b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5QbG9AYW1f X3F1b3RlQAotKwotKy5jcHAubzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxF KSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCou UG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVj dD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAt YyAtbyAkQCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENP TVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZ R1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElS KS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotKwotKy5j cHAubG86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1E IC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0 b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAg JDwKLSsKLStsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL2Jsb2IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIp L2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLWJsb2Iu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv YmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJz b2NpX29yYWNsZV9sYS1ibG9iLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtYmxvYi5Q bG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNs ZV9sYS1ibG9iLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAKLSsKLStsaWJz b2NpX29yYWNsZV9sYS1lcnJvci5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9lcnJvci5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQg bGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf b3JhY2xlX2xhLWVycm9yLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3Iu Y3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9v cmFjbGVfbGEtZXJyb3IuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1lcnJvci5QbG8K LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVf bGEtZXJyb3IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9P TCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcAotKwotK2xp YnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvZmFjdG9yeS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtTVQgbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikv bGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtZmFj dG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0 b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9mYWN0b3J5LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChE RVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuVHBvICQoREVQRElSKS9saWJzb2NpX29y YWNsZV9sYS1mYWN0b3J5LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwJyBv YmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJB Q0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEt ZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9m YWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9mYWN0b3J5LmNwcAotKwotK2xpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29y YWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1p ZC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLlRwbyAt YyAtbyBsaWJzb2NpX29yYWNsZV9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLlRw byAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLlBsbwotK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Jvdy1pZC5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1v IGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAKLSsKLStsaWJzb2NpX29yYWNs ZV9sYS1zZXNzaW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Np b24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfb3JhY2xlX2xhLXNlc3Npb24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3Jh Y2xlX2xhLXNlc3Npb24uVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vz c2lvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJz b2NpX29yYWNsZV9sYS1zZXNzaW9uLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc2Vz c2lvbi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCcgb2JqZWN0PSdsaWJz b2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv c2Vzc2lvbi5jcHAKLSsKLStsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG86 ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29y YWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVf bGEtc3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfb3Jh Y2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xh LXN0YW5kYXJkLWludG8tdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1p bnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlw ZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0rCi0rbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQt dXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQt dXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1U IGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29j aV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10 eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNv Y2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFj bGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRh cmQtdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10 eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLSsKLStsaWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQu bG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcAotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9s YS1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0 YXRlbWVudC5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVt ZW50LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNv Y2lfb3JhY2xlX2xhLXN0YXRlbWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0 YXRlbWVudC5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0n JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9 J2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NM QVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3Jh Y2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGF0 ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3Rh dGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCi0rCi0rbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWlu dG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50 by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBs aWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElS KS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX29y YWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3Bw Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9vcmFj bGVfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZl Y3Rvci1pbnRvLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlw ZS5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbycgbGli dG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRv LXR5cGUuY3BwCi0rCi0rbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvOiAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEt dmVjdG9yLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9s YS12ZWN0b3ItdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2Ut dHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0 b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUu VHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUuUGxvCi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29y YWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVz ZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Zl Y3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAotKwotK21vc3RseWNsZWFuLWxp YnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGli cyBfbGlicwotK2luc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTOiAkKG5vYmFzZV9wa2dp bmNsdWRlX0hFQURFUlMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKHBrZ2lu Y2x1ZGVkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLSsJ QGxpc3Q9JyQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1 ZGVkaXIpIiB8fCBsaXN0PTsgXAotKwkkKGFtX19ub2Jhc2VfbGlzdCkgfCB3aGlsZSByZWFkIGRp ciBmaWxlczsgZG8gXAotKwkgIHhmaWxlcz07IGZvciBmaWxlIGluICQkZmlsZXM7IGRvIFwKLSsJ ICAgIGlmIHRlc3QgLWYgIiQkZmlsZSI7IHRoZW4geGZpbGVzPSIkJHhmaWxlcyAkJGZpbGUiOyBc Ci0rCSAgICBlbHNlIHhmaWxlcz0iJCR4ZmlsZXMgJChzcmNkaXIpLyQkZmlsZSI7IGZpOyBkb25l OyBcCi0rCSAgdGVzdCAteiAiJCR4ZmlsZXMiIHx8IHsgXAotKwkgICAgdGVzdCAieCQkZGlyIiA9 IHguIHx8IHsgXAotKwkgICAgICBlY2hvICIkKE1LRElSX1ApICckKERFU1RESVIpJChwa2dpbmNs dWRlZGlyKS8kJGRpciciOyBcCi0rCSAgICAgICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2lu Y2x1ZGVkaXIpLyQkZGlyIjsgfTsgXAotKwkgICAgZWNobyAiICQoSU5TVEFMTF9IRUFERVIpICQk eGZpbGVzICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGRpciciOyBcCi0rCSAgICAkKElO U1RBTExfSEVBREVSKSAkJHhmaWxlcyAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRkaXIi IHx8IGV4aXQgJCQ/OyB9OyBcCi0rCWRvbmUKLSsKLSt1bmluc3RhbGwtbm9iYXNlX3BrZ2luY2x1 ZGVIRUFERVJTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChub2Jhc2VfcGtn aW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBc Ci0rCSQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IGZpbGVzPWAkKGFtX19ub2Jhc2Vfc3RyaXAp YDsgXAotKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKLSsJZWNobyAiICggY2QgJyQo REVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKLSsJY2Qg IiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIiAmJiBybSAtZiAkJGZpbGVzCi0rCi0rIyBUaGlz IGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBj YW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2gg dGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJs ZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxl IGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAg KHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlv dSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVz IG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlA ZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBc Ci0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayop IGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3Nl ZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJN YWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g Ii4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIk JHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQi OyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJ ZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0 IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsPSBm YWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBj YXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNv bT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsg XAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0q KSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7 OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkg IGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRz dWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBc Ci0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRp ciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7 IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207 IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9 JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3Vi ZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMp JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8 ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBc Ci0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJ TEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMp JzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAi JCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAg ZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBc Ci0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7 IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzog dGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVT KSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsg XAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAy PiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBl bXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwK LSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHNldCAi JCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsg XAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FS R1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8 fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0r CSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdT KSBcCi0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdT KSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAg ICQkdW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3Rh Z3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykg XAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FS R1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NG TEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVy ZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiAkKGFtX19jZCkg JCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgot KwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMg R1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVj aG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNy Y2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBm aWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4k JHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQo dG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8q KSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFk O3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBc Ci0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVz dCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIp OyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVj aG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAt ZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8k JGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0r CSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRk ICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAi JChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8k JGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0r CSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8 IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUi IFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAg ICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBc Ci0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBl eGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRo ZW4gOjsgZWxzZSBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3Vi ZGlyIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld19kaXN0ZGlyPSQk cmVsZGlyOyBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwK LSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxk aXI7IFwKLSsJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGly IiBcXCI7IFwKLSsJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBf bGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKLSsJICAgICgk KGFtX19jZCkgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBc Ci0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAg ZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJ YW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCi0rCSAg ICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25l Ci0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1h a2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKLStpbnN0YWxsZGlyczogaW5zdGFsbGRp cnMtcmVjdXJzaXZlCi0raW5zdGFsbGRpcnMtYW06Ci0rCWZvciBkaXIgaW4gIiQoREVTVERJUikk KGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKLSsJICB0ZXN0IC16 ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRvbmUKLStpbnN0YWxsOiBpbnN0 YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2lu c3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxs LXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VG TEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazog aW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0r CSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExf U1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hv ICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21v c3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2Vu ZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05G SUdfQ0xFQU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENP TkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJ TEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFu ZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRl cyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10 ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xF QU5GSUxFUykKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdl bmVyaWMgY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCi0rCW1vc3RseWNsZWFu LWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERF UERJUikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xl YW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi10YWdzCi0rCi0rZHZp OiBkdmktcmVjdXJzaXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0r Ci0raHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06Ci0rCi0r aW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVSUwotKwotK2lu c3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWR2aS1hbToKLSsK LStpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKLSsKLStpbnN0YWxsLWh0 bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5z dGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvLWFtOgot KwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUK LSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2 ZQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWlu ZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERFUERJ UikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFt IG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1y ZWN1cnNpdmUKLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHlj bGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vy c2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0r dW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgXAotKwl1bmluc3RhbGwtbm9i YXNlX3BrZ2luY2x1ZGVIRUFERVJTCi0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdF VFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtYW0g aW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQotKwotKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAotKwlhbGwgYWxs LWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJMVExJ QlJBUklFUyBjbGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWRpc3RjbGVh biBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1saWJ0 b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1hbSBp bmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3RhbGwt ZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlpbnN0 YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAot KwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBcCi0r CWluc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTIGluc3RhbGwtcGRmIGluc3RhbGwtcGRm LWFtIFwKLSsJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNo ZWNrIFwKLSsJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50 YWluZXItY2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9z dGx5Y2xlYW4tY29tcGlsZSBcCi0rCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGli dG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKLSsJdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmluc3Rh bGwgdW5pbnN0YWxsLWFtIFwKLSsJdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1u b2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMKLSsKLStAU0VUX01BS0VACi0rCi0rIyBUZWxsIHZlcnNp b25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4K LSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBl eGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAg KzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1v cmFjbGUuaAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTIyLDkgKzIy LDE0IEBACi0gI2lmbmRlZiBTT0NJX09SQUNMRV9ERUNMCi0gIyBkZWZpbmUgU09DSV9PUkFDTEVf REVDTAotICNlbmRpZgotLQotLSNpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLS0jaW5jbHVkZSA8 b2NpLmg+IC8vIE9DSQotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsj ICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KLSsjZWxzZQotKyMJaW5j bHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0rI2VuZGlmCi0rLy8KLSsjaW5jbHVkZSA8b2NpLmg+IC8v IE9DSSAoT3JhY2xlIGNsaWVudCkKLSAjaW5jbHVkZSA8dmVjdG9yPgotIAotICNpZmRlZiBfTVND X1ZFUgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nv dXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvdXJjZXMu bWsKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb3VyY2VzLm1r CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNi4w MDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTQgQEAKLStiY2tfb3JhY2xlX2hfc291cmNlcyA9 IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuaCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xl LmgKLStiY2tfb3JhY2xlX2NjX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3Bw IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50 LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rv ci1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLS0tLSBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3Bw CTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAwOS0wNC0x NiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC03LDEwICs3LDE4IEBACi0gCi0gI2RlZmlu ZSBTT0NJX09SQUNMRV9TT1VSQ0UKLSAjaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKLS0jaW5jbHVk ZSAiYmxvYi5oIgotICNpbmNsdWRlICJlcnJvci5oIgotLSNpbmNsdWRlICJyb3dpZC5oIgotLSNp bmNsdWRlICJzdGF0ZW1lbnQuaCIKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJ RUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYmxvYi5oPgotKyMgICAgICAgaW5jbHVk ZSA8c29jaS9jb3JlL3Jvd2lkLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc3RhdGVt ZW50Lmg+Ci0rI2Vsc2UKLSsjICAgICAgIGluY2x1ZGUgPGJsb2IuaD4KLSsjICAgICAgIGluY2x1 ZGUgPHJvd2lkLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzdGF0ZW1lbnQuaD4KLSsjZW5kaWYKLSsv LwotICNpbmNsdWRlIDxjY3R5cGU+Ci0gI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0 cmluZz4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9z dGFuZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAw MDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAy MDAKLUBAIC03LDEwICs3LDE4IEBACi0gCi0gI2RlZmluZSBzb2NpX09SQUNMRV9TT1VSQ0UKLSAj aW5jbHVkZSAic29jaS1vcmFjbGUuaCIKLS0jaW5jbHVkZSAiYmxvYi5oIgotICNpbmNsdWRlICJl cnJvci5oIgotLSNpbmNsdWRlICJyb3dpZC5oIgotLSNpbmNsdWRlICJzdGF0ZW1lbnQuaCIKLSsv LwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxz b2NpL2NvcmUvYmxvYi5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Jvd2lkLmg+Ci0r IyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc3RhdGVtZW50Lmg+Ci0rI2Vsc2UKLSsjICAgICAg IGluY2x1ZGUgPGJsb2IuaD4KLSsjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+Ci0rIyAgICAgICBp bmNsdWRlIDxzdGF0ZW1lbnQuaD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxjY3R5cGU+Ci0g I2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCi0tLS0gc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcAkyMDEwLTAxLTIzIDE0 OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICsw MjAwCi1AQCAtOSw3ICs5LDEzIEBACi0gCi0gI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgiCi0gI2lu Y2x1ZGUgImVycm9yLmgiCi0tI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgotKy8vCi0rI2lmIGRl ZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9z b2NpLWJhY2tlbmQuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0rI2Vu ZGlmCi0rLy8KLSAjaW5jbHVkZSA8Y2N0eXBlPgotICNpbmNsdWRlIDxjc3RkaW8+Ci0gI2luY2x1 ZGUgPGNzdHJpbmc+Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9N YWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCAr MSwyMiBAQAotKyMjIGNvcmUgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0rCi0rTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK2lmIEhBVkVfT1JBQ0xFCi0rICBURVNU X09SQUNMRSA9IHRlc3Rfb3JhY2xlCi0rCi0raWYgUlVOX1RFU1RTCi0rICBub2luc3RfUFJPR1JB TVMgPSAkKFRFU1RfT1JBQ0xFKQotK2VuZGlmCi0rCi0rdGVzdF9vcmFjbGVfU09VUkNFUyA9ICQo b3JhY2xlX3Rlc3RfY2Nfc291cmNlcykKLSt0ZXN0X29yYWNsZV9DWFhGTEFHUyA9ICQoQk9PU1Rf Q0ZMQUdTKSAkKE9SQUNMRV9PQ0lfQ0ZMQUdTKQotK3Rlc3Rfb3JhY2xlX0xEQUREID0KLSt0ZXN0 X29yYWNsZV9MREZMQUdTID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29yZS9saWJzb2NpX2NvcmUu bGEgLWxkbCBcCi0rCQkkKHRvcF9idWlsZGRpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvbGlic29j aV9vcmFjbGUubGEgXAotKwkJJChPUkFDTEVfT0NJX0xERkxBR1MpCi0rZW5kaWYKLSsKLSsjbm9k aXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQob3JhY2xlX3Rlc3RfaF9zb3VyY2VzKQotZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUu YmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZp bGUuYmFzaWMKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0 L01ha2VmaWxlLmJhc2ljCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCi0rKysg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYmFz aWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xLDIzICswLDAgQEAK LS0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgaXMgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFu ZCBpdHMgY29ycmVjdAotLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50 IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KLS0KLS1PUkFDTEVJTkNMVURFRElS ID0gLUkvdXNyL2xpYi9vcmFjbGUveGUvYXBwL29yYWNsZS9wcm9kdWN0LzEwLjIuMC9zZXJ2ZXIv cmRibXMvcHVibGljIAotLU9SQUNMRUxJQkRJUiA9IC1ML3Vzci9saWIvb3JhY2xlL3hlL2FwcC9v cmFjbGUvcHJvZHVjdC8xMC4yLjAvc2VydmVyL2xpYiAKLS1PUkFDTEVMSUJTID0gLWxjbG50c2gg LWxubnoxMAotLQotLSMgVGhlIHJlc3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW50ZW50IG9m IHRoZSB0YXJnZXQgZW52aXJvbm1lbnQuCi0tCi0tQ09NUElMRVIgPSBnKysKLS1DWFhGTEFHUyA9 IC1XYWxsIC1wZWRhbnRpYyAtV25vLWxvbmctbG9uZwotLUlOQ0xVREVESVJTID0gLUkuLiAtSS4u Ly4uLy4uL2NvcmUgLUkuLi8uLi8uLi9jb3JlL3Rlc3QgJHtPUkFDTEVJTkNMVURFRElSfQotLUxJ QkRJUlMgPSAtTC4uIC1MLi4vLi4vLi4vY29yZSAke09SQUNMRUxJQkRJUn0KLS1MSUJTID0gLWxz b2NpX2NvcmUgLWxzb2NpX29yYWNsZSAtbGRsIC1sYm9vc3RfZGF0ZV90aW1lICR7T1JBQ0xFTElC U30KLS0KLS0KLS10ZXN0LW9yYWNsZSA6IHRlc3Qtb3JhY2xlLmNwcCAKLS0jLi4vLi4vLi4vY29y ZS90ZXN0L2NvbW1vbi10ZXN0cy5oCi0tCSR7Q09NUElMRVJ9IC1vICRAICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9ICR7TElCRElSU30gJHtMSUJTfQotLQotLQotLWNsZWFuIDoKLS0Jcm0g LWYgKi5vIHRlc3Qtb3JhY2xlCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdC9NYWtlZmlsZS5pbgkyMDEwLTAxLTIzIDE0OjQ0OjUyLjAwMDAwMDAwMCArMDEwMAotQEAg LTAsMCArMSw1NjIgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEx LjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmln aHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIw MDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUg c29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRl ZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdp dGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQu Ci0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVu dCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBP U0UuCi0rCi0rQFNFVF9NQUtFQAotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0g JChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFD S0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9 ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lP TisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFs bF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwot K2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0g JChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQot K05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoK LStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RB TEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAK LStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUu aW4gXAotKwkkKHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1v bgotK0BIQVZFX09SQUNMRV9UUlVFQEBSVU5fVEVTVFNfVFJVRUBub2luc3RfUFJPR1JBTVMgPSAk KGFtX19FWEVFWFRfMSkKLStzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0Ci0rQUNM T0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMg PSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9v bC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNp b24ubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNk aXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRf ZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2lu c3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWls ZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rQ09ORklHX0NMRUFO X1ZQQVRIX0ZJTEVTID0KLStASEFWRV9PUkFDTEVfVFJVRUBhbV9fRVhFRVhUXzEgPSB0ZXN0X29y YWNsZSQoRVhFRVhUKQotK1BST0dSQU1TID0gJChub2luc3RfUFJPR1JBTVMpCi0rYW1fX3Rlc3Rf b3JhY2xlX1NPVVJDRVNfRElTVCA9ICBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKLSthbV9fb2JqZWN0c18xID0gdGVzdF9vcmFjbGUt dGVzdC1vcmFjbGUuJChPQkpFWFQpCi0rQEhBVkVfT1JBQ0xFX1RSVUVAYW1fdGVzdF9vcmFjbGVf T0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkKLSt0ZXN0X29yYWNsZV9PQkpFQ1RTID0gJChhbV90 ZXN0X29yYWNsZV9PQkpFQ1RTKQotK3Rlc3Rfb3JhY2xlX0RFUEVOREVOQ0lFUyA9Ci0rdGVzdF9v cmFjbGVfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCi0r CSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSAkKHRlc3Rfb3JhY2xlX0NYWEZM QUdTKSBcCi0rCSQoQ1hYRkxBR1MpICQodGVzdF9vcmFjbGVfTERGTEFHUykgJChMREZMQUdTKSAt byAkQAotK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIp L3NvY2kKLStkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAot K2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCi0rYW1fX212ID0gbXYgLWYKLStDWFhDT01Q SUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0r CSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0r TFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0NYWExEID0gJChDWFgpCi0rQ1hYTElOSyA9ICQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAot KwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xE RkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK1NPVVJDRVMgPSAkKHRlc3Rfb3JhY2xlX1NP VVJDRVMpCi0rRElTVF9TT1VSQ0VTID0gJChhbV9fdGVzdF9vcmFjbGVfU09VUkNFU19ESVNUKQot K0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVEZJTEVTID0gJChESVNUX0NPTU1P TikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FMID0g QEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVU T0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtF QAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9E QVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9M SUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09T VF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElf TElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJ X1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFN X09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStC T09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05f TElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJP T1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAK LStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNU X0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1Rf VkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBC T09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQ TU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQ RkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05G SUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStD UFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQ ID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hY RkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElS ID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5A Ci0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hP X1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JF UEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAK LStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJ TlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNU QUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBA SU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AK LStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9P TEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9C SlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FM X0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0r TVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStN WVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5N RURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVf RElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NG TEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNM RV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0r T1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JF UE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1F QAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9 IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAK LStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdf Q09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NG TEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxf TERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBP U1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQ TV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwg PSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAot K1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAK LStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURF UlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9D T01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxk ZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFi c190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNf Y3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1Q QklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1f X2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3Rl QAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRp ciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxp YXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLSti dWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2Rh dGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29r ID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5f b2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3By ZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0r aG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rf b3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0g QGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2Rp ckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0r bGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGly ID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNI TyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAot K29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3By ZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRf b2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2Rp ciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9 IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAot K3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGly QAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rb3Jh Y2xlX3Rlc3RfaF9zb3VyY2VzID0gCi0rb3JhY2xlX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKLStNQUlOVEFJ TkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rQEhBVkVfT1JBQ0xFX1RSVUVAVEVTVF9PUkFD TEUgPSB0ZXN0X29yYWNsZQotK0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rfb3JhY2xlX1NPVVJDRVMg PSAkKG9yYWNsZV90ZXN0X2NjX3NvdXJjZXMpCi0rQEhBVkVfT1JBQ0xFX1RSVUVAdGVzdF9vcmFj bGVfQ1hYRkxBR1MgPSAkKEJPT1NUX0NGTEFHUykgJChPUkFDTEVfT0NJX0NGTEFHUykKLStASEFW RV9PUkFDTEVfVFJVRUB0ZXN0X29yYWNsZV9MREFERCA9IAotK0BIQVZFX09SQUNMRV9UUlVFQHRl c3Rfb3JhY2xlX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29y ZS5sYSAtbGRsIFwKLStASEFWRV9PUkFDTEVfVFJVRUAJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9saWJzb2NpX29yYWNsZS5sYSBcCi0rQEhBVkVfT1JBQ0xFX1RSVUVACQkk KE9SQUNMRV9PQ0lfTERGTEFHUykKLSsKLSthbGw6IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSsu U1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNy Y2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIp L3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBc Ci0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBc Ci0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0 IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBc Ci0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1n bnUgc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQo dG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvb3Jh Y2xlL3Rlc3QvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3Jj ZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAn JD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0r CSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1 cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9f ZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcu c3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5D SUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9k ZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsk KGFtX19hY2xvY2FsX200X2RlcHMpOgotKwotK2NsZWFuLW5vaW5zdFBST0dSQU1TOgotKwlAbGlz dD0nJChub2luc3RfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKLSsJ ZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKLSsJcm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCi0r CXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAwOyBcCi0rCWxpc3Q9YGZvciBwIGluICQkbGlz dDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKLSsJZWNo byAiIHJtIC1mIiAkJGxpc3Q7IFwKLSsJcm0gLWYgJCRsaXN0Ci0rdGVzdF9vcmFjbGUkKEVYRUVY VCk6ICQodGVzdF9vcmFjbGVfT0JKRUNUUykgJCh0ZXN0X29yYWNsZV9ERVBFTkRFTkNJRVMpIAot KwlAcm0gLWYgdGVzdF9vcmFjbGUkKEVYRUVYVCkKLSsJJCh0ZXN0X29yYWNsZV9MSU5LKSAkKHRl c3Rfb3JhY2xlX09CSkVDVFMpICQodGVzdF9vcmFjbGVfTERBREQpICQoTElCUykKLSsKLSttb3N0 bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4tY29t cGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBh bV9fcXVvdGVALi8kKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuUG9AYW1fX3F1b3Rl QAotKwotKy5jcHAubzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQg JEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAn IGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAk QCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUp IC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhf VykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5U cG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotKwotKy5jcHAubG86 Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAt TUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXll cyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA Ci0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsK LSt0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJCh0ZXN0X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3Rf b3JhY2xlLXRlc3Qtb3JhY2xlLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRl c3Qtb3JhY2xlLlRwbyAtYyAtbyB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rl c3QvdGVzdC1vcmFjbGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERF UERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvICQoREVQRElSKS90ZXN0X29yYWNsZS10 ZXN0LW9yYWNsZS5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3Bw JyBvYmplY3Q9J3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFD S1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtYyAtbyB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qv dGVzdC1vcmFjbGUuY3BwCi0rCi0rdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqOiAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X29yYWNsZV9DWFhGTEFHUykg JChDWFhGTEFHUykgLU1UIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaiAtTUQgLU1QIC1NRiAk KERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvIC1jIC1vIHRlc3Rfb3JhY2xlLXRl c3Qtb3JhY2xlLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgZWxzZSAkKENZ R1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rl c3QvdGVzdC1vcmFjbGUuY3BwJzsgZmlgCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvICQoREVQRElSKS90ZXN0X29y YWNsZS10ZXN0LW9yYWNsZS5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFj bGUuY3BwJyBvYmplY3Q9J3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaicgbGlidG9vbD1ubyBA QU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBE SVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0r QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9vcmFjbGVfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaiBgaWYg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3Jh Y2xlLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGly KS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3Bw JzsgZmlgCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVh bi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rSUQ6ICQoSEVBREVSUykgJChT T1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7 IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAk KHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQk MF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsg Zm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVl Ci0rdGFnczogVEFHUwotKwotK1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19E RVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwlzZXQgeDsgXAotKwlo ZXJlPWBwd2RgOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FS R1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8 fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0r CSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdT KSBcCi0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdT KSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAg ICQkdW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogICQo SEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJ TEVTKSAkKExJU1ApCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwK LSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19B UkdTKSBcCi0rCSAgICAgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQo dG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBc Ci0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgotKwotK2Rpc3RjbGVhbi10 YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwot K2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIg fCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hv ICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlz dD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsg ZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8 O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98 O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBl Y2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIp L3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJ Zm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwg dGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlm IHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwg c2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8k JGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQg ISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkg ICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsg dGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGly IiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQg ISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkg ICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkg IGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNw IC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwK LSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQot K2FsbC1hbTogTWFrZWZpbGUgJChQUk9HUkFNUykKLStpbnN0YWxsZGlyczoKLStpbnN0YWxsOiBp bnN0YWxsLWFtCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6 IGluc3RhbGwtZGF0YS1hbQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1h bTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5z dGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxs LXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5T VEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxM X1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICck KFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9 JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdl bmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVB Tl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQo c3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAt ZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVy aWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRv IHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFs IHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUyki IHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0r Y2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFN UyBcCi0rCW1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KLSsJLXJt IC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFu LWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRh Z3MKLSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0r aHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRh dGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5zdGFsbC1kdmkt YW06Ci0rCi0raW5zdGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1s LWFtCi0rCi0raW5zdGFsbC1odG1sLWFtOgotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZv LWFtCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwt cGRmOiBpbnN0YWxsLXBkZi1hbQotKwotK2luc3RhbGwtcGRmLWFtOgotKwotK2luc3RhbGwtcHM6 IGluc3RhbGwtcHMtYW0KLSsKLStpbnN0YWxsLXBzLWFtOgotKwotK2luc3RhbGxjaGVjay1hbToK LSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCi0rCS1ybSAtcmYgLi8k KERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNs ZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHlj bGVhbi1hbQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNs ZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtYW0KLSsK LStwZGYtYW06Ci0rCi0rcHM6IHBzLWFtCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgot KwotKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6IENUQUdTIEdU QUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCi0rCWNs ZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgY3RhZ3MgZGlzdGNsZWFuIFwKLSsJZGlz dGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAotKwlk aXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1h bSBcCi0rCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGlu c3RhbGwtZHZpIFwKLSsJaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1h bSBpbnN0YWxsLWh0bWwgXAotKwlpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIGluc3RhbGwt aW5mby1hbSBpbnN0YWxsLW1hbiBcCi0rCWluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3Rh bGwtcHMgaW5zdGFsbC1wcy1hbSBcCi0rCWluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3Rh bGxjaGVjay1hbSBpbnN0YWxsZGlycyBcCi0rCW1haW50YWluZXItY2xlYW4gbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwKLSsJbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHlj bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgXAotKwlwZGYgcGRmLWFtIHBzIHBzLWFt IHRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQotKwotK0BTRVRfTUFLRUAKLSsKLSsjbm9kaXN0 X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQob3JhY2xlX3Rlc3RfaF9zb3VyY2VzKQotKwotKyMgVGVs bCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJp YWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBt YXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIw MAotQEAgLTAsMCArMSwyIEBACi0rb3JhY2xlX3Rlc3RfaF9zb3VyY2VzID0KLStvcmFjbGVfdGVz dF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rl c3Qtb3JhY2xlLmNwcAotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6 NDQuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAw ICswMjAwCi1AQCAtNSw5ICs1LDE3IEBACi0gLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5T RV8xXzAudHh0KQotIC8vCi0gCi0tI2luY2x1ZGUgInNvY2kuaCIKLS0jaW5jbHVkZSAic29jaS1v cmFjbGUuaCIKLS0jaW5jbHVkZSAiY29tbW9uLXRlc3RzLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChT T0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4K LSsjICAgICAgIGluY2x1ZGUgPHNvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmg+Ci0r IyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaD4KLSsjZWxzZQot KyMJaW5jbHVkZSA8c29jaS5oPgotKyMJaW5jbHVkZSA8c29jaS1vcmFjbGUuaD4KLSsjICAgICAg IGluY2x1ZGUgPHRlc3QvY29tbW9uLXRlc3RzLmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8 aW9zdHJlYW0+Ci0gI2luY2x1ZGUgPHN0cmluZz4KLSAjaW5jbHVkZSA8Y2Fzc2VydD4KLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10 eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWlu dG8tdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS92 ZWN0b3ItaW50by10eXBlLmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10 eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTcsOCArNywx NCBAQAotIAotICNkZWZpbmUgc29jaV9PUkFDTEVfU09VUkNFCi0gI2luY2x1ZGUgInNvY2ktb3Jh Y2xlLmgiCi0tI2luY2x1ZGUgInN0YXRlbWVudC5oIgotICNpbmNsdWRlICJlcnJvci5oIgotKy8v Ci0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNv Y2kvY29yZS9zdGF0ZW1lbnQuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c3RhdGVtZW50Lmg+Ci0r I2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8Y2N0eXBlPgotICNpbmNsdWRlIDxjc3RkaW8+Ci0gI2lu Y2x1ZGUgPGNzdHJpbmc+Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9jb21tb24uY3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1v bi5jcHAJMjAwOS0wNS0wNSAyMjozMDo1Mi4wMDAwMDAwMDAgKzAyMDAKLUBAIC02LDcgKzYsMTIg QEAKLSAvLwotIAotICNpbmNsdWRlICJjb21tb24uaCIKLS0jaW5jbHVkZSA8c29jaS1iYWNrZW5k Lmg+Ci0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5j bHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2Np LWJhY2tlbmQuaD4KLSsjZW5kaWYKLSAvLwotICNpbmNsdWRlIDxjc3RkbGliPgotICNpbmNsdWRl IDxjc3RkaW8+Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxl LmFtCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDMwIEBA Ci0rIyMgYmFja2VuZHMvcG9zdGdyZXNxbCBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9z cmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsK LStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9IC4gdGVz dAotKwotKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbW1vbi5oCi0r Ci0rRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQotKwot K2lmIEhBVkVfUE9TVEdSRVNRTAotK2xpYl9MVExJQlJBUklFUz0gbGlic29jaV9wb3N0Z3Jlc3Fs LmxhCi0rCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVM9ICQoYmNrX3Bvc3RncmVzcWxf aF9zb3VyY2VzKSAkKGJja19wb3N0Z3Jlc3FsX2NjX3NvdXJjZXMpIAotK2xpYnNvY2lfcG9zdGdy ZXNxbF9sYV9DWFhGTEFHUyA9ICQoUE9TVEdSRVNRTF9DRkxBR1MpCi0rbGlic29jaV9wb3N0Z3Jl c3FsX2xhX0xJQkFERCA9Ci0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xERkxBR1MgPSBcCi0rCSQo Qk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9O U19MSUIpIFwKLSsJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwot K3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3NvY2ktcG9zdGdyZXNxbC5oCi0rZW5kaWYKLStpZiBTT0NJX0hFQURFUlNfQlVSSUVECi0r c29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs Ci0rZWxzZQotK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCi0rZW5kaWYKLStwa2dp bmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCi0tLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCTIwMTAt MDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotQEAgLTEsOTUgKzAsMCBAQAotLSMgVGhlIGZvbGxvd2luZyB2YXJp YWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIGl0cyBjb3JyZWN0Ci0tIyB2YWx1 ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0 IGFjY29yZGluZ2x5LgotLQotLVBHU1FMSU5DTFVERURJUiA9IC1JL3Vzci9pbmNsdWRlCi0tCi0t IyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBl bnZpcm9ubWVudC4KLS0KLS1DT01QSUxFUiA9IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFu dGljIC1Xbm8tbG9uZy1sb25nCi0tQ1hYRkxBR1NTTyA9ICR7Q1hYRkxBR1N9IC1mUElDCi0tSU5D TFVERURJUlMgPSAtSS4uLy4uL2NvcmUgJHtQR1NRTElOQ0xVREVESVJ9Ci0tCi0tCi0tT0JKRUNU UyA9IGJsb2IubyBmYWN0b3J5Lm8gcm93LWlkLm8gc2Vzc2lvbi5vIHN0YW5kYXJkLWludG8tdHlw ZS5vIFwKLS0Jc3RhbmRhcmQtdXNlLXR5cGUubyBzdGF0ZW1lbnQubyB2ZWN0b3ItaW50by10eXBl Lm8gdmVjdG9yLXVzZS10eXBlLm8gXAotLQljb21tb24ubwotLQotLU9CSkVDVFNTTyA9IGJsb2It cy5vIGZhY3Rvcnktcy5vIHJvdy1pZC1zLm8gc2Vzc2lvbi1zLm8gXAotLQlzdGFuZGFyZC1pbnRv LXR5cGUtcy5vIHN0YW5kYXJkLXVzZS10eXBlLXMubyBzdGF0ZW1lbnQtcy5vIFwKLS0JdmVjdG9y LWludG8tdHlwZS1zLm8gdmVjdG9yLXVzZS10eXBlLXMubyBjb21tb24tcy5vCi0tCi0tCi0tbGli c29jaV9wb3N0Z3Jlc3FsLmEgOiAke09CSkVDVFN9Ci0tCWFyIHJ2ICRAICQ/Ci0tCXJtICoubwot LQotLQotLWJsb2IubyA6IGJsb2IuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCi0tY29tbW9uLm8gOiBjb21tb24uY3BwCi0tCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tZmFjdG9yeS5vIDogZmFjdG9y eS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0K LS1yb3ctaWQubyA6IHJvdy1pZC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30g JHtJTkNMVURFRElSU30KLS0KLS1zZXNzaW9uLm8gOiBzZXNzaW9uLmNwcAotLQkke0NPTVBJTEVS fSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLWludG8tdHlw ZS5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZM QUdTfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLXVzZS10eXBlLm8gOiBzdGFuZGFyZC11 c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElS U30KLS0KLS1zdGF0ZW1lbnQubyA6IHN0YXRlbWVudC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8g JHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS12ZWN0b3ItaW50by10eXBlLm8gOiB2ZWN0 b3ItaW50by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xV REVESVJTfQotLQotLXZlY3Rvci11c2UtdHlwZS5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAotLQkk e0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLQotLXNoYXJl ZCA6ICR7T0JKRUNUU1NPfQotLQkke0NPTVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfcG9zdGdy ZXNxbC5zbyAke09CSkVDVFNTT30KLS0Jcm0gKi5vCi0tCi0tYmxvYi1zLm8gOiBibG9iLmNwcAot LQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0t Ci0tY29tbW9uLXMubyA6IGNvbW1vbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtD WFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLWZhY3Rvcnktcy5vIDogZmFjdG9yeS5jcHAK LS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQot LQotLXJvdy1pZC1zLm8gOiByb3ctaWQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7 Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zZXNzaW9uLXMubyA6IHNlc3Npb24uY3Bw Ci0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30K LS0KLS1zdGFuZGFyZC1pbnRvLXR5cGUtcy5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAotLQkk e0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0t c3RhbmRhcmQtdXNlLXR5cGUtcy5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElM RVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zdGF0ZW1l bnQtcy5vIDogc3RhdGVtZW50LmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZM QUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tdmVjdG9yLWludG8tdHlwZS1zLm8gOiB2ZWN0b3It aW50by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7 SU5DTFVERURJUlN9Ci0tCi0tdmVjdG9yLXVzZS10eXBlLXMubyA6IHZlY3Rvci11c2UtdHlwZS5j cHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJT fQotLQotLQotLWNsZWFuIDoKLS0Jcm0gLWYgbGlic29jaV9wb3N0Z3Jlc3FsLmEgbGlic29jaV9w b3N0Z3Jlc3FsLnNvCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2Vm aWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTIuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDkw NCBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1h a2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5 NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIw MDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Np b24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2Rp ZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRl ZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStA U0VUX01BS0VACi0rCi0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFk aXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJl eGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pT SF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0g JChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxf c2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9I RUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3Jt X25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNU QUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NU X1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9 IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChhbV9fcGtnaW5jbHVkZV9IRUFERVJTX0RJU1QpICQo c3JjZGlyKS9NYWtlZmlsZS5hbSBcCi0rCSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHNyY2Rpcikv c291cmNlcy5tayBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGlyID0g c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsCi0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNs b2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9i b29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25m aWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5D SUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAt ZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJ R19DTEVBTl9GSUxFUyA9Ci0rQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KLSthbV9fdnBhdGhf YWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcn YDsKLSthbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAotKyAgICAkKHNyY2RpcikvKikgZj1g ZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAotKyAgICAqKSBmPSQk cDs7IFwKLSsgIGVzYWM7Ci0rYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdz fF4uKi98fCdgOwotK2FtX19pbnN0YWxsX21heCA9IDQwCi0rYW1fX25vYmFzZV9zdHJpcF9zZXR1 cCA9IFwKLSsgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRc XCp8XS9cXFxcJi9nJ2AKLSthbV9fbm9iYXNlX3N0cmlwID0gXAotKyAgZm9yIHAgaW4gJCRsaXN0 OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkIC1lICJzfCQkc3JjZGlyc3RyaXAvfHwiCi0rYW1f X25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAotKyAgZm9yIHAgaW4g JCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKLSsgIHNlZCAic3wgJCRzcmNkaXJz dHJpcC98IHw7IicgLyAuKlwvLyFzLyAuKi8gLi87IHMsXCggLipcKS9bXi9dKiQkLFwxLCcgfCBc Ci0rICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmls ZXNbJCQyXSAiICIgJCQxOyBcCi0rICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21h eCkpIFwKLSsgICAgICB7IHByaW50ICQkMiwgZmlsZXNbJCQyXTsgblskJDJdID0gMDsgZmlsZXNb JCQyXSA9ICIiIH0gfSBcCi0rICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIs IGZpbGVzW2Rpcl0gfScKLSthbV9fYmFzZV9saXN0ID0gXAotKyAgc2VkICckJCFOOyQkIU47JCQh TjskJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJyB8IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQk IU47JCQhTjtzL1xuLyAvZycKLSthbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQobGliZGly KSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgotK0xUTElCUkFSSUVTID0gJChsaWJfTFRM SUJSQVJJRVMpCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0RFUEVOREVOQ0lFUyA9Ci0rYW1fX2xp YnNvY2lfcG9zdGdyZXNxbF9sYV9TT1VSQ0VTX0RJU1QgPSAgXAotKwkkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uaCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oIFwKLSsJJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKLSsJJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcCBcCi0rCSQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwK LSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBl LmNwcAotK2FtX19vYmplY3RzXzEgPQotK2FtX19vYmplY3RzXzIgPSBsaWJzb2NpX3Bvc3RncmVz cWxfbGEtYmxvYi5sbyBcCi0rCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24ubG8gXAotKwls aWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBcCi0rCWxpYnNvY2lfcG9zdGdyZXNxbF9s YS1yb3ctaWQubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbyBcCi0rCWxp YnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gXAotKwlsaWJzb2NpX3Bv c3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVzcWxf bGEtc3RhdGVtZW50LmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5 cGUubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvCi0rQEhB VkVfUE9TVEdSRVNRTF9UUlVFQGFtX2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9PQkpFQ1RTID0gIFwK LStASEFWRV9QT1NUR1JFU1FMX1RSVUVACSQoYW1fX29iamVjdHNfMSkgJChhbV9fb2JqZWN0c18y KQotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX3Bvc3RncmVz cWxfbGFfT0JKRUNUUykKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTElOSyA9ICQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCi0rCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 bGluayAkKENYWExEKSBcCi0rCSQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSBcCi0rCSQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xERkxBR1MpICQoTERGTEFHUykg LW8gJEAKLStASEFWRV9QT1NUR1JFU1FMX1RSVUVAYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX3Jw YXRoID0gLXJwYXRoIFwKLStASEFWRV9QT1NUR1JFU1FMX1RSVUVACSQobGliZGlyKQotK0RFRkFV TFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKLStkZXBj b21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAotK2FtX19kZXBmaWxl c19tYXliZSA9IGRlcGZpbGVzCi0rYW1fX212ID0gbXYgLWYKLStDWFhDT01QSUxFID0gJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rTFRDWFhDT01QSUxF ID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdT KSAkKENYWEZMQUdTKQotK0NYWExEID0gJChDWFgpCi0rQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGlu ayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKLSsJ JChMREZMQUdTKSAtbyAkQAotK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAotKwkkKENQUEZMQUdTKSAkKEFNX0NG TEFHUykgJChDRkxBR1MpCi0rTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDQykgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0NDTEQgPSAkKENDKQotK0xJTksg PSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg XAotKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZM QUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStTT1VSQ0VTID0gJChsaWJzb2NpX3Bvc3RncmVz cWxfbGFfU09VUkNFUykKLStESVNUX1NPVVJDRVMgPSAkKGFtX19saWJzb2NpX3Bvc3RncmVzcWxf bGFfU09VUkNFU19ESVNUKQotK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVj ay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJz aXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5z dGFsbC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1p bmZvLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vy c2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFs bGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxs LXJlY3Vyc2l2ZQotK2FtX19wa2dpbmNsdWRlX0hFQURFUlNfRElTVCA9ICBcCi0rCSQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCi0rSEVBREVS UyA9ICQocGtnaW5jbHVkZV9IRUFERVJTKQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9z dGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4tcmVjdXJz aXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAk KFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCi0rCSQoUkVDVVJTSVZFX0NMRUFOX1RB UkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCi0rCWRpc3RkaXIKLStF VEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykK LStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykg JChFWFRSQV9ESVNUKQotK2FtX19yZWxhdGl2aXplID0gXAotKyAgZGlyMD1gcHdkYDsgXAotKyAg c2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCi0rICBzZWRfcmVzdD0ncyxeW14v XSovKiwsJzsgXAotKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKLSsgIHNl ZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAotKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsg ZG8gXAotKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsg XAotKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAotKyAgICAgIGlmIHRlc3Qg IiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCi0rICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwg c2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKLSsgICAgICAgIGRpcjA9YGVjaG8gIiQk ZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAotKyAgICAgIGVsc2UgXAotKyAgICAg ICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAg ICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAotKyAgICAgICAgICBk aXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgICAgICAgIGVs c2UgXAotKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCi0rICAgICAgICBmaTsgXAotKyAg ICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKLSsgICAgICBmaTsgXAotKyAgICBmaTsg XAotKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsg IGRvbmU7IFwKLSsgIHJlbGRpcj0iJCRkaXIyIgotK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5j bHVkZV9kaXIpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0g QEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAK LStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBC T09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElC QAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NU X0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJP T1NUX0xJQlNACi0rQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAotK0JPT1NUX01QSV9Q WVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAotK0JPT1NUX1BST0dSQU1fT1BUSU9O U19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9QWVRIT05fTElCID0g QEJPT1NUX1BZVEhPTl9MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAK LStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStC T09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9TWVNURU1fTElC ID0gQEJPT1NUX1NZU1RFTV9MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURf TElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9X U0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQEND QAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBA Q1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRf Q0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElC UyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAK LStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBN T0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0r REVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxA Ci0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVD SE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBF WEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VO RVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFM TEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJ TlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5T VEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAK LStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElC U0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AK LStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElS X1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0Nf TElCID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9M SUJTID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05N ID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVY VCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9D RkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNM RV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9O QAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBB Q0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FH RV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklO R0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lP TiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JA Ci0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9D RkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVT UUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BP U1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJ QkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtF ID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBA U09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lf TVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExP QURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJz X2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0r YWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0g QGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBh Y19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRl ID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0r YW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFy ID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1 aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVp bGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWls ZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBA ZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0r ZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sg PSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nf b2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2Nw dSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9z dF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRp ckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xh dGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBs aWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBs b2NhbHN0YXRlZGlyQAotK2x0X0VDSE8gPSBAbHRfRUNIT0AKLSttYW5kaXIgPSBAbWFuZGlyQAot K21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0r cGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3Jt X25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmlu ZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBz aGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29u ZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXgg PSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3Rv cF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIp IC1JJCh0b3Bfc3JjZGlyKQotK2Jja19wb3N0Z3Jlc3FsX2hfc291cmNlcyA9IFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5oIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNx bC5oCi0rCi0rYmNrX3Bvc3RncmVzcWxfY2Nfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAgXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAgXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9u LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z dGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUu Y3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Zl Y3Rvci11c2UtdHlwZS5jcHAKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmlu Ci0rU1VCRElSUyA9IC4gdGVzdAotKwotKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJ VFkgPSAuX2NvbW1vbi5oCi0rRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01Q QVRJQklMSVRZKQotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJfTFRMSUJSQVJJRVMgPSBsaWJz b2NpX3Bvc3RncmVzcWwubGEKLStASEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jl c3FsX2xhX1NPVVJDRVMgPSAkKGJja19wb3N0Z3Jlc3FsX2hfc291cmNlcykgJChiY2tfcG9zdGdy ZXNxbF9jY19zb3VyY2VzKSAKLStASEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jl c3FsX2xhX0NYWEZMQUdTID0gJChQT1NUR1JFU1FMX0NGTEFHUykKLStASEFWRV9QT1NUR1JFU1FM X1RSVUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJQkFERCA9IAotK0BIQVZFX1BPU1RHUkVTUUxf VFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTERGTEFHUyA9IFwKLStASEFWRV9QT1NUR1JFU1FM X1RSVUVACSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dS QU1fT1BUSU9OU19MSUIpIFwKLStASEFWRV9QT1NUR1JFU1FMX1RSVUVACS12ZXJzaW9uLWluZm8g JChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLStASEFWRV9QT1NUR1JFU1FMX1RSVUVAcGtn aW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv c29jaS1wb3N0Z3Jlc3FsLmgKLStAU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2NpX2luY2x1 ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVAc29jaV9p bmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsCi0rYWxs OiBhbGwtcmVjdXJzaXZlCi0rCi0rLlNVRkZJWEVTOgotKy5TVUZGSVhFUzogLmNwcCAubG8gLm8g Lm9iagotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRv cF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25m aWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25m aWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAgICAgKCBjZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCi0rCSAg ICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07 IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcg Y2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvTWFrZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAk KEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUKLSsuUFJF Q0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9i dWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0 YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVw ZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwll c2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNk aXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQp OiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgot K2luc3RhbGwtbGliTFRMSUJSQVJJRVM6ICQobGliX0xUTElCUkFSSUVTKQotKwlAJChOT1JNQUxf SU5TVEFMTCkKLSsJdGVzdCAteiAiJChsaWJkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIp JChsaWJkaXIpIgotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJk aXIpIiB8fCBsaXN0PTsgXAotKwlsaXN0Mj07IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlm IHRlc3QgLWYgJCRwOyB0aGVuIFwKLSsJICAgIGxpc3QyPSIkJGxpc3QyICQkcCI7IFwKLSsJICBl bHNlIDo7IGZpOyBcCi0rCWRvbmU7IFwKLSsJdGVzdCAteiAiJCRsaXN0MiIgfHwgeyBcCi0rCSAg ZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9aW5zdGFsbCAkKElOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICckKERF U1RESVIpJChsaWJkaXIpJyI7IFwKLSsJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RSSVBf RkxBRykgJCRsaXN0MiAiJChERVNURElSKSQobGliZGlyKSI7IFwKLSsJfQotKwotK3VuaW5zdGFs bC1saWJMVExJQlJBUklFUzoKLSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQobGli X0xUTElCUkFSSUVTKSc7IHRlc3QgLW4gIiQobGliZGlyKSIgfHwgbGlzdD07IFwKLSsJZm9yIHAg aW4gJCRsaXN0OyBkbyBcCi0rCSAgJChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQoTElC VE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxs IHJtIC1mICckKERFU1RESVIpJChsaWJkaXIpLyQkZiciOyBcCi0rCSAgJChMSUJUT09MKSAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQo REVTVERJUikkKGxpYmRpcikvJCRmIjsgXAotKwlkb25lCi0rCi0rY2xlYW4tbGliTFRMSUJSQVJJ RVM6Ci0rCS10ZXN0IC16ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElC UkFSSUVTKQotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBk byBcCi0rCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAotKwkg IHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAotKwkgIGVjaG8gInJtIC1mIFwiJCR7 ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKLSsJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMi OyBcCi0rCWRvbmUKLStsaWJzb2NpX3Bvc3RncmVzcWwubGE6ICQobGlic29jaV9wb3N0Z3Jlc3Fs X2xhX09CSkVDVFMpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0RFUEVOREVOQ0lFUykgCi0rCSQo bGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJTkspICQoYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX3Jw YXRoKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfcG9zdGdyZXNx bF9sYV9MSUJBREQpICQoTElCUykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYg Ki4kKE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsK LStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29j aV9wb3N0Z3Jlc3FsX2xhLWJsb2IuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1v bi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAot K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X3Bvc3RncmVzcWxfbGEtcm93LWlkLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19p bmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNz aW9uLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3Rl QC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxv QGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsb0BhbV9fcXVv dGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xp YnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJV RUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rv ci11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAotKwotKy5jcHAubzoKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAt YyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQq LlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCou VHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5v IEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK LStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFU SF9XKSAnJDwnYAotKwotKy5jcHAubG86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhD T01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJ UikvJCouUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8 JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hY Q09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf cG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNx bF9sYS1ibG9iLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEt YmxvYi5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfcG9z dGdyZXNxbF9sYS1ibG9iLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2Iu UGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwJyBvYmplY3Q9J2xpYnNvY2lf cG9zdGdyZXNxbF9sYS1ibG9iLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL2Jsb2IuY3BwCi0rCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9w b3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLWNvbW1vbi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xh LWNvbW1vbi5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv Y29tbW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xp YnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24uVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVz cWxfbGEtY29tbW9uLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwJyBv YmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24ubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9z dGdyZXNxbF9sYS1jb21tb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAKLSsKLStsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtZmFjdG9yeS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvZmFjdG9yeS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5UcG8gLWMgLW8gbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLWZhY3RvcnkubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5 LlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkuUGxvCi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1mYWN0b3J5LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL2ZhY3RvcnkuY3BwCi0rCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXJvdy1pZC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLXJvdy1pZC5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvcm93LWlkLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIp L2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3Rn cmVzcWxfbGEtcm93LWlkLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3Bw JyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQubG8nIGxpYnRvb2w9eWVzIEBB TURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJ Uj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lf cG9zdGdyZXNxbF9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAKLSsKLStsaWJzb2NpX3Bv c3RncmVzcWxfbGEtc2Vzc2lvbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc2Vzc2lvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5UcG8gLWMgLW8gbGlic29jaV9w b3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNz aW9uLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24uUGxvCi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdy ZXNxbF9sYS1zZXNzaW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lv bi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Nlc3Npb24uY3BwCi0rCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJk LWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3Rh bmRhcmQtaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8t dHlwZS5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRh cmQtaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFu ZGFyZC1pbnRvLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRh cmQtaW50by10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRv LXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5 cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXAp IEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJk LWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLSsKLStsaWJzb2NpX3Bv c3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3Fs X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5k YXJkLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxf bGEtc3RhbmRhcmQtdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFu ZGFyZC11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX3Bvc3Rn cmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVz cWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0 YW5kYXJkLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRh cmQtdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAk KGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElC VE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2Ut dHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv c3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLSsKLStsaWJz b2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElC VE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LmxvIC1N RCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LlRwbyAt YyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1l bnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1zdGF0ZW1lbnQuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5j cHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5sbycgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcAot KwotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvOiAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf cG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVz cWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5 cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX3Bv c3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdmVjdG9yLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZl Y3Rvci1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo TElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50 by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKLSsKLStsaWJz b2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVz cWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVj dG9yLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxf bGEtdmVjdG9yLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9y LXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXZlY3Rvci11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0 b3ItdXNlLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlw ZS5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbycg bGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1y bSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotK2lu c3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtnaW5jbHVkZV9IRUFERVJTKQotKwlAJChOT1JN QUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgJChNS0RJUl9QKSAi JChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCi0rCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVS UyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAotKwlmb3IgcCBpbiAk JGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3Jj ZGlyKS8iOyBmaTsgXAotKwkgIGVjaG8gIiQkZCQkcCI7IFwKLSsJZG9uZSB8ICQoYW1fX2Jhc2Vf bGlzdCkgfCBcCi0rCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKLSsJICBlY2hvICIgJChJTlNUQUxM X0hFQURFUikgJCRmaWxlcyAnJChERVNURElSKSQocGtnaW5jbHVkZWRpciknIjsgXAotKwkgICQo SU5TVEFMTF9IRUFERVIpICQkZmlsZXMgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIiB8fCBl eGl0ICQkPzsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOgotKwlA JChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVz dCAtbiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgbGlzdD07IFwKLSsJZmlsZXM9YGZvciBwIGluICQk bGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7IFwKLSsJdGVzdCAt biAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCi0rCWVjaG8gIiAoIGNkICckKERFU1RESVIpJChwa2dp bmNsdWRlZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCi0rCWNkICIkKERFU1RESVIpJChw a2dpbmNsdWRlZGlyKSIgJiYgcm0gLWYgJCRmaWxlcwotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBz dWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRv IHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUu Ci0rIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9m IGVkaXRpbmcgTWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNv bmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNh dXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7 Ci0rIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2Un IGNvbW1hbmQgbGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWw9IGZhaWxjb209 J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRm IGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWls PXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRh cmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJT KSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0 IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0r CSAgICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBc Ci0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBc Ci0rCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxv Y2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYg dGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgot KwotKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAx JzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAot KwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7 IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAi IGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNU X1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBc Ci0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2Ijsg XAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVj aG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRv IFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQt YW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkg IGZpOyBcCi0rCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYg dGVzdCAteiAiJCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgk KGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJ ZG9uZQotK2N0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0r SUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0n JChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVl PWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNo byAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAg JChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQg eyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJ bWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZl ICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdT X0ZJTEVTKSAkKExJU1ApCi0rCXNldCB4OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRB R1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0r CSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwK LSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4 PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAg dGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICBzZXQgIiQkQCIgIiQkaW5jbHVk ZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAot KwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwK LSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7 IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUg fCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkg ICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9 J2A7IFwKLSsJc2hpZnQ7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVl IjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1w dHlfZml4OyBcCi0rCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAotKwkgICAgJChFVEFHUykg JChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAi JCRAIiAkJHVuaXF1ZTsgXAotKwkgIGVsc2UgXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdT KSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAkJHVuaXF1ZTsgXAot KwkgIGZpOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAk KEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19G SUxFUykgJChMSVNQKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChU QUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlm IHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBm aTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0 eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVz KSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBc Ci0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1Nf QVJHUykgXAotKwkgICAgICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAk KHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2Rpcikg XAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKLSsKLStkaXN0Y2xlYW4t dGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsK LStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2Rpciki IHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNo byAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxp c3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7 IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98 fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikv fDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBg ZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGly KS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0r CWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8 IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBp ZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8 IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikv JCRmaWxlIjsgdGhlbiBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBk ICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJ ICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7 IHRoZW4gXAotKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRp ciIgfHwgZXhpdCAxOyBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBk ICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJ ICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJ ICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBj cCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgZXhpdCAxOyBc Ci0rCSAgZmk7IFwKLSsJZG9uZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVs c2UgXAotKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgJChN S0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAg Zmk7IFwKLSsJZG9uZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAot KwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKLSsJICAg ICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsgXAotKwkg ICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCi0rCSAgICAkKGFtX19y ZWxhdGl2aXplKTsgXAotKwkgICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBl Y2hvICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGly PSIkJG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCi0rCSAg ICBlY2hvICIgICAgIGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9jaGVjaz06 IGFtX19za2lwX21vZGVfZml4PTogZGlzdGRpcikiOyBcCi0rCSAgICAoJChhbV9fY2QpICQkc3Vi ZGlyICYmIFwKLSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICAgICAgIHRv cF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9IiQkbmV3 X2Rpc3RkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFtX19za2lwX2xlbmd0 aF9jaGVjaz06IFwKLSsJCWFtX19za2lwX21vZGVfZml4PTogXAotKwkgICAgICAgIGRpc3RkaXIp IFwKLSsJICAgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBh bGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZSAkKExUTElC UkFSSUVTKSAkKEhFQURFUlMpCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQot K2luc3RhbGxkaXJzLWFtOgotKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChE RVNURElSKSQocGtnaW5jbHVkZWRpcikiOyBkbyBcCi0rCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQo TUtESVJfUCkgIiQkZGlyIjsgXAotKwlkb25lCi0raW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUK LStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKLStpbnN0YWxsLWRhdGE6IGlu c3RhbGwtZGF0YS1yZWN1cnNpdmUKLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKLSsK LStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwt ZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1y ZWN1cnNpdmUKLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNU QUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hf UFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMg XAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9H UkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5l cmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0 IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVT KQotKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBB VEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKLSsKLSttYWlu dGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQg Zm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBt YXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlO VEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xl YW46IGNsZWFuLXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxp YkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgXAotKwltb3N0bHljbGVhbi1hbQotKwotK2Rpc3Rj bGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAt ZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlz dGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2 ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2h0bWwtYW06Ci0r Ci0raW5mbzogaW5mby1yZWN1cnNpdmUKLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1h bTogaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2 aS1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06IGlu c3RhbGwtbGliTFRMSUJSQVJJRVMKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1 cnNpdmUKLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWlu Zm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwot K2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBkZi1hbToK LSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHMtYW06 Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXIt Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxl Ci0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2Vu ZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0bHlj bGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9z dGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsK LStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmluc3Rh bGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rLk1BS0U6 ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJl Y3Vyc2l2ZSBcCi0rCWluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQotKwot Ky5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykg Q1RBR1MgR1RBR1MgXAotKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdl bmVyaWMgXAotKwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIGN0YWdzIGN0YWdz LXJlY3Vyc2l2ZSBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2Vu ZXJpYyBcCi0rCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2 aS1hbSBodG1sIFwKLSsJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGlu c3RhbGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1h bSBpbnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwt aHRtbC1hbSBpbnN0YWxsLWluZm8gXAotKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1saWJMVExJ QlJBUklFUyBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRmLWFtIGluc3Rh bGwtcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wcyBcCi0rCWluc3RhbGwtcHMtYW0gaW5zdGFs bC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKLSsJaW5zdGFsbGRpcnMgaW5z dGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJp YyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKLSsJbW9zdGx5Y2xlYW4tZ2VuZXJp YyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAotKwl0YWdzIHRhZ3Mt cmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAotKwl1bmluc3RhbGwtbGliTFRMSUJS QVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rQFNFVF9NQUtFQAotKwotKyMg VGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2 YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0 KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCi0tLS0g c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNx bC5oCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAkyMDA5LTA0 LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAotQEAgLTIyLDkgKzIyLDE0IEBACi0gI2lmbmRl ZiBTT0NJX1BPU1RHUkVTUUxfREVDTAotICMgZGVmaW5lIFNPQ0lfUE9TVEdSRVNRTF9ERUNMCi0g I2VuZGlmCi0tCi0tI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgotLSNpbmNsdWRlIDxsaWJwcS1m ZS5oPgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGlu Y2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29j aS1iYWNrZW5kLmg+Ci0rI2VuZGlmCi0rLy8KLSsjaW5jbHVkZSA8bGlicHEtZmUuaD4gLy8gUG9z dEdyZVNRTCBjbGllbnQKLSAjaW5jbHVkZSA8dmVjdG9yPgotIAotICNpZmRlZiBfTVNDX1ZFUgot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb3Vy Y2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc291cmNl cy5tawotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb3Vy Y2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb3VyY2VzLm1rCTIwMDktMDQtMTYg MTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE0IEBACi0rYmNrX3Bvc3RncmVz cWxfaF9zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvY29tbW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKLStiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2Vz ID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxv Yi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv Y29tbW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9mYWN0b3J5LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9yb3ctaWQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUu Y3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0 YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUu Y3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQt aW50by10eXBlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAw ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z dGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAw Ci1AQCAtOCw5ICs4LDE2IEBACi0gI2RlZmluZSBTT0NJX1BPU1RHUkVTUUxfU09VUkNFCi0gI2lu Y2x1ZGUgInNvY2ktcG9zdGdyZXNxbC5oIgotICNpbmNsdWRlICJjb21tb24uaCIKLS0jaW5jbHVk ZSAicm93aWQuaCIKLS0jaW5jbHVkZSAiYmxvYi5oIgotLSNpbmNsdWRlIDxsaWJwcS9saWJwcS1m cy5oPiAvLyBsaWJwcQotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsj ICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2Np L2NvcmUvcm93aWQuaD4KLSsjZWxzZQotKyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgotKyMgICAg ICAgaW5jbHVkZSA8cm93aWQuaD4KLSsjZW5kaWYKLSsvLwotKyNpbmNsdWRlIDxsaWJwcS9saWJw cS1mcy5oPiAvLyBsaWJwcSAoUG9zdEdyZVNRTCBjbGllbnQpCi0gI2luY2x1ZGUgPGNjdHlwZT4K LSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxjc3RyaW5nPgotZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5j cHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11 c2UtdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFu ZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAKLUBA IC03LDggKzcsMTQgQEAKLSAKLSAjZGVmaW5lIFNPQ0lfUE9TVEdSRVNRTF9TT1VSQ0UKLSAjaW5j bHVkZSAic29jaS1wb3N0Z3Jlc3FsLmgiCi0tI2luY2x1ZGUgInJvd2lkLmgiCi0tI2luY2x1ZGUg PGxpYnBxL2xpYnBxLWZzLmg+IC8vIGxpYnBxCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURF UlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Jvd2lkLmg+Ci0rI2Vsc2UK LSsjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+Ci0rI2VuZGlmCi0rLy8KLSsjaW5jbHVkZSA8bGli cHEvbGlicHEtZnMuaD4gLy8gbGlicHEgKFBvc3RHcmVTUUwgY2xpZW50KQotICNpbmNsdWRlIDxj Y3R5cGU+Ci0gI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmls ZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFr ZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv dGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmls ZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwxOCBA QAotKyMjIGNvcmUgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmls ZS5jb21tb24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0rCi0rTUFJTlRBSU5FUkNM RUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK2lmIFJVTl9URVNUUwotKyAgbm9pbnN0X1BST0dS QU1TID0gdGVzdF9wb3N0Z3Jlc3FsCi0rZW5kaWYKLSsKLSt0ZXN0X3Bvc3RncmVzcWxfU09VUkNF UyA9ICQocG9zdGdyZXNxbF90ZXN0X2NjX3NvdXJjZXMpCi0rdGVzdF9wb3N0Z3Jlc3FsX0NYWEZM QUdTID0gJChCT09TVF9DRkxBR1MpCi0rdGVzdF9wb3N0Z3Jlc3FsX0xEQUREID0KLSt0ZXN0X3Bv c3RncmVzcWxfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3Jl LmxhIC1sZGwgXAotKwkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9s aWJzb2NpX3Bvc3RncmVzcWwubGEgXAotKwkJJChQT1NUR1JFU1FMX0xERkxBR1MpCi0rCi0rI25v ZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKHBvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMpCi1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qv TWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC90ZXN0L01ha2VmaWxlLmJhc2ljCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKLUBAIC0xLDIyICswLDAgQEAKLS0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgaXMgc3BlY2lm aWMgdG8gdGhpcyBiYWNrZW5kIGFuZCBpdHMgY29ycmVjdAotLSMgdmFsdWVzIG1pZ2h0IGRlcGVu ZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4K LS0KLS1QR1NRTElOQ0xVREVESVIgPSAtSS91c3IvaW5jbHVkZQotLVBHU1FMTElCRElSID0gLUwv dXNyL2xpYgotLVBHU1FMTElCUyA9IC1scHEKLS0KLS0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmls ZSBpcyBpbmRlcGVudGVudCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgotLQotLUNPTVBJTEVS ID0gZysrCi0tQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKLS1JTkNM VURFRElSUyA9IC1JLi4gLUkuLi8uLi8uLi9jb3JlL3Rlc3QgLUkuLi8uLi8uLi9jb3JlICR7UEdT UUxJTkNMVURFRElSfQotLUxJQkRJUlMgPSAtTC4uIC1MLi4vLi4vLi4vY29yZSAke1BHU1FMTElC RElSfQotLUxJQlMgPSAtbHNvY2lfY29yZSAtbHNvY2lfcG9zdGdyZXNxbCAtbGRsICR7UEdTUUxM SUJTfQotLQotLQotLXRlc3QtcG9zdGdyZXNxbCA6IHRlc3QtcG9zdGdyZXNxbC5jcHAKLS0JJHtD T01QSUxFUn0gLW8gJEAgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30gJHtMSUJESVJTfSAk e0xJQlN9Ci0tCi0tCi0tY2xlYW4gOgotLQlybSAtZiB0ZXN0LXBvc3RncmVzcWwKLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmls ZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFr ZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv dGVzdC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmls ZS5pbgkyMDEwLTAxLTIzIDE0OjQ0OjUyLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw1NTkg QEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtl ZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQs IDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAz LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9u IHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZp Y2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQg YnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNF VF9NQUtFQAotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9A UEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2ds aWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2Rp cikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9T RVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0g NjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hf U0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RB VEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNU QUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5J TlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVp bGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1P TiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHNy Y2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK0BSVU5fVEVT VFNfVFJVRUBub2luc3RfUFJPR1JBTVMgPSB0ZXN0X3Bvc3RncmVzcWwkKEVYRUVYVCkKLStzdWJk aXIgPSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdAotK0FDTE9DQUxfTTQgPSAkKHRvcF9z cmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3Bw dW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1 Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMK LSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJF X0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5z dGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmln LmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0r UFJPR1JBTVMgPSAkKG5vaW5zdF9QUk9HUkFNUykKLSthbV9fb2JqZWN0c18xID0gdGVzdF9wb3N0 Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC4kKE9CSkVYVCkKLSthbV90ZXN0X3Bvc3RncmVzcWxfT0JK RUNUUyA9ICQoYW1fX29iamVjdHNfMSkKLSt0ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUyA9ICQoYW1f dGVzdF9wb3N0Z3Jlc3FsX09CSkVDVFMpCi0rdGVzdF9wb3N0Z3Jlc3FsX0RFUEVOREVOQ0lFUyA9 Ci0rdGVzdF9wb3N0Z3Jlc3FsX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAotKwkk KHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgXAotKwkkKHRlc3RfcG9zdGdy ZXNxbF9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rREVGQVVMVF9JTkNMVURFUyA9IC1JLkBh bV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQotK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRv cF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCi0rYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMK LSthbV9fbXYgPSBtdiAtZgotK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChB TV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rQ1hY TEQgPSAkKENYWCkKLStDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hY RkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0r U09VUkNFUyA9ICQodGVzdF9wb3N0Z3Jlc3FsX1NPVVJDRVMpCi0rRElTVF9TT1VSQ0VTID0gJCh0 ZXN0X3Bvc3RncmVzcWxfU09VUkNFUykKLStFVEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwot K0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAk KEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FS ID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURF UkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9 IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVf TElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JP T1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0g QEJPT1NUX0xJQlNACi0rQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAotK0JPT1NUX01Q SV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAotK0JPT1NUX1BST0dSQU1fT1BU SU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9QWVRIT05fTElC ID0gQEJPT1NUX1BZVEhPTl9MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJ QkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAK LStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9TWVNURU1f TElCID0gQEJPT1NUX1NZU1RFTV9MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJF QURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVT VF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09T VF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0g QENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAg PSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVO SVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRf TElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lP TkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhE RVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dA Ci0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVU SUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0g QEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9 IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBA R0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5T VEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9 IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0r SU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBM REAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBA TElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5f U0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01L RElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FM X0NfTElCID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNR TF9MSUJTID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAot 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 K3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRk aXIpIC1JJCh0b3Bfc3JjZGlyKQotK3Bvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMgPSAKLStwb3N0 Z3Jlc3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAotK01BSU5UQUlORVJDTEVBTkZJTEVTID0g TWFrZWZpbGUuaW4KLSt0ZXN0X3Bvc3RncmVzcWxfU09VUkNFUyA9ICQocG9zdGdyZXNxbF90ZXN0 X2NjX3NvdXJjZXMpCi0rdGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1Mp Ci0rdGVzdF9wb3N0Z3Jlc3FsX0xEQUREID0gCi0rdGVzdF9wb3N0Z3Jlc3FsX0xERkxBR1MgPSAk KHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKLSsJCSQodG9w X2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvbGlic29jaV9wb3N0Z3Jlc3FsLmxh IFwKLSsJCSQoUE9TVEdSRVNRTF9MREZMQUdTKQotKwotK2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJ WEVTOgotKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagotKyQoc3JjZGlyKS9NYWtlZmlsZS5p bjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAk KHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4g JD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICok JGRlcCopIFwKLSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0 aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkg IGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9N QUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSc7IFwKLSsJ JChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQot K01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5z dGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7 OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxM KSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwK LSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChz dWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9i dWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdf U1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAk KGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxf bTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoCi0rJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKLSsKLStjbGVhbi1ub2luc3RQ Uk9HUkFNUzoKLSsJQGxpc3Q9JyQobm9pbnN0X1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIg fHwgZXhpdCAwOyBcCi0rCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCi0rCXJtIC1mICQkbGlzdCB8 fCBleGl0ICQkPzsgXAotKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAotKwlsaXN0 PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgJ3MvJChFWEVFWFQp JCQvLydgOyBcCi0rCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCi0rCXJtIC1mICQkbGlzdAotK3Rl c3RfcG9zdGdyZXNxbCQoRVhFRVhUKTogJCh0ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUykgJCh0ZXN0 X3Bvc3RncmVzcWxfREVQRU5ERU5DSUVTKSAKLSsJQHJtIC1mIHRlc3RfcG9zdGdyZXNxbCQoRVhF RVhUKQotKwkkKHRlc3RfcG9zdGdyZXNxbF9MSU5LKSAkKHRlc3RfcG9zdGdyZXNxbF9PQkpFQ1RT KSAkKHRlc3RfcG9zdGdyZXNxbF9MREFERCkgJChMSUJTKQotKwotK21vc3RseWNsZWFuLWNvbXBp bGU6Ci0rCS1ybSAtZiAqLiQoT0JKRVhUKQotKwotK2Rpc3RjbGVhbi1jb21waWxlOgotKwktcm0g LWYgKi50YWIuYwotKwotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlBvQGFtX19xdW90ZUAKLSsK LSsuY3BwLm86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1N RCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0 b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwK LSsKLSsuY3BwLm9iajoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQg JEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICck PCdgCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQo REVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENY WENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLSsKLSsuY3BwLmxvOgotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQo REVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9f bXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbwotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rdGVz dF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubyAtTUQgLU1QIC1NRiAk KERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5UcG8gLWMgLW8gdGVzdF9w b3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVz dC1wb3N0Z3Jlc3FsLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBE SVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuVHBvICQoREVQRElSKS90ZXN0X3Bv c3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCcgb2JqZWN0PSd0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0 Z3Jlc3FsLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9w b3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVz dC1wb3N0Z3Jlc3FsLmNwcAotKwotK3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2Jq OiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdy ZXNxbC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rf cG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3RfcG9zdGdyZXNxbC10ZXN0 LXBvc3RncmVzcWwub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVz dC1wb3N0Z3Jlc3FsLlRwbyAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm9i aiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVz dC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IGVsc2Ug JChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgZmlgCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoYW1fX212KSAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5U cG8gJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuUG8KLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJyBvYmplY3Q9J3Rlc3Rf cG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFT SEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X3Bvc3RncmVzcWxfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1jIC1vIHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqIGBpZiB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3Qt cG9zdGdyZXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgZWxzZSAkKENZR1BB VEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90 ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyBmaWAKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgot Kwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMK LSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1 bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhl biBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwK LSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAg IEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsg XAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogICQoSEVBREVS UykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAk KExJU1ApCi0rCXNldCB4OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXNoaWZ0OyBcCi0r CWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0r CSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgIGlmIHRl c3QgJCQjIC1ndCAwOyB0aGVuIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9F VEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKLSsJ ICBlbHNlIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAk KEVUQUdTX0FSR1MpIFwKLSsJICAgICAgJCR1bmlxdWU7IFwKLSsJICBmaTsgXAotKwlmaQotK2N0 YWdzOiBDVEFHUwotK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5E RU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQo Q1RBR1NfQVJHUykkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChB TV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHVuaXF1ZQotKwotK0dUQUdT OgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmICQo YW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIk JGhlcmUiCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFH UyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJz dHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwK LSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRc XCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxl cz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQg LWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJz dHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwK LSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2Vk ICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQg LXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJ ICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0k KHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAg IGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBp ZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAotKwkgICAgICBmaW5kICIkKGRp c3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30g XDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYg dGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLWZwUiAkKHNyY2Rpcikv JCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgICAgICBmaW5kICIkKGRp c3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30g XDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikk JGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIp LyQkZmlsZSIgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUi IFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxs LWFtCi0rY2hlY2s6IGNoZWNrLWFtCi0rYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKQotK2lu c3RhbGxkaXJzOgotK2luc3RhbGw6IGluc3RhbGwtYW0KLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwt ZXhlYy1hbQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCi0rdW5pbnN0YWxsOiB1bmlu c3RhbGwtYW0KLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGlu c3RhbGxjaGVjay1hbQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFs bF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxB Rz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxM X1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFu LWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJ LXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5f RklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVB Tl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQotKwot K21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRl bmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0 aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIk KE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykK LStjbGVhbjogY2xlYW4tYW0KLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0 b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xl YW46IGRpc3RjbGVhbi1hbQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmls ZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdl bmVyaWMgXAotKwlkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLWFtCi0rCi0rZHZpLWFtOgot KwotK2h0bWw6IGh0bWwtYW0KLSsKLStodG1sLWFtOgotKwotK2luZm86IGluZm8tYW0KLSsKLStp bmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1k dmktYW0KLSsKLStpbnN0YWxsLWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5z dGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5z dGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KLSsKLStpbnN0YWxsLWluZm8tYW06Ci0rCi0raW5z dGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCi0rCi0raW5zdGFsbC1w ZGYtYW06Ci0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQotKwotK2luc3RhbGwtcHMtYW06 Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXIt Y2xlYW4tYW0KLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWlu dGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0r Ci0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3Rs eWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRv b2wKLSsKLStwZGY6IHBkZi1hbQotKwotK3BkZi1hbToKLSsKLStwczogcHMtYW0KLSsKLStwcy1h bToKLSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJp cAotKwotKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVh biBjbGVhbi1nZW5lcmljIFwKLSsJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBj dGFncyBkaXN0Y2xlYW4gXAotKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBk aXN0Y2xlYW4tbGlidG9vbCBcCi0rCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBo dG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKLSsJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwt ZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAotKwlpbnN0YWxsLWR2aS1hbSBpbnN0 YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCi0rCWluc3RhbGwtaHRtbC1h bSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKLSsJaW5zdGFsbC1w ZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKLSsJaW5zdGFsbC1z dHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKLSsJbWFpbnRh aW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAotKwltb3N0 bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBc Ci0rCXBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0r QFNFVF9NQUtFQAotKwotKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChwb3N0Z3Jlc3Fs X3Rlc3RfaF9zb3VyY2VzKQotKwotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUg bWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0g bGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0 L3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90 ZXN0L3NvdXJjZXMubWsKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvdGVzdC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw Ci0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Nv dXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEs MiBAQAotK3Bvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMgPQotK3Bvc3RncmVzcWxfdGVzdF9jY19z b3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0 LXBvc3RncmVzcWwuY3BwCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAotLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdy ZXNxbC5jcHAJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3Fs LmNwcAkyMDEwLTAxLTIzIDEzOjI1OjU3LjAwMDAwMDAwMCArMDEwMAotQEAgLTUsOSArNSwxNyBA QAotIC8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKLSAvLwotIAotLSNp bmNsdWRlICJzb2NpLmgiCi0tI2luY2x1ZGUgInNvY2ktcG9zdGdyZXNxbC5oIgotLSNpbmNsdWRl ICJjb21tb24tdGVzdHMuaCIKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQp Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS5oPgotKyMgICAgICAgaW5jbHVkZSA8 c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oPgotKyMgICAgICAgaW5j bHVkZSA8c29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUg PHNvY2kuaD4KLSsjCWluY2x1ZGUgPHNvY2ktcG9zdGdyZXNxbC5oPgotKyMgICAgICAgaW5jbHVk ZSA8dGVzdC9jb21tb24tdGVzdHMuaD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxpb3N0cmVh bT4KLSAjaW5jbHVkZSA8c3N0cmVhbT4KLSAjaW5jbHVkZSA8c3RyaW5nPgotZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvY29uZmlnLmguaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv Y29uZmlnLmguaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvbmZpZy5oLmluCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvY29uZmlnLmguaW4JMjAxMC0wMS0yMyAxNDo0NDo1MC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0w LDAgKzEsMTU1IEBACi0rLyogc29jaS9jb25maWcuaC5pbi4gIEdlbmVyYXRlZCBmcm9tIGNvbmZp Z3VyZS5hYyBieSBhdXRvaGVhZGVyLiAgKi8KLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0IGxp YnJhcnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfQk9PU1QKLSsKLSsvKiBkZWZpbmUg aWYgdGhlIEJvb3N0OjpBc2lvIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVf Qk9PU1RfQVNJTwotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5 IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NUX0RBVEVfVElNRQotKwotKy8qIGRl ZmluZSBpZiB0aGUgQm9vc3Q6OkZJTEVTWVNURU0gbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsj dW5kZWYgSEFWRV9CT09TVF9GSUxFU1lTVEVNCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6 SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfSU9T VFJFQU1TCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6TXBpIGxpYnJhcnkgaXMgYXZhaWxh YmxlICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfTVBJCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29z dDo6TXBpX1B5dGhvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NU X01QSV9QWVRIT04KLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpQUk9HUkFNX09QVElPTlMg bGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9QUk9HUkFNX09QVElP TlMKLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJs ZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NUX1JFR0VYCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29z dDo6U2VyaWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JP T1NUX1NFUklBTElaQVRJT04KLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpTaWduYWxzIGxp YnJhcnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfU0lHTkFMUwotKwotKy8q IGRlZmluZSBpZiB0aGUgQm9vc3Q6OlNZU1RFTSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1 bmRlZiBIQVZFX0JPT1NUX1NZU1RFTQotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlRIUkVB RCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NUX1RIUkVBRAotKwot Ky8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlVuaXRfdGVzdF9mcmFtZXdvcmsgbGlicmFyeSBpcyBh dmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLCi0rCi0r LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxjbWF0aD4gaGVhZGVyIGZpbGUuICovCi0r I3VuZGVmIEhBVkVfQ01BVEgKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRl cXVlPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9ERVFVRQotKwotKy8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSA8ZGxmY24uaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhB VkVfRExGQ05fSAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZnN0cmVhbT4g aGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfRlNUUkVBTQotKwotKy8qIERlZmluZSB0byAx IGlmIHlvdSBoYXZlIHRoZSA8aW50dHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhB VkVfSU5UVFlQRVNfSAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8aW9tYW5p cD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfSU9NQU5JUAotKwotKy8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSA8aW9zdHJlYW0+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBI QVZFX0lPU1RSRUFNCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW1pdHM+ IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX0xJTUlUUwotKwotKy8qIERlZmluZSB0byAx IGlmIHlvdSBoYXZlIHRoZSA8bGlzdD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfTElT VAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWFwPiBoZWFkZXIgZmlsZS4g Ki8KLSsjdW5kZWYgSEFWRV9NQVAKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PG1lbW9yeS5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9NRU1PUllfSAotKwotKy8q IERlZmluZSB0byAxIGlmIHRoZSBPcmFjbGUgT0NJIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCi0r I3VuZGVmIEhBVkVfT1JBQ0xFCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgUG9zdGdyZVNRTCBsaWJy YXJpZXMgYXJlIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX1BPU1RHUkVTUUwKLSsKLSsvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHF1ZXVlPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5k ZWYgSEFWRV9RVUVVRQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c2V0PiBo ZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TRVQKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5 b3UgaGF2ZSB0aGUgPHNzdHJlYW0+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1NTVFJF QU0KLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGV4Y2VwdD4gaGVhZGVy IGZpbGUuICovCi0rI3VuZGVmIEhBVkVfU1RERVhDRVBUCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYg eW91IGhhdmUgdGhlIDxzdGRpbnQuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfU1RE SU5UX0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGxpYi5oPiBoZWFk ZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TVERMSUJfSAotKwotKy8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSA8c3RyaW5nPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TVFJJ TkcKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZ3MuaD4gaGVhZGVy IGZpbGUuICovCi0rI3VuZGVmIEhBVkVfU1RSSU5HU19ICi0rCi0rLyogRGVmaW5lIHRvIDEgaWYg eW91IGhhdmUgdGhlIDxzdHJpbmcuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfU1RS SU5HX0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0Lmg+IGhl YWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1NZU19TVEFUX0gKLSsKLSsvKiBEZWZpbmUgdG8g MSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYg SEFWRV9TWVNfVFlQRVNfSAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dW5p c3RkLmg+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1VOSVNURF9ICi0rCi0rLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2ZWN0b3I+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRl ZiBIQVZFX1ZFQ1RPUgotKwotKy8qIERlZmluZSB0byB0aGUgc3ViLWRpcmVjdG9yeSBpbiB3aGlj aCBsaWJ0b29sIHN0b3JlcyB1bmluc3RhbGxlZCBsaWJyYXJpZXMuCi0rICAgKi8KLSsjdW5kZWYg TFRfT0JKRElSCi0rCi0rLyogTmFtZSBvZiBwYWNrYWdlICovCi0rI3VuZGVmIFBBQ0tBR0UKLSsK LSsvKiBEZWZpbmUgdG8gdGhlIGFkZHJlc3Mgd2hlcmUgYnVnIHJlcG9ydHMgZm9yIHRoaXMgcGFj a2FnZSBzaG91bGQgYmUgc2VudC4gKi8KLSsjdW5kZWYgUEFDS0FHRV9CVUdSRVBPUlQKLSsKLSsv KiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCi0rI3VuZGVmIFBB Q0tBR0VfTkFNRQotKwotKy8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIGFuZCB2ZXJzaW9uIG9m IHRoaXMgcGFja2FnZS4gKi8KLSsjdW5kZWYgUEFDS0FHRV9TVFJJTkcKLSsKLSsvKiBEZWZpbmUg dG8gdGhlIG9uZSBzeW1ib2wgc2hvcnQgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCi0rI3VuZGVm IFBBQ0tBR0VfVEFSTkFNRQotKwotKy8qIERlZmluZSB0byB0aGUgdmVyc2lvbiBvZiB0aGlzIHBh Y2thZ2UuICovCi0rI3VuZGVmIFBBQ0tBR0VfVkVSU0lPTgotKwotKy8qIERlZmluZSBpZiB5b3Ug d2FudCBleGNlcHRpb25zIGhhbmRsaW5nICovCi0rI3VuZGVmIFNPQ0lfRVhDRVBUSU9OUwotKwot Ky8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVzLiAqLwot KyN1bmRlZiBTVERDX0hFQURFUlMKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgY2FuIHNhZmVs eSBpbmNsdWRlIGJvdGggPHN5cy90aW1lLmg+IGFuZCA8dGltZS5oPi4gKi8KLSsjdW5kZWYgVElN RV9XSVRIX1NZU19USU1FCi0rCi0rLyogVmVyc2lvbiBudW1iZXIgb2YgcGFja2FnZSAqLwotKyN1 bmRlZiBWRVJTSU9OCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL2JhY2tl bmQtbG9hZGVyLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVy LmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAJ MjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAkyMDEwLTAxLTIzIDEzOjI1OjU3LjAwMDAw MDAwMCArMDEwMAotQEAgLTExLDYgKzExLDkgQEAKLSAjaW5jbHVkZSA8bWFwPgotICNpbmNsdWRl IDxjYXNzZXJ0PgotICNpbmNsdWRlIDxjc3RkbGliPgotKyNpZm5kZWYgX01TQ19WRVIKLSsjaW5j bHVkZSA8c3RkaW50Lmg+Ci0rI2VuZGlmCi0gCi0gdXNpbmcgbmFtZXNwYWNlIHNvY2k7Ci0gdXNp bmcgbmFtZXNwYWNlIHNvY2k6OmR5bmFtaWNfYmFja2VuZHM7Ci1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Nv cmUvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUu YW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmFtCTIwMDktMDUtMDYgMDA6Mjg6MTAuMDAwMDAwMDAw ICswMjAwCi1AQCAtMCwwICsxLDI5IEBACi0rIyMgY29yZSBzdWItZGlyZWN0b3J5Ci0raW5jbHVk ZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJj ZXMubWsKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElS UyA9IC4gdGVzdAotKwotKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX3Jv dy5jcHAgLl9zb2NpLXNpbXBsZS5jcHAgLl9zb2NpLXNpbXBsZS5oIC5fdmFsdWVzLWV4Y2hhbmdl LmgKLSsKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkp Ci0rCi0rbGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX2NvcmUubGEKLSsKLStsaWJzb2NpX2NvcmVf bGFfU09VUkNFUz0gJChjb3JlX2hfc291cmNlcykgJChjb3JlX2NjX3NvdXJjZXMpIAotK2xpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUyA9Ci0rbGlic29jaV9jb3JlX2xhX0xJQkFERCA9Ci0rbGlic29j aV9jb3JlX2xhX0xERkxBR1MgPSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVf TElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLSsJLXZlcnNpb24taW5mbyAkKEdF TkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV9o X3NvdXJjZXMpCi0raWYgU09DSV9IRUFERVJTX0JVUklFRAotK3NvY2lfaW5jbHVkZV9kaXIgPSAk KGluY2x1ZGVkaXIpL3NvY2kvY29yZQotK2Vsc2UKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNs dWRlZGlyKQotK2VuZGlmCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLSsK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5iYXNpYwotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5iYXNpYwkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAw MDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuYmFz aWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xLDc2ICswLDAgQEAK LS1DT01QSUxFUiA9IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1s b25nCi0tSU5DTFVERURJUlMgPSAKLS1PQkpTID0gIHNlc3Npb24ubyBzdGF0ZW1lbnQubyByb3cu byB2YWx1ZXMubyBcCi0tCWludG8tdHlwZS5vIHVzZS10eXBlLm8gXAotLQlibG9iLm8gcm93aWQu byBwcm9jZWR1cmUubyByZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubyByZWYtY291bnRlZC1zdGF0 ZW1lbnQubyBcCi0tCW9uY2UtdGVtcC10eXBlLm8gcHJlcGFyZS10ZW1wLXR5cGUubyBlcnJvci5v IHRyYW5zYWN0aW9uLm8gYmFja2VuZC1sb2FkZXIubyBcCi0tCWNvbm5lY3Rpb24tcG9vbC5vIHNv Y2ktc2ltcGxlLm8KLS0KLS0KLS1saWJzb2NpX2NvcmUuYSA6ICR7T0JKU30gCi0tCWFyIHJ2ICRA ICQ/Ci0tCXJtICoubwotLQotLXNoYXJlZCA6ICR7T0JKU30gCi0tCSR7Q09NUElMRVJ9IC1mUElD IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCSR7Q09NUElMRVJ9IC1zaGFyZWQg LW8gbGlic29jaV9jb3JlLnNvICR7T0JKU30gCi0tCXJtICoubwotLQotLXNlc3Npb24ubyA6IHNl c3Npb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9 Ci0tCi0tc3RhdGVtZW50Lm8gOiBzdGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcm93Lm8gOiByb3cuY3BwCi0tCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdmFsdWVzLm8gOiB2YWx1 ZXMuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0t Ci0taW50by10eXBlLm8gOiBpbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdXNlLXR5cGUubyA6IHVzZS10eXBlLmNwcAotLQkk e0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQkKLS1ibG9iLm8g OiBibG9iLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQotLQotLWVycm9yLm8gOiBlcnJvci5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFH U30gJHtJTkNMVURFRElSU30KLS0KLS1yb3dpZC5vIDogcm93aWQuY3BwCi0tCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcHJvY2VkdXJlLm8gOiBwcm9j ZWR1cmUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9 Ci0tCi0tcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLm8gOiByZWYtY291bnRlZC1wcmVwYXJlLWlu Zm8uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0t Ci0tcmVmLWNvdW50ZWQtc3RhdGVtZW50Lm8gOiByZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCi0t CSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tb25jZS10 ZW1wLXR5cGUubyA6IG9uY2UtdGVtcC10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NY WEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXByZXBhcmUtdGVtcC10eXBlLm8gOiBwcmVwYXJl LXRlbXAtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURF RElSU30KLS0KLS10cmFuc2FjdGlvbi5vIDogdHJhbnNhY3Rpb24uY3BwCi0tCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tYmFja2VuZC1sb2FkZXIubyA6 IGJhY2tlbmQtbG9hZGVyLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQotLQotLWNvbm5lY3Rpb24tcG9vbC5vIDogY29ubmVjdGlvbi1wb29sLmNwcAot LQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXNvY2kt c2ltcGxlLm8gOiBzb2NpLXNpbXBsZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFH U30gJHtJTkNMVURFRElSU30KLS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1mIGxpYnNvY2lfY29yZS5h IGxpYnNvY2lfY29yZS5zbwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9N YWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmluCi0tLS0g c29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtl ZmlsZS5pbgkyMDEwLTAxLTIzIDE0OjQ0OjUyLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw5 OTYgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBN YWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5 OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0 ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0r QFNFVF9NQUtFQAotKwotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRh ZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGli ZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHta U0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9 ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxs X3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExf SEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9y bV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5T VEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9T VF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQg PSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQocGtnaW5jbHVkZV9IRUFERVJTKSAkKHNyY2Rpcikv TWFrZWZpbGUuYW0gXAotKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMu bWsgXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IHNvY2kvY29y ZQotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9t NF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNs ZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xv Y2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQp Ci0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0 b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJ R19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlw PWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNh c2UgJCRwIGluIFwKLSsgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQk c3JjZGlyc3RyaXAvfHwiYDs7IFwKLSsgICAgKikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19z dHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFs bF9tYXggPSA0MAotK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCi0rICBzcmNkaXJzdHJpcD1g ZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCi0rYW1fX25v YmFzZV9zdHJpcCA9IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8 IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgotK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25v YmFzZV9zdHJpcF9zZXR1cCk7IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQk cCI7IGRvbmUgfCBcCi0rICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8g LiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAotKyAgJChBV0spICdCRUdJTiB7IGZp bGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAotKyAg ICBpZiAoKytuWyQkMl0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSBcCi0rICAgICAgeyBwcmludCAk JDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAotKyAgICBF TkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCi0rYW1fX2Jh c2VfbGlzdCA9IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtz L1xuLyAvZycgfCBcCi0rICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCi0rYW1f X2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNs dWRlZGlyKSIKLStMVExJQlJBUklFUyA9ICQobGliX0xUTElCUkFSSUVTKQotK2xpYnNvY2lfY29y ZV9sYV9ERVBFTkRFTkNJRVMgPQotK2FtX19vYmplY3RzXzEgPQotK2FtX19vYmplY3RzXzIgPSBs aWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtYmxv Yi5sbyBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvIFwKLSsJbGlic29jaV9jb3Jl X2xhLWVycm9yLmxvIGxpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG8gXAotKwlsaWJzb2NpX2Nv cmVfbGEtb25jZS10ZW1wLXR5cGUubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1w LXR5cGUubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvIFwKLSsJbGlic29jaV9j b3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1y ZWYtY291bnRlZC1zdGF0ZW1lbnQubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtcm93LmxvIGxpYnNv Y2lfY29yZV9sYS1yb3dpZC5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvIGxpYnNv Y2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQu bG8gbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLXVz ZS10eXBlLmxvIGxpYnNvY2lfY29yZV9sYS12YWx1ZXMubG8KLSthbV9saWJzb2NpX2NvcmVfbGFf T0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkgJChhbV9fb2JqZWN0c18yKQotK2xpYnNvY2lfY29y ZV9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX2NvcmVfbGFfT0JKRUNUUykKLStsaWJzb2NpX2Nv cmVfbGFfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCi0r CSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSBcCi0rCSQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCi0rCSQobGlic29jaV9jb3JlX2xhX0xERkxBR1Mp ICQoTERGTEFHUykgLW8gJEAKLStERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQo dG9wX2J1aWxkZGlyKS9zb2NpCi0rZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29u ZmlnL2RlcGNvbXAKLSthbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcwotK2FtX19tdiA9IG12 IC1mCi0rQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAk KENYWEZMQUdTKQotK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStDWFhMRCA9ICQoQ1hYKQot K0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhG TEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStDT01QSUxFID0gJChD QykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp IFwKLSsJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0xUQ09NUElMRSA9ICQo TElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0r CS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFH UykKLStDQ0xEID0gJChDQykKLStMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NG TEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0rU09V UkNFUyA9ICQobGlic29jaV9jb3JlX2xhX1NPVVJDRVMpCi0rRElTVF9TT1VSQ0VTID0gJChsaWJz b2NpX2NvcmVfbGFfU09VUkNFUykKLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUg Y2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJl Y3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZl IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3Rh bGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1y ZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGlu c3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5z dGFsbC1yZWN1cnNpdmUKLStIRUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCi0rUkVDVVJT SVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZl CVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStB TV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwK LSsJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdz IENUQUdTIFwKLSsJZGlzdGRpcgotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElT VF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElT VF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rYW1fX3JlbGF0aXZpemUgPSBc Ci0rICBkaXIwPWBwd2RgOyBcCi0rICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7 IFwKLSsgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCi0rICBzZWRfbGFzdD0ncyxeLiovXChb Xi9dKlwpJCQsXDEsJzsgXAotKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCi0rICB3 aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCi0rICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwg c2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsg dGhlbiBcCi0rICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKLSsgICAgICAg IGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAot KyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBc Ci0rICAgICAgZWxzZSBcCi0rICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUg IiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0 IjsgdGhlbiBcCi0rICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2Vk X3Jlc3QiYDsgXAotKyAgICAgICAgZWxzZSBcCi0rICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7 IFwKLSsgICAgICAgIGZpOyBcCi0rICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAot KyAgICAgIGZpOyBcCi0rICAgIGZpOyBcCi0rICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQg LWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgZG9uZTsgXAotKyAgcmVsZGlyPSIkJGRpcjIiCi0rcGtn aW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0r QU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVU T0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBB V0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElC ID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1Rf RklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNf TElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NU X01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJA Ci0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElC QAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9M SUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NU X1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNf TElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJF QURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19M SUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBC T09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFM SVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxB R1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQ VU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5J VF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJ T04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAK LStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lH UEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAK LStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0g QEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAg PSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklD X0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdS RVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFA Ci0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9 IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJ UF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0g QExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0g QExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlO Rk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBN WVNRTF9DRkxBR1NACi0rTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElSUyA9 IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJTSU9O 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 QUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rY29yZV9oX3NvdXJjZXMg PSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5oIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuaCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLWV4Y2hhbmdlLmggXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvYm9vc3QtZ3JlZ29yaWFuLWRhdGUuaCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9ib29zdC1mdXNpb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9ib29zdC1vcHRpb25hbC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2Jvb3N0LXR1cGxlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv Y29ubmVjdGlvbi1wb29sLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJy b3IuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9leGNoYW5nZS10cmFpdHMu aCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLmggXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3Byb2NlZHVyZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3Jvdy5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy1l eGNoYW5nZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmggXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQtZXhjaGFuZ2UuaCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dzZXQuaCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvc29jaS1iYWNrZW5kLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv c29jaS1jb25maWcuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXBs YXRmb3JtLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUu aCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLmggXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmggXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS90eXBlLWNvbnZlcnNpb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS90eXBlLWNvbnZlcnNpb24tdHJhaXRzLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvdHlwZS1ob2xkZXIuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS90eXBlLXB0ci5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS5oIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmggXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvdmFsdWVzLWV4Y2hhbmdlLmgKLSsKLStjb3JlX2NjX3NvdXJjZXMgPSBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAgXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAgXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvaW50by10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9v bmNlLXRlbXAtdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJl cGFyZS10ZW1wLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3By b2NlZHVyZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50 ZWQtcHJlcGFyZS1pbmZvLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9y ZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Jvdy5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3Bw IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS91c2UtdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvdmFsdWVzLmNwcAotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStT VUJESVJTID0gLiB0ZXN0Ci0rCi0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9 IC5fcm93LmNwcCAuX3NvY2ktc2ltcGxlLmNwcCAuX3NvY2ktc2ltcGxlLmggLl92YWx1ZXMtZXhj aGFuZ2UuaAotK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElU WSkKLStsaWJfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX2NvcmUubGEKLStsaWJzb2NpX2NvcmVfbGFf U09VUkNFUyA9ICQoY29yZV9oX3NvdXJjZXMpICQoY29yZV9jY19zb3VyY2VzKSAKLStsaWJzb2Np X2NvcmVfbGFfQ1hYRkxBR1MgPSAKLStsaWJzb2NpX2NvcmVfbGFfTElCQUREID0gCi0rbGlic29j aV9jb3JlX2xhX0xERkxBR1MgPSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVf TElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLSsJLXZlcnNpb24taW5mbyAkKEdF TkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV9o X3NvdXJjZXMpCi0rQFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0VAc29jaV9pbmNsdWRlX2RpciA9 ICQoaW5jbHVkZWRpcikKLStAU09DSV9IRUFERVJTX0JVUklFRF9UUlVFQHNvY2lfaW5jbHVkZV9k aXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvY29yZQotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5T VUZGSVhFUzoKLSsuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKLSskKHNyY2RpcikvTWFrZWZp bGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21t b24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVw IGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAg ICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAk QDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwK LSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChB VVRPTUFLRSkgLS1nbnUgc29jaS9jb3JlL01ha2VmaWxlJzsgXAotKwkkKGFtX19jZCkgJCh0b3Bf c3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9jb3JlL01ha2VmaWxlCi0r LlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0 b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZp Zy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1f X2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxM KSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwK LSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGly KS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bf c3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FM X000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChhbV9fYWNsb2NhbF9tNF9kZXBz KToKLStpbnN0YWxsLWxpYkxUTElCUkFSSUVTOiAkKGxpYl9MVExJQlJBUklFUykKLSsJQCQoTk9S TUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQobGliZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNU RElSKSQobGliZGlyKSIKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IHRlc3QgLW4gIiQo bGliZGlyKSIgfHwgbGlzdD07IFwKLSsJbGlzdDI9OyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBcCi0rCSAgICBsaXN0Mj0iJCRsaXN0MiAkJHAiOyBcCi0r CSAgZWxzZSA6OyBmaTsgXAotKwlkb25lOyBcCi0rCXRlc3QgLXogIiQkbGlzdDIiIHx8IHsgXAot KwkgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWluc3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJCRsaXN0MiAn JChERVNURElSKSQobGliZGlyKSciOyBcCi0rCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJTlNUQUxMX1NU UklQX0ZMQUcpICQkbGlzdDIgIiQoREVTVERJUikkKGxpYmRpcikiOyBcCi0rCX0KLSsKLSt1bmlu c3RhbGwtbGliTFRMSUJSQVJJRVM6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0PSck KGxpYl9MVExJQlJBUklFUyknOyB0ZXN0IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCi0rCWZv ciBwIGluICQkbGlzdDsgZG8gXAotKwkgICQoYW1fX3N0cmlwX2RpcikgXAotKwkgIGVjaG8gIiAk KExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5z dGFsbCBybSAtZiAnJChERVNURElSKSQobGliZGlyKS8kJGYnIjsgXAotKwkgICQoTElCVE9PTCkg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1m ICIkKERFU1RESVIpJChsaWJkaXIpLyQkZiI7IFwKLSsJZG9uZQotKwotK2NsZWFuLWxpYkxUTElC UkFSSUVTOgotKwktdGVzdCAteiAiJChsaWJfTFRMSUJSQVJJRVMpIiB8fCBybSAtZiAkKGxpYl9M VExJQlJBUklFUykKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlz dDsgZG8gXAotKwkgIGRpcj0iYGVjaG8gJCRwIHwgc2VkIC1lICdzfC9bXi9dKiQkfHwnYCI7IFwK LSsJICB0ZXN0ICIkJGRpciIgIT0gIiQkcCIgfHwgZGlyPS47IFwKLSsJICBlY2hvICJybSAtZiBc IiQke2Rpcn0vc29fbG9jYXRpb25zXCIiOyBcCi0rCSAgcm0gLWYgIiQke2Rpcn0vc29fbG9jYXRp b25zIjsgXAotKwlkb25lCi0rbGlic29jaV9jb3JlLmxhOiAkKGxpYnNvY2lfY29yZV9sYV9PQkpF Q1RTKSAkKGxpYnNvY2lfY29yZV9sYV9ERVBFTkRFTkNJRVMpIAotKwkkKGxpYnNvY2lfY29yZV9s YV9MSU5LKSAtcnBhdGggJChsaWJkaXIpICQobGlic29jaV9jb3JlX2xhX09CSkVDVFMpICQobGli c29jaV9jb3JlX2xhX0xJQkFERCkgJChMSUJTKQotKwotK21vc3RseWNsZWFuLWNvbXBpbGU6Ci0r CS1ybSAtZiAqLiQoT0JKRVhUKQotKwotK2Rpc3RjbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi50 YWIuYwotKwotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xh LWJsb2IuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVv dGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5QbG9AYW1fX3F1 b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtZXJyb3IuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5Q bG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuUGxvQGFtX19xdW90ZUAKLStA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9j b3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1 cmUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5QbG9A YW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVA Ci0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1yb3cuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlBsb0BhbV9fcXVv dGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1zZXNzaW9uLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19p bmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBs ZS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACi0rQEFN REVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS10cmFuc2FjdGlvbi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVk ZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUuUGxvQGFt X19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJ UikvbGlic29jaV9jb3JlX2xhLXZhbHVlcy5QbG9AYW1fX3F1b3RlQAotKwotKy5jcHAubzoKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChE RVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19t dikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2Jq OgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1N RiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBv Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9 JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMg LW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotKwotKy5jcHAubG86Ci0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRw byAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIp LyQqLlRwbyAkKERFUERJUikvJCouUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLStsaWJzb2NpX2NvcmVfbGEt YmFja2VuZC1sb2FkZXIubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVy LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9j b3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2Nv cmVfbGEtYmFja2VuZC1sb2FkZXIuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxv YWRlci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5k LWxvYWRlci5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtYmFja2VuZC1sb2FkZXIuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1i YWNrZW5kLWxvYWRlci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2Vu ZC1sb2FkZXIuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9iYWNrZW5kLWxvYWRlci5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbzogJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJU T09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1ibG9iLmxvIC1NRCAtTVAgLU1GICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtYmxvYi5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWJsb2IubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1ibG9iLlRwbyAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLWJsb2IuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfY29yZV9sYS1ibG9iLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xh LWNvbm5lY3Rpb24tcG9vbC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1w b29sLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29j aV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29j aV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWNvbm5l Y3Rpb24tcG9vbC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlv bi1wb29sLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv Y29ubmVjdGlvbi1wb29sLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChE RVBESVIpL2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wuVHBvICQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBv b2wuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8nIGxpYnRv b2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNv Y2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEt ZXJyb3IubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLWVycm9yLmxvIC1N RCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtZXJyb3IuVHBvIC1jIC1vIGxpYnNv Y2lfY29yZV9sYS1lcnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJy b3IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJv ci5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtZXJyb3IuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtZXJyb3IuUGxvCi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Vycm9yLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8nIGxp YnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJB Q0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxp YnNvY2lfY29yZV9sYS1lcnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv ZXJyb3IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9l cnJvci5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9P TCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEt aW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5 cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29j aV9jb3JlX2xhLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5 cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xh LWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQo ZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJU T09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcAotKwotK2xpYnNvY2lfY29yZV9s YS1vbmNlLXRlbXAtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5 cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2Np X2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS1vbmNlLXRlbXAtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLW9uY2UtdGVt cC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlw ZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2Ut dGVtcC10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS1vbmNlLXRlbXAtdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwJyBv YmplY3Q9J2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xh LW9uY2UtdGVtcC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNl LXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9j b3JlL29uY2UtdGVtcC10eXBlLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAt dHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEt cHJlcGFyZS10ZW1wLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1wcmVwYXJlLXRlbXAtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVt cC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAt dHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3By ZXBhcmUtdGVtcC10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChE RVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5UcG8gJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10 ZW1wLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5s bycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMg LW8gbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcAotKwotK2xp YnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2Nl ZHVyZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfY29yZV9sYS1wcm9jZWR1cmUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS1wcm9jZWR1cmUuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJvY2Vk dXJlLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5QbG8KLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvcHJvY2VkdXJlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9wcm9jZWR1cmUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9wcm9jZWR1cmUuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXBy ZXBhcmUtaW5mby5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFy ZS1pbmZvLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGli c29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5UcG8gLWMgLW8g bGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFy ZS1pbmZvLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uVHBvICQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLlBsbwotK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYt Y291bnRlZC1wcmVwYXJlLWluZm8uY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1yZWYtY291 bnRlZC1wcmVwYXJlLWluZm8ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJl LWluZm8ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXBy ZXBhcmUtaW5mby5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtcmVm LWNvdW50ZWQtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRl ZC1zdGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1N VCBsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LlRwbyAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3Bw Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3Jl X2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1y ZWYtY291bnRlZC1zdGF0ZW1lbnQuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVu dC5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5sbycg bGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNw cAotKwotK2xpYnNvY2lfY29yZV9sYS1yb3cubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jv dy5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lf Y29yZV9sYS1yb3cubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3cu VHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yb3cubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3Jvdy5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3Jvdy5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtcm93LlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvdy5Q bG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvcm93LmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcm93LmxvJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtcm93LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9y b3cuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cu Y3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXJvd2lkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9yb3dpZC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxp YnNvY2lfY29yZV9sYS1yb3dpZC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3Jl X2xhLXJvd2lkLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo YW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlRwbyAkKERFUERJUikvbGli c29jaV9jb3JlX2xhLXJvd2lkLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAnIG9iamVjdD0nbGli c29jaV9jb3JlX2xhLXJvd2lkLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXNl c3Npb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2Nv cmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNlc3Npb24uVHBvIC1jIC1v IGxpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvc2Vzc2lvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1zZXNzaW9uLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2Nv cmVfbGEtc2Vzc2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1z b2NpLXNpbXBsZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEt c29jaS1zaW1wbGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2Np LXNpbXBsZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcAotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNp bXBsZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5QbG8KLStAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvc29jaS1zaW1wbGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBs ZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LWMgLW8gbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1z dGF0ZW1lbnQubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1zdGF0 ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQu VHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LlRwbyAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNw cCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1E RVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEt c3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1l bnQuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvOiAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJU T09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbyAtTUQgLU1QIC1NRiAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLlRwbyAtYyAtbyBsaWJzb2NpX2Nv cmVfbGEtdHJhbnNhY3Rpb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Ry YW5zYWN0aW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvdHJhbnNhY3Rpb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLlRwbyAkKERFUERJUikvbGlic29jaV9j b3JlX2xhLXRyYW5zYWN0aW9uLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAnIG9iamVj dD0nbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNL U0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9j b3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdHJhbnNh Y3Rpb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rp b24uY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS91c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLU1UIGxpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdXNlLXR5 cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLlBsbwotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS91c2UtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxv JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAt byBsaWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3VzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvdXNlLXR5cGUuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbyAtTUQgLU1QIC1NRiAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLXZhbHVlcy5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xh LXZhbHVlcy5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS12YWx1ZXMuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdmFsdWVzLlBsbwotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS92YWx1ZXMuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS12YWx1ZXMubG8nIGxpYnRv b2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNv Y2lfY29yZV9sYS12YWx1ZXMubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Zh bHVlcy5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Zh bHVlcy5jcHAKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2Ns ZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLStpbnN0YWxsLXBrZ2luY2x1ZGVI RUFERVJTOiAkKHBrZ2luY2x1ZGVfSEVBREVSUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRl c3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2lu Y2x1ZGVkaXIpIgotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVzdCAtbiAiJChw a2dpbmNsdWRlZGlyKSIgfHwgbGlzdD07IFwKLSsJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAg aWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLSsJ ICBlY2hvICIkJGQkJHAiOyBcCi0rCWRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAotKwl3aGls ZSByZWFkIGZpbGVzOyBkbyBcCi0rCSAgZWNobyAiICQoSU5TVEFMTF9IRUFERVIpICQkZmlsZXMg JyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyI7IFwKLSsJICAkKElOU1RBTExfSEVBREVSKSAk JGZpbGVzICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIgfHwgZXhpdCAkJD87IFwKLSsJZG9u ZQotKwotK3VuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzoKLSsJQCQoTk9STUFMX1VOSU5TVEFM TCkKLSsJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVk ZWRpcikiIHx8IGxpc3Q9OyBcCi0rCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRw OyBkb25lIHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCi0rCXRlc3QgLW4gIiQkZmlsZXMiIHx8IGV4 aXQgMDsgXAotKwllY2hvICIgKCBjZCAnJChERVNURElSKSQocGtnaW5jbHVkZWRpciknICYmIHJt IC1mIiAkJGZpbGVzICIpIjsgXAotKwljZCAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiICYm IHJtIC1mICQkZmlsZXMKLSsKLSsjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJl IG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1h a2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRo ZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxl cywKLSsjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRp dCBgY29uZmlnLnN0YXR1cycKLSsjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVz IHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lz ZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0r JChSRUNVUlNJVkVfVEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZv ciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSog fCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVz YWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBz ZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwK LSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVz OyBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkg ICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgICgkKGFtX19jZCkg JCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJ ICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lOyBcCi0rCWlmIHRlc3QgIiQkZG90X3NlZW4i ID0gIm5vIjsgdGhlbiBcCi0rCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFt IiB8fCBleGl0IDE7IFwKLSsJZmk7IHRlc3QgLXogIiQkZmFpbCIKLSsKLSskKFJFQ1VSU0lWRV9D TEVBTl9UQVJHRVRTKToKLSsJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4g eCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFr XSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAot Kwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCWNhc2UgIiRAIiBpbiBcCi0rCSAgZGlzdGNs ZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAot KwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKLSsJZXNhYzsgXAotKwlyZXY9Jyc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVu IDo7IGVsc2UgXAotKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKLSsJICBmaTsgXAotKwlk b25lOyBcCi0rCXJldj0iJCRyZXYgLiI7IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJl Y3Vyc2l2ZS8vYDsgXAotKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCi0rCSAgZWNobyAiTWFr aW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIu IjsgdGhlbiBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2Ug XAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgICgkKGFt X19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQp IFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIK LSt0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGly ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFncy1yZWN1 cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAot KwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURFUlMpICQo U09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFE RVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8g JChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1sk JDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7 IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1 ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09V UkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQot KwlzZXQgeDsgXAotKwloZXJlPWBwd2RgOyBcCi0rCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1 ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAotKwkgIGluY2x1ZGVfb3B0aW9u PS0tZXRhZ3MtaW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD0uOyBcCi0rCWVsc2UgXAotKwkgIGlu Y2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD07IFwKLSsJZmk7IFwKLSsJ bGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgISAtZiAkJHN1YmRp ci9UQUdTIHx8IFwKLSsJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8k JHN1YmRpci9UQUdTIjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VT KSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkg aW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBl bHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAn eyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5v bmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXNoaWZ0OyBc Ci0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBc Ci0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgIGlm IHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChB TV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwK LSsJICBlbHNlIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdT KSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgJCR1bmlxdWU7IFwKLSsJICBmaTsgXAotKwlmaQot K2N0YWdzOiBDVEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJD RVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJ bGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0r CXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0 aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwg XAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAg ICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdg OyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1Mp ICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAk JHVuaXF1ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYm IHB3ZGAgXAotKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAt aSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBU QUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNU RklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQk XFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2Rpciki IHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUykn OyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsg ZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAt ZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2Ug JCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxl cyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwn IHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRp c3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsg dGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRm aWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10q JCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAot KwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4 ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQo c3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAg Y3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAot KwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4 ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtZnBSICQkZC8k JGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0 ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAi JChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRv bmUKLSsJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3Qg LWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRp cikvJCRzdWJkaXIiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJ QGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAg aWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIGRpcjE9JCRzdWJk aXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCi0rCSAgICAkKGFtX19yZWxhdGl2aXpl KTsgXAotKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGRpcjE9JCRzdWJkaXI7 IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJ ICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAotKwkgICAgZWNobyAiIChjZCAkJHN1YmRp ciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3Rk aXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAotKwkgICAgZWNobyAiICAgICBhbV9f cmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2Zp eD06IGRpc3RkaXIpIjsgXAotKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCi0rCSAgICAg ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdf dG9wX2Rpc3RkaXIiIFwKLSsJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCi0rCQlh bV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCi0rCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCi0rCQlh bV9fc2tpcF9tb2RlX2ZpeD06IFwKLSsJICAgICAgICBkaXN0ZGlyKSBcCi0rCSAgICAgIHx8IGV4 aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNo ZWNrLXJlY3Vyc2l2ZQotK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykgJChIRUFERVJT KQotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1hbToK LSsJZm9yIGRpciBpbiAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1 ZGVkaXIpIjsgZG8gXAotKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7 IFwKLSsJZG9uZQotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBp bnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJz aXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxs LWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1k YXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFs bC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElO U1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFM TF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAn JChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9H PSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1n ZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xF QU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJLXRlc3QgLiA9ICIk KHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0g LWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5l cmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0 byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lh bCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMp IiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1cnNp dmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJBUklFUyBjbGVh bi1saWJ0b29sIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1y ZWN1cnNpdmUKLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0 Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwK LSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0r Ci0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStodG1sLWFtOgotKwotK2luZm86IGluZm8tcmVj dXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtcGtnaW5j bHVkZUhFQURFUlMKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCi0rCi0r aW5zdGFsbC1kdmktYW06Ci0rCi0raW5zdGFsbC1leGVjLWFtOiBpbnN0YWxsLWxpYkxUTElCUkFS SUVTCi0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCi0rCi0raW5zdGFs bC1odG1sLWFtOgotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQotKwot K2luc3RhbGwtaW5mby1hbToKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5z dGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wZGYtYW06Ci0rCi0raW5zdGFsbC1wczog aW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBzLWFtOgotKwotK2luc3RhbGxjaGVj ay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQot Kwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xl YW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHlj bGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNs ZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wK LSsKLStwZGY6IHBkZi1yZWN1cnNpdmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2 ZQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVT IHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVB Tl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAotKwlpbnN0 YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKLSsKLSsuUEhPTlk6ICQoUkVDVVJT SVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJ YWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKLSsJY2xlYW4t bGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBjdGFncyBjdGFncy1yZWN1cnNpdmUgXAotKwlk aXN0Y2xlYW4gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xl YW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCi0rCWh0 bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAotKwlp bnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwK LSsJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1p bmZvIFwKLSsJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbGliTFRMSUJSQVJJRVMgaW5zdGFsbC1t YW4gaW5zdGFsbC1wZGYgXAotKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFE RVJTIGluc3RhbGwtcHMgXAotKwlpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNo ZWNrIGluc3RhbGxjaGVjay1hbSBcCi0rCWluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50 YWluZXItY2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9z dGx5Y2xlYW4tY29tcGlsZSBcCi0rCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGli dG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKLSsJdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmluc3Rh bGwgdW5pbnN0YWxsLWFtIFwKLSsJdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1w a2dpbmNsdWRlSEVBREVSUwotKwotK0BTRVRfTUFLRUAKLSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMu NTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3Ro ZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVk LgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvc29j aS1wbGF0Zm9ybS5oIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5o Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaAkyMDEwLTAx LTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2NvcmUvc29jaS1wbGF0Zm9ybS5oCTIwMTAtMDEtMjMgMTM6MjU6NTcuMDAwMDAwMDAwICswMTAw Ci1AQCAtMTIsOCArMTIsMTAgQEAKLSAjaWZkZWYgX01TQ19WRVIKLSAKLSAvLyBEZWZpbmUgaWYg eW91IGhhdmUgdGhlIHZzbnByaW50ZiB2YXJpYW50cy4KLS0jZGVmaW5lIEhBVkVfVlNOUFJJTlRG IDEKLS0jZGVmaW5lIHZzbnByaW50ZiBfdnNucHJpbnRmCi0rI2lmIF9NU0NfVkVSIDwgMTUwMAot KyMgZGVmaW5lIEhBVkVfVlNOUFJJTlRGIDEKLSsjIGRlZmluZSB2c25wcmludGYgX3ZzbnByaW50 ZgotKyNlbmRpZgotIAotIC8vIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc25wcmludGYgdmFyaWFu dHMuCi0gI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUv c29jaS1zaW1wbGUuY3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3NvY2ktc2lt cGxlLmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwCTIwMTAtMDEtMjMgMTM6MjU6NTcu MDAwMDAwMDAwICswMTAwCi1AQCAtNDczLDcgKzQ3Myw3IEBACi0gLy8gaGVscGVyIGZvciBmb3Jt YXR0aW5nIGRhdGUgdmFsdWVzCi0gY2hhciBjb25zdCAqIGZvcm1hdF9kYXRlKHN0YXRlbWVudF93 cmFwcGVyICYgd3JhcHBlciwgc3RkOjp0bSBjb25zdCAmIGQpCi0gewotLSAgICBzcHJpbnRmKHdy YXBwZXIuZGF0ZV9mb3JtYXR0ZWQsICIlZCAlZCAlZCAlZCAlZCAlZCIsCi0rICAgIHN0ZDo6c3By aW50Zih3cmFwcGVyLmRhdGVfZm9ybWF0dGVkLCAiJWQgJWQgJWQgJWQgJWQgJWQiLAotICAgICAg ICAgZC50bV95ZWFyICsgMTkwMCwgZC50bV9tb24gKyAxLCBkLnRtX21kYXksCi0gICAgICAgICBk LnRtX2hvdXIsIGQudG1fbWluLCBkLnRtX3NlYyk7Ci0gCi1AQCAtNDkwLDcgKzQ5MCw3IEBACi0g ICAgIGludCBob3VyOwotICAgICBpbnQgbWludXRlOwotICAgICBpbnQgc2Vjb25kOwotLSAgICBp bnQgY29uc3QgY29udmVydGVkID0gc3NjYW5mKHZhbCwgIiVkICVkICVkICVkICVkICVkIiwKLSsg ICAgaW50IGNvbnN0IGNvbnZlcnRlZCA9IHN0ZDo6c3NjYW5mKHZhbCwgIiVkICVkICVkICVkICVk ICVkIiwKLSAgICAgICAgICZ5ZWFyLCAmbW9udGgsICZkYXksICZob3VyLCAmbWludXRlLCAmc2Vj b25kKTsKLSAgICAgaWYgKGNvbnZlcnRlZCAhPSA2KQotICAgICB7Ci1AQCAtMTUxMSw3ICsxNTEx LDcgQEAKLSAKLSAgICAgLy8gZm9ybWF0IGlzOiAiWVlZWSBNTSBERCBoaCBtbSBzcyIKLSAgICAg c3RkOjp0bSBjb25zdCAmIGQgPSB3cmFwcGVyLT51c2VfZGF0ZXNbbmFtZV07Ci0tICAgIHNwcmlu dGYod3JhcHBlci0+ZGF0ZV9mb3JtYXR0ZWQsICIlZCAlZCAlZCAlZCAlZCAlZCIsCi0rICAgIHN0 ZDo6c3ByaW50Zih3cmFwcGVyLT5kYXRlX2Zvcm1hdHRlZCwgIiVkICVkICVkICVkICVkICVkIiwK LSAgICAgICAgIGQudG1feWVhciArIDE5MDAsIGQudG1fbW9uICsgMSwgZC50bV9tZGF5LAotICAg ICAgICAgZC50bV9ob3VyLCBkLnRtX21pbiwgZC50bV9zZWMpOwotIAotQEAgLTE1MjgsMTAgKzE1 MjgsMTAgQEAKLSAKLSAgICAgICAgIC8vIGJpbmQgYWxsIGludG8gZWxlbWVudHMKLSAKLS0gICAg ICAgIHNpemVfdCBjb25zdCBpbnRvX2VsZW1lbnRzID0gd3JhcHBlci0+aW50b190eXBlcy5zaXpl KCk7Ci0rICAgICAgICBpbnQgY29uc3QgaW50b19lbGVtZW50cyA9IHN0YXRpY19jYXN0PGludD4o d3JhcHBlci0+aW50b190eXBlcy5zaXplKCkpOwotICAgICAgICAgaWYgKHdyYXBwZXItPmludG9f a2luZCA9PSBzdGF0ZW1lbnRfd3JhcHBlcjo6c2luZ2xlKQotICAgICAgICAgewotLSAgICAgICAg ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpICE9IGludG9fZWxlbWVudHM7ICsraSkKLSsgICAgICAg ICAgICBmb3IgKGludCBpID0gMDsgaSAhPSBpbnRvX2VsZW1lbnRzOyArK2kpCi0gICAgICAgICAg ICAgewotICAgICAgICAgICAgICAgICBzd2l0Y2ggKHdyYXBwZXItPmludG9fdHlwZXNbaV0pCi0g ICAgICAgICAgICAgICAgIHsKLUBAIC0xNTYzLDggKzE1NjMsNyBAQAotICAgICAgICAgZWxzZQot ICAgICAgICAgewotICAgICAgICAgICAgIC8vIHZlY3RvciBlbGVtZW50cwotLQotLSAgICAgICAg ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpICE9IGludG9fZWxlbWVudHM7ICsraSkKLSsgICAgICAg ICAgICBmb3IgKGludCBpID0gMDsgaSAhPSBpbnRvX2VsZW1lbnRzOyArK2kpCi0gICAgICAgICAg ICAgewotICAgICAgICAgICAgICAgICBzd2l0Y2ggKHdyYXBwZXItPmludG9fdHlwZXNbaV0pCi0g ICAgICAgICAgICAgICAgIHsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUv c291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3NvdXJjZXMubWsKLS0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvc291cmNl cy5tawkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw1OCBA QAotK2NvcmVfaF9zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv YmFja2VuZC1sb2FkZXIuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9i LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi1leGNoYW5nZS5oIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LWdyZWdvcmlhbi1kYXRlLmgg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtZnVzaW9uLmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3Qtb3B0aW9uYWwuaCBcCi0rICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC10dXBsZS5oIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5oIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2Vycm9yLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvZXhjaGFuZ2UtdHJhaXRzLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv aW50by5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5oIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuaCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuaCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uaCBcCi0rICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuaCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuaCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9yb3ctZXhjaGFuZ2UuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9yb3dpZC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lk LWV4Y2hhbmdlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93c2V0Lmgg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5oIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktYmFja2VuZC5oIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktY29uZmlnLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3NvY2ktc2ltcGxlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv c29jaS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5oIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmggXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252ZXJzaW9uLmggXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252ZXJzaW9uLXRyYWl0cy5oIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtaG9sZGVyLmggXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1wdHIuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS91c2UuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2Ut dHlwZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5oIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy1leGNoYW5nZS5oCi0rY29yZV9j Y19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1s b2FkZXIuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAgXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwIFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3Jvd2lkLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNz aW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5j cHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAgXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9j b3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUv dGVzdC9jb21tb24tdGVzdHMuaAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAkyMDA5 LTA1LTA2IDAwOjAyOjM2LjAwMDAwMDAwMCArMDIwMAotQEAgLTgsMTYgKzgsMzAgQEAKLSAjaWZu ZGVmIFNPQ0lfQ09NTU9OX1RFU1RTX0hfSU5DTFVERUQKLSAjZGVmaW5lIFNPQ0lfQ09NTU9OX1RF U1RTX0hfSU5DTFVERUQKLSAKLS0jaW5jbHVkZSAic29jaS5oIgotLSNpbmNsdWRlICJzb2NpLWNv bmZpZy5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAg IGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUv c29jaS1jb25maWcuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ib29zdC1vcHRpb25h bC5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL2Jvb3N0LXR1cGxlLmg+Ci0rIyAgICAg ICBpbmNsdWRlIDxzb2NpL2NvcmUvYm9vc3QtZ3JlZ29yaWFuLWRhdGUuaD4KLSsjZWxzZQotKyMJ aW5jbHVkZSA8c29jaS5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS1jb25maWcuaD4KLSsjICAg ICAgIGluY2x1ZGUgPGJvb3N0LW9wdGlvbmFsLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxib29zdC10 dXBsZS5oPgotKyMgICAgICAgaW5jbHVkZSA8Ym9vc3QtZ3JlZ29yaWFuLWRhdGUuaD4KLSsjZW5k aWYKLSsvLwotIAotIC8vIGV4cGxpY2l0bHkgcHVsbCBjb252ZXJzaW9ucyBmb3IgQm9vc3QncyBv cHRpb25hbCwgdHVwbGUgYW5kIGZ1c2lvbjoKLSAjaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+ Ci0tI2luY2x1ZGUgPGJvb3N0LW9wdGlvbmFsLmg+Ci0tI2luY2x1ZGUgPGJvb3N0LXR1cGxlLmg+ Ci0tI2luY2x1ZGUgPGJvb3N0LWdyZWdvcmlhbi1kYXRlLmg+Ci0gI2lmIGRlZmluZWQoQk9PU1Rf VkVSU0lPTikgJiYgQk9PU1RfVkVSU0lPTiA+PSAxMDM1MDAKLSsjaWYgZGVmaW5lZChTT0NJX0hF QURFUlNfQlVSSUVEKQotKyNpbmNsdWRlIDxzb2NpL2NvcmUvYm9vc3QtZnVzaW9uLmg+Ci0rI2Vs c2UKLSAjaW5jbHVkZSA8Ym9vc3QtZnVzaW9uLmg+Ci0rI2VuZGlmCi0gI2VuZGlmIC8vIEJPT1NU X1ZFUlNJT04KLSAKLSAjaW5jbHVkZSA8YWxnb3JpdGhtPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2NvcmUvdGVzdC9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90 ZXN0L01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmFtCTIwMDktMDUtMDYg MDA6Mjk6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDI2IEBACi0rIyMgY29yZSBzdWIt ZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK2luY2x1 ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2Vm aWxlLmluCi0rCi0rRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0KLSsKLStFWFRS QV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi0rCi0rbm9pbnN0 X0xUTElCUkFSSUVTPSBsaWJzb2NpX2NvcmVfdGVzdC5sYQotKwotK2xpYnNvY2lfY29yZV90ZXN0 X2xhX1NPVVJDRVM9ICQoY29yZV90ZXN0X2hfc291cmNlcykKLStsaWJzb2NpX2NvcmVfdGVzdF9s YV9DWFhGTEFHUyA9Ci0rbGlic29jaV9jb3JlX3Rlc3RfbGFfTElCQUREID0KLSsjbGlic29jaV9j b3JlX3Rlc3RfbGFfTERGTEFHUyA9IC12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVS U0lPTikKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTID0KLSsKLStwa2dpbmNsdWRlX0hF QURFUlMgPSAkKGNvcmVfdGVzdF9oX3NvdXJjZXMpCi0raWYgU09DSV9IRUFERVJTX0JVUklFRAot K3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvY29yZS90ZXN0Ci0rZWxzZQot K3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCi0rZW5kaWYKLStwa2dpbmNsdWRlZGly ID0gJChzb2NpX2luY2x1ZGVfZGlyKQotKwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvY29yZS90ZXN0L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVz dC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L01ha2Vm aWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTIu MDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDU2NCBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJh dGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9p bnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwg MTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcs IDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRoaXMg TWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0 ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMg bm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEK LSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rCi0rCi0rVlBBVEggPSBA c3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9 ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFD S0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRP UikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStp bnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQg PSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0 cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6 Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwg PSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlw bGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChw a2dpbmNsdWRlX0hFQURFUlMpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCi0rCSQoc3JjZGlyKS9N YWtlZmlsZS5pbiAkKHNyY2Rpcikvc291cmNlcy5tayBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZp bGUuY29tbW9uCi0rc3ViZGlyID0gc29jaS9jb3JlL3Rlc3QKLStBQ0xPQ0FMX000ID0gJCh0b3Bf c3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2Nw cHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRz dWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFj Ci0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VS RV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGlu c3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZp Zy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQot K0xUTElCUkFSSUVTID0gJChub2luc3RfTFRMSUJSQVJJRVMpCi0rbGlic29jaV9jb3JlX3Rlc3Rf bGFfREVQRU5ERU5DSUVTID0KLSthbV9fb2JqZWN0c18xID0KLSthbV9saWJzb2NpX2NvcmVfdGVz dF9sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKQotK2xpYnNvY2lfY29yZV90ZXN0X2xhX09C SkVDVFMgPSAkKGFtX2xpYnNvY2lfY29yZV90ZXN0X2xhX09CSkVDVFMpCi0rbGlic29jaV9jb3Jl X3Rlc3RfbGFfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwK LSsJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZM QUdTKSBcCi0rCSQobGlic29jaV9jb3JlX3Rlc3RfbGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAk QAotK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3Nv Y2kKLStDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpIFwKLSsJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdT KQotK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo QU1fQ0ZMQUdTKSAkKENGTEFHUykKLStDQ0xEID0gJChDQykKLStMSU5LID0gJChMSUJUT09MKSAt LXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxp bmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExE RkxBR1MpIC1vICRACi0rU09VUkNFUyA9ICQobGlic29jaV9jb3JlX3Rlc3RfbGFfU09VUkNFUykK LStESVNUX1NPVVJDRVMgPSAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX1NPVVJDRVMpCi0rYW1fX3Zw YXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58 LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKLSsgICAgJChzcmNkaXIpLyop IGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKLSsgICAgKikg Zj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAt ZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFsbF9tYXggPSA0MAotK2FtX19ub2Jhc2Vfc3RyaXBf c2V0dXAgPSBcCi0rICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqfF0vXFxcXCYvZydgCi0rYW1fX25vYmFzZV9zdHJpcCA9IFwKLSsgIGZvciBwIGluICQk bGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8Igot K2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKLSsgIGZvciBw IGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCi0rICBzZWQgInN8ICQkc3Jj ZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwn IHwgXAotKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9 IGZpbGVzWyQkMl0gIiAiICQkMTsgXAotKyAgICBpZiAoKytuWyQkMl0gPT0gJChhbV9faW5zdGFs bF9tYXgpKSBcCi0rICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZp bGVzWyQkMl0gPSAiIiB9IH0gXAotKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQg ZGlyLCBmaWxlc1tkaXJdIH0nCi0rYW1fX2Jhc2VfbGlzdCA9IFwKLSsgIHNlZCAnJCQhTjskJCFO OyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCi0rICBzZWQgJyQkIU47JCQh TjskJCFOOyQkIU47cy9cbi8gL2cnCi0rYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKHBr Z2luY2x1ZGVkaXIpIgotK0hFQURFUlMgPSAkKHBrZ2luY2x1ZGVfSEVBREVSUykKLStFVEFHUyA9 IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElT VF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rcGtnaW5jbHVkZWRpciA9ICQo c29jaV9pbmNsdWRlX2RpcikKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJA Ci0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRP SEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZM QUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVf VElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJA Ci0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJ QlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9P U1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JB TV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhP Tl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVH RVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05f TElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZ U1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NU X1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAot K0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0r Q0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAot K0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBA Q1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQ VU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9W RVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0g QENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BB VEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBE U1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hP X04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhF RVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lP TiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9 IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9H UkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQ VEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xE ID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElC UyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9 IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9A Ci0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0r TVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAot K01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJ T05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBA Ci0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFD TEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1Mg PSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJ X1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tB R0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAK LStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tB R0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FH RV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NF UEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NU R1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBA UE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxB R1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIg PSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0r U0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JV UklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQg PSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19C VVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQ QAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lP TkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3Ny Y2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9z cmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3Rf Q1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1f X2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5n X2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSth bV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVp bGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2Nw dUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9y QAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9v dGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRv Y2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStk dmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19v ayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAot K2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRv ciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBp bmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxf c2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVj ZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRl ZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBt YW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVk ZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGly QAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRl ZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9 IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxk X3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRk aXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9i dWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rY29yZV90ZXN0X2hfc291cmNlcyA9ICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKLStjb3JlX3Rlc3RfY2Nfc291cmNl cyA9IAotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStFWFRSQV9ESVNUX0ZP Ul9TT0NJX0NPTVBBVElCSUxJVFkgPSAKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9T T0NJX0NPTVBBVElCSUxJVFkpCi0rbm9pbnN0X0xUTElCUkFSSUVTID0gbGlic29jaV9jb3JlX3Rl c3QubGEKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTID0gJChjb3JlX3Rlc3RfaF9zb3Vy Y2VzKQotK2xpYnNvY2lfY29yZV90ZXN0X2xhX0NYWEZMQUdTID0gCi0rbGlic29jaV9jb3JlX3Rl c3RfbGFfTElCQUREID0gCi0rI2xpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1MgPSAtdmVyc2lv bi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCi0rbGlic29jaV9jb3JlX3Rlc3RfbGFf TERGTEFHUyA9IAotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV90ZXN0X2hfc291cmNlcykK LStAU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRl ZGlyKQotK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5j bHVkZWRpcikvc29jaS9jb3JlL3Rlc3QKLSthbGw6IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSsk KHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGly KS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2Rl cHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2Rl cHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYm IHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAg ICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9w X3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUnOyBc Ci0rCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBz b2NpL2NvcmUvdGVzdC9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTog JChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBj YXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICop IFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcu c3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAk KGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2Nv bmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBF TkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmln dXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0r CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAotKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0rCi0rY2xlYW4tbm9pbnN0TFRMSUJSQVJJRVM6 Ci0rCS10ZXN0IC16ICIkKG5vaW5zdF9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobm9pbnN0X0xU TElCUkFSSUVTKQotKwlAbGlzdD0nJChub2luc3RfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRs aXN0OyBkbyBcCi0rCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsg XAotKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAotKwkgIGVjaG8gInJtIC1m IFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKLSsJICBybSAtZiAiJCR7ZGlyfS9zb19sb2Nh dGlvbnMiOyBcCi0rCWRvbmUKLStsaWJzb2NpX2NvcmVfdGVzdC5sYTogJChsaWJzb2NpX2NvcmVf dGVzdF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX0RFUEVOREVOQ0lFUykgCi0r CSQobGlic29jaV9jb3JlX3Rlc3RfbGFfTElOSykgICQobGlic29jaV9jb3JlX3Rlc3RfbGFfT0JK RUNUUykgJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJBREQpICQoTElCUykKLSsKLSttb3N0bHlj bGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4tY29tcGls ZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYg Ki5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLStpbnN0YWxs LXBrZ2luY2x1ZGVIRUFERVJTOiAkKHBrZ2luY2x1ZGVfSEVBREVSUykKLSsJQCQoTk9STUFMX0lO U1RBTEwpCi0rCXRlc3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVT VERJUikkKHBrZ2luY2x1ZGVkaXIpIgotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsg dGVzdCAtbiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgbGlzdD07IFwKLSsJZm9yIHAgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2Rpcikv IjsgZmk7IFwKLSsJICBlY2hvICIkJGQkJHAiOyBcCi0rCWRvbmUgfCAkKGFtX19iYXNlX2xpc3Qp IHwgXAotKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCi0rCSAgZWNobyAiICQoSU5TVEFMTF9IRUFE RVIpICQkZmlsZXMgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyI7IFwKLSsJICAkKElOU1RB TExfSEVBREVSKSAkJGZpbGVzICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIgfHwgZXhpdCAk JD87IFwKLSsJZG9uZQotKwotK3VuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzoKLSsJQCQoTk9S TUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4g IiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBcCi0rCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7 IGRvIGVjaG8gJCRwOyBkb25lIHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCi0rCXRlc3QgLW4gIiQk ZmlsZXMiIHx8IGV4aXQgMDsgXAotKwllY2hvICIgKCBjZCAnJChERVNURElSKSQocGtnaW5jbHVk ZWRpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAotKwljZCAiJChERVNURElSKSQocGtnaW5j bHVkZWRpcikiICYmIHJtIC1mICQkZmlsZXMKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMp ICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChM SVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAot KwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGly KS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7 IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkg aW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdz OiBUQUdTCi0rCi0rVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVO Q0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXNldCB4OyBcCi0rCWhlcmU9YHB3 ZGA7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxF UyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1m ICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJ ICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9 IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQg aTsgfTsgfSdgOyBcCi0rCXNoaWZ0OyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCok JHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1 ZT0kJGVtcHR5X2ZpeDsgXAotKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKLSsJICAgICQo RVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJ ICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKLSsJICBlbHNlIFwKLSsJICAgICQoRVRBR1MpICQoRVRB R1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgJCR1bmlx dWU7IFwKLSsJICBmaTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiAgJChIRUFERVJT KSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQo TElTUCkKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxF UyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1m ICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJ ICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9 IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQg aTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAotKwkgIHx8 ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwK LSsJICAgICAkJHVuaXF1ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVp bGRkaXIpICYmIHB3ZGAgXAotKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKLSsJICAm JiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0r CS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRp cjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAn cy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9w X3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJ U1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hv ICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAot KwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBc Ci0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQk ZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9b Xi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmls ZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1k ICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAt ZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUg J3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7 IHRoZW4gXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJt IC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBpZiB0 ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwK LSsJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4 aXQgMTsgXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJt IC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAt ZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBc Ci0rCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgY3AgLXAgJCRk LyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZp OyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLWFtCi0rYWxsLWFt OiBNYWtlZmlsZSAkKExUTElCUkFSSUVTKSAkKEhFQURFUlMpCi0raW5zdGFsbGRpcnM6Ci0rCWZv ciBkaXIgaW4gIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIjsgZG8gXAotKwkgIHRlc3QgLXog IiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwKLSsJZG9uZQotK2luc3RhbGw6IGluc3Rh bGwtYW0KLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQotK2luc3RhbGwtZGF0YTogaW5z dGFsbC1kYXRhLWFtCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KLSsKLStpbnN0YWxsLWFtOiBh bGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxs LWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQotK2luc3RhbGwtc3Ry aXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxM X1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RS SVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RS SVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChT VFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJp YzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJ TEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNk aXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQo Q09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoK LSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNl IgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9v bHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwg cm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tYW0KLSsKLStjbGVh bi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdExUTElCUkFSSUVT IFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQotKwktcm0g LWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRp c3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1hbQotKwot K2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0raHRtbC1hbToKLSsKLStpbmZvOiBpbmZv LWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtcGtnaW5jbHVk ZUhFQURFUlMKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KLSsKLStpbnN0YWxsLWR2 aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0 bWwtYW0KLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWlu Zm8tYW0KLSsKLStpbnN0YWxsLWluZm8tYW06Ci0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFs bC1wZGY6IGluc3RhbGwtcGRmLWFtCi0rCi0raW5zdGFsbC1wZGYtYW06Ci0rCi0raW5zdGFsbC1w czogaW5zdGFsbC1wcy1hbQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFt OgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJLXJtIC1mIE1h a2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xl YW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwotK21vc3RseWNs ZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0 bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBz LWFtCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtcGtnaW5jbHVkZUhF QURFUlMKLSsKLSsuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiBD VEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMg XAotKwljbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdExUTElCUkFSSUVTIGN0YWdzIGRpc3RjbGVh biBcCi0rCWRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0 b29sIFwKLSsJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBp bmZvIGluZm8tYW0gXAotKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwt ZGF0YS1hbSBpbnN0YWxsLWR2aSBcCi0rCWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0 YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwKLSsJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5m byBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gXAotKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBk Zi1hbSBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTIFwKLSsJaW5zdGFsbC1wcyBpbnN0YWxsLXBz LWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKLSsJaW5zdGFsbGNoZWNrLWFtIGluc3Rh bGxkaXJzIG1haW50YWluZXItY2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9z dGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCi0rCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9z dGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKLSsJdGFncyB1bmluc3RhbGwg dW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotK0BTRVRfTUFLRUAK LSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9y dCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBh dCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3Jl L3Rlc3Qvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rCTIwMDktMDQtMTYg MTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDIgQEAKLStjb3JlX3Rlc3RfaF9z b3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAotK2Nv cmVfdGVzdF9jY19zb3VyY2VzID0KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL01h a2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFtCi0tLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFtCTIwMDktMDQt MTYgMTk6Mzc6MDcuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDkgQEAKLStpbmNsdWRlICQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rCi0rIyMgU291cmNlIGRpcmVjdG9yeQotKwot K01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLStTVUJESVJTID0gY29yZSBi YWNrZW5kcwotKwotK0VYVFJBX0RJU1QgPQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZpbGUuaW4KLS0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZpbGUuaW4JMjAx MC0wMS0yMyAxNDo0NDo1MS4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsNjM1IEBACi0rIyBN YWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0u Ci0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAx OTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwg MjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAot KyMgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMs IGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsg d2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAK LStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0r cGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChs aWJkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdF QAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIg JiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3Rh bGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQo aW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5z Zm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQ UkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoK LStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQg PSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSAkKHNyY2Rp cikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJChzcmNkaXIpL2NvbmZp Zy5oLmluICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGlyID0gc29jaQotK0FD TE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBz ID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2ku bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRv b2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJz aW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3Jj ZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200 X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtp bnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gY29uZmlnLmgK LStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0rU09V UkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNp dmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZv LXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJz aXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGlu c3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1w cy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZl IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVu aW5zdGFsbC1yZWN1cnNpdmUKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFu LXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWlu dGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJ VkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAotKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1y ZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAotKwlkaXN0ZGlyCi0rRVRBR1MgPSBl dGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJ TEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFf RElTVCkKLSthbV9fcmVsYXRpdml6ZSA9IFwKLSsgIGRpcjA9YHB3ZGA7IFwKLSsgIHNlZF9maXJz dD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAotKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7 IFwKLSsgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCi0rICBzZWRfYnV0bGFz dD0ncywvKlteL10qJCQsLCc7IFwKLSsgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwKLSsg ICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAg aWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKLSsgICAgICBpZiB0ZXN0ICIkJGZpcnN0 IiA9ICIuLiI7IHRoZW4gXAotKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAi JCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCi0rICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwg c2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKLSsgICAgICBlbHNlIFwKLSsgICAgICAgIGZpcnN0 Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICAgICAgaWYg dGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKLSsgICAgICAgICAgZGlyMj1gZWNo byAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICAgICAgICBlbHNlIFwKLSsg ICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAotKyAgICAgICAgZmk7IFwKLSsgICAgICAgIGRp cjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCi0rICAgICAgZmk7IFwKLSsgICAgZmk7IFwKLSsgICAg ZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICBkb25lOyBc Ci0rICByZWxkaXI9IiQkZGlyMiIKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1U QVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBB VVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1Rf Q0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RB VEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9M SUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NU X0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0r Qk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZ VEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1Rf UkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJ T05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NU X1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJP T1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1Rf VU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9O QAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJA Ci0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdT QAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1Mg PSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0r Q1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5J VF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RF ID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZ R1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9 IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStF Q0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0r RVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVS U0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFM TCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9Q Uk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1ND UklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAot K0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0r TElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5f UyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlO Rk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NA Ci0rTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJT QAotK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZF UlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRV TVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStP UkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxB R1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVf T0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BB Q0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9S VEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBB Q0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFD S0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRI X1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQ T1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMg PSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xE RkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5M SUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURA Ci0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJT X0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJ RUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVS U19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNU UklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVS U0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJz X3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3Rv cF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNf Y3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0r YW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFk aW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAK LSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBA YnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxk X2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVu ZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRh cm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0g QGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAK LStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStn c19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFz QAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3Zl bmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9 IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3Rh bGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJl eGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0 YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9 IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5j bHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBz ZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0 YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRp ciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1 aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVp bGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRv cF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtl ZmlsZS5pbgotK1NVQkRJUlMgPSBjb3JlIGJhY2tlbmRzCi0rRVhUUkFfRElTVCA9IAotK2FsbDog Y29uZmlnLmgKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYWxsLXJlY3Vyc2l2ZQotKwotKy5T VUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0g JCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBm b3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBc Ci0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVz dCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQg MTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2Rpcikg JiYgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9w X3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvTWFrZWZpbGUKLSsuUFJF Q0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9i dWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0 YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVw ZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwll c2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNk aXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQp OiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgot KwotK2NvbmZpZy5oOiBzdGFtcC1oMQotKwlAaWYgdGVzdCAhIC1mICRAOyB0aGVuIFwKLSsJICBy bSAtZiBzdGFtcC1oMTsgXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHN0YW1wLWgxOyBc Ci0rCWVsc2UgOjsgZmkKLSsKLStzdGFtcC1oMTogJChzcmNkaXIpL2NvbmZpZy5oLmluICQodG9w X2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBybSAtZiBzdGFtcC1oMQotKwljZCAkKHRvcF9i dWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzIHNvY2kvY29uZmlnLmgKLSskKHNy Y2RpcikvY29uZmlnLmguaW46ICAkKGFtX19jb25maWd1cmVfZGVwcykgCi0rCSgkKGFtX19jZCkg JCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9IRUFERVIpKQotKwlybSAtZiBzdGFtcC1oMQotKwl0b3Vj aCAkQAotKwotK2Rpc3RjbGVhbi1oZHI6Ci0rCS1ybSAtZiBjb25maWcuaCBzdGFtcC1oMQotKwot K21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoK LSsJLXJtIC1yZiAubGlicyBfbGlicwotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3Rv cmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5k IHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBj aGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcg TWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0 dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBN YWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikg b3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQg bGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7 IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJ ICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBc Ci0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdldD1gZWNo byAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3Vi ZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBkb3Rf c2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxz ZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKCQo YW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3Rhcmdl dCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRk b3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0 YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVD VVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlm b3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0q IHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBl c2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJ ICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMp JyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0n JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAi LiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZp OyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBz ZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBl Y2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0r CSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0r CSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2Fs X3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYgdGVzdCAteiAi JCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkg JCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0 YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVB REVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VT KSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBp biAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVs c2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7 IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9u ZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklE ICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVS UykgJChTT1VSQ0VTKSBjb25maWcuaC5pbiAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRB R1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChF VEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwK LSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9Ljsg XAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9m aXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAg ICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHNldCAiJCRAIiAiJCRpbmNs dWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBc Ci0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSBjb25maWcuaC5pbiAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCi0rCXNoaWZ0OyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJH UykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8 IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKLSsJ ICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1Mp IFwKLSsJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKLSsJICBlbHNlIFwKLSsJICAgICQoRVRBR1Mp ICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAg JCR1bmlxdWU7IFwKLSsJICBmaTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiBjdGFn cy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpIGNvbmZpZy5oLmluICQoVEFHU19ERVBF TkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwlsaXN0PSckKFNPVVJDRVMp ICQoSEVBREVSUykgY29uZmlnLmguaW4gJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlx dWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBl Y2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJ ICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVO RCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAot Kwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENU QUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1bmlx dWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2Rg IFwKLSsJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChH VEFHU19BUkdTKSAiJCRoZXJlIgotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJ RCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVT KQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0v XFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNl ZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAot KwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUg fCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8 XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlz dF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwg XAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwK LSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2Zp bGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4g ZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsg dGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwn YDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAg ICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNo bW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2Rp cikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1m cFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAg ICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNo bW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxl ICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAt ZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlz dGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0r CUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkg IGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIk KGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQk c3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0 PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBk aXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwK LSsJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIy PSIkKHRvcF9kaXN0ZGlyKSI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBu ZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBk aXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKLSsJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92 ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBk aXN0ZGlyKSI7IFwKLSsJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9k aXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAotKwkJYW1fX3Jl bW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkJYW1fX3Nr aXBfbW9kZV9maXg9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7 IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1y ZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlIGNvbmZpZy5oCi0raW5zdGFsbGRpcnM6IGluc3Rh bGxkaXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFtOgotK2luc3RhbGw6IGluc3RhbGwtcmVj dXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1k YXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJz aXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBp bnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxs Y2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFH UykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0 YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9G TEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RB TExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xl YW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgot KwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVB Tl9GSUxFUykKLSsJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NM RUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCi0r Ci0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGlu dGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVz IHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXog IiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVT KQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBj bGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVj dXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNs ZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWhkciBkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLXJl Y3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2h0bWwt YW06Ci0rCi0raW5mbzogaW5mby1yZWN1cnNpdmUKLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwt ZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCi0rCi0raW5z dGFsbC1kdmktYW06Ci0rCi0raW5zdGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5z dGFsbC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaHRtbC1hbToKLSsKLStpbnN0YWxsLWlu Zm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm8tYW06Ci0rCi0raW5z dGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQotKwotK2lu c3RhbGwtcGRmLWFtOgotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCi0rCi0r aW5zdGFsbC1wcy1hbToKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVh bjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRh aW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwot K21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0bHljbGVhbi1hbTog bW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtcmVj dXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1yZWN1cnNpdmUKLSsKLStwcy1hbToKLSsK LSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQo UkVDVVJTSVZFX1RBUkdFVFMpIGFsbCBcCi0rCWN0YWdzLXJlY3Vyc2l2ZSBpbnN0YWxsLWFtIGlu c3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1h bSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwlj dGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlz dGNsZWFuLWhkciBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBc Ci0rCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBc Ci0rCWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmkt YW0gXAotKwlpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxs LWh0bWwtYW0gXAotKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGlu c3RhbGwtcGRmIFwKLSsJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGlu c3RhbGwtc3RyaXAgXAotKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJz IGluc3RhbGxkaXJzLWFtIFwKLSsJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdl bmVyaWMgbW9zdGx5Y2xlYW4gXAotKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxp YnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCi0rCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0 YWxsIHVuaW5zdGFsbC1hbQotKwotK0BTRVRfTUFLRUAKLSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMu NTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3Ro ZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVk LgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLWNvbmZpZy5p biBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS1jb25maWcuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpLWNvbmZpZy5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLWNvbmZpZy5pbgkyMDA5LTA0LTE2IDE5OjM3OjEwLjAw MDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw3NiBAQAotKyMhL2Jpbi9zaAotKwotK3ByZWZpeD1A cHJlZml4QAotK2V4ZWNfcHJlZml4PSR7cHJlZml4fQotK2xpYmRpcj1AbGliZGlyQAotK2luY2x1 ZGVkaXI9QGluY2x1ZGVkaXJACi0rCi0rdXNhZ2UoKQotK3sKLSsgIGNhdCA8PEVPRgotK1VzYWdl OiBAUEFDS0FHRUAtY29uZmlnIFtPUFRJT05dCi0rCi0rS25vd24gdmFsdWVzIGZvciBPUFRJT04g YXJlOgotKwotKyAgLS1wcmVmaXggICAgICAgIHByaW50IEBQQUNLQUdFX05BTUVAIGluc3RhbGxh dGlvbiBwcmVmaXgKLSsgIC0tbGlicyAgICAgICAgICBwcmludCBsaWJyYXJ5IGxpbmtpbmcgaW5m b3JtYXRpb24KLSsgIC0tY2ZsYWdzICAgICAgICBwcmludCBwcmUtcHJvY2Vzc29yIGFuZCBjb21w aWxlciBmbGFncwotKyAgLS1oZWxwICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0 Ci0rICAtLXZlcnNpb24gICAgICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb24KLStFT0YKLSsg IGV4aXQgJDEKLSt9Ci0rCi0raWYgdGVzdCAkIyAtZXEgMDsgdGhlbgotKyAgdXNhZ2UgMQotK2Zp Ci0rCi0rY2ZsYWdzPWZhbHNlCi0rbGlicz1mYWxzZQotKwotK3doaWxlIHRlc3QgJCMgLWd0IDA7 IGRvCi0rICBjYXNlICIkMSIgaW4KLSsgIC0qPSopIG9wdGFyZz1gZWNobyAiJDEiIHwgc2VkICdz L1stX2EtekEtWjAtOV0qPS8vJ2AgOzsKLSsgICopIG9wdGFyZz0gOzsKLSsgIGVzYWMKLSsKLSsg IGNhc2UgJDEgaW4KLSsgICAgLS1wcmVmaXg9KikKLSsgICAgICBwcmVmaXg9JG9wdGFyZwotKyAg ICAgIDs7Ci0rCi0rICAgIC0tcHJlZml4KQotKyAgICAgIGVjaG8gJHByZWZpeAotKyAgICAgIDs7 Ci0rCi0rICAgIC0tdmVyc2lvbikKLSsgICAgICBlY2hvIEBWRVJTSU9OQAotKyAgICAgIDs7Ci0r Ci0rICAgIC0taGVscCkKLSsgICAgICB1c2FnZSAwCi0rICAgICAgOzsKLSsKLSsgICAgLS1jZmxh Z3MpCi0rICAgICAgaWYgWyAiJHtwcmVmaXh9IiAhPSAiL3VzciIgXTsgdGhlbgotKyAgICAgICAg ZWNobyAtSSR7aW5jbHVkZWRpcn0KLSsgICAgICBlbHNlCi0rICAgICAgICBlY2hvCi0rICAgICAg ZmkKLSsgICAgICA7OwotKwotKyAgICAtLWxpYnMpCi0rICAgICAgaWYgWyAiJHtwcmVmaXh9IiAh PSAiL3VzciIgXTsgdGhlbgotKyAgICAgICAgZWNobyAtTCR7bGliZGlyfSAtbEBQQUNLQUdFQAot KyAgICAgIGVsc2UKLSsgICAgICAgIGVjaG8gLWxAUEFDS0FHRUAKLSsgICAgICBmaQotKyAgICAg IDs7Ci0rCi0rICAgICopCi0rICAgICAgdXNhZ2UKLSsgICAgICBleGl0IDEKLSsgICAgICA7Owot KyAgZXNhYwotKyAgc2hpZnQKLStkb25lCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29j aS5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS5tNAkyMDA5LTA1LTAyIDIzOjU5OjEzLjAwMDAwMDAwMCArMDIwMAotQEAg LTAsMCArMSwxMTggQEAKLStkbmwgQHN5bm9wc2lzIEFYX1NPQ0kKLStkbmwgCi0rZG5sIFRoaXMg bWFjcm8gdHJpZXMgdG8gZmluZCBTb2NpIEMgQVBJIGhlYWRlciBhbmQgbGlicmFyeSBsb2NhdGlv bnMuCi0rZG5sCi0rZG5sIFdlIGRlZmluZSB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyZSBzY3JpcHQg ZmxhZ3M6Ci0rZG5sCi0rZG5sCS0td2l0aC1zb2NpOiBHaXZlIHByZWZpeCBmb3IgYm90aCBsaWJy YXJ5IGFuZCBoZWFkZXJzLCBhbmQgdHJ5Ci0rZG5sCQkgICAgIHRvIGd1ZXNzIHN1YmRpcmVjdG9y eSBuYW1lcyBmb3IgZWFjaC4gIChlLmcuIGFkZCAvbGliIGFuZAotK2RubAkJICAgICAvaW5jbHVk ZSBvbnRvIGdpdmVuIGRpciBuYW1lcywgYW5kIG90aGVyIGNvbW1vbiBzY2hlbWVzLikKLStkbmwK LStkbmwgQHZlcnNpb24gMS4zLCAyMDA5LzA1LzAyCi0rZG5sIEBhdXRob3IgRGVuaXMgQXJuYXVk IDxkZW5pc19hcm5hdWRAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotK2RubAotK2RubCBAdmVyc2lv biAxLjIsIDIwMDcvMDIvMjAKLStkbmwgQGF1dGhvciBXYXJyZW4gWW91bmcgPHNvY2lwcEBldHIt dXNhLmNvbT4KLSsKLStBQ19ERUZVTihbQVhfU09DSV0sCi0rWwotKyMKLSsjIFNldCB1cCBjb25m aWd1cmUgc2NyaXB0IG1hY3JvcwotKyMKLStBQ19BUkdfV0lUSChzb2NpLAotKwlbLS13aXRoLXNv Y2k9PHBhdGg+ICAgICByb290IGRpcmVjdG9yeSBwYXRoIG9mIFNvY2kgaW5zdGFsbGF0aW9uXSwK LSsJW1NPQ0lfbGliX2NoZWNrPSIkd2l0aF9zb2NpL2xpYjY0L3NvY2kgJHdpdGhfc29jaS9saWIv c29jaSAkd2l0aF9zb2NpL2xpYjY0ICR3aXRoX3NvY2kvbGliIgotKwlTT0NJX2luY19jaGVjaz0i JHdpdGhfc29jaS9pbmNsdWRlICR3aXRoX3NvY2kvaW5jbHVkZS9zb2NpIl0sCi0rCVtTT0NJX2xp Yl9jaGVjaz0iL3Vzci9saWI2NCAvdXNyL2xpYiAvdXNyL2xpYjY0L3NvY2kgL3Vzci9saWIvc29j aSAvdXNyL2xvY2FsL2xpYjY0IC91c3IvbG9jYWwvbGliIC9vcHQvc29jaS9saWI2NCAvb3B0L3Nv Y2kvbGliIC91c3IvbG9jYWwvbGliNjQvc29jaSAvdXNyL2xvY2FsL2xpYi9zb2NpIC91c3IvbG9j YWwvc29jaS9saWI2NCAvdXNyL2xvY2FsL3NvY2kvbGliIC9vcHQvc29jaS9saWI2NC9zb2NpIC9v cHQvc29jaS9saWIvc29jaSIKLSsJU09DSV9pbmNfY2hlY2s9Ii91c3IvaW5jbHVkZSAvdXNyL2lu Y2x1ZGUvc29jaSAvdXNyL2xvY2FsL2luY2x1ZGUgL29wdC9zb2NpL2luY2x1ZGUgL3Vzci9sb2Nh bC9pbmNsdWRlL3NvY2kgL3Vzci9sb2NhbC9zb2NpL2luY2x1ZGUgL3Vzci9sb2NhbC9zb2NpL2lu Y2x1ZGUvc29jaSAvb3B0L3NvY2kvaW5jbHVkZS9zb2NpIl0pCi0rCi0rIyBTT0NJIGxpYnJhcnkK LStTT0NJX0NPUkVfTElCPXNvY2lfY29yZQotK1NPQ0lfTVlTUUxfTElCPXNvY2lfbXlzcWwKLSsK LSsjCi0rIyBMb29rIGZvciBTb2NpIENvcmUgQVBJIGxpYnJhcnkKLSsjCi0rQUNfTVNHX0NIRUNL SU5HKFtmb3IgU29jaSBsaWJyYXJ5IGRpcmVjdG9yeV0pCi0rU09DSV9saWJkaXI9Ci0rZm9yIG0g aW4gJFNPQ0lfbGliX2NoZWNrCi0rZG8KLSsJaWYgdGVzdCAtZCAiJG0iICYmIFwKLSsJCSh0ZXN0 IC1mICIkbS9saWIkU09DSV9DT1JFX0xJQi5zbyIgfHwgdGVzdCAtZiAiJG0vbGliJFNPQ0lfQ09S RV9MSUIuYSIpCi0rCXRoZW4KLSsJCVNPQ0lfbGliZGlyPSRtCi0rCQlicmVhawotKwlmaQotK2Rv bmUKLSsKLStpZiB0ZXN0IC16ICIkU09DSV9saWJkaXIiCi0rdGhlbgotKwlBQ19NU0dfRVJST1Io W0RpZG4ndCBmaW5kICRTT0NJX0NPUkVfTElCIGxpYnJhcnkgaW4gJyRTT0NJX2xpYl9jaGVjaydd KQotK2ZpCi0rCi0rY2FzZSAiJFNPQ0lfbGliZGlyIiBpbgotKwkvKiApIDs7Ci0rCSogKSAgQUNf TVNHX0VSUk9SKFtUaGUgU29jaSBsaWJyYXJ5IGRpcmVjdG9yeSAoJFNPQ0lfbGliZGlyKSBtdXN0 IGJlIGFuIGFic29sdXRlIHBhdGguXSkgOzsKLStlc2FjCi0rCi0rQUNfTVNHX1JFU1VMVChbJFNP Q0lfbGliZGlyXSkKLSsKLStjYXNlICIkU09DSV9saWJkaXIiIGluCi0rICAvdXNyL2xpYjY0KSA7 OwotKyAgL3Vzci9saWIpIDs7Ci0rICAqKSBTT0NJX0xJQlM9Ii1MJHtTT0NJX2xpYmRpcn0iIDs7 Ci0rZXNhYwotK0xERkxBR1M9IiRMREZMQUdTICR7U09DSV9MSUJTfSIKLSsKLSsKLSsjCi0rIyBM b29rIGZvciBTb2NpIENvcmUgQVBJIGhlYWRlcnMKLSsjCi0rQUNfTVNHX0NIRUNLSU5HKFtmb3Ig U29jaSBpbmNsdWRlIGRpcmVjdG9yeV0pCi0rU09DSV9pbmNkaXI9Ci0rZm9yIG0gaW4gJFNPQ0lf aW5jX2NoZWNrCi0rZG8KLSsJaWYgdGVzdCAtZCAiJG0iICYmIHRlc3QgLWYgIiRtL3NvY2kvY29y ZS9zb2NpLmgiCi0rCXRoZW4KLSsJCVNPQ0lfaW5jZGlyPSRtCi0rCQlicmVhawotKwlmaQotK2Rv bmUKLSsKLStpZiB0ZXN0IC16ICIkU09DSV9pbmNkaXIiCi0rdGhlbgotKwlBQ19NU0dfRVJST1Io W0RpZG4ndCBmaW5kIHRoZSBTb2NpIGluY2x1ZGUgZGlyIGluICckU09DSV9pbmNfY2hlY2snXSkK LStmaQotKwotK2Nhc2UgIiRTT0NJX2luY2RpciIgaW4KLSsJLyogKSA7OwotKwkqICkgIEFDX01T R19FUlJPUihbVGhlIFNvY2kgaW5jbHVkZSBkaXJlY3RvcnkgKCRTT0NJX2luY2RpcikgbXVzdCBi ZSBhbiBhYnNvbHV0ZSBwYXRoLl0pIDs7Ci0rZXNhYwotKwotK0FDX01TR19SRVNVTFQoWyRTT0NJ X2luY2Rpcl0pCi0rCi0rY2FzZSAiJFNPQ0lfaW5jZGlyIiBpbgotKyAgL3Vzci9pbmNsdWRlKSA7 OwotKyAgKikgU09DSV9DRkxBR1M9Ii1JJHtTT0NJX2luY2Rpcn0iIDs7Ci0rZXNhYwotKwotK1NP Q0lfTElCUz0iJHtTT0NJX0xJQlN9IC1sJHtTT0NJX0NPUkVfTElCfSAtbCR7U09DSV9NWVNRTF9M SUJ9IC1sZGwiCi0rCi0rQUNfU1VCU1QoU09DSV9DRkxBR1MpCi0rQUNfU1VCU1QoU09DSV9MSUJT KQotKwotKyMgVGVzdCBsaW5raW5nIHdpdGggc29jaSAobm90ZSB0aGF0IGl0IG5lZWRzIE15U1FM IGNsaWVudCB0byBoYXZlIGJlZW4gZGVmaW5lZAotKyMgYmVmb3JlKQotK3NhdmVfTElCUz0iJExJ QlMiCi0raWYgdGVzdCAteiAiJE1ZU1FMX0xJQlMiCi0rdGhlbgotKwlNWVNRTF9MSUJTPSItTC91 c3IvbGliNjQvbXlzcWwgLUwvdXNyL2xpYi9teXNxbCAtbG15c3FsY2xpZW50IgotK2ZpCi0rTElC Uz0iJExJQlMgJE1ZU1FMX0xJQlMgJFNPQ0lfTElCUyIKLStBQ19DSEVDS19MSUIoJFNPQ0lfQ09S RV9MSUIsIHNvY2lfYmVnaW4sCi0rCSAgICAgW10sIAotKyAgICAgICAgICAgICBbQUNfTVNHX0VS Uk9SKFtDb3VsZCBub3QgZmluZCB3b3JraW5nIFNvY2kgY2xpZW50IGxpYnJhcnkhXSldCi0rCSAg ICAgKQotK0xJQlM9IiRzYXZlX0xJQlMiCi0rQUNfU1VCU1QoU09DSV9DT1JFX0xJQikKLStdKSBk bmwgQVhfU09DSQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kucGMuaW4gc29jaS0z LjAuMF90cmVwMzAwL3NvY2kucGMuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLnBjLmlu CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kucGMuaW4JMjAwOS0wNC0xNiAxOTozNzoxMC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0w LDAgKzEsMTEgQEAKLStwcmVmaXg9QHByZWZpeEAKLStleGVjX3ByZWZpeD1AZXhlY19wcmVmaXhA Ci0rbGliZGlyPUBsaWJkaXJACi0raW5jbHVkZWRpcj1AaW5jbHVkZWRpckAKLSsKLStOYW1lOiBA UEFDS0FHRV9OQU1FQAotK0Rlc2NyaXB0aW9uOiBUaGUgZGF0YWJhc2UgYWNjZXNzIGxpYnJhcnkg Zm9yIEMrKyBwcm9ncmFtbWVycwotK1ZlcnNpb246IEBQQUNLQUdFX1ZFUlNJT05ACi0rVVJMOiBo dHRwOi8vQFBBQ0tBR0VALnNvdXJjZWZvcmdlLm5ldAotK0xpYnM6IC1MJHtsaWJkaXJ9IC1sQFBB Q0tBR0VAX2NvcmUgQExERkxBR1NAIEBMSUJTQAotK0NmbGFnczogLUkke2luY2x1ZGVkaXJ9Ci1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS5zcGVjLmluIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpLnNwZWMuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLnNwZWMuaW4JMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS5zcGVjLmluCTIwMTAtMDEtMjMgMTQ6Mzk6MzIuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsx LDMzNiBAQAotKyMKLSsjIwotKyMgRGVmYXVsdCB2YWx1ZXMgYXJlIC0td2l0aCBteXNxbCAtLXdp dGggcG9zdGdyZXNxbCAtLXdpdGhvdXQgb3JhY2xlIAotKyMgTm90ZSB0aGF0LCBmb3IgT3JhY2xl LCB3aGVuIGVuYWJsZWQsIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyBzaG91bGQKLSsjIGFsc28gYmUg Z2l2ZW46Ci0rIyAtLXdpdGgtb3JhY2xlLWluY2x1ZGU9L29wdC9vcmFjbGUvYXBwL29yYWNsZS9w cm9kdWN0LzExLjEuMC9kYl8xL3JkYm1zL3B1YmxpYwotKyMgLS13aXRoLW9yYWNsZS1saWI9L29w dC9vcmFjbGUvYXBwL29yYWNsZS9wcm9kdWN0LzExLjEuMC9kYl8xL2xpYgotKyMgSWYgdGhlIG1h Y3JvcyBhcmUgZGVmaW5lZCwgcmVkZWZpbmUgdGhlbSB3aXRoIHRoZSBjb3JyZWN0IGNvbXBpbGF0 aW9uIGZsYWdzLgotKyViY29uZF93aXRob3V0IG15c3FsCi0rJWJjb25kX3dpdGhvdXQgcG9zdGdy ZXNxbAotKyViY29uZF93aXRoIG9yYWNsZQotKwotKyVkZWZpbmUgX2RlZmF1bHRfb3JhY2xlX2Rp ciAvb3B0L29yYWNsZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTEuMS4wL2RiXzEKLSsleyE/X3dpdGhf b3JhY2xlX2luY2RpcjogJWRlZmluZSBfd2l0aF9vcmFjbGVfaW5jZGlyIC0td2l0aC1vcmFjbGUt aW5jbHVkZT0le19kZWZhdWx0X29yYWNsZV9kaXJ9L3JkYm1zL3B1YmxpY30KLSsleyE/X3dpdGhf b3JhY2xlX2xpYmRpcjogJWRlZmluZSBfd2l0aF9vcmFjbGVfbGliZGlyIC0td2l0aC1vcmFjbGUt bGliPSV7X2RlZmF1bHRfb3JhY2xlX2Rpcn0vbGlifQotKyMKLSsjIwotKyMKLStOYW1lOiAgICAg ICAgICAgQFBBQ0tBR0VACi0rVmVyc2lvbjogICAgICAgIEBWRVJTSU9OQAotK1JlbGVhc2U6ICAg ICAgICBAUlBNX1JFTEVBU0VAJXs/ZGlzdH0KLSsKLStTdW1tYXJ5OiAgICAgICAgVGhlIGRhdGFi YXNlIGFjY2VzcyBsaWJyYXJ5IGZvciBDKysgcHJvZ3JhbW1lcnMKLSsKLStHcm91cDogICAgICAg ICAgU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcwotK0xpY2Vuc2U6ICAgICAgICBCb29zdAot K1VSTDogICAgICAgICAgICBodHRwOi8vJXtuYW1lfS5zb3VyY2Vmb3JnZS5uZXQKLStTb3VyY2Uw OiAgICAgICAgaHR0cDovL2Rvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvc29jaS8le25hbWV9LSV7 dmVyc2lvbn0udGFyLmd6Ci0rIyBUaGF0IHBhdGNoIHdpbGwgYmUgc3VibWl0dGVkIHVwc3RyZWFt Ci0rUGF0Y2gwOiAgICAgICAgICV7bmFtZX0tJXt2ZXJzaW9ufS1AUlBNX1JFTEVBU0VALWZpeC1n Y2M0NC1jb21wYXRpYmlsaXR5LnBhdGNoCi0rIyBUaGF0IHBhdGNoIHdpbGwgYmUgc3VibWl0dGVk IHVwc3RyZWFtCi0rUGF0Y2gxOiAgICAgICAgICV7bmFtZX0tJXt2ZXJzaW9ufS1AUlBNX1JFTEVB U0VALWZpeC1nbnUtYXV0b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0Y2gKLStCdWlsZFJvb3Q6ICAg ICAgJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVsZWFzZX0tcm9vdC0lKCV7X19p ZF91fSAtbikKLSsKLStCdWlsZFJlcXVpcmVzOiAgYm9vc3QtZGV2ZWwKLSsjQnVpbGRSZXF1aXJl czogIGNwcHVuaXQtZGV2ZWwgPj0gMS4xMAotK0J1aWxkUmVxdWlyZXM6ICBsaWJ0b29sCi0rI1Jl cXVpcmVzOiAgICAgICAKLSsKLSslZGVzY3JpcHRpb24KLStAUEFDS0FHRV9OQU1FQCBpcyBhIEMr KyBkYXRhYmFzZSBhY2Nlc3MgbGlicmFyeSB0aGF0IHByb3ZpZGVzIHRoZQotK2lsbHVzaW9uIG9m IGVtYmVkZGluZyBTUUwgaW4gcmVndWxhciBDKysgY29kZSwgc3RheWluZyBlbnRpcmVseSB3aXRo aW4KLSt0aGUgQysrIHN0YW5kYXJkLgotKwotKwotKyV7P3dpdGhfbXlzcWw6JXBhY2thZ2UgICAg ICAgIG15c3FsCi0rU3VtbWFyeTogICAgICAgIE15U1FMIGJhY2tlbmQgZm9yICV7bmFtZX0KLStH cm91cDogICAgICAgICAgU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcwotK1JlcXVpcmVzOiAg ICAgICAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0rQnVpbGRSZXF1aXJlczogIG15 c3FsLWRldmVsID49IDUuMAotKwotKyVkZXNjcmlwdGlvbiAgICBteXNxbAotK1RoaXMgcGFja2Fn ZSBjb250YWlucyB0aGUgTXlTUUwgYmFja2VuZCBmb3IgQFBBQ0tBR0VfTkFNRUAsIGkuZS4sCi0r ZHluYW1pYyBsaWJyYXJ5IHNwZWNpZmljIHRvIHRoZSBNeVNRTCBkYXRhYmFzZS4gSWYgeW91IHdv dWxkIGxpa2UgdG8KLSt1c2UgQFBBQ0tBR0VfTkFNRUAgaW4geW91ciBwcm9ncmFtcyB3aXRoIE15 U1FMLCB5b3Ugd2lsbCBuZWVkIHRvCi0raW5zdGFsbCAle25hbWV9LW15c3FsLn0KLSsKLSslez93 aXRoX3Bvc3RncmVzcWw6JXBhY2thZ2UgICAgICAgIHBvc3RncmVzcWwKLStTdW1tYXJ5OiAgICAg ICAgUG9zdEdyZVNRTCBiYWNrZW5kIGZvciAle25hbWV9Ci0rR3JvdXA6ICAgICAgICAgIFN5c3Rl bSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKLStSZXF1aXJlczogICAgICAgJXtuYW1lfSA9ICV7dmVy c2lvbn0tJXtyZWxlYXNlfQotK0J1aWxkUmVxdWlyZXM6ICBwb3N0Z3Jlc3FsLWRldmVsID49IDcu MQotKwotKyVkZXNjcmlwdGlvbiAgICBwb3N0Z3Jlc3FsCi0rVGhpcyBwYWNrYWdlIGNvbnRhaW5z IHRoZSBQb3N0R3JlU1FMIGJhY2tlbmQgZm9yIEBQQUNLQUdFX05BTUVALCBpLmUuLAotK2R5bmFt aWMgbGlicmFyeSBzcGVjaWZpYyB0byB0aGUgUG9zdEdyZVNRTCBkYXRhYmFzZS4gSWYgeW91IHdv dWxkIGxpa2UKLSt0byB1c2UgQFBBQ0tBR0VfTkFNRUAgaW4geW91ciBwcm9ncmFtcyB3aXRoIFBv c3RHcmVTUUwsIHlvdSB3aWxsIG5lZWQgdG8KLStpbnN0YWxsICV7bmFtZX0tcG9zdGdyZXNxbC59 Ci0rCi0rJXs/d2l0aF9vcmFjbGU6JXBhY2thZ2UgICAgICAgIG9yYWNsZQotK1N1bW1hcnk6ICAg ICAgICBPcmFjbGUgYmFja2VuZCBmb3IgJXtuYW1lfQotK0dyb3VwOiAgICAgICAgICBTeXN0ZW0g RW52aXJvbm1lbnQvTGlicmFyaWVzCi0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0gPSAle3ZlcnNp b259LSV7cmVsZWFzZX0KLSsKLSslZGVzY3JpcHRpb24gICAgb3JhY2xlCi0rVGhpcyBwYWNrYWdl IGNvbnRhaW5zIHRoZSBPcmFjbGUgYmFja2VuZCBmb3IgQFBBQ0tBR0VfTkFNRUAsIGkuZS4sCi0r ZHluYW1pYyBsaWJyYXJ5IHNwZWNpZmljIHRvIHRoZSBPcmFjbGUgZGF0YWJhc2UuIElmIHlvdSB3 b3VsZCBsaWtlIHRvCi0rdXNlIEBQQUNLQUdFX05BTUVAIGluIHlvdXIgcHJvZ3JhbXMgd2l0aCBP cmFjbGUsIHlvdSB3aWxsIG5lZWQgdG8gaW5zdGFsbAotKyV7bmFtZX0tb3JhY2xlLn0KLSsKLSsK LSslcGFja2FnZSAgICAgICAgZGV2ZWwKLStTdW1tYXJ5OiAgICAgICAgSGVhZGVyIGZpbGVzLCBs aWJyYXJpZXMgYW5kIGRldmVsb3BtZW50IGRvY3VtZW50YXRpb24gZm9yICV7bmFtZX0KLStHcm91 cDogICAgICAgICAgRGV2ZWxvcG1lbnQvTGlicmFyaWVzCi0rUmVxdWlyZXM6ICAgICAgICV7bmFt ZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KLStSZXF1aXJlczogICAgICAgcGtnY29uZmlnCi0r Ci0rJWRlc2NyaXB0aW9uICAgIGRldmVsCi0rVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBoZWFk ZXIgZmlsZXMsIGR5bmFtaWMgbGlicmFyaWVzIGFuZAotK2RldmVsb3BtZW50IGRvY3VtZW50YXRp b24gZm9yICV7bmFtZX0uIElmIHlvdSB3b3VsZCBsaWtlIHRvIGRldmVsb3AKLStwcm9ncmFtcyB1 c2luZyAle25hbWV9LCB5b3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwgJXtuYW1lfS1kZXZlbC4KLSsK LSslez93aXRoX215c3FsOiVwYWNrYWdlICAgICAgICBteXNxbC1kZXZlbAotK1N1bW1hcnk6ICAg ICAgICBNeVNRTCBiYWNrZW5kIGZvciAle25hbWV9Ci0rR3JvdXA6ICAgICAgICAgIERldmVsb3Bt ZW50L0xpYnJhcmllcwotK1JlcXVpcmVzOiAgICAgICAle25hbWV9LWRldmVsID0gJXt2ZXJzaW9u fS0le3JlbGVhc2V9Ci0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tbXlzcWwgPSAle3ZlcnNpb259 LSV7cmVsZWFzZX0KLStSZXF1aXJlczogICAgICAgbXlzcWwtZGV2ZWwgPj0gNS4wCi0rCi0rJWRl c2NyaXB0aW9uICAgIG15c3FsLWRldmVsCi0rVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBNeVNR TCBiYWNrZW5kIGZvciAle25hbWV9LCBpLmUuLCBoZWFkZXIKLStmaWxlcyBhbmQgZHluYW1pYyBs aWJyYXJpZXMgc3BlY2lmaWMgdG8gdGhlIE15U1FMIGRhdGFiYXNlLiBJZiB5b3UKLSt3b3VsZCBs aWtlIHRvIGRldmVsb3AgcHJvZ3JhbXMgdXNpbmcgJXtuYW1lfSBhbmQgTXlTUUwsIHlvdSB3aWxs IG5lZWQKLSt0byBpbnN0YWxsICV7bmFtZX0tbXlzcWwufQotKwotKyV7P3dpdGhfcG9zdGdyZXNx bDolcGFja2FnZSAgICAgICAgcG9zdGdyZXNxbC1kZXZlbAotK1N1bW1hcnk6ICAgICAgICBQb3N0 R3JlU1FMIGJhY2tlbmQgZm9yICV7bmFtZX0KLStHcm91cDogICAgICAgICAgRGV2ZWxvcG1lbnQv TGlicmFyaWVzCi0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tZGV2ZWwgPSAle3ZlcnNpb259LSV7 cmVsZWFzZX0KLStSZXF1aXJlczogICAgICAgJXtuYW1lfS1wb3N0Z3Jlc3FsID0gJXt2ZXJzaW9u fS0le3JlbGVhc2V9Ci0rUmVxdWlyZXM6ICAgICAgIHBvc3RncmVzcWwtZGV2ZWwgPj0gNy4xCi0r Ci0rJWRlc2NyaXB0aW9uICAgIHBvc3RncmVzcWwtZGV2ZWwKLStUaGlzIHBhY2thZ2UgY29udGFp bnMgdGhlIFBvc3RHcmVTUUwgYmFja2VuZCBmb3IgJXtuYW1lfSwgaS5lLiwgaGVhZGVyCi0rZmls ZXMgYW5kIGR5bmFtaWMgbGlicmFyaWVzIHNwZWNpZmljIHRvIHRoZSBQb3N0R3JlU1FMIGRhdGFi YXNlLiBJZgotK3lvdSB3b3VsZCBsaWtlIHRvIGRldmVsb3AgcHJvZ3JhbXMgdXNpbmcgJXtuYW1l fSBhbmQgUG9zdEdyZVNRTCwgeW91Ci0rd2lsbCBuZWVkIHRvIGluc3RhbGwgJXtuYW1lfS1wb3N0 Z3Jlc3FsLn0KLSsKLSslez93aXRoX29yYWNsZTolcGFja2FnZSAgICAgICAgb3JhY2xlLWRldmVs Ci0rU3VtbWFyeTogICAgICAgIE9yYWNsZSBiYWNrZW5kIGZvciAle25hbWV9Ci0rR3JvdXA6ICAg ICAgICAgIERldmVsb3BtZW50L0xpYnJhcmllcwotK1JlcXVpcmVzOiAgICAgICAle25hbWV9LWRl dmVsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tb3Jh Y2xlID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0rCi0rJWRlc2NyaXB0aW9uICAgIG9yYWNsZS1k ZXZlbAotK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUgT3JhY2xlIGJhY2tlbmQgZm9yICV7bmFt ZX0sIGkuZS4sIGhlYWRlcgotK2ZpbGVzIGFuZCBkeW5hbWljIGxpYnJhcmllcyBzcGVjaWZpYyB0 byB0aGUgT3JhY2xlIGRhdGFiYXNlLiBJZiB5b3UKLSt3b3VsZCBsaWtlIHRvIGRldmVsb3AgcHJv Z3JhbXMgdXNpbmcgJXtuYW1lfSBhbmQgT3JhY2xlLCB5b3Ugd2lsbCBuZWVkCi0rdG8gaW5zdGFs bCAle25hbWV9LW9yYWNsZS59Ci0rCi0rCi0rJXBhY2thZ2UgZG9jCi0rU3VtbWFyeTogICAgICAg IEhUTUwgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIEBQQUNLQUdFX05BTUVAIGxpYnJhcnkKLStHcm91 cDogICAgICAgICAgRG9jdW1lbnRhdGlvbgotKyVpZiAwJXs/ZmVkb3JhfSA+PSAxMAotK0J1aWxk QXJjaDogICAgICBub2FyY2gKLSsjQnVpbGRSZXF1aXJlczogIHRleGxpdmUtbGF0ZXgsIHRleGxp dmUtZHZpcHMKLSslZW5kaWYKLSsjQnVpbGRSZXF1aXJlczogIHRldGV4LWxhdGV4LCB0ZXRleC1k dmlwcwotKyNCdWlsZFJlcXVpcmVzOiAgZG94eWdlbiwgZ2hvc3RzY3JpcHQKLSsKLSslZGVzY3Jp cHRpb24gZG9jCi0rVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBkb2N1bWVudGF0aW9uIGluIHRo ZSBIVE1MIGZvcm1hdCBvZiB0aGUgQFBBQ0tBR0VfTkFNRUAKLStsaWJyYXJ5LiBUaGUgZG9jdW1l bnRhdGlvbiBpcyB0aGUgc2FtZSBhcyBhdCB0aGUgQFBBQ0tBR0VfTkFNRUAgd2ViIHBhZ2UuCi0r Ci0rCi0rJXByZXAKLSslc2V0dXAgLXEKLSsKLSsjIEFwcGx5IHRoZSBnKysgNC40IGNvbXBhdGli aWxpdHkgcGF0Y2gKLSslcGF0Y2gwIC1wMQotKwotKyMgUmVuYW1lIGNoYW5nZS1sb2cgYW5kIGxp Y2Vuc2UgZmlsZSwgc28gdGhhdCB0aGV5IGNvbXBseSB3aXRoCi0rIyBwYWNrYWdpbmcgc3RhbmRh cmQKLSttdiBDSEFOR0VTIENoYW5nZUxvZwotK212IExJQ0VOU0VfMV8wLnR4dCBDT1BZSU5HCi0r cm0gLWYgSU5TVEFMTAotKwotKyMgUmVtb3ZlIE1hY09TWCBjb21wYXRpYmlsaXR5IGJ1aWxkaW5n IGZpbGVzCi0rcm0gLWYgYnVpbGQvdW5peC8uXyoudGNsCi0rcm0gLWYgLl9NYWtlZmlsZSAuX2Nv bmZpZ3VyZQotK3JtIC1mIHNyYy9jb3JlLy5fKi5oIHNyYy9jb3JlLy5fKi5jcHAKLStybSAtZiBz cmMvYmFja2VuZHMvcG9zdGdyZXNxbC8uXyouaAotK3JtIC1mIGRvYy8uXyouaHRtbAotKwotKyMg UmVuYW1lIHRoZSBzb3VyY2UgY29kZSBkaXJlY3RvcnksIHNvIHRoYXQgdGhlIGZpbGVzIChlLmcs IGhlYWRlcgotKyMgZmlsZXMpIGNhbiBiZSBleHBvcnRlZCBjb3JyZWN0bHkgaW50byB7X3N0YW5k YXJkX2Rpcn0vJXtuYW1lfQotK212IHNyYyAle25hbWV9Ci0rCi0rIyBBcHBseSB0aGUgR05VIEF1 dG90b29scyBjb21wYXRpYmlsaXR5IHBhdGNoCi0rJXBhdGNoMSAtcDEKLSsKLSsjIEZpeCBzb21l IHBlcm1pc3Npb25zIGFuZCBmb3JtYXRzCi0rZmluZCAuL2RvYyAtdHlwZSBmIC1wZXJtIDc1NSAt ZXhlYyBjaG1vZCA2NDQge30gXDsKLStjaG1vZCAteCBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5H IE5FV1MgUkVBRE1FCi0rIyBmaW5kIC4gLXR5cGUgZiAtbmFtZSAnKi5baGNdcHAnIC1leGVjIGNo bW9kIDY0NCB7fSBcOwotKwotKwotKyVidWlsZAotKyVjb25maWd1cmUgLS1kaXNhYmxlLXN0YXRp YyBcCi0rJXs/d2l0aF9teXNxbDotLWVuYWJsZS1iYWNrZW5kLW15c3FsfSBcCi0rJXs/d2l0aF9w b3N0Z3Jlc3FsOi0tZW5hYmxlLWJhY2tlbmQtcG9zdGdyZXNxbH0gXAotKyV7P3dpdGhfb3JhY2xl Oi0tZW5hYmxlLWJhY2tlbmQtb3JhY2xlICV7P193aXRoX29yYWNsZV9pbmNkaXJ9ICV7P193aXRo X29yYWNsZV9saWJkaXJ9fQotK21ha2UgJXs/X3NtcF9tZmxhZ3N9Ci0rCi0rJWluc3RhbGwKLSty bSAtcmYgJFJQTV9CVUlMRF9ST09UCi0rbWFrZSBpbnN0YWxsIERFU1RESVI9JFJQTV9CVUlMRF9S T09UCi0rIyMKLSsjICBSZW1vdmUgdW5wYWNrYWdlZCBmaWxlcyBmcm9tIHRoZSBidWlsZHJvb3QK LStybSAtZiAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L2NvbmZpZy5oCi0r cm0gLWYgJFJQTV9CVUlMRF9ST09UJXtfbGliZGlyfS9saWIle25hbWV9XyoubGEKLSsjIwotKyMj Ci0rIyAgRHVwbGljYXRlIHRoZSBoZWFkZXIgZmlsZXMsIHNvIGFzIHRvIGtlZXAgdGhlIGNvbXBh dGliaWxpdHksIGZvcgotKyMgIGRldmVsb3BlcnMgdXNpbmcgdGhlIFNPQ0kgbGlicmFyeSwgd2l0 aCB0aGUgbm9uLXBhY2thZ2VkIHZlcnNpb24gb2YKLSsjICB0aGF0IGxpYnJhcnkuCi0rZm9yIGhl YWRlcl9maWxlIGluICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vY29yZS8q Lmg7IGRvCi0rICBjcCAke2hlYWRlcl9maWxlfSAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGly fS8le25hbWV9Ci0rZG9uZQotKyV7P3dpdGhfbXlzcWw6Y3AgJFJQTV9CVUlMRF9ST09UJXtfaW5j bHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmggJFJQTV9CVUlMRF9S T09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfX0KLSslez93aXRoX3Bvc3RncmVzcWw6Y3AgJFJQTV9C VUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2kt cG9zdGdyZXNxbC5oICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX19Ci0rJXs/ d2l0aF9vcmFjbGU6Y3AgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNr ZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaCAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8l e25hbWV9fQotKwotKwotKyVjbGVhbgotK3JtIC1yZiAkUlBNX0JVSUxEX1JPT1QKLSsKLSslcG9z dCAtcCAvc2Jpbi9sZGNvbmZpZwotKwotKyVwb3N0dW4gLXAgL3NiaW4vbGRjb25maWcKLSsKLSsl ez93aXRoX215c3FsOiVwb3N0IG15c3FsIC1wIC9zYmluL2xkY29uZmlnCi0rCi0rJXBvc3R1biBt eXNxbCAtcCAvc2Jpbi9sZGNvbmZpZ30KLSsKLSslez93aXRoX3Bvc3RncmVzcWw6JXBvc3QgcG9z dGdyZXNxbCAtcCAvc2Jpbi9sZGNvbmZpZwotKwotKyVwb3N0dW4gcG9zdGdyZXNxbCAtcCAvc2Jp bi9sZGNvbmZpZ30KLSsKLSslez93aXRoX29yYWNsZTolcG9zdCBvcmFjbGUgLXAgL3NiaW4vbGRj b25maWcKLSsKLSslcG9zdHVuIG9yYWNsZSAtcCAvc2Jpbi9sZGNvbmZpZ30KLSsKLSsKLSsKLSsl ZmlsZXMKLSslZGVmYXR0cigtLHJvb3Qscm9vdCwtKQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cg Q09QWUlORyBORVdTIFJFQURNRQotKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9jb3JlLnNvLioKLSsK LSslez93aXRoX215c3FsOiVmaWxlcyBteXNxbAotKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0r JWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0rJXtfbGliZGlyfS9s aWIle25hbWV9X215c3FsLnNvLip9Ci0rCi0rJXs/d2l0aF9wb3N0Z3Jlc3FsOiVmaWxlcyBwb3N0 Z3Jlc3FsCi0rJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKLSslZG9jIEFVVEhPUlMgQ2hhbmdlTG9n IENPUFlJTkcgTkVXUyBSRUFETUUKLSsle19saWJkaXJ9L2xpYiV7bmFtZX1fcG9zdGdyZXNxbC5z by4qfQotKwotKyV7P3dpdGhfb3JhY2xlOiVmaWxlcyBvcmFjbGUKLSslZGVmYXR0cigtLHJvb3Qs cm9vdCwtKQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQotKyV7 X2xpYmRpcn0vbGliJXtuYW1lfV9vcmFjbGUuc28uKn0KLSsKLSsKLSslZmlsZXMgZGV2ZWwKLSsl ZGVmYXR0cigtLHJvb3Qscm9vdCwtKQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBO RVdTIFJFQURNRQotKyVkaXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQotKyVkaXIgJXtfaW5jbHVk ZWRpcn0vJXtuYW1lfS9jb3JlCi0rJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS8qLmgKLSsle19pbmNs dWRlZGlyfS8le25hbWV9L2NvcmUvKi5oCi0rJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9jb3JlL3Rl c3QKLSsle19iaW5kaXJ9LyV7bmFtZX0tY29uZmlnCi0rJXtfbGliZGlyfS9saWIle25hbWV9X2Nv cmUuc28KLSsle19saWJkaXJ9L3BrZ2NvbmZpZy8le25hbWV9LnBjCi0rJXtfZGF0YWRpcn0vYWNs b2NhbC8le25hbWV9Lm00Ci0rJXtfbWFuZGlyfS9tYW4xLyV7bmFtZX0tY29uZmlnLjEuKgotKwot KyV7P3dpdGhfbXlzcWw6JWZpbGVzIG15c3FsLWRldmVsCi0rJWRlZmF0dHIoLSxyb290LHJvb3Qs LSkKLSslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKLSslZGlyICV7 X2luY2x1ZGVkaXJ9LyV7bmFtZX0KLSsle19pbmNsdWRlZGlyfS8le25hbWV9L2JhY2tlbmRzL215 c3FsCi0rJXtfbGliZGlyfS9saWIle25hbWV9X215c3FsLnNvfQotKwotKyV7P3dpdGhfcG9zdGdy ZXNxbDolZmlsZXMgcG9zdGdyZXNxbC1kZXZlbAotKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0r JWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0rJWRpciAle19pbmNs dWRlZGlyfS8le25hbWV9Ci0rJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9wb3N0Z3Jl c3FsCi0rJXtfbGliZGlyfS9saWIle25hbWV9X3Bvc3RncmVzcWwuc299Ci0rCi0rJXs/d2l0aF9v cmFjbGU6JWZpbGVzIG9yYWNsZS1kZXZlbAotKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0rJWRv YyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0rJWRpciAle19pbmNsdWRl ZGlyfS8le25hbWV9Ci0rJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9vcmFjbGUKLSsl e19saWJkaXJ9L2xpYiV7bmFtZX1fb3JhY2xlLnNvfQotKwotKwotKyVmaWxlcyBkb2MKLSslZGVm YXR0cigtLHJvb3Qscm9vdCwtKQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdT IFJFQURNRSBkb2MKLSsKLSsKLSslY2hhbmdlbG9nCi0rKiBTYXQgSmFuIDIzIDIwMTAgRGVuaXMg QXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTE2Ci0rLSBBZGRlZCBh IG1pc3NpbmcgY3N0cmluZyBoZWFkZXIgaW5jbHVkZSBmb3IgZysrLTQuNCBjb21wYXRpYmlsaXR5 Ci0rCi0rKiBGcmkgSmFuIDIyIDIwMTAgUmFodWwgU3VuZGFyYW0gPHN1bmRhcmFtQGZlZG9yYXBy b2plY3Qub3JnPiAtIDMuMC4wLTE1Ci0rLSBSZWJ1aWxkIGZvciBCb29zdCBzb25hbWUgYnVtcAot KwotKyogU3VuIEp1bCAyNiAyMDA5IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWwtZW5n QGxpc3RzLmZlZG9yYXByb2plY3Qub3JnPiAtIDMuMC4wLTE0Ci0rLSBSZWJ1aWx0IGZvciBodHRw czovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzEyX01hc3NfUmVidWlsZAotKwotKyog U2F0IE1heSAwOSAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3Jn PiAzLjAuMC0xMwotKy0gSW50cm9kdWNlZCBkaXN0aW5jdCBkZXBlbmRlbmNpZXMgZm9yIGRpZmZl cmVudCBkaXN0cmlidXRpb25zCi0rCi0rKiBUdWUgTWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVkIDxk ZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTEyCi0rLSBSZW1vdmVkIHRoZSBkZXBl bmRlbmN5IG9uIHRoZSB2ZXJzaW9uIG9mIEJvb3N0LCBhbmQgb24gQ1BQVW5pdAotKwotKyogVHVl IE1heSAwNSAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAz LjAuMC0xMQotKy0gUmVtb3ZlZCB0aGUgZGVwZW5kZW5jeSBvbiBMYXRleCBmb3IgZG9jdW1lbnRh dGlvbiBkZWxpdmVyeQotKwotKyogVHVlIE1heSAwNSAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMu YXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0xMAotKy0gQnVycmllZCB0aGUgQm9vc3QgRnVz aW9uIGhlYWRlciBpbmNsdWRlIGZvciBjb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKLSsKLSsqIFR1 ZSBNYXkgMDUgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4g My4wLjAtOQotKy0gQWRkZWQgYSBtaXNzaW5nIGNzdGRpbyBoZWFkZXIgaW5jbHVkZSBmb3IgZysr LTQuNCBjb21wYXRpYmlsaXR5Ci0rCi0rKiBUdWUgTWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVkIDxk ZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTgKLSstIEFkZGVkIG1pc3NpbmcgY3N0 ZGlvIGhlYWRlciBpbmNsdWRlcyBmb3IgZysrLTQuNCBjb21wYXRpYmlsaXR5Ci0rCi0rKiBUdWUg TWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMu MC4wLTcKLSstIEFkZGVkIGEgbWlzc2luZyBjc3RkaW8gaGVhZGVyIGluY2x1ZGUgZm9yIGcrKy00 LjQgY29tcGF0aWJpbGl0eQotKwotKyogU2F0IE1heSAwMiAyMDA5IERlbmlzIEFybmF1ZCA8ZGVu aXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC02Ci0rLSBSZW1vdmVkIHRoZSB1bnVzZWQg YnVpbGQgY29uZGl0aW9uYWxzCi0rCi0rKiBUdWUgQXByIDI4IDIwMDkgRGVuaXMgQXJuYXVkIDxk ZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTUKLSstIFNpbXBsaWZpZWQgdGhlIGNv bmRpdGlvbmFsIGJ1aWxkIHJ1bGVzIHdpdGhpbiB0aGUgUlBNIHNwZWNpZmljYXRpb24gZmlsZQot KwotKyogU2F0IEFwciAxOCAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBt NHgub3JnPiAzLjAuMC00Ci0rLSBGaXhlZCBhbiBpc3N1ZSBhYm91dCBPUFRGTEFHUyBjb21waWxh dGlvbgotKwotKyogVHVlIEFwciAxNCAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2Zl ZG9yYUBtNHgub3JnPiAzLjAuMC0zCi0rLSBSZXN0YXJ0ZWQgZnJvbSBwcmlzdGluZSB2ZXJzaW9u IDMuMC4wIG9mIHVwc3RyZWFtIChTT0NJKSBwcm9qZWN0Ci0rCi0rKiBTYXQgQXByICA0IDIwMDkg RGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTIKLSstIFNw ZWNpZmljIFJQTSBmb3IgZWFjaCBiYWNrZW5kCi0rCi0rKiBGcmkgTWFyIDI3IDIwMDkgRGVuaXMg QXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTEKLSstIEZpcnN0IFJQ TSByZWxlYXNlCgpkaWZmIC0tZ2l0IGEvc29jaS0zLjAuMC1hZGQtZG9jLnBhdGNoIGIvc29jaS0z LjAuMC1hZGQtZG9jLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4 ZDY4NjIKLS0tIC9kZXYvbnVsbAorKysgYi9zb2NpLTMuMC4wLWFkZC1kb2MucGF0Y2gKQEAgLTAs MCArMSwzODkgQEAKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9BVVRIT1JTIHNvY2ktMy4w LjBfdHJlcDMwMC9BVVRIT1JTCistLS0gc29jaS0zLjAuMF80LXBhY2svQVVUSE9SUwkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9BVVRI T1JTCTIwMDktMDQtMTYgMTk6Mzc6MTAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDkgQEAK KysKKytEYXZpZCBDb3VydG5leSwgRGV2ZWxvcGVyLCBkYWNvdXJ0bmV5IGF0IHVzZXJzLnNvdXJj ZWZvcmdlLm5ldAorK01hdGV1c3ogTG9za290LCBEZXZlbG9wZXIsIG1sb3Nrb3QgYXQgdXNlcnMu c291cmNlZm9yZ2UubmV0CisrTWFjaWVqIFNvYmN6YWssIEFkbWluIFByb2plY3QgTWFuYWdlciwg bXNvYmN6YWsgYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0CisrUGF3ZWwgQWxla3NhbmRlciBGZWRv cnluc2tpLCBEZXZlbG9wZXIsIHBmZWRvciBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKytSYWZh bCBCb2Jyb3dza2ksIERldmVsb3BlciwgcmJvYnJvIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAor K0plYW4tTWFyYywgRGV2ZWxvcGVyLCBzaWRqdGFsIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAor K1N0ZXBoZW4gSHV0dG9uLCBEZXZlbG9wZXIsIHN0ZXBoZW5odXR0b24gYXQgdXNlcnMuc291cmNl Zm9yZ2UubmV0CisrCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svSU5TVEFMTCBzb2NpLTMu MC4wX3RyZXAzMDAvSU5TVEFMTAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL0lOU1RBTEwJMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvSU5T VEFMTAkyMDExLTAyLTA4IDIyOjM5OjU3LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSwzNjUg QEAKKytJbnN0YWxsYXRpb24gSW5zdHJ1Y3Rpb25zCisrKioqKioqKioqKioqKioqKioqKioqKioq KgorKworK0NvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OSwgMjAwMCwgMjAwMSwg MjAwMiwgMjAwNCwgMjAwNSwKKysyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorKworKyAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlz IGZpbGUsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisrYXJlIHBlcm1pdHRlZCBpbiBh bnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0Cisrbm90aWNl IGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIG9mZmVyZWQgYXMt aXMsCisrd2l0aG91dCB3YXJyYW50eSBvZiBhbnkga2luZC4KKysKKytCYXNpYyBJbnN0YWxsYXRp b24KKys9PT09PT09PT09PT09PT09PT0KKysKKysgICBCcmllZmx5LCB0aGUgc2hlbGwgY29tbWFu ZHMgYC4vY29uZmlndXJlOyBtYWtlOyBtYWtlIGluc3RhbGwnIHNob3VsZAorK2NvbmZpZ3VyZSwg YnVpbGQsIGFuZCBpbnN0YWxsIHRoaXMgcGFja2FnZS4gIFRoZSBmb2xsb3dpbmcKKyttb3JlLWRl dGFpbGVkIGluc3RydWN0aW9ucyBhcmUgZ2VuZXJpYzsgc2VlIHRoZSBgUkVBRE1FJyBmaWxlIGZv cgorK2luc3RydWN0aW9ucyBzcGVjaWZpYyB0byB0aGlzIHBhY2thZ2UuICBTb21lIHBhY2thZ2Vz IHByb3ZpZGUgdGhpcworK2BJTlNUQUxMJyBmaWxlIGJ1dCBkbyBub3QgaW1wbGVtZW50IGFsbCBv ZiB0aGUgZmVhdHVyZXMgZG9jdW1lbnRlZAorK2JlbG93LiAgVGhlIGxhY2sgb2YgYW4gb3B0aW9u YWwgZmVhdHVyZSBpbiBhIGdpdmVuIHBhY2thZ2UgaXMgbm90CisrbmVjZXNzYXJpbHkgYSBidWcu ICBNb3JlIHJlY29tbWVuZGF0aW9ucyBmb3IgR05VIHBhY2thZ2VzIGNhbiBiZSBmb3VuZAorK2lu ICpub3RlIE1ha2VmaWxlIENvbnZlbnRpb25zOiAoc3RhbmRhcmRzKU1ha2VmaWxlIENvbnZlbnRp b25zLgorKworKyAgIFRoZSBgY29uZmlndXJlJyBzaGVsbCBzY3JpcHQgYXR0ZW1wdHMgdG8gZ3Vl c3MgY29ycmVjdCB2YWx1ZXMgZm9yCisrdmFyaW91cyBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxl cyB1c2VkIGR1cmluZyBjb21waWxhdGlvbi4gIEl0IHVzZXMKKyt0aG9zZSB2YWx1ZXMgdG8gY3Jl YXRlIGEgYE1ha2VmaWxlJyBpbiBlYWNoIGRpcmVjdG9yeSBvZiB0aGUgcGFja2FnZS4KKytJdCBt YXkgYWxzbyBjcmVhdGUgb25lIG9yIG1vcmUgYC5oJyBmaWxlcyBjb250YWluaW5nIHN5c3RlbS1k ZXBlbmRlbnQKKytkZWZpbml0aW9ucy4gIEZpbmFsbHksIGl0IGNyZWF0ZXMgYSBzaGVsbCBzY3Jp cHQgYGNvbmZpZy5zdGF0dXMnIHRoYXQKKyt5b3UgY2FuIHJ1biBpbiB0aGUgZnV0dXJlIHRvIHJl Y3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24sIGFuZCBhCisrZmlsZSBgY29uZmlnLmxv ZycgY29udGFpbmluZyBjb21waWxlciBvdXRwdXQgKHVzZWZ1bCBtYWlubHkgZm9yCisrZGVidWdn aW5nIGBjb25maWd1cmUnKS4KKysKKysgICBJdCBjYW4gYWxzbyB1c2UgYW4gb3B0aW9uYWwgZmls ZSAodHlwaWNhbGx5IGNhbGxlZCBgY29uZmlnLmNhY2hlJworK2FuZCBlbmFibGVkIHdpdGggYC0t Y2FjaGUtZmlsZT1jb25maWcuY2FjaGUnIG9yIHNpbXBseSBgLUMnKSB0aGF0IHNhdmVzCisrdGhl IHJlc3VsdHMgb2YgaXRzIHRlc3RzIHRvIHNwZWVkIHVwIHJlY29uZmlndXJpbmcuICBDYWNoaW5n IGlzCisrZGlzYWJsZWQgYnkgZGVmYXVsdCB0byBwcmV2ZW50IHByb2JsZW1zIHdpdGggYWNjaWRl bnRhbCB1c2Ugb2Ygc3RhbGUKKytjYWNoZSBmaWxlcy4KKysKKysgICBJZiB5b3UgbmVlZCB0byBk byB1bnVzdWFsIHRoaW5ncyB0byBjb21waWxlIHRoZSBwYWNrYWdlLCBwbGVhc2UgdHJ5CisrdG8g ZmlndXJlIG91dCBob3cgYGNvbmZpZ3VyZScgY291bGQgY2hlY2sgd2hldGhlciB0byBkbyB0aGVt LCBhbmQgbWFpbAorK2RpZmZzIG9yIGluc3RydWN0aW9ucyB0byB0aGUgYWRkcmVzcyBnaXZlbiBp biB0aGUgYFJFQURNRScgc28gdGhleSBjYW4KKytiZSBjb25zaWRlcmVkIGZvciB0aGUgbmV4dCBy ZWxlYXNlLiAgSWYgeW91IGFyZSB1c2luZyB0aGUgY2FjaGUsIGFuZCBhdAorK3NvbWUgcG9pbnQg YGNvbmZpZy5jYWNoZScgY29udGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3Qgd2FudCB0byBrZWVwLCB5 b3UKKyttYXkgcmVtb3ZlIG9yIGVkaXQgaXQuCisrCisrICAgVGhlIGZpbGUgYGNvbmZpZ3VyZS5h YycgKG9yIGBjb25maWd1cmUuaW4nKSBpcyB1c2VkIHRvIGNyZWF0ZQorK2Bjb25maWd1cmUnIGJ5 IGEgcHJvZ3JhbSBjYWxsZWQgYGF1dG9jb25mJy4gIFlvdSBuZWVkIGBjb25maWd1cmUuYWMnIGlm CisreW91IHdhbnQgdG8gY2hhbmdlIGl0IG9yIHJlZ2VuZXJhdGUgYGNvbmZpZ3VyZScgdXNpbmcg YSBuZXdlciB2ZXJzaW9uCisrb2YgYGF1dG9jb25mJy4KKysKKysgICBUaGUgc2ltcGxlc3Qgd2F5 IHRvIGNvbXBpbGUgdGhpcyBwYWNrYWdlIGlzOgorKworKyAgMS4gYGNkJyB0byB0aGUgZGlyZWN0 b3J5IGNvbnRhaW5pbmcgdGhlIHBhY2thZ2UncyBzb3VyY2UgY29kZSBhbmQgdHlwZQorKyAgICAg YC4vY29uZmlndXJlJyB0byBjb25maWd1cmUgdGhlIHBhY2thZ2UgZm9yIHlvdXIgc3lzdGVtLgor KworKyAgICAgUnVubmluZyBgY29uZmlndXJlJyBtaWdodCB0YWtlIGEgd2hpbGUuICBXaGlsZSBy dW5uaW5nLCBpdCBwcmludHMKKysgICAgIHNvbWUgbWVzc2FnZXMgdGVsbGluZyB3aGljaCBmZWF0 dXJlcyBpdCBpcyBjaGVja2luZyBmb3IuCisrCisrICAyLiBUeXBlIGBtYWtlJyB0byBjb21waWxl IHRoZSBwYWNrYWdlLgorKworKyAgMy4gT3B0aW9uYWxseSwgdHlwZSBgbWFrZSBjaGVjaycgdG8g cnVuIGFueSBzZWxmLXRlc3RzIHRoYXQgY29tZSB3aXRoCisrICAgICB0aGUgcGFja2FnZSwgZ2Vu ZXJhbGx5IHVzaW5nIHRoZSBqdXN0LWJ1aWx0IHVuaW5zdGFsbGVkIGJpbmFyaWVzLgorKworKyAg NC4gVHlwZSBgbWFrZSBpbnN0YWxsJyB0byBpbnN0YWxsIHRoZSBwcm9ncmFtcyBhbmQgYW55IGRh dGEgZmlsZXMgYW5kCisrICAgICBkb2N1bWVudGF0aW9uLiAgV2hlbiBpbnN0YWxsaW5nIGludG8g YSBwcmVmaXggb3duZWQgYnkgcm9vdCwgaXQgaXMKKysgICAgIHJlY29tbWVuZGVkIHRoYXQgdGhl IHBhY2thZ2UgYmUgY29uZmlndXJlZCBhbmQgYnVpbHQgYXMgYSByZWd1bGFyCisrICAgICB1c2Vy LCBhbmQgb25seSB0aGUgYG1ha2UgaW5zdGFsbCcgcGhhc2UgZXhlY3V0ZWQgd2l0aCByb290Cisr ICAgICBwcml2aWxlZ2VzLgorKworKyAgNS4gT3B0aW9uYWxseSwgdHlwZSBgbWFrZSBpbnN0YWxs Y2hlY2snIHRvIHJlcGVhdCBhbnkgc2VsZi10ZXN0cywgYnV0CisrICAgICB0aGlzIHRpbWUgdXNp bmcgdGhlIGJpbmFyaWVzIGluIHRoZWlyIGZpbmFsIGluc3RhbGxlZCBsb2NhdGlvbi4KKysgICAg IFRoaXMgdGFyZ2V0IGRvZXMgbm90IGluc3RhbGwgYW55dGhpbmcuICBSdW5uaW5nIHRoaXMgdGFy Z2V0IGFzIGEKKysgICAgIHJlZ3VsYXIgdXNlciwgcGFydGljdWxhcmx5IGlmIHRoZSBwcmlvciBg bWFrZSBpbnN0YWxsJyByZXF1aXJlZAorKyAgICAgcm9vdCBwcml2aWxlZ2VzLCB2ZXJpZmllcyB0 aGF0IHRoZSBpbnN0YWxsYXRpb24gY29tcGxldGVkCisrICAgICBjb3JyZWN0bHkuCisrCisrICA2 LiBZb3UgY2FuIHJlbW92ZSB0aGUgcHJvZ3JhbSBiaW5hcmllcyBhbmQgb2JqZWN0IGZpbGVzIGZy b20gdGhlCisrICAgICBzb3VyY2UgY29kZSBkaXJlY3RvcnkgYnkgdHlwaW5nIGBtYWtlIGNsZWFu Jy4gIFRvIGFsc28gcmVtb3ZlIHRoZQorKyAgICAgZmlsZXMgdGhhdCBgY29uZmlndXJlJyBjcmVh dGVkIChzbyB5b3UgY2FuIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9yCisrICAgICBhIGRpZmZlcmVu dCBraW5kIG9mIGNvbXB1dGVyKSwgdHlwZSBgbWFrZSBkaXN0Y2xlYW4nLiAgVGhlcmUgaXMKKysg ICAgIGFsc28gYSBgbWFrZSBtYWludGFpbmVyLWNsZWFuJyB0YXJnZXQsIGJ1dCB0aGF0IGlzIGlu dGVuZGVkIG1haW5seQorKyAgICAgZm9yIHRoZSBwYWNrYWdlJ3MgZGV2ZWxvcGVycy4gIElmIHlv dSB1c2UgaXQsIHlvdSBtYXkgaGF2ZSB0byBnZXQKKysgICAgIGFsbCBzb3J0cyBvZiBvdGhlciBw cm9ncmFtcyBpbiBvcmRlciB0byByZWdlbmVyYXRlIGZpbGVzIHRoYXQgY2FtZQorKyAgICAgd2l0 aCB0aGUgZGlzdHJpYnV0aW9uLgorKworKyAgNy4gT2Z0ZW4sIHlvdSBjYW4gYWxzbyB0eXBlIGBt YWtlIHVuaW5zdGFsbCcgdG8gcmVtb3ZlIHRoZSBpbnN0YWxsZWQKKysgICAgIGZpbGVzIGFnYWlu LiAgSW4gcHJhY3RpY2UsIG5vdCBhbGwgcGFja2FnZXMgaGF2ZSB0ZXN0ZWQgdGhhdAorKyAgICAg dW5pbnN0YWxsYXRpb24gd29ya3MgY29ycmVjdGx5LCBldmVuIHRob3VnaCBpdCBpcyByZXF1aXJl ZCBieSB0aGUKKysgICAgIEdOVSBDb2RpbmcgU3RhbmRhcmRzLgorKworKyAgOC4gU29tZSBwYWNr YWdlcywgcGFydGljdWxhcmx5IHRob3NlIHRoYXQgdXNlIEF1dG9tYWtlLCBwcm92aWRlIGBtYWtl CisrICAgICBkaXN0Y2hlY2snLCB3aGljaCBjYW4gYnkgdXNlZCBieSBkZXZlbG9wZXJzIHRvIHRl c3QgdGhhdCBhbGwgb3RoZXIKKysgICAgIHRhcmdldHMgbGlrZSBgbWFrZSBpbnN0YWxsJyBhbmQg YG1ha2UgdW5pbnN0YWxsJyB3b3JrIGNvcnJlY3RseS4KKysgICAgIFRoaXMgdGFyZ2V0IGlzIGdl bmVyYWxseSBub3QgcnVuIGJ5IGVuZCB1c2Vycy4KKysKKytDb21waWxlcnMgYW5kIE9wdGlvbnMK Kys9PT09PT09PT09PT09PT09PT09PT0KKysKKysgICBTb21lIHN5c3RlbXMgcmVxdWlyZSB1bnVz dWFsIG9wdGlvbnMgZm9yIGNvbXBpbGF0aW9uIG9yIGxpbmtpbmcgdGhhdAorK3RoZSBgY29uZmln dXJlJyBzY3JpcHQgZG9lcyBub3Qga25vdyBhYm91dC4gIFJ1biBgLi9jb25maWd1cmUgLS1oZWxw JworK2ZvciBkZXRhaWxzIG9uIHNvbWUgb2YgdGhlIHBlcnRpbmVudCBlbnZpcm9ubWVudCB2YXJp YWJsZXMuCisrCisrICAgWW91IGNhbiBnaXZlIGBjb25maWd1cmUnIGluaXRpYWwgdmFsdWVzIGZv ciBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMKKytieSBzZXR0aW5nIHZhcmlhYmxlcyBpbiB0aGUg Y29tbWFuZCBsaW5lIG9yIGluIHRoZSBlbnZpcm9ubWVudC4gIEhlcmUKKytpcyBhbiBleGFtcGxl OgorKworKyAgICAgLi9jb25maWd1cmUgQ0M9Yzk5IENGTEFHUz0tZyBMSUJTPS1scG9zaXgKKysK KysgICAqTm90ZSBEZWZpbmluZyBWYXJpYWJsZXM6OiwgZm9yIG1vcmUgZGV0YWlscy4KKysKKytD b21waWxpbmcgRm9yIE11bHRpcGxlIEFyY2hpdGVjdHVyZXMKKys9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKysKKysgICBZb3UgY2FuIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9y IG1vcmUgdGhhbiBvbmUga2luZCBvZiBjb21wdXRlciBhdCB0aGUKKytzYW1lIHRpbWUsIGJ5IHBs YWNpbmcgdGhlIG9iamVjdCBmaWxlcyBmb3IgZWFjaCBhcmNoaXRlY3R1cmUgaW4gdGhlaXIKKytv d24gZGlyZWN0b3J5LiAgVG8gZG8gdGhpcywgeW91IGNhbiB1c2UgR05VIGBtYWtlJy4gIGBjZCcg dG8gdGhlCisrZGlyZWN0b3J5IHdoZXJlIHlvdSB3YW50IHRoZSBvYmplY3QgZmlsZXMgYW5kIGV4 ZWN1dGFibGVzIHRvIGdvIGFuZCBydW4KKyt0aGUgYGNvbmZpZ3VyZScgc2NyaXB0LiAgYGNvbmZp Z3VyZScgYXV0b21hdGljYWxseSBjaGVja3MgZm9yIHRoZQorK3NvdXJjZSBjb2RlIGluIHRoZSBk aXJlY3RvcnkgdGhhdCBgY29uZmlndXJlJyBpcyBpbiBhbmQgaW4gYC4uJy4gIFRoaXMKKytpcyBr bm93biBhcyBhICJWUEFUSCIgYnVpbGQuCisrCisrICAgV2l0aCBhIG5vbi1HTlUgYG1ha2UnLCBp dCBpcyBzYWZlciB0byBjb21waWxlIHRoZSBwYWNrYWdlIGZvciBvbmUKKythcmNoaXRlY3R1cmUg YXQgYSB0aW1lIGluIHRoZSBzb3VyY2UgY29kZSBkaXJlY3RvcnkuICBBZnRlciB5b3UgaGF2ZQor K2luc3RhbGxlZCB0aGUgcGFja2FnZSBmb3Igb25lIGFyY2hpdGVjdHVyZSwgdXNlIGBtYWtlIGRp c3RjbGVhbicgYmVmb3JlCisrcmVjb25maWd1cmluZyBmb3IgYW5vdGhlciBhcmNoaXRlY3R1cmUu CisrCisrICAgT24gTWFjT1MgWCAxMC41IGFuZCBsYXRlciBzeXN0ZW1zLCB5b3UgY2FuIGNyZWF0 ZSBsaWJyYXJpZXMgYW5kCisrZXhlY3V0YWJsZXMgdGhhdCB3b3JrIG9uIG11bHRpcGxlIHN5c3Rl bSB0eXBlcy0ta25vd24gYXMgImZhdCIgb3IKKysidW5pdmVyc2FsIiBiaW5hcmllcy0tYnkgc3Bl Y2lmeWluZyBtdWx0aXBsZSBgLWFyY2gnIG9wdGlvbnMgdG8gdGhlCisrY29tcGlsZXIgYnV0IG9u bHkgYSBzaW5nbGUgYC1hcmNoJyBvcHRpb24gdG8gdGhlIHByZXByb2Nlc3Nvci4gIExpa2UKKyt0 aGlzOgorKworKyAgICAgLi9jb25maWd1cmUgQ0M9ImdjYyAtYXJjaCBpMzg2IC1hcmNoIHg4Nl82 NCAtYXJjaCBwcGMgLWFyY2ggcHBjNjQiIFwKKysgICAgICAgICAgICAgICAgIENYWD0iZysrIC1h cmNoIGkzODYgLWFyY2ggeDg2XzY0IC1hcmNoIHBwYyAtYXJjaCBwcGM2NCIgXAorKyAgICAgICAg ICAgICAgICAgQ1BQPSJnY2MgLUUiIENYWENQUD0iZysrIC1FIgorKworKyAgIFRoaXMgaXMgbm90 IGd1YXJhbnRlZWQgdG8gcHJvZHVjZSB3b3JraW5nIG91dHB1dCBpbiBhbGwgY2FzZXMsIHlvdQor K21heSBoYXZlIHRvIGJ1aWxkIG9uZSBhcmNoaXRlY3R1cmUgYXQgYSB0aW1lIGFuZCBjb21iaW5l IHRoZSByZXN1bHRzCisrdXNpbmcgdGhlIGBsaXBvJyB0b29sIGlmIHlvdSBoYXZlIHByb2JsZW1z LgorKworK0luc3RhbGxhdGlvbiBOYW1lcworKz09PT09PT09PT09PT09PT09PQorKworKyAgIEJ5 IGRlZmF1bHQsIGBtYWtlIGluc3RhbGwnIGluc3RhbGxzIHRoZSBwYWNrYWdlJ3MgY29tbWFuZHMg dW5kZXIKKytgL3Vzci9sb2NhbC9iaW4nLCBpbmNsdWRlIGZpbGVzIHVuZGVyIGAvdXNyL2xvY2Fs L2luY2x1ZGUnLCBldGMuICBZb3UKKytjYW4gc3BlY2lmeSBhbiBpbnN0YWxsYXRpb24gcHJlZml4 IG90aGVyIHRoYW4gYC91c3IvbG9jYWwnIGJ5IGdpdmluZworK2Bjb25maWd1cmUnIHRoZSBvcHRp b24gYC0tcHJlZml4PVBSRUZJWCcsIHdoZXJlIFBSRUZJWCBtdXN0IGJlIGFuCisrYWJzb2x1dGUg ZmlsZSBuYW1lLgorKworKyAgIFlvdSBjYW4gc3BlY2lmeSBzZXBhcmF0ZSBpbnN0YWxsYXRpb24g cHJlZml4ZXMgZm9yCisrYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGZpbGVzIGFuZCBhcmNoaXRlY3R1 cmUtaW5kZXBlbmRlbnQgZmlsZXMuICBJZiB5b3UKKytwYXNzIHRoZSBvcHRpb24gYC0tZXhlYy1w cmVmaXg9UFJFRklYJyB0byBgY29uZmlndXJlJywgdGhlIHBhY2thZ2UgdXNlcworK1BSRUZJWCBh cyB0aGUgcHJlZml4IGZvciBpbnN0YWxsaW5nIHByb2dyYW1zIGFuZCBsaWJyYXJpZXMuCisrRG9j dW1lbnRhdGlvbiBhbmQgb3RoZXIgZGF0YSBmaWxlcyBzdGlsbCB1c2UgdGhlIHJlZ3VsYXIgcHJl Zml4LgorKworKyAgIEluIGFkZGl0aW9uLCBpZiB5b3UgdXNlIGFuIHVudXN1YWwgZGlyZWN0b3J5 IGxheW91dCB5b3UgY2FuIGdpdmUKKytvcHRpb25zIGxpa2UgYC0tYmluZGlyPURJUicgdG8gc3Bl Y2lmeSBkaWZmZXJlbnQgdmFsdWVzIGZvciBwYXJ0aWN1bGFyCisra2luZHMgb2YgZmlsZXMuICBS dW4gYGNvbmZpZ3VyZSAtLWhlbHAnIGZvciBhIGxpc3Qgb2YgdGhlIGRpcmVjdG9yaWVzCisreW91 IGNhbiBzZXQgYW5kIHdoYXQga2luZHMgb2YgZmlsZXMgZ28gaW4gdGhlbS4gIEluIGdlbmVyYWws IHRoZQorK2RlZmF1bHQgZm9yIHRoZXNlIG9wdGlvbnMgaXMgZXhwcmVzc2VkIGluIHRlcm1zIG9m IGAke3ByZWZpeH0nLCBzbyB0aGF0Cisrc3BlY2lmeWluZyBqdXN0IGAtLXByZWZpeCcgd2lsbCBh ZmZlY3QgYWxsIG9mIHRoZSBvdGhlciBkaXJlY3RvcnkKKytzcGVjaWZpY2F0aW9ucyB0aGF0IHdl cmUgbm90IGV4cGxpY2l0bHkgcHJvdmlkZWQuCisrCisrICAgVGhlIG1vc3QgcG9ydGFibGUgd2F5 IHRvIGFmZmVjdCBpbnN0YWxsYXRpb24gbG9jYXRpb25zIGlzIHRvIHBhc3MgdGhlCisrY29ycmVj dCBsb2NhdGlvbnMgdG8gYGNvbmZpZ3VyZSc7IGhvd2V2ZXIsIG1hbnkgcGFja2FnZXMgcHJvdmlk ZSBvbmUgb3IKKytib3RoIG9mIHRoZSBmb2xsb3dpbmcgc2hvcnRjdXRzIG9mIHBhc3NpbmcgdmFy aWFibGUgYXNzaWdubWVudHMgdG8gdGhlCisrYG1ha2UgaW5zdGFsbCcgY29tbWFuZCBsaW5lIHRv IGNoYW5nZSBpbnN0YWxsYXRpb24gbG9jYXRpb25zIHdpdGhvdXQKKytoYXZpbmcgdG8gcmVjb25m aWd1cmUgb3IgcmVjb21waWxlLgorKworKyAgIFRoZSBmaXJzdCBtZXRob2QgaW52b2x2ZXMgcHJv dmlkaW5nIGFuIG92ZXJyaWRlIHZhcmlhYmxlIGZvciBlYWNoCisrYWZmZWN0ZWQgZGlyZWN0b3J5 LiAgRm9yIGV4YW1wbGUsIGBtYWtlIGluc3RhbGwKKytwcmVmaXg9L2FsdGVybmF0ZS9kaXJlY3Rv cnknIHdpbGwgY2hvb3NlIGFuIGFsdGVybmF0ZSBsb2NhdGlvbiBmb3IgYWxsCisrZGlyZWN0b3J5 IGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIHRoYXQgd2VyZSBleHByZXNzZWQgaW4gdGVybXMgb2YK KytgJHtwcmVmaXh9Jy4gIEFueSBkaXJlY3RvcmllcyB0aGF0IHdlcmUgc3BlY2lmaWVkIGR1cmlu ZyBgY29uZmlndXJlJywKKytidXQgbm90IGluIHRlcm1zIG9mIGAke3ByZWZpeH0nLCBtdXN0IGVh Y2ggYmUgb3ZlcnJpZGRlbiBhdCBpbnN0YWxsCisrdGltZSBmb3IgdGhlIGVudGlyZSBpbnN0YWxs YXRpb24gdG8gYmUgcmVsb2NhdGVkLiAgVGhlIGFwcHJvYWNoIG9mCisrbWFrZWZpbGUgdmFyaWFi bGUgb3ZlcnJpZGVzIGZvciBlYWNoIGRpcmVjdG9yeSB2YXJpYWJsZSBpcyByZXF1aXJlZCBieQor K3RoZSBHTlUgQ29kaW5nIFN0YW5kYXJkcywgYW5kIGlkZWFsbHkgY2F1c2VzIG5vIHJlY29tcGls YXRpb24uCisrSG93ZXZlciwgc29tZSBwbGF0Zm9ybXMgaGF2ZSBrbm93biBsaW1pdGF0aW9ucyB3 aXRoIHRoZSBzZW1hbnRpY3Mgb2YKKytzaGFyZWQgbGlicmFyaWVzIHRoYXQgZW5kIHVwIHJlcXVp cmluZyByZWNvbXBpbGF0aW9uIHdoZW4gdXNpbmcgdGhpcworK21ldGhvZCwgcGFydGljdWxhcmx5 IG5vdGljZWFibGUgaW4gcGFja2FnZXMgdGhhdCB1c2UgR05VIExpYnRvb2wuCisrCisrICAgVGhl IHNlY29uZCBtZXRob2QgaW52b2x2ZXMgcHJvdmlkaW5nIHRoZSBgREVTVERJUicgdmFyaWFibGUu ICBGb3IKKytleGFtcGxlLCBgbWFrZSBpbnN0YWxsIERFU1RESVI9L2FsdGVybmF0ZS9kaXJlY3Rv cnknIHdpbGwgcHJlcGVuZAorK2AvYWx0ZXJuYXRlL2RpcmVjdG9yeScgYmVmb3JlIGFsbCBpbnN0 YWxsYXRpb24gbmFtZXMuICBUaGUgYXBwcm9hY2ggb2YKKytgREVTVERJUicgb3ZlcnJpZGVzIGlz IG5vdCByZXF1aXJlZCBieSB0aGUgR05VIENvZGluZyBTdGFuZGFyZHMsIGFuZAorK2RvZXMgbm90 IHdvcmsgb24gcGxhdGZvcm1zIHRoYXQgaGF2ZSBkcml2ZSBsZXR0ZXJzLiAgT24gdGhlIG90aGVy IGhhbmQsCisraXQgZG9lcyBiZXR0ZXIgYXQgYXZvaWRpbmcgcmVjb21waWxhdGlvbiBpc3N1ZXMs IGFuZCB3b3JrcyB3ZWxsIGV2ZW4KKyt3aGVuIHNvbWUgZGlyZWN0b3J5IG9wdGlvbnMgd2VyZSBu b3Qgc3BlY2lmaWVkIGluIHRlcm1zIG9mIGAke3ByZWZpeH0nCisrYXQgYGNvbmZpZ3VyZScgdGlt ZS4KKysKKytPcHRpb25hbCBGZWF0dXJlcworKz09PT09PT09PT09PT09PT09CisrCisrICAgSWYg dGhlIHBhY2thZ2Ugc3VwcG9ydHMgaXQsIHlvdSBjYW4gY2F1c2UgcHJvZ3JhbXMgdG8gYmUgaW5z dGFsbGVkCisrd2l0aCBhbiBleHRyYSBwcmVmaXggb3Igc3VmZml4IG9uIHRoZWlyIG5hbWVzIGJ5 IGdpdmluZyBgY29uZmlndXJlJyB0aGUKKytvcHRpb24gYC0tcHJvZ3JhbS1wcmVmaXg9UFJFRklY JyBvciBgLS1wcm9ncmFtLXN1ZmZpeD1TVUZGSVgnLgorKworKyAgIFNvbWUgcGFja2FnZXMgcGF5 IGF0dGVudGlvbiB0byBgLS1lbmFibGUtRkVBVFVSRScgb3B0aW9ucyB0bworK2Bjb25maWd1cmUn LCB3aGVyZSBGRUFUVVJFIGluZGljYXRlcyBhbiBvcHRpb25hbCBwYXJ0IG9mIHRoZSBwYWNrYWdl LgorK1RoZXkgbWF5IGFsc28gcGF5IGF0dGVudGlvbiB0byBgLS13aXRoLVBBQ0tBR0UnIG9wdGlv bnMsIHdoZXJlIFBBQ0tBR0UKKytpcyBzb21ldGhpbmcgbGlrZSBgZ251LWFzJyBvciBgeCcgKGZv ciB0aGUgWCBXaW5kb3cgU3lzdGVtKS4gIFRoZQorK2BSRUFETUUnIHNob3VsZCBtZW50aW9uIGFu eSBgLS1lbmFibGUtJyBhbmQgYC0td2l0aC0nIG9wdGlvbnMgdGhhdCB0aGUKKytwYWNrYWdlIHJl Y29nbml6ZXMuCisrCisrICAgRm9yIHBhY2thZ2VzIHRoYXQgdXNlIHRoZSBYIFdpbmRvdyBTeXN0 ZW0sIGBjb25maWd1cmUnIGNhbiB1c3VhbGx5CisrZmluZCB0aGUgWCBpbmNsdWRlIGFuZCBsaWJy YXJ5IGZpbGVzIGF1dG9tYXRpY2FsbHksIGJ1dCBpZiBpdCBkb2Vzbid0LAorK3lvdSBjYW4gdXNl IHRoZSBgY29uZmlndXJlJyBvcHRpb25zIGAtLXgtaW5jbHVkZXM9RElSJyBhbmQKKytgLS14LWxp YnJhcmllcz1ESVInIHRvIHNwZWNpZnkgdGhlaXIgbG9jYXRpb25zLgorKworKyAgIFNvbWUgcGFj a2FnZXMgb2ZmZXIgdGhlIGFiaWxpdHkgdG8gY29uZmlndXJlIGhvdyB2ZXJib3NlIHRoZQorK2V4 ZWN1dGlvbiBvZiBgbWFrZScgd2lsbCBiZS4gIEZvciB0aGVzZSBwYWNrYWdlcywgcnVubmluZyBg Li9jb25maWd1cmUKKystLWVuYWJsZS1zaWxlbnQtcnVsZXMnIHNldHMgdGhlIGRlZmF1bHQgdG8g bWluaW1hbCBvdXRwdXQsIHdoaWNoIGNhbiBiZQorK292ZXJyaWRkZW4gd2l0aCBgbWFrZSBWPTEn OyB3aGlsZSBydW5uaW5nIGAuL2NvbmZpZ3VyZQorKy0tZGlzYWJsZS1zaWxlbnQtcnVsZXMnIHNl dHMgdGhlIGRlZmF1bHQgdG8gdmVyYm9zZSwgd2hpY2ggY2FuIGJlCisrb3ZlcnJpZGRlbiB3aXRo IGBtYWtlIFY9MCcuCisrCisrUGFydGljdWxhciBzeXN0ZW1zCisrPT09PT09PT09PT09PT09PT09 CisrCisrICAgT24gSFAtVVgsIHRoZSBkZWZhdWx0IEMgY29tcGlsZXIgaXMgbm90IEFOU0kgQyBj b21wYXRpYmxlLiAgSWYgR05VCisrQ0MgaXMgbm90IGluc3RhbGxlZCwgaXQgaXMgcmVjb21tZW5k ZWQgdG8gdXNlIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyBpbgorK29yZGVyIHRvIHVzZSBhbiBBTlNJ IEMgY29tcGlsZXI6CisrCisrICAgICAuL2NvbmZpZ3VyZSBDQz0iY2MgLUFlIC1EX1hPUEVOX1NP VVJDRT01MDAiCisrCisrYW5kIGlmIHRoYXQgZG9lc24ndCB3b3JrLCBpbnN0YWxsIHByZS1idWls dCBiaW5hcmllcyBvZiBHQ0MgZm9yIEhQLVVYLgorKworKyAgIE9uIE9TRi8xIGEuay5hLiBUcnU2 NCwgc29tZSB2ZXJzaW9ucyBvZiB0aGUgZGVmYXVsdCBDIGNvbXBpbGVyIGNhbm5vdAorK3BhcnNl IGl0cyBgPHdjaGFyLmg+JyBoZWFkZXIgZmlsZS4gIFRoZSBvcHRpb24gYC1ub2R0aycgY2FuIGJl IHVzZWQgYXMKKythIHdvcmthcm91bmQuICBJZiBHTlUgQ0MgaXMgbm90IGluc3RhbGxlZCwgaXQg aXMgdGhlcmVmb3JlIHJlY29tbWVuZGVkCisrdG8gdHJ5CisrCisrICAgICAuL2NvbmZpZ3VyZSBD Qz0iY2MiCisrCisrYW5kIGlmIHRoYXQgZG9lc24ndCB3b3JrLCB0cnkKKysKKysgICAgIC4vY29u ZmlndXJlIENDPSJjYyAtbm9kdGsiCisrCisrICAgT24gU29sYXJpcywgZG9uJ3QgcHV0IGAvdXNy L3VjYicgZWFybHkgaW4geW91ciBgUEFUSCcuICBUaGlzCisrZGlyZWN0b3J5IGNvbnRhaW5zIHNl dmVyYWwgZHlzZnVuY3Rpb25hbCBwcm9ncmFtczsgd29ya2luZyB2YXJpYW50cyBvZgorK3RoZXNl IHByb2dyYW1zIGFyZSBhdmFpbGFibGUgaW4gYC91c3IvYmluJy4gIFNvLCBpZiB5b3UgbmVlZCBg L3Vzci91Y2InCisraW4geW91ciBgUEFUSCcsIHB1dCBpdCBfYWZ0ZXJfIGAvdXNyL2JpbicuCisr CisrICAgT24gSGFpa3UsIHNvZnR3YXJlIGluc3RhbGxlZCBmb3IgYWxsIHVzZXJzIGdvZXMgaW4g YC9ib290L2NvbW1vbicsCisrbm90IGAvdXNyL2xvY2FsJy4gIEl0IGlzIHJlY29tbWVuZGVkIHRv IHVzZSB0aGUgZm9sbG93aW5nIG9wdGlvbnM6CisrCisrICAgICAuL2NvbmZpZ3VyZSAtLXByZWZp eD0vYm9vdC9jb21tb24KKysKKytTcGVjaWZ5aW5nIHRoZSBTeXN0ZW0gVHlwZQorKz09PT09PT09 PT09PT09PT09PT09PT09PT09CisrCisrICAgVGhlcmUgbWF5IGJlIHNvbWUgZmVhdHVyZXMgYGNv bmZpZ3VyZScgY2Fubm90IGZpZ3VyZSBvdXQKKythdXRvbWF0aWNhbGx5LCBidXQgbmVlZHMgdG8g ZGV0ZXJtaW5lIGJ5IHRoZSB0eXBlIG9mIG1hY2hpbmUgdGhlIHBhY2thZ2UKKyt3aWxsIHJ1biBv bi4gIFVzdWFsbHksIGFzc3VtaW5nIHRoZSBwYWNrYWdlIGlzIGJ1aWx0IHRvIGJlIHJ1biBvbiB0 aGUKKytfc2FtZV8gYXJjaGl0ZWN0dXJlcywgYGNvbmZpZ3VyZScgY2FuIGZpZ3VyZSB0aGF0IG91 dCwgYnV0IGlmIGl0IHByaW50cworK2EgbWVzc2FnZSBzYXlpbmcgaXQgY2Fubm90IGd1ZXNzIHRo ZSBtYWNoaW5lIHR5cGUsIGdpdmUgaXQgdGhlCisrYC0tYnVpbGQ9VFlQRScgb3B0aW9uLiAgVFlQ RSBjYW4gZWl0aGVyIGJlIGEgc2hvcnQgbmFtZSBmb3IgdGhlIHN5c3RlbQorK3R5cGUsIHN1Y2gg YXMgYHN1bjQnLCBvciBhIGNhbm9uaWNhbCBuYW1lIHdoaWNoIGhhcyB0aGUgZm9ybToKKysKKysg ICAgIENQVS1DT01QQU5ZLVNZU1RFTQorKworK3doZXJlIFNZU1RFTSBjYW4gaGF2ZSBvbmUgb2Yg dGhlc2UgZm9ybXM6CisrCisrICAgICBPUworKyAgICAgS0VSTkVMLU9TCisrCisrICAgU2VlIHRo ZSBmaWxlIGBjb25maWcuc3ViJyBmb3IgdGhlIHBvc3NpYmxlIHZhbHVlcyBvZiBlYWNoIGZpZWxk LiAgSWYKKytgY29uZmlnLnN1YicgaXNuJ3QgaW5jbHVkZWQgaW4gdGhpcyBwYWNrYWdlLCB0aGVu IHRoaXMgcGFja2FnZSBkb2Vzbid0CisrbmVlZCB0byBrbm93IHRoZSBtYWNoaW5lIHR5cGUuCisr CisrICAgSWYgeW91IGFyZSBfYnVpbGRpbmdfIGNvbXBpbGVyIHRvb2xzIGZvciBjcm9zcy1jb21w aWxpbmcsIHlvdSBzaG91bGQKKyt1c2UgdGhlIG9wdGlvbiBgLS10YXJnZXQ9VFlQRScgdG8gc2Vs ZWN0IHRoZSB0eXBlIG9mIHN5c3RlbSB0aGV5IHdpbGwKKytwcm9kdWNlIGNvZGUgZm9yLgorKwor KyAgIElmIHlvdSB3YW50IHRvIF91c2VfIGEgY3Jvc3MgY29tcGlsZXIsIHRoYXQgZ2VuZXJhdGVz IGNvZGUgZm9yIGEKKytwbGF0Zm9ybSBkaWZmZXJlbnQgZnJvbSB0aGUgYnVpbGQgcGxhdGZvcm0s IHlvdSBzaG91bGQgc3BlY2lmeSB0aGUKKysiaG9zdCIgcGxhdGZvcm0gKGkuZS4sIHRoYXQgb24g d2hpY2ggdGhlIGdlbmVyYXRlZCBwcm9ncmFtcyB3aWxsCisrZXZlbnR1YWxseSBiZSBydW4pIHdp dGggYC0taG9zdD1UWVBFJy4KKysKKytTaGFyaW5nIERlZmF1bHRzCisrPT09PT09PT09PT09PT09 PQorKworKyAgIElmIHlvdSB3YW50IHRvIHNldCBkZWZhdWx0IHZhbHVlcyBmb3IgYGNvbmZpZ3Vy ZScgc2NyaXB0cyB0byBzaGFyZSwKKyt5b3UgY2FuIGNyZWF0ZSBhIHNpdGUgc2hlbGwgc2NyaXB0 IGNhbGxlZCBgY29uZmlnLnNpdGUnIHRoYXQgZ2l2ZXMKKytkZWZhdWx0IHZhbHVlcyBmb3IgdmFy aWFibGVzIGxpa2UgYENDJywgYGNhY2hlX2ZpbGUnLCBhbmQgYHByZWZpeCcuCisrYGNvbmZpZ3Vy ZScgbG9va3MgZm9yIGBQUkVGSVgvc2hhcmUvY29uZmlnLnNpdGUnIGlmIGl0IGV4aXN0cywgdGhl bgorK2BQUkVGSVgvZXRjL2NvbmZpZy5zaXRlJyBpZiBpdCBleGlzdHMuICBPciwgeW91IGNhbiBz ZXQgdGhlCisrYENPTkZJR19TSVRFJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byB0aGUgbG9jYXRp b24gb2YgdGhlIHNpdGUgc2NyaXB0LgorK0Egd2FybmluZzogbm90IGFsbCBgY29uZmlndXJlJyBz Y3JpcHRzIGxvb2sgZm9yIGEgc2l0ZSBzY3JpcHQuCisrCisrRGVmaW5pbmcgVmFyaWFibGVzCisr PT09PT09PT09PT09PT09PT09CisrCisrICAgVmFyaWFibGVzIG5vdCBkZWZpbmVkIGluIGEgc2l0 ZSBzaGVsbCBzY3JpcHQgY2FuIGJlIHNldCBpbiB0aGUKKytlbnZpcm9ubWVudCBwYXNzZWQgdG8g YGNvbmZpZ3VyZScuICBIb3dldmVyLCBzb21lIHBhY2thZ2VzIG1heSBydW4KKytjb25maWd1cmUg YWdhaW4gZHVyaW5nIHRoZSBidWlsZCwgYW5kIHRoZSBjdXN0b21pemVkIHZhbHVlcyBvZiB0aGVz ZQorK3ZhcmlhYmxlcyBtYXkgYmUgbG9zdC4gIEluIG9yZGVyIHRvIGF2b2lkIHRoaXMgcHJvYmxl bSwgeW91IHNob3VsZCBzZXQKKyt0aGVtIGluIHRoZSBgY29uZmlndXJlJyBjb21tYW5kIGxpbmUs IHVzaW5nIGBWQVI9dmFsdWUnLiAgRm9yIGV4YW1wbGU6CisrCisrICAgICAuL2NvbmZpZ3VyZSBD Qz0vdXNyL2xvY2FsMi9iaW4vZ2NjCisrCisrY2F1c2VzIHRoZSBzcGVjaWZpZWQgYGdjYycgdG8g YmUgdXNlZCBhcyB0aGUgQyBjb21waWxlciAodW5sZXNzIGl0IGlzCisrb3ZlcnJpZGRlbiBpbiB0 aGUgc2l0ZSBzaGVsbCBzY3JpcHQpLgorKworK1VuZm9ydHVuYXRlbHksIHRoaXMgdGVjaG5pcXVl IGRvZXMgbm90IHdvcmsgZm9yIGBDT05GSUdfU0hFTEwnIGR1ZSB0bworK2FuIEF1dG9jb25mIGJ1 Zy4gIFVudGlsIHRoZSBidWcgaXMgZml4ZWQgeW91IGNhbiB1c2UgdGhpcyB3b3JrYXJvdW5kOgor KworKyAgICAgQ09ORklHX1NIRUxMPS9iaW4vYmFzaCAvYmluL2Jhc2ggLi9jb25maWd1cmUgQ09O RklHX1NIRUxMPS9iaW4vYmFzaAorKworK2Bjb25maWd1cmUnIEludm9jYXRpb24KKys9PT09PT09 PT09PT09PT09PT09PT09CisrCisrICAgYGNvbmZpZ3VyZScgcmVjb2duaXplcyB0aGUgZm9sbG93 aW5nIG9wdGlvbnMgdG8gY29udHJvbCBob3cgaXQKKytvcGVyYXRlcy4KKysKKytgLS1oZWxwJwor K2AtaCcKKysgICAgIFByaW50IGEgc3VtbWFyeSBvZiBhbGwgb2YgdGhlIG9wdGlvbnMgdG8gYGNv bmZpZ3VyZScsIGFuZCBleGl0LgorKworK2AtLWhlbHA9c2hvcnQnCisrYC0taGVscD1yZWN1cnNp dmUnCisrICAgICBQcmludCBhIHN1bW1hcnkgb2YgdGhlIG9wdGlvbnMgdW5pcXVlIHRvIHRoaXMg cGFja2FnZSdzCisrICAgICBgY29uZmlndXJlJywgYW5kIGV4aXQuICBUaGUgYHNob3J0JyB2YXJp YW50IGxpc3RzIG9wdGlvbnMgdXNlZAorKyAgICAgb25seSBpbiB0aGUgdG9wIGxldmVsLCB3aGls ZSB0aGUgYHJlY3Vyc2l2ZScgdmFyaWFudCBsaXN0cyBvcHRpb25zCisrICAgICBhbHNvIHByZXNl bnQgaW4gYW55IG5lc3RlZCBwYWNrYWdlcy4KKysKKytgLS12ZXJzaW9uJworK2AtVicKKysgICAg IFByaW50IHRoZSB2ZXJzaW9uIG9mIEF1dG9jb25mIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGBjb25m aWd1cmUnCisrICAgICBzY3JpcHQsIGFuZCBleGl0LgorKworK2AtLWNhY2hlLWZpbGU9RklMRScK KysgICAgIEVuYWJsZSB0aGUgY2FjaGU6IHVzZSBhbmQgc2F2ZSB0aGUgcmVzdWx0cyBvZiB0aGUg dGVzdHMgaW4gRklMRSwKKysgICAgIHRyYWRpdGlvbmFsbHkgYGNvbmZpZy5jYWNoZScuICBGSUxF IGRlZmF1bHRzIHRvIGAvZGV2L251bGwnIHRvCisrICAgICBkaXNhYmxlIGNhY2hpbmcuCisrCisr YC0tY29uZmlnLWNhY2hlJworK2AtQycKKysgICAgIEFsaWFzIGZvciBgLS1jYWNoZS1maWxlPWNv bmZpZy5jYWNoZScuCisrCisrYC0tcXVpZXQnCisrYC0tc2lsZW50JworK2AtcScKKysgICAgIERv IG5vdCBwcmludCBtZXNzYWdlcyBzYXlpbmcgd2hpY2ggY2hlY2tzIGFyZSBiZWluZyBtYWRlLiAg VG8KKysgICAgIHN1cHByZXNzIGFsbCBub3JtYWwgb3V0cHV0LCByZWRpcmVjdCBpdCB0byBgL2Rl di9udWxsJyAoYW55IGVycm9yCisrICAgICBtZXNzYWdlcyB3aWxsIHN0aWxsIGJlIHNob3duKS4K KysKKytgLS1zcmNkaXI9RElSJworKyAgICAgTG9vayBmb3IgdGhlIHBhY2thZ2UncyBzb3VyY2Ug Y29kZSBpbiBkaXJlY3RvcnkgRElSLiAgVXN1YWxseQorKyAgICAgYGNvbmZpZ3VyZScgY2FuIGRl dGVybWluZSB0aGF0IGRpcmVjdG9yeSBhdXRvbWF0aWNhbGx5LgorKworK2AtLXByZWZpeD1ESVIn CisrICAgICBVc2UgRElSIGFzIHRoZSBpbnN0YWxsYXRpb24gcHJlZml4LiAgKm5vdGUgSW5zdGFs bGF0aW9uIE5hbWVzOjoKKysgICAgIGZvciBtb3JlIGRldGFpbHMsIGluY2x1ZGluZyBvdGhlciBv cHRpb25zIGF2YWlsYWJsZSBmb3IgZmluZS10dW5pbmcKKysgICAgIHRoZSBpbnN0YWxsYXRpb24g bG9jYXRpb25zLgorKworK2AtLW5vLWNyZWF0ZScKKytgLW4nCisrICAgICBSdW4gdGhlIGNvbmZp Z3VyZSBjaGVja3MsIGJ1dCBzdG9wIGJlZm9yZSBjcmVhdGluZyBhbnkgb3V0cHV0CisrICAgICBm aWxlcy4KKysKKytgY29uZmlndXJlJyBhbHNvIGFjY2VwdHMgc29tZSBvdGhlciwgbm90IHdpZGVs eSB1c2VmdWwsIG9wdGlvbnMuICBSdW4KKytgY29uZmlndXJlIC0taGVscCcgZm9yIG1vcmUgZGV0 YWlscy4KKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9ORVdTIHNvY2ktMy4wLjBfdHJl cDMwMC9ORVdTCistLS0gc29jaS0zLjAuMF80LXBhY2svTkVXUwkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9ORVdTCTIwMDktMDQtMTYg MTk6Mzc6MTAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDMgQEAKKysKKysqIFdlZCBNYXIg MjYgMjAwOSBSUE0gcmVsZWFzZSBmb3IgdmVyc2lvbiAzLjAuMAorKwoKZGlmZiAtLWdpdCBhL3Nv Y2ktMy4wLjAtYnVyaWVkLWhlYWRlcnMucGF0Y2ggYi9zb2NpLTMuMC4wLWJ1cmllZC1oZWFkZXJz LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1N2Y4YmMKLS0tIC9k ZXYvbnVsbAorKysgYi9zb2NpLTMuMC4wLWJ1cmllZC1oZWFkZXJzLnBhdGNoCkBAIC0wLDAgKzEs NTM2IEBACitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9j b21tb24uY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5j cHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAJ MjAxMS0wMi0wOCAyMzo1MzoyNi42Mjk4ODAxMjMgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAw MDAwMDAwICswMjAwCitAQCAtNiw3ICs2LDEzIEBACisgLy8KKyAKKyAjaW5jbHVkZSAiY29tbW9u LmgiCistI2luY2x1ZGUgInNvY2ktYmFja2VuZC5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9I RUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQu aD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+CisrI2VuZGlmCisrLy8KKyAj aW5jbHVkZSA8Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8Y3N0ZGxpYj4KKyAjaW5jbHVkZSA8Y3RpbWU+ CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15 c3FsLmggc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5o CistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgJ MjAxMS0wMi0wOCAyMzo1MzoyNi42NjM4ODA3NzAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgJMjAxMS0wMi0wOCAyMjoyOTo1NC4w MDAwMDAwMDAgKzAxMDAKK0BAIC0yMywxMiArMjMsMjMgQEAKKyAjaWZuZGVmIFNPQ0lfTVlTUUxf REVDTAorICMgZGVmaW5lIFNPQ0lfTVlTUUxfREVDTAorICNlbmRpZgorLQorLSNpbmNsdWRlICJz b2NpLWJhY2tlbmQuaCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisr IyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+CisrI2Vsc2UKKysjCWlu Y2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorKyNlbmRpZgorKy8vCisgI2lmZGVmIF9XSU4zMgorICNp bmNsdWRlIDx3aW5zb2NrLmg+IC8vIFNPQ0tFVAorICNlbmRpZiAvLyBfV0lOMzIKKy0jaW5jbHVk ZSA8bXlzcWwuaD4gLy8gTXlTUUwgQ2xpZW50CisrLy8KKysvLyBNeVNRTCBDbGllbnQKKysjaWYg ZGVmaW5lZChTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8bXlz cWwvbXlzcWwuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8bXlzcWwuaD4KKysjZW5kaWYKKyAjaW5j bHVkZSA8dmVjdG9yPgorIAorIAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMTEtMDIt MDggMjM6NTM6MjYuNjY1ODgwODA3ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2 LjAwMDAwMDAwMCArMDIwMAorQEAgLTgsOCArOCwxNCBAQAorIAorICNkZWZpbmUgU09DSV9NWVNR TF9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1teXNxbC5oIgorLSNpbmNsdWRlIDxzb2NpLXBsYXRm b3JtLmg+CisgI2luY2x1ZGUgImNvbW1vbi5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFE RVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmg+ CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KKysjZW5kaWYKKysvLworICNp bmNsdWRlIDxjaXNvNjQ2PgorICNpbmNsdWRlIDxjYXNzZXJ0PgorICNpbmNsdWRlIDxjdGltZT4K K2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJk LXVzZS10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFu ZGFyZC11c2UtdHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215 c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDExLTAyLTA4IDIzOjUzOjI2LjY2Njg4MDgyNiAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJk LXVzZS10eXBlLmNwcAkyMDA5LTA1LTA1IDIyOjI1OjQwLjAwMDAwMDAwMCArMDIwMAorQEAgLTks NyArOSwxMiBAQAorICNkZWZpbmUgU09DSV9NWVNRTF9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1t eXNxbC5oIgorICNpbmNsdWRlICJjb21tb24uaCIKKy0jaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5o PgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1 ZGUgPHNvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2kt cGxhdGZvcm0uaD4KKysjZW5kaWYKKyAvLworICNpbmNsdWRlIDxjaXNvNjQ2PgorICNpbmNsdWRl IDxsaW1pdHM+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNx bC90ZXN0L3Rlc3QtbXlzcWwuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAJMjAxMS0wMi0wOCAyMzo1MzoyNi42Mjk4ODAx MjMgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0 L3Rlc3QtbXlzcWwuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAt Niw5ICs2LDE3IEBACisgLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQor IC8vCisgCistI2luY2x1ZGUgInNvY2kuaCIKKy0jaW5jbHVkZSAic29jaS1teXNxbC5oIgorLSNp bmNsdWRlICJ0ZXN0L2NvbW1vbi10ZXN0cy5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFE RVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLmg+CisrIyAgICAg ICBpbmNsdWRlIDxzb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaD4KKysjICAgICAgIGlu Y2x1ZGUgPHNvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oPgorKyNlbHNlCisrIwlpbmNsdWRl IDxzb2NpLmg+CisrIwlpbmNsdWRlIDxzb2NpLW15c3FsLmg+CisrIyAgICAgICBpbmNsdWRlIDx0 ZXN0L2NvbW1vbi10ZXN0cy5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGlvc3RyZWFtPgor ICNpbmNsdWRlIDxzc3RyZWFtPgorICNpbmNsdWRlIDxzdHJpbmc+CitAQCAtMTgsOCArMjYsMTQg QEAKKyAjaW5jbHVkZSA8Y3RpbWU+CisgI2luY2x1ZGUgPGNpc282NDY+CisgI2luY2x1ZGUgPGNz dGRsaWI+CistI2luY2x1ZGUgPG15c3FsZF9lcnJvci5oPgorLSNpbmNsdWRlIDxlcnJtc2cuaD4K KysvLyBNeVNRTCBDbGllbnQKKysjaWYgZGVmaW5lZChTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVE KQorKyMgICAgICAgaW5jbHVkZSA8bXlzcWwvbXlzcWxkX2Vycm9yLmg+CisrIyAgICAgICBpbmNs dWRlIDxteXNxbC9lcnJtc2cuaD4KKysjZWxzZQorKyMgICAgICAgaW5jbHVkZSA8bXlzcWxkX2Vy cm9yLmg+CisrIyAgICAgICBpbmNsdWRlIDxlcnJtc2cuaD4KKysjZW5kaWYKKyAKKyB1c2luZyBu YW1lc3BhY2Ugc29jaTsKKyB1c2luZyBuYW1lc3BhY2Ugc29jaTo6dGVzdHM7CitkaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNw cCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBl LmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWlu dG8tdHlwZS5jcHAJMjAxMS0wMi0wOCAyMzo1MzoyNi42MzA4ODAxNDIgKzAxMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAky MDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTksNyArOSwxMyBAQAorICNk ZWZpbmUgU09DSV9NWVNRTF9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1teXNxbC5oIgorICNpbmNs dWRlICJjb21tb24uaCIKKy0jaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgorKy8vCisrI2lmIGRl ZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9z b2NpLXBsYXRmb3JtLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KKysj ZW5kaWYKKysvLworICNpbmNsdWRlIDxjaXNvNjQ2PgorIAorICNpZmRlZiBfTVNDX1ZFUgorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10 eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNl LXR5cGUuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0 b3ItdXNlLXR5cGUuY3BwCTIwMTEtMDItMDggMjM6NTM6MjYuNjY2ODgwODI2ICswMTAwCisrKysg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNw cAkyMDA5LTA1LTA1IDIyOjIzOjI5LjAwMDAwMDAwMCArMDIwMAorQEAgLTksNyArOSwxMiBAQAor ICNkZWZpbmUgU09DSV9NWVNRTF9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1teXNxbC5oIgorICNp bmNsdWRlICJjb21tb24uaCIKKy0jaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgorKy8vCisrI2lm IGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29y ZS9zb2NpLXBsYXRmb3JtLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4K KysjZW5kaWYKKyAvLworICNpbmNsdWRlIDxjaXNvNjQ2PgorICNpbmNsdWRlIDxsaW1pdHM+Citk aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwCistLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAJMjAxMS0wMi0wOCAy Mzo1MzoyNi42Mjg4ODAxMDUgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9vcmFjbGUvYmxvYi5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAK K0BAIC03LDcgKzcsMTMgQEAKKyAKKyAjaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKKyAjaW5jbHVk ZSAiZXJyb3IuaCIKKy0jaW5jbHVkZSAic3RhdGVtZW50LmgiCisrLy8KKysjaWYgZGVmaW5lZChT T0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3N0YXRlbWVu dC5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzdGF0ZW1lbnQuaD4KKysjZW5kaWYKKysvLworICNp bmNsdWRlIDxjc3RyaW5nPgorICNpbmNsdWRlIDxzc3RyZWFtPgorICNpbmNsdWRlIDxjc3RkaW8+ CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1v cmFjbGUuaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFj bGUuaAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3Jh Y2xlLmgJMjAxMS0wMi0wOCAyMzo1MzoyNi42NzE4ODA5MjIgKzAxMDAKKysrKyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAkyMDExLTAyLTA4IDIy OjI5OjU0LjAwMDAwMDAwMCArMDEwMAorQEAgLTIyLDkgKzIyLDE0IEBACisgI2lmbmRlZiBTT0NJ X09SQUNMRV9ERUNMCisgIyBkZWZpbmUgU09DSV9PUkFDTEVfREVDTAorICNlbmRpZgorLQorLSNp bmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKy0jaW5jbHVkZSA8b2NpLmg+IC8vIE9DSQorKy8vCisr I2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kv Y29yZS9zb2NpLWJhY2tlbmQuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+ CisrI2VuZGlmCisrLy8KKysjaW5jbHVkZSA8b2NpLmg+IC8vIE9DSSAoT3JhY2xlIGNsaWVudCkK KyAjaW5jbHVkZSA8dmVjdG9yPgorIAorICNpZmRlZiBfTVNDX1ZFUgorZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlw ZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFy ZC1pbnRvLXR5cGUuY3BwCTIwMTEtMDItMDggMjM6NTM6MjYuNjI4ODgwMTA1ICswMTAwCisrKysg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlw ZS5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC03LDEwICs3LDE4 IEBACisgCisgI2RlZmluZSBTT0NJX09SQUNMRV9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1vcmFj bGUuaCIKKy0jaW5jbHVkZSAiYmxvYi5oIgorICNpbmNsdWRlICJlcnJvci5oIgorLSNpbmNsdWRl ICJyb3dpZC5oIgorLSNpbmNsdWRlICJzdGF0ZW1lbnQuaCIKKysvLworKyNpZiBkZWZpbmVkKFNP Q0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYmxvYi5oPgor KyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Jvd2lkLmg+CisrIyAgICAgICBpbmNsdWRlIDxz b2NpL2NvcmUvc3RhdGVtZW50Lmg+CisrI2Vsc2UKKysjICAgICAgIGluY2x1ZGUgPGJsb2IuaD4K KysjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+CisrIyAgICAgICBpbmNsdWRlIDxzdGF0ZW1lbnQu aD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxjY3R5cGU+CisgI2luY2x1ZGUgPGNzdGRpbz4K KyAjaW5jbHVkZSA8Y3N0cmluZz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDExLTAy LTA4IDIzOjUzOjI2LjYyODg4MDEwNSArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNC0xNiAxOTozNzow Ni4wMDAwMDAwMDAgKzAyMDAKK0BAIC03LDEwICs3LDE4IEBACisgCisgI2RlZmluZSBzb2NpX09S QUNMRV9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKKy0jaW5jbHVkZSAiYmxvYi5o IgorICNpbmNsdWRlICJlcnJvci5oIgorLSNpbmNsdWRlICJyb3dpZC5oIgorLSNpbmNsdWRlICJz dGF0ZW1lbnQuaCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAg ICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYmxvYi5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9j b3JlL3Jvd2lkLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc3RhdGVtZW50Lmg+Cisr I2Vsc2UKKysjICAgICAgIGluY2x1ZGUgPGJsb2IuaD4KKysjICAgICAgIGluY2x1ZGUgPHJvd2lk Lmg+CisrIyAgICAgICBpbmNsdWRlIDxzdGF0ZW1lbnQuaD4KKysjZW5kaWYKKysvLworICNpbmNs dWRlIDxjY3R5cGU+CisgI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KK2Rp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQu Y3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3Bw CistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNw cAkyMDExLTAyLTA4IDIzOjUzOjI2LjYyNzg4MDA4NiArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCTIwMDktMDQtMTYgMTk6Mzc6 MDYuMDAwMDAwMDAwICswMjAwCitAQCAtOSw3ICs5LDEzIEBACisgCisgI2luY2x1ZGUgInNvY2kt b3JhY2xlLmgiCisgI2luY2x1ZGUgImVycm9yLmgiCistI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5o PgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1 ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1i YWNrZW5kLmg+CisrI2VuZGlmCisrLy8KKyAjaW5jbHVkZSA8Y2N0eXBlPgorICNpbmNsdWRlIDxj c3RkaW8+CisgI2luY2x1ZGUgPGNzdHJpbmc+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCistLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAJMjAx MS0wMi0wOCAyMzo1MzoyNi42Mjc4ODAwODYgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAJMjAwOS0wNC0xNiAxOToz NzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC01LDkgKzUsMTcgQEAKKyAvLyBodHRwOi8vd3d3LmJv b3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisgLy8KKyAKKy0jaW5jbHVkZSAic29jaS5oIgorLSNp bmNsdWRlICJzb2NpLW9yYWNsZS5oIgorLSNpbmNsdWRlICJjb21tb24tdGVzdHMuaCIKKysvLwor KyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2Np L2NvcmUvc29jaS5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9iYWNrZW5kcy9vcmFjbGUvc29j aS1vcmFjbGUuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0 cy5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLmg+CisrIwlpbmNsdWRlIDxzb2NpLW9yYWNs ZS5oPgorKyMgICAgICAgaW5jbHVkZSA8dGVzdC9jb21tb24tdGVzdHMuaD4KKysjZW5kaWYKKysv LworICNpbmNsdWRlIDxpb3N0cmVhbT4KKyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDxj YXNzZXJ0PgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xl L3ZlY3Rvci1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29y YWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMTEtMDItMDggMjM6NTM6MjYuNjI4 ODgwMTA1ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xl L3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAw CitAQCAtNyw4ICs3LDE0IEBACisgCisgI2RlZmluZSBzb2NpX09SQUNMRV9TT1VSQ0UKKyAjaW5j bHVkZSAic29jaS1vcmFjbGUuaCIKKy0jaW5jbHVkZSAic3RhdGVtZW50LmgiCisgI2luY2x1ZGUg ImVycm9yLmgiCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAg ICAgaW5jbHVkZSA8c29jaS9jb3JlL3N0YXRlbWVudC5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxz dGF0ZW1lbnQuaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxjY3R5cGU+CisgI2luY2x1ZGUg PGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAkyMDExLTAyLTA4IDIzOjUzOjI2 LjY3Mzg4MDk1OSArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvY29tbW9uLmNwcAkyMDA5LTA1LTA1IDIyOjMwOjUyLjAwMDAwMDAwMCArMDIwMAor QEAgLTYsNyArNiwxMiBAQAorIC8vCisgCisgI2luY2x1ZGUgImNvbW1vbi5oIgorLSNpbmNsdWRl IDxzb2NpLWJhY2tlbmQuaD4KKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQp CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+CisrI2Vsc2UKKysj CWluY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorKyNlbmRpZgorIC8vCisgI2luY2x1ZGUgPGNzdGRs aWI+CisgI2luY2x1ZGUgPGNzdGRpbz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmggc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAkyMDEx LTAyLTA4IDIzOjUzOjI2LjY3NDg4MDk3OCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgJMjAxMS0wMi0wOCAyMjoy OTo1NC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0yMiw5ICsyMiwxNCBAQAorICNpZm5kZWYgU09DSV9Q T1NUR1JFU1FMX0RFQ0wKKyAjIGRlZmluZSBTT0NJX1BPU1RHUkVTUUxfREVDTAorICNlbmRpZgor LQorLSNpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKy0jaW5jbHVkZSA8bGlicHEtZmUuaD4KKysv LworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxz b2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktYmFja2Vu ZC5oPgorKyNlbmRpZgorKy8vCisrI2luY2x1ZGUgPGxpYnBxLWZlLmg+IC8vIFBvc3RHcmVTUUwg Y2xpZW50CisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAKKyAjaWZkZWYgX01TQ19WRVIKK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50 by10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0 YW5kYXJkLWludG8tdHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDExLTAyLTA4IDIzOjUzOjI2LjYy Njg4MDA2NiArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAw MCArMDIwMAorQEAgLTgsOSArOCwxNiBAQAorICNkZWZpbmUgU09DSV9QT1NUR1JFU1FMX1NPVVJD RQorICNpbmNsdWRlICJzb2NpLXBvc3RncmVzcWwuaCIKKyAjaW5jbHVkZSAiY29tbW9uLmgiCist I2luY2x1ZGUgInJvd2lkLmgiCistI2luY2x1ZGUgImJsb2IuaCIKKy0jaW5jbHVkZSA8bGlicHEv bGlicHEtZnMuaD4gLy8gbGlicHEKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJ RUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYmxvYi5oPgorKyMgICAgICAgaW5jbHVk ZSA8c29jaS9jb3JlL3Jvd2lkLmg+CisrI2Vsc2UKKysjICAgICAgIGluY2x1ZGUgPGJsb2IuaD4K KysjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+CisrI2VuZGlmCisrLy8KKysjaW5jbHVkZSA8bGli cHEvbGlicHEtZnMuaD4gLy8gbGlicHEgKFBvc3RHcmVTUUwgY2xpZW50KQorICNpbmNsdWRlIDxj Y3R5cGU+CisgI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNl LXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3Rh bmRhcmQtdXNlLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDExLTAyLTA4IDIzOjUzOjI2LjYyNjg4 MDA2NiArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICsw MjAwCitAQCAtNyw4ICs3LDE0IEBACisgCisgI2RlZmluZSBTT0NJX1BPU1RHUkVTUUxfU09VUkNF CisgI2luY2x1ZGUgInNvY2ktcG9zdGdyZXNxbC5oIgorLSNpbmNsdWRlICJyb3dpZC5oIgorLSNp bmNsdWRlIDxsaWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcQorKy8vCisrI2lmIGRlZmluZWQoU09D SV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9yb3dpZC5oPgor KyNlbHNlCisrIyAgICAgICBpbmNsdWRlIDxyb3dpZC5oPgorKyNlbmRpZgorKy8vCisrI2luY2x1 ZGUgPGxpYnBxL2xpYnBxLWZzLmg+IC8vIGxpYnBxIChQb3N0R3JlU1FMIGNsaWVudCkKKyAjaW5j bHVkZSA8Y2N0eXBlPgorICNpbmNsdWRlIDxjc3RkaW8+CisgI2luY2x1ZGUgPGNzdHJpbmc+Citk aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qv dGVzdC1wb3N0Z3Jlc3FsLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAJMjAxMS0wMi0w OCAyMzo1MzoyNi42ODA4ODEwOTIgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAkyMDEwLTAxLTIzIDEz OjI1OjU3LjAwMDAwMDAwMCArMDEwMAorQEAgLTUsOSArNSwxNyBAQAorIC8vIGh0dHA6Ly93d3cu Ym9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyAvLworIAorLSNpbmNsdWRlICJzb2NpLmgiCist I2luY2x1ZGUgInNvY2ktcG9zdGdyZXNxbC5oIgorLSNpbmNsdWRlICJjb21tb24tdGVzdHMuaCIK KysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRl IDxzb2NpL2NvcmUvc29jaS5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Rl c3QvY29tbW9uLXRlc3RzLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2kuaD4KKysjCWluY2x1 ZGUgPHNvY2ktcG9zdGdyZXNxbC5oPgorKyMgICAgICAgaW5jbHVkZSA8dGVzdC9jb21tb24tdGVz dHMuaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxpb3N0cmVhbT4KKyAjaW5jbHVkZSA8c3N0 cmVhbT4KKyAjaW5jbHVkZSA8c3RyaW5nPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9i YWNrZW5kLWxvYWRlci5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvYmFja2Vu ZC1sb2FkZXIuY3BwCTIwMTEtMDItMDggMjM6NTM6MjYuNjE3ODc5ODk2ICswMTAwCisrKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAJMjAxMC0wMS0yMyAx MzoyNTo1Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xMSw2ICsxMSw5IEBACisgI2luY2x1ZGUgPG1h cD4KKyAjaW5jbHVkZSA8Y2Fzc2VydD4KKyAjaW5jbHVkZSA8Y3N0ZGxpYj4KKysjaWZuZGVmIF9N U0NfVkVSCisrI2luY2x1ZGUgPHN0ZGludC5oPgorKyNlbmRpZgorIAorIHVzaW5nIG5hbWVzcGFj ZSBzb2NpOworIHVzaW5nIG5hbWVzcGFjZSBzb2NpOjpkeW5hbWljX2JhY2tlbmRzOworZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmggc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmgKKy0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oCTIwMTEtMDItMDggMjM6NTM6MjYuNjIwODc5OTUz ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmgJ MjAxMC0wMS0yMyAxMzoyNTo1Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xMiw4ICsxMiwxMCBAQAor ICNpZmRlZiBfTVNDX1ZFUgorIAorIC8vIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdnNucHJpbnRm IHZhcmlhbnRzLgorLSNkZWZpbmUgSEFWRV9WU05QUklOVEYgMQorLSNkZWZpbmUgdnNucHJpbnRm IF92c25wcmludGYKKysjaWYgX01TQ19WRVIgPCAxNTAwCisrIyBkZWZpbmUgSEFWRV9WU05QUklO VEYgMQorKyMgZGVmaW5lIHZzbnByaW50ZiBfdnNucHJpbnRmCisrI2VuZGlmCisgCisgLy8gRGVm aW5lIGlmIHlvdSBoYXZlIHRoZSBzbnByaW50ZiB2YXJpYW50cy4KKyAjZGVmaW5lIEhBVkVfU05Q UklOVEYgMQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9zb2NpLXNpbXBs ZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAKKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwCTIwMTEtMDItMDggMjM6 NTM6MjYuNjc3ODgxMDM1ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9z b2NpLXNpbXBsZS5jcHAJMjAxMC0wMS0yMyAxMzoyNTo1Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC00 NzMsNyArNDczLDcgQEAKKyAvLyBoZWxwZXIgZm9yIGZvcm1hdHRpbmcgZGF0ZSB2YWx1ZXMKKyBj aGFyIGNvbnN0ICogZm9ybWF0X2RhdGUoc3RhdGVtZW50X3dyYXBwZXIgJiB3cmFwcGVyLCBzdGQ6 OnRtIGNvbnN0ICYgZCkKKyB7CistICAgIHNwcmludGYod3JhcHBlci5kYXRlX2Zvcm1hdHRlZCwg IiVkICVkICVkICVkICVkICVkIiwKKysgICAgc3RkOjpzcHJpbnRmKHdyYXBwZXIuZGF0ZV9mb3Jt YXR0ZWQsICIlZCAlZCAlZCAlZCAlZCAlZCIsCisgICAgICAgICBkLnRtX3llYXIgKyAxOTAwLCBk LnRtX21vbiArIDEsIGQudG1fbWRheSwKKyAgICAgICAgIGQudG1faG91ciwgZC50bV9taW4sIGQu dG1fc2VjKTsKKyAKK0BAIC00OTAsNyArNDkwLDcgQEAKKyAgICAgaW50IGhvdXI7CisgICAgIGlu dCBtaW51dGU7CisgICAgIGludCBzZWNvbmQ7CistICAgIGludCBjb25zdCBjb252ZXJ0ZWQgPSBz c2NhbmYodmFsLCAiJWQgJWQgJWQgJWQgJWQgJWQiLAorKyAgICBpbnQgY29uc3QgY29udmVydGVk ID0gc3RkOjpzc2NhbmYodmFsLCAiJWQgJWQgJWQgJWQgJWQgJWQiLAorICAgICAgICAgJnllYXIs ICZtb250aCwgJmRheSwgJmhvdXIsICZtaW51dGUsICZzZWNvbmQpOworICAgICBpZiAoY29udmVy dGVkICE9IDYpCisgICAgIHsKK0BAIC0xNTExLDcgKzE1MTEsNyBAQAorIAorICAgICAvLyBmb3Jt YXQgaXM6ICJZWVlZIE1NIEREIGhoIG1tIHNzIgorICAgICBzdGQ6OnRtIGNvbnN0ICYgZCA9IHdy YXBwZXItPnVzZV9kYXRlc1tuYW1lXTsKKy0gICAgc3ByaW50Zih3cmFwcGVyLT5kYXRlX2Zvcm1h dHRlZCwgIiVkICVkICVkICVkICVkICVkIiwKKysgICAgc3RkOjpzcHJpbnRmKHdyYXBwZXItPmRh dGVfZm9ybWF0dGVkLCAiJWQgJWQgJWQgJWQgJWQgJWQiLAorICAgICAgICAgZC50bV95ZWFyICsg MTkwMCwgZC50bV9tb24gKyAxLCBkLnRtX21kYXksCisgICAgICAgICBkLnRtX2hvdXIsIGQudG1f bWluLCBkLnRtX3NlYyk7CisgCitAQCAtMTUyOCwxMCArMTUyOCwxMCBAQAorIAorICAgICAgICAg Ly8gYmluZCBhbGwgaW50byBlbGVtZW50cworIAorLSAgICAgICAgc2l6ZV90IGNvbnN0IGludG9f ZWxlbWVudHMgPSB3cmFwcGVyLT5pbnRvX3R5cGVzLnNpemUoKTsKKysgICAgICAgIGludCBjb25z dCBpbnRvX2VsZW1lbnRzID0gc3RhdGljX2Nhc3Q8aW50Pih3cmFwcGVyLT5pbnRvX3R5cGVzLnNp emUoKSk7CisgICAgICAgICBpZiAod3JhcHBlci0+aW50b19raW5kID09IHN0YXRlbWVudF93cmFw cGVyOjpzaW5nbGUpCisgICAgICAgICB7CistICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7 IGkgIT0gaW50b19lbGVtZW50czsgKytpKQorKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBp ICE9IGludG9fZWxlbWVudHM7ICsraSkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg IHN3aXRjaCAod3JhcHBlci0+aW50b190eXBlc1tpXSkKKyAgICAgICAgICAgICAgICAgeworQEAg LTE1NjMsOCArMTU2Myw3IEBACisgICAgICAgICBlbHNlCisgICAgICAgICB7CisgICAgICAgICAg ICAgLy8gdmVjdG9yIGVsZW1lbnRzCistCistICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7 IGkgIT0gaW50b19lbGVtZW50czsgKytpKQorKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBp ICE9IGludG9fZWxlbWVudHM7ICsraSkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg IHN3aXRjaCAod3JhcHBlci0+aW50b190eXBlc1tpXSkKKyAgICAgICAgICAgICAgICAgeworZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAorLS0tIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oCTIwMTEtMDItMDggMjM6 NTM6MjYuNjE5ODc5OTM0ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90 ZXN0L2NvbW1vbi10ZXN0cy5oCTIwMDktMDUtMDYgMDA6MDI6MzYuMDAwMDAwMDAwICswMjAwCitA QCAtOCwxNiArOCwzMCBAQAorICNpZm5kZWYgU09DSV9DT01NT05fVEVTVFNfSF9JTkNMVURFRAor ICNkZWZpbmUgU09DSV9DT01NT05fVEVTVFNfSF9JTkNMVURFRAorIAorLSNpbmNsdWRlICJzb2Np LmgiCistI2luY2x1ZGUgInNvY2ktY29uZmlnLmgiCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hF QURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4KKysjICAg ICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWNvbmZpZy5oPgorKyMgICAgICAgaW5jbHVkZSA8 c29jaS9jb3JlL2Jvb3N0LW9wdGlvbmFsLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUv Ym9vc3QtdHVwbGUuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ib29zdC1ncmVnb3Jp YW4tZGF0ZS5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLmg+CisrIyAgICAgICBpbmNsdWRl IDxzb2NpLWNvbmZpZy5oPgorKyMgICAgICAgaW5jbHVkZSA8Ym9vc3Qtb3B0aW9uYWwuaD4KKysj ICAgICAgIGluY2x1ZGUgPGJvb3N0LXR1cGxlLmg+CisrIyAgICAgICBpbmNsdWRlIDxib29zdC1n cmVnb3JpYW4tZGF0ZS5oPgorKyNlbmRpZgorKy8vCisgCisgLy8gZXhwbGljaXRseSBwdWxsIGNv bnZlcnNpb25zIGZvciBCb29zdCdzIG9wdGlvbmFsLCB0dXBsZSBhbmQgZnVzaW9uOgorICNpbmNs dWRlIDxib29zdC92ZXJzaW9uLmhwcD4KKy0jaW5jbHVkZSA8Ym9vc3Qtb3B0aW9uYWwuaD4KKy0j aW5jbHVkZSA8Ym9vc3QtdHVwbGUuaD4KKy0jaW5jbHVkZSA8Ym9vc3QtZ3JlZ29yaWFuLWRhdGUu aD4KKyAjaWYgZGVmaW5lZChCT09TVF9WRVJTSU9OKSAmJiBCT09TVF9WRVJTSU9OID49IDEwMzUw MAorKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrI2luY2x1ZGUgPHNvY2kvY29y ZS9ib29zdC1mdXNpb24uaD4KKysjZWxzZQorICNpbmNsdWRlIDxib29zdC1mdXNpb24uaD4KKysj ZW5kaWYKKyAjZW5kaWYgLy8gQk9PU1RfVkVSU0lPTgorIAorICNpbmNsdWRlIDxhbGdvcml0aG0+ CgpkaWZmIC0tZ2l0IGEvc29jaS0zLjAuMC1nY2M0Ni1jb21wYXRpYmlsaXR5LnBhdGNoIGIvc29j aS0zLjAuMC1nY2M0Ni1jb21wYXRpYmlsaXR5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjM2YjdmYTUKLS0tIC9kZXYvbnVsbAorKysgYi9zb2NpLTMuMC4wLWdjYzQ2 LWNvbXBhdGliaWxpdHkucGF0Y2gKQEAgLTAsMCArMSwxNDUgQEAKK2RpZmYgLU51ciBzb2NpLTMu MC4wL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24uaCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFj a2VuZHMvbXlzcWwvY29tbW9uLmgKKy0tLSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9j b21tb24uaAkyMDA4LTA3LTAzIDA5OjIyOjU3LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4w LjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24uaAkyMDA5LTA1LTIzIDEzOjExOjAz LjAwMDAwMDAwMCArMDIwMAorQEAgLTEwLDYgKzEwLDcgQEAKKyAKKyAjaW5jbHVkZSA8c3N0cmVh bT4KKyAjaW5jbHVkZSAic29jaS1teXNxbC5oIgorKyNpbmNsdWRlIDxjdGltZT4KKyAKKyBuYW1l c3BhY2Ugc29jaQorIHsKK2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9z ZXNzaW9uLmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5j cHAKKy0tLSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAkyMDA4LTA1 LTE1IDE1OjU4OjM4LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9i YWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAkyMDA5LTA1LTIzIDEzOjExOjAzLjAwMDAwMDAwMCAr MDIwMAorQEAgLTExLDcgKzExLDggQEAKKyAjaW5jbHVkZSA8Y2N0eXBlPgorICNpbmNsdWRlIDxj ZXJybm8+CisgI2luY2x1ZGUgPGNpc282NDY+CistCisrI2luY2x1ZGUgPGNzdGRsaWI+CisrI2lu Y2x1ZGUgPGNsaW1pdHM+CisgCisgI2lmZGVmIF9NU0NfVkVSCisgI3ByYWdtYSB3YXJuaW5nKGRp c2FibGU6NDM1NSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zb2Np LW15c3FsLmggc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwu aAorLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaCAgMjAxMS0w Mi0wOCAyMzoxNzowNi4zODk1NDM0MDkgKzAxMDAKKysrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMv YmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oIDIwMTEtMDItMDggMjI6Mjk6NTQuMDAwMDAwMDAw ICswMTAwCitAQCAtMjQ1LDYgKzI1Niw3IEBACisgCisgc3RydWN0IG15c3FsX2JhY2tlbmRfZmFj dG9yeSA6IGJhY2tlbmRfZmFjdG9yeQorIHsKKysJbXlzcWxfYmFja2VuZF9mYWN0b3J5KCkge30K KyAgICAgdmlydHVhbCBteXNxbF9zZXNzaW9uX2JhY2tlbmQgKiBtYWtlX3Nlc3Npb24oCisgICAg ICAgICBzdGQ6OnN0cmluZyBjb25zdCAmY29ubmVjdFN0cmluZykgY29uc3Q7CisgfTsKK0BAIC0y NTksNiArMjcxLDYgQEAKKyAKKyB9IC8vIGV4dGVybiAiQyIKKyAKKy19IC8vIG5hbWVzcGFjZSBT T0NJCisrfSAvLyBuYW1lc3BhY2Ugc29jaQorIAorICNlbmRpZiAvLyBTT0NJX01ZU1FMX0hfSU5D TFVERUQKK2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1p bnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFy ZC1pbnRvLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRh cmQtaW50by10eXBlLmNwcAkyMDA4LTA1LTMwIDEzOjMzOjQ1LjAwMDAwMDAwMCArMDIwMAorKysr IHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUu Y3BwCTIwMDktMDUtMjMgMTM6MTE6MDMuMDAwMDAwMDAwICswMjAwCitAQCAtMTIsNiArMTIsOCBA QAorICNpbmNsdWRlICJjb21tb24uaCIKKyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8 Y2Fzc2VydD4KKysjaW5jbHVkZSA8Y3RpbWU+CisrI2luY2x1ZGUgPGNzdHJpbmc+CisgCisgI2lm ZGVmIF9NU0NfVkVSCisgI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDM1NSkKK2RpZmYgLU51ciBz b2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgc29jaS0z LjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorLS0t IHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA4 LTA1LTE1IDE1OjU4OjM4LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfNC1wYWNrL3Ny Yy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNS0yMyAxMzoyNDo0 Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xMCw4ICsxMCwxMCBAQAorICNpbmNsdWRlICJzb2NpLW15 c3FsLmgiCisgI2luY2x1ZGUgImNvbW1vbi5oIgorICNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+ CisrLy8KKyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8bGltaXRzPgorKyNpbmNsdWRl IDxjc3RkaW8+CisgI2luY2x1ZGUgPGNzdHJpbmc+CisgCisgI2lmZGVmIF9NU0NfVkVSCitkaWZm IC1OdXIgc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCBz b2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAor LS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAJMjAw OC0wNS0xNSAxNTo1ODozOC4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wXzQtcGFjay9z cmMvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjI1OjEx LjAwMDAwMDAwMCArMDIwMAorQEAgLTEwLDkgKzEwLDEyIEBACisgI2luY2x1ZGUgInNvY2ktbXlz cWwuaCIKKyAjaW5jbHVkZSAiY29tbW9uLmgiCisgI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4K KysvLworICNpbmNsdWRlIDxjaXNvNjQ2PgorICNpbmNsdWRlIDxsaW1pdHM+CisrI2luY2x1ZGUg PGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KKysjaW5jbHVkZSA8Y3RpbWU+CisgCisgI2lm ZGVmIF9NU0NfVkVSCisgI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDM1NSkKK2RpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmggc29jaS0z LjAuMF90cmVwMzAwL3NyYy9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAorLS0tIHNvY2kt My4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaCAgICAgICAgMjAx MS0wMi0wOCAyMzoxNzowNi4zODk1NDM0MDkgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c3JjL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oICAgICAgIDIwMTEtMDItMDggMjI6Mjk6 NTQuMDAwMDAwMDAwICswMTAwCitAQCAtMjY5LDYgKzI3NCw3IEBACisgCisgc3RydWN0IG9yYWNs ZV9iYWNrZW5kX2ZhY3RvcnkgOiBiYWNrZW5kX2ZhY3RvcnkKKyB7CisrCW9yYWNsZV9iYWNrZW5k X2ZhY3RvcnkoKSB7fQorICAgICB2aXJ0dWFsIG9yYWNsZV9zZXNzaW9uX2JhY2tlbmQgKiBtYWtl X3Nlc3Npb24oCisgICAgICAgICBzdGQ6OnN0cmluZyBjb25zdCAmY29ubmVjdFN0cmluZykgY29u c3Q7CisgfTsKK2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Nv bW1vbi5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9u LmNwcAorLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAky MDA4LTA2LTI3IDE2OjM4OjA1LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfNC1wYWNr L3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAJMjAwOS0wNS0yMyAxMzoyMzozOC4w MDAwMDAwMDAgKzAyMDAKK0BAIC03LDcgKzcsOSBAQAorIAorICNpbmNsdWRlICJjb21tb24uaCIK KyAjaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+CisrLy8KKyAjaW5jbHVkZSA8Y3N0ZGxpYj4KKysj aW5jbHVkZSA8Y3N0ZGlvPgorICNpbmNsdWRlIDxjdGltZT4KKyAKKyAKK2RpZmYgLU51ciBzb2Np LTMuMC4wL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oIHNvY2ktMy4w LjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCistLS0g c29jaS0zLjAuMC9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCAgICAg ICAgMjAxMS0wMi0wOCAyMzoxNzowNi4zODY1NDMzNTMgKzAxMDAKKysrKyBzb2NpLTMuMC4wXzQt cGFjay9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCAgICAgICAyMDEx LTAyLTA4IDIyOjI5OjU0LjAwMDAwMDAwMCArMDEwMAorQEAgLTI0MSw2ICsyNDYsNyBAQAorIAor IHN0cnVjdCBwb3N0Z3Jlc3FsX2JhY2tlbmRfZmFjdG9yeSA6IGJhY2tlbmRfZmFjdG9yeQorIHsK KysJcG9zdGdyZXNxbF9iYWNrZW5kX2ZhY3RvcnkoKSB7fQorICAgICB2aXJ0dWFsIHBvc3RncmVz cWxfc2Vzc2lvbl9iYWNrZW5kICogbWFrZV9zZXNzaW9uKAorICAgICAgICAgc3RkOjpzdHJpbmcg Y29uc3QgJiBjb25uZWN0U3RyaW5nKSBjb25zdDsKKyB9OworZGlmZiAtTnVyIHNvY2ktMy4wLjAv c3JjL2NvcmUvc29jaS1zaW1wbGUuY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9jb3JlL3NvY2kt c2ltcGxlLmNwcAorLS0tIHNvY2ktMy4wLjAvc3JjL2NvcmUvc29jaS1zaW1wbGUuY3BwCTIwMDgt MDctMDEgMDk6NDI6MjUuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF80LXBhY2svc3Jj L2NvcmUvc29jaS1zaW1wbGUuY3BwCTIwMDktMDUtMjMgMTM6MjE6MTQuMDAwMDAwMDAwICswMjAw CitAQCAtOSw2ICs5LDggQEAKKyAKKyAjaW5jbHVkZSAic29jaS1zaW1wbGUuaCIKKyAjaW5jbHVk ZSAic29jaS5oIgorKy8vCisrI2luY2x1ZGUgPGNzdGRpbz4KKyAKKyB1c2luZyBuYW1lc3BhY2Ug c29jaTsKKworCitkaWZmIC1OdXIgc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC90 ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bv c3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCistLS0gc29jaS0zLjAuMC9zcmMvYmFj a2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAgMjAwOC0wNi0wNSAyMjo0 MTo1OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAgIDIwMTAtMDEtMjMgMTM6MTc6Mjgu MDAwMDAwMDAwICswMTAwCitAQCAtMTUsNiArMTUsNyBAQAorICNpbmNsdWRlIDxjbWF0aD4KKyAj aW5jbHVkZSA8Y3RpbWU+CisgI2luY2x1ZGUgPGNzdGRsaWI+CisrI2luY2x1ZGUgPGNzdHJpbmc+ CisgCisgdXNpbmcgbmFtZXNwYWNlIHNvY2k7CisgdXNpbmcgbmFtZXNwYWNlIHNvY2k6OnRlc3Rz OworCgpkaWZmIC0tZ2l0IGEvc29jaS0zLjAuMC1nbnUtYXV0b3Rvb2xzLWNvbXBhdGliaWxpdHku cGF0Y2ggYi9zb2NpLTMuMC4wLWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDM0ZjgzCi0tLSAvZGV2L251bGwKKysr IGIvc29jaS0zLjAuMC1nbnUtYXV0b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0Y2gKQEAgLTAsMCAr MSw1ODkwMCBAQAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2FjbG9jYWwubTQgc29jaS0z LjAuMF90cmVwMzAwL2FjbG9jYWwubTQKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9hY2xvY2FsLm00 CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVw MzAwL2FjbG9jYWwubTQJMjAxMS0wMi0wOCAyMjozOTo1MC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0w LDAgKzEsOTYxIEBACisrIyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBhY2xvY2FsIDEuMTEu MSAtKi0gQXV0b2NvbmYgLSotCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgs IDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsCisrIyAyMDA1LCAyMDA2LCAyMDA3 LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMgZmls ZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZl cyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMg d2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMg cHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRv IHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElD VUxBUiBQVVJQT1NFLgorKworK200X2lmbmRlZihbQUNfQVVUT0NPTkZfVkVSU0lPTl0sCisrICBb bTRfY29weShbbTRfUEFDS0FHRV9WRVJTSU9OXSwgW0FDX0FVVE9DT05GX1ZFUlNJT05dKV0pZG5s CisrbTRfaWYobTRfZGVmbihbQUNfQVVUT0NPTkZfVkVSU0lPTl0pLCBbMi42Nl0sLAorK1ttNF93 YXJuaW5nKFt0aGlzIGZpbGUgd2FzIGdlbmVyYXRlZCBmb3IgYXV0b2NvbmYgMi42Ni4KKytZb3Ug aGF2ZSBhbm90aGVyIHZlcnNpb24gb2YgYXV0b2NvbmYuICBJdCBtYXkgd29yaywgYnV0IGlzIG5v dCBndWFyYW50ZWVkIHRvLgorK0lmIHlvdSBoYXZlIHByb2JsZW1zLCB5b3UgbWF5IG5lZWQgdG8g cmVnZW5lcmF0ZSB0aGUgYnVpbGQgc3lzdGVtIGVudGlyZWx5LgorK1RvIGRvIHNvLCB1c2UgdGhl IHByb2NlZHVyZSBkb2N1bWVudGVkIGJ5IHRoZSBwYWNrYWdlLCB0eXBpY2FsbHkgYGF1dG9yZWNv bmYnLl0pXSkKKysKKysjIENvcHlyaWdodCAoQykgMjAwMiwgMjAwMywgMjAwNSwgMjAwNiwgMjAw NywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxl IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVz IHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3 aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBw cmVzZXJ2ZWQuCisrCisrIyBBTV9BVVRPTUFLRV9WRVJTSU9OKFZFUlNJT04pCisrIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBBdXRvbWFrZSBYLlkgdHJhY2VzIHRoaXMgbWFjcm8g dG8gZW5zdXJlIGFjbG9jYWwubTQgaGFzIGJlZW4KKysjIGdlbmVyYXRlZCBmcm9tIHRoZSBtNCBm aWxlcyBhY2NvbXBhbnlpbmcgQXV0b21ha2UgWC5ZLgorKyMgKFRoaXMgcHJpdmF0ZSBtYWNybyBz aG91bGQgbm90IGJlIGNhbGxlZCBvdXRzaWRlIHRoaXMgZmlsZS4pCisrQUNfREVGVU4oW0FNX0FV VE9NQUtFX1ZFUlNJT05dLAorK1thbV9fYXBpX3ZlcnNpb249JzEuMTEnCisrZG5sIFNvbWUgdXNl cnMgZmluZCBBTV9BVVRPTUFLRV9WRVJTSU9OIGFuZCBtaXN0YWtlIGl0IGZvciBhIHdheSB0bwor K2RubCByZXF1aXJlIHNvbWUgbWluaW11bSB2ZXJzaW9uLiAgUG9pbnQgdGhlbSB0byB0aGUgcmln aHQgbWFjcm8uCisrbTRfaWYoWyQxXSwgWzEuMTEuMV0sIFtdLAorKyAgICAgIFtBQ19GQVRBTChb RG8gbm90IGNhbGwgJDAsIHVzZSBBTV9JTklUX0FVVE9NQUtFKFskMV0pLl0pXSlkbmwKKytdKQor KworKyMgX0FNX0FVVE9DT05GX1ZFUlNJT04oVkVSU0lPTikKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrIyBhY2xvY2FsIHRyYWNlcyB0aGlzIG1hY3JvIHRvIGZpbmQgdGhlIEF1 dG9jb25mIHZlcnNpb24uCisrIyBUaGlzIGlzIGEgcHJpdmF0ZSBtYWNybyB0b28uICBVc2luZyBt NF9kZWZpbmUgc2ltcGxpZmllcworKyMgdGhlIGxvZ2ljIGluIGFjbG9jYWwsIHdoaWNoIGNhbiBz aW1wbHkgaWdub3JlIHRoaXMgZGVmaW5pdGlvbi4KKyttNF9kZWZpbmUoW19BTV9BVVRPQ09ORl9W RVJTSU9OXSwgW10pCisrCisrIyBBTV9TRVRfQ1VSUkVOVF9BVVRPTUFLRV9WRVJTSU9OCisrIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDYWxsIEFNX0FVVE9NQUtFX1ZFUlNJ T04gYW5kIEFNX0FVVE9NQUtFX1ZFUlNJT04gc28gdGhleSBjYW4gYmUgdHJhY2VkLgorKyMgVGhp cyBmdW5jdGlvbiBpcyBBQ19SRVFVSVJFZCBieSBBTV9JTklUX0FVVE9NQUtFLgorK0FDX0RFRlVO KFtBTV9TRVRfQ1VSUkVOVF9BVVRPTUFLRV9WRVJTSU9OXSwKKytbQU1fQVVUT01BS0VfVkVSU0lP TihbMS4xMS4xXSlkbmwKKyttNF9pZm5kZWYoW0FDX0FVVE9DT05GX1ZFUlNJT05dLAorKyAgW200 X2NvcHkoW200X1BBQ0tBR0VfVkVSU0lPTl0sIFtBQ19BVVRPQ09ORl9WRVJTSU9OXSldKWRubAor K19BTV9BVVRPQ09ORl9WRVJTSU9OKG00X2RlZm4oW0FDX0FVVE9DT05GX1ZFUlNJT05dKSldKQor KworKyMgQU1fQVVYX0RJUl9FWFBBTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMywg MjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlz IGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVu bGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRo IG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVz ZXJ2ZWQuCisrCisrIyBGb3IgcHJvamVjdHMgdXNpbmcgQUNfQ09ORklHX0FVWF9ESVIoW2Zvb10p LCBBdXRvY29uZiBzZXRzCisrIyAkYWNfYXV4X2RpciB0byBgJHNyY2Rpci9mb28nLiAgSW4gb3Ro ZXIgcHJvamVjdHMsIGl0IGlzIHNldCB0bworKyMgYCRzcmNkaXInLCBgJHNyY2Rpci8uLicsIG9y IGAkc3JjZGlyLy4uLy4uJy4KKysjCisrIyBPZiBjb3Vyc2UsIEF1dG9tYWtlIG11c3QgaG9ub3Ig dGhpcyB2YXJpYWJsZSB3aGVuZXZlciBpdCBjYWxscyBhCisrIyB0b29sIGZyb20gdGhlIGF1eGls aWFyeSBkaXJlY3RvcnkuICBUaGUgcHJvYmxlbSBpcyB0aGF0ICRzcmNkaXIgKGFuZAorKyMgdGhl cmVmb3JlICRhY19hdXhfZGlyIGFzIHdlbGwpIGNhbiBiZSBlaXRoZXIgYWJzb2x1dGUgb3IgcmVs YXRpdmUsCisrIyBkZXBlbmRpbmcgb24gaG93IGNvbmZpZ3VyZSBpcyBydW4uICBUaGlzIGlzIHBy ZXR0eSBhbm5veWluZywgc2luY2UKKysjIGl0IG1ha2VzICRhY19hdXhfZGlyIHF1aXRlIHVudXNh YmxlIGluIHN1YmRpcmVjdG9yaWVzOiBpbiB0aGUgdG9wCisrIyBzb3VyY2UgZGlyZWN0b3J5LCBh bnkgZm9ybSB3aWxsIHdvcmsgZmluZSwgYnV0IGluIHN1YmRpcmVjdG9yaWVzIGEKKysjIHJlbGF0 aXZlIHBhdGggbmVlZHMgdG8gYmUgYWRqdXN0ZWQgZmlyc3QuCisrIworKyMgJGFjX2F1eF9kaXIv bWlzc2luZworKyMgICAgZmFpbHMgd2hlbiBjYWxsZWQgZnJvbSBhIHN1YmRpcmVjdG9yeSBpZiAk YWNfYXV4X2RpciBpcyByZWxhdGl2ZQorKyMgJHRvcF9zcmNkaXIvJGFjX2F1eF9kaXIvbWlzc2lu ZworKyMgICAgZmFpbHMgaWYgJGFjX2F1eF9kaXIgaXMgYWJzb2x1dGUsCisrIyAgICBmYWlscyB3 aGVuIGNhbGxlZCBmcm9tIGEgc3ViZGlyZWN0b3J5IGluIGEgVlBBVEggYnVpbGQgd2l0aAorKyMg ICAgICAgICAgYSByZWxhdGl2ZSAkYWNfYXV4X2RpcgorKyMKKysjIFRoZSByZWFzb24gb2YgdGhl IGxhdHRlciBmYWlsdXJlIGlzIHRoYXQgJHRvcF9zcmNkaXIgYW5kICRhY19hdXhfZGlyCisrIyBh cmUgYm90aCBwcmVmaXhlZCBieSAkc3JjZGlyLiAgSW4gYW4gaW4tc291cmNlIGJ1aWxkIHRoaXMg aXMgdXN1YWxseQorKyMgaGFybWxlc3MgYmVjYXVzZSAkc3JjZGlyIGlzIGAuJywgYnV0IHRoaW5n cyB3aWxsIGJyb2tlIHdoZW4geW91CisrIyBzdGFydCBhIFZQQVRIIGJ1aWxkIG9yIHVzZSBhbiBh YnNvbHV0ZSAkc3JjZGlyLgorKyMKKysjIFNvIHdlIGNvdWxkIHVzZSBzb21ldGhpbmcgc2ltaWxh ciB0byAkdG9wX3NyY2Rpci8kYWNfYXV4X2Rpci9taXNzaW5nLAorKyMgaWZmIHdlIHN0cmlwIHRo ZSBsZWFkaW5nICRzcmNkaXIgZnJvbSAkYWNfYXV4X2Rpci4gIFRoYXQgd291bGQgYmU6CisrIyAg IGFtX2F1eF9kaXI9J1wkKHRvcF9zcmNkaXIpLydgZXhwciAiJGFjX2F1eF9kaXIiIDogIiRzcmNk aXIvLypcKC4qXCkiYAorKyMgYW5kIHRoZW4gd2Ugd291bGQgZGVmaW5lICRNSVNTSU5HIGFzCisr IyAgIE1JU1NJTkc9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9taXNzaW5nIgorKyMgVGhpcyB3aWxs IHdvcmsgYXMgbG9uZyBhcyBNSVNTSU5HIGlzIG5vdCBjYWxsZWQgZnJvbSBjb25maWd1cmUsIGJl Y2F1c2UKKysjIHVuZm9ydHVuYXRlbHkgJCh0b3Bfc3JjZGlyKSBoYXMgbm8gbWVhbmluZyBpbiBj b25maWd1cmUuCisrIyBIb3dldmVyIHRoZXJlIGFyZSBvdGhlciB2YXJpYWJsZXMsIGxpa2UgQ0Ms IHdoaWNoIGFyZSBvZnRlbiB1c2VkIGluCisrIyBjb25maWd1cmUsIGFuZCBjb3VsZCB0aGVyZWZv cmUgbm90IHVzZSB0aGlzICJmaXhlZCIgJGFjX2F1eF9kaXIuCisrIworKyMgQW5vdGhlciBzb2x1 dGlvbiwgdXNlZCBoZXJlLCBpcyB0byBhbHdheXMgZXhwYW5kICRhY19hdXhfZGlyIHRvIGFuCisr IyBhYnNvbHV0ZSBQQVRILiAgVGhlIGRyYXdiYWNrIGlzIHRoYXQgdXNpbmcgYWJzb2x1dGUgcGF0 aHMgcHJldmVudCBhCisrIyBjb25maWd1cmVkIHRyZWUgdG8gYmUgbW92ZWQgd2l0aG91dCByZWNv bmZpZ3VyYXRpb24uCisrCisrQUNfREVGVU4oW0FNX0FVWF9ESVJfRVhQQU5EXSwKKytbZG5sIFJl bHkgb24gYXV0b2NvbmYgdG8gc2V0IHVwIENEUEFUSCBwcm9wZXJseS4KKytBQ19QUkVSRVEoWzIu NTBdKWRubAorKyMgZXhwYW5kICRhY19hdXhfZGlyIHRvIGFuIGFic29sdXRlIHBhdGgKKythbV9h dXhfZGlyPWBjZCAkYWNfYXV4X2RpciAmJiBwd2RgCisrXSkKKysKKysjIEFNX0NPTkRJVElPTkFM ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYg LSotCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTcsIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIw MDUsIDIwMDYsIDIwMDgKKysjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysj IFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u CisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRl IGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBu b3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDkKKysKKysjIEFNX0NPTkRJVElPTkFM KE5BTUUsIFNIRUxMLUNPTkRJVElPTikKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysjIERlZmluZSBhIGNvbmRpdGlvbmFsLgorK0FDX0RFRlVOKFtBTV9DT05ESVRJ T05BTF0sCisrW0FDX1BSRVJFUSgyLjUyKWRubAorKyBpZmVsc2UoWyQxXSwgW1RSVUVdLCAgW0FD X0ZBVEFMKFskMDogaW52YWxpZCBjb25kaXRpb246ICQxXSldLAorKwlbJDFdLCBbRkFMU0VdLCBb QUNfRkFUQUwoWyQwOiBpbnZhbGlkIGNvbmRpdGlvbjogJDFdKV0pZG5sCisrQUNfU1VCU1QoWyQx X1RSVUVdKWRubAorK0FDX1NVQlNUKFskMV9GQUxTRV0pZG5sCisrX0FNX1NVQlNUX05PVE1BS0Uo WyQxX1RSVUVdKWRubAorK19BTV9TVUJTVF9OT1RNQUtFKFskMV9GQUxTRV0pZG5sCisrbTRfZGVm aW5lKFtfQU1fQ09ORF9WQUxVRV8kMV0sIFskMl0pZG5sCisraWYgJDI7IHRoZW4KKysgICQxX1RS VUU9CisrICAkMV9GQUxTRT0nIycKKytlbHNlCisrICAkMV9UUlVFPScjJworKyAgJDFfRkFMU0U9 CisrZmkKKytBQ19DT05GSUdfQ09NTUFORFNfUFJFKAorK1tpZiB0ZXN0IC16ICIkeyQxX1RSVUV9 IiAmJiB0ZXN0IC16ICIkeyQxX0ZBTFNFfSI7IHRoZW4KKysgIEFDX01TR19FUlJPUihbW2NvbmRp dGlvbmFsICIkMSIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBt YWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuXV0pCisrZmldKV0pCisrCisrIyBD b3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIw MDYsIDIwMDkKKysjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMg ZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBn aXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAor KyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2Ug aXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDEwCisrCisrIyBUaGVyZSBhcmUgYSBmZXcgZGly dHkgaGFja3MgYmVsb3cgdG8gYXZvaWQgbGV0dGluZyBgQUNfUFJPR19DQycgYmUKKysjIHdyaXR0 ZW4gaW4gY2xlYXIsIGluIHdoaWNoIGNhc2UgYXV0b21ha2UsIHdoZW4gcmVhZGluZyBhY2xvY2Fs Lm00LAorKyMgd2lsbCB0aGluayBpdCBzZWVzIGEgKnVzZSosIGFuZCB0aGVyZWZvcmUgd2lsbCB0 cmlnZ2VyIGFsbCBpdCdzCisrIyBDIHN1cHBvcnQgbWFjaGluZXJ5LiAgQWxzbyBub3RlIHRoYXQg aXQgbWVhbnMgdGhhdCBhdXRvc2Nhbiwgc2VlaW5nCisrIyBDQyBldGMuIGluIHRoZSBNYWtlZmls ZSwgd2lsbCBhc2sgZm9yIGFuIEFDX1BST0dfQ0MgdXNlLi4uCisrCisrCisrIyBfQU1fREVQRU5E RU5DSUVTKE5BTUUpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBTZWUgaG93IHRoZSBj b21waWxlciBpbXBsZW1lbnRzIGRlcGVuZGVuY3kgY2hlY2tpbmcuCisrIyBOQU1FIGlzICJDQyIs ICJDWFgiLCAiR0NKIiwgb3IgIk9CSkMiLgorKyMgV2UgdHJ5IGEgZmV3IHRlY2huaXF1ZXMgYW5k IHVzZSB0aGF0IHRvIHNldCBhIHNpbmdsZSBjYWNoZSB2YXJpYWJsZS4KKysjCisrIyBXZSBkb24n dCBBQ19SRVFVSVJFIHRoZSBjb3JyZXNwb25kaW5nIEFDX1BST0dfQ0Mgc2luY2UgdGhlIGxhdHRl ciB3YXMKKysjIG1vZGlmaWVkIHRvIGludm9rZSBfQU1fREVQRU5ERU5DSUVTKENDKTsgd2Ugd291 bGQgaGF2ZSBhIGNpcmN1bGFyCisrIyBkZXBlbmRlbmN5LCBhbmQgZ2l2ZW4gdGhhdCB0aGUgdXNl ciBpcyBub3QgZXhwZWN0ZWQgdG8gcnVuIHRoaXMgbWFjcm8sCisrIyBqdXN0IHJlbHkgb24gQUNf UFJPR19DQy4KKytBQ19ERUZVTihbX0FNX0RFUEVOREVOQ0lFU10sCisrW0FDX1JFUVVJUkUoW0FN X1NFVF9ERVBESVJdKWRubAorK0FDX1JFUVVJUkUoW0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1B TkRTXSlkbmwKKytBQ19SRVFVSVJFKFtBTV9NQUtFX0lOQ0xVREVdKWRubAorK0FDX1JFUVVJUkUo W0FNX0RFUF9UUkFDS10pZG5sCisrCisraWZlbHNlKFskMV0sIENDLCAgIFtkZXBjYz0iJENDIiAg IGFtX2NvbXBpbGVyX2xpc3Q9XSwKKysgICAgICAgWyQxXSwgQ1hYLCAgW2RlcGNjPSIkQ1hYIiAg YW1fY29tcGlsZXJfbGlzdD1dLAorKyAgICAgICBbJDFdLCBPQkpDLCBbZGVwY2M9IiRPQkpDIiBh bV9jb21waWxlcl9saXN0PSdnY2MzIGdjYyddLAorKyAgICAgICBbJDFdLCBVUEMsICBbZGVwY2M9 IiRVUEMiICBhbV9jb21waWxlcl9saXN0PV0sCisrICAgICAgIFskMV0sIEdDSiwgIFtkZXBjYz0i JEdDSiIgIGFtX2NvbXBpbGVyX2xpc3Q9J2djYzMgZ2NjJ10sCisrICAgICAgICAgICAgICAgICAg IFtkZXBjYz0iJCQxIiAgIGFtX2NvbXBpbGVyX2xpc3Q9XSkKKysKKytBQ19DQUNIRV9DSEVDSyhb ZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2NdLAorKyAgICAgICAgICAgICAgIFthbV9jdl8kMV9k ZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZV0sCisrW2lmIHRlc3QgLXogIiRBTURFUF9UUlVFIiAm JiB0ZXN0IC1mICIkYW1fZGVwY29tcCI7IHRoZW4KKysgICMgV2UgbWFrZSBhIHN1YmRpciBhbmQg ZG8gdGhlIHRlc3RzIHRoZXJlLiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKKysgICMgbWFraW5n IGJvZ3VzIGZpbGVzIHRoYXQgd2UgZG9uJ3Qga25vdyBhYm91dCBhbmQgbmV2ZXIgcmVtb3ZlLiAg Rm9yCisrICAjIGluc3RhbmNlIGl0IHdhcyByZXBvcnRlZCB0aGF0IG9uIEhQLVVYIHRoZSBnY2Mg dGVzdCB3aWxsIGVuZCB1cAorKyAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBi ZWNhdXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91dHB1dAorKyAgIyBpbiBEJy4KKysgIG1rZGly IGNvbmZ0ZXN0LmRpcgorKyAgIyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3 aXNlIHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUKKysgICMgdXNpbmcgYSByZWxhdGl2ZSBkaXJl Y3RvcnkuCisrICBjcCAiJGFtX2RlcGNvbXAiIGNvbmZ0ZXN0LmRpcgorKyAgY2QgY29uZnRlc3Qu ZGlyCisrICAjIFdlIHdpbGwgYnVpbGQgb2JqZWN0cyBhbmQgZGVwZW5kZW5jaWVzIGluIGEgc3Vi ZGlyZWN0b3J5IGJlY2F1c2UKKysgICMgaXQgaGVscHMgdG8gZGV0ZWN0IGluYXBwbGljYWJsZSBk ZXBlbmRlbmN5IG1vZGVzLiAgRm9yIGluc3RhbmNlCisrICAjIGJvdGggVHJ1NjQncyBjYyBhbmQg SUNDIHN1cHBvcnQgLU1EIHRvIG91dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQorKyAgIyBzaWRlIGVm ZmVjdCBvZiBjb21waWxhdGlvbiwgYnV0IElDQyB3aWxsIHB1dCB0aGUgZGVwZW5kZW5jaWVzIGlu CisrICAjIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aGlsZSBUcnU2NCB3aWxsIHB1dCB0aGVtIGlu IHRoZSBvYmplY3QKKysgICMgZGlyZWN0b3J5LgorKyAgbWtkaXIgc3ViCisrCisrICBhbV9jdl8k MV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCisrICBpZiB0ZXN0ICIkYW1fY29tcGls ZXJfbGlzdCIgPSAiIjsgdGhlbgorKyAgICAgYW1fY29tcGlsZXJfbGlzdD1gc2VkIC1uIFsncy9e IypcKFthLXpBLVowLTldKlwpKSQvXDEvcCddIDwgLi9kZXBjb21wYAorKyAgZmkKKysgIGFtX191 bml2ZXJzYWw9ZmFsc2UKKysgIG00X2Nhc2UoWyQxXSwgW0NDXSwKKysgICAgW2Nhc2UgIiAkZGVw Y2MgIiBpbiAjKAorKyAgICAgKlwgLWFyY2hcICpcIC1hcmNoXCAqKSBhbV9fdW5pdmVyc2FsPXRy dWUgOzsKKysgICAgIGVzYWNdLAorKyAgICBbQ1hYXSwKKysgICAgW2Nhc2UgIiAkZGVwY2MgIiBp biAjKAorKyAgICAgKlwgLWFyY2hcICpcIC1hcmNoXCAqKSBhbV9fdW5pdmVyc2FsPXRydWUgOzsK KysgICAgIGVzYWNdKQorKworKyAgZm9yIGRlcG1vZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRv CisrICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBz b21lIGNvbXBpbGVycworKyAgICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3Rz IG9uIGNvbHVtbiA4MCAod2l0aCBcKSwgYW5kCisrICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2Ug YSBkZXBjb21wIG1vZGUgd2hpY2ggaXMgY29uZnVzZWQgYnkgdGhpcy4KKysgICAgIworKyAgICAj IFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNv bXBpbGVyIG1heQorKyAgICAjIG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdp dGggb2JzY3VyZSBjb21tYW5kIGxpbmVzLgorKyAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3 aXRoIHRoZSBBSVggQyBjb21waWxlci4KKysgICAgOiA+IHN1Yi9jb25mdGVzdC5jCisrICAgIGZv ciBpIGluIDEgMiAzIDQgNSA2OyBkbworKyAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRp Jy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMKKysgICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3Qk aS5oJyBjcmVhdGVzIG9ubHkgc3ViL2NvbmZ0c3QxLmggd2l0aAorKyAgICAgICMgU29sYXJpcyA4 J3Mgey91c3IsfS9iaW4vc2guCisrICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCisrICAgIGRv bmUKKysgICAgZWNobyAiJHthbV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBv JHthbV9fcXVvdGV9IiA+IGNvbmZtZgorKworKyAgICAjIFdlIGNoZWNrIHdpdGggYC1jJyBhbmQg YC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNobXN0ZG91dCIKKysgICAgIyBtb2RlLiAgSXQg dHVybnMgb3V0IHRoYXQgdGhlIFN1blBybyBDKysgY29tcGlsZXIgZG9lcyBub3QgcHJvcGVybHkK KysgICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuICBBbHNv LCBzb21lIEludGVsCisrICAgICMgdmVyc2lvbnMgaGFkIHRyb3VibGUgd2l0aCBvdXRwdXQgaW4g c3ViZGlycworKyAgICBhbV9fb2JqPXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfQorKyAgICBhbV9f bWludXNfb2JqPSItbyAkYW1fX29iaiIKKysgICAgY2FzZSAkZGVwbW9kZSBpbgorKyAgICBnY2Mp CisrICAgICAgIyBUaGlzIGRlcG1vZGUgY2F1c2VzIGEgY29tcGlsZXIgcmFjZSBpbiB1bml2ZXJz YWwgbW9kZS4KKysgICAgICB0ZXN0ICIkYW1fX3VuaXZlcnNhbCIgPSBmYWxzZSB8fCBjb250aW51 ZQorKyAgICAgIDs7CisrICAgIG5vc2lkZWVmZmVjdCkKKysgICAgICAjIGFmdGVyIHRoaXMgdGFn LCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lkZS1lZmZlY3QsIHNvIHRoZXknbGwKKysgICAgICAj IG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVxdWVzdGVkCisrICAgICAgaWYgdGVzdCAi eCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVzOyB0aGVuCisrCWNvbnRpbnVlCisr ICAgICAgZWxzZQorKwlicmVhaworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgbXN2aXN1YWxj cHAgfCBtc3ZjbXN5cykKKysgICAgICAjIFRoaXMgY29tcGlsZXIgd29uJ3QgZ3JvayBgLWMgLW8n LCBidXQgYWxzbywgdGhlIG1pbnVzbyB0ZXN0IGhhcworKyAgICAgICMgbm90IHJ1biB5ZXQuICBU aGVzZSBkZXBtb2RlcyBhcmUgbGF0ZSBlbm91Z2ggaW4gdGhlIGdhbWUsIGFuZAorKyAgICAgICMg c28gd2VhayB0aGF0IHRoZWlyIGZ1bmN0aW9uaW5nIHNob3VsZCBub3QgYmUgaW1wYWN0ZWQuCisr ICAgICAgYW1fX29iaj1jb25mdGVzdC4ke09CSkVYVC1vfQorKyAgICAgIGFtX19taW51c19vYmo9 CisrICAgICAgOzsKKysgICAgbm9uZSkgYnJlYWsgOzsKKysgICAgZXNhYworKyAgICBpZiBkZXBt b2RlPSRkZXBtb2RlIFwKKysgICAgICAgc291cmNlPXN1Yi9jb25mdGVzdC5jIG9iamVjdD0kYW1f X29iaiBcCisrICAgICAgIGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3ViL2Nv bmZ0ZXN0LlRQbyBcCisrICAgICAgICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jICRhbV9fbWlu dXNfb2JqIHN1Yi9jb25mdGVzdC5jIFwKKysgICAgICAgICA+L2Rldi9udWxsIDI+Y29uZnRlc3Qu ZXJyICYmCisrICAgICAgIGdyZXAgc3ViL2NvbmZ0c3QxLmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rl di9udWxsIDI+JjEgJiYKKysgICAgICAgZ3JlcCBzdWIvY29uZnRzdDYuaCBzdWIvY29uZnRlc3Qu UG8gPiAvZGV2L251bGwgMj4mMSAmJgorKyAgICAgICBncmVwICRhbV9fb2JqIHN1Yi9jb25mdGVz dC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisrICAgICAgICR7TUFLRS1tYWtlfSAtcyAtZiBjb25m bWYgPiAvZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICAgICMgaWNjIGRvZXNuJ3QgY2hva2Ugb24g dW5rbm93biBvcHRpb25zLCBpdCB3aWxsIGp1c3QgaXNzdWUgd2FybmluZ3MKKysgICAgICAjIG9y IHJlbWFya3MgKGV2ZW4gd2l0aCAtV2Vycm9yKS4gIFNvIHdlIGdyZXAgc3RkZXJyIGZvciBhbnkg bWVzc2FnZQorKyAgICAgICMgdGhhdCBzYXlzIGFuIG9wdGlvbiB3YXMgaWdub3JlZCBvciBub3Qg c3VwcG9ydGVkLgorKyAgICAgICMgV2hlbiBnaXZlbiAtTVAsIGljYyA3LjAgYW5kIDcuMSBjb21w bGFpbiB0aHVzbHk6CisrICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHdhcm5pbmc6IGlnbm9y aW5nIG9wdGlvbiAnLU0nOyBubyBhcmd1bWVudCByZXF1aXJlZAorKyAgICAgICMgVGhlIGRpYWdu b3NpcyBjaGFuZ2VkIGluIGljYyA4LjA6CisrICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHJl bWFyazogb3B0aW9uICctTVAnIG5vdCBzdXBwb3J0ZWQKKysgICAgICBpZiAoZ3JlcCAnaWdub3Jp bmcgb3B0aW9uJyBjb25mdGVzdC5lcnIgfHwKKysgICAgICAgICAgZ3JlcCAnbm90IHN1cHBvcnRl ZCcgY29uZnRlc3QuZXJyKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxzZQorKyAgICAgICAg YW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUKKysgICAgICAgIGJy ZWFrCisrICAgICAgZmkKKysgICAgZmkKKysgIGRvbmUKKysKKysgIGNkIC4uCisrICBybSAtcmYg Y29uZnRlc3QuZGlyCisrZWxzZQorKyAgYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5 cGU9bm9uZQorK2ZpCisrXSkKKytBQ19TVUJTVChbJDFERVBNT0RFXSwgW2RlcG1vZGU9JGFtX2N2 XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlXSkKKytBTV9DT05ESVRJT05BTChbYW1fX2Zh c3RkZXAkMV0sIFsKKysgIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhu byBcCisrICAmJiB0ZXN0ICIkYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID0g Z2NjM10pCisrXSkKKysKKysKKysjIEFNX1NFVF9ERVBESVIKKysjIC0tLS0tLS0tLS0tLS0KKysj IENob29zZSBhIGRpcmVjdG9yeSBuYW1lIGZvciBkZXBlbmRlbmN5IGZpbGVzLgorKyMgVGhpcyBt YWNybyBpcyBBQ19SRVFVSVJFZCBpbiBfQU1fREVQRU5ERU5DSUVTCisrQUNfREVGVU4oW0FNX1NF VF9ERVBESVJdLAorK1tBQ19SRVFVSVJFKFtBTV9TRVRfTEVBRElOR19ET1RdKWRubAorK0FDX1NV QlNUKFtERVBESVJdLCBbIiR7YW1fX2xlYWRpbmdfZG90fWRlcHMiXSlkbmwKKytdKQorKworKwor KyMgQU1fREVQX1RSQUNLCisrIyAtLS0tLS0tLS0tLS0KKytBQ19ERUZVTihbQU1fREVQX1RSQUNL XSwKKytbQUNfQVJHX0VOQUJMRShkZXBlbmRlbmN5LXRyYWNraW5nLAorK1sgIC0tZGlzYWJsZS1k ZXBlbmRlbmN5LXRyYWNraW5nICBzcGVlZHMgdXAgb25lLXRpbWUgYnVpbGQKKysgIC0tZW5hYmxl LWRlcGVuZGVuY3ktdHJhY2tpbmcgICBkbyBub3QgcmVqZWN0IHNsb3cgZGVwZW5kZW5jeSBleHRy YWN0b3JzXSkKKytpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87 IHRoZW4KKysgIGFtX2RlcGNvbXA9IiRhY19hdXhfZGlyL2RlcGNvbXAiCisrICBBTURFUEJBQ0tT TEFTSD0nXCcKKytmaQorK0FNX0NPTkRJVElPTkFMKFtBTURFUF0sIFt0ZXN0ICJ4JGVuYWJsZV9k ZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm9dKQorK0FDX1NVQlNUKFtBTURFUEJBQ0tTTEFTSF0p ZG5sCisrX0FNX1NVQlNUX05PVE1BS0UoW0FNREVQQkFDS1NMQVNIXSlkbmwKKytdKQorKworKyMg R2VuZXJhdGUgY29kZSB0byBzZXQgdXAgZGVwZW5kZW5jeSB0cmFja2luZy4gICAgICAgICAgICAg IC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMSwg MjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwOAorKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrI3NlcmlhbCA1CisrCisrIyBf QU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorK0FDX0RFRlVOKFtfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdLAorK1t7 CisrICAjIEF1dG9jb25mIDIuNjIgcXVvdGVzIC0tZmlsZSBhcmd1bWVudHMgZm9yIGV2YWwsIGJ1 dCBub3Qgd2hlbiBmaWxlcworKyAgIyBhcmUgbGlzdGVkIHdpdGhvdXQgLS1maWxlLiAgTGV0J3Mg cGxheSBzYWZlIGFuZCBvbmx5IGVuYWJsZSB0aGUgZXZhbAorKyAgIyBpZiB3ZSBkZXRlY3QgdGhl IHF1b3RpbmcuCisrICBjYXNlICRDT05GSUdfRklMRVMgaW4KKysgICpcJyopIGV2YWwgc2V0IHgg IiRDT05GSUdfRklMRVMiIDs7CisrICAqKSAgIHNldCB4ICRDT05GSUdfRklMRVMgOzsKKysgIGVz YWMKKysgIHNoaWZ0CisrICBmb3IgbWYKKysgIGRvCisrICAgICMgU3RyaXAgTUYgc28gd2UgZW5k IHVwIHdpdGggdGhlIG5hbWUgb2YgdGhlIGZpbGUuCisrICAgIG1mPWBlY2hvICIkbWYiIHwgc2Vk IC1lICdzLzouKiQvLydgCisrICAgICMgQ2hlY2sgd2hldGhlciB0aGlzIGlzIGFuIEF1dG9tYWtl IGdlbmVyYXRlZCBNYWtlZmlsZSBvciBub3QuCisrICAgICMgV2UgdXNlZCB0byBtYXRjaCBvbmx5 IHRoZSBmaWxlcyBuYW1lZCBgTWFrZWZpbGUuaW4nLCBidXQKKysgICAgIyBzb21lIHBlb3BsZSBy ZW5hbWUgdGhlbTsgc28gaW5zdGVhZCB3ZSBsb29rIGF0IHRoZSBmaWxlIGNvbnRlbnQuCisrICAg ICMgR3JlcCdpbmcgdGhlIGZpcnN0IGxpbmUgaXMgbm90IGVub3VnaDogc29tZSBwZW9wbGUgcG9z dC1wcm9jZXNzCisrICAgICMgZWFjaCBNYWtlZmlsZS5pbiBhbmQgYWRkIGEgbmV3IGxpbmUgb24g dG9wIG9mIGVhY2ggZmlsZSB0byBzYXkgc28uCisrICAgICMgR3JlcCdpbmcgdGhlIHdob2xlIGZp bGUgaXMgbm90IGdvb2QgZWl0aGVyOiBBSVggZ3JlcCBoYXMgYSBsaW5lCisrICAgICMgbGltaXQg b2YgMjA0OCwgYnV0IGFsbCBzZWQncyB3ZSBrbm93IGhhdmUgdW5kZXJzdGFuZCBhdCBsZWFzdCA0 MDAwLgorKyAgICBpZiBzZWQgLW4gJ3MsXiMuKmdlbmVyYXRlZCBieSBhdXRvbWFrZS4qLFgscCcg IiRtZiIgfCBncmVwIFggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgICAgZGlycGFydD1gQVNf RElSTkFNRSgiJG1mIilgCisrICAgIGVsc2UKKysgICAgICBjb250aW51ZQorKyAgICBmaQorKyAg ICAjIEV4dHJhY3QgdGhlIGRlZmluaXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFt X19xdW90ZQorKyAgICAjIGZyb20gdGhlIE1ha2VmaWxlIHdpdGhvdXQgcnVubmluZyBgbWFrZScu CisrICAgIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCisrICAgIHRl c3QgLXogIiRERVBESVIiICYmIGNvbnRpbnVlCisrICAgIGFtX19pbmNsdWRlPWBzZWQgLW4gJ3Mv XmFtX19pbmNsdWRlID0gLy9wJyA8ICIkbWYiYAorKyAgICB0ZXN0IC16ICJhbV9faW5jbHVkZSIg JiYgY29udGludWUKKysgICAgYW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcg PCAiJG1mImAKKysgICAgIyBXaGVuIHVzaW5nIGFuc2kya25yLCBVIG1heSBiZSBlbXB0eSBvciBh biB1bmRlcnNjb3JlOyBleHBhbmQgaXQKKysgICAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIk bWYiYAorKyAgICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFyZSBp bmNsdWRlZCBmaWxlcyB3aXRoCisrICAgICMgJChERVBESVIpIGluIHRoZWlyIG5hbWVzLiAgV2Ug aW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRoZQorKyAgICAjIHNpbXBsZXN0IGFwcHJv YWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQorKyAg ICAjIGV4cGFuc2lvbi4KKysgICAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCisrICAgICAgcy9eJGFt X19pbmNsdWRlICRhbV9fcXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8 IiRtZiIgfCBcCisrCSBzZWQgLWUgJ3MvXCQoREVQRElSKS8nIiRERVBESVIiJy9nJyAtZSAncy9c JFUvJyIkVSInL2cnYDsgZG8KKysgICAgICAjIE1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IGV4aXN0 cy4KKysgICAgICB0ZXN0IC1mICIkZGlycGFydC8kZmlsZSIgJiYgY29udGludWUKKysgICAgICBm ZGlyPWBBU19ESVJOQU1FKFsiJGZpbGUiXSlgCisrICAgICAgQVNfTUtESVJfUChbJGRpcnBhcnQv JGZkaXJdKQorKyAgICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCisrICAgICAg ZWNobyAnIyBkdW1teScgPiAiJGRpcnBhcnQvJGZpbGUiCisrICAgIGRvbmUKKysgIGRvbmUKKyt9 CisrXSkjIF9BTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EUworKworKworKyMgQU1fT1VUUFVU X0RFUEVOREVOQ1lfQ09NTUFORFMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr IyBUaGlzIG1hY3JvIHNob3VsZCBvbmx5IGJlIGludm9rZWQgb25jZSAtLSB1c2UgdmlhIEFDX1JF UVVJUkUuCisrIworKyMgVGhpcyBjb2RlIGlzIG9ubHkgcmVxdWlyZWQgd2hlbiBhdXRvbWF0aWMg ZGVwZW5kZW5jeSB0cmFja2luZworKyMgaXMgZW5hYmxlZC4gIEZJWE1FLiAgVGhpcyBjcmVhdGVz IGVhY2ggYC5QJyBmaWxlIHRoYXQgd2Ugd2lsbAorKyMgbmVlZCBpbiBvcmRlciB0byBib290c3Ry YXAgdGhlIGRlcGVuZGVuY3kgaGFuZGxpbmcgY29kZS4KKytBQ19ERUZVTihbQU1fT1VUUFVUX0RF UEVOREVOQ1lfQ09NTUFORFNdLAorK1tBQ19DT05GSUdfQ09NTUFORFMoW2RlcGZpbGVzXSwKKysg ICAgIFt0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCBfQU1fT1VUUFVUX0RFUEVOREVOQ1lf Q09NTUFORFNdLAorKyAgICAgW0FNREVQX1RSVUU9IiRBTURFUF9UUlVFIiBhY19hdXhfZGlyPSIk YWNfYXV4X2RpciJdKQorK10pCisrCisrIyBEbyBhbGwgdGhlIHdvcmsgZm9yIEF1dG9tYWtlLiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQorKworKyMgQ29weXJp Z2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAy MDA0LAorKyMgMjAwNSwgMjAwNiwgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQv b3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBs b25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIHNlcmlhbCAxNgorKworKyMg VGhpcyBtYWNybyBhY3R1YWxseSBkb2VzIHRvbyBtdWNoLiAgU29tZSBjaGVja3MgYXJlIG9ubHkg bmVlZGVkIGlmCisrIyB5b3VyIHBhY2thZ2UgZG9lcyBjZXJ0YWluIHRoaW5ncy4gIEJ1dCB0aGlz IGlzbid0IHJlYWxseSBhIGJpZyBkZWFsLgorKworKyMgQU1fSU5JVF9BVVRPTUFLRShQQUNLQUdF LCBWRVJTSU9OLCBbTk8tREVGSU5FXSkKKysjIEFNX0lOSVRfQVVUT01BS0UoW09QVElPTlNdKQor KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFRo ZSBjYWxsIHdpdGggUEFDS0FHRSBhbmQgVkVSU0lPTiBhcmd1bWVudHMgaXMgdGhlIG9sZCBzdHls ZQorKyMgY2FsbCAocHJlIGF1dG9jb25mLTIuNTApLCB3aGljaCBpcyBiZWluZyBwaGFzZWQgb3V0 LiAgUEFDS0FHRQorKyMgYW5kIFZFUlNJT04gc2hvdWxkIG5vdyBiZSBwYXNzZWQgdG8gQUNfSU5J VCBhbmQgcmVtb3ZlZCBmcm9tCisrIyB0aGUgY2FsbCB0byBBTV9JTklUX0FVVE9NQUtFLgorKyMg V2Ugc3VwcG9ydCBib3RoIGNhbGwgc3R5bGVzIGZvciB0aGUgdHJhbnNpdGlvbi4gIEFmdGVyCisr IyB0aGUgbmV4dCBBdXRvbWFrZSByZWxlYXNlLCBBdXRvY29uZiBjYW4gbWFrZSB0aGUgQUNfSU5J VAorKyMgYXJndW1lbnRzIG1hbmRhdG9yeSwgYW5kIHRoZW4gd2UgY2FuIGRlcGVuZCBvbiBhIG5l dyBBdXRvY29uZgorKyMgcmVsZWFzZSBhbmQgZHJvcCB0aGUgb2xkIGNhbGwgc3VwcG9ydC4KKytB Q19ERUZVTihbQU1fSU5JVF9BVVRPTUFLRV0sCisrW0FDX1BSRVJFUShbMi42Ml0pZG5sCisrZG5s IEF1dG9jb25mIHdhbnRzIHRvIGRpc2FsbG93IEFNXyBuYW1lcy4gIFdlIGV4cGxpY2l0bHkgYWxs b3cKKytkbmwgdGhlIG9uZXMgd2UgY2FyZSBhYm91dC4KKyttNF9wYXR0ZXJuX2FsbG93KFteQU1f W0EtWl0rRkxBR1MkXSlkbmwKKytBQ19SRVFVSVJFKFtBTV9TRVRfQ1VSUkVOVF9BVVRPTUFLRV9W RVJTSU9OXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0lOU1RBTExdKWRubAorK2lmIHRlc3Qg ImBjZCAkc3JjZGlyICYmIHB3ZGAiICE9ICJgcHdkYCI7IHRoZW4KKysgICMgVXNlIC1JJChzcmNk aXIpIG9ubHkgd2hlbiAkKHNyY2RpcikgIT0gLiwgc28gdGhhdCBtYWtlJ3Mgb3V0cHV0CisrICAj IGlzIG5vdCBwb2xsdXRlZCB3aXRoIHJlcGVhdGVkICItSS4iCisrICBBQ19TVUJTVChbYW1fX2lz cmNdLCBbJyAtSSQoc3JjZGlyKSddKV9BTV9TVUJTVF9OT1RNQUtFKFthbV9faXNyY10pZG5sCisr ICAjIHRlc3QgdG8gc2VlIGlmIHNyY2RpciBhbHJlYWR5IGNvbmZpZ3VyZWQKKysgIGlmIHRlc3Qg LWYgJHNyY2Rpci9jb25maWcuc3RhdHVzOyB0aGVuCisrICAgIEFDX01TR19FUlJPUihbc291cmNl IGRpcmVjdG9yeSBhbHJlYWR5IGNvbmZpZ3VyZWQ7IHJ1biAibWFrZSBkaXN0Y2xlYW4iIHRoZXJl IGZpcnN0XSkKKysgIGZpCisrZmkKKysKKysjIHRlc3Qgd2hldGhlciB3ZSBoYXZlIGN5Z3BhdGgK KytpZiB0ZXN0IC16ICIkQ1lHUEFUSF9XIjsgdGhlbgorKyAgaWYgKGN5Z3BhdGggLS12ZXJzaW9u KSA+L2Rldi9udWxsIDI+L2Rldi9udWxsOyB0aGVuCisrICAgIENZR1BBVEhfVz0nY3lncGF0aCAt dycKKysgIGVsc2UKKysgICAgQ1lHUEFUSF9XPWVjaG8KKysgIGZpCisrZmkKKytBQ19TVUJTVChb Q1lHUEFUSF9XXSkKKysKKysjIERlZmluZSB0aGUgaWRlbnRpdHkgb2YgdGhlIHBhY2thZ2UuCisr ZG5sIERpc3Rpbmd1aXNoIGJldHdlZW4gb2xkLXN0eWxlIGFuZCBuZXctc3R5bGUgY2FsbHMuCisr bTRfaWZ2YWwoWyQyXSwKKytbbTRfaWZ2YWwoWyQzXSwgW19BTV9TRVRfT1BUSU9OKFtuby1kZWZp bmVdKV0pZG5sCisrIEFDX1NVQlNUKFtQQUNLQUdFXSwgWyQxXSlkbmwKKysgQUNfU1VCU1QoW1ZF UlNJT05dLCBbJDJdKV0sCisrW19BTV9TRVRfT1BUSU9OUyhbJDFdKWRubAorK2RubCBEaWFnbm9z ZSBvbGQtc3R5bGUgQUNfSU5JVCB3aXRoIG5ldy1zdHlsZSBBTV9BVVRPTUFLRV9JTklULgorK200 X2lmKG00X2lmZGVmKFtBQ19QQUNLQUdFX05BTUVdLCAxKW00X2lmZGVmKFtBQ19QQUNLQUdFX1ZF UlNJT05dLCAxKSwgMTEsLAorKyAgW200X2ZhdGFsKFtBQ19JTklUIHNob3VsZCBiZSBjYWxsZWQg d2l0aCBwYWNrYWdlIGFuZCB2ZXJzaW9uIGFyZ3VtZW50c10pXSlkbmwKKysgQUNfU1VCU1QoW1BB Q0tBR0VdLCBbJ0FDX1BBQ0tBR0VfVEFSTkFNRSddKWRubAorKyBBQ19TVUJTVChbVkVSU0lPTl0s IFsnQUNfUEFDS0FHRV9WRVJTSU9OJ10pXSlkbmwKKysKKytfQU1fSUZfT1BUSU9OKFtuby1kZWZp bmVdLCwKKytbQUNfREVGSU5FX1VOUVVPVEVEKFBBQ0tBR0UsICIkUEFDS0FHRSIsIFtOYW1lIG9m IHBhY2thZ2VdKQorKyBBQ19ERUZJTkVfVU5RVU9URUQoVkVSU0lPTiwgIiRWRVJTSU9OIiwgW1Zl cnNpb24gbnVtYmVyIG9mIHBhY2thZ2VdKV0pZG5sCisrCisrIyBTb21lIHRvb2xzIEF1dG9tYWtl IG5lZWRzLgorK0FDX1JFUVVJUkUoW0FNX1NBTklUWV9DSEVDS10pZG5sCisrQUNfUkVRVUlSRShb QUNfQVJHX1BST0dSQU1dKWRubAorK0FNX01JU1NJTkdfUFJPRyhBQ0xPQ0FMLCBhY2xvY2FsLSR7 YW1fX2FwaV92ZXJzaW9ufSkKKytBTV9NSVNTSU5HX1BST0coQVVUT0NPTkYsIGF1dG9jb25mKQor K0FNX01JU1NJTkdfUFJPRyhBVVRPTUFLRSwgYXV0b21ha2UtJHthbV9fYXBpX3ZlcnNpb259KQor K0FNX01JU1NJTkdfUFJPRyhBVVRPSEVBREVSLCBhdXRvaGVhZGVyKQorK0FNX01JU1NJTkdfUFJP RyhNQUtFSU5GTywgbWFrZWluZm8pCisrQUNfUkVRVUlSRShbQU1fUFJPR19JTlNUQUxMX1NIXSlk bmwKKytBQ19SRVFVSVJFKFtBTV9QUk9HX0lOU1RBTExfU1RSSVBdKWRubAorK0FDX1JFUVVJUkUo W0FNX1BST0dfTUtESVJfUF0pZG5sCisrIyBXZSBuZWVkIGF3ayBmb3IgdGhlICJjaGVjayIgdGFy Z2V0LiAgVGhlIHN5c3RlbSAiYXdrIiBpcyBiYWQgb24KKysjIHNvbWUgcGxhdGZvcm1zLgorK0FD X1JFUVVJUkUoW0FDX1BST0dfQVdLXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX01BS0VfU0VU XSlkbmwKKytBQ19SRVFVSVJFKFtBTV9TRVRfTEVBRElOR19ET1RdKWRubAorK19BTV9JRl9PUFRJ T04oW3Rhci11c3Rhcl0sIFtfQU1fUFJPR19UQVIoW3VzdGFyXSldLAorKwkgICAgICBbX0FNX0lG X09QVElPTihbdGFyLXBheF0sIFtfQU1fUFJPR19UQVIoW3BheF0pXSwKKysJCQkgICAgIFtfQU1f UFJPR19UQVIoW3Y3XSldKV0pCisrX0FNX0lGX09QVElPTihbbm8tZGVwZW5kZW5jaWVzXSwsCisr W0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NDXSwKKysJCSAgW19BTV9ERVBFTkRFTkNJRVMo Q0MpXSwKKysJCSAgW2RlZmluZShbQUNfUFJPR19DQ10sCisrCQkJICBkZWZuKFtBQ19QUk9HX0ND XSlbX0FNX0RFUEVOREVOQ0lFUyhDQyldKV0pZG5sCisrQUNfUFJPVklERV9JRkVMU0UoW0FDX1BS T0dfQ1hYXSwKKysJCSAgW19BTV9ERVBFTkRFTkNJRVMoQ1hYKV0sCisrCQkgIFtkZWZpbmUoW0FD X1BST0dfQ1hYXSwKKysJCQkgIGRlZm4oW0FDX1BST0dfQ1hYXSlbX0FNX0RFUEVOREVOQ0lFUyhD WFgpXSldKWRubAorK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX09CSkNdLAorKwkJICBbX0FN X0RFUEVOREVOQ0lFUyhPQkpDKV0sCisrCQkgIFtkZWZpbmUoW0FDX1BST0dfT0JKQ10sCisrCQkJ ICBkZWZuKFtBQ19QUk9HX09CSkNdKVtfQU1fREVQRU5ERU5DSUVTKE9CSkMpXSldKWRubAorK10p CisrX0FNX0lGX09QVElPTihbc2lsZW50LXJ1bGVzXSwgW0FDX1JFUVVJUkUoW0FNX1NJTEVOVF9S VUxFU10pXSlkbmwKKytkbmwgVGhlIGBwYXJhbGxlbC10ZXN0cycgZHJpdmVyIG1heSBuZWVkIHRv IGtub3cgYWJvdXQgRVhFRVhULCBzbyBhZGQgdGhlCisrZG5sIGBhbV9fRVhFRVhUJyBjb25kaXRp b25hbCBpZiBfQU1fQ09NUElMRVJfRVhFRVhUIHdhcyBzZWVuLiAgVGhpcyBtYWNybworK2RubCBp cyBob29rZWQgb250byBfQUNfQ09NUElMRVJfRVhFRVhUIGVhcmx5LCBzZWUgYmVsb3cuCisrQUNf Q09ORklHX0NPTU1BTkRTX1BSRShkbmwKKytbbTRfcHJvdmlkZV9pZihbX0FNX0NPTVBJTEVSX0VY RUVYVF0sCisrICBbQU1fQ09ORElUSU9OQUwoW2FtX19FWEVFWFRdLCBbdGVzdCAtbiAiJEVYRUVY VCJdKV0pXSlkbmwKKytdKQorKworK2RubCBIb29rIGludG8gYF9BQ19DT01QSUxFUl9FWEVFWFQn IGVhcmx5IHRvIGxlYXJuIGl0cyBleHBhbnNpb24uICBEbyBub3QKKytkbmwgYWRkIHRoZSBjb25k aXRpb25hbCByaWdodCBoZXJlLCBhcyBfQUNfQ09NUElMRVJfRVhFRVhUIG1heSBiZSBmdXJ0aGVy CisrZG5sIG1hbmdsZWQgYnkgQXV0b2NvbmYgYW5kIHJ1biBpbiBhIHNoZWxsIGNvbmRpdGlvbmFs IHN0YXRlbWVudC4KKyttNF9kZWZpbmUoW19BQ19DT01QSUxFUl9FWEVFWFRdLAorK200X2RlZm4o W19BQ19DT01QSUxFUl9FWEVFWFRdKVttNF9wcm92aWRlKFtfQU1fQ09NUElMRVJfRVhFRVhUXSld KQorKworKworKyMgV2hlbiBjb25maWcuc3RhdHVzIGdlbmVyYXRlcyBhIGhlYWRlciwgd2UgbXVz dCB1cGRhdGUgdGhlIHN0YW1wLWggZmlsZS4KKysjIFRoaXMgZmlsZSByZXNpZGVzIGluIHRoZSBz YW1lIGRpcmVjdG9yeSBhcyB0aGUgY29uZmlnIGhlYWRlcgorKyMgdGhhdCBpcyBnZW5lcmF0ZWQu ICBUaGUgc3RhbXAgZmlsZXMgYXJlIG51bWJlcmVkIHRvIGhhdmUgZGlmZmVyZW50IG5hbWVzLgor KworKyMgQXV0b2NvbmYgY2FsbHMgX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PSyAod2hlbiBkZWZp bmVkKSBpbiB0aGUKKysjIGxvb3Agd2hlcmUgY29uZmlnLnN0YXR1cyBjcmVhdGVzIHRoZSBoZWFk ZXJzLCBzbyB3ZSBjYW4gZ2VuZXJhdGUKKysjIG91ciBzdGFtcCBmaWxlcyB0aGVyZS4KKytBQ19E RUZVTihbX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PS10sCisrWyMgQ29tcHV0ZSAkMSdzIGluZGV4 IGluICRjb25maWdfaGVhZGVycy4KKytfYW1fYXJnPSQxCisrX2FtX3N0YW1wX2NvdW50PTEKKytm b3IgX2FtX2hlYWRlciBpbiAkY29uZmlnX2hlYWRlcnMgOjsgZG8KKysgIGNhc2UgJF9hbV9oZWFk ZXIgaW4KKysgICAgJF9hbV9hcmcgfCAkX2FtX2FyZzoqICkKKysgICAgICBicmVhayA7OworKyAg ICAqICkKKysgICAgICBfYW1fc3RhbXBfY291bnQ9YGV4cHIgJF9hbV9zdGFtcF9jb3VudCArIDFg IDs7CisrICBlc2FjCisrZG9uZQorK2VjaG8gInRpbWVzdGFtcCBmb3IgJF9hbV9hcmciID5gQVNf RElSTkFNRShbIiRfYW1fYXJnIl0pYC9zdGFtcC1oW10kX2FtX3N0YW1wX2NvdW50XSkKKysKKysj IENvcHlyaWdodCAoQykgMjAwMSwgMjAwMywgMjAwNSwgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv cHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u cywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBBTV9QUk9HX0lO U1RBTExfU0gKKysjIC0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRGVmaW5lICRpbnN0YWxsX3NoLgor K0FDX0RFRlVOKFtBTV9QUk9HX0lOU1RBTExfU0hdLAorK1tBQ19SRVFVSVJFKFtBTV9BVVhfRElS X0VYUEFORF0pZG5sCisraWYgdGVzdCB4IiR7aW5zdGFsbF9zaH0iICE9IHhzZXQ7IHRoZW4KKysg IGNhc2UgJGFtX2F1eF9kaXIgaW4KKysgICpcICogfCAqXAkqKQorKyAgICBpbnN0YWxsX3NoPSJc JHtTSEVMTH0gJyRhbV9hdXhfZGlyL2luc3RhbGwtc2gnIiA7OworKyAgKikKKysgICAgaW5zdGFs bF9zaD0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL2luc3RhbGwtc2giCisrICBlc2FjCisrZmkKKytB Q19TVUJTVChpbnN0YWxsX3NoKV0pCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUgIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRo b3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgor KworKyMgc2VyaWFsIDIKKysKKysjIENoZWNrIHdoZXRoZXIgdGhlIHVuZGVybHlpbmcgZmlsZS1z eXN0ZW0gc3VwcG9ydHMgZmlsZW5hbWVzCisrIyB3aXRoIGEgbGVhZGluZyBkb3QuICBGb3IgaW5z dGFuY2UgTVMtRE9TIGRvZXNuJ3QuCisrQUNfREVGVU4oW0FNX1NFVF9MRUFESU5HX0RPVF0sCisr W3JtIC1yZiAudHN0IDI+L2Rldi9udWxsCisrbWtkaXIgLnRzdCAyPi9kZXYvbnVsbAorK2lmIHRl c3QgLWQgLnRzdDsgdGhlbgorKyAgYW1fX2xlYWRpbmdfZG90PS4KKytlbHNlCisrICBhbV9fbGVh ZGluZ19kb3Q9XworK2ZpCisrcm1kaXIgLnRzdCAyPi9kZXYvbnVsbAorK0FDX1NVQlNUKFthbV9f bGVhZGluZ19kb3RdKV0pCisrCisrIyBDaGVjayB0byBzZWUgaG93ICdtYWtlJyB0cmVhdHMgaW5j bHVkZXMuCSAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykg MjAwMSwgMjAwMiwgMjAwMywgMjAwNSwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29y IGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9u ZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgNAorKworKyMgQU1f TUFLRV9JTkNMVURFKCkKKysjIC0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayB0byBzZWUgaG93 IG1ha2UgdHJlYXRzIGluY2x1ZGVzLgorK0FDX0RFRlVOKFtBTV9NQUtFX0lOQ0xVREVdLAorK1th bV9tYWtlPSR7TUFLRS1tYWtlfQorK2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcKKythbV9fZG9pdDoK KysJQGVjaG8gdGhpcyBpcyB0aGUgYW1fX2RvaXQgdGFyZ2V0CisrLlBIT05ZOiBhbV9fZG9pdAor K0VORAorKyMgSWYgd2UgZG9uJ3QgZmluZCBhbiBpbmNsdWRlIGRpcmVjdGl2ZSwganVzdCBjb21t ZW50IG91dCB0aGUgY29kZS4KKytBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBzdHlsZSBvZiBpbmNsdWRl IHVzZWQgYnkgJGFtX21ha2VdKQorK2FtX19pbmNsdWRlPSIjIgorK2FtX19xdW90ZT0KKytfYW1f cmVzdWx0PW5vbmUKKysjIEZpcnN0IHRyeSBHTlUgbWFrZSBzdHlsZSBpbmNsdWRlLgorK2VjaG8g ImluY2x1ZGUgY29uZmluYyIgPiBjb25mbWYKKysjIElnbm9yZSBhbGwga2luZHMgb2YgYWRkaXRp b25hbCBvdXRwdXQgZnJvbSBgbWFrZScuCisrY2FzZSBgJGFtX21ha2UgLXMgLWYgY29uZm1mIDI+ IC9kZXYvbnVsbGAgaW4gIygKKysqdGhlXCBhbV9fZG9pdFwgdGFyZ2V0KikKKysgIGFtX19pbmNs dWRlPWluY2x1ZGUKKysgIGFtX19xdW90ZT0KKysgIF9hbV9yZXN1bHQ9R05VCisrICA7OworK2Vz YWMKKysjIE5vdyB0cnkgQlNEIG1ha2Ugc3R5bGUgaW5jbHVkZS4KKytpZiB0ZXN0ICIkYW1fX2lu Y2x1ZGUiID0gIiMiOyB0aGVuCisrICAgZWNobyAnLmluY2x1ZGUgImNvbmZpbmMiJyA+IGNvbmZt ZgorKyAgIGNhc2UgYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGxgIGluICMoCisr ICAgKnRoZVwgYW1fX2RvaXRcIHRhcmdldCopCisrICAgICBhbV9faW5jbHVkZT0uaW5jbHVkZQor KyAgICAgYW1fX3F1b3RlPSJcIiIKKysgICAgIF9hbV9yZXN1bHQ9QlNECisrICAgICA7OworKyAg IGVzYWMKKytmaQorK0FDX1NVQlNUKFthbV9faW5jbHVkZV0pCisrQUNfU1VCU1QoW2FtX19xdW90 ZV0pCisrQUNfTVNHX1JFU1VMVChbJF9hbV9yZXN1bHRdKQorK3JtIC1mIGNvbmZpbmMgY29uZm1m CisrXSkKKysKKysjIEZha2UgdGhlIGV4aXN0ZW5jZSBvZiBwcm9ncmFtcyB0aGF0IEdOVSBtYWlu dGFpbmVycyB1c2UuICAtKi0gQXV0b2NvbmYgLSotCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTcs IDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDgKKysjIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lv biB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlm aWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2Vy aWFsIDYKKysKKysjIEFNX01JU1NJTkdfUFJPRyhOQU1FLCBQUk9HUkFNKQorKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0FNX01JU1NJTkdfUFJPR10sCisrW0FD X1JFUVVJUkUoW0FNX01JU1NJTkdfSEFTX1JVTl0pCisrJDE9JHskMS0iJHthbV9taXNzaW5nX3J1 bn0kMiJ9CisrQUNfU1VCU1QoJDEpXSkKKysKKysKKysjIEFNX01JU1NJTkdfSEFTX1JVTgorKyMg LS0tLS0tLS0tLS0tLS0tLS0tCisrIyBEZWZpbmUgTUlTU0lORyBpZiBub3QgZGVmaW5lZCBzbyBm YXIgYW5kIHRlc3QgaWYgaXQgc3VwcG9ydHMgLS1ydW4uCisrIyBJZiBpdCBkb2VzLCBzZXQgYW1f bWlzc2luZ19ydW4gdG8gdXNlIGl0LCBvdGhlcndpc2UsIHRvIG5vdGhpbmcuCisrQUNfREVGVU4o W0FNX01JU1NJTkdfSEFTX1JVTl0sCisrW0FDX1JFUVVJUkUoW0FNX0FVWF9ESVJfRVhQQU5EXSlk bmwKKytBQ19SRVFVSVJFX0FVWF9GSUxFKFttaXNzaW5nXSlkbmwKKytpZiB0ZXN0IHgiJHtNSVNT SU5HK3NldH0iICE9IHhzZXQ7IHRoZW4KKysgIGNhc2UgJGFtX2F1eF9kaXIgaW4KKysgICpcICog fCAqXAkqKQorKyAgICBNSVNTSU5HPSJcJHtTSEVMTH0gXCIkYW1fYXV4X2Rpci9taXNzaW5nXCIi IDs7CisrICAqKQorKyAgICBNSVNTSU5HPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIvbWlzc2luZyIg OzsKKysgIGVzYWMKKytmaQorKyMgVXNlIGV2YWwgdG8gZXhwYW5kICRTSEVMTAorK2lmIGV2YWwg IiRNSVNTSU5HIC0tcnVuIHRydWUiOyB0aGVuCisrICBhbV9taXNzaW5nX3J1bj0iJE1JU1NJTkcg LS1ydW4gIgorK2Vsc2UKKysgIGFtX21pc3NpbmdfcnVuPQorKyAgQUNfTVNHX1dBUk4oW2BtaXNz aW5nJyBzY3JpcHQgaXMgdG9vIG9sZCBvciBtaXNzaW5nXSkKKytmaQorK10pCisrCisrIyBDb3B5 cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFu ZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFz IGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgQU1fUFJPR19NS0RJUl9Q CisrIyAtLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIGZvciBgbWtkaXIgLXAnLgorK0FDX0RFRlVO KFtBTV9QUk9HX01LRElSX1BdLAorK1tBQ19QUkVSRVEoWzIuNjBdKWRubAorK0FDX1JFUVVJUkUo W0FDX1BST0dfTUtESVJfUF0pZG5sCisrZG5sIEF1dG9tYWtlIDEuOCB0byAxLjkuNiB1c2VkIHRv IGRlZmluZSBta2Rpcl9wLiAgV2Ugbm93IHVzZSBNS0RJUl9QLAorK2RubCB3aGlsZSBrZWVwaW5n IGEgZGVmaW5pdGlvbiBvZiBta2Rpcl9wIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorK2Ru bCBATUtESVJfUEAgaXMgbWFnaWM6IEFDX09VVFBVVCBhZGp1c3RzIGl0cyB2YWx1ZSBmb3IgZWFj aCBNYWtlZmlsZS4KKytkbmwgSG93ZXZlciB3ZSBjYW5ub3QgZGVmaW5lIG1rZGlyX3AgYXMgJChN S0RJUl9QKSBmb3IgdGhlIHNha2Ugb2YKKytkbmwgTWFrZWZpbGUuaW5zIHRoYXQgZG8gbm90IGRl ZmluZSBNS0RJUl9QLCBzbyB3ZSBkbyBvdXIgb3duCisrZG5sIGFkanVzdG1lbnQgdXNpbmcgdG9w X2J1aWxkZGlyICh3aGljaCBpcyBkZWZpbmVkIG1vcmUgb2Z0ZW4gdGhhbgorK2RubCBNS0RJUl9Q KS4KKytBQ19TVUJTVChbbWtkaXJfcF0sIFsiJE1LRElSX1AiXSlkbmwKKytjYXNlICRta2Rpcl9w IGluCisrICBbW1xcLyRdXSogfCA/OltbXFwvXV0qKSA7OworKyAgKi8qKSBta2Rpcl9wPSJcJCh0 b3BfYnVpbGRkaXIpLyRta2Rpcl9wIiA7OworK2VzYWMKKytdKQorKworKyMgSGVscGVyIGZ1bmN0 aW9ucyBmb3Igb3B0aW9uIGhhbmRsaW5nLiAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29u ZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMiwgMjAwMywgMjAwNSwgMjAwOCAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUg c29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRl ZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdp dGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQu CisrCisrIyBzZXJpYWwgNAorKworKyMgX0FNX01BTkdMRV9PUFRJT04oTkFNRSkKKysjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW19BTV9NQU5HTEVfT1BUSU9OXSwKKytbW19B TV9PUFRJT05fXW00X2JwYXRzdWJzdCgkMSwgW1teYS16QS1aMC05X11dLCBbX10pXSkKKysKKysj IF9BTV9TRVRfT1BUSU9OKE5BTUUpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysjIFNldCBvcHRpb24gTkFNRS4gIFByZXNlbnRseSB0aGF0IG9ubHkgbWVhbnMgZGVmaW5pbmcg YSBmbGFnIGZvciB0aGlzIG9wdGlvbi4KKytBQ19ERUZVTihbX0FNX1NFVF9PUFRJT05dLAorK1tt NF9kZWZpbmUoX0FNX01BTkdMRV9PUFRJT04oWyQxXSksIDEpXSkKKysKKysjIF9BTV9TRVRfT1BU SU9OUyhPUFRJT05TKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMg T1BUSU9OUyBpcyBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIEF1dG9tYWtlIG9wdGlvbnMuCisr QUNfREVGVU4oW19BTV9TRVRfT1BUSU9OU10sCisrW200X2ZvcmVhY2hfdyhbX0FNX09wdGlvbl0s IFskMV0sIFtfQU1fU0VUX09QVElPTihfQU1fT3B0aW9uKV0pXSkKKysKKysjIF9BTV9JRl9PUFRJ T04oT1BUSU9OLCBJRi1TRVQsIFtJRi1OT1QtU0VUXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEV4ZWN1dGUgSUYtU0VUIGlmIE9QVElPTiBpcyBz ZXQsIElGLU5PVC1TRVQgb3RoZXJ3aXNlLgorK0FDX0RFRlVOKFtfQU1fSUZfT1BUSU9OXSwKKytb bTRfaWZzZXQoX0FNX01BTkdMRV9PUFRJT04oWyQxXSksIFskMl0sIFskM10pXSkKKysKKysjIENo ZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLiAgICAt Ki0gQXV0b2NvbmYgLSotCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDIwMDAsIDIw MDEsIDIwMDMsIDIwMDUsIDIwMDgKKysjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor KyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0 cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMg dGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDUKKysKKysjIEFNX1NBTklU WV9DSEVDSworKyMgLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0FNX1NBTklUWV9DSEVDS10s CisrW0FDX01TR19DSEVDS0lORyhbd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lXSkK KysjIEp1c3QgaW4gY2FzZQorK3NsZWVwIDEKKytlY2hvIHRpbWVzdGFtcCA+IGNvbmZ0ZXN0LmZp bGUKKysjIFJlamVjdCB1bnNhZmUgY2hhcmFjdGVycyBpbiAkc3JjZGlyIG9yIHRoZSBhYnNvbHV0 ZSB3b3JraW5nIGRpcmVjdG9yeQorKyMgbmFtZS4gIEFjY2VwdCBzcGFjZSBhbmQgdGFiIG9ubHkg aW4gdGhlIGxhdHRlci4KKythbV9sZj0nCisrJworK2Nhc2UgYHB3ZGAgaW4KKysgICpbW1xcXCJc I1wkXCZcJ1xgJGFtX2xmXV0qKQorKyAgICBBQ19NU0dfRVJST1IoW3Vuc2FmZSBhYnNvbHV0ZSB3 b3JraW5nIGRpcmVjdG9yeSBuYW1lXSk7OworK2VzYWMKKytjYXNlICRzcmNkaXIgaW4KKysgICpb W1xcXCJcI1wkXCZcJ1xgJGFtX2xmXCBcCV1dKikKKysgICAgQUNfTVNHX0VSUk9SKFt1bnNhZmUg c3JjZGlyIHZhbHVlOiBgJHNyY2RpciddKTs7CisrZXNhYworKworKyMgRG8gYHNldCcgaW4gYSBz dWJzaGVsbCBzbyB3ZSBkb24ndCBjbG9iYmVyIHRoZSBjdXJyZW50IHNoZWxsJ3MKKysjIGFyZ3Vt ZW50cy4gIE11c3QgdHJ5IC1MIGZpcnN0IGluIGNhc2UgY29uZmlndXJlIGlzIGFjdHVhbGx5IGEK KysjIHN5bWxpbms7IHNvbWUgc3lzdGVtcyBwbGF5IHdlaXJkIGdhbWVzIHdpdGggdGhlIG1vZCB0 aW1lIG9mIHN5bWxpbmtzCisrIyAoZWcgRnJlZUJTRCByZXR1cm5zIHRoZSBtb2QgdGltZSBvZiB0 aGUgc3ltbGluaydzIGNvbnRhaW5pbmcKKysjIGRpcmVjdG9yeSkuCisraWYgKAorKyAgIHNldCBY IGBscyAtTHQgIiRzcmNkaXIvY29uZmlndXJlIiBjb25mdGVzdC5maWxlIDI+IC9kZXYvbnVsbGAK KysgICBpZiB0ZXN0ICIkWypdIiA9ICJYIjsgdGhlbgorKyAgICAgICMgLUwgZGlkbid0IHdvcmsu CisrICAgICAgc2V0IFggYGxzIC10ICIkc3JjZGlyL2NvbmZpZ3VyZSIgY29uZnRlc3QuZmlsZWAK KysgICBmaQorKyAgIHJtIC1mIGNvbmZ0ZXN0LmZpbGUKKysgICBpZiB0ZXN0ICIkWypdIiAhPSAi WCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIiBcCisrICAgICAgJiYgdGVzdCAiJFsq XSIgIT0gIlggY29uZnRlc3QuZmlsZSAkc3JjZGlyL2NvbmZpZ3VyZSI7IHRoZW4KKysKKysgICAg ICAjIElmIG5laXRoZXIgbWF0Y2hlZCwgdGhlbiB3ZSBoYXZlIGEgYnJva2VuIGxzLiAgVGhpcyBj YW4gaGFwcGVuCisrICAgICAgIyBpZiwgZm9yIGluc3RhbmNlLCBDT05GSUdfU0hFTEwgaXMgYmFz aCBhbmQgaXQgaW5oZXJpdHMgYQorKyAgICAgICMgYnJva2VuIGxzIGFsaWFzIGZyb20gdGhlIGVu dmlyb25tZW50LiAgVGhpcyBoYXMgYWN0dWFsbHkKKysgICAgICAjIGhhcHBlbmVkLiAgU3VjaCBh IHN5c3RlbSBjb3VsZCBub3QgYmUgY29uc2lkZXJlZCAic2FuZSIuCisrICAgICAgQUNfTVNHX0VS Uk9SKFtscyAtdCBhcHBlYXJzIHRvIGZhaWwuICBNYWtlIHN1cmUgdGhlcmUgaXMgbm90IGEgYnJv a2VuCisrYWxpYXMgaW4geW91ciBlbnZpcm9ubWVudF0pCisrICAgZmkKKysKKysgICB0ZXN0ICIk WzJdIiA9IGNvbmZ0ZXN0LmZpbGUKKysgICApCisrdGhlbgorKyAgICMgT2suCisrICAgOgorK2Vs c2UKKysgICBBQ19NU0dfRVJST1IoW25ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRp c3RyaWJ1dGVkIGZpbGVzIQorK0NoZWNrIHlvdXIgc3lzdGVtIGNsb2NrXSkKKytmaQorK0FDX01T R19SRVNVTFQoeWVzKV0pCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUgIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRo b3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgor KworKyMgQU1fUFJPR19JTlNUQUxMX1NUUklQCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysj IE9uZSBpc3N1ZSB3aXRoIHZlbmRvciBgaW5zdGFsbCcgKGV2ZW4gR05VKSBpcyB0aGF0IHlvdSBj YW4ndAorKyMgc3BlY2lmeSB0aGUgcHJvZ3JhbSB1c2VkIHRvIHN0cmlwIGJpbmFyaWVzLiAgVGhp cyBpcyBlc3BlY2lhbGx5CisrIyBhbm5veWluZyBpbiBjcm9zcy1jb21waWxpbmcgZW52aXJvbm1l bnRzLCB3aGVyZSB0aGUgYnVpbGQncyBzdHJpcAorKyMgaXMgdW5saWtlbHkgdG8gaGFuZGxlIHRo ZSBob3N0J3MgYmluYXJpZXMuCisrIyBGb3J0dW5hdGVseSBpbnN0YWxsLXNoIHdpbGwgaG9ub3Ig YSBTVFJJUFBST0cgdmFyaWFibGUsIHNvIHdlCisrIyBhbHdheXMgdXNlIGluc3RhbGwtc2ggaW4g YG1ha2UgaW5zdGFsbC1zdHJpcCcsIGFuZCBpbml0aWFsaXplCisrIyBTVFJJUFBST0cgd2l0aCB0 aGUgdmFsdWUgb2YgdGhlIFNUUklQIHZhcmlhYmxlIChzZXQgYnkgdGhlIHVzZXIpLgorK0FDX0RF RlVOKFtBTV9QUk9HX0lOU1RBTExfU1RSSVBdLAorK1tBQ19SRVFVSVJFKFtBTV9QUk9HX0lOU1RB TExfU0hdKWRubAorKyMgSW5zdGFsbGVkIGJpbmFyaWVzIGFyZSB1c3VhbGx5IHN0cmlwcGVkIHVz aW5nIGBzdHJpcCcgd2hlbiB0aGUgdXNlcgorKyMgcnVuIGBtYWtlIGluc3RhbGwtc3RyaXAnLiAg SG93ZXZlciBgc3RyaXAnIG1pZ2h0IG5vdCBiZSB0aGUgcmlnaHQKKysjIHRvb2wgdG8gdXNlIGlu IGNyb3NzLWNvbXBpbGF0aW9uIGVudmlyb25tZW50cywgdGhlcmVmb3JlIEF1dG9tYWtlCisrIyB3 aWxsIGhvbm9yIHRoZSBgU1RSSVAnIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIG92ZXJydWxlIHRo aXMgcHJvZ3JhbS4KKytkbmwgRG9uJ3QgdGVzdCBmb3IgJGNyb3NzX2NvbXBpbGluZyA9IHllcywg YmVjYXVzZSBpdCBtaWdodCBiZSBgbWF5YmUnLgorK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmci ICE9IG5vOyB0aGVuCisrICBBQ19DSEVDS19UT09MKFtTVFJJUF0sIFtzdHJpcF0sIDopCisrZmkK KytJTlNUQUxMX1NUUklQX1BST0dSQU09IlwkKGluc3RhbGxfc2gpIC1jIC1zIgorK0FDX1NVQlNU KFtJTlNUQUxMX1NUUklQX1BST0dSQU1dKV0pCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw MDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxp bWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBv ciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2Vy dmVkLgorKworKyMgc2VyaWFsIDIKKysKKysjIF9BTV9TVUJTVF9OT1RNQUtFKFZBUklBQkxFKQor KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBQcmV2ZW50IEF1dG9tYWtlIGZyb20g b3V0cHV0dGluZyBWQVJJQUJMRSA9IEBWQVJJQUJMRUAgaW4gTWFrZWZpbGUuaW4uCisrIyBUaGlz IG1hY3JvIGlzIHRyYWNlZCBieSBBdXRvbWFrZS4KKytBQ19ERUZVTihbX0FNX1NVQlNUX05PVE1B S0VdKQorKworKyMgQU1fU1VCU1RfTk9UTUFLRShWQVJJQUJMRSkKKysjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKyMgUHVibGljIHNpc3RlciBvZiBfQU1fU1VCU1RfTk9UTUFLRS4KKytB Q19ERUZVTihbQU1fU1VCU1RfTk9UTUFLRV0sIFtfQU1fU1VCU1RfTk9UTUFLRSgkQCldKQorKwor KyMgQ2hlY2sgaG93IHRvIGNyZWF0ZSBhIHRhcmJhbGwuICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29m dHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBw ZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhv dXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisr CisrIyBzZXJpYWwgMgorKworKyMgX0FNX1BST0dfVEFSKEZPUk1BVCkKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBDaGVjayBob3cgdG8gY3JlYXRlIGEgdGFyYmFsbCBpbiBmb3JtYXQgRk9S TUFULgorKyMgRk9STUFUIHNob3VsZCBiZSBvbmUgb2YgYHY3JywgYHVzdGFyJywgb3IgYHBheCcu CisrIworKyMgU3Vic3RpdHV0ZSBhIHZhcmlhYmxlICQoYW1fX3RhcikgdGhhdCBpcyBhIGNvbW1h bmQKKysjIHdyaXRpbmcgdG8gc3Rkb3V0IGEgRk9STUFULXRhcmJhbGwgY29udGFpbmluZyB0aGUg ZGlyZWN0b3J5CisrIyAkdGFyZGlyLgorKyMgICAgIHRhcmRpcj1kaXJlY3RvcnkgJiYgJChhbV9f dGFyKSA+IHJlc3VsdC50YXIKKysjCisrIyBTdWJzdGl0dXRlIGEgdmFyaWFibGUgJChhbV9fdW50 YXIpIHRoYXQgZXh0cmFjdCBzdWNoCisrIyBhIHRhcmJhbGwgcmVhZCBmcm9tIHN0ZGluLgorKyMg ICAgICQoYW1fX3VudGFyKSA8IHJlc3VsdC50YXIKKytBQ19ERUZVTihbX0FNX1BST0dfVEFSXSwK KytbIyBBbHdheXMgZGVmaW5lIEFNVEFSIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorK0FN X01JU1NJTkdfUFJPRyhbQU1UQVJdLCBbdGFyXSkKKyttNF9pZihbJDFdLCBbdjddLAorKyAgICAg W2FtX190YXI9JyR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIiJzsgYW1fX3VudGFyPScke0FNVEFS fSB4ZiAtJ10sCisrICAgICBbbTRfY2FzZShbJDFdLCBbdXN0YXJdLCwgW3BheF0sLAorKyAgICAg ICAgICAgICAgW200X2ZhdGFsKFtVbmtub3duIHRhciBmb3JtYXRdKV0pCisrQUNfTVNHX0NIRUNL SU5HKFtob3cgdG8gY3JlYXRlIGEgJDEgdGFyIGFyY2hpdmVdKQorKyMgTG9vcCBvdmVyIGFsbCBr bm93biBtZXRob2RzIHRvIGNyZWF0ZSBhIHRhciBhcmNoaXZlIHVudGlsIG9uZSB3b3Jrcy4KKytf YW1fdG9vbHM9J2dudXRhciBtNF9pZihbJDFdLCBbdXN0YXJdLCBbcGxhaW50YXJdKSBwYXggY3Bp byBub25lJworK19hbV90b29scz0ke2FtX2N2X3Byb2dfdGFyXyQxLSRfYW1fdG9vbHN9CisrIyBE byBub3QgZm9sZCB0aGUgYWJvdmUgdHdvIGxpbmUgaW50byBvbmUsIGJlY2F1c2UgVHJ1NjQgc2gg YW5kCisrIyBTb2xhcmlzIHNoIHdpbGwgbm90IGdyb2sgc3BhY2VzIGluIHRoZSByaHMgb2YgYC0n LgorK2ZvciBfYW1fdG9vbCBpbiAkX2FtX3Rvb2xzCisrZG8KKysgIGNhc2UgJF9hbV90b29sIGlu CisrICBnbnV0YXIpCisrICAgIGZvciBfYW1fdGFyIGluIHRhciBnbnV0YXIgZ3RhcjsKKysgICAg ZG8KKysgICAgICBBTV9SVU5fTE9HKFskX2FtX3RhciAtLXZlcnNpb25dKSAmJiBicmVhaworKyAg ICBkb25lCisrICAgIGFtX190YXI9IiRfYW1fdGFyIC0tZm9ybWF0PW00X2lmKFskMV0sIFtwYXhd LCBbcG9zaXhdLCBbJDFdKSAtY2hmIC0gIiciJCR0YXJkaXIiJworKyAgICBhbV9fdGFyXz0iJF9h bV90YXIgLS1mb3JtYXQ9bTRfaWYoWyQxXSwgW3BheF0sIFtwb3NpeF0sIFskMV0pIC1jaGYgLSAi JyIkdGFyZGlyIicKKysgICAgYW1fX3VudGFyPSIkX2FtX3RhciAteGYgLSIKKysgICAgOzsKKysg IHBsYWludGFyKQorKyAgICAjIE11c3Qgc2tpcCBHTlUgdGFyOiBpZiBpdCBkb2VzIG5vdCBzdXBw b3J0IC0tZm9ybWF0PSBpdCBkb2Vzbid0IGNyZWF0ZQorKyAgICAjIHVzdGFyIHRhcmJhbGwgZWl0 aGVyLgorKyAgICAodGFyIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxICYmIGNvbnRpbnVlCisr ICAgIGFtX190YXI9J3RhciBjaGYgLSAiJCR0YXJkaXIiJworKyAgICBhbV9fdGFyXz0ndGFyIGNo ZiAtICIkdGFyZGlyIicKKysgICAgYW1fX3VudGFyPSd0YXIgeGYgLScKKysgICAgOzsKKysgIHBh eCkKKysgICAgYW1fX3Rhcj0ncGF4IC1MIC14ICQxIC13ICIkJHRhcmRpciInCisrICAgIGFtX190 YXJfPSdwYXggLUwgLXggJDEgLXcgIiR0YXJkaXIiJworKyAgICBhbV9fdW50YXI9J3BheCAtcicK KysgICAgOzsKKysgIGNwaW8pCisrICAgIGFtX190YXI9J2ZpbmQgIiQkdGFyZGlyIiAtcHJpbnQg fCBjcGlvIC1vIC1IICQxIC1MJworKyAgICBhbV9fdGFyXz0nZmluZCAiJHRhcmRpciIgLXByaW50 IHwgY3BpbyAtbyAtSCAkMSAtTCcKKysgICAgYW1fX3VudGFyPSdjcGlvIC1pIC1IICQxIC1kJwor KyAgICA7OworKyAgbm9uZSkKKysgICAgYW1fX3Rhcj1mYWxzZQorKyAgICBhbV9fdGFyXz1mYWxz ZQorKyAgICBhbV9fdW50YXI9ZmFsc2UKKysgICAgOzsKKysgIGVzYWMKKysKKysgICMgSWYgdGhl IHZhbHVlIHdhcyBjYWNoZWQsIHN0b3Agbm93LiAgV2UganVzdCB3YW50ZWQgdG8gaGF2ZSBhbV9f dGFyCisrICAjIGFuZCBhbV9fdW50YXIgc2V0LgorKyAgdGVzdCAtbiAiJHthbV9jdl9wcm9nX3Rh cl8kMX0iICYmIGJyZWFrCisrCisrICAjIHRhci91bnRhciBhIGR1bW15IGRpcmVjdG9yeSwgYW5k IHN0b3AgaWYgdGhlIGNvbW1hbmQgd29ya3MKKysgIHJtIC1yZiBjb25mdGVzdC5kaXIKKysgIG1r ZGlyIGNvbmZ0ZXN0LmRpcgorKyAgZWNobyBHcmVwTWUgPiBjb25mdGVzdC5kaXIvZmlsZQorKyAg QU1fUlVOX0xPRyhbdGFyZGlyPWNvbmZ0ZXN0LmRpciAmJiBldmFsICRhbV9fdGFyXyA+Y29uZnRl c3QudGFyXSkKKysgIHJtIC1yZiBjb25mdGVzdC5kaXIKKysgIGlmIHRlc3QgLXMgY29uZnRlc3Qu dGFyOyB0aGVuCisrICAgIEFNX1JVTl9MT0coWyRhbV9fdW50YXIgPGNvbmZ0ZXN0LnRhcl0pCisr ICAgIGdyZXAgR3JlcE1lIGNvbmZ0ZXN0LmRpci9maWxlID4vZGV2L251bGwgMj4mMSAmJiBicmVh aworKyAgZmkKKytkb25lCisrcm0gLXJmIGNvbmZ0ZXN0LmRpcgorKworK0FDX0NBQ0hFX1ZBTChb YW1fY3ZfcHJvZ190YXJfJDFdLCBbYW1fY3ZfcHJvZ190YXJfJDE9JF9hbV90b29sXSkKKytBQ19N U0dfUkVTVUxUKFskYW1fY3ZfcHJvZ190YXJfJDFdKV0pCisrQUNfU1VCU1QoW2FtX190YXJdKQor K0FDX1NVQlNUKFthbV9fdW50YXJdKQorK10pICMgX0FNX1BST0dfVEFSCisrCisrbTRfaW5jbHVk ZShbY29uZmlnL2F4X2Jvb3N0Lm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcvYXhfbXlzcWwubTRd KQorK200X2luY2x1ZGUoW2NvbmZpZy9heF9vcmFjbGVfb2NpLm00XSkKKyttNF9pbmNsdWRlKFtj b25maWcvYXhfcG9zdGdyZXNxbC5tNF0pCisrbTRfaW5jbHVkZShbY29uZmlnL2NwcHVuaXQubTRd KQorK200X2luY2x1ZGUoW2NvbmZpZy9saWJ0b29sLm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcv bHRvcHRpb25zLm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcvbHRzdWdhci5tNF0pCisrbTRfaW5j bHVkZShbY29uZmlnL2x0dmVyc2lvbi5tNF0pCisrbTRfaW5jbHVkZShbY29uZmlnL2x0fm9ic29s ZXRlLm00XSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9NYWtlZmlsZS5hbSBz b2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFj ay9idWlsZC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAor KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3 OjA4LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw3IEBACisrIyMgYnVpbGQgc3ViLWRpcmVj dG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKysKKytNQUlOVEFJ TkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrU1VCRElSUyA9IHVuaXggbXN2YzgwCisr CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvTWFrZWZpbGUuaW4gc29jaS0zLjAu MF90cmVwMzAwL2J1aWxkL01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQv TWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUuaW4JMjAxMS0wMi0wOCAyMjozOTo1NS4wMDAw MDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNjE1IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQg YnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0 QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5 LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAw OCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtl ZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisr IyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0 LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3Rp Y2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMg UEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisr cGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5j bHVkZWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3Br Z2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0i JCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RB VEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5z dGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNU QUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFu c2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NU X0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgor K1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlw bGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSBSRUFETUUgJChzcmNkaXIpL01ha2VmaWxlLmFt ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9u Cisrc3ViZGlyID0gYnVpbGQKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00 CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9z dGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRv cHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0 fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9k ZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwK KysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09O RklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFO X0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorK1NPVVJDRVMgPQorK0RJU1Rf U09VUkNFUyA9CisrUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vy c2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5z dGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4 ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVj dXJzaXZlIFwKKysJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGlu c3RhbGwtcmVjdXJzaXZlIFwKKysJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1y ZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJz aXZlCisrUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xl YW4tcmVjdXJzaXZlCVwKKysgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1y ZWN1cnNpdmUKKytBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJl Y3Vyc2l2ZT0pIFwKKysJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFn cyBUQUdTIGN0YWdzIENUQUdTIFwKKysJZGlzdGRpcgorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9 IGN0YWdzCisrRElTVF9TVUJESVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9D T01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrYW1fX3Jl bGF0aXZpemUgPSBcCisrICBkaXIwPWBwd2RgOyBcCisrICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpc KS8uKiQkLFwxLCc7IFwKKysgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCisrICBzZWRfbGFz dD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAorKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQk LCwnOyBcCisrICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCisrICAgIGZpcnN0PWBlY2hv ICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisrICAgIGlmIHRlc3QgIiQkZmly c3QiICE9ICIuIjsgdGhlbiBcCisrICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVu IFwKKysgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8i JCRkaXIyIjsgXAorKyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRf YnV0bGFzdCJgOyBcCisrICAgICAgZWxzZSBcCisrICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGly MiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysgICAgICAgIGlmIHRlc3QgIiQkZmlyc3Qy IiA9ICIkJGZpcnN0IjsgdGhlbiBcCisrICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBz ZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAgICAgICAgZWxzZSBcCisrICAgICAgICAgIGRpcjI9 Ii4uLyQkZGlyMiI7IFwKKysgICAgICAgIGZpOyBcCisrICAgICAgICBkaXIwPSIkJGRpcjAiLyIk JGZpcnN0IjsgXAorKyAgICAgIGZpOyBcCisrICAgIGZpOyBcCisrICAgIGRpcjE9YGVjaG8gIiQk ZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAgZG9uZTsgXAorKyAgcmVsZGlyPSIk JGRpcjIiCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFS QAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytB VVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09T VF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAor K0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lP U1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NU X0xJQlNACisrQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAorK0JPT1NUX01QSV9QWVRI T05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19M SUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9QWVRIT05fTElCID0gQEJP T1NUX1BZVEhPTl9MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytC T09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09T VF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9TWVNURU1fTElCID0g QEJPT1NUX1NZU1RFTV9MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElC QAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFN RVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VS SUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAor K0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQ QAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZM QUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9 IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytD WFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RF QAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVG UyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisr RFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9f TkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVF WFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAK KytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNU QUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFM TF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytM REZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AK KytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytM VExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1Ag PSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NfTElC ID0gQE1ZU1FMX0NfTElCQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MSUJT ID0gQE1ZU1FMX0xJQlNACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0g QE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9 IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxB R1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9P Q0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAor K09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tB R0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9O QU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AK KytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVVJMID0gQFBB Q0tBR0VfVVJMQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9T RVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9 IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisr UE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1Mg PSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FM X1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0g QFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09D SV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlT UUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURf Q09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1 aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJz X3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFi c190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19j dF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0g QGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1f X3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0g QGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxk X2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRf b3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRp ciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0 YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94 eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBA ZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tA CisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9 IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92 ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAK KytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4 X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJl eGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2Nh bHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29s ZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZp eCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9y bV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sg PSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9 IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0 YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3Rv cF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAor K0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK1NVQkRJUlMgPSB1bml4IG1zdmM4MAorK2Fs bDogYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46 ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChh bV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChh bV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkg XAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7 IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJ ZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvTWFrZWZp bGUnOyBcCisrCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAt LWdudSBidWlsZC9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChz cmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNl ICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwK KysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3Rh dHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFt X19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZp Zy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRF TkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJl X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAor KyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJt IC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrCisr IyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7 IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRo cm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2 YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZh cmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisr IyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3 aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQg dmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMp OgorKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdT OyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAg ICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJ ZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsg XAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBl Y2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207 IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkg ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZp OyB0ZXN0IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBm YWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwK KysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikg ZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vl bj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1j bGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJ UlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJl dj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2 IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9y IHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1 YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9j YWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3Rhcmdl dD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZh aWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6Cisr CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3Qg IiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIg PSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3Rh Z3MpOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChU QUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc CisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0g MTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisr VEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5E RU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJc2V0IHg7IFwKKysJaGVyZT1g cHdkYDsgXAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYv bnVsbCAyPiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwK KysJICBlbXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1 ZGU7IFwKKysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRo ZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAg IHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJ ICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlzaGlmdDsgXAorKwlpZiB0ZXN0IC16ICIkKEVU QUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5p cXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhl biBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFH U19BUkdTKSBcCisrCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisrCSAgZWxzZSBcCisrCSAgICAk KEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisr CSAgICAgICQkdW5pcXVlOyBcCisrCSAgZmk7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFH UzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVO Q0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCWxpc3Q9JyQoU09VUkNFUykgJChI RUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQk bGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBl Y2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmls ZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0 eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENU QUdTX0FSR1MpJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1f Q1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR1bmlxdWUKKysKKytHVEFHUzoK KysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiAkKGFt X19jZCkgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRo ZXJlIgorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1Mg R1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3Ry aXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisr CXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwq XS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9 YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1l ICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3Ry aXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisr CSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAn L1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11 YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAg aWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChz cmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBk aXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYg dGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKysJICAgICAgZmluZCAiJChkaXN0 ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7 OyBcCisrCSAgICBmaTsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRl c3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQk ZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICAgICAgZmluZCAiJChkaXN0 ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7 OyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRk aXIiIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8k JGZpbGUiIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBc CisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1Rf U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3Vi ZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAg ICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIp LyQkc3ViZGlyIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld19kaXN0 ZGlyPSQkcmVsZGlyOyBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGly KSI7IFwKKysJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisrCSAgICBuZXdfdG9wX2Rpc3RkaXI9 JCRyZWxkaXI7IFwKKysJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19k aXN0ZGlyIiBcXCI7IFwKKysJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1f X3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKKysJ ICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAorKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCisrCSAg ICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTog XAorKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkJYW1fX3NraXBfbW9kZV9maXg9OiBc CisrCSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAor Kwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwt YW06IE1ha2VmaWxlCisraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQorK2luc3Rh bGxkaXJzLWFtOgorK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCisraW5zdGFsbC1leGVjOiBp bnN0YWxsLWV4ZWMtcmVjdXJzaXZlCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJz aXZlCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1hbTogYWxs LWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1k YXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCisraW5zdGFs bC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElO U1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFM TF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAn JChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9H PSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1n ZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xF QU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysJLXRlc3QgLiA9ICIk KHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0g LWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5l cmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0 byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lh bCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMp IiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNp dmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFu LWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmls ZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRh Z3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1y ZWN1cnNpdmUKKysKKytodG1sLWFtOgorKworK2luZm86IGluZm8tcmVjdXJzaXZlCisrCisraW5m by1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06CisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZp LXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwtZXhlYy1hbToKKysK KytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWh0bWwt YW06CisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFs bC1pbmZvLWFtOgorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBk Zi1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxs LXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHMtYW06CisrCisraW5zdGFsbGNoZWNrLWFtOgor KworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAt ZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVy LWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisr CisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9v bAorKworK3BkZjogcGRmLXJlY3Vyc2l2ZQorKworK3BkZi1hbToKKysKKytwczogcHMtcmVjdXJz aXZlCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgorKworKy5NQUtFOiAkKFJFQ1VSU0lW RV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAor KwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKKysKKysuUEhPTlk6ICQo UkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdT IFwKKysJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFu LWxpYnRvb2wgXAorKwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1n ZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkg ZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0g aW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZp LWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFs bC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisrCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBp bnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCisrCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBp bnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCisrCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGly cyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5lci1jbGVhbi1n ZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1s aWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBcCisrCXVuaW5z dGFsbCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrCisrIyBUZWxsIHZlcnNpb25zIFsz LjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90 aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRl ZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2Yzgw L2RsbC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2RsbC9NYWtl ZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUu YW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4LjAw MDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxMSBAQAorKyMjIGJ1aWxkL21zdmM4MC9kbGwgc3Vi LWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKysKKytN QUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrRVhUUkFfRElTVCA9IGJ1aWxk LmJhdCBlbXB0eS52Y3Byb2ogbWFrZXRlc3QubWFrIG9kYmNfdGVzdF9wb3N0Z3Jlc3FsLnZjcHJv aiBcCisrCXBvc3RncmVzcWxfdGVzdC52Y3Byb2ogc3FsaXRlM190ZXN0LnZjcHJvaiBjbGVhbi5i YXQgXAorKwlmaXJlYmlyZF90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfYWNjZXNzLnZjcHJvaiBvZGJj LnZjcHJvaiBcCisrCXBvc3RncmVzcWwudmNwcm9qIHNxbGl0ZTMudmNwcm9qIGNvcmUudmNwcm9q IGZpcmViaXJkLnZjcHJvaiBcCisrCW9kYmNfdGVzdF9tc3NxbC52Y3Byb2ogb3JhY2xlX3Rlc3Qu dmNwcm9qIHNvY2lfZGxsLnNsbiBcCisrCWVtcHR5X3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9teXNx bC52Y3Byb2ogb3JhY2xlLnZjcHJvaiBzb2NpX2RsbC52c3Byb3BzCitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAz MDAvYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1 aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5p bgkyMDExLTAyLTA4IDIyOjM5OjU1LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw0MTkgQEAK KysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmls ZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5 OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAy MDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sCisrIyBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRv IGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0 aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkg bGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9N QUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FH RUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIg PSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBB Q0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFU T1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Cisr aW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBU ID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisr dHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0g OgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxM ID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJp cGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQo c3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IGJ1aWxkL21zdmM4MC9kbGwKKytBQ0xPQ0FM X000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQo dG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2Rpcikv Y29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBz KSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFs bGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGly KS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBB VEhfRklMRVMgPQorK1NPVVJDRVMgPQorK0RJU1RfU09VUkNFUyA9CisrRElTVEZJTEVTID0gJChE SVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytB Q0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NP TkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0g QEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AK KytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklM RVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJ QiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytC T09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBA Qk9PU1RfTVBJX1BZVEhPTl9MSUJACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09T VF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9O X0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklB TElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNf TElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lT VEVNX0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1Rf VU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJA CisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9O X0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RF ID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxB R1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQ VU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRf TElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhA CisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxB R1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNA CisrREVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0g QERVTVBCSU5ACisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9f VCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JF UCA9IEBGR1JFUEAKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllf VkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExf REFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JB TUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BS T0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBA TERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wg PSBATElCVE9PTEAKKytMSVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9 IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9Q QAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxf Q19MSUJACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxf TElCU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1F RElUID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAK KytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFD TEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdT QAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBA T1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNL QUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFD S0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0Vf VEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9VUkwgPSBAUEFDS0FHRV9VUkxA CisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9 IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJ R0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FM X0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JF U1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAK KytSQU5MSUIgPSBAUkFOTElCQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VA CisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNf QlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJT X0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JF U1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0g QFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBA YWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxk ZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNk aXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKyth Y19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1 ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBA YW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFy QAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBA YnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWls ZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxk ZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAK KytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0g QGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AK KytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0g QGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1 QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKyto dG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIg PSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0 ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisr bG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJA CisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRp ciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZp eEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisr cHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tA Cisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAK KytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlh c0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGly ID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxB R1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytNQUlOVEFJTkVSQ0xFQU5G SUxFUyA9IE1ha2VmaWxlLmluCisrRVhUUkFfRElTVCA9IGJ1aWxkLmJhdCBlbXB0eS52Y3Byb2og bWFrZXRlc3QubWFrIG9kYmNfdGVzdF9wb3N0Z3Jlc3FsLnZjcHJvaiBcCisrCXBvc3RncmVzcWxf dGVzdC52Y3Byb2ogc3FsaXRlM190ZXN0LnZjcHJvaiBjbGVhbi5iYXQgXAorKwlmaXJlYmlyZF90 ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfYWNjZXNzLnZjcHJvaiBvZGJjLnZjcHJvaiBcCisrCXBvc3Rn cmVzcWwudmNwcm9qIHNxbGl0ZTMudmNwcm9qIGNvcmUudmNwcm9qIGZpcmViaXJkLnZjcHJvaiBc CisrCW9kYmNfdGVzdF9tc3NxbC52Y3Byb2ogb3JhY2xlX3Rlc3QudmNwcm9qIHNvY2lfZGxsLnNs biBcCisrCWVtcHR5X3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9teXNxbC52Y3Byb2ogb3JhY2xlLnZj cHJvaiBzb2NpX2RsbC52c3Byb3BzCisrCisrYWxsOiBhbGwtYW0KKysKKysuU1VGRklYRVM6Cisr JChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2Rp cikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAk PzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQk ZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRo ZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAg ZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01B S0UpIC0tZ251IGJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUnOyBcCisrCSQoYW1fX2NkKSAkKHRv cF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSBidWlsZC9tc3ZjODAvZGxsL01h a2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZp bGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisr CSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAn IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIp LyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21h eWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisr CisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisr JChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChhbV9fYWNsb2Nh bF9tNF9kZXBzKToKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKwor K2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKyt0YWdzOiBUQUdTCisrVEFH UzoKKysKKytjdGFnczogQ1RBR1MKKytDVEFHUzoKKysKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxF UykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpd L1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwK KysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25l IHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJz fF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRp c3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8 IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBc CisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9m aWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVu IGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7 IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCws J2A7IFwKKysJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisrCSAg ICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBj aG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNk aXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAt ZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAg ICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBj aG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1mcFIgJCRkLyQkZmls ZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3Qg LWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRp c3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQor K2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stYW0KKythbGwtYW06IE1ha2VmaWxlCisr aW5zdGFsbGRpcnM6CisraW5zdGFsbDogaW5zdGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFs bC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVu aW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VG TEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazog aW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFH UykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0 YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9G TEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RB TExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xl YW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgor KwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVB Tl9GSUxFUykKKysJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NM RUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisr CisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGlu dGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVz IHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXog IiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVT KQorK2NsZWFuOiBjbGVhbi1hbQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxp YnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorKwktcm0g LWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljCisr CisrZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2h0bWwt YW06CisrCisraW5mbzogaW5mby1hbQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFt OgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorKworK2luc3RhbGwtZHZpLWFtOgor KworK2luc3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQor KworK2luc3RhbGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQor KworK2luc3RhbGwtaW5mby1hbToKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjog aW5zdGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBzOiBpbnN0 YWxsLXBzLWFtCisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisr bWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUK KyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5l cmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06 IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLWFt CisrCisrcGRmLWFtOgorKworK3BzOiBwcy1hbQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1h bToKKysKKysuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiBhbGwg YWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBc CisrCWRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0ZGly IGR2aSBcCisrCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFs bC1hbSBcCisrCWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFs bC1kdmktYW0gXAorKwlpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBp bnN0YWxsLWh0bWwtYW0gXAorKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwt bWFuIGluc3RhbGwtcGRmIFwKKysJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBz LWFtIGluc3RhbGwtc3RyaXAgXAorKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3Rh bGxkaXJzIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9z dGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRm IHBkZi1hbSBwcyBwcy1hbSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAor KworKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0 IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0 IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAw L2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWls ZC9tc3ZjODAvbGliL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0J MjAwOS0wNC0xNiAxOTozNzowNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTEgQEAKKysj IyBidWlsZC9tc3ZjODAvbGliIHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgor KworK0VYVFJBX0RJU1QgPSBidWlsZC5iYXQgZW1wdHkudmNwcm9qIG1ha2V0ZXN0Lm1hayBvZGJj X3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2ogXAorKwlwb3N0Z3Jlc3FsX3Rlc3QudmNwcm9qIHNxbGl0 ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwKKysJZmlyZWJpcmRfdGVzdC52Y3Byb2ogb2RiY190 ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3Byb2ogXAorKwlwb3N0Z3Jlc3FsLnZjcHJvaiBzcWxp dGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJlYmlyZC52Y3Byb2ogXAorKwlvZGJjX3Rlc3RfbXNz cWwudmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJvaiBzb2NpX2xpYi5zbG4gXAorKwllbXB0eV90ZXN0 LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNwcm9qIG9yYWNsZS52Y3Byb2ogc29jaV9saWIudnNw cm9wcworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9saWIvTWFrZWZp bGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4KKy0t LSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmluCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxk L21zdmM4MC9saWIvTWFrZWZpbGUuaW4JMjAxMS0wMi0wOCAyMjozOTo1NS4wMDAwMDAwMDAgKzAx MDAKK0BAIC0wLDAgKzEsNDE5IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21h a2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMg Q29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAy MDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBp cyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1 bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0 aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJl c2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRo ZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxB UiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRp ciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikv QFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNk aXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZF UlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGlu c3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkg LWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURF UiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwg PSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5J TlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhv c3RACisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2Vm aWxlLmluIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBidWls ZC9tc3ZjODAvbGliCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2Ft X19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVz cWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9u cy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNv bGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9 ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQo QUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19I RUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxF UyA9CisrQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KKytTT1VSQ0VTID0KKytESVNUX1NPVVJD RVMgPQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElO Rk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFS QAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVU T0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NG TEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRF X1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElC QAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9M SUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAorK0JP T1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAorK0JPT1NUX1BST0dS QU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9QWVRI T05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JF R0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9O X0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9T WVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09T VF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VO SVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAK KytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAor K0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AK KytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0g QENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQ UFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRf VkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9 IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQ QVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBA RFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNI T19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VY RUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJ T04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwg PSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJP R1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJ UFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytM RCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJ QlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1Mg PSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZP QAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAor K01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AK KytNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJT SU9OQAorK05NID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1Q QAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JB Q0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdT ID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09D SV9WRVJTSU9OQAorK09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNL QUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRA CisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNL QUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tB R0VfVVJMID0gQFBBQ0tBR0VfVVJMQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJ T05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAor K1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNR TF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JF U1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9 IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytTRUQgPSBAU0VEQAor K1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19C VVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJ UEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJ T05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19z cmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bf c3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0 X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2Ft X19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGlu Z19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisr YW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1 aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9j cHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRv ckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJv b3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBk b2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisr ZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nf b2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AK Kytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5k b3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBA aW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxs X3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhl Y2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0 ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBt a2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRm ZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9n cmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRp ckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGly QAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3Rhcmdl dF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRf cHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0 b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNk aXIpCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK0VYVFJBX0RJU1QgPSBi dWlsZC5iYXQgZW1wdHkudmNwcm9qIG1ha2V0ZXN0Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52 Y3Byb2ogXAorKwlwb3N0Z3Jlc3FsX3Rlc3QudmNwcm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xl YW4uYmF0IFwKKysJZmlyZWJpcmRfdGVzdC52Y3Byb2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2og b2RiYy52Y3Byb2ogXAorKwlwb3N0Z3Jlc3FsLnZjcHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZj cHJvaiBmaXJlYmlyZC52Y3Byb2ogXAorKwlvZGJjX3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90 ZXN0LnZjcHJvaiBzb2NpX2xpYi5zbG4gXAorKwllbXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3Rf bXlzcWwudmNwcm9qIG9yYWNsZS52Y3Byb2ogc29jaV9saWIudnNwcm9wcworKworK2FsbDogYWxs LWFtCisrCisrLlNVRkZJWEVTOgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9N YWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVf ZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVf ZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAg JiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJ ICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0 b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBidWlsZC9tc3ZjODAvbGliL01ha2VmaWxl JzsgXAorKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1n bnUgYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtl ZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVz CisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAor KwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9j b25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAg ICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGly KS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRk aXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRV U19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9f Y29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2Rl cHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaAorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisrCisrbW9zdGx5Y2xlYW4tbGlidG9v bDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9s aWJzCisrdGFnczogVEFHUworK1RBR1M6CisrCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6CisrCisr CisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIp IiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVj aG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwls aXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0 OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAv fHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIp L3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkg YGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRp cikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAor Kwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8 fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAg aWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIg fCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIp LyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUg ZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisr CSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIp OyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRk aXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUg ZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisr CSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisr CSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwg Y3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsg XAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFt CisrYWxsLWFtOiBNYWtlZmlsZQorK2luc3RhbGxkaXJzOgorK2luc3RhbGw6IGluc3RhbGwtYW0K KytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1k YXRhLWFtCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0K KysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEt YW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6Cisr CSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQ X1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJP R1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8 fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCkn ImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysK KytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIg fHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8 fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklH X0NMRUFOX1ZQQVRIX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVj aG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlA ZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8g cmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYg JChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tYW0KKysKKytjbGVhbi1hbTog Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFu OiBkaXN0Y2xlYW4tYW0KKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1h bSBkaXN0Y2xlYW4tZ2VuZXJpYworKworK2R2aTogZHZpLWFtCisrCisrZHZpLWFtOgorKworK2h0 bWw6IGh0bWwtYW0KKysKKytodG1sLWFtOgorKworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFt OgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0K KysKKytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1o dG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWh0bWwtYW06CisrCisraW5zdGFsbC1p bmZvOiBpbnN0YWxsLWluZm8tYW0KKysKKytpbnN0YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1t YW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisrCisraW5zdGFsbC1wZGYtYW06 CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorKworK2luc3RhbGwtcHMtYW06CisrCisr aW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4t YW0KKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFt IG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1h bQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxp YnRvb2wKKysKKytwZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMtYW0KKysKKytw cy1hbToKKysKKyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1z dHJpcAorKworKy5QSE9OWTogYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1n ZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlz dGNsZWFuLWxpYnRvb2wgZGlzdGRpciBkdmkgXAorKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8g aW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRh LWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKKysJaW5zdGFsbC1leGVjIGluc3RhbGwt ZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKKysJaW5zdGFsbC1pbmZvIGlu c3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCisrCWluc3RhbGwtcGRmLWFt IGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKKysJaW5zdGFsbGNoZWNr IGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwlt b3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdW5pbnN0YWxsIHVuaW5zdGFs bC1hbQorKworK0BTRVRfTUFLRUAKKysKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2Yg R05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lz dGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9S VDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0g c29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZp bGUuYW0JMjAwOS0wNC0xNiAxOTozNzowOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsOCBA QAorKyMjIGJ1aWxkL21zdmM4MCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIp L01ha2VmaWxlLmNvbW1vbgorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4K KysKKytFWFRSQV9ESVNUID0gUkVBRE1FLnR4dCBzb2NpLnZzcHJvcHMKKysKKytTVUJESVJTID0g ZGxsIGxpYgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9NYWtlZmls ZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL01ha2VmaWxlLmluCistLS0gc29j aS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9N YWtlZmlsZS5pbgkyMDExLTAyLTA4IDIyOjM5OjU1LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCAr MSw2MTYgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJv bSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMp IDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisr IyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sCisrIyBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisr IyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJt aXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisr CisrQFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGly KS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKytw a2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhl Y2RpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFU SF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMg LW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxf c2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxM X0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9J TlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxf VU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6Cisr YnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NP TU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkk KHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IGJ1aWxkL21zdmM4MAorK0FD TE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBz ID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2ku bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bf c3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRv b2wubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJz aW9uLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3Jj ZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200 X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtp bnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVp bGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK0NPTkZJR19DTEVB Tl9WUEFUSF9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytSRUNVUlNJVkVf VEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAor KwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwK KysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0 YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBk Zi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlp bnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZl IFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKKytSRUNVUlNJVkVfQ0xFQU5f VEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlz dGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0FNX1JFQ1VSU0lW RV9UQVJHRVRTID0gJChSRUNVUlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAorKwkkKFJFQ1VS U0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAor KwlkaXN0ZGlyCisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNUX1NVQkRJUlMg PSAkKFNVQkRJUlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMp ICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKythbV9fcmVsYXRpdml6ZSA9IFwKKysgIGRpcjA9 YHB3ZGA7IFwKKysgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAorKyAgc2Vk X3Jlc3Q9J3MsXlteL10qLyosLCc7IFwKKysgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxc MSwnOyBcCisrICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKKysgIHdoaWxlIHRlc3Qg LW4gIiQkZGlyMSI7IGRvIFwKKysgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQk c2VkX2ZpcnN0ImA7IFwKKysgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKKysg ICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4gXAorKyAgICAgICAgZGlyMj1gZWNo byAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisrICAgICAgICBk aXIwPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKKysgICAgICBl bHNlIFwKKysgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmly c3QiYDsgXAorKyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwK KysgICAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBc CisrICAgICAgICBlbHNlIFwKKysgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAorKyAgICAg ICAgZmk7IFwKKysgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisrICAgICAgZmk7 IFwKKysgICAgZmk7IFwKKysgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRf cmVzdCJgOyBcCisrICBkb25lOyBcCisrICByZWxkaXI9IiQkZGlyMiIKKytBQ0xPQ0FMID0gQEFD 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 QUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9VUkwgPSBAUEFDS0FHRV9VUkxACisrUEFDS0FHRV9W RVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFS QVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JF U1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9T VEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NA CisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBA UkFOTElCQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBA U0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NP Q0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytT T0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01N QU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGly QAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190 b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3Rf Q0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklO ID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xl YWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAor K2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9 IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNA CisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWls ZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFk aXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0g QGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tA CisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZp eCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9z dF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3Mg PSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0 bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAK KytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGli ZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0g QGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbWFuZGlyID0g QG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNs dWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFt X3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNk aXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3Rh dGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGly ID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVp bGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWls ZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9w X2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2Vm aWxlLmluCisrRVhUUkFfRElTVCA9IFJFQURNRS50eHQgc29jaS52c3Byb3BzCisrU1VCRElSUyA9 IGRsbCBsaWIKKythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIp L01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZp bGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAor KwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAor KwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAw OyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAor Kwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251 IGJ1aWxkL21zdmM4MC9NYWtlZmlsZSc7IFwKKysJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYg XAorKwkgICQoQVVUT01BS0UpIC0tZ251IGJ1aWxkL21zdmM4MC9NYWtlZmlsZQorKy5QUkVDSU9V UzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVz KikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxl c19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7 CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmln dXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2Rpcikv Y29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAk KGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisrCisr bW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgor Kwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9y aWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQg cnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNo YW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBN YWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1 cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1h a2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBv dGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBs aW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsg XAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkg ICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwK KysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hv ICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1 YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJk aXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9z ZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNl IFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChh bV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0 KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRv dF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRh cmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisrCisrJChSRUNV UlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZv ciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSog fCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVz YWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAorKwkg IGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUykn IDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2PScn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIu IjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7 IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNl ZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkgIGVj aG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRp ciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJ ICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJ ICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxf dGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIk JGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGly IGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAk JHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3Rh Z3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFE RVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMp ICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGlu ICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxz ZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sg ZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25l bXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQg JCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJT KSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQo TElTUCkKKysJc2V0IHg7IFwKKysJaGVyZT1gcHdkYDsgXAorKwlpZiAoJChFVEFHUykgLS1ldGFn cy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKysJICBpbmNsdWRl X29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9LjsgXAorKwllbHNlIFwK KysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9OyBcCisrCWZp OyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkg IGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYg JCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0k JGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQo U09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9 YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hv ICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAk KEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7 IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlz aGlmdDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7 IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwK KysJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxB R1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAgICIkJEAiICQkdW5p cXVlOyBcCisrCSAgZWxzZSBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRB R1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAgICQkdW5pcXVlOyBcCisrCSAgZmk7IFwK KysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykg JChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJ U1ApCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMp JzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAi JCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAg ZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBc CisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7 IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKysJICB8fCAk KENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisr CSAgICAgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxk ZGlyKSAmJiBwd2RgIFwKKysJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYg Z3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorKworK2Rpc3RjbGVhbi10YWdzOgorKwkt cm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6 ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3Mv W10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9z cmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNU RklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAk JGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJ ICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAor KwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRp c3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14v XSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUg aW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAk JGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQg JCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdz LC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0 aGVuIFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAt NzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAgaWYgdGVz dCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisr CSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0 IDE7IFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAt NzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLWZw UiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAor KwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGNwIC1wICQkZC8k JGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsg XAorKwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAg ICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIk KGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlk b25lCisrCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICBkaXIx PSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAorKwkgICAgJChhbV9fcmVs YXRpdml6ZSk7IFwKKysJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCisrCSAgICBkaXIxPSQk c3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKKysJICAgICQoYW1fX3JlbGF0aXZpemUp OyBcCisrCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGVjaG8gIiAoY2Qg JCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3Rv cF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKKysJICAgIGVjaG8gIiAg ICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBf bW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKKysJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAor KwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9 IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIg XAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTog XAorKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCisrCSAgICAgICAgZGlzdGRpcikgXAorKwkgICAg ICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2No ZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwtYW06IE1ha2VmaWxlCisraW5zdGFsbGRpcnM6IGlu c3RhbGxkaXJzLXJlY3Vyc2l2ZQorK2luc3RhbGxkaXJzLWFtOgorK2luc3RhbGw6IGluc3RhbGwt cmVjdXJzaXZlCisraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCisraW5zdGFs bC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVj dXJzaXZlCisrCisraW5zdGFsbC1hbTogYWxsLWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0 YWxsY2hlY2stcmVjdXJzaXZlCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VG TEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBp bnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJ UF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklO U1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5 Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmlj OgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19D TEVBTl9GSUxFUykKKysJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklH X0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMp CisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlz IGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZp bGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3Qg LXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJ TEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJp 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 cyB0YWdzLXJlY3Vyc2l2ZSBcCisrCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01B S0VACisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBl eHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5 c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAv YnVpbGQvdW5peC9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL3VuaXgv TWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4 LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxMSBAQAorKyMjIGJ1aWxkL3VuaXggc3ViLWRp cmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKysKKytNQUlO VEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lf Q09NUEFUSUJJTElUWSA9ICAuX2ZpbmQtYm9vc3QudGNsIC5fYnVpbGQtbXlzcWwudGNsIC5fYnVp bGQtcG9zdGdyZXNxbC50Y2wgLl9leGVjdXRlLnRjbCAuX2J1aWxkLWNvcmUudGNsIC5faW5zdGFs bC50Y2wgLl9wYXJzZS1wYXJhbWV0ZXJzLnRjbAorKworK0VYVFJBX0RJU1QgPSBidWlsZC1jb3Jl LnRjbCBidWlsZC1vcmFjbGUudGNsIGJ1aWxkLnRjbCBpbnN0YWxsLnRjbCBcCisrCXBhcnNlLXBh cmFtZXRlcnMudGNsIGZpbmQtYm9vc3QudGNsIGJ1aWxkLW15c3FsLnRjbCBcCisrCWJ1aWxkLXBv c3RncmVzcWwudGNsIGV4ZWN1dGUudGNsIFwKKysJJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBB VElCSUxJVFkpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmls ZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgorLS0tIHNvY2kt My4wLjBfNC1wYWNrL2J1aWxkL3VuaXgvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmls ZS5pbgkyMDExLTAyLTA4IDIyOjM5OjU1LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw0MTkg QEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtl ZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQs IDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAz LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sCisrIyBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9u IHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZp Y2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQg YnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNF VF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFD S0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJk aXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2Rpcikv QFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBB UkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0 CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NS SVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEp CisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxM ID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNU QUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRf dHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9 ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHRvcF9z cmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IGJ1aWxkL3VuaXgKKytBQ0xPQ0FMX000 ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9w X3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf bXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29u ZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAk KENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRp cnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9z b2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBBVEhf RklMRVMgPQorK1NPVVJDRVMgPQorK0RJU1RfU09VUkNFUyA9CisrRElTVEZJTEVTID0gJChESVNU X0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xP 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 TkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9VUkwgPSBAUEFDS0FHRV9VUkxACisr UEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQ QVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AK KytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJ UlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FM X0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytS QU5MSUIgPSBAUkFOTElCQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisr U0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVS SUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JV UklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQ TE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJz X2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGly ID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJA CisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19j dF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVA CisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1f X3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAor K2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVp bGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9v c0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGly QAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytk aWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRv eHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytl eGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhv c3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAor K2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1s ZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBA aW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhf b2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9j YWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisr 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 ICsxLDI4NiBAQAorK2RubCAkSWQ6IGF4X29yYWNsZV9vY2kubTQsdiAxLjExIDIwMDgvMDQvMjgg MTk6NTg6NTQgbWxvc2tvdCBFeHAgJAorK2RubAorK2RubCBAc3lub3BzaXMgQVhfTElCX09SQUNM RV9PQ0koW01JTklNVU0tVkVSU0lPTl0pCisrZG5sCisrZG5sIFRoaXMgbWFjcm8gcHJvdmlkZXMg dGVzdHMgb2YgYXZhaWxhYmlsaXR5IG9mIE9yYWNsZSBPQ0kgQVBJCisrZG5sIG9mIHBhcnRpY3Vs YXIgdmVyc2lvbiBvciBuZXdlci4KKytkbmwgVGhpcyBtYWNyb3MgY2hlY2tzIGZvciBPcmFjbGUg T0NJIGhlYWRlcnMgYW5kIGxpYnJhcmllcyAKKytkbmwgYW5kIGRlZmluZXMgY29tcGlsYXRpb24g ZmxhZ3MKKytkbmwgCisrZG5sIE1hY3JvIHN1cHBvcnRzIGZvbGxvd2luZyBvcHRpb25zIGFuZCB0 aGVpciB2YWx1ZXM6CisrZG5sIDEpIFNpbmdsZS1vcHRpb24gdXNhZ2U6CisrZG5sIC0td2l0aC1v cmFjbGUgLSBwYXRoIHRvIE9SQUNMRV9IT01FIGRpcmVjdG9yeQorK2RubCAyKSBUd28tb3B0aW9u cyB1c2FnZSAoYm90aCBvcHRpb25zIGFyZSByZXF1aXJlZCk6CisrZG5sIC0td2l0aC1vcmFjbGUt aW5jbHVkZSAtIHBhdGggdG8gZGlyZWN0b3J5IHdpdGggT0NJIGhlYWRlcnMKKytkbmwgLS13aXRo LW9yYWNsZS1saWIgLSBwYXRoIHRvIGRpcmVjdG9yeSB3aXRoIE9DSSBsaWJyYXJpZXMgCisrZG5s CisrZG5sIE5PVEU6IFRoZXNlIG9wdGlvbnMgZGVzY3JpYmVkIGFib3ZlIGRvZXMgbm90IHRha2Ug eWVzfG5vIHZhbHVlcy4KKytkbmwgSWYgJ3llcycgdmFsdWUgaXMgcGFzc2VkLCB0aGVuIFdBUk5J TkcgbWVzc2FnZSB3aWxsIGJlIGRpc3BsYXllZCwKKytkbmwgJ25vJyB2YWx1ZSwgYXMgd2VsbCBh cyB0aGUgLS13aXRob3V0LW9yYWNsZSogdmFyaWF0aW9ucyB3aWxsIGNhdXNlCisrZG5sIHRoZSBt YWNybyB3b24ndCBjaGVjayBlbnl0aGluZy4KKytkbmwKKytkbmwgVGhpcyBtYWNybyBjYWxsczoK KytkbmwKKytkbmwgICBBQ19TVUJTVChPUkFDTEVfT0NJX0NGTEFHUykKKytkbmwgICBBQ19TVUJT VChPUkFDTEVfT0NJX0xERkxBR1MpCisrZG5sICAgQUNfU1VCU1QoT1JBQ0xFX09DSV9WRVJTSU9O KQorK2RubAorK2RubCBBbmQgc2V0czoKKytkbmwKKytkbmwgICBIQVZFX09SQUNMRQorK2RubAor K2RubCBAY2F0ZWdvcnkgSW5zdGFsbGVkUGFja2FnZXMKKytkbmwgQGNhdGVnb3J5IEN4eAorK2Ru bCBAYXV0aG9yIE1hdGV1c3ogTG9za290IDxtYXRldXN6QGxvc2tvdC5uZXQ+CisrZG5sIEB2ZXJz aW9uICREYXRlOiAyMDA4LzA0LzI4IDE5OjU4OjU0ICQKKytkbmwgQGxpY2Vuc2UgQWxsUGVybWlz c2l2ZQorK2RubAorK2RubCAkSWQ6IGF4X29yYWNsZV9vY2kubTQsdiAxLjExIDIwMDgvMDQvMjgg MTk6NTg6NTQgbWxvc2tvdCBFeHAgJAorK2RubAorK0FDX0RFRlVOKFtBWF9MSUJfT1JBQ0xFX09D SV0sCisrWworKyAgICBBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pCisrICAgIEFDX0FS R19XSVRIKFtvcmFjbGVdLAorKyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1vcmFjbGU9 QDw6QERJUkA6PkBdLAorKyAgICAgICAgICAgIFt1c2UgT3JhY2xlIE9DSSBBUEkgZnJvbSBnaXZl biBwYXRoIHRvIE9yYWNsZSBob21lIGRpcmVjdG9yeV0KKysgICAgICAgICksCisrICAgICAgICBb CisrICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAg IGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9NRSI7IHRoZW4KKysgICAgICAgICAgICAgICAgb3JhY2xl X2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAg ICAgICBvcmFjbGVfaG9tZV9kaXI9IiIKKysgICAgICAgICAgICBmaSAKKysgICAgICAgIGZpCisr ICAgICAgICBdLAorKyAgICAgICAgWworKyAgICAgICAgaWYgdGVzdCAtbiAiJE9SQUNMRV9IT01F IjsgdGhlbgorKyAgICAgICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iJE9SQUNMRV9IT01FIgorKyAg ICAgICAgZWxzZQorKyAgICAgICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iIgorKyAgICAgICAgZmkg CisrICAgICAgICBdCisrICAgICkKKysKKysgICAgQUNfQVJHX1dJVEgoW29yYWNsZS1pbmNsdWRl XSwKKysgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtb3JhY2xlLWluY2x1ZGU9QDw6QERJ UkA6PkBdLAorKyAgICAgICAgICAgIFt1c2UgT3JhY2xlIE9DSSBBUEkgaGVhZGVycyBmcm9tIGdp dmVuIHBhdGhdCisrICAgICAgICApLAorKyAgICAgICAgW29yYWNsZV9ob21lX2luY2x1ZGVfZGly PSIkd2l0aHZhbCJdLAorKyAgICAgICAgW29yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIiXQorKyAg ICApCisrICAgIEFDX0FSR19XSVRIKFtvcmFjbGUtbGliXSwKKysgICAgICAgIEFDX0hFTFBfU1RS SU5HKFstLXdpdGgtb3JhY2xlLWxpYj1APDpARElSQDo+QF0sCisrICAgICAgICAgICAgW3VzZSBP cmFjbGUgT0NJIEFQSSBsaWJyYXJpZXMgZnJvbSBnaXZlbiBwYXRoXQorKyAgICAgICAgKSwKKysg ICAgICAgIFtvcmFjbGVfaG9tZV9saWJfZGlyPSIkd2l0aHZhbCJdLAorKyAgICAgICAgW29yYWNs ZV9ob21lX2xpYl9kaXI9IiJdCisrICAgICkKKysKKysgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiIK KysgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIiCisrICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iIgor KworKyAgICBkbmwKKysgICAgZG5sIENvbGxlY3QgaW5jbHVkZS9saWIgcGF0aHMKKysgICAgZG5s IAorKyAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ibm8iCisrCisrICAgIGlmIHRlc3QgLW4g IiRvcmFjbGVfaG9tZV9kaXIiOyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hv bWVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAieWVzIjsgdGhlbgorKyAg ICAgICAgICAgIGRubCBPUkFDTEVfSE9NRSBwYXRoIHByb3ZpZGVkCisrICAgICAgICAgICAgCisr ICAgICAgICAgICAgZG5sIFByaW1hcnkgcGF0aCB0byBPQ0kgaGVhZGVycywgYXZhaWxhYmxlIGlu IE9yYWNsZT49MTAKKysgICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVfaG9t ZV9kaXIvcmRibXMvcHVibGljIgorKyAgICAgICAgICAgIAorKyAgICAgICAgICAgIGRubCBTZWNv bmRhcnkgcGF0aCB0byBPQ0kgaGVhZGVycyB1c2VkIGJ5IG9sZGVyIHZlcnNpb25zCisrICAgICAg ICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyMj0iJG9yYWNsZV9ob21lX2Rpci9yZGJtcy9kZW1vIgor KworKyAgICAgICAgICAgIGRubCBMaWJyYXJ5IHBhdGgKKysgICAgICAgICAgICBvcmFjbGVfbGli X2Rpcj0iJG9yYWNsZV9ob21lX2Rpci9saWIiCisrICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVf aG9tZV9kaXIiID0gInllcyI7IHRoZW4KKysgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9f cGF0aD0ieWVzIgorKyAgICAgICAgZmkKKysKKysgICAgZWxpZiB0ZXN0IC1uICIkb3JhY2xlX2hv bWVfaW5jbHVkZV9kaXIiIC1vIC1uICIkb3JhY2xlX2hvbWVfbGliX2RpciI7IHRoZW4KKysKKysg ICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgIT0gIm5vIiAtYSAiJG9y YWNsZV9ob21lX2luY2x1ZGVfZGlyIiAhPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIG9yYWNs ZV9pbmNsdWRlX2Rpcj0iJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIgorKyAgICAgICAgZWxpZiB0 ZXN0ICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiID0gInllcyI7IHRoZW4KKysgICAgICAgICAg ICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgorKyAgICAgICAgZmkKKysKKysgICAgICAg IGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVf bGliX2RpciIgIT0gInllcyI7IHRoZW4KKysgICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9y YWNsZV9ob21lX2xpYl9kaXIiCisrICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJf ZGlyIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9 InllcyIKKysgICAgICAgIGZpCisrICAgIGZpCisrCisrICAgIGlmIHRlc3QgIiR3YW50X29yYWNs ZV9idXRfbm9fcGF0aCIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgQUNfTVNHX1dBUk4oW09yYWNs ZSBzdXBwb3J0IGlzIHJlcXVlc3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVlbiBwcm92 aWRlZC4gXAorK1BsZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAtLXdpdGgt b3JhY2xlIG9yIFwKKystLXdpdGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFjbGUtbGli IG9wdGlvbnMuXSkKKysgICAgZmkKKysKKysgICAgZG5sCisrICAgIGRubCBDaGVjayBPQ0kgZmls ZXMKKysgICAgZG5sCisrICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIiIC1hIC1u ICIkb3JhY2xlX2xpYl9kaXIiOyB0aGVuCisrCisrICAgICAgICBzYXZlZF9DUFBGTEFHUz0iJENQ UEZMQUdTIgorKyAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9k aXIiCisrCisrICAgICAgICBkbmwgQWRkaXRpb25hbCBwYXRoIGZvciBvbGRlciBPcmFjbGUgaW5z dGFsbGF0aW9ucyAKKysgICAgICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIyIjsg dGhlbgorKyAgICAgICAgICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVf ZGlyMiIKKysgICAgICAgIGZpCisrCisrICAgICAgICAjIEZpZ3VyZSBvdXQgaWYgd2UgYXJlIGJ1 aWxkaW5nIG9uIHdpbjMyLgorKyAgICAgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgICAgICAg ICptaW5ndzMyKiApIFdJTjMyPXllcyA7OworKyAgICAgICAgICAgICpjeWd3aW4qICkgIFdJTjMy PXllcyA7OworKyAgICAgICAgICAgICopIFdJTjMyPW5vIDs7CisrICAgICAgICBlc2FjCisrCisr ICAgICAgICBpZiB0ZXN0ICIkV0lOMzIiID0gIm5vIgorKyAgICAgICAgdGhlbgorKyAgICAgICAg ICAgIG9jaV9saWJzPSItbGNsbnRzaCAtbG5uejExIgorKyAgICAgICAgZWxzZQorKyAgICAgICAg ICAgIG9jaV9saWJzPSItbG9jaSIKKysgICAgICAgIGZpCisrCisrICAgICAgICBzYXZlZF9MREZM QUdTPSIkTERGTEFHUyIKKysgICAgICAgIHNhdmVkX0xJQlM9IiRMSUJTIgorKyAgICAgICAgb2Np X2xkZmxhZ3M9Ii1MJG9yYWNsZV9saWJfZGlyIgorKyAgICAgICAgTERGTEFHUz0iJExERkxBR1Mg JG9jaV9sZGZsYWdzIgorKyAgICAgICAgTElCUz0iJExJQlMgJG9jaV9saWJzIgorKworKyAgICAg ICAgZG5sCisrICAgICAgICBkbmwgQ2hlY2sgT0NJIGhlYWRlcnMKKysgICAgICAgIGRubAorKyAg ICAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgT3JhY2xlIE9DSSBoZWFkZXJzIGluICRvcmFjbGVf aW5jbHVkZV9kaXJdKQorKworKyAgICAgICAgQUNfTEFOR19QVVNIKEMrKykKKysgICAgICAgIEFD X0NPTVBJTEVfSUZFTFNFKFsKKysgICAgICAgICAgICBBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5j bHVkZSA8b2NpLmg+XV0sCisrICAgICAgICAgICAgICAgIFtbCisrI2lmIGRlZmluZWQoT0NJX01B Sk9SX1ZFUlNJT04pCisrI2lmIE9DSV9NQUpPUl9WRVJTSU9OID09IDEwICYmIE9DSV9NSU5PUl9W RVJTSU9OID09IDIKKysvLyBPcmFjbGUgMTAuMiBkZXRlY3RlZAorKyNlbmRpZgorKyNlbGlmIGRl ZmluZWQoT0NJX1Y3X1NZTlRBWCkKKysvLyBPSywgb2xkZXIgT3JhY2xlIGRldGVjdGVkCisrLy8g VE9ETyAtIG1sb3Nrb3Q6IGZpbmQgYmV0dGVyIG1hY3JvIHRvIGNoZWNrIGZvciBvbGRlciB2ZXJz aW9uczsgCisrI2Vsc2UKKysjICBlcnJvciBPcmFjbGUgb2NpLmggaGVhZGVyIG5vdCBmb3VuZAor KyNlbmRpZgorKyAgICAgICAgICAgICAgICBdXQorKyAgICAgICAgICAgICldLAorKyAgICAgICAg ICAgIFsKKysgICAgICAgICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iLUkkb3JhY2xlX2luY2x1ZGVf ZGlyIgorKworKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIyIjsg dGhlbgorKyAgICAgICAgICAgICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iJE9SQUNMRV9PQ0lfQ0ZM QUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCisrICAgICAgICAgICAgZmkKKysKKysgICAgICAg ICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJ5ZXMiCisrICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChb eWVzXSkKKysgICAgICAgICAgICBdLAorKyAgICAgICAgICAgIFsKKysgICAgICAgICAgICBvY2lf aGVhZGVyX2ZvdW5kPSJubyIKKysgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub3QgZm91bmRd KQorKyAgICAgICAgICAgIF0KKysgICAgICAgICkKKysgICAgICAgIEFDX0xBTkdfUE9QKFtDKytd KQorKyAgICAgICAgCisrICAgICAgICBkbmwKKysgICAgICAgIGRubCBDaGVjayBPQ0kgbGlicmFy aWVzCisrICAgICAgICBkbmwKKysgICAgICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9 ICJ5ZXMiOyB0aGVuCisrCisrICAgICAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgT3JhY2xl IE9DSSBsaWJyYXJpZXMgaW4gJG9yYWNsZV9saWJfZGlyXSkKKysKKysgICAgICAgICAgICBBQ19M QU5HX1BVU0goQysrKQorKyAgICAgICAgICAgIEFDX0xJTktfSUZFTFNFKFsKKysgICAgICAgICAg ICAgICAgQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPG9jaS5oPl1dLAorKyAgICAgICAg ICAgICAgICAgICAgW1sKKytPQ0lFbnYqIGVudmggPSAwOworK09DSUVudkNyZWF0ZSgmZW52aCwg T0NJX0RFRkFVTFQsIDAsIDAsIDAsIDAsIDAsIDApOworK2lmIChlbnZoKSBPQ0lIYW5kbGVGcmVl KGVudmgsIE9DSV9IVFlQRV9FTlYpOworKyAgICAgICAgICAgICAgICAgICAgXV0KKysgICAgICAg ICAgICAgICAgKV0sCisrICAgICAgICAgICAgICAgIFsKKysgICAgICAgICAgICAgICAgT1JBQ0xF X09DSV9MREZMQUdTPSIkb2NpX2xkZmxhZ3MgJG9jaV9saWJzIgorKyAgICAgICAgICAgICAgICBv Y2lfbGliX2ZvdW5kPSJ5ZXMiCisrICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW3llc10p CisrICAgICAgICAgICAgICAgIF0sCisrICAgICAgICAgICAgICAgIFsKKysgICAgICAgICAgICAg ICAgb2NpX2xpYl9mb3VuZD0ibm8iCisrICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25v dCBmb3VuZF0pCisrICAgICAgICAgICAgICAgIF0KKysgICAgICAgICAgICApCisrICAgICAgICAg ICAgQUNfTEFOR19QT1AoW0MrK10pCisrICAgICAgICBmaQorKworKyAgICAgICAgQ1BQRkxBR1M9 IiRzYXZlZF9DUFBGTEFHUyIKKysgICAgICAgIExERkxBR1M9IiRzYXZlZF9MREZMQUdTIgorKyAg ICAgICAgTElCUz0iJHNhdmVkX0xJQlMiCisrICAgIGZpCisrCisrICAgIGRubAorKyAgICBkbmwg Q2hlY2sgcmVxdWlyZWQgdmVyc2lvbiBvZiBPcmFjbGUgaXMgYXZhaWxhYmxlCisrICAgIGRubAor KyAgICBvcmFjbGVfdmVyc2lvbl9yZXE9aWZlbHNlKFskMV0sIFtdLCBbXSwgWyQxXSkKKysKKysg ICAgaWYgdGVzdCAiJG9jaV9oZWFkZXJfZm91bmQiID0gInllcyIgLWEgIiRvY2lfbGliX2ZvdW5k IiA9ICJ5ZXMiIC1hIFwKKysgICAgICAgIC1uICIkb3JhY2xlX3ZlcnNpb25fcmVxIjsgdGhlbgor KworKyAgICAgICAgb3JhY2xlX3ZlcnNpb25fbWFqb3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGly L29jaS5oIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4q T0NJX01BSk9SX1ZFUlNJT04uKicgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBz ZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUFKT1JfVkVSU0lPTiAgKi8vJyBcCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAorKworKyAgICAg ICAgb3JhY2xlX3ZlcnNpb25fbWlub3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01JTk9S X1ZFUlNJT04uKicgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3Mv I2RlZmluZSBPQ0lfTUlOT1JfVkVSU0lPTiAgKi8vJyBcCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAorKworKyAgICAgICAgQUNfTVNH X0NIRUNLSU5HKFtpZiBPcmFjbGUgT0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3Jl cV0pCisrCisrICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX3ZlcnNpb25fbWFqb3IiIC1hIC1u ICQib3JhY2xlX3ZlcnNpb25fbWlub3IiOyB0aGVuCisrCisrICAgICAgICAgICAgT1JBQ0xFX09D SV9WRVJTSU9OPSIkb3JhY2xlX3ZlcnNpb25fbWFqb3IuJG9yYWNsZV92ZXJzaW9uX21pbm9yIgor KworKyAgICAgICAgICAgIGRubCBEZWNvbXBvc2UgcmVxdWlyZWQgdmVyc2lvbiBzdHJpbmcgb2Yg T3JhY2xlCisrICAgICAgICAgICAgZG5sIGFuZCBjYWxjdWxhdGUgaXRzIG51bWJlciByZXByZXNl bnRhdGlvbgorKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkb3Jh Y2xlX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpcKSdgCisrICAgICAgICAgICAgb3JhY2xlX3Zl cnNpb25fcmVxX21pbm9yPWBleHByICRvcmFjbGVfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwo W1swLTldXSpcKSdgCisrCisrICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX251bWJlcj1g ZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9yZXFfbWlub3Ig XCogMTAwMGAKKysKKysgICAgICAgICAgICBkbmwgQ2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVz ZW50YXRpb24gCisrICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fbnVtYmVyPWBleHByICRvcmFj bGVfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX21pbm9yIFwqIDEwMDBgCisrCisrICAgICAgICAg ICAgb3JhY2xlX3ZlcnNpb25fY2hlY2s9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX251bWJlciBcPlw9 ICRvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyYAorKyAgICAgICAgICAgIGlmIHRlc3QgIiRvcmFj bGVfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KKysgICAgICAgICAgICAgICAgQUNfTVNHX1JF U1VMVChbeWVzXSkKKysgICAgICAgICAgICAgICAgQUNfREVGSU5FKEhBVkVfT1JBQ0xFLCBbMV0s IFtEZWZpbmUgdG8gMSBpZiB0aGUgT3JhY2xlIE9DSSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisr ICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCisr ICAgICAgICAgICAgICAgIEFDX01TR19FUlJPUihbT3JhY2xlICRPUkFDTEVfT0NJX1ZFUlNJT04g Zm91bmQsIGJ1dCByZXF1aXJlZCB2ZXJzaW9uIGlzICRvcmFjbGVfdmVyc2lvbl9yZXFdKQorKyAg ICAgICAgICAgIGZpCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJT SU9OPSJVTktOT1dOIgorKyAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKKysgICAgICAg ICAgICBBQ19NU0dfV0FSTihbT3JhY2xlIHZlcnNpb24gdW5rbm93biwgcHJvYmFibHkgT0NJIG9s ZGVyIHRoYW4gMTAuMiBpcyBhdmFpbGFibGVdKQorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysg ICAgQUNfU1VCU1QoW09SQUNMRV9PQ0lfVkVSU0lPTl0pCisrICAgIEFDX1NVQlNUKFtPUkFDTEVf T0NJX0NGTEFHU10pCisrICAgIEFDX1NVQlNUKFtPUkFDTEVfT0NJX0xERkxBR1NdKQorK10pCitk aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgc29jaS0z LjAuMF90cmVwMzAwL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00CistLS0gc29jaS0zLjAuMF80LXBh Y2svY29uZmlnL2F4X3Bvc3RncmVzcWwubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQJMjAx MC0wMS0yMyAxMzoyNzowNC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsMTcxIEBACisrZG5s ICRJZDogYXhfcG9zdGdyZXNxbC5tNCx2IDEuMyAyMDA3LzA2LzIzIDAxOjUxOjIyIG1sb3Nrb3Qg RXhwICQKKytkbmwKKytkbmwgQHN5bm9wc2lzIEFYX0xJQl9QT1NUR1JFU1FMKFtNSU5JTVVNLVZF UlNJT05dKQorK2RubAorK2RubCBUaGlzIG1hY3JvIHByb3ZpZGVzIHRlc3RzIG9mIGF2YWlsYWJp bGl0eSBvZiBQb3N0Z3JlU1FMICdsaWJwcScgbGlicmFyeQorK2RubCBvZiBwYXJ0aWN1bGFyIHZl cnNpb24gb3IgbmV3ZXIuCisrZG5sIAorK2RubCBBWF9MSUJfUE9TVEdSRVNRTCBtYWNybyB0YWtl cyBvbmx5IG9uZSBhcmd1bWVudCB3aGljaCBpcyBvcHRpb25hbC4gSWYgdGhlcmUgaXMgbm8gCisr ZG5sIHJlcXVpcmVkIHZlcnNpb24gcGFzc2VkLCB0aGVuIG1hY3JvIGRvZXMgbm90IHJ1biB2ZXJz aW9uIHRlc3QuCisrZG5sCisrZG5sIFRoZSAtLXdpdGgtcG9zdGdyZXNxbCBvcHRpb24gdGFrZXMg b25lIG9mIHRocmVlIHBvc3NpYmxlIHZhbHVlczoKKytkbmwgbm8gICAtIGRvIG5vdCBjaGVjayBm b3IgUG9zdGdyZVNRTCBjbGllbnQgbGlicmFyeQorK2RubCB5ZXMgIC0gZG8gY2hlY2sgZm9yIFBv c3RncmVTUUwgbGlicmFyeSBpbiBzdGFuZGFyZCBsb2NhdGlvbnMKKytkbmwgICAgICAgIChwZ19j b25maWcgc2hvdWxkIGJlIGluIHRoZSBQQVRIKQorK2RubCBwYXRoIC0gY29tcGxldGUgcGF0aCB0 byBwZ19jb25maWcgdXRpbGl0eSwgdXNlIHRoaXMgb3B0aW9uCisrZG5sICAgICAgICBpZiBwZ19j b25maWcgY2FuJ3QgYmUgZm91bmQgaW4gdGhlIFBBVEgKKytkbmwKKytkbmwgVGhpcyBtYWNybyBj YWxsczoKKytkbmwKKytkbmwgICBBQ19TVUJTVChQT1NUR1JFU1FMX0NGTEFHUykKKytkbmwgICBB Q19TVUJTVChQT1NUR1JFU1FMX0xERkxBR1MpCisrZG5sICAgQUNfU1VCU1QoUE9TVEdSRVNRTF9W RVJTSU9OKQorK2RubAorK2RubCBBbmQgc2V0czoKKytkbmwKKytkbmwgICBIQVZFX1BPU1RHUkVT UUwKKytkbmwKKytkbmwgQGNhdGVnb3J5IEluc3RhbGxlZFBhY2thZ2VzCisrZG5sIEBjYXRlZ29y eSBDeHgKKytkbmwgQGF1dGhvciBNYXRldXN6IExvc2tvdCA8bWF0ZXVzekBsb3Nrb3QubmV0Pgor K2RubCBAdmVyc2lvbiAkRGF0ZTogMjAwNy8wNi8yMyAwMTo1MToyMiAkCisrZG5sIEBsaWNlbnNl IEFsbFBlcm1pc3NpdmUKKytkbmwKKytkbmwgJElkOiBheF9wb3N0Z3Jlc3FsLm00LHYgMS4zIDIw MDcvMDYvMjMgMDE6NTE6MjIgbWxvc2tvdCBFeHAgJAorK2RubAorK0FDX0RFRlVOKFtBWF9MSUJf UE9TVEdSRVNRTF0sCisrWworKyAgICBBQ19BUkdfV0lUSChbcG9zdGdyZXNxbF0sCisrICAgICAg ICBBQ19IRUxQX1NUUklORyhbLS13aXRoLXBvc3RncmVzcWw9QDw6QEFSR0A6PkBdLAorKyAgICAg ICAgICAgIFt1c2UgUG9zdGdyZVNRTCBsaWJyYXJ5IEA8OkBkZWZhdWx0PXllc0A6PkAsIG9wdGlv bmFsbHkgc3BlY2lmeSBwYXRoIHRvIHBnX2NvbmZpZ10KKysgICAgICAgICksCisrICAgICAgICBb CisrCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIkd2l0aF9wb3N0Z3Jlc3FsL2luY2x1ZGUiCisrICAg ICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCisrICAgICAgICAgICAgd2FudF9w b3N0Z3Jlc3FsPSJubyIKKysgICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRo ZW4KKysgICAgICAgICAgICB3YW50X3Bvc3RncmVzcWw9InllcyIKKysgICAgICAgIGVsc2UKKysg ICAgICAgICAgICB3YW50X3Bvc3RncmVzcWw9InllcyIKKysgICAgICAgICAgICBQR19DT05GSUc9 IiR3aXRodmFsIgorKyAgICAgICAgZmkKKysgICAgICAgIF0sCisrICAgICAgICBbd2FudF9wb3N0 Z3Jlc3FsPSJ5ZXMiCisrCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9s b2NhbCAvb3B0Il0KKysgICAgKQorKworKyAgICBQT1NUR1JFU1FMX0NGTEFHUz0iIgorKyAgICBQ T1NUR1JFU1FMX0xERkxBR1M9IiIKKysgICAgUE9TVEdSRVNRTF9QT1NUR1JFU1FMPSIiCisrCisr ICAgIGRubAorKyAgICBkbmwgQ2hlY2sgUG9zdGdyZVNRTCBsaWJyYXJpZXMgKGxpYnBxKQorKyAg ICBkbmwKKysgICAgCisrICAgIGlmIHRlc3QgIiR3YW50X3Bvc3RncmVzcWwiID0gInllcyI7IHRo ZW4KKysKKysgICAgICAgIGlmIHRlc3QgLXogIiRQR19DT05GSUciIC1vIHRlc3Q7IHRoZW4KKysg ICAgICAgICAgICBBQ19QQVRIX1BST0coW1BHX0NPTkZJR10sIFtwZ19jb25maWddLCBbXSkKKysg ICAgICAgIGZpCisrCisrICAgICAgICBpZiB0ZXN0ICEgLXggIiRQR19DT05GSUciOyB0aGVuCisr ICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFskUEdfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0 IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZpbGVdKQorKyAgICAgICAgICAgIFBHX0NPTkZJRz0ibm8i CisrICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ibm8iCisrICAgICAgICBmaQorKworKyAg ICAgICAgaWYgdGVzdCAiJFBHX0NPTkZJRyIgIT0gIm5vIjsgdGhlbgorKyAgICAgICAgICAgICMK KysgICAgICAgICAgICAjIExvb2sgZm9yIFBvc3RncmVzcWwgQyBBUEkgaGVhZGVycworKyAgICAg ICAgICAgICMKKysgICAgICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBQb3N0Z3Jlc3FsIGlu Y2x1ZGUgZGlyZWN0b3J5XSkKKysgICAgICAgICAgICBQT1NUR1JFU1FMX2luY2Rpcj0KKysgICAg ICAgICAgICBmb3IgcG9zdGdyZXNxbF9pbmNfZGlyIGluICRQT1NUR1JFU1FMX2luY19jaGVjawor KyAgICAgICAgICAgIGRvCisrICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRwb3N0Z3Jlc3Fs X2luY19kaXIiIFwKKysgICAgICAgICAgICAgICAgJiYgdGVzdCAtZiAiJHBvc3RncmVzcWxfaW5j X2Rpci9wb3N0Z3Jlc19leHQuaCIKKysgICAgICAgICAgICAgICAgdGhlbgorKyAgICAgICAgICAg ICAgICAgICAgUE9TVEdSRVNRTF9pbmNkaXI9JHBvc3RncmVzcWxfaW5jX2RpcgorKyAgICAgICAg ICAgICAgICAgICAgYnJlYWsKKysgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICBkb25l CisrCisrICAgICAgICAgICAgaWYgdGVzdCAteiAiJFBPU1RHUkVTUUxfaW5jZGlyIgorKyAgICAg ICAgICAgIHRoZW4KKysgICAgICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCB0 aGUgUG9zdGdyZXNxbCBpbmNsdWRlIGRpciBpbiAnJFBPU1RHUkVTUUxfaW5jX2NoZWNrJ10pCisr ICAgICAgICAgICAgZmkKKysKKysgICAgICAgICAgICBjYXNlICIkUE9TVEdSRVNRTF9pbmNkaXIi IGluCisrICAgICAgICAgICAgICAgIC8qICkgOzsKKysgICAgICAgICAgICAgICAgKiApICBBQ19N U0dfRVJST1IoW1RoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9p bmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OworKyAgICAgICAgICAgIGVzYWMK KysKKysgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFskUE9TVEdSRVNRTF9pbmNkaXJdKQorKwor KyAgICAgICAgICAgIGlmIHRlc3QgIiRQT1NUR1JFU1FMX2luY2RpciIgPSAiL3Vzci9pbmNsdWRl IjsgdGhlbgorKyAgICAgICAgICAgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKKysgICAgICAgICAg ICBlbHNlCisrICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iLUkke1BPU1RHUkVTUUxf aW5jZGlyfSIKKysgICAgICAgICAgICBmaQorKworKyAgICAgICAgICAgIFBPU1RHUkVTUUxfTERG TEFHUz0iLUxgJFBHX0NPTkZJRyAtLWxpYmRpcmAgLWxwcSIKKysKKysgICAgICAgICAgICBQT1NU R1JFU1FMX1ZFUlNJT049YCRQR19DT05GSUcgLS12ZXJzaW9uIHwgc2VkIC1lICdzI1Bvc3RncmVT UUwgIyMnYAorKworKyAgICAgICAgICAgIEFDX0RFRklORShbSEFWRV9QT1NUR1JFU1FMXSwgWzFd LCBbRGVmaW5lIHRvIDEgaWYgUG9zdGdyZVNRTCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJsZV0pCisr ICAgICAgICAgICAgCisrICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ieWVzIgorKyAgICAg ICAgZWxzZQorKyAgICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9Im5vIgorKyAgICAgICAgZmkK KysgICAgZmkKKysKKysgICAgZG5sCisrICAgIGRubCBDaGVjayBpZiByZXF1aXJlZCB2ZXJzaW9u IG9mIFBvc3RncmVTUUwgaXMgYXZhaWxhYmxlCisrICAgIGRubAorKyAgICAKKysKKysgICAgcG9z dGdyZXNxbF92ZXJzaW9uX3JlcT1pZmVsc2UoWyQxXSwgW10sIFtdLCBbJDFdKQorKworKyAgICBp ZiB0ZXN0ICIkZm91bmRfcG9zdGdyZXNxbCIgPSAieWVzIiAtYSAtbiAiJHBvc3RncmVzcWxfdmVy c2lvbl9yZXEiOyB0aGVuCisrCisrICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIFBvc3RncmVT UUwgdmVyc2lvbiBpcyA+PSAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV0pCisrCisrICAgICAgICBk bmwgRGVjb21wb3NlIHJlcXVpcmVkIHZlcnNpb24gc3RyaW5nIG9mIFBvc3RncmVTUUwKKysgICAg ICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KKysgICAgICAg IHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWFqb3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9y ZXEgOiAnXChbWzAtOV1dKlwpJ2AKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlu b3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwoW1swLTldXSpc KSdgCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPWBleHByICRwb3N0Z3Jl c3FsX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKKysg ICAgICAgIGlmIHRlc3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybyIgPSAieCI7IHRo ZW4KKysgICAgICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPSIwIgorKyAgICAg ICAgZmkKKysKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRw b3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3IgXCog MTAwMCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNx bF92ZXJzaW9uX3JlcV9taWNyb2AKKysKKysgICAgICAgIGRubCBEZWNvbXBvc2UgdmVyc2lvbiBz dHJpbmcgb2YgaW5zdGFsbGVkIFBvc3RncmVTUUwKKysgICAgICAgIGRubCBhbmQgY2FsY3VsYXRl IGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9t YWpvcj1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1woW1swLTldXSpcKSdgCisrICAgICAg ICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3I9YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6ICdb WzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNy bz1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAt OV1dKlwpJ2AKKysgICAgICAgIGlmIHRlc3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvIiA9 ICJ4IjsgdGhlbgorKyAgICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz0iMCIKKysg ICAgICAgIGZpCisrCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyPWBleHByICRw b3N0Z3Jlc3FsX3ZlcnNpb25fbWFqb3IgXCogMTAwMDAwMCBcCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lv bl9taWNyb2AKKysKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjaz1gZXhwciAkcG9z dGdyZXNxbF92ZXJzaW9uX251bWJlciBcPlw9ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJl cmAKKysgICAgICAgIGlmIHRlc3QgIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0 aGVuCisrICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKKysgICAgICAgIGVsc2UKKysg ICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCisrICAgICAgICBmaQorKyAgICBmaQorKwor KyAgICBBQ19TVUJTVChbUE9TVEdSRVNRTF9WRVJTSU9OXSkKKysgICAgQUNfU1VCU1QoW1BPU1RH UkVTUUxfQ0ZMQUdTXSkKKysgICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfTERGTEFHU10pCisrXSkK K2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvY29uZmlnLmd1ZXNzIHNvY2ktMy4w LjBfdHJlcDMwMC9jb25maWcvY29uZmlnLmd1ZXNzCistLS0gc29jaS0zLjAuMF80LXBhY2svY29u ZmlnL2NvbmZpZy5ndWVzcwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY29uZmlnLmd1ZXNzCTIwMTEtMDItMDggMjI6Mzk6 NTUuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDE1MDEgQEAKKysjISAvYmluL3NoCisrIyBB dHRlbXB0IHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5c3RlbSBuYW1lLgorKyMgICBDb3B5cmlnaHQg KEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCisrIyAg IDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIw MDkKKysjICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrdGltZXN0YW1wPScy MDA5LTExLTIwJworKworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKysjIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgor KyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0 CisrIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlIEdOVQorKyMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYg bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEg RnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKKysjIDAyMTEwLTEzMDEs IFVTQS4KKysjCisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSwgaWYgeW91CisrIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9m IGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKKysjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVy YXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisrIyB0aGUgc2FtZSBk aXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dy YW0uCisrCisrCisrIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIuICBQbGVhc2Ug c2VuZCBwYXRjaGVzIChjb250ZXh0CisrIyBkaWZmIGZvcm1hdCkgdG8gPGNvbmZpZy1wYXRjaGVz QGdudS5vcmc+IGFuZCBpbmNsdWRlIGEgQ2hhbmdlTG9nCisrIyBlbnRyeS4KKysjCisrIyBUaGlz IHNjcmlwdCBhdHRlbXB0cyB0byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0gbmFtZSBzaW1pbGFy IHRvCisrIyBjb25maWcuc3ViLiAgSWYgaXQgc3VjY2VlZHMsIGl0IHByaW50cyB0aGUgc3lzdGVt IG5hbWUgb24gc3Rkb3V0LCBhbmQKKysjIGV4aXRzIHdpdGggMC4gIE90aGVyd2lzZSwgaXQgZXhp dHMgd2l0aCAxLgorKyMKKysjIFlvdSBjYW4gZ2V0IHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlz IHNjcmlwdCBmcm9tOgorKyMgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1j b25maWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNvbmZpZy5ndWVzcztoYj1IRUFECisrCisrbWU9YGVj aG8gIiQwIiB8IHNlZCAtZSAncywuKi8sLCdgCisrCisrdXNhZ2U9IlwKKytVc2FnZTogJDAgW09Q VElPTl0KKysKKytPdXRwdXQgdGhlIGNvbmZpZ3VyYXRpb24gbmFtZSBvZiB0aGUgc3lzdGVtIFxg JG1lJyBpcyBydW4gb24uCisrCisrT3BlcmF0aW9uIG1vZGVzOgorKyAgLWgsIC0taGVscCAgICAg ICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0CisrICAtdCwgLS10aW1lLXN0YW1wICAgcHJp bnQgZGF0ZSBvZiBsYXN0IG1vZGlmaWNhdGlvbiwgdGhlbiBleGl0CisrICAtdiwgLS12ZXJzaW9u ICAgICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAorKworK1JlcG9ydCBidWdzIGFu ZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4iCisrCisrdmVyc2lvbj0iXAor K0dOVSBjb25maWcuZ3Vlc3MgKCR0aW1lc3RhbXApCisrCisrT3JpZ2luYWxseSB3cml0dGVuIGJ5 IFBlciBCb3RobmVyLgorK0NvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5 NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwKKysyMDAyLCAyMDAzLCAyMDA0LCAyMDA1 LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworK1Ro aXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9u cy4gIFRoZXJlIGlzIE5PCisrd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgorKworK2hlbHA9IgorK1RyeSBc YCRtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKysKKysjIFBhcnNlIGNvbW1hbmQg bGluZQorK3doaWxlIHRlc3QgJCMgLWd0IDAgOyBkbworKyAgY2FzZSAkMSBpbgorKyAgICAtLXRp bWUtc3RhbXAgfCAtLXRpbWUqIHwgLXQgKQorKyAgICAgICBlY2hvICIkdGltZXN0YW1wIiA7IGV4 aXQgOzsKKysgICAgLS12ZXJzaW9uIHwgLXYgKQorKyAgICAgICBlY2hvICIkdmVyc2lvbiIgOyBl eGl0IDs7CisrICAgIC0taGVscCB8IC0taCogfCAtaCApCisrICAgICAgIGVjaG8gIiR1c2FnZSI7 IGV4aXQgOzsKKysgICAgLS0gKSAgICAgIyBTdG9wIG9wdGlvbiBwcm9jZXNzaW5nCisrICAgICAg IHNoaWZ0OyBicmVhayA7OworKyAgICAtICkJIyBVc2Ugc3RkaW4gYXMgaW5wdXQuCisrICAgICAg IGJyZWFrIDs7CisrICAgIC0qICkKKysgICAgICAgZWNobyAiJG1lOiBpbnZhbGlkIG9wdGlvbiAk MSRoZWxwIiA+JjIKKysgICAgICAgZXhpdCAxIDs7CisrICAgICogKQorKyAgICAgICBicmVhayA7 OworKyAgZXNhYworK2RvbmUKKysKKytpZiB0ZXN0ICQjICE9IDA7IHRoZW4KKysgIGVjaG8gIiRt ZTogdG9vIG1hbnkgYXJndW1lbnRzJGhlbHAiID4mMgorKyAgZXhpdCAxCisrZmkKKysKKyt0cmFw ICdleGl0IDEnIDEgMiAxNQorKworKyMgQ0NfRk9SX0JVSUxEIC0tIGNvbXBpbGVyIHVzZWQgYnkg dGhpcyBzY3JpcHQuIE5vdGUgdGhhdCB0aGUgdXNlIG9mIGEKKysjIGNvbXBpbGVyIHRvIGFpZCBp biBzeXN0ZW0gZGV0ZWN0aW9uIGlzIGRpc2NvdXJhZ2VkIGFzIGl0IHJlcXVpcmVzCisrIyB0ZW1w b3JhcnkgZmlsZXMgdG8gYmUgY3JlYXRlZCBhbmQsIGFzIHlvdSBjYW4gc2VlIGJlbG93LCBpdCBp cyBhCisrIyBoZWFkYWNoZSB0byBkZWFsIHdpdGggaW4gYSBwb3J0YWJsZSBmYXNoaW9uLgorKwor KyMgSGlzdG9yaWNhbGx5LCBgQ0NfRk9SX0JVSUxEJyB1c2VkIHRvIGJlIG5hbWVkIGBIT1NUX0ND Jy4gV2Ugc3RpbGwKKysjIHVzZSBgSE9TVF9DQycgaWYgZGVmaW5lZCwgYnV0IGl0IGlzIGRlcHJl Y2F0ZWQuCisrCisrIyBQb3J0YWJsZSB0bXAgZGlyZWN0b3J5IGNyZWF0aW9uIGluc3BpcmVkIGJ5 IHRoZSBBdXRvY29uZiB0ZWFtLgorKworK3NldF9jY19mb3JfYnVpbGQ9JworK3RyYXAgImV4aXRj b2RlPVwkPzsgKHJtIC1mIFwkdG1wZmlsZXMgMj4vZGV2L251bGw7IHJtZGlyIFwkdG1wIDI+L2Rl di9udWxsKSAmJiBleGl0IFwkZXhpdGNvZGUiIDAgOworK3RyYXAgInJtIC1mIFwkdG1wZmlsZXMg Mj4vZGV2L251bGw7IHJtZGlyIFwkdG1wIDI+L2Rldi9udWxsOyBleGl0IDEiIDEgMiAxMyAxNSA7 CisrOiAke1RNUERJUj0vdG1wfSA7CisrIHsgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAi JFRNUERJUi9jZ1hYWFhYWCIpIDI+L2Rldi9udWxsYCAmJiB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0 IC1kICIkdG1wIiA7IH0gfHwKKysgeyB0ZXN0IC1uICIkUkFORE9NIiAmJiB0bXA9JFRNUERJUi9j ZyQkLSRSQU5ET00gJiYgKHVtYXNrIDA3NyAmJiBta2RpciAkdG1wKSA7IH0gfHwKKysgeyB0bXA9 JFRNUERJUi9jZy0kJCAmJiAodW1hc2sgMDc3ICYmIG1rZGlyICR0bXApICYmIGVjaG8gIldhcm5p bmc6IGNyZWF0aW5nIGluc2VjdXJlIHRlbXAgZGlyZWN0b3J5IiA+JjIgOyB9IHx8CisrIHsgZWNo byAiJG1lOiBjYW5ub3QgY3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAkVE1QRElSIiA+ JjIgOyBleGl0IDEgOyB9IDsKKytkdW1teT0kdG1wL2R1bW15IDsKKyt0bXBmaWxlcz0iJGR1bW15 LmMgJGR1bW15Lm8gJGR1bW15LnJlbCAkZHVtbXkiIDsKKytjYXNlICRDQ19GT1JfQlVJTEQsJEhP U1RfQ0MsJENDIGluCisrICwsKSAgICBlY2hvICJpbnQgeDsiID4gJGR1bW15LmMgOworKwlmb3Ig YyBpbiBjYyBnY2MgYzg5IGM5OSA7IGRvCisrCSAgaWYgKCRjIC1jIC1vICRkdW1teS5vICRkdW1t eS5jKSA+L2Rldi9udWxsIDI+JjEgOyB0aGVuCisrCSAgICAgQ0NfRk9SX0JVSUxEPSIkYyI7IGJy ZWFrIDsKKysJICBmaSA7CisrCWRvbmUgOworKwlpZiB0ZXN0IHgiJENDX0ZPUl9CVUlMRCIgPSB4 IDsgdGhlbgorKwkgIENDX0ZPUl9CVUlMRD1ub19jb21waWxlcl9mb3VuZCA7CisrCWZpCisrCTs7 CisrICwsKikgICBDQ19GT1JfQlVJTEQ9JENDIDs7CisrICwqLCopICBDQ19GT1JfQlVJTEQ9JEhP U1RfQ0MgOzsKKytlc2FjIDsgc2V0X2NjX2Zvcl9idWlsZD0gOycKKysKKysjIFRoaXMgaXMgbmVl ZGVkIHRvIGZpbmQgdW5hbWUgb24gYSBQeXJhbWlkIE9TeCB3aGVuIHJ1biBpbiB0aGUgQlNEIHVu aXZlcnNlLgorKyMgKGdoYXppQG5vYy5ydXRnZXJzLmVkdSAxOTk0LTA4LTI0KQorK2lmICh0ZXN0 IC1mIC8uYXR0YmluL3VuYW1lKSA+L2Rldi9udWxsIDI+JjEgOyB0aGVuCisrCVBBVEg9JFBBVEg6 Ly5hdHRiaW4gOyBleHBvcnQgUEFUSAorK2ZpCisrCisrVU5BTUVfTUFDSElORT1gKHVuYW1lIC1t KSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfTUFDSElORT11bmtub3duCisrVU5BTUVfUkVMRUFTRT1g KHVuYW1lIC1yKSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfUkVMRUFTRT11bmtub3duCisrVU5BTUVf U1lTVEVNPWAodW5hbWUgLXMpIDI+L2Rldi9udWxsYCAgfHwgVU5BTUVfU1lTVEVNPXVua25vd24K KytVTkFNRV9WRVJTSU9OPWAodW5hbWUgLXYpIDI+L2Rldi9udWxsYCB8fCBVTkFNRV9WRVJTSU9O PXVua25vd24KKysKKysjIE5vdGU6IG9yZGVyIGlzIHNpZ25pZmljYW50IC0gdGhlIGNhc2UgYnJh bmNoZXMgYXJlIG5vdCBleGNsdXNpdmUuCisrCisrY2FzZSAiJHtVTkFNRV9NQUNISU5FfToke1VO QU1FX1NZU1RFTX06JHtVTkFNRV9SRUxFQVNFfToke1VOQU1FX1ZFUlNJT059IiBpbgorKyAgICAq Ok5ldEJTRDoqOiopCisrCSMgTmV0QlNEIChuYnNkKSB0YXJnZXRzIHNob3VsZCAod2hlcmUgYXBw bGljYWJsZSkgbWF0Y2ggb25lIG9yCisrCSMgbW9yZSBvZiB0aGUgdHVwcGxlczogKi0qLW5ldGJz ZGVsZiosICotKi1uZXRic2Rhb3V0KiwKKysJIyAqLSotbmV0YnNkZWNvZmYqIGFuZCAqLSotbmV0 YnNkKi4gIEZvciB0YXJnZXRzIHRoYXQgcmVjZW50bHkKKysJIyBzd2l0Y2hlZCB0byBFTEYsICot Ki1uZXRic2QqIHdvdWxkIHNlbGVjdCB0aGUgb2xkCisrCSMgb2JqZWN0IGZpbGUgZm9ybWF0LiAg VGhpcyBwcm92aWRlcyBib3RoIGZvcndhcmQKKysJIyBjb21wYXRpYmlsaXR5IGFuZCBhIGNvbnNp c3RlbnQgbWVjaGFuaXNtIGZvciBzZWxlY3RpbmcgdGhlCisrCSMgb2JqZWN0IGZpbGUgZm9ybWF0 LgorKwkjCisrCSMgTm90ZTogTmV0QlNEIGRvZXNuJ3QgcGFydGljdWxhcmx5IGNhcmUgYWJvdXQg dGhlIHZlbmRvcgorKwkjIHBvcnRpb24gb2YgdGhlIG5hbWUuICBXZSBhbHdheXMgc2V0IGl0IHRv ICJ1bmtub3duIi4KKysJc3lzY3RsPSJzeXNjdGwgLW4gaHcubWFjaGluZV9hcmNoIgorKwlVTkFN RV9NQUNISU5FX0FSQ0g9YCgvc2Jpbi8kc3lzY3RsIDI+L2Rldi9udWxsIHx8IFwKKysJICAgIC91 c3Ivc2Jpbi8kc3lzY3RsIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bilgCisrCWNhc2UgIiR7 VU5BTUVfTUFDSElORV9BUkNIfSIgaW4KKysJICAgIGFybWViKSBtYWNoaW5lPWFybWViLXVua25v d24gOzsKKysJICAgIGFybSopIG1hY2hpbmU9YXJtLXVua25vd24gOzsKKysJICAgIHNoM2VsKSBt YWNoaW5lPXNobC11bmtub3duIDs7CisrCSAgICBzaDNlYikgbWFjaGluZT1zaC11bmtub3duIDs7 CisrCSAgICBzaDVlbCkgbWFjaGluZT1zaDVsZS11bmtub3duIDs7CisrCSAgICAqKSBtYWNoaW5l PSR7VU5BTUVfTUFDSElORV9BUkNIfS11bmtub3duIDs7CisrCWVzYWMKKysJIyBUaGUgT3BlcmF0 aW5nIFN5c3RlbSBpbmNsdWRpbmcgb2JqZWN0IGZvcm1hdCwgaWYgaXQgaGFzIHN3aXRjaGVkCisr CSMgdG8gRUxGIHJlY2VudGx5LCBvciB3aWxsIGluIHRoZSBmdXR1cmUuCisrCWNhc2UgIiR7VU5B TUVfTUFDSElORV9BUkNIfSIgaW4KKysJICAgIGFybSp8aTM4NnxtNjhrfG5zMzJrfHNoMyp8c3Bh cmN8dmF4KQorKwkJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorKwkJaWYgZWNobyBfX0VMRl9fIHwg JENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsIFwKKysJCQl8IGdyZXAgLXEgX19FTEZfXwor KwkJdGhlbgorKwkJICAgICMgT25jZSBhbGwgdXRpbGl0aWVzIGNhbiBiZSBFQ09GRiAobmV0YnNk ZWNvZmYpIG9yIGEub3V0IChuZXRic2Rhb3V0KS4KKysJCSAgICAjIFJldHVybiBuZXRic2QgZm9y IGVpdGhlci4gIEZJWD8KKysJCSAgICBvcz1uZXRic2QKKysJCWVsc2UKKysJCSAgICBvcz1uZXRi c2RlbGYKKysJCWZpCisrCQk7OworKwkgICAgKikKKysJICAgICAgICBvcz1uZXRic2QKKysJCTs7 CisrCWVzYWMKKysJIyBUaGUgT1MgcmVsZWFzZQorKwkjIERlYmlhbiBHTlUvTmV0QlNEIG1hY2hp bmVzIGhhdmUgYSBkaWZmZXJlbnQgdXNlcmxhbmQsIGFuZAorKwkjIHRodXMsIG5lZWQgYSBkaXN0 aW5jdCB0cmlwbGV0LiBIb3dldmVyLCB0aGV5IGRvIG5vdCBuZWVkCisrCSMga2VybmVsIHZlcnNp b24gaW5mb3JtYXRpb24sIHNvIGl0IGNhbiBiZSByZXBsYWNlZCB3aXRoIGEKKysJIyBzdWl0YWJs ZSB0YWcsIGluIHRoZSBzdHlsZSBvZiBsaW51eC1nbnUuCisrCWNhc2UgIiR7VU5BTUVfVkVSU0lP Tn0iIGluCisrCSAgICBEZWJpYW4qKQorKwkJcmVsZWFzZT0nLWdudScKKysJCTs7CisrCSAgICAq KQorKwkJcmVsZWFzZT1gZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLV9dLiovXC4v J2AKKysJCTs7CisrCWVzYWMKKysJIyBTaW5jZSBDUFVfVFlQRS1NQU5VRkFDVFVSRVItS0VSTkVM LU9QRVJBVElOR19TWVNURU06CisrCSMgY29udGFpbnMgcmVkdW5kYW50IGluZm9ybWF0aW9uLCB0 aGUgc2hvcnRlciBmb3JtOgorKwkjIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1PUEVSQVRJTkdfU1lT VEVNIGlzIHVzZWQuCisrCWVjaG8gIiR7bWFjaGluZX0tJHtvc30ke3JlbGVhc2V9IgorKwlleGl0 IDs7CisrICAgICo6T3BlbkJTRDoqOiopCisrCVVOQU1FX01BQ0hJTkVfQVJDSD1gYXJjaCB8IHNl ZCAncy9PcGVuQlNELi8vJ2AKKysJZWNobyAke1VOQU1FX01BQ0hJTkVfQVJDSH0tdW5rbm93bi1v cGVuYnNkJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6ZWtrb0JTRDoqOiopCisr CWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWVra29ic2Qke1VOQU1FX1JFTEVBU0V9Cisr CWV4aXQgOzsKKysgICAgKjpTb2xpZEJTRDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11 bmtub3duLXNvbGlkYnNkJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIG1hY3BwYzpN aXJCU0Q6KjoqKQorKwllY2hvIHBvd2VycGMtdW5rbm93bi1taXJic2Qke1VOQU1FX1JFTEVBU0V9 CisrCWV4aXQgOzsKKysgICAgKjpNaXJCU0Q6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1taXJic2Qke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgYWxwaGE6T1NG MToqOiopCisrCWNhc2UgJFVOQU1FX1JFTEVBU0UgaW4KKysJKjQuMCkKKysJCVVOQU1FX1JFTEVB U0U9YC91c3Ivc2Jpbi9zaXplciAtdiB8IGF3ayAne3ByaW50ICQzfSdgCisrCQk7OworKwkqNS4q KQorKwkgICAgICAgIFVOQU1FX1JFTEVBU0U9YC91c3Ivc2Jpbi9zaXplciAtdiB8IGF3ayAne3By aW50ICQ0fSdgCisrCQk7OworKwllc2FjCisrCSMgQWNjb3JkaW5nIHRvIENvbXBhcSwgL3Vzci9z YmluL3BzcmluZm8gaGFzIGJlZW4gYXZhaWxhYmxlIG9uCisrCSMgT1NGLzEgYW5kIFRydTY0IHN5 c3RlbXMgcHJvZHVjZWQgc2luY2UgMTk5NS4gIEkgaG9wZSB0aGF0CisrCSMgY292ZXJzIG1vc3Qg c3lzdGVtcyBydW5uaW5nIHRvZGF5LiAgVGhpcyBjb2RlIHBpcGVzIHRoZSBDUFUKKysJIyB0eXBl cyB0aHJvdWdoIGhlYWQgLW4gMSwgc28gd2Ugb25seSBkZXRlY3QgdGhlIHR5cGUgb2YgQ1BVIDAu CisrCUFMUEhBX0NQVV9UWVBFPWAvdXNyL3NiaW4vcHNyaW5mbyAtdiB8IHNlZCAtbiAtZSAncy9e ICBUaGUgYWxwaGEgXCguKlwpIHByb2Nlc3Nvci4qJC9cMS9wJyB8IGhlYWQgLW4gMWAKKysJY2Fz ZSAiJEFMUEhBX0NQVV9UWVBFIiBpbgorKwkgICAgIkVWNCAoMjEwNjQpIikKKysJCVVOQU1FX01B Q0hJTkU9ImFscGhhIiA7OworKwkgICAgIkVWNC41ICgyMTA2NCkiKQorKwkJVU5BTUVfTUFDSElO RT0iYWxwaGEiIDs7CisrCSAgICAiTENBNCAoMjEwNjYvMjEwNjgpIikKKysJCVVOQU1FX01BQ0hJ TkU9ImFscGhhIiA7OworKwkgICAgIkVWNSAoMjExNjQpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFs cGhhZXY1IiA7OworKwkgICAgIkVWNS42ICgyMTE2NEEpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFs cGhhZXY1NiIgOzsKKysJICAgICJFVjUuNiAoMjExNjRQQykiKQorKwkJVU5BTUVfTUFDSElORT0i YWxwaGFwY2E1NiIgOzsKKysJICAgICJFVjUuNyAoMjExNjRQQykiKQorKwkJVU5BTUVfTUFDSElO RT0iYWxwaGFwY2E1NyIgOzsKKysJICAgICJFVjYgKDIxMjY0KSIpCisrCQlVTkFNRV9NQUNISU5F PSJhbHBoYWV2NiIgOzsKKysJICAgICJFVjYuNyAoMjEyNjRBKSIpCisrCQlVTkFNRV9NQUNISU5F PSJhbHBoYWV2NjciIDs7CisrCSAgICAiRVY2LjhDQiAoMjEyNjRDKSIpCisrCQlVTkFNRV9NQUNI SU5FPSJhbHBoYWV2NjgiIDs7CisrCSAgICAiRVY2LjhBTCAoMjEyNjRCKSIpCisrCQlVTkFNRV9N QUNISU5FPSJhbHBoYWV2NjgiIDs7CisrCSAgICAiRVY2LjhDWCAoMjEyNjREKSIpCisrCQlVTkFN RV9NQUNISU5FPSJhbHBoYWV2NjgiIDs7CisrCSAgICAiRVY2LjlBICgyMTI2NC9FVjY5QSkiKQor KwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY5IiA7OworKwkgICAgIkVWNyAoMjEzNjQpIikKKysJ CVVOQU1FX01BQ0hJTkU9ImFscGhhZXY3IiA7OworKwkgICAgIkVWNy45ICgyMTM2NEEpIikKKysJ CVVOQU1FX01BQ0hJTkU9ImFscGhhZXY3OSIgOzsKKysJZXNhYworKwkjIEEgUG4ubiB2ZXJzaW9u IGlzIGEgcGF0Y2hlZCB2ZXJzaW9uLgorKwkjIEEgVm4ubiB2ZXJzaW9uIGlzIGEgcmVsZWFzZWQg dmVyc2lvbi4KKysJIyBBIFRuLm4gdmVyc2lvbiBpcyBhIHJlbGVhc2VkIGZpZWxkIHRlc3QgdmVy c2lvbi4KKysJIyBBIFhuLm4gdmVyc2lvbiBpcyBhbiB1bnJlbGVhc2VkIGV4cGVyaW1lbnRhbCBi YXNlbGV2ZWwuCisrCSMgMS4yIHVzZXMgIjEuMiIgZm9yIHVuYW1lIC1yLgorKwllY2hvICR7VU5B TUVfTUFDSElORX0tZGVjLW9zZmBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXltQ VlRYXS8vJyB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1u b3BxcnN0dXZ3eHl6J2AKKysJZXhpdCA7OworKyAgICBBbHBoYVwgKjpXaW5kb3dzX05UKjoqKQor KwkjIEhvdyBkbyB3ZSBrbm93IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQ T1NJWCBzdWJzeXN0ZW0/CisrCSMgU2hvdWxkIHdlIGNoYW5nZSBVTkFNRV9NQUNISU5FIGJhc2Vk IG9uIHRoZSBvdXRwdXQgb2YgdW5hbWUgaW5zdGVhZAorKwkjIG9mIHRoZSBzcGVjaWZpYyBBbHBo YSBtb2RlbD8KKysJZWNobyBhbHBoYS1wYy1pbnRlcml4CisrCWV4aXQgOzsKKysgICAgMjEwNjQ6 V2luZG93c19OVDo1MDozKQorKwllY2hvIGFscGhhLWRlYy13aW5udDMuNQorKwlleGl0IDs7Cisr ICAgIEFtaWdhKjpVTklYX1N5c3RlbV9WOjQuMDoqKQorKwllY2hvIG02OGstdW5rbm93bi1zeXN2 NAorKwlleGl0IDs7CisrICAgICo6W0FhXW1pZ2FbT29dW1NzXToqOiopCisrCWVjaG8gJHtVTkFN RV9NQUNISU5FfS11bmtub3duLWFtaWdhb3MKKysJZXhpdCA7OworKyAgICAqOltNbV1vcnBoW09v XVtTc106KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1tb3JwaG9zCisrCWV4 aXQgOzsKKysgICAgKjpPUy8zOTA6KjoqKQorKwllY2hvIGkzNzAtaWJtLW9wZW5lZGl0aW9uCisr CWV4aXQgOzsKKysgICAgKjp6L1ZNOio6KikKKysJZWNobyBzMzkwLWlibS16dm1vZQorKwlleGl0 IDs7CisrICAgICo6T1M0MDA6KjoqKQorKyAgICAgICAgZWNobyBwb3dlcnBjLWlibS1vczQwMAor KwlleGl0IDs7CisrICAgIGFybTpSSVNDKjoxLlswMTJdKjoqfGFybTpyaXNjaXg6MS5bMDEyXSo6 KikKKysJZWNobyBhcm0tYWNvcm4tcmlzY2l4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7Cisr ICAgIGFybTpyaXNjb3M6KjoqfGFybTpSSVNDT1M6KjoqKQorKwllY2hvIGFybS11bmtub3duLXJp c2NvcworKwlleGl0IDs7CisrICAgIFNSMj8wMTpISS1VWC9NUFA6KjoqIHwgU1I4MDAwOkhJLVVY L01QUDoqOiopCisrCWVjaG8gaHBwYTEuMS1oaXRhY2hpLWhpdXhtcHAKKysJZXhpdCA7OworKyAg ICBQeXJhbWlkKjpPU3gqOio6KiB8IE1JUyo6T1N4KjoqOiogfCBNSVMqOlNNUF9EQy1PU3gqOio6 KikKKysJIyBha2VlQHdwZGlzMDMud3BhZmIuYWYubWlsIChFYXJsZSBGLiBBa2UpIGNvbnRyaWJ1 dGVkIE1JUyBhbmQgTklMRS4KKysJaWYgdGVzdCAiYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVs bGAiID0gYXR0IDsgdGhlbgorKwkJZWNobyBweXJhbWlkLXB5cmFtaWQtc3lzdjMKKysJZWxzZQor KwkJZWNobyBweXJhbWlkLXB5cmFtaWQtYnNkCisrCWZpCisrCWV4aXQgOzsKKysgICAgTklMRSo6 KjoqOmRjb3N4KQorKwllY2hvIHB5cmFtaWQtcHlyYW1pZC1zdnI0CisrCWV4aXQgOzsKKysgICAg RFJTPzYwMDA6dW5peDo0LjA6NiopCisrCWVjaG8gc3BhcmMtaWNsLW54NgorKwlleGl0IDs7Cisr ICAgIERSUz82MDAwOlVOSVhfU1Y6NC4yKjo3KiB8IERSUz82MDAwOmlzaXM6NC4yKjo3KikKKysJ Y2FzZSBgL3Vzci9iaW4vdW5hbWUgLXBgIGluCisrCSAgICBzcGFyYykgZWNobyBzcGFyYy1pY2wt bng3OyBleGl0IDs7CisrCWVzYWMgOzsKKysgICAgczM5MHg6U3VuT1M6KjoqKQorKwllY2hvICR7 VU5BTUVfTUFDSElORX0taWJtLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUg J3MvW14uXSovLydgCisrCWV4aXQgOzsKKysgICAgc3VuNEg6U3VuT1M6NS4qOiopCisrCWVjaG8g c3BhcmMtaGFsLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSov LydgCisrCWV4aXQgOzsKKysgICAgc3VuNCo6U3VuT1M6NS4qOiogfCB0YWRwb2xlKjpTdW5PUzo1 Lio6KikKKysJZWNobyBzcGFyYy1zdW4tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNl ZCAtZSAncy9bXi5dKi8vJ2AKKysJZXhpdCA7OworKyAgICBpODZwYzpBdXJvcmFVWDo1Lio6KiB8 IGk4NnhlbjpBdXJvcmFVWDo1Lio6KikKKysJZWNobyBpMzg2LXBjLWF1cm9yYXV4JHtVTkFNRV9S RUxFQVNFfQorKwlleGl0IDs7CisrICAgIGk4NnBjOlN1bk9TOjUuKjoqIHwgaTg2eGVuOlN1bk9T OjUuKjoqKQorKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrCVNVTl9BUkNIPSJpMzg2IgorKwkj IElmIHRoZXJlIGlzIGEgY29tcGlsZXIsIHNlZSBpZiBpdCBpcyBjb25maWd1cmVkIGZvciA2NC1i aXQgb2JqZWN0cy4KKysJIyBOb3RlIHRoYXQgdGhlIFN1biBjYyBkb2VzIG5vdCB0dXJuIF9fTFA2 NF9fIGludG8gMSBsaWtlIGdjYyBkb2VzLgorKwkjIFRoaXMgdGVzdCB3b3JrcyBmb3IgYm90aCBj b21waWxlcnMuCisrCWlmIFsgIiRDQ19GT1JfQlVJTEQiICE9ICdub19jb21waWxlcl9mb3VuZCcg XTsgdGhlbgorKwkgICAgaWYgKGVjaG8gJyNpZmRlZiBfX2FtZDY0JzsgZWNobyBJU182NEJJVF9B UkNIOyBlY2hvICcjZW5kaWYnKSB8IFwKKysJCShDQ09QVFM9ICRDQ19GT1JfQlVJTEQgLUUgLSAy Pi9kZXYvbnVsbCkgfCBcCisrCQlncmVwIElTXzY0QklUX0FSQ0ggPi9kZXYvbnVsbAorKwkgICAg dGhlbgorKwkJU1VOX0FSQ0g9Ing4Nl82NCIKKysJICAgIGZpCisrCWZpCisrCWVjaG8gJHtTVU5f QVJDSH0tcGMtc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8v J2AKKysJZXhpdCA7OworKyAgICBzdW40KjpTdW5PUzo2KjoqKQorKwkjIEFjY29yZGluZyB0byBj b25maWcuc3ViLCB0aGlzIGlzIHRoZSBwcm9wZXIgd2F5IHRvIGNhbm9uaWNhbGl6ZQorKwkjIFN1 bk9TNi4gIEhhcmQgdG8gZ3Vlc3MgZXhhY3RseSB3aGF0IFN1bk9TNiB3aWxsIGJlIGxpa2UsIGJ1 dAorKwkjIGl0J3MgbGlrZWx5IHRvIGJlIG1vcmUgbGlrZSBTb2xhcmlzIHRoYW4gU3VuT1M0Lgor KwllY2hvIHNwYXJjLXN1bi1zb2xhcmlzM2BlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdz L1teLl0qLy8nYAorKwlleGl0IDs7CisrICAgIHN1bjQqOlN1bk9TOio6KikKKysJY2FzZSAiYC91 c3IvYmluL2FyY2ggLWtgIiBpbgorKwkgICAgU2VyaWVzKnxTNCopCisrCQlVTkFNRV9SRUxFQVNF PWB1bmFtZSAtdmAKKysJCTs7CisrCWVzYWMKKysJIyBKYXBhbmVzZSBMYW5ndWFnZSB2ZXJzaW9u cyBoYXZlIGEgdmVyc2lvbiBudW1iZXIgbGlrZSBgNC4xLjMtSkwnLgorKwllY2hvIHNwYXJjLXN1 bi1zdW5vc2BlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLy0vXy8nYAorKwlleGl0IDs7 CisrICAgIHN1bjMqOlN1bk9TOio6KikKKysJZWNobyBtNjhrLXN1bi1zdW5vcyR7VU5BTUVfUkVM RUFTRX0KKysJZXhpdCA7OworKyAgICBzdW4qOio6NC4yQlNEOiopCisrCVVOQU1FX1JFTEVBU0U9 YChzZWQgMXEgL2V0Yy9tb3RkIHwgYXdrICd7cHJpbnQgc3Vic3RyKCQ1LDEsMyl9JykgMj4vZGV2 L251bGxgCisrCXRlc3QgIngke1VOQU1FX1JFTEVBU0V9IiA9ICJ4IiAmJiBVTkFNRV9SRUxFQVNF PTMKKysJY2FzZSAiYC9iaW4vYXJjaGAiIGluCisrCSAgICBzdW4zKQorKwkJZWNobyBtNjhrLXN1 bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KKysJCTs7CisrCSAgICBzdW40KQorKwkJZWNobyBzcGFy Yy1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisrCQk7OworKwllc2FjCisrCWV4aXQgOzsKKysg ICAgYXVzaHA6U3VuT1M6KjoqKQorKwllY2hvIHNwYXJjLWF1c3BleC1zdW5vcyR7VU5BTUVfUkVM RUFTRX0KKysJZXhpdCA7OworKyAgICAjIFRoZSBzaXR1YXRpb24gZm9yIE1pTlQgaXMgYSBsaXR0 bGUgY29uZnVzaW5nLiAgVGhlIG1hY2hpbmUgbmFtZQorKyAgICAjIGNhbiBiZSB2aXJ0dWFsbHkg ZXZlcnl0aGluZyAoZXZlcnl0aGluZyB3aGljaCBpcyBub3QKKysgICAgIyAiYXRhcmlzdCIgb3Ig ImF0YXJpc3RlIiBhdCBsZWFzdCBzaG91bGQgaGF2ZSBhIHByb2Nlc3NvcgorKyAgICAjID4gbTY4 MDAwKS4gIFRoZSBzeXN0ZW0gbmFtZSByYW5nZXMgZnJvbSAiTWlOVCIgb3ZlciAiRnJlZU1pTlQi CisrICAgICMgdG8gdGhlIGxvd2VyY2FzZSB2ZXJzaW9uICJtaW50IiAob3IgImZyZWVtaW50Iiku ICBGaW5hbGx5CisrICAgICMgdGhlIHN5c3RlbSBuYW1lICJUT1MiIGRlbm90ZXMgYSBzeXN0ZW0g d2hpY2ggaXMgYWN0dWFsbHkgbm90CisrICAgICMgTWlOVC4gIEJ1dCBNaU5UIGlzIGRvd253YXJk IGNvbXBhdGlibGUgdG8gVE9TLCBzbyB0aGlzIHNob3VsZAorKyAgICAjIGJlIG5vIHByb2JsZW0u CisrICAgIGF0YXJpc3RbZV06Kk1pTlQ6KjoqIHwgYXRhcmlzdFtlXToqbWludDoqOiogfCBhdGFy aXN0W2VdOipUT1M6KjoqKQorKyAgICAgICAgZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1FX1JF TEVBU0V9CisrCWV4aXQgOzsKKysgICAgYXRhcmkqOipNaU5UOio6KiB8IGF0YXJpKjoqbWludDoq OiogfCBhdGFyaXN0W2VdOipUT1M6KjoqKQorKwllY2hvIG02OGstYXRhcmktbWludCR7VU5BTUVf UkVMRUFTRX0KKysgICAgICAgIGV4aXQgOzsKKysgICAgKmZhbGNvbio6Kk1pTlQ6KjoqIHwgKmZh bGNvbio6Km1pbnQ6KjoqIHwgKmZhbGNvbio6KlRPUzoqOiopCisrICAgICAgICBlY2hvIG02OGst YXRhcmktbWludCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBtaWxhbio6Kk1pTlQ6 KjoqIHwgbWlsYW4qOiptaW50Oio6KiB8ICptaWxhbio6KlRPUzoqOiopCisrICAgICAgICBlY2hv IG02OGstbWlsYW4tbWludCR7VU5BTUVfUkVMRUFTRX0KKysgICAgICAgIGV4aXQgOzsKKysgICAg aGFkZXMqOipNaU5UOio6KiB8IGhhZGVzKjoqbWludDoqOiogfCAqaGFkZXMqOipUT1M6KjoqKQor KyAgICAgICAgZWNobyBtNjhrLWhhZGVzLW1pbnQke1VOQU1FX1JFTEVBU0V9CisrICAgICAgICBl eGl0IDs7CisrICAgICo6Kk1pTlQ6KjoqIHwgKjoqbWludDoqOiogfCAqOipUT1M6KjoqKQorKyAg ICAgICAgZWNobyBtNjhrLXVua25vd24tbWludCR7VU5BTUVfUkVMRUFTRX0KKysgICAgICAgIGV4 aXQgOzsKKysgICAgbTY4azptYWNodGVuOio6KikKKysJZWNobyBtNjhrLWFwcGxlLW1hY2h0ZW4k e1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgcG93ZXJwYzptYWNodGVuOio6KikKKysJ ZWNobyBwb3dlcnBjLWFwcGxlLW1hY2h0ZW4ke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysg ICAgUklTQyo6TWFjaDoqOiopCisrCWVjaG8gbWlwcy1kZWMtbWFjaF9ic2Q0LjMKKysJZXhpdCA7 OworKyAgICBSSVNDKjpVTFRSSVg6KjoqKQorKwllY2hvIG1pcHMtZGVjLXVsdHJpeCR7VU5BTUVf UkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBWQVgqOlVMVFJJWCo6KjoqKQorKwllY2hvIHZheC1k ZWMtdWx0cml4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIDIwMjA6Q0xJWDoqOiog fCAyNDMwOkNMSVg6KjoqKQorKwllY2hvIGNsaXBwZXItaW50ZXJncmFwaC1jbGl4JHtVTkFNRV9S RUxFQVNFfQorKwlleGl0IDs7CisrICAgIG1pcHM6KjoqOlVNSVBTIHwgbWlwczoqOio6UklTQ29z KQorKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1t eS5jCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrI2luY2x1ZGUgPHN0ZGlvLmg+ICAvKiBmb3IgcHJp bnRmKCkgcHJvdG90eXBlICovCisrCWludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKSB7 CisrI2Vsc2UKKysJaW50IG1haW4gKGFyZ2MsIGFyZ3YpIGludCBhcmdjOyBjaGFyICphcmd2W107 IHsKKysjZW5kaWYKKysJI2lmIGRlZmluZWQgKGhvc3RfbWlwcykgJiYgZGVmaW5lZCAoTUlQU0VC KQorKwkjaWYgZGVmaW5lZCAoU1lTVFlQRV9TWVNWKQorKwkgIHByaW50ZiAoIm1pcHMtbWlwcy1y aXNjb3Mlc3N5c3ZcbiIsIGFyZ3ZbMV0pOyBleGl0ICgwKTsKKysJI2VuZGlmCisrCSNpZiBkZWZp bmVkIChTWVNUWVBFX1NWUjQpCisrCSAgcHJpbnRmICgibWlwcy1taXBzLXJpc2NvcyVzc3ZyNFxu IiwgYXJndlsxXSk7IGV4aXQgKDApOworKwkjZW5kaWYKKysJI2lmIGRlZmluZWQgKFNZU1RZUEVf QlNENDMpIHx8IGRlZmluZWQoU1lTVFlQRV9CU0QpCisrCSAgcHJpbnRmICgibWlwcy1taXBzLXJp c2NvcyVzYnNkXG4iLCBhcmd2WzFdKTsgZXhpdCAoMCk7CisrCSNlbmRpZgorKwkjZW5kaWYKKysJ ICBleGl0ICgtMSk7CisrCX0KKytFT0YKKysJJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15 LmMgJiYKKysJICBkdW1teWFyZz1gZWNobyAiJHtVTkFNRV9SRUxFQVNFfSIgfCBzZWQgLW4gJ3Mv XChbMC05XSpcKS4qL1wxL3AnYCAmJgorKwkgIFNZU1RFTV9OQU1FPWAkZHVtbXkgJGR1bW15YXJn YCAmJgorKwkgICAgeyBlY2hvICIkU1lTVEVNX05BTUUiOyBleGl0OyB9CisrCWVjaG8gbWlwcy1t aXBzLXJpc2NvcyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBNb3Rvcm9sYTpQb3dl ck1BWF9PUzoqOiopCisrCWVjaG8gcG93ZXJwYy1tb3Rvcm9sYS1wb3dlcm1heAorKwlleGl0IDs7 CisrICAgIE1vdG9yb2xhOio6NC4zOlBMOC0qKQorKwllY2hvIHBvd2VycGMtaGFycmlzLXBvd2Vy bWF4CisrCWV4aXQgOzsKKysgICAgTmlnaHRfSGF3azoqOio6UG93ZXJNQVhfT1MgfCBTeW5lcmd5 OlBvd2VyTUFYX09TOio6KikKKysJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcm1heAorKwlleGl0 IDs7CisrICAgIE5pZ2h0X0hhd2s6UG93ZXJfVU5JWDoqOiopCisrCWVjaG8gcG93ZXJwYy1oYXJy aXMtcG93ZXJ1bml4CisrCWV4aXQgOzsKKysgICAgbTg4azpDWC9VWDo3KjoqKQorKwllY2hvIG04 OGstaGFycmlzLWN4dXg3CisrCWV4aXQgOzsKKysgICAgbTg4azoqOjQqOlI0KikKKysJZWNobyBt ODhrLW1vdG9yb2xhLXN5c3Y0CisrCWV4aXQgOzsKKysgICAgbTg4azoqOjMqOlIzKikKKysJZWNo byBtODhrLW1vdG9yb2xhLXN5c3YzCisrCWV4aXQgOzsKKysgICAgQVZpaU9OOmRndXg6KjoqKQor KyAgICAgICAgIyBERy9VWCByZXR1cm5zIEFWaWlPTiBmb3IgYWxsIGFyY2hpdGVjdHVyZXMKKysg ICAgICAgIFVOQU1FX1BST0NFU1NPUj1gL3Vzci9iaW4vdW5hbWUgLXBgCisrCWlmIFsgJFVOQU1F X1BST0NFU1NPUiA9IG1jODgxMDAgXSB8fCBbICRVTkFNRV9QUk9DRVNTT1IgPSBtYzg4MTEwIF0K KysJdGhlbgorKwkgICAgaWYgWyAke1RBUkdFVF9CSU5BUllfSU5URVJGQUNFfXggPSBtODhrZGd1 eGVsZnggXSB8fCBcCisrCSAgICAgICBbICR7VEFSR0VUX0JJTkFSWV9JTlRFUkZBQ0V9eCA9IHgg XQorKwkgICAgdGhlbgorKwkJZWNobyBtODhrLWRnLWRndXgke1VOQU1FX1JFTEVBU0V9CisrCSAg ICBlbHNlCisrCQllY2hvIG04OGstZGctZGd1eGJjcyR7VU5BTUVfUkVMRUFTRX0KKysJICAgIGZp CisrCWVsc2UKKysJICAgIGVjaG8gaTU4Ni1kZy1kZ3V4JHtVTkFNRV9SRUxFQVNFfQorKwlmaQor KyAJZXhpdCA7OworKyAgICBNODgqOkRvbHBoaW5PUzoqOiopCSMgRG9scGhpbk9TIChTVlIzKQor KwllY2hvIG04OGstZG9scGhpbi1zeXN2MworKwlleGl0IDs7CisrICAgIE04OCo6KjpSMyo6KikK KysJIyBEZWx0YSA4OGsgc3lzdGVtIHJ1bm5pbmcgU1ZSMworKwllY2hvIG04OGstbW90b3JvbGEt c3lzdjMKKysJZXhpdCA7OworKyAgICBYRDg4KjoqOio6KikgIyBUZWt0cm9uaXggWEQ4OCBzeXN0 ZW0gcnVubmluZyBVVGVrViAoU1ZSMykKKysJZWNobyBtODhrLXRla3Ryb25peC1zeXN2MworKwll eGl0IDs7CisrICAgIFRlazQzWzAtOV1bMC05XTpVVGVrOio6KikgIyBUZWt0cm9uaXggNDMwMCBz eXN0ZW0gcnVubmluZyBVVGVrIChCU0QpCisrCWVjaG8gbTY4ay10ZWt0cm9uaXgtYnNkCisrCWV4 aXQgOzsKKysgICAgKjpJUklYKjoqOiopCisrCWVjaG8gbWlwcy1zZ2ktaXJpeGBlY2hvICR7VU5B TUVfUkVMRUFTRX18c2VkIC1lICdzLy0vXy9nJ2AKKysJZXhpdCA7OworKyAgICA/Pz8/Pz8/PzpB SVg/OlsxMl0uMToyKSAgICMgQUlYIDIuMi4xIG9yIEFJWCAyLjEuMSBpcyBSVC9QQyBBSVguCisr CWVjaG8gcm9tcC1pYm0tYWl4ICAgICAjIHVuYW1lIC1tIGdpdmVzIGFuIDggaGV4LWNvZGUgQ1BV IGlkCisrCWV4aXQgOzsgICAgICAgICAgICAgICAjIE5vdGUgdGhhdDogZWNobyAiJ2B1bmFtZSAt c2AnIiBnaXZlcyAnQUlYICcKKysgICAgaSo4NjpBSVg6KjoqKQorKwllY2hvIGkzODYtaWJtLWFp eAorKwlleGl0IDs7CisrICAgIGlhNjQ6QUlYOio6KikKKysJaWYgWyAteCAvdXNyL2Jpbi9vc2xl dmVsIF0gOyB0aGVuCisrCQlJQk1fUkVWPWAvdXNyL2Jpbi9vc2xldmVsYAorKwllbHNlCisrCQlJ Qk1fUkVWPSR7VU5BTUVfVkVSU0lPTn0uJHtVTkFNRV9SRUxFQVNFfQorKwlmaQorKwllY2hvICR7 VU5BTUVfTUFDSElORX0taWJtLWFpeCR7SUJNX1JFVn0KKysJZXhpdCA7OworKyAgICAqOkFJWDoy OjMpCisrCWlmIGdyZXAgYm9zMzI1IC91c3IvaW5jbHVkZS9zdGRpby5oID4vZGV2L251bGwgMj4m MTsgdGhlbgorKwkJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorKwkJc2VkICdzL14JCS8vJyA8PCBF T0YgPiRkdW1teS5jCisrCQkjaW5jbHVkZSA8c3lzL3N5c3RlbWNmZy5oPgorKworKwkJbWFpbigp CisrCQkJeworKwkJCWlmICghX19wb3dlcl9wYygpKQorKwkJCQlleGl0KDEpOworKwkJCXB1dHMo InBvd2VycGMtaWJtLWFpeDMuMi41Iik7CisrCQkJZXhpdCgwKTsKKysJCQl9CisrRU9GCisrCQlp ZiAkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAmJiBTWVNURU1fTkFNRT1gJGR1bW15 YAorKwkJdGhlbgorKwkJCWVjaG8gIiRTWVNURU1fTkFNRSIKKysJCWVsc2UKKysJCQllY2hvIHJz NjAwMC1pYm0tYWl4My4yLjUKKysJCWZpCisrCWVsaWYgZ3JlcCBib3MzMjQgL3Vzci9pbmNsdWRl L3N0ZGlvLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCQllY2hvIHJzNjAwMC1pYm0tYWl4My4y LjQKKysJZWxzZQorKwkJZWNobyByczYwMDAtaWJtLWFpeDMuMgorKwlmaQorKwlleGl0IDs7Cisr ICAgICo6QUlYOio6WzQ1Nl0pCisrCUlCTV9DUFVfSUQ9YC91c3Ivc2Jpbi9sc2RldiAtQyAtYyBw cm9jZXNzb3IgLVMgYXZhaWxhYmxlIHwgc2VkIDFxIHwgYXdrICd7IHByaW50ICQxIH0nYAorKwlp ZiAvdXNyL3NiaW4vbHNhdHRyIC1FbCAke0lCTV9DUFVfSUR9IHwgZ3JlcCAnIFBPV0VSJyA+L2Rl di9udWxsIDI+JjE7IHRoZW4KKysJCUlCTV9BUkNIPXJzNjAwMAorKwllbHNlCisrCQlJQk1fQVJD SD1wb3dlcnBjCisrCWZpCisrCWlmIFsgLXggL3Vzci9iaW4vb3NsZXZlbCBdIDsgdGhlbgorKwkJ SUJNX1JFVj1gL3Vzci9iaW4vb3NsZXZlbGAKKysJZWxzZQorKwkJSUJNX1JFVj0ke1VOQU1FX1ZF UlNJT059LiR7VU5BTUVfUkVMRUFTRX0KKysJZmkKKysJZWNobyAke0lCTV9BUkNIfS1pYm0tYWl4 JHtJQk1fUkVWfQorKwlleGl0IDs7CisrICAgICo6QUlYOio6KikKKysJZWNobyByczYwMDAtaWJt LWFpeAorKwlleGl0IDs7CisrICAgIGlibXJ0OjQuNEJTRDoqfHJvbXAtaWJtOkJTRDoqKQorKwll Y2hvIHJvbXAtaWJtLWJzZDQuNAorKwlleGl0IDs7CisrICAgIGlibXJ0OipCU0Q6Knxyb21wLWli bTpCU0Q6KikgICAgICAgICAgICAjIGNvdmVycyBSVC9QQyBCU0QgYW5kCisrCWVjaG8gcm9tcC1p Ym0tYnNkJHtVTkFNRV9SRUxFQVNFfSAgICMgNC4zIHdpdGggdW5hbWUgYWRkZWQgdG8KKysJZXhp dCA7OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyByZXBvcnQ6IHJvbXAtaWJtIEJTRCA0 LjMKKysgICAgKjpCT1NYOio6KikKKysJZWNobyByczYwMDAtYnVsbC1ib3N4CisrCWV4aXQgOzsK KysgICAgRFBYLzI/MDA6Qi5PLlMuOio6KikKKysJZWNobyBtNjhrLWJ1bGwtc3lzdjMKKysJZXhp dCA7OworKyAgICA5MDAwL1szNF0/Pzo0LjNic2Q6MS4qOiopCisrCWVjaG8gbTY4ay1ocC1ic2QK KysJZXhpdCA7OworKyAgICBocDMwMDo0LjRCU0Q6KjoqIHwgOTAwMC9bMzRdPz86NC4zYnNkOjIu KjoqKQorKwllY2hvIG02OGstaHAtYnNkNC40CisrCWV4aXQgOzsKKysgICAgOTAwMC9bMzQ2Nzhd Pz86SFAtVVg6KjoqKQorKwlIUFVYX1JFVj1gZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAn cy9bXi5dKi5bMEJdKi8vJ2AKKysJY2FzZSAiJHtVTkFNRV9NQUNISU5FfSIgaW4KKysJICAgIDkw MDAvMzE/ICkgICAgICAgICAgICBIUF9BUkNIPW02ODAwMCA7OworKwkgICAgOTAwMC9bMzRdPz8g KSAgICAgICAgIEhQX0FSQ0g9bTY4ayA7OworKwkgICAgOTAwMC9bNjc4XVswLTldWzAtOV0pCisr CQlpZiBbIC14IC91c3IvYmluL2dldGNvbmYgXTsgdGhlbgorKwkJICAgIHNjX2NwdV92ZXJzaW9u PWAvdXNyL2Jpbi9nZXRjb25mIFNDX0NQVV9WRVJTSU9OIDI+L2Rldi9udWxsYAorKyAgICAgICAg ICAgICAgICAgICAgc2Nfa2VybmVsX2JpdHM9YC91c3IvYmluL2dldGNvbmYgU0NfS0VSTkVMX0JJ VFMgMj4vZGV2L251bGxgCisrICAgICAgICAgICAgICAgICAgICBjYXNlICIke3NjX2NwdV92ZXJz aW9ufSIgaW4KKysgICAgICAgICAgICAgICAgICAgICAgNTIzKSBIUF9BUkNIPSJocHBhMS4wIiA7 OyAjIENQVV9QQV9SSVNDMV8wCisrICAgICAgICAgICAgICAgICAgICAgIDUyOCkgSFBfQVJDSD0i aHBwYTEuMSIgOzsgIyBDUFVfUEFfUklTQzFfMQorKyAgICAgICAgICAgICAgICAgICAgICA1MzIp ICAgICAgICAgICAgICAgICAgICAgICMgQ1BVX1BBX1JJU0MyXzAKKysgICAgICAgICAgICAgICAg ICAgICAgICBjYXNlICIke3NjX2tlcm5lbF9iaXRzfSIgaW4KKysgICAgICAgICAgICAgICAgICAg ICAgICAgIDMyKSBIUF9BUkNIPSJocHBhMi4wbiIgOzsKKysgICAgICAgICAgICAgICAgICAgICAg ICAgIDY0KSBIUF9BUkNIPSJocHBhMi4wdyIgOzsKKysJCQkgICcnKSBIUF9BUkNIPSJocHBhMi4w IiA7OyAgICMgSFAtVVggMTAuMjAKKysgICAgICAgICAgICAgICAgICAgICAgICBlc2FjIDs7Cisr ICAgICAgICAgICAgICAgICAgICBlc2FjCisrCQlmaQorKwkJaWYgWyAiJHtIUF9BUkNIfSIgPSAi IiBdOyB0aGVuCisrCQkgICAgZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorKwkJICAgIHNlZCAncy9e ICAgICAgICAgICAgICAvLycgPDwgRU9GID4kZHVtbXkuYworKworKyAgICAgICAgICAgICAgI2Rl ZmluZSBfSFBVWF9TT1VSQ0UKKysgICAgICAgICAgICAgICNpbmNsdWRlIDxzdGRsaWIuaD4KKysg ICAgICAgICAgICAgICNpbmNsdWRlIDx1bmlzdGQuaD4KKysKKysgICAgICAgICAgICAgIGludCBt YWluICgpCisrICAgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAjaWYgZGVmaW5lZChfU0Nf S0VSTkVMX0JJVFMpCisrICAgICAgICAgICAgICAgICAgbG9uZyBiaXRzID0gc3lzY29uZihfU0Nf S0VSTkVMX0JJVFMpOworKyAgICAgICAgICAgICAgI2VuZGlmCisrICAgICAgICAgICAgICAgICAg bG9uZyBjcHUgID0gc3lzY29uZiAoX1NDX0NQVV9WRVJTSU9OKTsKKysKKysgICAgICAgICAgICAg ICAgICBzd2l0Y2ggKGNwdSkKKysgICAgICAgICAgICAgIAl7CisrICAgICAgICAgICAgICAJY2Fz ZSBDUFVfUEFfUklTQzFfMDogcHV0cyAoImhwcGExLjAiKTsgYnJlYWs7CisrICAgICAgICAgICAg ICAJY2FzZSBDUFVfUEFfUklTQzFfMTogcHV0cyAoImhwcGExLjEiKTsgYnJlYWs7CisrICAgICAg ICAgICAgICAJY2FzZSBDUFVfUEFfUklTQzJfMDoKKysgICAgICAgICAgICAgICNpZiBkZWZpbmVk KF9TQ19LRVJORUxfQklUUykKKysgICAgICAgICAgICAgIAkgICAgc3dpdGNoIChiaXRzKQorKyAg ICAgICAgICAgICAgCQl7CisrICAgICAgICAgICAgICAJCWNhc2UgNjQ6IHB1dHMgKCJocHBhMi4w dyIpOyBicmVhazsKKysgICAgICAgICAgICAgIAkJY2FzZSAzMjogcHV0cyAoImhwcGEyLjBuIik7 IGJyZWFrOworKyAgICAgICAgICAgICAgCQlkZWZhdWx0OiBwdXRzICgiaHBwYTIuMCIpOyBicmVh azsKKysgICAgICAgICAgICAgIAkJfSBicmVhazsKKysgICAgICAgICAgICAgICNlbHNlICAvKiAh ZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpICovCisrICAgICAgICAgICAgICAJICAgIHB1dHMgKCJo cHBhMi4wIik7IGJyZWFrOworKyAgICAgICAgICAgICAgI2VuZGlmCisrICAgICAgICAgICAgICAJ ZGVmYXVsdDogcHV0cyAoImhwcGExLjAiKTsgYnJlYWs7CisrICAgICAgICAgICAgICAJfQorKyAg ICAgICAgICAgICAgICAgIGV4aXQgKDApOworKyAgICAgICAgICAgICAgfQorK0VPRgorKwkJICAg IChDQ09QVFM9ICRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jIDI+L2Rldi9udWxsKSAm JiBIUF9BUkNIPWAkZHVtbXlgCisrCQkgICAgdGVzdCAteiAiJEhQX0FSQ0giICYmIEhQX0FSQ0g9 aHBwYQorKwkJZmkgOzsKKysJZXNhYworKwlpZiBbICR7SFBfQVJDSH0gPSAiaHBwYTIuMHciIF0K KysJdGhlbgorKwkgICAgZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorKworKwkgICAgIyBocHBhMi4w dy1ocC1ocHV4KiBoYXMgYSA2NC1iaXQga2VybmVsIGFuZCBhIGNvbXBpbGVyIGdlbmVyYXRpbmcK KysJICAgICMgMzItYml0IGNvZGUuICBocHBhNjQtaHAtaHB1eCogaGFzIHRoZSBzYW1lIGtlcm5l bCBhbmQgYSBjb21waWxlcgorKwkgICAgIyBnZW5lcmF0aW5nIDY0LWJpdCBjb2RlLiAgR05VIGFu ZCBIUCB1c2UgZGlmZmVyZW50IG5vbWVuY2xhdHVyZToKKysJICAgICMKKysJICAgICMgJCBDQ19G T1JfQlVJTEQ9Y2MgLi9jb25maWcuZ3Vlc3MKKysJICAgICMgPT4gaHBwYTIuMHctaHAtaHB1eDEx LjIzCisrCSAgICAjICQgQ0NfRk9SX0JVSUxEPSJjYyArREEyLjB3IiAuL2NvbmZpZy5ndWVzcwor KwkgICAgIyA9PiBocHBhNjQtaHAtaHB1eDExLjIzCisrCisrCSAgICBpZiBlY2hvIF9fTFA2NF9f IHwgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsKSB8CisrCQlncmVwIC1x IF9fTFA2NF9fCisrCSAgICB0aGVuCisrCQlIUF9BUkNIPSJocHBhMi4wdyIKKysJICAgIGVsc2UK KysJCUhQX0FSQ0g9ImhwcGE2NCIKKysJICAgIGZpCisrCWZpCisrCWVjaG8gJHtIUF9BUkNIfS1o cC1ocHV4JHtIUFVYX1JFVn0KKysJZXhpdCA7OworKyAgICBpYTY0OkhQLVVYOio6KikKKysJSFBV WF9SRVY9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSouWzBCXSovLydgCisr CWVjaG8gaWE2NC1ocC1ocHV4JHtIUFVYX1JFVn0KKysJZXhpdCA7OworKyAgICAzMDUwKjpISS1V WDoqOiopCisrCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKysJc2VkICdzL14JLy8nIDw8IEVPRiA+ JGR1bW15LmMKKysJI2luY2x1ZGUgPHVuaXN0ZC5oPgorKwlpbnQKKysJbWFpbiAoKQorKwl7Cisr CSAgbG9uZyBjcHUgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOworKwkgIC8qIFRoZSBvcmRl ciBtYXR0ZXJzLCBiZWNhdXNlIENQVV9JU19IUF9NQzY4SyBlcnJvbmVvdXNseSByZXR1cm5zCisr CSAgICAgdHJ1ZSBmb3IgQ1BVX1BBX1JJU0MxXzAuICBDUFVfSVNfUEFfUklTQyByZXR1cm5zIGNv cnJlY3QKKysJICAgICByZXN1bHRzLCBob3dldmVyLiAgKi8KKysJICBpZiAoQ1BVX0lTX1BBX1JJ U0MgKGNwdSkpCisrCSAgICB7CisrCSAgICAgIHN3aXRjaCAoY3B1KQorKwkJeworKwkJICBjYXNl IENQVV9QQV9SSVNDMV8wOiBwdXRzICgiaHBwYTEuMC1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7 CisrCQkgIGNhc2UgQ1BVX1BBX1JJU0MxXzE6IHB1dHMgKCJocHBhMS4xLWhpdGFjaGktaGl1eHdl MiIpOyBicmVhazsKKysJCSAgY2FzZSBDUFVfUEFfUklTQzJfMDogcHV0cyAoImhwcGEyLjAtaGl0 YWNoaS1oaXV4d2UyIik7IGJyZWFrOworKwkJICBkZWZhdWx0OiBwdXRzICgiaHBwYS1oaXRhY2hp LWhpdXh3ZTIiKTsgYnJlYWs7CisrCQl9CisrCSAgICB9CisrCSAgZWxzZSBpZiAoQ1BVX0lTX0hQ X01DNjhLIChjcHUpKQorKwkgICAgcHV0cyAoIm02OGstaGl0YWNoaS1oaXV4d2UyIik7CisrCSAg ZWxzZSBwdXRzICgidW5rbm93bi1oaXRhY2hpLWhpdXh3ZTIiKTsKKysJICBleGl0ICgwKTsKKysJ fQorK0VPRgorKwkkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAmJiBTWVNURU1fTkFN RT1gJGR1bW15YCAmJgorKwkJeyBlY2hvICIkU1lTVEVNX05BTUUiOyBleGl0OyB9CisrCWVjaG8g dW5rbm93bi1oaXRhY2hpLWhpdXh3ZTIKKysJZXhpdCA7OworKyAgICA5MDAwLzc/Pzo0LjNic2Q6 KjoqIHwgOTAwMC84P1s3OV06NC4zYnNkOio6KiApCisrCWVjaG8gaHBwYTEuMS1ocC1ic2QKKysJ ZXhpdCA7OworKyAgICA5MDAwLzg/Pzo0LjNic2Q6KjoqKQorKwllY2hvIGhwcGExLjAtaHAtYnNk CisrCWV4aXQgOzsKKysgICAgKjk/Pyo6TVBFL2lYOio6KiB8ICozMDAwKjpNUEUvaVg6KjoqKQor KwllY2hvIGhwcGExLjAtaHAtbXBlaXgKKysJZXhpdCA7OworKyAgICBocDc/PzpPU0YxOio6KiB8 IGhwOD9bNzldOk9TRjE6KjoqICkKKysJZWNobyBocHBhMS4xLWhwLW9zZgorKwlleGl0IDs7Cisr ICAgIGhwOD8/Ok9TRjE6KjoqKQorKwllY2hvIGhwcGExLjAtaHAtb3NmCisrCWV4aXQgOzsKKysg ICAgaSo4NjpPU0YxOio6KikKKysJaWYgWyAteCAvdXNyL3NiaW4vc3lzdmVyc2lvbiBdIDsgdGhl bgorKwkgICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tb3NmMW1rCisrCWVsc2UKKysJ ICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW9zZjEKKysJZmkKKysJZXhpdCA7Owor KyAgICBwYXJpc2MqOkxpdGVzKjoqOiopCisrCWVjaG8gaHBwYTEuMS1ocC1saXRlcworKwlleGl0 IDs7CisrICAgIEMxKjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzEqOiopCisrCWVj aG8gYzEtY29udmV4LWJzZAorKyAgICAgICAgZXhpdCA7OworKyAgICBDMio6Q29udmV4T1M6Kjoq IHwgY29udmV4OkNvbnZleE9TOkMyKjoqKQorKwlpZiBnZXRzeXNpbmZvIC1mIHNjYWxhcl9hY2MK KysJdGhlbiBlY2hvIGMzMi1jb252ZXgtYnNkCisrCWVsc2UgZWNobyBjMi1jb252ZXgtYnNkCisr CWZpCisrICAgICAgICBleGl0IDs7CisrICAgIEMzNCo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNv bnZleE9TOkMzNCo6KikKKysJZWNobyBjMzQtY29udmV4LWJzZAorKyAgICAgICAgZXhpdCA7Owor KyAgICBDMzgqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMzgqOiopCisrCWVjaG8g YzM4LWNvbnZleC1ic2QKKysgICAgICAgIGV4aXQgOzsKKysgICAgQzQqOkNvbnZleE9TOio6KiB8 IGNvbnZleDpDb252ZXhPUzpDNCo6KikKKysJZWNobyBjNC1jb252ZXgtYnNkCisrICAgICAgICBl eGl0IDs7CisrICAgIENSQVkqWS1NUDoqOio6KikKKysJZWNobyB5bXAtY3JheS11bmljb3Mke1VO QU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKKysJZXhpdCA7OworKyAgICBD UkFZKltBLVpdOTA6KjoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1jcmF5LXVuaWNvcyR7 VU5BTUVfUkVMRUFTRX0gXAorKwl8IHNlZCAtZSAncy9DUkFZLipcKFtBLVpdOTBcKS9cMS8nIFwK KysJICAgICAgLWUgeS9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi9hYmNkZWZnaGlqa2xtbm9w cXJzdHV2d3h5ei8gXAorKwkgICAgICAtZSAncy9cLlteLl0qJC8uWC8nCisrCWV4aXQgOzsKKysg ICAgQ1JBWSpUUzoqOio6KikKKysJZWNobyB0OTAtY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9 IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKKysJZXhpdCA7OworKyAgICBDUkFZKlQzRToqOio6 KikKKysJZWNobyBhbHBoYWV2NS1jcmF5LXVuaWNvc21rJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAt ZSAncy9cLlteLl0qJC8uWC8nCisrCWV4aXQgOzsKKysgICAgQ1JBWSpTVjE6KjoqOiopCisrCWVj aG8gc3YxLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8u WC8nCisrCWV4aXQgOzsKKysgICAgKjpVTklDT1MvbXA6KjoqKQorKwllY2hvIGNyYXludi1jcmF5 LXVuaWNvc21wJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCisrCWV4 aXQgOzsKKysgICAgRjMwWzAxXTpVTklYX1N5c3RlbV9WOio6KiB8IEY3MDA6VU5JWF9TeXN0ZW1f VjoqOiopCisrCUZVSklUU1VfUFJPQz1gdW5hbWUgLW0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFS U1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidgCisrICAgICAgICBGVUpJVFNV X1NZUz1gdW5hbWUgLXAgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZn aGlqa2xtbm9wcXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvXC8vLydgCisrICAgICAgICBGVUpJVFNV X1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzLyAvXy8nYAorKyAgICAgICAg ZWNobyAiJHtGVUpJVFNVX1BST0N9LWZ1aml0c3UtJHtGVUpJVFNVX1NZU30ke0ZVSklUU1VfUkVM fSIKKysgICAgICAgIGV4aXQgOzsKKysgICAgNTAwMDpVTklYX1N5c3RlbV9WOjQuKjoqKQorKyAg ICAgICAgRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZX WFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wvLy8nYAorKyAg ICAgICAgRlVKSVRTVV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHRyICdBQkNERUZHSElK S0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyB8IHNlZCAtZSAn cy8gL18vJ2AKKysgICAgICAgIGVjaG8gInNwYXJjLWZ1aml0c3UtJHtGVUpJVFNVX1NZU30ke0ZV SklUU1VfUkVMfSIKKysJZXhpdCA7OworKyAgICBpKjg2OkJTRC8zODY6KjoqIHwgaSo4NjpCU0Qv T1M6KjoqIHwgKjpBc2NlbmRcIEVtYmVkZGVkL09TOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJ TkV9LXBjLWJzZGkke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgc3BhcmMqOkJTRC9P UzoqOiopCisrCWVjaG8gc3BhcmMtdW5rbm93bi1ic2RpJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0 IDs7CisrICAgICo6QlNEL09TOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24t YnNkaSR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOkZyZWVCU0Q6KjoqKQorKwlj YXNlICR7VU5BTUVfTUFDSElORX0gaW4KKysJICAgIHBjOTgpCisrCQllY2hvIGkzODYtdW5rbm93 bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYCA7Owor KwkgICAgYW1kNjQpCisrCQllY2hvIHg4Nl82NC11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1F X1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7CisrCSAgICAqKQorKwkJZWNobyAke1VO QU1FX01BQ0hJTkV9LXVua25vd24tZnJlZWJzZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1l ICdzL1stKF0uKi8vJ2AgOzsKKysJZXNhYworKwlleGl0IDs7CisrICAgIGkqOkNZR1dJTio6KikK KysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWN5Z3dpbgorKwlleGl0IDs7CisrICAgICo6TUlO R1cqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1taW5ndzMyCisrCWV4aXQgOzsKKysg ICAgaSo6d2luZG93czMyKjoqKQorKyAgICAJIyB1bmFtZSAtbSBpbmNsdWRlcyAiLXBjIiBvbiB0 aGlzIHN5c3RlbS4KKysgICAgCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1taW5ndzMyCisrCWV4aXQg OzsKKysgICAgaSo6UFcqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1wdzMyCisrCWV4 aXQgOzsKKysgICAgKjpJbnRlcml4KjoqKQorKyAgICAJY2FzZSAke1VOQU1FX01BQ0hJTkV9IGlu CisrCSAgICB4ODYpCisrCQllY2hvIGk1ODYtcGMtaW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KKysJ CWV4aXQgOzsKKysJICAgIGF1dGhlbnRpY2FtZCB8IGdlbnVpbmVpbnRlbCB8IEVNNjRUKQorKwkJ ZWNobyB4ODZfNjQtdW5rbm93bi1pbnRlcml4JHtVTkFNRV9SRUxFQVNFfQorKwkJZXhpdCA7Owor KwkgICAgSUE2NCkKKysJCWVjaG8gaWE2NC11bmtub3duLWludGVyaXgke1VOQU1FX1JFTEVBU0V9 CisrCQlleGl0IDs7CisrCWVzYWMgOzsKKysgICAgWzM0NV04NjpXaW5kb3dzXzk1OiogfCBbMzQ1 XTg2OldpbmRvd3NfOTg6KiB8IFszNDVdODY6V2luZG93c19OVDoqKQorKwllY2hvIGkke1VOQU1F X01BQ0hJTkV9LXBjLW1rcworKwlleGl0IDs7CisrICAgIDg2NjQ6V2luZG93c19OVDoqKQorKwll Y2hvIHg4Nl82NC1wYy1ta3MKKysJZXhpdCA7OworKyAgICBpKjpXaW5kb3dzX05UKjoqIHwgUGVu dGl1bSo6V2luZG93c19OVCo6KikKKysJIyBIb3cgZG8gd2Uga25vdyBpdCdzIEludGVyaXggcmF0 aGVyIHRoYW4gdGhlIGdlbmVyaWMgUE9TSVggc3Vic3lzdGVtPworKwkjIEl0IGFsc28gY29uZmxp Y3RzIHdpdGggcHJlLTIuMCB2ZXJzaW9ucyBvZiBBVCZUIFVXSU4uIFNob3VsZCB3ZQorKwkjIFVO QU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkIG9mIGkzODY/ CisrCWVjaG8gaTU4Ni1wYy1pbnRlcml4CisrCWV4aXQgOzsKKysgICAgaSo6VVdJTio6KikKKysJ ZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXV3aW4KKysJZXhpdCA7OworKyAgICBhbWQ2NDpDWUdX SU4qOio6KiB8IHg4Nl82NDpDWUdXSU4qOio6KikKKysJZWNobyB4ODZfNjQtdW5rbm93bi1jeWd3 aW4KKysJZXhpdCA7OworKyAgICBwKjpDWUdXSU4qOiopCisrCWVjaG8gcG93ZXJwY2xlLXVua25v d24tY3lnd2luCisrCWV4aXQgOzsKKysgICAgcHJlcCo6U3VuT1M6NS4qOiopCisrCWVjaG8gcG93 ZXJwY2xlLXVua25vd24tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9b Xi5dKi8vJ2AKKysJZXhpdCA7OworKyAgICAqOkdOVToqOiopCisrCSMgdGhlIEdOVSBzeXN0ZW0K KysJZWNobyBgZWNobyAke1VOQU1FX01BQ0hJTkV9fHNlZCAtZSAncyxbLS9dLiokLCwnYC11bmtu b3duLWdudWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLC8uKiQsLCdgCisrCWV4aXQg OzsKKysgICAgKjpHTlUvKjoqOiopCisrCSMgb3RoZXIgc3lzdGVtcyB3aXRoIEdOVSBsaWJjIGFu ZCB1c2VybGFuZAorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1gZWNobyAke1VOQU1F X1NZU1RFTX0gfCBzZWQgJ3MsXlteL10qLywsJyB8IHRyICdbQS1aXScgJ1thLXpdJ2BgZWNobyAk e1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgLWdudQorKwlleGl0IDs7CisrICAg IGkqODY6TWluaXg6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluaXgKKysJZXhp dCA7OworKyAgICBhbHBoYTpMaW51eDoqOiopCisrCWNhc2UgYHNlZCAtbiAnL15jcHUgbW9kZWwv cy9eLio6IFwoLipcKS9cMS9wJyA8IC9wcm9jL2NwdWluZm9gIGluCisrCSAgRVY1KSAgIFVOQU1F X01BQ0hJTkU9YWxwaGFldjUgOzsKKysJICBFVjU2KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NTYg OzsKKysJICBQQ0E1NikgVU5BTUVfTUFDSElORT1hbHBoYXBjYTU2IDs7CisrCSAgUENBNTcpIFVO QU1FX01BQ0hJTkU9YWxwaGFwY2E1NiA7OworKwkgIEVWNikgICBVTkFNRV9NQUNISU5FPWFscGhh ZXY2IDs7CisrCSAgRVY2NykgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjY3IDs7CisrCSAgRVY2OCop IFVOQU1FX01BQ0hJTkU9YWxwaGFldjY4IDs7CisrICAgICAgICBlc2FjCisrCW9iamR1bXAgLS1w cml2YXRlLWhlYWRlcnMgL2Jpbi9zaCB8IGdyZXAgLXEgbGQuc28uMQorKwlpZiB0ZXN0ICIkPyIg PSAwIDsgdGhlbiBMSUJDPSJsaWJjMSIgOyBlbHNlIExJQkM9IiIgOyBmaQorKwllY2hvICR7VU5B TUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUke0xJQkN9CisrCWV4aXQgOzsKKysgICAgYXJt KjpMaW51eDoqOiopCisrCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKysJaWYgZWNobyBfX0FSTV9F QUJJX18gfCAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwgXAorKwkgICAgfCBncmVwIC1x IF9fQVJNX0VBQklfXworKwl0aGVuCisrCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93 bi1saW51eC1nbnUKKysJZWxzZQorKwkgICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24t bGludXgtZ251ZWFiaQorKwlmaQorKwlleGl0IDs7CisrICAgIGF2cjMyKjpMaW51eDoqOiopCisr CWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAg IGNyaXM6TGludXg6KjoqKQorKwllY2hvIGNyaXMtYXhpcy1saW51eC1nbnUKKysJZXhpdCA7Owor KyAgICBjcmlzdjMyOkxpbnV4Oio6KikKKysJZWNobyBjcmlzdjMyLWF4aXMtbGludXgtZ251Cisr CWV4aXQgOzsKKysgICAgZnJ2OkxpbnV4Oio6KikKKysgICAgCWVjaG8gZnJ2LXVua25vd24tbGlu dXgtZ251CisrCWV4aXQgOzsKKysgICAgaSo4NjpMaW51eDoqOiopCisrCUxJQkM9Z251CisrCWV2 YWwgJHNldF9jY19mb3JfYnVpbGQKKysJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKKysJ I2lmZGVmIF9fZGlldGxpYmNfXworKwlMSUJDPWRpZXRsaWJjCisrCSNlbmRpZgorK0VPRgorKwll dmFsIGAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCAnXkxJQkMn YAorKwllY2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LSR7TElCQ30iCisrCWV4aXQgOzsK KysgICAgaWE2NDpMaW51eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxp bnV4LWdudQorKwlleGl0IDs7CisrICAgIG0zMnIqOkxpbnV4Oio6KikKKysJZWNobyAke1VOQU1F X01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgbTY4KjpMaW51eDoq OiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7 CisrICAgIG1pcHM6TGludXg6KjoqIHwgbWlwczY0OkxpbnV4Oio6KikKKysJZXZhbCAkc2V0X2Nj X2Zvcl9idWlsZAorKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworKwkjdW5kZWYgQ1BV CisrCSN1bmRlZiAke1VOQU1FX01BQ0hJTkV9CisrCSN1bmRlZiAke1VOQU1FX01BQ0hJTkV9ZWwK KysJI2lmIGRlZmluZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5l ZChfTUlQU0VMKSB8fCBkZWZpbmVkKE1JUFNFTCkKKysJQ1BVPSR7VU5BTUVfTUFDSElORX1lbAor KwkjZWxzZQorKwkjaWYgZGVmaW5lZChfX01JUFNFQl9fKSB8fCBkZWZpbmVkKF9fTUlQU0VCKSB8 fCBkZWZpbmVkKF9NSVBTRUIpIHx8IGRlZmluZWQoTUlQU0VCKQorKwlDUFU9JHtVTkFNRV9NQUNI SU5FfQorKwkjZWxzZQorKwlDUFU9CisrCSNlbmRpZgorKwkjZW5kaWYKKytFT0YKKysJZXZhbCBg JENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IGdyZXAgJ15DUFUnYAorKwl0 ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIHsgZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtZ251Ijsg ZXhpdDsgfQorKwk7OworKyAgICBvcjMyOkxpbnV4Oio6KikKKysJZWNobyBvcjMyLXVua25vd24t bGludXgtZ251CisrCWV4aXQgOzsKKysgICAgcGFkcmU6TGludXg6KjoqKQorKwllY2hvIHNwYXJj LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgcGFyaXNjNjQ6TGludXg6KjoqIHwg aHBwYTY0OkxpbnV4Oio6KikKKysJZWNobyBocHBhNjQtdW5rbm93bi1saW51eC1nbnUKKysJZXhp dCA7OworKyAgICBwYXJpc2M6TGludXg6KjoqIHwgaHBwYTpMaW51eDoqOiopCisrCSMgTG9vayBm b3IgQ1BVIGxldmVsCisrCWNhc2UgYGdyZXAgJ15jcHVbXmEtel0qOicgL3Byb2MvY3B1aW5mbyAy Pi9kZXYvbnVsbCB8IGN1dCAtZCcgJyAtZjJgIGluCisrCSAgUEE3KikgZWNobyBocHBhMS4xLXVu a25vd24tbGludXgtZ251IDs7CisrCSAgUEE4KikgZWNobyBocHBhMi4wLXVua25vd24tbGludXgt Z251IDs7CisrCSAgKikgICAgZWNobyBocHBhLXVua25vd24tbGludXgtZ251IDs7CisrCWVzYWMK KysJZXhpdCA7OworKyAgICBwcGM2NDpMaW51eDoqOiopCisrCWVjaG8gcG93ZXJwYzY0LXVua25v d24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgcHBjOkxpbnV4Oio6KikKKysJZWNobyBwb3dl cnBjLXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgczM5MDpMaW51eDoqOiogfCBz MzkweDpMaW51eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tbGludXgKKysJZXhp dCA7OworKyAgICBzaDY0KjpMaW51eDoqOiopCisrICAgIAllY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBzaCo6TGludXg6KjoqKQorKwllY2hv ICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBzcGFy YzpMaW51eDoqOiogfCBzcGFyYzY0OkxpbnV4Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9 LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgdmF4OkxpbnV4Oio6KikKKysJZWNo byAke1VOQU1FX01BQ0hJTkV9LWRlYy1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICB4ODZfNjQ6 TGludXg6KjoqKQorKwllY2hvIHg4Nl82NC11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7Cisr ICAgIHh0ZW5zYSo6TGludXg6KjoqKQorKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25v d24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgaSo4NjpEWU5JWC9wdHg6NCo6KikKKysJIyBw dHggNC4wIGRvZXMgdW5hbWUgLXMgY29ycmVjdGx5LCB3aXRoIERZTklYL3B0eCBpbiB0aGVyZS4K KysJIyBlYXJsaWVyIHZlcnNpb25zIGFyZSBtZXNzZWQgdXAgYW5kIHB1dCB0aGUgbm9kZW5hbWUg aW4gYm90aAorKwkjIHN5c25hbWUgYW5kIG5vZGVuYW1lLgorKwllY2hvIGkzODYtc2VxdWVudC1z eXN2NAorKwlleGl0IDs7CisrICAgIGkqODY6VU5JWF9TVjo0LjJNUDoyLiopCisrICAgICAgICAj IFVuaXh3YXJlIGlzIGFuIG9mZnNob290IG9mIFNWUjQsIGJ1dCBpdCBoYXMgaXRzIG93biB2ZXJz aW9uCisrICAgICAgICAjIG51bWJlciBzZXJpZXMgc3RhcnRpbmcgd2l0aCAyLi4uCisrICAgICAg ICAjIEkgYW0gbm90IHBvc2l0aXZlIHRoYXQgb3RoZXIgU1ZSNCBzeXN0ZW1zIHdvbid0IG1hdGNo IHRoaXMsCisrCSMgSSBqdXN0IGhhdmUgdG8gaG9wZS4gIC0tIHJtcy4KKysgICAgICAgICMgVXNl IHN5c3Y0LjJ1dy4uLiBzbyB0aGF0IHN5c3Y0KiBtYXRjaGVzIGl0LgorKwllY2hvICR7VU5BTUVf TUFDSElORX0tcGMtc3lzdjQuMnV3JHtVTkFNRV9WRVJTSU9OfQorKwlleGl0IDs7CisrICAgIGkq ODY6T1MvMjoqOiopCisrCSMgSWYgd2Ugd2VyZSBhYmxlIHRvIGZpbmQgYHVuYW1lJywgdGhlbiBF TVggVW5peCBjb21wYXRpYmlsaXR5CisrCSMgaXMgcHJvYmFibHkgaW5zdGFsbGVkLgorKwllY2hv ICR7VU5BTUVfTUFDSElORX0tcGMtb3MyLWVteAorKwlleGl0IDs7CisrICAgIGkqODY6WFRTLTMw MDoqOlNUT1ApCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXN0b3AKKysJZXhpdCA7 OworKyAgICBpKjg2OmF0aGVvczoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3du LWF0aGVvcworKwlleGl0IDs7CisrICAgIGkqODY6c3lsbGFibGU6KjoqKQorKwllY2hvICR7VU5B TUVfTUFDSElORX0tcGMtc3lsbGFibGUKKysJZXhpdCA7OworKyAgICBpKjg2Okx5bnhPUzoyLio6 KiB8IGkqODY6THlueE9TOjMuWzAxXSo6KiB8IGkqODY6THlueE9TOjQuWzAyXSo6KikKKysJZWNo byBpMzg2LXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIGkq ODY6KkRPUzoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1tc2Rvc2RqZ3BwCisrCWV4 aXQgOzsKKysgICAgaSo4NjoqOjQuKjoqIHwgaSo4NjpTWVNURU1fVjo0Lio6KikKKysJVU5BTUVf UkVMPWBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgJ3MvXC9NUCQvLydgCisrCWlmIGdyZXAg Tm92ZWxsIC91c3IvaW5jbHVkZS9saW5rLmggPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgor KwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVuaXZlbC1zeXN2JHtVTkFNRV9SRUx9CisrCWVsc2UK KysJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeXN2JHtVTkFNRV9SRUx9CisrCWZpCisrCWV4 aXQgOzsKKysgICAgaSo4NjoqOjU6WzY3OF0qKQorKyAgICAJIyBVbml4V2FyZSA3LngsIE9wZW5V TklYIGFuZCBPcGVuU2VydmVyIDYuCisrCWNhc2UgYC9iaW4vdW5hbWUgLVggfCBncmVwICJeTWFj aGluZSJgIGluCisrCSAgICAqNDg2KikJICAgICBVTkFNRV9NQUNISU5FPWk0ODYgOzsKKysJICAg ICpQZW50aXVtKQkgICAgIFVOQU1FX01BQ0hJTkU9aTU4NiA7OworKwkgICAgKlBlbnQqfCpDZWxl cm9uKSBVTkFNRV9NQUNISU5FPWk2ODYgOzsKKysJZXNhYworKwllY2hvICR7VU5BTUVfTUFDSElO RX0tdW5rbm93bi1zeXN2JHtVTkFNRV9SRUxFQVNFfSR7VU5BTUVfU1lTVEVNfSR7VU5BTUVfVkVS U0lPTn0KKysJZXhpdCA7OworKyAgICBpKjg2Oio6My4yOiopCisrCWlmIHRlc3QgLWYgL3Vzci9v cHRpb25zL2NiLm5hbWU7IHRoZW4KKysJCVVOQU1FX1JFTD1gc2VkIC1uICdzLy4qVmVyc2lvbiAv L3AnIDwvdXNyL29wdGlvbnMvY2IubmFtZWAKKysJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1p c2MkVU5BTUVfUkVMCisrCWVsaWYgL2Jpbi91bmFtZSAtWCAyPi9kZXYvbnVsbCA+L2Rldi9udWxs IDsgdGhlbgorKwkJVU5BTUVfUkVMPWAoL2Jpbi91bmFtZSAtWHxncmVwIFJlbGVhc2V8c2VkIC1l ICdzLy4qPSAvLycpYAorKwkJKC9iaW4vdW5hbWUgLVh8Z3JlcCBpODA0ODYgPi9kZXYvbnVsbCkg JiYgVU5BTUVfTUFDSElORT1pNDg2CisrCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4q UGVudGl1bScgPi9kZXYvbnVsbCkgXAorKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTU4NgorKwkJKC9i aW4vdW5hbWUgLVh8Z3JlcCAnXk1hY2hpbmUuKlBlbnQgKklJJyA+L2Rldi9udWxsKSBcCisrCQkJ JiYgVU5BTUVfTUFDSElORT1pNjg2CisrCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4q UGVudGl1bSBQcm8nID4vZGV2L251bGwpIFwKKysJCQkmJiBVTkFNRV9NQUNISU5FPWk2ODYKKysJ CWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zY28kVU5BTUVfUkVMCisrCWVsc2UKKysJCWVjaG8g JHtVTkFNRV9NQUNISU5FfS1wYy1zeXN2MzIKKysJZmkKKysJZXhpdCA7OworKyAgICBwYzoqOio6 KikKKysJIyBMZWZ0IGhlcmUgZm9yIGNvbXBhdGliaWxpdHk6CisrICAgICAgICAjIHVuYW1lIC1t IHByaW50cyBmb3IgREpHUFAgYWx3YXlzICdwYycsIGJ1dCBpdCBwcmludHMgbm90aGluZyBhYm91 dAorKyAgICAgICAgIyB0aGUgcHJvY2Vzc29yLCBzbyB3ZSBwbGF5IHNhZmUgYnkgYXNzdW1pbmcg aTU4Ni4KKysJIyBOb3RlOiB3aGF0ZXZlciB0aGlzIGlzLCBpdCBNVVNUIGJlIHRoZSBzYW1lIGFz IHdoYXQgY29uZmlnLnN1YgorKwkjIHByaW50cyBmb3IgdGhlICJkamdwcCIgaG9zdCwgb3IgZWxz ZSBHREIgY29uZmlndXJ5IHdpbGwgZGVjaWRlIHRoYXQKKysJIyB0aGlzIGlzIGEgY3Jvc3MtYnVp bGQuCisrCWVjaG8gaTU4Ni1wYy1tc2Rvc2RqZ3BwCisrICAgICAgICBleGl0IDs7CisrICAgIElu dGVsOk1hY2g6Myo6KikKKysJZWNobyBpMzg2LXBjLW1hY2gzCisrCWV4aXQgOzsKKysgICAgcGFy YWdvbjoqOio6KikKKysJZWNobyBpODYwLWludGVsLW9zZjEKKysJZXhpdCA7OworKyAgICBpODYw Oio6NC4qOiopICMgaTg2MC1TVlI0CisrCWlmIGdyZXAgU3RhcmRlbnQgL3Vzci9pbmNsdWRlL3N5 cy91YWRtaW4uaCA+L2Rldi9udWxsIDI+JjEgOyB0aGVuCisrCSAgZWNobyBpODYwLXN0YXJkZW50 LXN5c3Yke1VOQU1FX1JFTEVBU0V9ICMgU3RhcmRlbnQgVmlzdHJhIGk4NjAtU1ZSNAorKwllbHNl ICMgQWRkIG90aGVyIGk4NjAtU1ZSNCB2ZW5kb3JzIGJlbG93IGFzIHRoZXkgYXJlIGRpc2NvdmVy ZWQuCisrCSAgZWNobyBpODYwLXVua25vd24tc3lzdiR7VU5BTUVfUkVMRUFTRX0gICMgVW5rbm93 biBpODYwLVNWUjQKKysJZmkKKysJZXhpdCA7OworKyAgICBtaW5pKjpDVElYOlNZUyo1OiopCisr CSMgIm1pbmlmcmFtZSIKKysJZWNobyBtNjgwMTAtY29udmVyZ2VudC1zeXN2CisrCWV4aXQgOzsK KysgICAgbWM2OGs6VU5JWDpTWVNURU01OjMuNTFtKQorKwllY2hvIG02OGstY29udmVyZ2VudC1z eXN2CisrCWV4aXQgOzsKKysgICAgTTY4MD8wOkQtTklYOjUuMzoqKQorKwllY2hvIG02OGstZGlh Yi1kbml4CisrCWV4aXQgOzsKKysgICAgTTY4KjoqOlIzVls1Njc4XSo6KikKKysJdGVzdCAtciAv c3lzVjY4ICYmIHsgZWNobyAnbTY4ay1tb3Rvcm9sYS1zeXN2JzsgZXhpdDsgfSA7OworKyAgICAz WzM0NV0/PzoqOjQuMDozLjAgfCAzWzM0XT8/QToqOjQuMDozLjAgfCAzWzM0XT8/LCo6Kjo0LjA6 My4wIHwgM1szNF0/Py8qOio6NC4wOjMuMCB8IDQ0MDA6Kjo0LjA6My4wIHwgNDg1MDoqOjQuMDoz LjAgfCBTS0E0MDoqOjQuMDozLjAgfCBTRFMyOio6NC4wOjMuMCB8IFNIRzI6Kjo0LjA6My4wIHwg Uzc1MDEqOio6NC4wOjMuMCkKKysJT1NfUkVMPScnCisrCXRlc3QgLXIgL2V0Yy8ucmVsaWQgXAor KwkmJiBPU19SRUw9LmBzZWQgLW4gJ3MvW14gXSogW14gXSogXChbMC05XVswLTldXCkuKi9cMS9w JyA8IC9ldGMvLnJlbGlkYAorKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+ L2Rldi9udWxsIFwKKysJICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhp dDsgfQorKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgL2Jpbi9ncmVwIGVudGl1bSA+L2Rl di9udWxsIFwKKysJICAmJiB7IGVjaG8gaTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsg fSA7OworKyAgICAzWzM0XT8/Oio6NC4wOiogfCAzWzM0XT8/LCo6Kjo0LjA6KikKKysgICAgICAg IC9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCBncmVwIDg2ID4vZGV2L251bGwgXAorKyAgICAg ICAgICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQ7IGV4aXQ7IH0gOzsKKysgICAgTkNSKjoqOjQu MjoqIHwgTVBSQVMqOio6NC4yOiopCisrCU9TX1JFTD0nLjMnCisrCXRlc3QgLXIgL2V0Yy8ucmVs aWQgXAorKwkgICAgJiYgT1NfUkVMPS5gc2VkIC1uICdzL1teIF0qIFteIF0qIFwoWzAtOV1bMC05 XVwpLiovXDEvcCcgPCAvZXRjLy5yZWxpZGAKKysJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8 IGdyZXAgODYgPi9kZXYvbnVsbCBcCisrCSAgICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQuMyR7 T1NfUkVMfTsgZXhpdDsgfQorKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgL2Jpbi9ncmVw IGVudGl1bSA+L2Rldi9udWxsIFwKKysJICAgICYmIHsgZWNobyBpNTg2LW5jci1zeXN2NC4zJHtP U19SRUx9OyBleGl0OyB9CisrCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCAvYmluL2dyZXAg cHRlcm9uID4vZGV2L251bGwgXAorKwkgICAgJiYgeyBlY2hvIGk1ODYtbmNyLXN5c3Y0LjMke09T X1JFTH07IGV4aXQ7IH0gOzsKKysgICAgbTY4KjpMeW54T1M6Mi4qOiogfCBtNjgqOkx5bnhPUzoz LjAqOiopCisrCWVjaG8gbTY4ay11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KKysJZXhp dCA7OworKyAgICBtYzY4MDMwOlVOSVhfU3lzdGVtX1Y6NC4qOiopCisrCWVjaG8gbTY4ay1hdGFy aS1zeXN2NAorKwlleGl0IDs7CisrICAgIFRTVU5BTUk6THlueE9TOjIuKjoqKQorKwllY2hvIHNw YXJjLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIHJzNjAw MDpMeW54T1M6Mi4qOiopCisrCWVjaG8gcnM2MDAwLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxF QVNFfQorKwlleGl0IDs7CisrICAgIFBvd2VyUEM6THlueE9TOjIuKjoqIHwgUG93ZXJQQzpMeW54 T1M6My5bMDFdKjoqIHwgUG93ZXJQQzpMeW54T1M6NC5bMDJdKjoqKQorKwllY2hvIHBvd2VycGMt dW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgU01bQkVdUzpV TklYX1NWOio6KikKKysJZWNobyBtaXBzLWRkZS1zeXN2JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0 IDs7CisrICAgIFJNKjpSZWxpYW50VU5JWC0qOio6KikKKysJZWNobyBtaXBzLXNuaS1zeXN2NAor KwlleGl0IDs7CisrICAgIFJNKjpTSU5JWC0qOio6KikKKysJZWNobyBtaXBzLXNuaS1zeXN2NAor KwlleGl0IDs7CisrICAgICo6U0lOSVgtKjoqOiopCisrCWlmIHVuYW1lIC1wIDI+L2Rldi9udWxs ID4vZGV2L251bGwgOyB0aGVuCisrCQlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9u dWxsYAorKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXNuaS1zeXN2NAorKwllbHNlCisrCQllY2hv IG5zMzJrLXNuaS1zeXN2CisrCWZpCisrCWV4aXQgOzsKKysgICAgUEVOVElVTToqOjQuMCo6Kikg IyBVbmlzeXMgYENsZWFyUGF0aCBITVAgSVggNDAwMCcgU1ZSNC9NUCBlZmZvcnQKKysgICAgICAg ICAgICAgICAgICAgICAgIyBzYXlzIDxSaWNoYXJkLk0uQmFydGVsQGNjTWFpbC5DZW5zdXMuR09W PgorKyAgICAgICAgZWNobyBpNTg2LXVuaXN5cy1zeXN2NAorKyAgICAgICAgZXhpdCA7OworKyAg ICAqOlVOSVhfU3lzdGVtX1Y6NCo6RlRYKikKKysJIyBGcm9tIEdlcmFsZCBIZXdlcyA8aGV3ZXNA b3Blbm1hcmtldC5jb20+LgorKwkjIEhvdyBhYm91dCBkaWZmZXJlbnRpYXRpbmcgYmV0d2VlbiBz dHJhdHVzIGFyY2hpdGVjdHVyZXM/IC1kam0KKysJZWNobyBocHBhMS4xLXN0cmF0dXMtc3lzdjQK KysJZXhpdCA7OworKyAgICAqOio6KjpGVFgqKQorKwkjIEZyb20gc2VhbmZAc3dkYy5zdHJhdHVz LmNvbS4KKysJZWNobyBpODYwLXN0cmF0dXMtc3lzdjQKKysJZXhpdCA7OworKyAgICBpKjg2OlZP UzoqOiopCisrCSMgRnJvbSBQYXVsLkdyZWVuQHN0cmF0dXMuY29tLgorKwllY2hvICR7VU5BTUVf TUFDSElORX0tc3RyYXR1cy12b3MKKysJZXhpdCA7OworKyAgICAqOlZPUzoqOiopCisrCSMgRnJv bSBQYXVsLkdyZWVuQHN0cmF0dXMuY29tLgorKwllY2hvIGhwcGExLjEtc3RyYXR1cy12b3MKKysJ ZXhpdCA7OworKyAgICBtYzY4KjpBL1VYOio6KikKKysJZWNobyBtNjhrLWFwcGxlLWF1eCR7VU5B TUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBuZXdzKjpORVdTLU9TOjYqOiopCisrCWVjaG8g bWlwcy1zb255LW5ld3NvczYKKysJZXhpdCA7OworKyAgICBSWzM0XTAwMDoqU3lzdGVtX1YqOio6 KiB8IFI0MDAwOlVOSVhfU1lTVjoqOiogfCBSKjAwMDpVTklYX1NWOio6KikKKysJaWYgWyAtZCAv dXNyL25lYyBdOyB0aGVuCisrCSAgICAgICAgZWNobyBtaXBzLW5lYy1zeXN2JHtVTkFNRV9SRUxF QVNFfQorKwllbHNlCisrCSAgICAgICAgZWNobyBtaXBzLXVua25vd24tc3lzdiR7VU5BTUVfUkVM RUFTRX0KKysJZmkKKysgICAgICAgIGV4aXQgOzsKKysgICAgQmVCb3g6QmVPUzoqOiopCSMgQmVP UyBydW5uaW5nIG9uIGhhcmR3YXJlIG1hZGUgYnkgQmUsIFBQQyBvbmx5LgorKwllY2hvIHBvd2Vy cGMtYmUtYmVvcworKwlleGl0IDs7CisrICAgIEJlTWFjOkJlT1M6KjoqKQkjIEJlT1MgcnVubmlu ZyBvbiBNYWMgb3IgTWFjIGNsb25lLCBQUEMgb25seS4KKysJZWNobyBwb3dlcnBjLWFwcGxlLWJl b3MKKysJZXhpdCA7OworKyAgICBCZVBDOkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBJbnRl bCBQQyBjb21wYXRpYmxlLgorKwllY2hvIGk1ODYtcGMtYmVvcworKwlleGl0IDs7CisrICAgIEJl UEM6SGFpa3U6KjoqKQkjIEhhaWt1IHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KKysJ ZWNobyBpNTg2LXBjLWhhaWt1CisrCWV4aXQgOzsKKysgICAgU1gtNDpTVVBFUi1VWDoqOiopCisr CWVjaG8gc3g0LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIFNY LTU6U1VQRVItVVg6KjoqKQorKwllY2hvIHN4NS1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0K KysJZXhpdCA7OworKyAgICBTWC02OlNVUEVSLVVYOio6KikKKysJZWNobyBzeDYtbmVjLXN1cGVy dXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgU1gtNzpTVVBFUi1VWDoqOiopCisr CWVjaG8gc3g3LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIFNY LTg6U1VQRVItVVg6KjoqKQorKwllY2hvIHN4OC1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0K KysJZXhpdCA7OworKyAgICBTWC04UjpTVVBFUi1VWDoqOiopCisrCWVjaG8gc3g4ci1uZWMtc3Vw ZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBQb3dlcio6UmhhcHNvZHk6Kjoq KQorKwllY2hvIHBvd2VycGMtYXBwbGUtcmhhcHNvZHkke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQg OzsKKysgICAgKjpSaGFwc29keToqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1hcHBsZS1y aGFwc29keSR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOkRhcndpbjoqOiopCisr CVVOQU1FX1BST0NFU1NPUj1gdW5hbWUgLXBgIHx8IFVOQU1FX1BST0NFU1NPUj11bmtub3duCisr CWNhc2UgJFVOQU1FX1BST0NFU1NPUiBpbgorKwkgICAgaTM4NikKKysJCWV2YWwgJHNldF9jY19m b3JfYnVpbGQKKysJCWlmIFsgIiRDQ19GT1JfQlVJTEQiICE9ICdub19jb21waWxlcl9mb3VuZCcg XTsgdGhlbgorKwkJICBpZiAoZWNobyAnI2lmZGVmIF9fTFA2NF9fJzsgZWNobyBJU182NEJJVF9B UkNIOyBlY2hvICcjZW5kaWYnKSB8IFwKKysJCSAgICAgIChDQ09QVFM9ICRDQ19GT1JfQlVJTEQg LUUgLSAyPi9kZXYvbnVsbCkgfCBcCisrCQkgICAgICBncmVwIElTXzY0QklUX0FSQ0ggPi9kZXYv bnVsbAorKwkJICB0aGVuCisrCQkgICAgICBVTkFNRV9QUk9DRVNTT1I9Ing4Nl82NCIKKysJCSAg ZmkKKysJCWZpIDs7CisrCSAgICB1bmtub3duKSBVTkFNRV9QUk9DRVNTT1I9cG93ZXJwYyA7Owor Kwllc2FjCisrCWVjaG8gJHtVTkFNRV9QUk9DRVNTT1J9LWFwcGxlLWRhcndpbiR7VU5BTUVfUkVM RUFTRX0KKysJZXhpdCA7OworKyAgICAqOnByb2NudG8qOio6KiB8ICo6UU5YOlswMTIzNDU2Nzg5 XSo6KikKKysJVU5BTUVfUFJPQ0VTU09SPWB1bmFtZSAtcGAKKysJaWYgdGVzdCAiJFVOQU1FX1BS T0NFU1NPUiIgPSAieDg2IjsgdGhlbgorKwkJVU5BTUVfUFJPQ0VTU09SPWkzODYKKysJCVVOQU1F X01BQ0hJTkU9cGMKKysJZmkKKysJZWNobyAke1VOQU1FX1BST0NFU1NPUn0tJHtVTkFNRV9NQUNI SU5FfS1udG8tcW54JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6UU5YOio6NCop CisrCWVjaG8gaTM4Ni1wYy1xbngKKysJZXhpdCA7OworKyAgICBOU0UtPzpOT05TVE9QX0tFUk5F TDoqOiopCisrCWVjaG8gbnNlLXRhbmRlbS1uc2ske1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsK KysgICAgTlNSLT86Tk9OU1RPUF9LRVJORUw6KjoqKQorKwllY2hvIG5zci10YW5kZW0tbnNrJHtV TkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6Tm9uU3RvcC1VWDoqOiopCisrCWVjaG8g bWlwcy1jb21wYXEtbm9uc3RvcHV4CisrCWV4aXQgOzsKKysgICAgQlMyMDAwOlBPU0lYKjoqOiop CisrCWVjaG8gYnMyMDAwLXNpZW1lbnMtc3lzdgorKwlleGl0IDs7CisrICAgIERTLyo6VU5JWF9T eXN0ZW1fVjoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS0ke1VOQU1FX1NZU1RFTX0tJHtV TkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6UGxhbjk6KjoqKQorKwkjICJ1bmFtZSAt bSIgaXMgbm90IGNvbnNpc3RlbnQsIHNvIHVzZSAkY3B1dHlwZSBpbnN0ZWFkLiAzODYKKysJIyBp cyBjb252ZXJ0ZWQgdG8gaTM4NiBmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciB4ODYKKysJIyBv cGVyYXRpbmcgc3lzdGVtcy4KKysJaWYgdGVzdCAiJGNwdXR5cGUiID0gIjM4NiI7IHRoZW4KKysJ ICAgIFVOQU1FX01BQ0hJTkU9aTM4NgorKwllbHNlCisrCSAgICBVTkFNRV9NQUNISU5FPSIkY3B1 dHlwZSIKKysJZmkKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tcGxhbjkKKysJZXhp dCA7OworKyAgICAqOlRPUFMtMTA6KjoqKQorKwllY2hvIHBkcDEwLXVua25vd24tdG9wczEwCisr CWV4aXQgOzsKKysgICAgKjpURU5FWDoqOiopCisrCWVjaG8gcGRwMTAtdW5rbm93bi10ZW5leAor KwlleGl0IDs7CisrICAgIEtTMTA6VE9QUy0yMDoqOiogfCBLTDEwOlRPUFMtMjA6KjoqIHwgVFlQ RTQ6VE9QUy0yMDoqOiopCisrCWVjaG8gcGRwMTAtZGVjLXRvcHMyMAorKwlleGl0IDs7CisrICAg IFhLTC0xOlRPUFMtMjA6KjoqIHwgVFlQRTU6VE9QUy0yMDoqOiopCisrCWVjaG8gcGRwMTAteGts LXRvcHMyMAorKwlleGl0IDs7CisrICAgICo6VE9QUy0yMDoqOiopCisrCWVjaG8gcGRwMTAtdW5r bm93bi10b3BzMjAKKysJZXhpdCA7OworKyAgICAqOklUUzoqOiopCisrCWVjaG8gcGRwMTAtdW5r bm93bi1pdHMKKysJZXhpdCA7OworKyAgICBTRUk6KjoqOlNFSVVYKQorKyAgICAgICAgZWNobyBt aXBzLXNlaS1zZWl1eCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOkRyYWdvbkZs eToqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWRyYWdvbmZseWBlY2hvICR7 VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AKKysJZXhpdCA7OworKyAgICAqOipW TVM6KjoqKQorKyAgICAJVU5BTUVfTUFDSElORT1gKHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKKysJ Y2FzZSAiJHtVTkFNRV9NQUNISU5FfSIgaW4KKysJICAgIEEqKSBlY2hvIGFscGhhLWRlYy12bXMg OyBleGl0IDs7CisrCSAgICBJKikgZWNobyBpYTY0LWRlYy12bXMgOyBleGl0IDs7CisrCSAgICBW KikgZWNobyB2YXgtZGVjLXZtcyA7IGV4aXQgOzsKKysJZXNhYyA7OworKyAgICAqOlhFTklYOio6 U3lzVikKKysJZWNobyBpMzg2LXBjLXhlbml4CisrCWV4aXQgOzsKKysgICAgaSo4Njpza3lvczoq OiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1za3lvc2BlY2hvICR7VU5BTUVfUkVMRUFT RX1gIHwgc2VkIC1lICdzLyAuKiQvLycKKysJZXhpdCA7OworKyAgICBpKjg2OnJkb3M6KjoqKQor KwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtcmRvcworKwlleGl0IDs7CisrICAgIGkqODY6QVJP UzoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1hcm9zCisrCWV4aXQgOzsKKytlc2Fj CisrCisrI2VjaG8gJyhObyB1bmFtZSBjb21tYW5kIG9yIHVuYW1lIG91dHB1dCBub3QgcmVjb2du aXplZC4pJyAxPiYyCisrI2VjaG8gIiR7VU5BTUVfTUFDSElORX06JHtVTkFNRV9TWVNURU19OiR7 VU5BTUVfUkVMRUFTRX06JHtVTkFNRV9WRVJTSU9OfSIgMT4mMgorKworK2V2YWwgJHNldF9jY19m b3JfYnVpbGQKKytjYXQgPiRkdW1teS5jIDw8RU9GCisrI2lmZGVmIF9TRVFVRU5UXworKyMgaW5j bHVkZSA8c3lzL3R5cGVzLmg+CisrIyBpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorKyNlbmRpZgor K21haW4gKCkKKyt7CisrI2lmIGRlZmluZWQgKHNvbnkpCisrI2lmIGRlZmluZWQgKE1JUFNFQikK KysgIC8qIEJGRCB3YW50cyAiYnNkIiBpbnN0ZWFkIG9mICJuZXdzb3MiLiAgUGVyaGFwcyBCRkQg c2hvdWxkIGJlIGNoYW5nZWQsCisrICAgICBJIGRvbid0IGtub3cuLi4uICAqLworKyAgcHJpbnRm ICgibWlwcy1zb255LWJzZFxuIik7IGV4aXQgKDApOworKyNlbHNlCisrI2luY2x1ZGUgPHN5cy9w YXJhbS5oPgorKyAgcHJpbnRmICgibTY4ay1zb255LW5ld3NvcyVzXG4iLAorKyNpZmRlZiBORVdT T1M0CisrICAgICAgICAgICI0IgorKyNlbHNlCisrCSAgIiIKKysjZW5kaWYKKysgICAgICAgICAp OyBleGl0ICgwKTsKKysjZW5kaWYKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoX19hcm0pICYm IGRlZmluZWQgKF9fYWNvcm4pICYmIGRlZmluZWQgKF9fdW5peCkKKysgIHByaW50ZiAoImFybS1h Y29ybi1yaXNjaXhcbiIpOyBleGl0ICgwKTsKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoaHAz MDApICYmICFkZWZpbmVkIChocHV4KQorKyAgcHJpbnRmICgibTY4ay1ocC1ic2RcbiIpOyBleGl0 ICgwKTsKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoTmVYVCkKKysjaWYgIWRlZmluZWQgKF9f QVJDSElURUNUVVJFX18pCisrI2RlZmluZSBfX0FSQ0hJVEVDVFVSRV9fICJtNjhrIgorKyNlbmRp ZgorKyAgaW50IHZlcnNpb247CisrICB2ZXJzaW9uPWAoaG9zdGluZm8gfCBzZWQgLW4gJ3MvLipO ZVhUIE1hY2ggXChbMC05XSpcKS4qL1wxL3AnKSAyPi9kZXYvbnVsbGA7CisrICBpZiAodmVyc2lv biA8IDQpCisrICAgIHByaW50ZiAoIiVzLW5leHQtbmV4dHN0ZXAlZFxuIiwgX19BUkNISVRFQ1RV UkVfXywgdmVyc2lvbik7CisrICBlbHNlCisrICAgIHByaW50ZiAoIiVzLW5leHQtb3BlbnN0ZXAl ZFxuIiwgX19BUkNISVRFQ1RVUkVfXywgdmVyc2lvbik7CisrICBleGl0ICgwKTsKKysjZW5kaWYK KysKKysjaWYgZGVmaW5lZCAoTVVMVElNQVgpIHx8IGRlZmluZWQgKG4xNikKKysjaWYgZGVmaW5l ZCAoVU1BWFYpCisrICBwcmludGYgKCJuczMyay1lbmNvcmUtc3lzdlxuIik7IGV4aXQgKDApOwor KyNlbHNlCisrI2lmIGRlZmluZWQgKENNVSkKKysgIHByaW50ZiAoIm5zMzJrLWVuY29yZS1tYWNo XG4iKTsgZXhpdCAoMCk7CisrI2Vsc2UKKysgIHByaW50ZiAoIm5zMzJrLWVuY29yZS1ic2RcbiIp OyBleGl0ICgwKTsKKysjZW5kaWYKKysjZW5kaWYKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAo X18zODZCU0RfXykKKysgIHByaW50ZiAoImkzODYtcGMtYnNkXG4iKTsgZXhpdCAoMCk7CisrI2Vu ZGlmCisrCisrI2lmIGRlZmluZWQgKHNlcXVlbnQpCisrI2lmIGRlZmluZWQgKGkzODYpCisrICBw cmludGYgKCJpMzg2LXNlcXVlbnQtZHluaXhcbiIpOyBleGl0ICgwKTsKKysjZW5kaWYKKysjaWYg ZGVmaW5lZCAobnMzMjAwMCkKKysgIHByaW50ZiAoIm5zMzJrLXNlcXVlbnQtZHluaXhcbiIpOyBl eGl0ICgwKTsKKysjZW5kaWYKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoX1NFUVVFTlRfKQor KyAgICBzdHJ1Y3QgdXRzbmFtZSB1bjsKKysKKysgICAgdW5hbWUoJnVuKTsKKysKKysgICAgaWYg KHN0cm5jbXAodW4udmVyc2lvbiwgIlYyIiwgMikgPT0gMCkgeworKwlwcmludGYgKCJpMzg2LXNl cXVlbnQtcHR4MlxuIik7IGV4aXQgKDApOworKyAgICB9CisrICAgIGlmIChzdHJuY21wKHVuLnZl cnNpb24sICJWMSIsIDIpID09IDApIHsgLyogWFhYIGlzIFYxIGNvcnJlY3Q/ICovCisrCXByaW50 ZiAoImkzODYtc2VxdWVudC1wdHgxXG4iKTsgZXhpdCAoMCk7CisrICAgIH0KKysgICAgcHJpbnRm ICgiaTM4Ni1zZXF1ZW50LXB0eFxuIik7IGV4aXQgKDApOworKworKyNlbmRpZgorKworKyNpZiBk ZWZpbmVkICh2YXgpCisrIyBpZiAhZGVmaW5lZCAodWx0cml4KQorKyMgIGluY2x1ZGUgPHN5cy9w YXJhbS5oPgorKyMgIGlmIGRlZmluZWQgKEJTRCkKKysjICAgaWYgQlNEID09IDQzCisrICAgICAg cHJpbnRmICgidmF4LWRlYy1ic2Q0LjNcbiIpOyBleGl0ICgwKTsKKysjICAgZWxzZQorKyMgICAg aWYgQlNEID09IDE5OTAwNgorKyAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkNC4zcmVub1xuIik7 IGV4aXQgKDApOworKyMgICAgZWxzZQorKyAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkXG4iKTsg ZXhpdCAoMCk7CisrIyAgICBlbmRpZgorKyMgICBlbmRpZgorKyMgIGVsc2UKKysgICAgcHJpbnRm ICgidmF4LWRlYy1ic2RcbiIpOyBleGl0ICgwKTsKKysjICBlbmRpZgorKyMgZWxzZQorKyAgICBw cmludGYgKCJ2YXgtZGVjLXVsdHJpeFxuIik7IGV4aXQgKDApOworKyMgZW5kaWYKKysjZW5kaWYK KysKKysjaWYgZGVmaW5lZCAoYWxsaWFudCkgJiYgZGVmaW5lZCAoaTg2MCkKKysgIHByaW50ZiAo Imk4NjAtYWxsaWFudC1ic2RcbiIpOyBleGl0ICgwKTsKKysjZW5kaWYKKysKKysgIGV4aXQgKDEp OworK30KKytFT0YKKysKKyskQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAyPi9kZXYv bnVsbCAmJiBTWVNURU1fTkFNRT1gJGR1bW15YCAmJgorKwl7IGVjaG8gIiRTWVNURU1fTkFNRSI7 IGV4aXQ7IH0KKysKKysjIEFwb2xsb3MgcHV0IHRoZSBzeXN0ZW0gdHlwZSBpbiB0aGUgZW52aXJv bm1lbnQuCisrCisrdGVzdCAtZCAvdXNyL2Fwb2xsbyAmJiB7IGVjaG8gJHtJU1B9LWFwb2xsby0k e1NZU1RZUEV9OyBleGl0OyB9CisrCisrIyBDb252ZXggdmVyc2lvbnMgdGhhdCBwcmVkYXRlIHVu YW1lIGNhbiB1c2UgZ2V0c3lzaW5mbygxKQorKworK2lmIFsgLXggL3Vzci9jb252ZXgvZ2V0c3lz aW5mbyBdCisrdGhlbgorKyAgICBjYXNlIGBnZXRzeXNpbmZvIC1mIGNwdV90eXBlYCBpbgorKyAg ICBjMSopCisrCWVjaG8gYzEtY29udmV4LWJzZAorKwlleGl0IDs7CisrICAgIGMyKikKKysJaWYg Z2V0c3lzaW5mbyAtZiBzY2FsYXJfYWNjCisrCXRoZW4gZWNobyBjMzItY29udmV4LWJzZAorKwll bHNlIGVjaG8gYzItY29udmV4LWJzZAorKwlmaQorKwlleGl0IDs7CisrICAgIGMzNCopCisrCWVj aG8gYzM0LWNvbnZleC1ic2QKKysJZXhpdCA7OworKyAgICBjMzgqKQorKwllY2hvIGMzOC1jb252 ZXgtYnNkCisrCWV4aXQgOzsKKysgICAgYzQqKQorKwllY2hvIGM0LWNvbnZleC1ic2QKKysJZXhp dCA7OworKyAgICBlc2FjCisrZmkKKysKKytjYXQgPiYyIDw8RU9GCisrJDA6IHVuYWJsZSB0byBn dWVzcyBzeXN0ZW0gdHlwZQorKworK1RoaXMgc2NyaXB0LCBsYXN0IG1vZGlmaWVkICR0aW1lc3Rh bXAsIGhhcyBmYWlsZWQgdG8gcmVjb2duaXplCisrdGhlIG9wZXJhdGluZyBzeXN0ZW0geW91IGFy ZSB1c2luZy4gSXQgaXMgYWR2aXNlZCB0aGF0IHlvdQorK2Rvd25sb2FkIHRoZSBtb3N0IHVwIHRv IGRhdGUgdmVyc2lvbiBvZiB0aGUgY29uZmlnIHNjcmlwdHMgZnJvbQorKworKyAgaHR0cDovL2dp dC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNv bmZpZy5ndWVzcztoYj1IRUFECisrYW5kCisrICBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcv Z2l0d2ViLz9wPWNvbmZpZy5naXQ7YT1ibG9iX3BsYWluO2Y9Y29uZmlnLnN1YjtoYj1IRUFECisr CisrSWYgdGhlIHZlcnNpb24geW91IHJ1biAoJDApIGlzIGFscmVhZHkgdXAgdG8gZGF0ZSwgcGxl YXNlCisrc2VuZCB0aGUgZm9sbG93aW5nIGRhdGEgYW5kIGFueSBpbmZvcm1hdGlvbiB5b3UgdGhp bmsgbWlnaHQgYmUKKytwZXJ0aW5lbnQgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+IGluIG9y ZGVyIHRvIHByb3ZpZGUgdGhlIG5lZWRlZAorK2luZm9ybWF0aW9uIHRvIGhhbmRsZSB5b3VyIHN5 c3RlbS4KKysKKytjb25maWcuZ3Vlc3MgdGltZXN0YW1wID0gJHRpbWVzdGFtcAorKworK3VuYW1l IC1tID0gYCh1bmFtZSAtbSkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAorK3VuYW1lIC1y ID0gYCh1bmFtZSAtcikgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAorK3VuYW1lIC1zID0g YCh1bmFtZSAtcykgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAorK3VuYW1lIC12ID0gYCh1 bmFtZSAtdikgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAorKworKy91c3IvYmluL3VuYW1l IC1wID0gYCgvdXNyL2Jpbi91bmFtZSAtcCkgMj4vZGV2L251bGxgCisrL2Jpbi91bmFtZSAtWCAg ICAgPSBgKC9iaW4vdW5hbWUgLVgpIDI+L2Rldi9udWxsYAorKworK2hvc3RpbmZvICAgICAgICAg ICAgICAgPSBgKGhvc3RpbmZvKSAyPi9kZXYvbnVsbGAKKysvYmluL3VuaXZlcnNlICAgICAgICAg ID0gYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVsbGAKKysvdXNyL2Jpbi9hcmNoIC1rICAgICAg ID0gYCgvdXNyL2Jpbi9hcmNoIC1rKSAyPi9kZXYvbnVsbGAKKysvYmluL2FyY2ggICAgICAgICAg ICAgID0gYCgvYmluL2FyY2gpIDI+L2Rldi9udWxsYAorKy91c3IvYmluL29zbGV2ZWwgICAgICAg PSBgKC91c3IvYmluL29zbGV2ZWwpIDI+L2Rldi9udWxsYAorKy91c3IvY29udmV4L2dldHN5c2lu Zm8gPSBgKC91c3IvY29udmV4L2dldHN5c2luZm8pIDI+L2Rldi9udWxsYAorKworK1VOQU1FX01B Q0hJTkUgPSAke1VOQU1FX01BQ0hJTkV9CisrVU5BTUVfUkVMRUFTRSA9ICR7VU5BTUVfUkVMRUFT RX0KKytVTkFNRV9TWVNURU0gID0gJHtVTkFNRV9TWVNURU19CisrVU5BTUVfVkVSU0lPTiA9ICR7 VU5BTUVfVkVSU0lPTn0KKytFT0YKKysKKytleGl0IDEKKysKKysjIExvY2FsIHZhcmlhYmxlczoK KysjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKysjIHRp bWUtc3RhbXAtc3RhcnQ6ICJ0aW1lc3RhbXA9JyIKKysjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5 LSUwMm0tJTAyZCIKKysjIHRpbWUtc3RhbXAtZW5kOiAiJyIKKysjIEVuZDoKK2RpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9jb25maWcvY29uZmlnLnN1YiBzb2NpLTMuMC4wX3RyZXAzMDAvY29u ZmlnL2NvbmZpZy5zdWIKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvY29uZmlnLnN1Ygkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9jb25maWcvY29uZmlnLnN1YgkyMDExLTAyLTA4IDIyOjM5OjU1LjAwMDAwMDAwMCArMDEwMAor QEAgLTAsMCArMSwxNzA1IEBACisrIyEgL2Jpbi9zaAorKyMgQ29uZmlndXJhdGlvbiB2YWxpZGF0 aW9uIHN1YnJvdXRpbmUgc2NyaXB0LgorKyMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5 OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCisrIyAgIDIwMDAsIDIwMDEsIDIwMDIs IDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkKKysjICAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrdGltZXN0YW1wPScyMDA5LTExLTIwJworKworKyMg VGhpcyBmaWxlIGlzIChpbiBwcmluY2lwbGUpIGNvbW1vbiB0byBBTEwgR05VIHNvZnR3YXJlLgor KyMgVGhlIHByZXNlbmNlIG9mIGEgbWFjaGluZSBpbiB0aGlzIGZpbGUgc3VnZ2VzdHMgdGhhdCBT T01FIEdOVSBzb2Z0d2FyZQorKyMgY2FuIGhhbmRsZSB0aGF0IG1hY2hpbmUuICBJdCBkb2VzIG5v dCBpbXBseSBBTEwgR05VIHNvZnR3YXJlIGNhbi4KKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIg b2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrIyBG b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQgLSBGaWZ0aCBGbG9vciwgQm9zdG9u LCBNQQorKyMgMDIxMTAtMTMwMSwgVVNBLgorKyMKKysjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24g dG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKKysjIGRpc3RyaWJ1dGUg dGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQorKyMgY29uZmln dXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQg dW5kZXIKKysjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRo ZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKysKKysKKysjIFBsZWFzZSBzZW5kIHBhdGNoZXMgdG8g PGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiAgU3VibWl0IGEgY29udGV4dAorKyMgZGlmZiBhbmQg YSBwcm9wZXJseSBmb3JtYXR0ZWQgR05VIENoYW5nZUxvZyBlbnRyeS4KKysjCisrIyBDb25maWd1 cmF0aW9uIHN1YnJvdXRpbmUgdG8gdmFsaWRhdGUgYW5kIGNhbm9uaWNhbGl6ZSBhIGNvbmZpZ3Vy YXRpb24gdHlwZS4KKysjIFN1cHBseSB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gdHlwZSBh cyBhbiBhcmd1bWVudC4KKysjIElmIGl0IGlzIGludmFsaWQsIHdlIHByaW50IGFuIGVycm9yIG1l c3NhZ2Ugb24gc3RkZXJyIGFuZCBleGl0IHdpdGggY29kZSAxLgorKyMgT3RoZXJ3aXNlLCB3ZSBw cmludCB0aGUgY2Fub25pY2FsIGNvbmZpZyB0eXBlIG9uIHN0ZG91dCBhbmQgc3VjY2VlZC4KKysK KysjIFlvdSBjYW4gZ2V0IHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIHNjcmlwdCBmcm9tOgor KyMgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9Ymxv Yl9wbGFpbjtmPWNvbmZpZy5zdWI7aGI9SEVBRAorKworKyMgVGhpcyBmaWxlIGlzIHN1cHBvc2Vk IHRvIGJlIHRoZSBzYW1lIGZvciBhbGwgR05VIHBhY2thZ2VzCisrIyBhbmQgcmVjb2duaXplIGFs bCB0aGUgQ1BVIHR5cGVzLCBzeXN0ZW0gdHlwZXMgYW5kIGFsaWFzZXMKKysjIHRoYXQgYXJlIG1l YW5pbmdmdWwgd2l0aCAqYW55KiBHTlUgc29mdHdhcmUuCisrIyBFYWNoIHBhY2thZ2UgaXMgcmVz cG9uc2libGUgZm9yIHJlcG9ydGluZyB3aGljaCB2YWxpZCBjb25maWd1cmF0aW9ucworKyMgaXQg ZG9lcyBub3Qgc3VwcG9ydC4gIFRoZSB1c2VyIHNob3VsZCBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNo CisrIyBhIGZhaWx1cmUgdG8gc3VwcG9ydCBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gZnJvbSBhIG1l YW5pbmdsZXNzCisrIyBjb25maWd1cmF0aW9uLgorKworKyMgVGhlIGdvYWwgb2YgdGhpcyBmaWxl IGlzIHRvIG1hcCBhbGwgdGhlIHZhcmlvdXMgdmFyaWF0aW9ucyBvZiBhIGdpdmVuCisrIyBtYWNo aW5lIHNwZWNpZmljYXRpb24gaW50byBhIHNpbmdsZSBzcGVjaWZpY2F0aW9uIGluIHRoZSBmb3Jt OgorKyMJQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLU9QRVJBVElOR19TWVNURU0KKysjIG9yIGluIHNv bWUgY2FzZXMsIHRoZSBuZXdlciBmb3VyLXBhcnQgZm9ybToKKysjCUNQVV9UWVBFLU1BTlVGQUNU VVJFUi1LRVJORUwtT1BFUkFUSU5HX1NZU1RFTQorKyMgSXQgaXMgd3JvbmcgdG8gZWNobyBhbnkg b3RoZXIgdHlwZSBvZiBzcGVjaWZpY2F0aW9uLgorKworK21lPWBlY2hvICIkMCIgfCBzZWQgLWUg J3MsLiovLCwnYAorKworK3VzYWdlPSJcCisrVXNhZ2U6ICQwIFtPUFRJT05dIENQVS1NRlItT1BT WVMKKysgICAgICAgJDAgW09QVElPTl0gQUxJQVMKKysKKytDYW5vbmljYWxpemUgYSBjb25maWd1 cmF0aW9uIG5hbWUuCisrCisrT3BlcmF0aW9uIG1vZGVzOgorKyAgLWgsIC0taGVscCAgICAgICAg IHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0CisrICAtdCwgLS10aW1lLXN0YW1wICAgcHJpbnQg ZGF0ZSBvZiBsYXN0IG1vZGlmaWNhdGlvbiwgdGhlbiBleGl0CisrICAtdiwgLS12ZXJzaW9uICAg ICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAorKworK1JlcG9ydCBidWdzIGFuZCBw YXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4iCisrCisrdmVyc2lvbj0iXAorK0dO VSBjb25maWcuc3ViICgkdGltZXN0YW1wKQorKworK0NvcHlyaWdodCAoQykgMTk5MiwgMTk5Mywg MTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwKKysyMDAyLCAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorKworK1RoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNv cHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCisrd2FycmFudHk7IG5vdCBldmVuIGZvciBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgorKwor K2hlbHA9IgorK1RyeSBcYCRtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKysKKysj IFBhcnNlIGNvbW1hbmQgbGluZQorK3doaWxlIHRlc3QgJCMgLWd0IDAgOyBkbworKyAgY2FzZSAk MSBpbgorKyAgICAtLXRpbWUtc3RhbXAgfCAtLXRpbWUqIHwgLXQgKQorKyAgICAgICBlY2hvICIk dGltZXN0YW1wIiA7IGV4aXQgOzsKKysgICAgLS12ZXJzaW9uIHwgLXYgKQorKyAgICAgICBlY2hv ICIkdmVyc2lvbiIgOyBleGl0IDs7CisrICAgIC0taGVscCB8IC0taCogfCAtaCApCisrICAgICAg IGVjaG8gIiR1c2FnZSI7IGV4aXQgOzsKKysgICAgLS0gKSAgICAgIyBTdG9wIG9wdGlvbiBwcm9j ZXNzaW5nCisrICAgICAgIHNoaWZ0OyBicmVhayA7OworKyAgICAtICkJIyBVc2Ugc3RkaW4gYXMg aW5wdXQuCisrICAgICAgIGJyZWFrIDs7CisrICAgIC0qICkKKysgICAgICAgZWNobyAiJG1lOiBp bnZhbGlkIG9wdGlvbiAkMSRoZWxwIgorKyAgICAgICBleGl0IDEgOzsKKysKKysgICAgKmxvY2Fs KikKKysgICAgICAgIyBGaXJzdCBwYXNzIHRocm91Z2ggYW55IGxvY2FsIG1hY2hpbmUgdHlwZXMu CisrICAgICAgIGVjaG8gJDEKKysgICAgICAgZXhpdCA7OworKworKyAgICAqICkKKysgICAgICAg YnJlYWsgOzsKKysgIGVzYWMKKytkb25lCisrCisrY2FzZSAkIyBpbgorKyAwKSBlY2hvICIkbWU6 IG1pc3NpbmcgYXJndW1lbnQkaGVscCIgPiYyCisrICAgIGV4aXQgMTs7CisrIDEpIDs7CisrICop IGVjaG8gIiRtZTogdG9vIG1hbnkgYXJndW1lbnRzJGhlbHAiID4mMgorKyAgICBleGl0IDE7Owor K2VzYWMKKysKKysjIFNlcGFyYXRlIHdoYXQgdGhlIHVzZXIgZ2F2ZSBpbnRvIENQVS1DT01QQU5Z IGFuZCBPUyBvciBLRVJORUwtT1MgKGlmIGFueSkuCisrIyBIZXJlIHdlIG11c3QgcmVjb2duaXpl IGFsbCB0aGUgdmFsaWQgS0VSTkVMLU9TIGNvbWJpbmF0aW9ucy4KKyttYXliZV9vcz1gZWNobyAk MSB8IHNlZCAncy9eXCguKlwpLVwoW14tXSotW14tXSpcKSQvXDIvJ2AKKytjYXNlICRtYXliZV9v cyBpbgorKyAgbnRvLXFueCogfCBsaW51eC1nbnUqIHwgbGludXgtZGlldGxpYmMgfCBsaW51eC1u ZXdsaWIqIHwgbGludXgtdWNsaWJjKiB8IFwKKysgIHVjbGludXgtdWNsaWJjKiB8IHVjbGludXgt Z251KiB8IGtmcmVlYnNkKi1nbnUqIHwga25ldGJzZCotZ251KiB8IG5ldGJzZCotZ251KiB8IFwK KysgIGtvcGVuc29sYXJpcyotZ251KiB8IFwKKysgIHN0b3JtLWNoYW9zKiB8IG9zMi1lbXgqIHwg cnRtay1ub3ZhKikKKysgICAgb3M9LSRtYXliZV9vcworKyAgICBiYXNpY19tYWNoaW5lPWBlY2hv ICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMS8nYAorKyAgICA7OworKyAg KikKKysgICAgYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAncy8tW14tXSokLy8nYAorKyAg ICBpZiBbICRiYXNpY19tYWNoaW5lICE9ICQxIF0KKysgICAgdGhlbiBvcz1gZWNobyAkMSB8IHNl ZCAncy8uKi0vLS8nYAorKyAgICBlbHNlIG9zPTsgZmkKKysgICAgOzsKKytlc2FjCisrCisrIyMj IExldCdzIHJlY29nbml6ZSBjb21tb24gbWFjaGluZXMgYXMgbm90IGJlaW5nIG9wZXJhdGluZyBz eXN0ZW1zIHNvCisrIyMjIHRoYXQgdGhpbmdzIGxpa2UgY29uZmlnLnN1YiBkZWNzdGF0aW9uLTMx MDAgd29yay4gIFdlIGFsc28KKysjIyMgcmVjb2duaXplIHNvbWUgbWFudWZhY3R1cmVycyBhcyBu b3QgYmVpbmcgb3BlcmF0aW5nIHN5c3RlbXMsIHNvIHdlCisrIyMjIGNhbiBwcm92aWRlIGRlZmF1 bHQgb3BlcmF0aW5nIHN5c3RlbXMgYmVsb3cuCisrY2FzZSAkb3MgaW4KKysJLXN1bipvcyopCisr CQkjIFByZXZlbnQgZm9sbG93aW5nIGNsYXVzZSBmcm9tIGhhbmRsaW5nIHRoaXMgaW52YWxpZCBp bnB1dC4KKysJCTs7CisrCS1kZWMqIHwgLW1pcHMqIHwgLXNlcXVlbnQqIHwgLWVuY29yZSogfCAt cGM1MzIqIHwgLXNnaSogfCAtc29ueSogfCBcCisrCS1hdHQqIHwgLTczMDAqIHwgLTMzMDAqIHwg LWRlbHRhKiB8IC1tb3Rvcm9sYSogfCAtc3VuWzIzNF0qIHwgXAorKwktdW5pY29tKiB8IC1pYm0q IHwgLW5leHQgfCAtaHAgfCAtaXNpKiB8IC1hcG9sbG8gfCAtYWx0b3MqIHwgXAorKwktY29udmVy Z2VudCogfCAtbmNyKiB8IC1uZXdzIHwgLTMyKiB8IC0zNjAwKiB8IC0zMTAwKiB8IC1oaXRhY2hp KiB8XAorKwktY1sxMjNdKiB8IC1jb252ZXgqIHwgLXN1biB8IC1jcmRzIHwgLW9tcm9uKiB8IC1k ZyB8IC11bHRyYSB8IC10dGkqIHwgXAorKwktaGFycmlzIHwgLWRvbHBoaW4gfCAtaGlnaGxldmVs IHwgLWdvdWxkIHwgLWNibSB8IC1ucyB8IC1tYXNzY29tcCB8IFwKKysJLWFwcGxlIHwgLWF4aXMg fCAta251dGggfCAtY3JheSB8IC1taWNyb2JsYXplKQorKwkJb3M9CisrCQliYXNpY19tYWNoaW5l PSQxCisrCQk7OworKyAgICAgICAgLWJsdWVnZW5lKikKKysJICAgICAgICBvcz0tY25rCisrCQk7 OworKwktc2ltIHwgLWNpc2NvIHwgLW9raSB8IC13ZWMgfCAtd2luYm9uZCkKKysJCW9zPQorKwkJ YmFzaWNfbWFjaGluZT0kMQorKwkJOzsKKysJLXNjb3V0KQorKwkJOzsKKysJLXdycykKKysJCW9z PS12eHdvcmtzCisrCQliYXNpY19tYWNoaW5lPSQxCisrCQk7OworKwktY2hvcnVzb3MqKQorKwkJ b3M9LWNob3J1c29zCisrCQliYXNpY19tYWNoaW5lPSQxCisrCQk7OworKyAJLWNob3J1c3JkYikK KysgCQlvcz0tY2hvcnVzcmRiCisrCQliYXNpY19tYWNoaW5lPSQxCisrIAkJOzsKKysJLWhpdXgq KQorKwkJb3M9LWhpdXh3ZTIKKysJCTs7CisrCS1zY282KQorKwkJb3M9LXNjbzV2NgorKwkJYmFz aWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorKwkJOzsKKysJ LXNjbzUpCisrCQlvcz0tc2NvMy4ydjUKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQg LWUgJ3MvODYtLiovODYtcGMvJ2AKKysJCTs7CisrCS1zY280KQorKwkJb3M9LXNjbzMuMnY0Cisr CQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7 OworKwktc2NvMy4yLls0LTldKikKKysJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAncy9zY28zLjIu L3NjbzMuMnYvJ2AKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiov ODYtcGMvJ2AKKysJCTs7CisrCS1zY28zLjJ2WzQtOV0qKQorKwkJIyBEb24ndCBmb3JnZXQgdmVy c2lvbiBpZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEg fCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKysJCTs7CisrCS1zY281djYqKQorKwkJIyBEb24n dCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KKysJCWJhc2ljX21hY2hp bmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKysJCTs7CisrCS1zY28qKQor KwkJb3M9LXNjbzMuMnYyCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2 LS4qLzg2LXBjLydgCisrCQk7OworKwktdWRrKikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEg fCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKysJCTs7CisrCS1pc2MpCisrCQlvcz0taXNjMi4y CisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisr CQk7OworKwktY2xpeCopCisrCQliYXNpY19tYWNoaW5lPWNsaXBwZXItaW50ZXJncmFwaAorKwkJ OzsKKysJLWlzYyopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4q Lzg2LXBjLydgCisrCQk7OworKwktbHlueCopCisrCQlvcz0tbHlueG9zCisrCQk7OworKwktcHR4 KikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtc2VxdWVu dC8nYAorKwkJOzsKKysJLXdpbmRvd3NudCopCisrCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3Mv d2luZG93c250L3dpbm50LydgCisrCQk7OworKwktcHNvcyopCisrCQlvcz0tcHNvcworKwkJOzsK KysJLW1pbnQgfCAtbWludFswLTldKikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1hdGFyaQorKwkJ b3M9LW1pbnQKKysJCTs7CisrZXNhYworKworKyMgRGVjb2RlIGFsaWFzZXMgZm9yIGNlcnRhaW4g Q1BVLUNPTVBBTlkgY29tYmluYXRpb25zLgorK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KKysJIyBS ZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRob3V0IGNvbXBhbnkgbmFtZS4KKysJIyBT b21lIGFyZSBvbWl0dGVkIGhlcmUgYmVjYXVzZSB0aGV5IGhhdmUgc3BlY2lhbCBtZWFuaW5ncyBi ZWxvdy4KKysJMTc1MGEgfCA1ODAgXAorKwl8IGEyOWsgXAorKwl8IGFscGhhIHwgYWxwaGFldls0 LThdIHwgYWxwaGFldjU2IHwgYWxwaGFldjZbNzhdIHwgYWxwaGFwY2E1WzY3XSBcCisrCXwgYWxw aGE2NCB8IGFscGhhNjRldls0LThdIHwgYWxwaGE2NGV2NTYgfCBhbHBoYTY0ZXY2Wzc4XSB8IGFs cGhhNjRwY2E1WzY3XSBcCisrCXwgYW0zM18yLjAgXAorKwl8IGFyYyB8IGFybSB8IGFybVtibF1l IHwgYXJtZVtsYl0gfCBhcm12WzIzNDVdIHwgYXJtdlszNDVdW2xiXSB8IGF2ciB8IGF2cjMyIFwK KysJfCBiZmluIFwKKysJfCBjNHggfCBjbGlwcGVyIFwKKysJfCBkMTB2IHwgZDMwdiB8IGRseCB8 IGRzcDE2eHggXAorKwl8IGZpZG8gfCBmcjMwIHwgZnJ2IFwKKysJfCBoODMwMCB8IGg4NTAwIHwg aHBwYSB8IGhwcGExLlswMV0gfCBocHBhMi4wIHwgaHBwYTIuMFtud10gfCBocHBhNjQgXAorKwl8 IGkzNzAgfCBpODYwIHwgaTk2MCB8IGlhNjQgXAorKwl8IGlwMmsgfCBpcTIwMDAgXAorKwl8IGxt MzIgXAorKwl8IG0zMmMgfCBtMzJyIHwgbTMycmxlIHwgbTY4MDAwIHwgbTY4ayB8IG04OGsgXAor Kwl8IG1heHEgfCBtYiB8IG1pY3JvYmxhemUgfCBtY29yZSB8IG1lcCB8IG1ldGFnIFwKKysJfCBt aXBzIHwgbWlwc2JlIHwgbWlwc2ViIHwgbWlwc2VsIHwgbWlwc2xlIFwKKysJfCBtaXBzMTYgXAor Kwl8IG1pcHM2NCB8IG1pcHM2NGVsIFwKKysJfCBtaXBzNjRvY3Rlb24gfCBtaXBzNjRvY3Rlb25l bCBcCisrCXwgbWlwczY0b3Jpb24gfCBtaXBzNjRvcmlvbmVsIFwKKysJfCBtaXBzNjRyNTkwMCB8 IG1pcHM2NHI1OTAwZWwgXAorKwl8IG1pcHM2NHZyIHwgbWlwczY0dnJlbCBcCisrCXwgbWlwczY0 dnI0MTAwIHwgbWlwczY0dnI0MTAwZWwgXAorKwl8IG1pcHM2NHZyNDMwMCB8IG1pcHM2NHZyNDMw MGVsIFwKKysJfCBtaXBzNjR2cjUwMDAgfCBtaXBzNjR2cjUwMDBlbCBcCisrCXwgbWlwczY0dnI1 OTAwIHwgbWlwczY0dnI1OTAwZWwgXAorKwl8IG1pcHNpc2EzMiB8IG1pcHNpc2EzMmVsIFwKKysJ fCBtaXBzaXNhMzJyMiB8IG1pcHNpc2EzMnIyZWwgXAorKwl8IG1pcHNpc2E2NCB8IG1pcHNpc2E2 NGVsIFwKKysJfCBtaXBzaXNhNjRyMiB8IG1pcHNpc2E2NHIyZWwgXAorKwl8IG1pcHNpc2E2NHNi MSB8IG1pcHNpc2E2NHNiMWVsIFwKKysJfCBtaXBzaXNhNjRzcjcxayB8IG1pcHNpc2E2NHNyNzFr ZWwgXAorKwl8IG1pcHN0eDM5IHwgbWlwc3R4MzllbCBcCisrCXwgbW4xMDIwMCB8IG1uMTAzMDAg XAorKwl8IG1veGllIFwKKysJfCBtdCBcCisrCXwgbXNwNDMwIFwKKysJfCBuaW9zIHwgbmlvczIg XAorKwl8IG5zMTZrIHwgbnMzMmsgXAorKwl8IG9yMzIgXAorKwl8IHBkcDEwIHwgcGRwMTEgfCBw aiB8IHBqbCBcCisrCXwgcG93ZXJwYyB8IHBvd2VycGM2NCB8IHBvd2VycGM2NGxlIHwgcG93ZXJw Y2xlIHwgcHBjYmUgXAorKwl8IHB5cmFtaWQgXAorKwl8IHJ4IFwKKysJfCBzY29yZSBcCisrCXwg c2ggfCBzaFsxMjM0XSB8IHNoWzI0XWEgfCBzaFsyNF1hZWIgfCBzaFsyM11lIHwgc2hbMzRdZWIg fCBzaGViIHwgc2hiZSB8IHNobGUgfCBzaFsxMjM0XWxlIHwgc2gzZWxlIFwKKysJfCBzaDY0IHwg c2g2NGxlIFwKKysJfCBzcGFyYyB8IHNwYXJjNjQgfCBzcGFyYzY0YiB8IHNwYXJjNjR2IHwgc3Bh cmM4NnggfCBzcGFyY2xldCB8IHNwYXJjbGl0ZSBcCisrCXwgc3BhcmN2OCB8IHNwYXJjdjkgfCBz cGFyY3Y5YiB8IHNwYXJjdjl2IFwKKysJfCBzcHUgfCBzdHJvbmdhcm0gXAorKwl8IHRhaG9lIHwg dGh1bWIgfCB0aWM0eCB8IHRpYzgwIHwgdHJvbiBcCisrCXwgdWJpY29tMzIgXAorKwl8IHY4NTAg fCB2ODUwZSBcCisrCXwgd2UzMmsgXAorKwl8IHg4NiB8IHhjMTZ4IHwgeHNjYWxlIHwgeHNjYWxl ZVtibF0gfCB4c3Rvcm15MTYgfCB4dGVuc2EgXAorKwl8IHo4ayB8IHo4MCkKKysJCWJhc2ljX21h Y2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93bgorKwkJOzsKKysJbTY4MTEgfCBtNjhoYzExIHwg bTY4MTIgfCBtNjhoYzEyIHwgcGljb2NoaXApCisrCQkjIE1vdG9yb2xhIDY4SEMxMS8xMi4KKysJ CWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93bgorKwkJb3M9LW5vbmUKKysJCTs7 CisrCW04ODExMCB8IG02ODBbMTIzNDZdMCB8IG02ODM/MiB8IG02ODM2MCB8IG01MjAwIHwgdjcw IHwgdzY1IHwgejhrKQorKwkJOzsKKysJbXMxKQorKwkJYmFzaWNfbWFjaGluZT1tdC11bmtub3du CisrCQk7OworKworKwkjIFdlIHVzZSBgcGMnIHJhdGhlciB0aGFuIGB1bmtub3duJworKwkjIGJl Y2F1c2UgKDEpIHRoYXQncyB3aGF0IHRoZXkgbm9ybWFsbHkgYXJlLCBhbmQKKysJIyAoMikgdGhl IHdvcmQgInVua25vd24iIHRlbmRzIHRvIGNvbmZ1c2UgYmVnaW5uaW5nIHVzZXJzLgorKwlpKjg2 IHwgeDg2XzY0KQorKwkgIGJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtcGMKKysJICA7Owor KwkjIE9iamVjdCBpZiBtb3JlIHRoYW4gb25lIGNvbXBhbnkgbmFtZSB3b3JkLgorKwkqLSotKikK KysJCWVjaG8gSW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFcJzogbWFjaGluZSBcYCRiYXNpY19t YWNoaW5lXCcgbm90IHJlY29nbml6ZWQgMT4mMgorKwkJZXhpdCAxCisrCQk7OworKwkjIFJlY29n bml6ZSB0aGUgYmFzaWMgQ1BVIHR5cGVzIHdpdGggY29tcGFueSBuYW1lLgorKwk1ODAtKiBcCisr CXwgYTI5ay0qIFwKKysJfCBhbHBoYS0qIHwgYWxwaGFldls0LThdLSogfCBhbHBoYWV2NTYtKiB8 IGFscGhhZXY2Wzc4XS0qIFwKKysJfCBhbHBoYTY0LSogfCBhbHBoYTY0ZXZbNC04XS0qIHwgYWxw aGE2NGV2NTYtKiB8IGFscGhhNjRldjZbNzhdLSogXAorKwl8IGFscGhhcGNhNVs2N10tKiB8IGFs cGhhNjRwY2E1WzY3XS0qIHwgYXJjLSogXAorKwl8IGFybS0qICB8IGFybWJlLSogfCBhcm1sZS0q IHwgYXJtZWItKiB8IGFybXYqLSogXAorKwl8IGF2ci0qIHwgYXZyMzItKiBcCisrCXwgYmZpbi0q IHwgYnMyMDAwLSogXAorKwl8IGNbMTIzXSogfCBjMzAtKiB8IFtjanRdOTAtKiB8IGM0eC0qIHwg YzU0eC0qIHwgYzU1eC0qIHwgYzZ4LSogXAorKwl8IGNsaXBwZXItKiB8IGNyYXludi0qIHwgY3lk cmEtKiBcCisrCXwgZDEwdi0qIHwgZDMwdi0qIHwgZGx4LSogXAorKwl8IGVseHNpLSogXAorKwl8 IGYzMFswMV0tKiB8IGY3MDAtKiB8IGZpZG8tKiB8IGZyMzAtKiB8IGZydi0qIHwgZng4MC0qIFwK KysJfCBoODMwMC0qIHwgaDg1MDAtKiBcCisrCXwgaHBwYS0qIHwgaHBwYTEuWzAxXS0qIHwgaHBw YTIuMC0qIHwgaHBwYTIuMFtud10tKiB8IGhwcGE2NC0qIFwKKysJfCBpKjg2LSogfCBpODYwLSog fCBpOTYwLSogfCBpYTY0LSogXAorKwl8IGlwMmstKiB8IGlxMjAwMC0qIFwKKysJfCBsbTMyLSog XAorKwl8IG0zMmMtKiB8IG0zMnItKiB8IG0zMnJsZS0qIFwKKysJfCBtNjgwMDAtKiB8IG02ODBb MDEyMzQ2XTAtKiB8IG02ODM2MC0qIHwgbTY4Mz8yLSogfCBtNjhrLSogXAorKwl8IG04ODExMC0q IHwgbTg4ay0qIHwgbWF4cS0qIHwgbWNvcmUtKiB8IG1ldGFnLSogfCBtaWNyb2JsYXplLSogXAor Kwl8IG1pcHMtKiB8IG1pcHNiZS0qIHwgbWlwc2ViLSogfCBtaXBzZWwtKiB8IG1pcHNsZS0qIFwK KysJfCBtaXBzMTYtKiBcCisrCXwgbWlwczY0LSogfCBtaXBzNjRlbC0qIFwKKysJfCBtaXBzNjRv Y3Rlb24tKiB8IG1pcHM2NG9jdGVvbmVsLSogXAorKwl8IG1pcHM2NG9yaW9uLSogfCBtaXBzNjRv cmlvbmVsLSogXAorKwl8IG1pcHM2NHI1OTAwLSogfCBtaXBzNjRyNTkwMGVsLSogXAorKwl8IG1p cHM2NHZyLSogfCBtaXBzNjR2cmVsLSogXAorKwl8IG1pcHM2NHZyNDEwMC0qIHwgbWlwczY0dnI0 MTAwZWwtKiBcCisrCXwgbWlwczY0dnI0MzAwLSogfCBtaXBzNjR2cjQzMDBlbC0qIFwKKysJfCBt aXBzNjR2cjUwMDAtKiB8IG1pcHM2NHZyNTAwMGVsLSogXAorKwl8IG1pcHM2NHZyNTkwMC0qIHwg bWlwczY0dnI1OTAwZWwtKiBcCisrCXwgbWlwc2lzYTMyLSogfCBtaXBzaXNhMzJlbC0qIFwKKysJ fCBtaXBzaXNhMzJyMi0qIHwgbWlwc2lzYTMycjJlbC0qIFwKKysJfCBtaXBzaXNhNjQtKiB8IG1p cHNpc2E2NGVsLSogXAorKwl8IG1pcHNpc2E2NHIyLSogfCBtaXBzaXNhNjRyMmVsLSogXAorKwl8 IG1pcHNpc2E2NHNiMS0qIHwgbWlwc2lzYTY0c2IxZWwtKiBcCisrCXwgbWlwc2lzYTY0c3I3MWst KiB8IG1pcHNpc2E2NHNyNzFrZWwtKiBcCisrCXwgbWlwc3R4MzktKiB8IG1pcHN0eDM5ZWwtKiBc CisrCXwgbW1peC0qIFwKKysJfCBtdC0qIFwKKysJfCBtc3A0MzAtKiBcCisrCXwgbmlvcy0qIHwg bmlvczItKiBcCisrCXwgbm9uZS0qIHwgbnAxLSogfCBuczE2ay0qIHwgbnMzMmstKiBcCisrCXwg b3Jpb24tKiBcCisrCXwgcGRwMTAtKiB8IHBkcDExLSogfCBwai0qIHwgcGpsLSogfCBwbi0qIHwg cG93ZXItKiBcCisrCXwgcG93ZXJwYy0qIHwgcG93ZXJwYzY0LSogfCBwb3dlcnBjNjRsZS0qIHwg cG93ZXJwY2xlLSogfCBwcGNiZS0qIFwKKysJfCBweXJhbWlkLSogXAorKwl8IHJvbXAtKiB8IHJz NjAwMC0qIHwgcngtKiBcCisrCXwgc2gtKiB8IHNoWzEyMzRdLSogfCBzaFsyNF1hLSogfCBzaFsy NF1hZWItKiB8IHNoWzIzXWUtKiB8IHNoWzM0XWViLSogfCBzaGViLSogfCBzaGJlLSogXAorKwl8 IHNobGUtKiB8IHNoWzEyMzRdbGUtKiB8IHNoM2VsZS0qIHwgc2g2NC0qIHwgc2g2NGxlLSogXAor Kwl8IHNwYXJjLSogfCBzcGFyYzY0LSogfCBzcGFyYzY0Yi0qIHwgc3BhcmM2NHYtKiB8IHNwYXJj ODZ4LSogfCBzcGFyY2xldC0qIFwKKysJfCBzcGFyY2xpdGUtKiBcCisrCXwgc3BhcmN2OC0qIHwg c3BhcmN2OS0qIHwgc3BhcmN2OWItKiB8IHNwYXJjdjl2LSogfCBzdHJvbmdhcm0tKiB8IHN2MS0q IHwgc3g/LSogXAorKwl8IHRhaG9lLSogfCB0aHVtYi0qIFwKKysJfCB0aWMzMC0qIHwgdGljNHgt KiB8IHRpYzU0eC0qIHwgdGljNTV4LSogfCB0aWM2eC0qIHwgdGljODAtKiB8IHRpbGUtKiBcCisr CXwgdHJvbi0qIFwKKysJfCB1Ymljb20zMi0qIFwKKysJfCB2ODUwLSogfCB2ODUwZS0qIHwgdmF4 LSogXAorKwl8IHdlMzJrLSogXAorKwl8IHg4Ni0qIHwgeDg2XzY0LSogfCB4YzE2eC0qIHwgeHBz MTAwLSogfCB4c2NhbGUtKiB8IHhzY2FsZWVbYmxdLSogXAorKwl8IHhzdG9ybXkxNi0qIHwgeHRl bnNhKi0qIFwKKysJfCB5bXAtKiBcCisrCXwgejhrLSogfCB6ODAtKikKKysJCTs7CisrCSMgUmVj b2duaXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0aG91dCBjb21wYW55IG5hbWUsIHdpdGggZ2xv YiBtYXRjaC4KKysJeHRlbnNhKikKKysJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5r bm93bgorKwkJOzsKKysJIyBSZWNvZ25pemUgdGhlIHZhcmlvdXMgbWFjaGluZSBuYW1lcyBhbmQg YWxpYXNlcyB3aGljaCBzdGFuZAorKwkjIGZvciBhIENQVSB0eXBlIGFuZCBhIGNvbXBhbnkgYW5k IHNvbWV0aW1lcyBldmVuIGFuIE9TLgorKwkzODZic2QpCisrCQliYXNpY19tYWNoaW5lPWkzODYt dW5rbm93bgorKwkJb3M9LWJzZAorKwkJOzsKKysJM2IxIHwgNzMwMCB8IDczMDAtYXR0IHwgYXR0 LTczMDAgfCBwYzczMDAgfCBzYWZhcmkgfCB1bml4cGMpCisrCQliYXNpY19tYWNoaW5lPW02ODAw MC1hdHQKKysJCTs7CisrCTNiKikKKysJCWJhc2ljX21hY2hpbmU9d2UzMmstYXR0CisrCQk7Owor KwlhMjlraGlmKQorKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAorKwkJb3M9LXVkaQorKwkJOzsK KysgICAgCWFiYWN1cykKKysJCWJhc2ljX21hY2hpbmU9YWJhY3VzLXVua25vd24KKysJCTs7Cisr CWFkb2JlNjhrKQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMTAtYWRvYmUKKysJCW9zPS1zY291dAor KwkJOzsKKysJYWxsaWFudCB8IGZ4ODApCisrCQliYXNpY19tYWNoaW5lPWZ4ODAtYWxsaWFudAor KwkJOzsKKysJYWx0b3MgfCBhbHRvczMwNjgpCisrCQliYXNpY19tYWNoaW5lPW02OGstYWx0b3MK KysJCTs7CisrCWFtMjlrKQorKwkJYmFzaWNfbWFjaGluZT1hMjlrLW5vbmUKKysJCW9zPS1ic2QK KysJCTs7CisrCWFtZDY0KQorKwkJYmFzaWNfbWFjaGluZT14ODZfNjQtcGMKKysJCTs7CisrCWFt ZDY0LSopCisrCQliYXNpY19tYWNoaW5lPXg4Nl82NC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNl ZCAncy9eW14tXSotLy8nYAorKwkJOzsKKysJYW1kYWhsKQorKwkJYmFzaWNfbWFjaGluZT01ODAt YW1kYWhsCisrCQlvcz0tc3lzdgorKwkJOzsKKysJYW1pZ2EgfCBhbWlnYS0qKQorKwkJYmFzaWNf bWFjaGluZT1tNjhrLXVua25vd24KKysJCTs7CisrCWFtaWdhb3MgfCBhbWlnYWRvcykKKysJCWJh c2ljX21hY2hpbmU9bTY4ay11bmtub3duCisrCQlvcz0tYW1pZ2FvcworKwkJOzsKKysJYW1pZ2F1 bml4IHwgYW1peCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3duCisrCQlvcz0tc3lzdjQK KysJCTs7CisrCWFwb2xsbzY4KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xsbworKwkJb3M9 LXN5c3YKKysJCTs7CisrCWFwb2xsbzY4YnNkKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xs bworKwkJb3M9LWJzZAorKwkJOzsKKysJYXJvcykKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwor KwkJb3M9LWFyb3MKKysJCTs7CisrCWF1eCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1hcHBsZQor KwkJb3M9LWF1eAorKwkJOzsKKysJYmFsYW5jZSkKKysJCWJhc2ljX21hY2hpbmU9bnMzMmstc2Vx dWVudAorKwkJb3M9LWR5bml4CisrCQk7OworKwlibGFja2ZpbikKKysJCWJhc2ljX21hY2hpbmU9 YmZpbi11bmtub3duCisrCQlvcz0tbGludXgKKysJCTs7CisrCWJsYWNrZmluLSopCisrCQliYXNp Y19tYWNoaW5lPWJmaW4tYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AK KysJCW9zPS1saW51eAorKwkJOzsKKysJYmx1ZWdlbmUqKQorKwkJYmFzaWNfbWFjaGluZT1wb3dl cnBjLWlibQorKwkJb3M9LWNuaworKwkJOzsKKysJYzkwKQorKwkJYmFzaWNfbWFjaGluZT1jOTAt Y3JheQorKwkJb3M9LXVuaWNvcworKwkJOzsKKysgICAgICAgIGNlZ2NjKQorKwkJYmFzaWNfbWFj aGluZT1hcm0tdW5rbm93bgorKwkJb3M9LWNlZ2NjCisrCQk7OworKwljb252ZXgtYzEpCisrCQli YXNpY19tYWNoaW5lPWMxLWNvbnZleAorKwkJb3M9LWJzZAorKwkJOzsKKysJY29udmV4LWMyKQor KwkJYmFzaWNfbWFjaGluZT1jMi1jb252ZXgKKysJCW9zPS1ic2QKKysJCTs7CisrCWNvbnZleC1j MzIpCisrCQliYXNpY19tYWNoaW5lPWMzMi1jb252ZXgKKysJCW9zPS1ic2QKKysJCTs7CisrCWNv bnZleC1jMzQpCisrCQliYXNpY19tYWNoaW5lPWMzNC1jb252ZXgKKysJCW9zPS1ic2QKKysJCTs7 CisrCWNvbnZleC1jMzgpCisrCQliYXNpY19tYWNoaW5lPWMzOC1jb252ZXgKKysJCW9zPS1ic2QK KysJCTs7CisrCWNyYXkgfCBqOTApCisrCQliYXNpY19tYWNoaW5lPWo5MC1jcmF5CisrCQlvcz0t dW5pY29zCisrCQk7OworKwljcmF5bnYpCisrCQliYXNpY19tYWNoaW5lPWNyYXludi1jcmF5Cisr CQlvcz0tdW5pY29zbXAKKysJCTs7CisrCWNyMTYpCisrCQliYXNpY19tYWNoaW5lPWNyMTYtdW5r bm93bgorKwkJb3M9LWVsZgorKwkJOzsKKysJY3JkcyB8IHVub3MpCisrCQliYXNpY19tYWNoaW5l PW02OGstY3JkcworKwkJOzsKKysJY3Jpc3YzMiB8IGNyaXN2MzItKiB8IGV0cmF4ZnMqKQorKwkJ YmFzaWNfbWFjaGluZT1jcmlzdjMyLWF4aXMKKysJCTs7CisrCWNyaXMgfCBjcmlzLSogfCBldHJh eCopCisrCQliYXNpY19tYWNoaW5lPWNyaXMtYXhpcworKwkJOzsKKysJY3J4KQorKwkJYmFzaWNf bWFjaGluZT1jcngtdW5rbm93bgorKwkJb3M9LWVsZgorKwkJOzsKKysJZGEzMCB8IGRhMzAtKikK KysJCWJhc2ljX21hY2hpbmU9bTY4ay1kYTMwCisrCQk7OworKwlkZWNzdGF0aW9uIHwgZGVjc3Rh dGlvbi0zMTAwIHwgcG1heCB8IHBtYXgtKiB8IHBtaW4gfCBkZWMzMTAwIHwgZGVjc3RhdG4pCisr CQliYXNpY19tYWNoaW5lPW1pcHMtZGVjCisrCQk7OworKwlkZWNzeXN0ZW0xMCogfCBkZWMxMCop CisrCQliYXNpY19tYWNoaW5lPXBkcDEwLWRlYworKwkJb3M9LXRvcHMxMAorKwkJOzsKKysJZGVj c3lzdGVtMjAqIHwgZGVjMjAqKQorKwkJYmFzaWNfbWFjaGluZT1wZHAxMC1kZWMKKysJCW9zPS10 b3BzMjAKKysJCTs7CisrCWRlbHRhIHwgMzMwMCB8IG1vdG9yb2xhLTMzMDAgfCBtb3Rvcm9sYS1k ZWx0YSBcCisrCSAgICAgIHwgMzMwMC1tb3Rvcm9sYSB8IGRlbHRhLW1vdG9yb2xhKQorKwkJYmFz aWNfbWFjaGluZT1tNjhrLW1vdG9yb2xhCisrCQk7OworKwlkZWx0YTg4KQorKwkJYmFzaWNfbWFj aGluZT1tODhrLW1vdG9yb2xhCisrCQlvcz0tc3lzdjMKKysJCTs7CisrCWRpY29zKQorKwkJYmFz aWNfbWFjaGluZT1pNjg2LXBjCisrCQlvcz0tZGljb3MKKysJCTs7CisrCWRqZ3BwKQorKwkJYmFz aWNfbWFjaGluZT1pNTg2LXBjCisrCQlvcz0tbXNkb3NkamdwcAorKwkJOzsKKysJZHB4MjAgfCBk cHgyMC0qKQorKwkJYmFzaWNfbWFjaGluZT1yczYwMDAtYnVsbAorKwkJb3M9LWJvc3gKKysJCTs7 CisrCWRweDIqIHwgZHB4MiotYnVsbCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCisrCQlv cz0tc3lzdjMKKysJCTs7CisrCWVibW9uMjlrKQorKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAor KwkJb3M9LWVibW9uCisrCQk7OworKwllbHhzaSkKKysJCWJhc2ljX21hY2hpbmU9ZWx4c2ktZWx4 c2kKKysJCW9zPS1ic2QKKysJCTs7CisrCWVuY29yZSB8IHVtYXggfCBtbWF4KQorKwkJYmFzaWNf bWFjaGluZT1uczMyay1lbmNvcmUKKysJCTs7CisrCWVzMTgwMCB8IE9TRTY4ayB8IG9zZTY4ayB8 IG9zZSB8IE9TRSkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1lcmljc3NvbgorKwkJb3M9LW9zZQor KwkJOzsKKysJZngyODAwKQorKwkJYmFzaWNfbWFjaGluZT1pODYwLWFsbGlhbnQKKysJCTs7Cisr CWdlbml4KQorKwkJYmFzaWNfbWFjaGluZT1uczMyay1ucworKwkJOzsKKysJZ21pY3JvKQorKwkJ YmFzaWNfbWFjaGluZT10cm9uLWdtaWNybworKwkJb3M9LXN5c3YKKysJCTs7CisrCWdvMzIpCisr CQliYXNpY19tYWNoaW5lPWkzODYtcGMKKysJCW9zPS1nbzMyCisrCQk7OworKwloMzA1MHIqIHwg aGl1eCopCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaGl0YWNoaQorKwkJb3M9LWhpdXh3ZTIK KysJCTs7CisrCWg4MzAwaG1zKQorKwkJYmFzaWNfbWFjaGluZT1oODMwMC1oaXRhY2hpCisrCQlv cz0taG1zCisrCQk7OworKwloODMwMHhyYXkpCisrCQliYXNpY19tYWNoaW5lPWg4MzAwLWhpdGFj aGkKKysJCW9zPS14cmF5CisrCQk7OworKwloODUwMGhtcykKKysJCWJhc2ljX21hY2hpbmU9aDg1 MDAtaGl0YWNoaQorKwkJb3M9LWhtcworKwkJOzsKKysJaGFycmlzKQorKwkJYmFzaWNfbWFjaGlu ZT1tODhrLWhhcnJpcworKwkJb3M9LXN5c3YzCisrCQk7OworKwlocDMwMC0qKQorKwkJYmFzaWNf bWFjaGluZT1tNjhrLWhwCisrCQk7OworKwlocDMwMGJzZCkKKysJCWJhc2ljX21hY2hpbmU9bTY4 ay1ocAorKwkJb3M9LWJzZAorKwkJOzsKKysJaHAzMDBocHV4KQorKwkJYmFzaWNfbWFjaGluZT1t NjhrLWhwCisrCQlvcz0taHB1eAorKwkJOzsKKysJaHAzazlbMC05XVswLTldIHwgaHA5WzAtOV1b MC05XSkKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMC1ocAorKwkJOzsKKysJaHA5azJbMC05XVsw LTldIHwgaHA5azMxWzAtOV0pCisrCQliYXNpY19tYWNoaW5lPW02ODAwMC1ocAorKwkJOzsKKysJ aHA5azNbMi05XVswLTldKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCisrCQk7OworKwlocDlr NlswLTldWzAtOV0gfCBocDZbMC05XVswLTldKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhw CisrCQk7OworKwlocDlrN1swLTc5XVswLTldIHwgaHA3WzAtNzldWzAtOV0pCisrCQliYXNpY19t YWNoaW5lPWhwcGExLjEtaHAKKysJCTs7CisrCWhwOWs3OFswLTldIHwgaHA3OFswLTldKQorKwkJ IyBGSVhNRTogcmVhbGx5IGhwcGEyLjAtaHAKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAor KwkJOzsKKysJaHA5azhbNjddMSB8IGhwOFs2N10xIHwgaHA5azgwWzI0XSB8IGhwODBbMjRdIHwg aHA5azhbNzhdOSB8IGhwOFs3OF05IHwgaHA5azg5MyB8IGhwODkzKQorKwkJIyBGSVhNRTogcmVh bGx5IGhwcGEyLjAtaHAKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAorKwkJOzsKKysJaHA5 azhbMC05XVsxMzY3OV0gfCBocDhbMC05XVsxMzY3OV0pCisrCQliYXNpY19tYWNoaW5lPWhwcGEx LjEtaHAKKysJCTs7CisrCWhwOWs4WzAtOV1bMC05XSB8IGhwOFswLTldWzAtOV0pCisrCQliYXNp Y19tYWNoaW5lPWhwcGExLjAtaHAKKysJCTs7CisrCWhwcGEtbmV4dCkKKysJCW9zPS1uZXh0c3Rl cDMKKysJCTs7CisrCWhwcGFvc2YpCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKKysJCW9z PS1vc2YKKysJCTs7CisrCWhwcHJvKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisrCQlv cz0tcHJvZWxmCisrCQk7OworKwlpMzcwLWlibSogfCBpYm0qKQorKwkJYmFzaWNfbWFjaGluZT1p MzcwLWlibQorKwkJOzsKKysjIEknbSBub3Qgc3VyZSB3aGF0ICJTeXN2MzIiIG1lYW5zLiAgU2hv dWxkIHRoaXMgYmUgc3lzdjMuMj8KKysJaSo4NnYzMikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8g JDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAorKwkJb3M9LXN5c3YzMgorKwkJOzsKKysJaSo4 NnY0KikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8n YAorKwkJb3M9LXN5c3Y0CisrCQk7OworKwlpKjg2dikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8g JDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAorKwkJb3M9LXN5c3YKKysJCTs7CisrCWkqODZz b2wyKQorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydg CisrCQlvcz0tc29sYXJpczIKKysJCTs7CisrCWkzODZtYWNoKQorKwkJYmFzaWNfbWFjaGluZT1p Mzg2LW1hY2gKKysJCW9zPS1tYWNoCisrCQk7OworKwlpMzg2LXZzdGEgfCB2c3RhKQorKwkJYmFz aWNfbWFjaGluZT1pMzg2LXVua25vd24KKysJCW9zPS12c3RhCisrCQk7OworKwlpcmlzIHwgaXJp czRkKQorKwkJYmFzaWNfbWFjaGluZT1taXBzLXNnaQorKwkJY2FzZSAkb3MgaW4KKysJCSAgICAt aXJpeCopCisrCQkJOzsKKysJCSAgICAqKQorKwkJCW9zPS1pcml4NAorKwkJCTs7CisrCQllc2Fj CisrCQk7OworKwlpc2k2OCB8IGlzaSkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1pc2kKKysJCW9z PS1zeXN2CisrCQk7OworKwltNjhrbm9tbXUpCisrCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93 bgorKwkJb3M9LWxpbnV4CisrCQk7OworKwltNjhrbm9tbXUtKikKKysJCWJhc2ljX21hY2hpbmU9 bTY4ay1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorKwkJb3M9LWxp bnV4CisrCQk7OworKwltODhrLW9tcm9uKikKKysJCWJhc2ljX21hY2hpbmU9bTg4ay1vbXJvbgor KwkJOzsKKysJbWFnbnVtIHwgbTMyMzApCisrCQliYXNpY19tYWNoaW5lPW1pcHMtbWlwcworKwkJ b3M9LXN5c3YKKysJCTs7CisrCW1lcmxpbikKKysJCWJhc2ljX21hY2hpbmU9bnMzMmstdXRlawor KwkJb3M9LXN5c3YKKysJCTs7CisrICAgICAgICBtaWNyb2JsYXplKQorKwkJYmFzaWNfbWFjaGlu ZT1taWNyb2JsYXplLXhpbGlueAorKwkJOzsKKysJbWluZ3czMikKKysJCWJhc2ljX21hY2hpbmU9 aTM4Ni1wYworKwkJb3M9LW1pbmd3MzIKKysJCTs7CisrCW1pbmd3MzJjZSkKKysJCWJhc2ljX21h Y2hpbmU9YXJtLXVua25vd24KKysJCW9zPS1taW5ndzMyY2UKKysJCTs7CisrCW1pbmlmcmFtZSkK KysJCWJhc2ljX21hY2hpbmU9bTY4MDAwLWNvbnZlcmdlbnQKKysJCTs7CisrCSptaW50IHwgLW1p bnRbMC05XSogfCAqTWlOVCB8ICpNaU5UWzAtOV0qKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWF0 YXJpCisrCQlvcz0tbWludAorKwkJOzsKKysJbWlwczMqLSopCisrCQliYXNpY19tYWNoaW5lPWBl Y2hvICRiYXNpY19tYWNoaW5lIHwgc2VkIC1lICdzL21pcHMzL21pcHM2NC8nYAorKwkJOzsKKysJ bWlwczMqKQorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAn cy9taXBzMy9taXBzNjQvJ2AtdW5rbm93bgorKwkJOzsKKysJbW9uaXRvcikKKysJCWJhc2ljX21h Y2hpbmU9bTY4ay1yb202OGsKKysJCW9zPS1jb2ZmCisrCQk7OworKwltb3JwaG9zKQorKwkJYmFz aWNfbWFjaGluZT1wb3dlcnBjLXVua25vd24KKysJCW9zPS1tb3JwaG9zCisrCQk7OworKwltc2Rv cykKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYworKwkJb3M9LW1zZG9zCisrCQk7OworKwltczEt KikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbXMx LS9tdC0vJ2AKKysJCTs7CisrCW12cykKKysJCWJhc2ljX21hY2hpbmU9aTM3MC1pYm0KKysJCW9z PS1tdnMKKysJCTs7CisrCW5jcjMwMDApCisrCQliYXNpY19tYWNoaW5lPWk0ODYtbmNyCisrCQlv cz0tc3lzdjQKKysJCTs7CisrCW5ldGJzZDM4NikKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtu b3duCisrCQlvcz0tbmV0YnNkCisrCQk7OworKwluZXR3aW5kZXIpCisrCQliYXNpY19tYWNoaW5l PWFybXY0bC1yZWJlbAorKwkJb3M9LWxpbnV4CisrCQk7OworKwluZXdzIHwgbmV3czcwMCB8IG5l d3M4MDAgfCBuZXdzOTAwKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXNvbnkKKysJCW9zPS1uZXdz b3MKKysJCTs7CisrCW5ld3MxMDAwKQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMzAtc29ueQorKwkJ b3M9LW5ld3NvcworKwkJOzsKKysJbmV3cy0zNjAwIHwgcmlzYy1uZXdzKQorKwkJYmFzaWNfbWFj aGluZT1taXBzLXNvbnkKKysJCW9zPS1uZXdzb3MKKysJCTs7CisrCW5lY3Y3MCkKKysJCWJhc2lj X21hY2hpbmU9djcwLW5lYworKwkJb3M9LXN5c3YKKysJCTs7CisrCW5leHQgfCBtKi1uZXh0ICkK KysJCWJhc2ljX21hY2hpbmU9bTY4ay1uZXh0CisrCQljYXNlICRvcyBpbgorKwkJICAgIC1uZXh0 c3RlcCogKQorKwkJCTs7CisrCQkgICAgLW5zMiopCisrCQkgICAgICBvcz0tbmV4dHN0ZXAyCisr CQkJOzsKKysJCSAgICAqKQorKwkJICAgICAgb3M9LW5leHRzdGVwMworKwkJCTs7CisrCQllc2Fj CisrCQk7OworKwluaDMwMDApCisrCQliYXNpY19tYWNoaW5lPW02OGstaGFycmlzCisrCQlvcz0t Y3h1eAorKwkJOzsKKysJbmhbNDVdMDAwKQorKwkJYmFzaWNfbWFjaGluZT1tODhrLWhhcnJpcwor KwkJb3M9LWN4dXgKKysJCTs7CisrCW5pbmR5OTYwKQorKwkJYmFzaWNfbWFjaGluZT1pOTYwLWlu dGVsCisrCQlvcz0tbmluZHkKKysJCTs7CisrCW1vbjk2MCkKKysJCWJhc2ljX21hY2hpbmU9aTk2 MC1pbnRlbAorKwkJb3M9LW1vbjk2MAorKwkJOzsKKysJbm9uc3RvcHV4KQorKwkJYmFzaWNfbWFj aGluZT1taXBzLWNvbXBhcQorKwkJb3M9LW5vbnN0b3B1eAorKwkJOzsKKysJbnAxKQorKwkJYmFz aWNfbWFjaGluZT1ucDEtZ291bGQKKysJCTs7CisrCW5zci10YW5kZW0pCisrCQliYXNpY19tYWNo aW5lPW5zci10YW5kZW0KKysJCTs7CisrCW9wNTBuLSogfCBvcDYwYy0qKQorKwkJYmFzaWNfbWFj aGluZT1ocHBhMS4xLW9raQorKwkJb3M9LXByb2VsZgorKwkJOzsKKysJb3BlbnJpc2MgfCBvcGVu cmlzYy0qKQorKwkJYmFzaWNfbWFjaGluZT1vcjMyLXVua25vd24KKysJCTs7CisrCW9zNDAwKQor KwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWlibQorKwkJb3M9LW9zNDAwCisrCQk7OworKwlPU0U2 ODAwMCB8IG9zZTY4MDAwKQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtZXJpY3Nzb24KKysJCW9z PS1vc2UKKysJCTs7CisrCW9zNjhrKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5vbmUKKysJCW9z PS1vczY4aworKwkJOzsKKysJcGEtaGl0YWNoaSkKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1o aXRhY2hpCisrCQlvcz0taGl1eHdlMgorKwkJOzsKKysJcGFyYWdvbikKKysJCWJhc2ljX21hY2hp bmU9aTg2MC1pbnRlbAorKwkJb3M9LW9zZgorKwkJOzsKKysJcGFyaXNjKQorKwkJYmFzaWNfbWFj aGluZT1ocHBhLXVua25vd24KKysJCW9zPS1saW51eAorKwkJOzsKKysJcGFyaXNjLSopCisrCQli YXNpY19tYWNoaW5lPWhwcGEtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8v J2AKKysJCW9zPS1saW51eAorKwkJOzsKKysJcGJkKQorKwkJYmFzaWNfbWFjaGluZT1zcGFyYy10 dGkKKysJCTs7CisrCXBiYikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay10dGkKKysJCTs7CisrCXBj NTMyIHwgcGM1MzItKikKKysJCWJhc2ljX21hY2hpbmU9bnMzMmstcGM1MzIKKysJCTs7CisrCXBj OTgpCisrCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKysJCTs7CisrCXBjOTgtKikKKysJCWJhc2lj X21hY2hpbmU9aTM4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAor KwkJOzsKKysJcGVudGl1bSB8IHA1IHwgazUgfCBrNiB8IG5leGdlbiB8IHZpYWMzKQorKwkJYmFz aWNfbWFjaGluZT1pNTg2LXBjCisrCQk7OworKwlwZW50aXVtcHJvIHwgcDYgfCA2eDg2IHwgYXRo bG9uIHwgYXRobG9uXyopCisrCQliYXNpY19tYWNoaW5lPWk2ODYtcGMKKysJCTs7CisrCXBlbnRp dW1paSB8IHBlbnRpdW0yIHwgcGVudGl1bWlpaSB8IHBlbnRpdW0zKQorKwkJYmFzaWNfbWFjaGlu ZT1pNjg2LXBjCisrCQk7OworKwlwZW50aXVtNCkKKysJCWJhc2ljX21hY2hpbmU9aTc4Ni1wYwor KwkJOzsKKysJcGVudGl1bS0qIHwgcDUtKiB8IGs1LSogfCBrNi0qIHwgbmV4Z2VuLSogfCB2aWFj My0qKQorKwkJYmFzaWNfbWFjaGluZT1pNTg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdz L15bXi1dKi0vLydgCisrCQk7OworKwlwZW50aXVtcHJvLSogfCBwNi0qIHwgNng4Ni0qIHwgYXRo bG9uLSopCisrCQliYXNpY19tYWNoaW5lPWk2ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQg J3MvXlteLV0qLS8vJ2AKKysJCTs7CisrCXBlbnRpdW1paS0qIHwgcGVudGl1bTItKiB8IHBlbnRp dW1paWktKiB8IHBlbnRpdW0zLSopCisrCQliYXNpY19tYWNoaW5lPWk2ODYtYGVjaG8gJGJhc2lj X21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCTs7CisrCXBlbnRpdW00LSopCisrCQli YXNpY19tYWNoaW5lPWk3ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8v J2AKKysJCTs7CisrCXBuKQorKwkJYmFzaWNfbWFjaGluZT1wbi1nb3VsZAorKwkJOzsKKysJcG93 ZXIpCWJhc2ljX21hY2hpbmU9cG93ZXItaWJtCisrCQk7OworKwlwcGMpCWJhc2ljX21hY2hpbmU9 cG93ZXJwYy11bmtub3duCisrCQk7OworKwlwcGMtKikJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWBl Y2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisrCQk7OworKwlwcGNsZSB8 IHBvd2VycGNsaXR0bGUgfCBwcGMtbGUgfCBwb3dlcnBjLWxpdHRsZSkKKysJCWJhc2ljX21hY2hp bmU9cG93ZXJwY2xlLXVua25vd24KKysJCTs7CisrCXBwY2xlLSogfCBwb3dlcnBjbGl0dGxlLSop CisrCQliYXNpY19tYWNoaW5lPXBvd2VycGNsZS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAn cy9eW14tXSotLy8nYAorKwkJOzsKKysJcHBjNjQpCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0LXVu a25vd24KKysJCTs7CisrCXBwYzY0LSopIGJhc2ljX21hY2hpbmU9cG93ZXJwYzY0LWBlY2hvICRi YXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisrCQk7OworKwlwcGM2NGxlIHwgcG93 ZXJwYzY0bGl0dGxlIHwgcHBjNjQtbGUgfCBwb3dlcnBjNjQtbGl0dGxlKQorKwkJYmFzaWNfbWFj aGluZT1wb3dlcnBjNjRsZS11bmtub3duCisrCQk7OworKwlwcGM2NGxlLSogfCBwb3dlcnBjNjRs aXR0bGUtKikKKysJCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0bGUtYGVjaG8gJGJhc2ljX21hY2hp bmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCTs7CisrCXBzMikKKysJCWJhc2ljX21hY2hpbmU9 aTM4Ni1pYm0KKysJCTs7CisrCXB3MzIpCisrCQliYXNpY19tYWNoaW5lPWk1ODYtdW5rbm93bgor KwkJb3M9LXB3MzIKKysJCTs7CisrCXJkb3MpCisrCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKysJ CW9zPS1yZG9zCisrCQk7OworKwlyb202OGspCisrCQliYXNpY19tYWNoaW5lPW02OGstcm9tNjhr CisrCQlvcz0tY29mZgorKwkJOzsKKysJcm1bNDZdMDApCisrCQliYXNpY19tYWNoaW5lPW1pcHMt c2llbWVucworKwkJOzsKKysJcnRwYyB8IHJ0cGMtKikKKysJCWJhc2ljX21hY2hpbmU9cm9tcC1p Ym0KKysJCTs7CisrCXMzOTAgfCBzMzkwLSopCisrCQliYXNpY19tYWNoaW5lPXMzOTAtaWJtCisr CQk7OworKwlzMzkweCB8IHMzOTB4LSopCisrCQliYXNpY19tYWNoaW5lPXMzOTB4LWlibQorKwkJ OzsKKysJc2EyOTIwMCkKKysJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKKysJCW9zPS11ZGkKKysJ CTs7CisrCXNiMSkKKysJCWJhc2ljX21hY2hpbmU9bWlwc2lzYTY0c2IxLXVua25vd24KKysJCTs7 CisrCXNiMWVsKQorKwkJYmFzaWNfbWFjaGluZT1taXBzaXNhNjRzYjFlbC11bmtub3duCisrCQk7 OworKwlzZGUpCisrCQliYXNpY19tYWNoaW5lPW1pcHNpc2EzMi1zZGUKKysJCW9zPS1lbGYKKysJ CTs7CisrCXNlaSkKKysJCWJhc2ljX21hY2hpbmU9bWlwcy1zZWkKKysJCW9zPS1zZWl1eAorKwkJ OzsKKysJc2VxdWVudCkKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50CisrCQk7OworKwlz aCkKKysJCWJhc2ljX21hY2hpbmU9c2gtaGl0YWNoaQorKwkJb3M9LWhtcworKwkJOzsKKysJc2g1 ZWwpCisrCQliYXNpY19tYWNoaW5lPXNoNWxlLXVua25vd24KKysJCTs7CisrCXNoNjQpCisrCQli YXNpY19tYWNoaW5lPXNoNjQtdW5rbm93bgorKwkJOzsKKysJc3BhcmNsaXRlLXdycyB8IHNpbXNv LXdycykKKysJCWJhc2ljX21hY2hpbmU9c3BhcmNsaXRlLXdycworKwkJb3M9LXZ4d29ya3MKKysJ CTs7CisrCXNwczcpCisrCQliYXNpY19tYWNoaW5lPW02OGstYnVsbAorKwkJb3M9LXN5c3YyCisr CQk7OworKwlzcHVyKQorKwkJYmFzaWNfbWFjaGluZT1zcHVyLXVua25vd24KKysJCTs7CisrCXN0 MjAwMCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay10YW5kZW0KKysJCTs7CisrCXN0cmF0dXMpCisr CQliYXNpY19tYWNoaW5lPWk4NjAtc3RyYXR1cworKwkJb3M9LXN5c3Y0CisrCQk7OworKwlzdW4y KQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtc3VuCisrCQk7OworKwlzdW4yb3MzKQorKwkJYmFz aWNfbWFjaGluZT1tNjgwMDAtc3VuCisrCQlvcz0tc3Vub3MzCisrCQk7OworKwlzdW4yb3M0KQor KwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtc3VuCisrCQlvcz0tc3Vub3M0CisrCQk7OworKwlzdW4z b3MzKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXN1bgorKwkJb3M9LXN1bm9zMworKwkJOzsKKysJ c3VuM29zNCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1zdW4KKysJCW9zPS1zdW5vczQKKysJCTs7 CisrCXN1bjRvczMpCisrCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgorKwkJb3M9LXN1bm9zMwor KwkJOzsKKysJc3VuNG9zNCkKKysJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisrCQlvcz0tc3Vu b3M0CisrCQk7OworKwlzdW40c29sMikKKysJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisrCQlv cz0tc29sYXJpczIKKysJCTs7CisrCXN1bjMgfCBzdW4zLSopCisrCQliYXNpY19tYWNoaW5lPW02 OGstc3VuCisrCQk7OworKwlzdW40KQorKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KKysJCTs7 CisrCXN1bjM4NiB8IHN1bjM4NmkgfCByb2FkcnVubmVyKQorKwkJYmFzaWNfbWFjaGluZT1pMzg2 LXN1bgorKwkJOzsKKysJc3YxKQorKwkJYmFzaWNfbWFjaGluZT1zdjEtY3JheQorKwkJb3M9LXVu aWNvcworKwkJOzsKKysJc3ltbWV0cnkpCisrCQliYXNpY19tYWNoaW5lPWkzODYtc2VxdWVudAor KwkJb3M9LWR5bml4CisrCQk7OworKwl0M2UpCisrCQliYXNpY19tYWNoaW5lPWFscGhhZXY1LWNy YXkKKysJCW9zPS11bmljb3MKKysJCTs7CisrCXQ5MCkKKysJCWJhc2ljX21hY2hpbmU9dDkwLWNy YXkKKysJCW9zPS11bmljb3MKKysJCTs7CisrCXRpYzU0eCB8IGM1NHgqKQorKwkJYmFzaWNfbWFj aGluZT10aWM1NHgtdW5rbm93bgorKwkJb3M9LWNvZmYKKysJCTs7CisrCXRpYzU1eCB8IGM1NXgq KQorKwkJYmFzaWNfbWFjaGluZT10aWM1NXgtdW5rbm93bgorKwkJb3M9LWNvZmYKKysJCTs7Cisr CXRpYzZ4IHwgYzZ4KikKKysJCWJhc2ljX21hY2hpbmU9dGljNngtdW5rbm93bgorKwkJb3M9LWNv ZmYKKysJCTs7CisrCXRpbGUqKQorKwkJYmFzaWNfbWFjaGluZT10aWxlLXVua25vd24KKysJCW9z PS1saW51eC1nbnUKKysJCTs7CisrCXR4MzkpCisrCQliYXNpY19tYWNoaW5lPW1pcHN0eDM5LXVu a25vd24KKysJCTs7CisrCXR4MzllbCkKKysJCWJhc2ljX21hY2hpbmU9bWlwc3R4MzllbC11bmtu b3duCisrCQk7OworKwl0b2FkMSkKKysJCWJhc2ljX21hY2hpbmU9cGRwMTAteGtsCisrCQlvcz0t dG9wczIwCisrCQk7OworKwl0b3dlciB8IHRvd2VyLTMyKQorKwkJYmFzaWNfbWFjaGluZT1tNjhr LW5jcgorKwkJOzsKKysJdHBmKQorKwkJYmFzaWNfbWFjaGluZT1zMzkweC1pYm0KKysJCW9zPS10 cGYKKysJCTs7CisrCXVkaTI5aykKKysJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKKysJCW9zPS11 ZGkKKysJCTs7CisrCXVsdHJhMykKKysJCWJhc2ljX21hY2hpbmU9YTI5ay1ueXUKKysJCW9zPS1z eW0xCisrCQk7OworKwl2ODEwIHwgbmVjdjgxMCkKKysJCWJhc2ljX21hY2hpbmU9djgxMC1uZWMK KysJCW9zPS1ub25lCisrCQk7OworKwl2YXh2KQorKwkJYmFzaWNfbWFjaGluZT12YXgtZGVjCisr CQlvcz0tc3lzdgorKwkJOzsKKysJdm1zKQorKwkJYmFzaWNfbWFjaGluZT12YXgtZGVjCisrCQlv cz0tdm1zCisrCQk7OworKwl2cHAqfHZ4fHZ4LSopCisrCQliYXNpY19tYWNoaW5lPWYzMDEtZnVq aXRzdQorKwkJOzsKKysJdnh3b3Jrczk2MCkKKysJCWJhc2ljX21hY2hpbmU9aTk2MC13cnMKKysJ CW9zPS12eHdvcmtzCisrCQk7OworKwl2eHdvcmtzNjgpCisrCQliYXNpY19tYWNoaW5lPW02OGst d3JzCisrCQlvcz0tdnh3b3JrcworKwkJOzsKKysJdnh3b3JrczI5aykKKysJCWJhc2ljX21hY2hp bmU9YTI5ay13cnMKKysJCW9zPS12eHdvcmtzCisrCQk7OworKwl3NjUqKQorKwkJYmFzaWNfbWFj aGluZT13NjUtd2RjCisrCQlvcz0tbm9uZQorKwkJOzsKKysJdzg5ay0qKQorKwkJYmFzaWNfbWFj aGluZT1ocHBhMS4xLXdpbmJvbmQKKysJCW9zPS1wcm9lbGYKKysJCTs7CisrCXhib3gpCisrCQli YXNpY19tYWNoaW5lPWk2ODYtcGMKKysJCW9zPS1taW5ndzMyCisrCQk7OworKwl4cHMgfCB4cHMx MDApCisrCQliYXNpY19tYWNoaW5lPXhwczEwMC1ob25leXdlbGwKKysJCTs7CisrCXltcCkKKysJ CWJhc2ljX21hY2hpbmU9eW1wLWNyYXkKKysJCW9zPS11bmljb3MKKysJCTs7CisrCXo4ay0qLWNv ZmYpCisrCQliYXNpY19tYWNoaW5lPXo4ay11bmtub3duCisrCQlvcz0tc2ltCisrCQk7OworKwl6 ODAtKi1jb2ZmKQorKwkJYmFzaWNfbWFjaGluZT16ODAtdW5rbm93bgorKwkJb3M9LXNpbQorKwkJ OzsKKysJbm9uZSkKKysJCWJhc2ljX21hY2hpbmU9bm9uZS1ub25lCisrCQlvcz0tbm9uZQorKwkJ OzsKKysKKysjIEhlcmUgd2UgaGFuZGxlIHRoZSBkZWZhdWx0IG1hbnVmYWN0dXJlciBvZiBjZXJ0 YWluIENQVSB0eXBlcy4gIEl0IGlzIGluCisrIyBzb21lIGNhc2VzIHRoZSBvbmx5IG1hbnVmYWN0 dXJlciwgaW4gb3RoZXJzLCBpdCBpcyB0aGUgbW9zdCBwb3B1bGFyLgorKwl3ODlrKQorKwkJYmFz aWNfbWFjaGluZT1ocHBhMS4xLXdpbmJvbmQKKysJCTs7CisrCW9wNTBuKQorKwkJYmFzaWNfbWFj aGluZT1ocHBhMS4xLW9raQorKwkJOzsKKysJb3A2MGMpCisrCQliYXNpY19tYWNoaW5lPWhwcGEx LjEtb2tpCisrCQk7OworKwlyb21wKQorKwkJYmFzaWNfbWFjaGluZT1yb21wLWlibQorKwkJOzsK KysJbW1peCkKKysJCWJhc2ljX21hY2hpbmU9bW1peC1rbnV0aAorKwkJOzsKKysJcnM2MDAwKQor KwkJYmFzaWNfbWFjaGluZT1yczYwMDAtaWJtCisrCQk7OworKwl2YXgpCisrCQliYXNpY19tYWNo aW5lPXZheC1kZWMKKysJCTs7CisrCXBkcDEwKQorKwkJIyB0aGVyZSBhcmUgbWFueSBjbG9uZXMs IHNvIERFQyBpcyBub3QgYSBzYWZlIGJldAorKwkJYmFzaWNfbWFjaGluZT1wZHAxMC11bmtub3du CisrCQk7OworKwlwZHAxMSkKKysJCWJhc2ljX21hY2hpbmU9cGRwMTEtZGVjCisrCQk7OworKwl3 ZTMyaykKKysJCWJhc2ljX21hY2hpbmU9d2UzMmstYXR0CisrCQk7OworKwlzaFsxMjM0XSB8IHNo WzI0XWEgfCBzaFsyNF1hZWIgfCBzaFszNF1lYiB8IHNoWzEyMzRdbGUgfCBzaFsyM11lbGUpCisr CQliYXNpY19tYWNoaW5lPXNoLXVua25vd24KKysJCTs7CisrCXNwYXJjIHwgc3BhcmN2OCB8IHNw YXJjdjkgfCBzcGFyY3Y5YiB8IHNwYXJjdjl2KQorKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4K KysJCTs7CisrCWN5ZHJhKQorKwkJYmFzaWNfbWFjaGluZT1jeWRyYS1jeWRyb21lCisrCQk7Owor KwlvcmlvbikKKysJCWJhc2ljX21hY2hpbmU9b3Jpb24taGlnaGxldmVsCisrCQk7OworKwlvcmlv bjEwNSkKKysJCWJhc2ljX21hY2hpbmU9Y2xpcHBlci1oaWdobGV2ZWwKKysJCTs7CisrCW1hYyB8 IG1wdyB8IG1hYy1tcHcpCisrCQliYXNpY19tYWNoaW5lPW02OGstYXBwbGUKKysJCTs7CisrCXBt YWMgfCBwbWFjLW1wdykKKysJCWJhc2ljX21hY2hpbmU9cG93ZXJwYy1hcHBsZQorKwkJOzsKKysJ Ki11bmtub3duKQorKwkJIyBNYWtlIHN1cmUgdG8gbWF0Y2ggYW4gYWxyZWFkeS1jYW5vbmljYWxp emVkIG1hY2hpbmUgbmFtZS4KKysJCTs7CisrCSopCisrCQllY2hvIEludmFsaWQgY29uZmlndXJh dGlvbiBcYCQxXCc6IG1hY2hpbmUgXGAkYmFzaWNfbWFjaGluZVwnIG5vdCByZWNvZ25pemVkIDE+ JjIKKysJCWV4aXQgMQorKwkJOzsKKytlc2FjCisrCisrIyBIZXJlIHdlIGNhbm9uaWNhbGl6ZSBj ZXJ0YWluIGFsaWFzZXMgZm9yIG1hbnVmYWN0dXJlcnMuCisrY2FzZSAkYmFzaWNfbWFjaGluZSBp bgorKwkqLWRpZ2l0YWwqKQorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8 IHNlZCAncy9kaWdpdGFsLiovZGVjLydgCisrCQk7OworKwkqLWNvbW1vZG9yZSopCisrCQliYXNp Y19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL2NvbW1vZG9yZS4qL2NibS8n YAorKwkJOzsKKysJKikKKysJCTs7CisrZXNhYworKworKyMgRGVjb2RlIG1hbnVmYWN0dXJlci1z cGVjaWZpYyBhbGlhc2VzIGZvciBjZXJ0YWluIG9wZXJhdGluZyBzeXN0ZW1zLgorKworK2lmIFsg eCIkb3MiICE9IHgiIiBdCisrdGhlbgorK2Nhc2UgJG9zIGluCisrICAgICAgICAjIEZpcnN0IG1h dGNoIHNvbWUgc3lzdGVtIHR5cGUgYWxpYXNlcworKyAgICAgICAgIyB0aGF0IG1pZ2h0IGdldCBj b25mdXNlZCB3aXRoIHZhbGlkIHN5c3RlbSB0eXBlcy4KKysJIyAtc29sYXJpcyogaXMgYSBiYXNp YyBzeXN0ZW0gdHlwZSwgd2l0aCB0aGlzIG9uZSBleGNlcHRpb24uCisrICAgICAgICAtYXVyb3Jh dXgpCisrCSAgICAgICAgb3M9LWF1cm9yYXV4CisrCQk7OworKwktc29sYXJpczEgfCAtc29sYXJp czEuKikKKysJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzb2xhcmlzMXxzdW5vczR8J2AKKysJ CTs7CisrCS1zb2xhcmlzKQorKwkJb3M9LXNvbGFyaXMyCisrCQk7OworKwktc3ZyNCopCisrCQlv cz0tc3lzdjQKKysJCTs7CisrCS11bml4d2FyZSopCisrCQlvcz0tc3lzdjQuMnV3CisrCQk7Owor KwktZ251L2xpbnV4KikKKysJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xnbnUvbGludXh8bGlu dXgtZ251fCdgCisrCQk7OworKwkjIEZpcnN0IGFjY2VwdCB0aGUgYmFzaWMgc3lzdGVtIHR5cGVz LgorKwkjIFRoZSBwb3J0YWJsZSBzeXN0ZW1zIGNvbWVzIGZpcnN0LgorKwkjIEVhY2ggYWx0ZXJu YXRpdmUgTVVTVCBFTkQgSU4gQSAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgorKwkjIC1z eXN2KiBpcyBub3QgaGVyZSBiZWNhdXNlIGl0IGNvbWVzIGxhdGVyLCBhZnRlciBzeXN2cjQuCisr CS1nbnUqIHwgLWJzZCogfCAtbWFjaCogfCAtbWluaXgqIHwgLWdlbml4KiB8IC11bHRyaXgqIHwg LWlyaXgqIFwKKysJICAgICAgfCAtKnZtcyogfCAtc2NvKiB8IC1lc2l4KiB8IC1pc2MqIHwgLWFp eCogfCAtY25rKiB8IC1zdW5vcyB8IC1zdW5vc1szNF0qXAorKwkgICAgICB8IC1ocHV4KiB8IC11 bm9zKiB8IC1vc2YqIHwgLWx1bmEqIHwgLWRndXgqIHwgLWF1cm9yYXV4KiB8IC1zb2xhcmlzKiBc CisrCSAgICAgIHwgLXN5bSogfCAta29wZW5zb2xhcmlzKiBcCisrCSAgICAgIHwgLWFtaWdhb3Mq IHwgLWFtaWdhZG9zKiB8IC1tc2RvcyogfCAtbmV3c29zKiB8IC11bmljb3MqIHwgLWFvZiogXAor KwkgICAgICB8IC1hb3MqIHwgLWFyb3MqIFwKKysJICAgICAgfCAtbmluZHkqIHwgLXZ4c2ltKiB8 IC12eHdvcmtzKiB8IC1lYm1vbiogfCAtaG1zKiB8IC1tdnMqIFwKKysJICAgICAgfCAtY2xpeCog fCAtcmlzY29zKiB8IC11bmlwbHVzKiB8IC1pcmlzKiB8IC1ydHUqIHwgLXhlbml4KiBcCisrCSAg ICAgIHwgLWhpdXgqIHwgLTM4NmJzZCogfCAta25ldGJzZCogfCAtbWlyYnNkKiB8IC1uZXRic2Qq IFwKKysJICAgICAgfCAtb3BlbmJzZCogfCAtc29saWRic2QqIFwKKysJICAgICAgfCAtZWtrb2Jz ZCogfCAta2ZyZWVic2QqIHwgLWZyZWVic2QqIHwgLXJpc2NpeCogfCAtbHlueG9zKiBcCisrCSAg ICAgIHwgLWJvc3gqIHwgLW5leHRzdGVwKiB8IC1jeHV4KiB8IC1hb3V0KiB8IC1lbGYqIHwgLW9h YmkqIFwKKysJICAgICAgfCAtcHR4KiB8IC1jb2ZmKiB8IC1lY29mZiogfCAtd2lubnQqIHwgLWRv bWFpbiogfCAtdnN0YSogXAorKwkgICAgICB8IC11ZGkqIHwgLWVhYmkqIHwgLWxpdGVzKiB8IC1p ZWVlKiB8IC1nbzMyKiB8IC1hdXgqIFwKKysJICAgICAgfCAtY2hvcnVzb3MqIHwgLWNob3J1c3Jk YiogfCAtY2VnY2MqIFwKKysJICAgICAgfCAtY3lnd2luKiB8IC1wZSogfCAtcHNvcyogfCAtbW9z cyogfCAtcHJvZWxmKiB8IC1ydGVtcyogXAorKwkgICAgICB8IC1taW5ndzMyKiB8IC1saW51eC1n bnUqIHwgLWxpbnV4LW5ld2xpYiogfCAtbGludXgtdWNsaWJjKiBcCisrCSAgICAgIHwgLXV4cHYq IHwgLWJlb3MqIHwgLW1wZWl4KiB8IC11ZGsqIFwKKysJICAgICAgfCAtaW50ZXJpeCogfCAtdXdp biogfCAtbWtzKiB8IC1yaGFwc29keSogfCAtZGFyd2luKiB8IC1vcGVuZWQqIFwKKysJICAgICAg fCAtb3BlbnN0ZXAqIHwgLW9za2l0KiB8IC1jb25peCogfCAtcHczMiogfCAtbm9uc3RvcHV4KiBc CisrCSAgICAgIHwgLXN0b3JtLWNoYW9zKiB8IC10b3BzMTAqIHwgLXRlbmV4KiB8IC10b3BzMjAq IHwgLWl0cyogXAorKwkgICAgICB8IC1vczIqIHwgLXZvcyogfCAtcGFsbW9zKiB8IC11Y2xpbnV4 KiB8IC1udWNsZXVzKiBcCisrCSAgICAgIHwgLW1vcnBob3MqIHwgLXN1cGVydXgqIHwgLXJ0bWsq IHwgLXJ0bWstbm92YSogfCAtd2luZGlzcyogXAorKwkgICAgICB8IC1wb3dlcm1heCogfCAtZG5p eCogfCAtbng2IHwgLW54NyB8IC1zZWkqIHwgLWRyYWdvbmZseSogXAorKwkgICAgICB8IC1za3lv cyogfCAtaGFpa3UqIHwgLXJkb3MqIHwgLXRvcHBlcnMqIHwgLWRyb3BzKiB8IC1lcyopCisrCSMg UmVtZW1iZXIsIGVhY2ggYWx0ZXJuYXRpdmUgTVVTVCBFTkQgSU4gKiwgdG8gbWF0Y2ggYSB2ZXJz aW9uIG51bWJlci4KKysJCTs7CisrCS1xbngqKQorKwkJY2FzZSAkYmFzaWNfbWFjaGluZSBpbgor KwkJICAgIHg4Ni0qIHwgaSo4Ni0qKQorKwkJCTs7CisrCQkgICAgKikKKysJCQlvcz0tbnRvJG9z CisrCQkJOzsKKysJCWVzYWMKKysJCTs7CisrCS1udG8tcW54KikKKysJCTs7CisrCS1udG8qKQor KwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG50b3xudG8tcW54fCdgCisrCQk7OworKwktc2lt IHwgLWVzMTgwMCogfCAtaG1zKiB8IC14cmF5IHwgLW9zNjhrKiB8IC1ub25lKiB8IC12ODhyKiBc CisrCSAgICAgIHwgLXdpbmRvd3MqIHwgLW9zeCB8IC1hYnVnIHwgLW5ldHdhcmUqIHwgLW9zOSog fCAtYmVvcyogfCAtaGFpa3UqIFwKKysJICAgICAgfCAtbWFjb3MqIHwgLW1wdyogfCAtbWFnaWMq IHwgLW1taXh3YXJlKiB8IC1tb245NjAqIHwgLWxuZXdzKikKKysJCTs7CisrCS1tYWMqKQorKwkJ b3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG1hY3xtYWNvc3wnYAorKwkJOzsKKysJLWxpbnV4LWRp ZXRsaWJjKQorKwkJb3M9LWxpbnV4LWRpZXRsaWJjCisrCQk7OworKwktbGludXgqKQorKwkJb3M9 YGVjaG8gJG9zIHwgc2VkIC1lICdzfGxpbnV4fGxpbnV4LWdudXwnYAorKwkJOzsKKysJLXN1bm9z NSopCisrCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8c3Vub3M1fHNvbGFyaXMyfCdgCisrCQk7 OworKwktc3Vub3M2KikKKysJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzdW5vczZ8c29sYXJp czN8J2AKKysJCTs7CisrCS1vcGVuZWQqKQorKwkJb3M9LW9wZW5lZGl0aW9uCisrCQk7OworKyAg ICAgICAgLW9zNDAwKikKKysJCW9zPS1vczQwMAorKwkJOzsKKysJLXdpbmNlKikKKysJCW9zPS13 aW5jZQorKwkJOzsKKysJLW9zZnJvc2UqKQorKwkJb3M9LW9zZnJvc2UKKysJCTs7CisrCS1vc2Yq KQorKwkJb3M9LW9zZgorKwkJOzsKKysJLXV0ZWsqKQorKwkJb3M9LWJzZAorKwkJOzsKKysJLWR5 bml4KikKKysJCW9zPS1ic2QKKysJCTs7CisrCS1hY2lzKikKKysJCW9zPS1hb3MKKysJCTs7Cisr CS1hdGhlb3MqKQorKwkJb3M9LWF0aGVvcworKwkJOzsKKysJLXN5bGxhYmxlKikKKysJCW9zPS1z eWxsYWJsZQorKwkJOzsKKysJLTM4NmJzZCkKKysJCW9zPS1ic2QKKysJCTs7CisrCS1jdGl4KiB8 IC11dHMqKQorKwkJb3M9LXN5c3YKKysJCTs7CisrCS1ub3ZhKikKKysJCW9zPS1ydG1rLW5vdmEK KysJCTs7CisrCS1uczIgKQorKwkJb3M9LW5leHRzdGVwMgorKwkJOzsKKysJLW5zayopCisrCQlv cz0tbnNrCisrCQk7OworKwkjIFByZXNlcnZlIHRoZSB2ZXJzaW9uIG51bWJlciBvZiBzaW5peDUu CisrCS1zaW5peDUuKikKKysJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzaW5peHxzeXN2fCdg CisrCQk7OworKwktc2luaXgqKQorKwkJb3M9LXN5c3Y0CisrCQk7OworKyAgICAgICAgLXRwZiop CisrCQlvcz0tdHBmCisrCQk7OworKwktdHJpdG9uKikKKysJCW9zPS1zeXN2MworKwkJOzsKKysJ LW9zcyopCisrCQlvcz0tc3lzdjMKKysJCTs7CisrCS1zdnI0KQorKwkJb3M9LXN5c3Y0CisrCQk7 OworKwktc3ZyMykKKysJCW9zPS1zeXN2MworKwkJOzsKKysJLXN5c3ZyNCkKKysJCW9zPS1zeXN2 NAorKwkJOzsKKysJIyBUaGlzIG11c3QgY29tZSBhZnRlciAtc3lzdnI0LgorKwktc3lzdiopCisr CQk7OworKwktb3NlKikKKysJCW9zPS1vc2UKKysJCTs7CisrCS1lczE4MDAqKQorKwkJb3M9LW9z ZQorKwkJOzsKKysJLXhlbml4KQorKwkJb3M9LXhlbml4CisrCQk7OworKwktKm1pbnQgfCAtbWlu dFswLTldKiB8IC0qTWlOVCB8IC1NaU5UWzAtOV0qKQorKwkJb3M9LW1pbnQKKysJCTs7CisrCS1h cm9zKikKKysJCW9zPS1hcm9zCisrCQk7OworKwkta2FvcyopCisrCQlvcz0ta2FvcworKwkJOzsK KysJLXp2bW9lKQorKwkJb3M9LXp2bW9lCisrCQk7OworKwktZGljb3MqKQorKwkJb3M9LWRpY29z CisrCQk7OworKwktbm9uZSkKKysJCTs7CisrCSopCisrCQkjIEdldCByaWQgb2YgdGhlIGAtJyBh dCB0aGUgYmVnaW5uaW5nIG9mICRvcy4KKysJCW9zPWBlY2hvICRvcyB8IHNlZCAncy9bXi1dKi0v LydgCisrCQllY2hvIEludmFsaWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IHN5c3RlbSBcYCRvc1wn IG5vdCByZWNvZ25pemVkIDE+JjIKKysJCWV4aXQgMQorKwkJOzsKKytlc2FjCisrZWxzZQorKwor KyMgSGVyZSB3ZSBoYW5kbGUgdGhlIGRlZmF1bHQgb3BlcmF0aW5nIHN5c3RlbXMgdGhhdCBjb21l IHdpdGggdmFyaW91cyBtYWNoaW5lcy4KKysjIFRoZSB2YWx1ZSBzaG91bGQgYmUgd2hhdCB0aGUg dmVuZG9yIGN1cnJlbnRseSBzaGlwcyBvdXQgdGhlIGRvb3Igd2l0aCB0aGVpcgorKyMgbWFjaGlu ZSBvciBwdXQgYW5vdGhlciB3YXksIHRoZSBtb3N0IHBvcHVsYXIgb3MgcHJvdmlkZWQgd2l0aCB0 aGUgbWFjaGluZS4KKysKKysjIE5vdGUgdGhhdCBpZiB5b3UncmUgZ29pbmcgdG8gdHJ5IHRvIG1h dGNoICItTUFOVUZBQ1RVUkVSIiBoZXJlIChzYXksCisrIyAiLXN1biIpLCB0aGVuIHlvdSBoYXZl IHRvIHRlbGwgdGhlIGNhc2Ugc3RhdGVtZW50IHVwIHRvd2FyZHMgdGhlIHRvcAorKyMgdGhhdCBN QU5VRkFDVFVSRVIgaXNuJ3QgYW4gb3BlcmF0aW5nIHN5c3RlbS4gIE90aGVyd2lzZSwgY29kZSBh Ym92ZQorKyMgd2lsbCBzaWduYWwgYW4gZXJyb3Igc2F5aW5nIHRoYXQgTUFOVUZBQ1RVUkVSIGlz bid0IGFuIG9wZXJhdGluZworKyMgc3lzdGVtLCBhbmQgd2UnbGwgbmV2ZXIgZ2V0IHRvIHRoaXMg cG9pbnQuCisrCisrY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorKyAgICAgICAgc2NvcmUtKikKKysJ CW9zPS1lbGYKKysJCTs7CisrICAgICAgICBzcHUtKikKKysJCW9zPS1lbGYKKysJCTs7CisrCSot YWNvcm4pCisrCQlvcz0tcmlzY2l4MS4yCisrCQk7OworKwlhcm0qLXJlYmVsKQorKwkJb3M9LWxp bnV4CisrCQk7OworKwlhcm0qLXNlbWkpCisrCQlvcz0tYW91dAorKwkJOzsKKysgICAgICAgIGM0 eC0qIHwgdGljNHgtKikKKysgICAgICAgIAlvcz0tY29mZgorKwkJOzsKKysJIyBUaGlzIG11c3Qg Y29tZSBiZWZvcmUgdGhlICotZGVjIGVudHJ5LgorKwlwZHAxMC0qKQorKwkJb3M9LXRvcHMyMAor KwkJOzsKKysJcGRwMTEtKikKKysJCW9zPS1ub25lCisrCQk7OworKwkqLWRlYyB8IHZheC0qKQor KwkJb3M9LXVsdHJpeDQuMgorKwkJOzsKKysJbTY4Ki1hcG9sbG8pCisrCQlvcz0tZG9tYWluCisr CQk7OworKwlpMzg2LXN1bikKKysJCW9zPS1zdW5vczQuMC4yCisrCQk7OworKwltNjgwMDAtc3Vu KQorKwkJb3M9LXN1bm9zMworKwkJIyBUaGlzIGFsc28gZXhpc3RzIGluIHRoZSBjb25maWd1cmUg cHJvZ3JhbSwgYnV0IHdhcyBub3QgdGhlCisrCQkjIGRlZmF1bHQuCisrCQkjIG9zPS1zdW5vczQK KysJCTs7CisrCW02OCotY2lzY28pCisrCQlvcz0tYW91dAorKwkJOzsKKysgICAgICAgIG1lcC0q KQorKwkJb3M9LWVsZgorKwkJOzsKKysJbWlwcyotY2lzY28pCisrCQlvcz0tZWxmCisrCQk7Owor KwltaXBzKi0qKQorKwkJb3M9LWVsZgorKwkJOzsKKysJb3IzMi0qKQorKwkJb3M9LWNvZmYKKysJ CTs7CisrCSotdHRpKQkjIG11c3QgYmUgYmVmb3JlIHNwYXJjIGVudHJ5IG9yIHdlIGdldCB0aGUg d3Jvbmcgb3MuCisrCQlvcz0tc3lzdjMKKysJCTs7CisrCXNwYXJjLSogfCAqLXN1bikKKysJCW9z PS1zdW5vczQuMS4xCisrCQk7OworKwkqLWJlKQorKwkJb3M9LWJlb3MKKysJCTs7CisrCSotaGFp a3UpCisrCQlvcz0taGFpa3UKKysJCTs7CisrCSotaWJtKQorKwkJb3M9LWFpeAorKwkJOzsKKysg ICAgCSota251dGgpCisrCQlvcz0tbW1peHdhcmUKKysJCTs7CisrCSotd2VjKQorKwkJb3M9LXBy b2VsZgorKwkJOzsKKysJKi13aW5ib25kKQorKwkJb3M9LXByb2VsZgorKwkJOzsKKysJKi1va2kp CisrCQlvcz0tcHJvZWxmCisrCQk7OworKwkqLWhwKQorKwkJb3M9LWhwdXgKKysJCTs7CisrCSot aGl0YWNoaSkKKysJCW9zPS1oaXV4CisrCQk7OworKwlpODYwLSogfCAqLWF0dCB8ICotbmNyIHwg Ki1hbHRvcyB8ICotbW90b3JvbGEgfCAqLWNvbnZlcmdlbnQpCisrCQlvcz0tc3lzdgorKwkJOzsK KysJKi1jYm0pCisrCQlvcz0tYW1pZ2FvcworKwkJOzsKKysJKi1kZykKKysJCW9zPS1kZ3V4Cisr CQk7OworKwkqLWRvbHBoaW4pCisrCQlvcz0tc3lzdjMKKysJCTs7CisrCW02OGstY2N1cikKKysJ CW9zPS1ydHUKKysJCTs7CisrCW04OGstb21yb24qKQorKwkJb3M9LWx1bmEKKysJCTs7CisrCSot bmV4dCApCisrCQlvcz0tbmV4dHN0ZXAKKysJCTs7CisrCSotc2VxdWVudCkKKysJCW9zPS1wdHgK KysJCTs7CisrCSotY3JkcykKKysJCW9zPS11bm9zCisrCQk7OworKwkqLW5zKQorKwkJb3M9LWdl bml4CisrCQk7OworKwlpMzcwLSopCisrCQlvcz0tbXZzCisrCQk7OworKwkqLW5leHQpCisrCQlv cz0tbmV4dHN0ZXAzCisrCQk7OworKwkqLWdvdWxkKQorKwkJb3M9LXN5c3YKKysJCTs7CisrCSot aGlnaGxldmVsKQorKwkJb3M9LWJzZAorKwkJOzsKKysJKi1lbmNvcmUpCisrCQlvcz0tYnNkCisr CQk7OworKwkqLXNnaSkKKysJCW9zPS1pcml4CisrCQk7OworKwkqLXNpZW1lbnMpCisrCQlvcz0t c3lzdjQKKysJCTs7CisrCSotbWFzc2NvbXApCisrCQlvcz0tcnR1CisrCQk7OworKwlmMzBbMDFd LWZ1aml0c3UgfCBmNzAwLWZ1aml0c3UpCisrCQlvcz0tdXhwdgorKwkJOzsKKysJKi1yb202OGsp CisrCQlvcz0tY29mZgorKwkJOzsKKysJKi0qYnVnKQorKwkJb3M9LWNvZmYKKysJCTs7CisrCSot YXBwbGUpCisrCQlvcz0tbWFjb3MKKysJCTs7CisrCSotYXRhcmkqKQorKwkJb3M9LW1pbnQKKysJ CTs7CisrCSopCisrCQlvcz0tbm9uZQorKwkJOzsKKytlc2FjCisrZmkKKysKKysjIEhlcmUgd2Ug aGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlIGtub3cgdGhlIG9zLCBhbmQgdGhlIENQVSB0eXBlLCBi dXQgbm90IHRoZQorKyMgbWFudWZhY3R1cmVyLiAgV2UgcGljayB0aGUgbG9naWNhbCBtYW51ZmFj dHVyZXIuCisrdmVuZG9yPXVua25vd24KKytjYXNlICRiYXNpY19tYWNoaW5lIGluCisrCSotdW5r bm93bikKKysJCWNhc2UgJG9zIGluCisrCQkJLXJpc2NpeCopCisrCQkJCXZlbmRvcj1hY29ybgor KwkJCQk7OworKwkJCS1zdW5vcyopCisrCQkJCXZlbmRvcj1zdW4KKysJCQkJOzsKKysJCQktY25r KnwtYWl4KikKKysJCQkJdmVuZG9yPWlibQorKwkJCQk7OworKwkJCS1iZW9zKikKKysJCQkJdmVu ZG9yPWJlCisrCQkJCTs7CisrCQkJLWhwdXgqKQorKwkJCQl2ZW5kb3I9aHAKKysJCQkJOzsKKysJ CQktbXBlaXgqKQorKwkJCQl2ZW5kb3I9aHAKKysJCQkJOzsKKysJCQktaGl1eCopCisrCQkJCXZl bmRvcj1oaXRhY2hpCisrCQkJCTs7CisrCQkJLXVub3MqKQorKwkJCQl2ZW5kb3I9Y3JkcworKwkJ CQk7OworKwkJCS1kZ3V4KikKKysJCQkJdmVuZG9yPWRnCisrCQkJCTs7CisrCQkJLWx1bmEqKQor KwkJCQl2ZW5kb3I9b21yb24KKysJCQkJOzsKKysJCQktZ2VuaXgqKQorKwkJCQl2ZW5kb3I9bnMK KysJCQkJOzsKKysJCQktbXZzKiB8IC1vcGVuZWQqKQorKwkJCQl2ZW5kb3I9aWJtCisrCQkJCTs7 CisrCQkJLW9zNDAwKikKKysJCQkJdmVuZG9yPWlibQorKwkJCQk7OworKwkJCS1wdHgqKQorKwkJ CQl2ZW5kb3I9c2VxdWVudAorKwkJCQk7OworKwkJCS10cGYqKQorKwkJCQl2ZW5kb3I9aWJtCisr CQkJCTs7CisrCQkJLXZ4c2ltKiB8IC12eHdvcmtzKiB8IC13aW5kaXNzKikKKysJCQkJdmVuZG9y PXdycworKwkJCQk7OworKwkJCS1hdXgqKQorKwkJCQl2ZW5kb3I9YXBwbGUKKysJCQkJOzsKKysJ CQktaG1zKikKKysJCQkJdmVuZG9yPWhpdGFjaGkKKysJCQkJOzsKKysJCQktbXB3KiB8IC1tYWNv cyopCisrCQkJCXZlbmRvcj1hcHBsZQorKwkJCQk7OworKwkJCS0qbWludCB8IC1taW50WzAtOV0q IHwgLSpNaU5UIHwgLU1pTlRbMC05XSopCisrCQkJCXZlbmRvcj1hdGFyaQorKwkJCQk7OworKwkJ CS12b3MqKQorKwkJCQl2ZW5kb3I9c3RyYXR1cworKwkJCQk7OworKwkJZXNhYworKwkJYmFzaWNf bWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAicy91bmtub3duLyR2ZW5kb3IvImAK KysJCTs7CisrZXNhYworKworK2VjaG8gJGJhc2ljX21hY2hpbmUkb3MKKytleGl0CisrCisrIyBM b2NhbCB2YXJpYWJsZXM6CisrIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3Rp bWUtc3RhbXApCisrIyB0aW1lLXN0YW1wLXN0YXJ0OiAidGltZXN0YW1wPSciCisrIyB0aW1lLXN0 YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQiCisrIyB0aW1lLXN0YW1wLWVuZDogIiciCisrIyBF bmQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NwcHVuaXQubTQgc29jaS0z LjAuMF90cmVwMzAwL2NvbmZpZy9jcHB1bml0Lm00CistLS0gc29jaS0zLjAuMF80LXBhY2svY29u ZmlnL2NwcHVuaXQubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NwcHVuaXQubTQJMjAxMC0wMS0yMyAxMzoyNzowNC4w MDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsOTMgQEAKKytkbmwKKytkbmwgQU1fUEFUSF9DUFBV TklUKE1JTklNVU0tVkVSU0lPTiwgW0FDVElPTi1JRi1GT1VORCBbLCBBQ1RJT04tSUYtTk9ULUZP VU5EXV0pCisrZG5sCisrQUNfREVGVU4oW0FNX1BBVEhfQ1BQVU5JVF0sCisrWworKworK0FDX0FS R19XSVRIKGNwcHVuaXQtcHJlZml4LFsgIC0td2l0aC1jcHB1bml0LXByZWZpeD1QRlggICBQcmVm aXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKV0sCisrICAgICAgICAgICAg Y3BwdW5pdF9jb25maWdfcHJlZml4PSIkd2l0aHZhbCIsIGNwcHVuaXRfY29uZmlnX3ByZWZpeD0i IikKKytBQ19BUkdfV0lUSChjcHB1bml0LWV4ZWMtcHJlZml4LFsgIC0td2l0aC1jcHB1bml0LWV4 ZWMtcHJlZml4PVBGWCAgRXhlYyBwcmVmaXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9w dGlvbmFsKV0sCisrICAgICAgICAgICAgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9IiR3aXRo dmFsIiwgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9IiIpCisrCisrICBpZiB0ZXN0IHgkY3Bw dW5pdF9jb25maWdfZXhlY19wcmVmaXggIT0geCA7IHRoZW4KKysgICAgIGNwcHVuaXRfY29uZmln X2FyZ3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tZXhlYy1wcmVmaXg9JGNwcHVuaXRfY29uZmln X2V4ZWNfcHJlZml4IgorKyAgICAgaWYgdGVzdCB4JHtDUFBVTklUX0NPTkZJRytzZXR9ICE9IHhz ZXQgOyB0aGVuCisrICAgICAgICBDUFBVTklUX0NPTkZJRz0kY3BwdW5pdF9jb25maWdfZXhlY19w cmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCisrICAgICBmaQorKyAgZmkKKysgIGlmIHRlc3QgeCRj cHB1bml0X2NvbmZpZ19wcmVmaXggIT0geCA7IHRoZW4KKysgICAgIGNwcHVuaXRfY29uZmlnX2Fy Z3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tcHJlZml4PSRjcHB1bml0X2NvbmZpZ19wcmVmaXgi CisrICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KKysg ICAgICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZpZ19wcmVmaXgvYmluL2NwcHVuaXQt Y29uZmlnCisrICAgICBmaQorKyAgZmkKKysKKysgIEFDX1BBVEhfUFJPRyhDUFBVTklUX0NPTkZJ RywgY3BwdW5pdC1jb25maWcsIG5vKQorKyAgY3BwdW5pdF92ZXJzaW9uX21pbj0kMQorKworKyAg QUNfTVNHX0NIRUNLSU5HKGZvciBDcHB1bml0IC0gdmVyc2lvbiA+PSAkY3BwdW5pdF92ZXJzaW9u X21pbikKKysgIG5vX2NwcHVuaXQ9IiIKKysgIGlmIHRlc3QgIiRDUFBVTklUX0NPTkZJRyIgPSAi bm8iIDsgdGhlbgorKyAgICBBQ19NU0dfUkVTVUxUKG5vKQorKyAgICBub19jcHB1bml0PXllcwor KyAgZWxzZQorKyAgICBDUFBVTklUX0NGTEFHUz1gJENQUFVOSVRfQ09ORklHIC0tY2ZsYWdzYAor KyAgICBDUFBVTklUX0xJQlM9YCRDUFBVTklUX0NPTkZJRyAtLWxpYnNgCisrICAgIENQUFVOSVRf VkVSU0lPTj1gJENQUFVOSVRfQ09ORklHIC0tdmVyc2lvbmAKKysKKysgICAgY3BwdW5pdF9tYWpv cl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCisrICAgICAgICAgICBzZWQgJ3Mv XChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDEvJ2AKKysgICAgY3BwdW5p dF9taW5vcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCisrICAgICAgICAgICBz ZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDIvJ2AKKysgICAg Y3BwdW5pdF9taWNyb192ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCisrICAgICAg ICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDMvJ2AK KysKKysgICAgY3BwdW5pdF9tYWpvcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBc CisrICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0q XCkvXDEvJ2AKKysgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9tYWpvcl9taW59IiA9ICJ4IiA7IHRo ZW4KKysgICAgICAgY3BwdW5pdF9tYWpvcl9taW49MAorKyAgICBmaQorKyAgICAKKysgICAgY3Bw dW5pdF9taW5vcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCisrICAgICAgICAg ICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDIvJ2AKKysg ICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9taW5vcl9taW59IiA9ICJ4IiA7IHRoZW4KKysgICAgICAg Y3BwdW5pdF9taW5vcl9taW49MAorKyAgICBmaQorKyAgICAKKysgICAgY3BwdW5pdF9taWNyb19t aW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChb WzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDMvJ2AKKysgICAgaWYgdGVzdCAi eCR7Y3BwdW5pdF9taWNyb19taW59IiA9ICJ4IiA7IHRoZW4KKysgICAgICAgY3BwdW5pdF9taWNy b19taW49MAorKyAgICBmaQorKworKyAgICBjcHB1bml0X3ZlcnNpb25fcHJvcGVyPWBleHByIFwK KysgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD4gJGNwcHVuaXRfbWFqb3JfbWluIFx8 IFwKKysgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWFqb3JfbWlu IFwmIFwKKysgICAgICAgICRjcHB1bml0X21pbm9yX3ZlcnNpb24gXD4gJGNwcHVuaXRfbWlub3Jf bWluIFx8IFwKKysgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWFq b3JfbWluIFwmIFwKKysgICAgICAgICRjcHB1bml0X21pbm9yX3ZlcnNpb24gXD0gJGNwcHVuaXRf bWlub3JfbWluIFwmIFwKKysgICAgICAgICRjcHB1bml0X21pY3JvX3ZlcnNpb24gXD49ICRjcHB1 bml0X21pY3JvX21pbiBgCisrCisrICAgIGlmIHRlc3QgIiRjcHB1bml0X3ZlcnNpb25fcHJvcGVy IiA9ICIxIiA7IHRoZW4KKysgICAgICBBQ19NU0dfUkVTVUxUKFskY3BwdW5pdF9tYWpvcl92ZXJz aW9uLiRjcHB1bml0X21pbm9yX3ZlcnNpb24uJGNwcHVuaXRfbWljcm9fdmVyc2lvbl0pCisrICAg IGVsc2UKKysgICAgICBBQ19NU0dfUkVTVUxUKG5vKQorKyAgICAgIG5vX2NwcHVuaXQ9eWVzCisr ICAgIGZpCisrICBmaQorKworKyAgaWYgdGVzdCAieCRub19jcHB1bml0IiA9IHggOyB0aGVuCisr ICAgICBpZmVsc2UoWyQyXSwgLCA6LCBbJDJdKSAgICAgCisrICBlbHNlCisrICAgICBDUFBVTklU X0NGTEFHUz0iIgorKyAgICAgQ1BQVU5JVF9MSUJTPSIiCisrICAgICBpZmVsc2UoWyQzXSwgLCA6 LCBbJDNdKQorKyAgZmkKKysKKysgIEFDX1NVQlNUKENQUFVOSVRfQ0ZMQUdTKQorKyAgQUNfU1VC U1QoQ1BQVU5JVF9MSUJTKQorKyAgQUNfU1VCU1QoQ1BQVU5JVF9WRVJTSU9OKQorK10pCisrCisr CisrCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2RlcGNvbXAgc29jaS0zLjAu MF90cmVwMzAwL2NvbmZpZy9kZXBjb21wCistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2Rl cGNvbXAJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4w X3RyZXAzMDAvY29uZmlnL2RlcGNvbXAJMjAxMS0wMi0wOCAyMjozOTo1Ny4wMDAwMDAwMDAgKzAx MDAKK0BAIC0wLDAgKzEsNjMwIEBACisrIyEgL2Jpbi9zaAorKyMgZGVwY29tcCAtIGNvbXBpbGUg YSBwcm9ncmFtIGdlbmVyYXRpbmcgZGVwZW5kZW5jaWVzIGFzIHNpZGUtZWZmZWN0cworKworK3Nj cmlwdHZlcnNpb249MjAwOS0wNC0yOC4yMTsgIyBVVEMKKysKKysjIENvcHlyaWdodCAoQykgMTk5 OSwgMjAwMCwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOSBGcmVlCisrIyBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK KysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChh dCB5b3VyIG9wdGlvbikKKysjIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyMgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKysKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIEFzIGEgc3BlY2lh bCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKKysj IGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMg YQorKyMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5 IGluY2x1ZGUgaXQgdW5kZXIKKysjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlv dSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKysKKysjIE9yaWdpbmFsbHkgd3Jp dHRlbiBieSBBbGV4YW5kcmUgT2xpdmEgPG9saXZhQGRjYy51bmljYW1wLmJyPi4KKysKKytjYXNl ICQxIGluCisrICAnJykKKysgICAgIGVjaG8gIiQwOiBObyBjb21tYW5kLiAgVHJ5IFxgJDAgLS1o ZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iIDE+JjIKKysgICAgIGV4aXQgMTsKKysgICAgIDs7 CisrICAtaCB8IC0taCopCisrICAgIGNhdCA8PFxFT0YKKytVc2FnZTogZGVwY29tcCBbLS1oZWxw XSBbLS12ZXJzaW9uXSBQUk9HUkFNIFtBUkdTXQorKworK1J1biBQUk9HUkFNUyBBUkdTIHRvIGNv bXBpbGUgYSBmaWxlLCBnZW5lcmF0aW5nIGRlcGVuZGVuY2llcworK2FzIHNpZGUtZWZmZWN0cy4K KysKKytFbnZpcm9ubWVudCB2YXJpYWJsZXM6CisrICBkZXBtb2RlICAgICBEZXBlbmRlbmN5IHRy YWNraW5nIG1vZGUuCisrICBzb3VyY2UgICAgICBTb3VyY2UgZmlsZSByZWFkIGJ5IGBQUk9HUkFN UyBBUkdTJy4KKysgIG9iamVjdCAgICAgIE9iamVjdCBmaWxlIG91dHB1dCBieSBgUFJPR1JBTVMg QVJHUycuCisrICBERVBESVIgICAgICBkaXJlY3Rvcnkgd2hlcmUgdG8gc3RvcmUgZGVwZW5kZW5j aWVzLgorKyAgZGVwZmlsZSAgICAgRGVwZW5kZW5jeSBmaWxlIHRvIG91dHB1dC4KKysgIHRtcGRl cGZpbGUgIFRlbXBvcmFyeSBmaWxlIHRvIHVzZSB3aGVuIG91dHB1dGluZyBkZXBlbmRlbmNpZXMu CisrICBsaWJ0b29sICAgICBXaGV0aGVyIGxpYnRvb2wgaXMgdXNlZCAoeWVzL25vKS4KKysKKytS ZXBvcnQgYnVncyB0byA8YnVnLWF1dG9tYWtlQGdudS5vcmc+LgorK0VPRgorKyAgICBleGl0ICQ/ CisrICAgIDs7CisrICAtdiB8IC0tdiopCisrICAgIGVjaG8gImRlcGNvbXAgJHNjcmlwdHZlcnNp b24iCisrICAgIGV4aXQgJD8KKysgICAgOzsKKytlc2FjCisrCisraWYgdGVzdCAteiAiJGRlcG1v ZGUiIHx8IHRlc3QgLXogIiRzb3VyY2UiIHx8IHRlc3QgLXogIiRvYmplY3QiOyB0aGVuCisrICBl Y2hvICJkZXBjb21wOiBWYXJpYWJsZXMgc291cmNlLCBvYmplY3QgYW5kIGRlcG1vZGUgbXVzdCBi ZSBzZXQiIDE+JjIKKysgIGV4aXQgMQorK2ZpCisrCisrIyBEZXBlbmRlbmNpZXMgZm9yIHN1Yi9i YXIubyBvciBzdWIvYmFyLm9iaiBnbyBpbnRvIHN1Yi8uZGVwcy9iYXIuUG8uCisrZGVwZmlsZT0k e2RlcGZpbGUtYGVjaG8gIiRvYmplY3QiIHwKKysgIHNlZCAnc3xbXlxcL10qJHwnJHtERVBESVIt LmRlcHN9Jy8mfDtzfFwuXChbXi5dKlwpJHwuUFwxfDtzfFBvYmokfFBvfCdgfQorK3RtcGRlcGZp bGU9JHt0bXBkZXBmaWxlLWBlY2hvICIkZGVwZmlsZSIgfCBzZWQgJ3MvXC5cKFteLl0qXCkkLy5U XDEvJ2B9CisrCisrcm0gLWYgIiR0bXBkZXBmaWxlIgorKworKyMgU29tZSBtb2RlcyB3b3JrIGp1 c3QgbGlrZSBvdGhlciBtb2RlcywgYnV0IHVzZSBkaWZmZXJlbnQgZmxhZ3MuICBXZQorKyMgcGFy YW1ldGVyaXplIGhlcmUsIGJ1dCBzdGlsbCBsaXN0IHRoZSBtb2RlcyBpbiB0aGUgYmlnIGNhc2Ug YmVsb3csCisrIyB0byBtYWtlIGRlcGVuZC5tNCBlYXNpZXIgdG8gd3JpdGUuICBOb3RlIHRoYXQg d2UgKmNhbm5vdCogdXNlIGEgY2FzZQorKyMgaGVyZSwgYmVjYXVzZSB0aGlzIGZpbGUgY2FuIG9u bHkgY29udGFpbiBvbmUgY2FzZSBzdGF0ZW1lbnQuCisraWYgdGVzdCAiJGRlcG1vZGUiID0gaHA7 IHRoZW4KKysgICMgSFAgY29tcGlsZXIgdXNlcyAtTSBhbmQgbm8gZXh0cmEgYXJnLgorKyAgZ2Nj ZmxhZz0tTQorKyAgZGVwbW9kZT1nY2MKKytmaQorKworK2lmIHRlc3QgIiRkZXBtb2RlIiA9IGRh c2hYbXN0ZG91dDsgdGhlbgorKyAgICMgVGhpcyBpcyBqdXN0IGxpa2UgZGFzaG1zdGRvdXQgd2l0 aCBhIGRpZmZlcmVudCBhcmd1bWVudC4KKysgICBkYXNobWZsYWc9LXhNCisrICAgZGVwbW9kZT1k YXNobXN0ZG91dAorK2ZpCisrCisrY3lncGF0aF91PSJjeWdwYXRoIC11IC1mIC0iCisraWYgdGVz dCAiJGRlcG1vZGUiID0gbXN2Y21zeXM7IHRoZW4KKysgICAjIFRoaXMgaXMganVzdCBsaWtlIG1z dmlzdWFsY3BwIGJ1dCB3L28gY3lncGF0aCB0cmFuc2xhdGlvbi4KKysgICAjIEp1c3QgY29udmVy dCB0aGUgYmFja3NsYXNoLWVzY2FwZWQgYmFja3NsYXNoZXMgdG8gc2luZ2xlIGZvcndhcmQKKysg ICAjIHNsYXNoZXMgdG8gc2F0aXNmeSBkZXBlbmQubTQKKysgICBjeWdwYXRoX3U9InNlZCBzLFxc XFxcXFxcLC8sZyIKKysgICBkZXBtb2RlPW1zdmlzdWFsY3BwCisrZmkKKysKKytjYXNlICIkZGVw bW9kZSIgaW4KKytnY2MzKQorKyMjIGdjYyAzIGltcGxlbWVudHMgZGVwZW5kZW5jeSB0cmFja2lu ZyB0aGF0IGRvZXMgZXhhY3RseSB3aGF0CisrIyMgd2Ugd2FudC4gIFlheSEgIE5vdGU6IGZvciBz b21lIHJlYXNvbiBsaWJ0b29sIDEuNCBkb2Vzbid0IGxpa2UKKysjIyBpdCBpZiAtTUQgLU1QIGNv bWVzIGFmdGVyIHRoZSAtTUYgc3R1ZmYuICBIbW0uCisrIyMgVW5mb3J0dW5hdGVseSwgRnJlZUJT RCBjODkgYWNjZXB0YW5jZSBvZiBmbGFncyBkZXBlbmRzIHVwb24KKysjIyB0aGUgY29tbWFuZCBs aW5lIGFyZ3VtZW50IG9yZGVyOyBzbyBhZGQgdGhlIGZsYWdzIHdoZXJlIHRoZXkKKysjIyBhcHBl YXIgaW4gZGVwZW5kMi5hbS4gIE5vdGUgdGhhdCB0aGUgc2xvd2Rvd24gaW5jdXJyZWQgaGVyZQor KyMjIGFmZmVjdHMgb25seSBjb25maWd1cmU6IGluIG1ha2VmaWxlcywgJUZBU1RERVAlIHNob3J0 Y3V0cyB0aGlzLgorKyAgZm9yIGFyZworKyAgZG8KKysgICAgY2FzZSAkYXJnIGluCisrICAgIC1j KSBzZXQgZm5vcmQgIiRAIiAtTVQgIiRvYmplY3QiIC1NRCAtTVAgLU1GICIkdG1wZGVwZmlsZSIg IiRhcmciIDs7CisrICAgICopICBzZXQgZm5vcmQgIiRAIiAiJGFyZyIgOzsKKysgICAgZXNhYwor KyAgICBzaGlmdCAjIGZub3JkCisrICAgIHNoaWZ0ICMgJGFyZworKyAgZG9uZQorKyAgIiRAIgor KyAgc3RhdD0kPworKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6CisrICBlbHNlCisrICAg IHJtIC1mICIkdG1wZGVwZmlsZSIKKysgICAgZXhpdCAkc3RhdAorKyAgZmkKKysgIG12ICIkdG1w ZGVwZmlsZSIgIiRkZXBmaWxlIgorKyAgOzsKKysKKytnY2MpCisrIyMgVGhlcmUgYXJlIHZhcmlv dXMgd2F5cyB0byBnZXQgZGVwZW5kZW5jeSBvdXRwdXQgZnJvbSBnY2MuICBIZXJlJ3MKKysjIyB3 aHkgd2UgcGljayB0aGlzIHJhdGhlciBvYnNjdXJlIG1ldGhvZDoKKysjIyAtIERvbid0IHdhbnQg dG8gdXNlIC1NRCBiZWNhdXNlIHdlJ2QgbGlrZSB0aGUgZGVwZW5kZW5jaWVzIHRvIGVuZAorKyMj ICAgdXAgaW4gYSBzdWJkaXIuICBIYXZpbmcgdG8gcmVuYW1lIGJ5IGhhbmQgaXMgdWdseS4KKysj IyAgIChXZSBtaWdodCBlbmQgdXAgZG9pbmcgdGhpcyBhbnl3YXkgdG8gc3VwcG9ydCBvdGhlciBj b21waWxlcnMuKQorKyMjIC0gVGhlIERFUEVOREVOQ0lFU19PVVRQVVQgZW52aXJvbm1lbnQgdmFy aWFibGUgbWFrZXMgZ2NjIGFjdCBsaWtlCisrIyMgICAtTU0sIG5vdCAtTSAoZGVzcGl0ZSB3aGF0 IHRoZSBkb2NzIHNheSkuCisrIyMgLSBVc2luZyAtTSBkaXJlY3RseSBtZWFucyBydW5uaW5nIHRo ZSBjb21waWxlciB0d2ljZSAoZXZlbiB3b3JzZQorKyMjICAgdGhhbiByZW5hbWluZykuCisrICBp ZiB0ZXN0IC16ICIkZ2NjZmxhZyI7IHRoZW4KKysgICAgZ2NjZmxhZz0tTUQsCisrICBmaQorKyAg IiRAIiAtV3AsIiRnY2NmbGFnJHRtcGRlcGZpbGUiCisrICBzdGF0PSQ/CisrICBpZiB0ZXN0ICRz dGF0IC1lcSAwOyB0aGVuIDoKKysgIGVsc2UKKysgICAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAg ICBleGl0ICRzdGF0CisrICBmaQorKyAgcm0gLWYgIiRkZXBmaWxlIgorKyAgZWNobyAiJG9iamVj dCA6IFxcIiA+ICIkZGVwZmlsZSIKKysgIGFscGhhPUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoKKysjIyBUaGUgc2Vjb25kIC1lIGV4cHJlc3Npb24g aGFuZGxlcyBET1Mtc3R5bGUgZmlsZSBuYW1lcyB3aXRoIGRyaXZlIGxldHRlcnMuCisrICBzZWQg LWUgJ3MvXlteOl0qOiAvIC8nIFwKKysgICAgICAtZSAncy9eWyckYWxwaGEnXTpcL1teOl0qOiAv IC8nIDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCisrIyMgVGhpcyBuZXh0IHBpZWNlIG9m IG1hZ2ljIGF2b2lkcyB0aGUgYGRlbGV0ZWQgaGVhZGVyIGZpbGUnIHByb2JsZW0uCisrIyMgVGhl IHByb2JsZW0gaXMgdGhhdCB3aGVuIGEgaGVhZGVyIGZpbGUgd2hpY2ggYXBwZWFycyBpbiBhIC5Q IGZpbGUKKysjIyBpcyBkZWxldGVkLCB0aGUgZGVwZW5kZW5jeSBjYXVzZXMgbWFrZSB0byBkaWUg KGJlY2F1c2UgdGhlcmUgaXMKKysjIyB0eXBpY2FsbHkgbm8gd2F5IHRvIHJlYnVpbGQgdGhlIGhl YWRlcikuICBXZSBhdm9pZCB0aGlzIGJ5IGFkZGluZworKyMjIGR1bW15IGRlcGVuZGVuY2llcyBm b3IgZWFjaCBoZWFkZXIgZmlsZS4gIFRvbyBiYWQgZ2NjIGRvZXNuJ3QgZG8KKysjIyB0aGlzIGZv ciB1cyBkaXJlY3RseS4KKysgIHRyICcgJyAnCisrJyA8ICIkdG1wZGVwZmlsZSIgfAorKyMjIFNv bWUgdmVyc2lvbnMgb2YgZ2NjIHB1dCBhIHNwYWNlIGJlZm9yZSB0aGUgYDonLiAgT24gdGhlIHRo ZW9yeQorKyMjIHRoYXQgdGhlIHNwYWNlIG1lYW5zIHNvbWV0aGluZywgd2UgYWRkIGEgc3BhY2Ug dG8gdGhlIG91dHB1dCBhcworKyMjIHdlbGwuCisrIyMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBV WCAxMC4yMCBzZWQgY2FuJ3QgcHJvY2VzcyB0aGlzIGludm9jYXRpb24KKysjIyBjb3JyZWN0bHku ICBCcmVha2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgor KyAgICBzZWQgLWUgJ3MvXlxcJC8vJyAtZSAnL14kL2QnIC1lICcvOiQvZCcgfCBzZWQgLWUgJ3Mv JC8gOi8nID4+ICIkZGVwZmlsZSIKKysgIHJtIC1mICIkdG1wZGVwZmlsZSIKKysgIDs7CisrCisr aHApCisrICAjIFRoaXMgY2FzZSBleGlzdHMgb25seSB0byBsZXQgZGVwZW5kLm00IGRvIGl0cyB3 b3JrLiAgSXQgd29ya3MgYnkKKysgICMgbG9va2luZyBhdCB0aGUgdGV4dCBvZiB0aGlzIHNjcmlw dC4gIFRoaXMgY2FzZSB3aWxsIG5ldmVyIGJlIHJ1biwKKysgICMgc2luY2UgaXQgaXMgY2hlY2tl ZCBmb3IgYWJvdmUuCisrICBleGl0IDEKKysgIDs7CisrCisrc2dpKQorKyAgaWYgdGVzdCAiJGxp YnRvb2wiID0geWVzOyB0aGVuCisrICAgICIkQCIgIi1XcCwtTUR1cGRhdGUsJHRtcGRlcGZpbGUi CisrICBlbHNlCisrICAgICIkQCIgLU1EdXBkYXRlICIkdG1wZGVwZmlsZSIKKysgIGZpCisrICBz dGF0PSQ/CisrICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKysgIGVsc2UKKysgICAgcm0g LWYgIiR0bXBkZXBmaWxlIgorKyAgICBleGl0ICRzdGF0CisrICBmaQorKyAgcm0gLWYgIiRkZXBm aWxlIgorKworKyAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuICAjIHllcywgdGhlIHNv dXJjZWZpbGUgZGVwZW5kIG9uIG90aGVyIGZpbGVzCisrICAgIGVjaG8gIiRvYmplY3QgOiBcXCIg PiAiJGRlcGZpbGUiCisrCisrICAgICMgQ2xpcCBvZmYgdGhlIGluaXRpYWwgZWxlbWVudCAodGhl IGRlcGVuZGVudCkuICBEb24ndCB0cnkgdG8gYmUKKysgICAgIyBjbGV2ZXIgYW5kIHJlcGxhY2Ug dGhpcyB3aXRoIHNlZCBjb2RlLCBhcyBJUklYIHNlZCB3b24ndCBoYW5kbGUKKysgICAgIyBsaW5l cyB3aXRoIG1vcmUgdGhhbiBhIGZpeGVkIG51bWJlciBvZiBjaGFyYWN0ZXJzICg0MDk2IGluCisr ICAgICMgSVJJWCA2LjIgc2VkLCA4MTkyIGluIElSSVggNi41KS4gIFdlIGFsc28gcmVtb3ZlIGNv bW1lbnQgbGluZXM7CisrICAgICMgdGhlIElSSVggY2MgYWRkcyBjb21tZW50cyBsaWtlIGAjOmZl YycgdG8gdGhlIGVuZCBvZiB0aGUKKysgICAgIyBkZXBlbmRlbmN5IGxpbmUuCisrICAgIHRyICcg JyAnCisrJyA8ICIkdG1wZGVwZmlsZSIgXAorKyAgICB8IHNlZCAtZSAncy9eLipcLm86Ly8nIC1l ICdzLyMuKiQvLycgLWUgJy9eJC8gZCcgfCBcCisrICAgIHRyICcKKysnICcgJyA+PiAiJGRlcGZp bGUiCisrICAgIGVjaG8gPj4gIiRkZXBmaWxlIgorKworKyAgICAjIFRoZSBzZWNvbmQgcGFzcyBn ZW5lcmF0ZXMgYSBkdW1teSBlbnRyeSBmb3IgZWFjaCBoZWFkZXIgZmlsZS4KKysgICAgdHIgJyAn ICcKKysnIDwgIiR0bXBkZXBmaWxlIiBcCisrICAgfCBzZWQgLWUgJ3MvXi4qXC5vOi8vJyAtZSAn cy8jLiokLy8nIC1lICcvXiQvIGQnIC1lICdzLyQvOi8nIFwKKysgICA+PiAiJGRlcGZpbGUiCisr ICBlbHNlCisrICAgICMgVGhlIHNvdXJjZWZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZGVwZW5k ZW5jaWVzLCBzbyBqdXN0CisrICAgICMgc3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRvIGF2 b2lkIGVycm9ycyB3aXRoIHRoZSBNYWtlZmlsZQorKyAgICAjICJpbmNsdWRlIGJhc2VuYW1lLlBs byIgc2NoZW1lLgorKyAgICBlY2hvICIjZHVtbXkiID4gIiRkZXBmaWxlIgorKyAgZmkKKysgIHJt IC1mICIkdG1wZGVwZmlsZSIKKysgIDs7CisrCisrYWl4KQorKyAgIyBUaGUgQyBmb3IgQUlYIENv bXBpbGVyIHVzZXMgLU0gYW5kIG91dHB1dHMgdGhlIGRlcGVuZGVuY2llcworKyAgIyBpbiBhIC51 IGZpbGUuICBJbiBvbGRlciB2ZXJzaW9ucywgdGhpcyBmaWxlIGFsd2F5cyBsaXZlcyBpbiB0aGUK KysgICMgY3VycmVudCBkaXJlY3RvcnkuICBBbHNvLCB0aGUgQUlYIGNvbXBpbGVyIHB1dHMgYCRv YmplY3Q6JyBhdCB0aGUKKysgICMgc3RhcnQgb2YgZWFjaCBsaW5lOyAkb2JqZWN0IGRvZXNuJ3Qg aGF2ZSBkaXJlY3RvcnkgaW5mb3JtYXRpb24uCisrICAjIFZlcnNpb24gNiB1c2VzIHRoZSBkaXJl Y3RvcnkgaW4gYm90aCBjYXNlcy4KKysgIGRpcj1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8 L1teL10qJHwvfCdgCisrICB0ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRpcj0KKysgIGJh c2U9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfF4uKi98fCcgLWUgJ3MvXC5vJC8vJyAtZSAn cy9cLmxvJC8vJ2AKKysgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorKyAgICB0bXBk ZXBmaWxlMT0kZGlyJGJhc2UudQorKyAgICB0bXBkZXBmaWxlMj0kYmFzZS51CisrICAgIHRtcGRl cGZpbGUzPSRkaXIubGlicy8kYmFzZS51CisrICAgICIkQCIgLVdjLC1NCisrICBlbHNlCisrICAg IHRtcGRlcGZpbGUxPSRkaXIkYmFzZS51CisrICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS51Cisr ICAgIHRtcGRlcGZpbGUzPSRkaXIkYmFzZS51CisrICAgICIkQCIgLU0KKysgIGZpCisrICBzdGF0 PSQ/CisrCisrICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKysgIGVsc2UKKysgICAgcm0g LWYgIiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIgIiR0bXBkZXBmaWxlMyIKKysgICAgZXhp dCAkc3RhdAorKyAgZmkKKysKKysgIGZvciB0bXBkZXBmaWxlIGluICIkdG1wZGVwZmlsZTEiICIk dG1wZGVwZmlsZTIiICIkdG1wZGVwZmlsZTMiCisrICBkbworKyAgICB0ZXN0IC1mICIkdG1wZGVw ZmlsZSIgJiYgYnJlYWsKKysgIGRvbmUKKysgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhl bgorKyAgICAjIEVhY2ggbGluZSBpcyBvZiB0aGUgZm9ybSBgZm9vLm86IGRlcGVuZGVudC5oJy4K KysgICAgIyBEbyB0d28gcGFzc2VzLCBvbmUgdG8ganVzdCBjaGFuZ2UgdGhlc2UgdG8KKysgICAg IyBgJG9iamVjdDogZGVwZW5kZW50LmgnIGFuZCBvbmUgdG8gc2ltcGx5IGBkZXBlbmRlbnQuaDon LgorKyAgICBzZWQgLWUgInMsXi4qXC5bYS16XSo6LCRvYmplY3Q6LCIgPCAiJHRtcGRlcGZpbGUi ID4gIiRkZXBmaWxlIgorKyAgICAjIFRoYXQncyBhIHRhYiBhbmQgYSBzcGFjZSBpbiB0aGUgW10u CisrICAgIHNlZCAtZSAncyxeLipcLlthLXpdKjpbCSBdKiwsJyAtZSAncywkLDosJyA8ICIkdG1w ZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgorKyAgZWxzZQorKyAgICAjIFRoZSBzb3VyY2VmaWxlIGRv ZXMgbm90IGNvbnRhaW4gYW55IGRlcGVuZGVuY2llcywgc28ganVzdAorKyAgICAjIHN0b3JlIGEg ZHVtbXkgY29tbWVudCBsaW5lLCB0byBhdm9pZCBlcnJvcnMgd2l0aCB0aGUgTWFrZWZpbGUKKysg ICAgIyAiaW5jbHVkZSBiYXNlbmFtZS5QbG8iIHNjaGVtZS4KKysgICAgZWNobyAiI2R1bW15IiA+ ICIkZGVwZmlsZSIKKysgIGZpCisrICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICA7OworKworK2lj YykKKysgICMgSW50ZWwncyBDIGNvbXBpbGVyIHVuZGVyc3RhbmRzIGAtTUQgLU1GIGZpbGUnLiAg SG93ZXZlciBvbgorKyAgIyAgICBpY2MgLU1EIC1NRiBmb28uZCAtYyAtbyBzdWIvZm9vLm8gc3Vi L2Zvby5jCisrICAjIElDQyA3LjAgd2lsbCBmaWxsIGZvby5kIHdpdGggc29tZXRoaW5nIGxpa2UK KysgICMgICAgZm9vLm86IHN1Yi9mb28uYworKyAgIyAgICBmb28ubzogc3ViL2Zvby5oCisrICAj IHdoaWNoIGlzIHdyb25nLiAgV2Ugd2FudDoKKysgICMgICAgc3ViL2Zvby5vOiBzdWIvZm9vLmMK KysgICMgICAgc3ViL2Zvby5vOiBzdWIvZm9vLmgKKysgICMgICAgc3ViL2Zvby5jOgorKyAgIyAg ICBzdWIvZm9vLmg6CisrICAjIElDQyA3LjEgd2lsbCBvdXRwdXQKKysgICMgICAgZm9vLm86IHN1 Yi9mb28uYyBzdWIvZm9vLmgKKysgICMgYW5kIHdpbGwgd3JhcCBsb25nIGxpbmVzIHVzaW5nIFwg OgorKyAgIyAgICBmb28ubzogc3ViL2Zvby5jIC4uLiBcCisrICAjICAgICBzdWIvZm9vLmggLi4u IFwKKysgICMgICAgIC4uLgorKworKyAgIiRAIiAtTUQgLU1GICIkdG1wZGVwZmlsZSIKKysgIHN0 YXQ9JD8KKysgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgorKyAgZWxzZQorKyAgICBybSAt ZiAiJHRtcGRlcGZpbGUiCisrICAgIGV4aXQgJHN0YXQKKysgIGZpCisrICBybSAtZiAiJGRlcGZp bGUiCisrICAjIEVhY2ggbGluZSBpcyBvZiB0aGUgZm9ybSBgZm9vLm86IGRlcGVuZGVudC5oJywK KysgICMgb3IgYGZvby5vOiBkZXAxLmggZGVwMi5oIFwnLCBvciBgIGRlcDMuaCBkZXA0LmggXCcu CisrICAjIERvIHR3byBwYXNzZXMsIG9uZSB0byBqdXN0IGNoYW5nZSB0aGVzZSB0bworKyAgIyBg JG9iamVjdDogZGVwZW5kZW50LmgnIGFuZCBvbmUgdG8gc2ltcGx5IGBkZXBlbmRlbnQuaDonLgor KyAgc2VkICJzLF5bXjpdKjosJG9iamVjdCA6LCIgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxl IgorKyAgIyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNz IHRoaXMgaW52b2NhdGlvbgorKyAgIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRvIHR3byBz ZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgorKyAgc2VkICdzLF5bXjpdKjogXCguKlwp JCxcMSw7cy9eXFwkLy87L14kL2Q7LzokL2QnIDwgIiR0bXBkZXBmaWxlIiB8CisrICAgIHNlZCAt ZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgOzsK KysKKytocDIpCisrICAjIFRoZSAiaHAiIHN0YW56YSBhYm92ZSBkb2VzIG5vdCB3b3JrIHdpdGgg YUNDIChDKyspIGFuZCBIUCdzIGlhNjQKKysgICMgY29tcGlsZXJzLCB3aGljaCBoYXZlIGludGVn cmF0ZWQgcHJlcHJvY2Vzc29ycy4gIFRoZSBjb3JyZWN0IG9wdGlvbgorKyAgIyB0byB1c2Ugd2l0 aCB0aGVzZSBpcyArTWFrZWQ7IGl0IHdyaXRlcyBkZXBlbmRlbmNpZXMgdG8gYSBmaWxlIG5hbWVk CisrICAjICdmb28uZCcsIHdoaWNoIGxhbmRzIG5leHQgdG8gdGhlIG9iamVjdCBmaWxlLCB3aGVy ZXZlciB0aGF0CisrICAjIGhhcHBlbnMgdG8gYmUuCisrICAjIE11Y2ggb2YgdGhpcyBpcyBzaW1p bGFyIHRvIHRoZSB0cnU2NCBjYXNlOyBzZWUgY29tbWVudHMgdGhlcmUuCisrICBkaXI9YGVjaG8g IiRvYmplY3QiIHwgc2VkIC1lICdzfC9bXi9dKiR8L3wnYAorKyAgdGVzdCAieCRkaXIiID0gIngk b2JqZWN0IiAmJiBkaXI9CisrICBiYXNlPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiov fHwnIC1lICdzL1wubyQvLycgLWUgJ3MvXC5sbyQvLydgCisrICBpZiB0ZXN0ICIkbGlidG9vbCIg PSB5ZXM7IHRoZW4KKysgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLmQKKysgICAgdG1wZGVwZmls ZTI9JGRpci5saWJzLyRiYXNlLmQKKysgICAgIiRAIiAtV2MsK01ha2VkCisrICBlbHNlCisrICAg IHRtcGRlcGZpbGUxPSRkaXIkYmFzZS5kCisrICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS5kCisr ICAgICIkQCIgK01ha2VkCisrICBmaQorKyAgc3RhdD0kPworKyAgaWYgdGVzdCAkc3RhdCAtZXEg MDsgdGhlbiA6CisrICBlbHNlCisrICAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZp bGUyIgorKyAgICAgZXhpdCAkc3RhdAorKyAgZmkKKysKKysgIGZvciB0bXBkZXBmaWxlIGluICIk dG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiCisrICBkbworKyAgICB0ZXN0IC1mICIkdG1wZGVw ZmlsZSIgJiYgYnJlYWsKKysgIGRvbmUKKysgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhl bgorKyAgICBzZWQgLWUgInMsXi4qXC5bYS16XSo6LCRvYmplY3Q6LCIgIiR0bXBkZXBmaWxlIiA+ ICIkZGVwZmlsZSIKKysgICAgIyBBZGQgYGRlcGVuZGVudC5oOicgbGluZXMuCisrICAgIHNlZCAt bmUgJzIsJHsKKysJICAgICAgIHMvXiAqLy8KKysJICAgICAgIHMvIFxcKiQvLworKwkgICAgICAg cy8kLzovCisrCSAgICAgICBwCisrCSAgICAgfScgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUi CisrICBlbHNlCisrICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCisrICBmaQorKyAgcm0g LWYgIiR0bXBkZXBmaWxlIiAiJHRtcGRlcGZpbGUyIgorKyAgOzsKKysKKyt0cnU2NCkKKysgICAj IFRoZSBUcnU2NCBjb21waWxlciB1c2VzIC1NRCB0byBnZW5lcmF0ZSBkZXBlbmRlbmNpZXMgYXMg YSBzaWRlCisrICAgIyBlZmZlY3QuICBgY2MgLU1EIC1vIGZvby5vIC4uLicgcHV0cyB0aGUgZGVw ZW5kZW5jaWVzIGludG8gYGZvby5vLmQnLgorKyAgICMgQXQgbGVhc3Qgb24gQWxwaGEvUmVkaGF0 IDYuMSwgQ29tcGFxIENDQyBWNi4yLTUwNCBzZWVtcyB0byBwdXQKKysgICAjIGRlcGVuZGVuY2ll cyBpbiBgZm9vLmQnIGluc3RlYWQsIHNvIHdlIGNoZWNrIGZvciB0aGF0IHRvby4KKysgICAjIFN1 YmRpcmVjdG9yaWVzIGFyZSByZXNwZWN0ZWQuCisrICAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNl ZCAtZSAnc3wvW14vXSokfC98J2AKKysgICB0ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRp cj0KKysgICBiYXNlPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiovfHwnIC1lICdzL1wu byQvLycgLWUgJ3MvXC5sbyQvLydgCisrCisrICAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0 aGVuCisrICAgICAgIyBXaXRoIFRydTY0IGNjLCBzaGFyZWQgb2JqZWN0cyBjYW4gYWxzbyBiZSB1 c2VkIHRvIG1ha2UgYQorKyAgICAgICMgc3RhdGljIGxpYnJhcnkuICBUaGlzIG1lY2hhbmlzbSBp cyB1c2VkIGluIGxpYnRvb2wgMS40IHNlcmllcyB0bworKyAgICAgICMgaGFuZGxlIGJvdGggc2hh cmVkIGFuZCBzdGF0aWMgbGlicmFyaWVzIGluIGEgc2luZ2xlIGNvbXBpbGF0aW9uLgorKyAgICAg ICMgV2l0aCBsaWJ0b29sIDEuNCwgZGVwZW5kZW5jaWVzIHdlcmUgb3V0cHV0IGluICRkaXIubGli cy8kYmFzZS5sby5kLgorKyAgICAgICMKKysgICAgICAjIFdpdGggbGlidG9vbCAxLjUgdGhpcyBl eGNlcHRpb24gd2FzIHJlbW92ZWQsIGFuZCBsaWJ0b29sIG5vdworKyAgICAgICMgZ2VuZXJhdGVz IDIgc2VwYXJhdGUgb2JqZWN0cyBmb3IgdGhlIDIgbGlicmFyaWVzLiAgVGhlc2UgdHdvCisrICAg ICAgIyBjb21waWxhdGlvbnMgb3V0cHV0IGRlcGVuZGVuY2llcyBpbiAkZGlyLmxpYnMvJGJhc2Uu by5kIGFuZAorKyAgICAgICMgaW4gJGRpciRiYXNlLm8uZC4gIFdlIGhhdmUgdG8gY2hlY2sgZm9y IGJvdGggZmlsZXMsIGJlY2F1c2UKKysgICAgICAjIG9uZSBvZiB0aGUgdHdvIGNvbXBpbGF0aW9u cyBjYW4gYmUgZGlzYWJsZWQuICBXZSBzaG91bGQgcHJlZmVyCisrICAgICAgIyAkZGlyJGJhc2Uu by5kIG92ZXIgJGRpci5saWJzLyRiYXNlLm8uZCBiZWNhdXNlIHRoZSBsYXR0ZXIgaXMKKysgICAg ICAjIGF1dG9tYXRpY2FsbHkgY2xlYW5lZCB3aGVuIC5saWJzLyBpcyBkZWxldGVkLCB3aGlsZSBp Z25vcmluZworKyAgICAgICMgdGhlIGZvcm1lciB3b3VsZCBjYXVzZSBhIGRpc3RjbGVhbmNoZWNr IHBhbmljLgorKyAgICAgIHRtcGRlcGZpbGUxPSRkaXIubGlicy8kYmFzZS5sby5kICAgIyBsaWJ0 b29sIDEuNAorKyAgICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS5vLmQgICAgICAgICAgIyBsaWJ0 b29sIDEuNQorKyAgICAgIHRtcGRlcGZpbGUzPSRkaXIubGlicy8kYmFzZS5vLmQgICAgIyBsaWJ0 b29sIDEuNQorKyAgICAgIHRtcGRlcGZpbGU0PSRkaXIubGlicy8kYmFzZS5kICAgICAgIyBDb21w YXEgQ0NDIFY2LjItNTA0CisrICAgICAgIiRAIiAtV2MsLU1ECisrICAgZWxzZQorKyAgICAgIHRt cGRlcGZpbGUxPSRkaXIkYmFzZS5vLmQKKysgICAgICB0bXBkZXBmaWxlMj0kZGlyJGJhc2UuZAor KyAgICAgIHRtcGRlcGZpbGUzPSRkaXIkYmFzZS5kCisrICAgICAgdG1wZGVwZmlsZTQ9JGRpciRi YXNlLmQKKysgICAgICAiJEAiIC1NRAorKyAgIGZpCisrCisrICAgc3RhdD0kPworKyAgIGlmIHRl c3QgJHN0YXQgLWVxIDA7IHRoZW4gOgorKyAgIGVsc2UKKysgICAgICBybSAtZiAiJHRtcGRlcGZp bGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIiAiJHRtcGRlcGZpbGU0IgorKyAgICAg IGV4aXQgJHN0YXQKKysgICBmaQorKworKyAgIGZvciB0bXBkZXBmaWxlIGluICIkdG1wZGVwZmls ZTEiICIkdG1wZGVwZmlsZTIiICIkdG1wZGVwZmlsZTMiICIkdG1wZGVwZmlsZTQiCisrICAgZG8K KysgICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhaworKyAgIGRvbmUKKysgICBpZiB0 ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4KKysgICAgICBzZWQgLWUgInMsXi4qXC5bYS16XSo6 LCRvYmplY3Q6LCIgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAgICAgICMgVGhhdCdz IGEgdGFiIGFuZCBhIHNwYWNlIGluIHRoZSBbXS4KKysgICAgICBzZWQgLWUgJ3MsXi4qXC5bYS16 XSo6WwkgXSosLCcgLWUgJ3MsJCw6LCcgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKysg ICBlbHNlCisrICAgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKKysgICBmaQorKyAgIHJt IC1mICIkdG1wZGVwZmlsZSIKKysgICA7OworKworKyNub3NpZGVlZmZlY3QpCisrICAjIFRoaXMg Y29tbWVudCBhYm92ZSBpcyB1c2VkIGJ5IGF1dG9tYWtlIHRvIHRlbGwgc2lkZS1lZmZlY3QKKysg ICMgZGVwZW5kZW5jeSB0cmFja2luZyBtZWNoYW5pc21zIGZyb20gc2xvd2VyIG9uZXMuCisrCisr ZGFzaG1zdGRvdXQpCisrICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRo aXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKKysgICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVwcm9j ZXNzZWQgZmlsZSB0byBzdGRvdXQsIHJlZ2FyZGxlc3Mgb2YgLW8uCisrICAiJEAiIHx8IGV4aXQg JD8KKysKKysgICMgUmVtb3ZlIHRoZSBjYWxsIHRvIExpYnRvb2wuCisrICBpZiB0ZXN0ICIkbGli dG9vbCIgPSB5ZXM7IHRoZW4KKysgICAgd2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1jb21w aWxlJzsgZG8KKysgICAgICBzaGlmdAorKyAgICBkb25lCisrICAgIHNoaWZ0CisrICBmaQorKwor KyAgIyBSZW1vdmUgYC1vICRvYmplY3QnLgorKyAgSUZTPSIgIgorKyAgZm9yIGFyZworKyAgZG8K KysgICAgY2FzZSAkYXJnIGluCisrICAgIC1vKQorKyAgICAgIHNoaWZ0CisrICAgICAgOzsKKysg ICAgJG9iamVjdCkKKysgICAgICBzaGlmdAorKyAgICAgIDs7CisrICAgICopCisrICAgICAgc2V0 IGZub3JkICIkQCIgIiRhcmciCisrICAgICAgc2hpZnQgIyBmbm9yZAorKyAgICAgIHNoaWZ0ICMg JGFyZworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGRvbmUKKysKKysgIHRlc3QgLXogIiRkYXNo bWZsYWciICYmIGRhc2htZmxhZz0tTQorKyAgIyBSZXF1aXJlIGF0IGxlYXN0IHR3byBjaGFyYWN0 ZXJzIGJlZm9yZSBzZWFyY2hpbmcgZm9yIGA6JworKyAgIyBpbiB0aGUgdGFyZ2V0IG5hbWUuICBU aGlzIGlzIHRvIGNvcGUgd2l0aCBET1Mtc3R5bGUgZmlsZW5hbWVzOgorKyAgIyBhIGRlcGVuZGVu Y3kgc3VjaCBhcyBgYzovZm9vL2JhcicgY291bGQgYmUgc2VlbiBhcyB0YXJnZXQgYGMnIG90aGVy d2lzZS4KKysgICIkQCIgJGRhc2htZmxhZyB8CisrICAgIHNlZCAnczpeWyAgXSpbXjogXVteOl1b XjpdKlw6WyAgICBdKjonIiRvYmplY3QiJ1w6IDonID4gIiR0bXBkZXBmaWxlIgorKyAgcm0gLWYg IiRkZXBmaWxlIgorKyAgY2F0IDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKKysgIHRyICcg JyAnCisrJyA8ICIkdG1wZGVwZmlsZSIgfCBcCisrIyMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBV WCAxMC4yMCBzZWQgY2FuJ3QgcHJvY2VzcyB0aGlzIGludm9jYXRpb24KKysjIyBjb3JyZWN0bHku ICBCcmVha2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgor KyAgICBzZWQgLWUgJ3MvXlxcJC8vJyAtZSAnL14kL2QnIC1lICcvOiQvZCcgfCBzZWQgLWUgJ3Mv JC8gOi8nID4+ICIkZGVwZmlsZSIKKysgIHJtIC1mICIkdG1wZGVwZmlsZSIKKysgIDs7CisrCisr ZGFzaFhtc3Rkb3V0KQorKyAgIyBUaGlzIGNhc2Ugb25seSBleGlzdHMgdG8gc2F0aXNmeSBkZXBl bmQubTQuICBJdCBpcyBuZXZlciBhY3R1YWxseQorKyAgIyBydW4sIGFzIHRoaXMgbW9kZSBpcyBz cGVjaWFsbHkgcmVjb2duaXplZCBpbiB0aGUgcHJlYW1ibGUuCisrICBleGl0IDEKKysgIDs7Cisr CisrbWFrZWRlcGVuZCkKKysgICIkQCIgfHwgZXhpdCAkPworKyAgIyBSZW1vdmUgYW55IExpYnRv b2wgY2FsbAorKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisrICAgIHdoaWxlIHRl c3QgIlgkMSIgIT0gJ1gtLW1vZGU9Y29tcGlsZSc7IGRvCisrICAgICAgc2hpZnQKKysgICAgZG9u ZQorKyAgICBzaGlmdAorKyAgZmkKKysgICMgWCBtYWtlZGVwZW5kCisrICBzaGlmdAorKyAgY2xl YXJlZD1ubyBlYXQ9bm8KKysgIGZvciBhcmcKKysgIGRvCisrICAgIGNhc2UgJGNsZWFyZWQgaW4K KysgICAgbm8pCisrICAgICAgc2V0ICIiOyBzaGlmdAorKyAgICAgIGNsZWFyZWQ9eWVzIDs7Cisr ICAgIGVzYWMKKysgICAgaWYgdGVzdCAkZWF0ID0geWVzOyB0aGVuCisrICAgICAgZWF0PW5vCisr ICAgICAgY29udGludWUKKysgICAgZmkKKysgICAgY2FzZSAiJGFyZyIgaW4KKysgICAgLUQqfC1J KikKKysgICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyI7IHNoaWZ0IDs7CisrICAgICMgU3RyaXAg YW55IG9wdGlvbiB0aGF0IG1ha2VkZXBlbmQgbWF5IG5vdCB1bmRlcnN0YW5kLiAgUmVtb3ZlCisr ICAgICMgdGhlIG9iamVjdCB0b28sIG90aGVyd2lzZSBtYWtlZGVwZW5kIHdpbGwgcGFyc2UgaXQg YXMgYSBzb3VyY2UgZmlsZS4KKysgICAgLWFyY2gpCisrICAgICAgZWF0PXllcyA7OworKyAgICAt Knwkb2JqZWN0KQorKyAgICAgIDs7CisrICAgICopCisrICAgICAgc2V0IGZub3JkICIkQCIgIiRh cmciOyBzaGlmdCA7OworKyAgICBlc2FjCisrICBkb25lCisrICBvYmpfc3VmZml4PWBlY2hvICIk b2JqZWN0IiB8IHNlZCAncy9eLipcLi8uLydgCisrICB0b3VjaCAiJHRtcGRlcGZpbGUiCisrICAk e01BS0VERVBFTkQtbWFrZWRlcGVuZH0gLW8iJG9ial9zdWZmaXgiIC1mIiR0bXBkZXBmaWxlIiAi JEAiCisrICBybSAtZiAiJGRlcGZpbGUiCisrICBjYXQgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBm aWxlIgorKyAgc2VkICcxLDJkJyAiJHRtcGRlcGZpbGUiIHwgdHIgJyAnICcKKysnIHwgXAorKyMj IFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBp bnZvY2F0aW9uCisrIyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9j YXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KKysgICAgc2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9k JyAtZSAnLzokL2QnIHwgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCisrICBybSAtZiAi JHRtcGRlcGZpbGUiICIkdG1wZGVwZmlsZSIuYmFrCisrICA7OworKworK2NwcCkKKysgICMgSW1w b3J0YW50IG5vdGU6IGluIG9yZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVyICpt dXN0KgorKyAgIyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dC4K KysgICIkQCIgfHwgZXhpdCAkPworKworKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4K KysgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorKyAgICB3aGlsZSB0ZXN0ICJYJDEi ICE9ICdYLS1tb2RlPWNvbXBpbGUnOyBkbworKyAgICAgIHNoaWZ0CisrICAgIGRvbmUKKysgICAg c2hpZnQKKysgIGZpCisrCisrICAjIFJlbW92ZSBgLW8gJG9iamVjdCcuCisrICBJRlM9IiAiCisr ICBmb3IgYXJnCisrICBkbworKyAgICBjYXNlICRhcmcgaW4KKysgICAgLW8pCisrICAgICAgc2hp ZnQKKysgICAgICA7OworKyAgICAkb2JqZWN0KQorKyAgICAgIHNoaWZ0CisrICAgICAgOzsKKysg ICAgKikKKysgICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyIKKysgICAgICBzaGlmdCAjIGZub3Jk CisrICAgICAgc2hpZnQgIyAkYXJnCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZG9uZQorKwor KyAgIiRAIiAtRSB8CisrICAgIHNlZCAtbiAtZSAnL14jIFswLTldWzAtOV0qICJcKFteIl0qXCki LiovIHM6OiBcMSBcXDpwJyBcCisrICAgICAgIC1lICcvXiNsaW5lIFswLTldWzAtOV0qICJcKFte Il0qXCkiLiovIHM6OiBcMSBcXDpwJyB8CisrICAgIHNlZCAnJCBzOiBcXCQ6OicgPiAiJHRtcGRl cGZpbGUiCisrICBybSAtZiAiJGRlcGZpbGUiCisrICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRk ZXBmaWxlIgorKyAgY2F0IDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCisrICBzZWQgPCAi JHRtcGRlcGZpbGUiICcvXiQvZDtzL14gLy87cy8gXFwkLy87cy8kLyA6LycgPj4gIiRkZXBmaWxl IgorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgOzsKKysKKyttc3Zpc3VhbGNwcCkKKysgICMg SW1wb3J0YW50IG5vdGU6IGluIG9yZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVy ICptdXN0KgorKyAgIyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91 dC4KKysgICIkQCIgfHwgZXhpdCAkPworKworKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9v bC4KKysgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorKyAgICB3aGlsZSB0ZXN0ICJY JDEiICE9ICdYLS1tb2RlPWNvbXBpbGUnOyBkbworKyAgICAgIHNoaWZ0CisrICAgIGRvbmUKKysg ICAgc2hpZnQKKysgIGZpCisrCisrICBJRlM9IiAiCisrICBmb3IgYXJnCisrICBkbworKyAgICBj YXNlICIkYXJnIiBpbgorKyAgICAtbykKKysgICAgICBzaGlmdAorKyAgICAgIDs7CisrICAgICRv YmplY3QpCisrICAgICAgc2hpZnQKKysgICAgICA7OworKyAgICAiLUdtInwiL0dtInwiLUdpInwi L0dpInwiLVpJInwiL1pJIikKKysJc2V0IGZub3JkICIkQCIKKysJc2hpZnQKKysJc2hpZnQKKysJ OzsKKysgICAgKikKKysJc2V0IGZub3JkICIkQCIgIiRhcmciCisrCXNoaWZ0CisrCXNoaWZ0Cisr CTs7CisrICAgIGVzYWMKKysgIGRvbmUKKysgICIkQCIgLUUgMj4vZGV2L251bGwgfAorKyAgc2Vk IC1uICcvXiNsaW5lIFswLTldWzAtOV0qICJcKFteIl0qXCkiLyBzOjpcMTpwJyB8ICRjeWdwYXRo X3UgfCBzb3J0IC11ID4gIiR0bXBkZXBmaWxlIgorKyAgcm0gLWYgIiRkZXBmaWxlIgorKyAgZWNo byAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKKysgIHNlZCA8ICIkdG1wZGVwZmlsZSIgLW4g LWUgJ3MlICVcXCAlZycgLWUgJy9eXCguKlwpJC8gczo6CVwxIFxcOnAnID4+ICIkZGVwZmlsZSIK KysgIGVjaG8gIgkiID4+ICIkZGVwZmlsZSIKKysgIHNlZCA8ICIkdG1wZGVwZmlsZSIgLW4gLWUg J3MlICVcXCAlZycgLWUgJy9eXCguKlwpJC8gczo6XDFcOjpwJyA+PiAiJGRlcGZpbGUiCisrICBy bSAtZiAiJHRtcGRlcGZpbGUiCisrICA7OworKworK21zdmNtc3lzKQorKyAgIyBUaGlzIGNhc2Ug ZXhpc3RzIG9ubHkgdG8gbGV0IGRlcGVuZC5tNCBkbyBpdHMgd29yay4gIEl0IHdvcmtzIGJ5Cisr ICAjIGxvb2tpbmcgYXQgdGhlIHRleHQgb2YgdGhpcyBzY3JpcHQuICBUaGlzIGNhc2Ugd2lsbCBu ZXZlciBiZSBydW4sCisrICAjIHNpbmNlIGl0IGlzIGNoZWNrZWQgZm9yIGFib3ZlLgorKyAgZXhp dCAxCisrICA7OworKworK25vbmUpCisrICBleGVjICIkQCIKKysgIDs7CisrCisrKikKKysgIGVj aG8gIlVua25vd24gZGVwbW9kZSAkZGVwbW9kZSIgMT4mMgorKyAgZXhpdCAxCisrICA7OworK2Vz YWMKKysKKytleGl0IDAKKysKKysjIExvY2FsIFZhcmlhYmxlczoKKysjIG1vZGU6IHNoZWxsLXNj cmlwdAorKyMgc2gtaW5kZW50YXRpb246IDIKKysjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmls ZS1ob29rcyAndGltZS1zdGFtcCkKKysjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9u PSIKKysjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgorKyMgdGltZS1z dGFtcC10aW1lLXpvbmU6ICJVVEMiCisrIyB0aW1lLXN0YW1wLWVuZDogIjsgIyBVVEMiCisrIyBF bmQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2luc3RhbGwtc2ggc29jaS0z LjAuMF90cmVwMzAwL2NvbmZpZy9pbnN0YWxsLXNoCistLS0gc29jaS0zLjAuMF80LXBhY2svY29u ZmlnL2luc3RhbGwtc2gJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2luc3RhbGwtc2gJMjAxMS0wMi0wOCAyMjozOTo1NS4w MDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNTIwIEBACisrIyEvYmluL3NoCisrIyBpbnN0YWxs IC0gaW5zdGFsbCBhIHByb2dyYW0sIHNjcmlwdCwgb3IgZGF0YWZpbGUKKysKKytzY3JpcHR2ZXJz aW9uPTIwMDktMDQtMjguMjE7ICMgVVRDCisrCisrIyBUaGlzIG9yaWdpbmF0ZXMgZnJvbSBYMTFS NSAobWl0L3V0aWwvc2NyaXB0cy9pbnN0YWxsLnNoKSwgd2hpY2ggd2FzCisrIyBsYXRlciByZWxl YXNlZCBpbiBYMTFSNiAoeGMvY29uZmlnL3V0aWwvaW5zdGFsbC5zaCkgd2l0aCB0aGUKKysjIGZv bGxvd2luZyBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UuCisrIworKyMgQ29weXJpZ2h0IChDKSAxOTk0 IFggQ29uc29ydGl1bQorKyMKKysjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKysjIG9mIHRoaXMgc29m dHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIp LCB0bworKyMgZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk aW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKysjIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorKyMgc2Vs bCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0 aGUgU29mdHdhcmUgaXMKKysjIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnM6CisrIworKyMgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKysjIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorKyMKKysjIFRIRSBT T0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E LCBFWFBSRVNTIE9SCisrIyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRI RSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKysjIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUK KysjIFggQ09OU09SVElVTSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhF UiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKysjIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBP UiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQy0KKysjIFRJT04g V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09G VFdBUkUuCisrIworKyMgRXhjZXB0IGFzIGNvbnRhaW5lZCBpbiB0aGlzIG5vdGljZSwgdGhlIG5h bWUgb2YgdGhlIFggQ29uc29ydGl1bSBzaGFsbCBub3QKKysjIGJlIHVzZWQgaW4gYWR2ZXJ0aXNp bmcgb3Igb3RoZXJ3aXNlIHRvIHByb21vdGUgdGhlIHNhbGUsIHVzZSBvciBvdGhlciBkZWFsLQor KyMgaW5ncyBpbiB0aGlzIFNvZnR3YXJlIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBhdXRob3JpemF0 aW9uIGZyb20gdGhlIFggQ29uc29yLQorKyMgdGl1bS4KKysjCisrIworKyMgRlNGIGNoYW5nZXMg dG8gdGhpcyBmaWxlIGFyZSBpbiB0aGUgcHVibGljIGRvbWFpbi4KKysjCisrIyBDYWxsaW5nIHRo aXMgc2NyaXB0IGluc3RhbGwtc2ggaXMgcHJlZmVycmVkIG92ZXIgaW5zdGFsbC5zaCwgdG8gcHJl dmVudAorKyMgYG1ha2UnIGltcGxpY2l0IHJ1bGVzIGZyb20gY3JlYXRpbmcgYSBmaWxlIGNhbGxl ZCBpbnN0YWxsIGZyb20gaXQKKysjIHdoZW4gdGhlcmUgaXMgbm8gTWFrZWZpbGUuCisrIworKyMg VGhpcyBzY3JpcHQgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBCU0QgaW5zdGFsbCBzY3JpcHQsIGJ1 dCB3YXMgd3JpdHRlbgorKyMgZnJvbSBzY3JhdGNoLgorKworK25sPScKKysnCisrSUZTPSIgIiIJ JG5sIgorKworKyMgc2V0IERPSVRQUk9HIHRvIGVjaG8gdG8gdGVzdCB0aGlzIHNjcmlwdAorKwor KyMgRG9uJ3QgdXNlIDotIHNpbmNlIDQuM0JTRCBhbmQgZWFybGllciBzaGVsbHMgZG9uJ3QgbGlr ZSBpdC4KKytkb2l0PSR7RE9JVFBST0ctfQorK2lmIHRlc3QgLXogIiRkb2l0IjsgdGhlbgorKyAg ZG9pdF9leGVjPWV4ZWMKKytlbHNlCisrICBkb2l0X2V4ZWM9JGRvaXQKKytmaQorKworKyMgUHV0 IGluIGFic29sdXRlIGZpbGUgbmFtZXMgaWYgeW91IGRvbid0IGhhdmUgdGhlbSBpbiB5b3VyIHBh dGg7CisrIyBvciB1c2UgZW52aXJvbm1lbnQgdmFycy4KKysKKytjaGdycHByb2c9JHtDSEdSUFBS T0ctY2hncnB9CisrY2htb2Rwcm9nPSR7Q0hNT0RQUk9HLWNobW9kfQorK2Nob3ducHJvZz0ke0NI T1dOUFJPRy1jaG93bn0KKytjbXBwcm9nPSR7Q01QUFJPRy1jbXB9CisrY3Bwcm9nPSR7Q1BQUk9H LWNwfQorK21rZGlycHJvZz0ke01LRElSUFJPRy1ta2Rpcn0KKyttdnByb2c9JHtNVlBST0ctbXZ9 Cisrcm1wcm9nPSR7Uk1QUk9HLXJtfQorK3N0cmlwcHJvZz0ke1NUUklQUFJPRy1zdHJpcH0KKysK Kytwb3NpeF9nbG9iPSc/JworK2luaXRpYWxpemVfcG9zaXhfZ2xvYj0nCisrICB0ZXN0ICIkcG9z aXhfZ2xvYiIgIT0gIj8iIHx8IHsKKysgICAgaWYgKHNldCAtZikgMj4vZGV2L251bGw7IHRoZW4K KysgICAgICBwb3NpeF9nbG9iPQorKyAgICBlbHNlCisrICAgICAgcG9zaXhfZ2xvYj06CisrICAg IGZpCisrICB9CisrJworKworK3Bvc2l4X21rZGlyPQorKworKyMgRGVzaXJlZCBtb2RlIG9mIGlu c3RhbGxlZCBmaWxlLgorK21vZGU9MDc1NQorKworK2NoZ3JwY21kPQorK2NobW9kY21kPSRjaG1v ZHByb2cKKytjaG93bmNtZD0KKyttdmNtZD0kbXZwcm9nCisrcm1jbWQ9IiRybXByb2cgLWYiCisr c3RyaXBjbWQ9CisrCisrc3JjPQorK2RzdD0KKytkaXJfYXJnPQorK2RzdF9hcmc9CisrCisrY29w eV9vbl9jaGFuZ2U9ZmFsc2UKKytub190YXJnZXRfZGlyZWN0b3J5PQorKworK3VzYWdlPSJcCisr VXNhZ2U6ICQwIFtPUFRJT05dLi4uIFstVF0gU1JDRklMRSBEU1RGSUxFCisrICAgb3I6ICQwIFtP UFRJT05dLi4uIFNSQ0ZJTEVTLi4uIERJUkVDVE9SWQorKyAgIG9yOiAkMCBbT1BUSU9OXS4uLiAt dCBESVJFQ1RPUlkgU1JDRklMRVMuLi4KKysgICBvcjogJDAgW09QVElPTl0uLi4gLWQgRElSRUNU T1JJRVMuLi4KKysKKytJbiB0aGUgMXN0IGZvcm0sIGNvcHkgU1JDRklMRSB0byBEU1RGSUxFLgor K0luIHRoZSAybmQgYW5kIDNyZCwgY29weSBhbGwgU1JDRklMRVMgdG8gRElSRUNUT1JZLgorK0lu IHRoZSA0dGgsIGNyZWF0ZSBESVJFQ1RPUklFUy4KKysKKytPcHRpb25zOgorKyAgICAgLS1oZWxw ICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdC4KKysgICAgIC0tdmVyc2lvbiAgZGlzcGxh eSB2ZXJzaW9uIGluZm8gYW5kIGV4aXQuCisrCisrICAtYyAgICAgICAgICAgIChpZ25vcmVkKQor KyAgLUMgICAgICAgICAgICBpbnN0YWxsIG9ubHkgaWYgZGlmZmVyZW50IChwcmVzZXJ2ZSB0aGUg bGFzdCBkYXRhIG1vZGlmaWNhdGlvbiB0aW1lKQorKyAgLWQgICAgICAgICAgICBjcmVhdGUgZGly ZWN0b3JpZXMgaW5zdGVhZCBvZiBpbnN0YWxsaW5nIGZpbGVzLgorKyAgLWcgR1JPVVAgICAgICAk Y2hncnBwcm9nIGluc3RhbGxlZCBmaWxlcyB0byBHUk9VUC4KKysgIC1tIE1PREUgICAgICAgJGNo bW9kcHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gTU9ERS4KKysgIC1vIFVTRVIgICAgICAgJGNob3du cHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gVVNFUi4KKysgIC1zICAgICAgICAgICAgJHN0cmlwcHJv ZyBpbnN0YWxsZWQgZmlsZXMuCisrICAtdCBESVJFQ1RPUlkgIGluc3RhbGwgaW50byBESVJFQ1RP UlkuCisrICAtVCAgICAgICAgICAgIHJlcG9ydCBhbiBlcnJvciBpZiBEU1RGSUxFIGlzIGEgZGly ZWN0b3J5LgorKworK0Vudmlyb25tZW50IHZhcmlhYmxlcyBvdmVycmlkZSB0aGUgZGVmYXVsdCBj b21tYW5kczoKKysgIENIR1JQUFJPRyBDSE1PRFBST0cgQ0hPV05QUk9HIENNUFBST0cgQ1BQUk9H IE1LRElSUFJPRyBNVlBST0cKKysgIFJNUFJPRyBTVFJJUFBST0cKKysiCisrCisrd2hpbGUgdGVz dCAkIyAtbmUgMDsgZG8KKysgIGNhc2UgJDEgaW4KKysgICAgLWMpIDs7CisrCisrICAgIC1DKSBj b3B5X29uX2NoYW5nZT10cnVlOzsKKysKKysgICAgLWQpIGRpcl9hcmc9dHJ1ZTs7CisrCisrICAg IC1nKSBjaGdycGNtZD0iJGNoZ3JwcHJvZyAkMiIKKysJc2hpZnQ7OworKworKyAgICAtLWhlbHAp IGVjaG8gIiR1c2FnZSI7IGV4aXQgJD87OworKworKyAgICAtbSkgbW9kZT0kMgorKwljYXNlICRt b2RlIGluCisrCSAgKicgJyogfCAqJwknKiB8IConCisrJyoJICB8IConKicqIHwgKic/JyogfCAq J1snKikKKysJICAgIGVjaG8gIiQwOiBpbnZhbGlkIG1vZGU6ICRtb2RlIiA+JjIKKysJICAgIGV4 aXQgMTs7CisrCWVzYWMKKysJc2hpZnQ7OworKworKyAgICAtbykgY2hvd25jbWQ9IiRjaG93bnBy b2cgJDIiCisrCXNoaWZ0OzsKKysKKysgICAgLXMpIHN0cmlwY21kPSRzdHJpcHByb2c7OworKwor KyAgICAtdCkgZHN0X2FyZz0kMgorKwlzaGlmdDs7CisrCisrICAgIC1UKSBub190YXJnZXRfZGly ZWN0b3J5PXRydWU7OworKworKyAgICAtLXZlcnNpb24pIGVjaG8gIiQwICRzY3JpcHR2ZXJzaW9u IjsgZXhpdCAkPzs7CisrCisrICAgIC0tKQlzaGlmdAorKwlicmVhazs7CisrCisrICAgIC0qKQll Y2hvICIkMDogaW52YWxpZCBvcHRpb246ICQxIiA+JjIKKysJZXhpdCAxOzsKKysKKysgICAgKikg IGJyZWFrOzsKKysgIGVzYWMKKysgIHNoaWZ0CisrZG9uZQorKworK2lmIHRlc3QgJCMgLW5lIDAg JiYgdGVzdCAteiAiJGRpcl9hcmckZHN0X2FyZyI7IHRoZW4KKysgICMgV2hlbiAtZCBpcyB1c2Vk LCBhbGwgcmVtYWluaW5nIGFyZ3VtZW50cyBhcmUgZGlyZWN0b3JpZXMgdG8gY3JlYXRlLgorKyAg IyBXaGVuIC10IGlzIHVzZWQsIHRoZSBkZXN0aW5hdGlvbiBpcyBhbHJlYWR5IHNwZWNpZmllZC4K KysgICMgT3RoZXJ3aXNlLCB0aGUgbGFzdCBhcmd1bWVudCBpcyB0aGUgZGVzdGluYXRpb24uICBS ZW1vdmUgaXQgZnJvbSAkQC4KKysgIGZvciBhcmcKKysgIGRvCisrICAgIGlmIHRlc3QgLW4gIiRk c3RfYXJnIjsgdGhlbgorKyAgICAgICMgJEAgaXMgbm90IGVtcHR5OiBpdCBjb250YWlucyBhdCBs ZWFzdCAkYXJnLgorKyAgICAgIHNldCBmbm9yZCAiJEAiICIkZHN0X2FyZyIKKysgICAgICBzaGlm dCAjIGZub3JkCisrICAgIGZpCisrICAgIHNoaWZ0ICMgYXJnCisrICAgIGRzdF9hcmc9JGFyZwor KyAgZG9uZQorK2ZpCisrCisraWYgdGVzdCAkIyAtZXEgMDsgdGhlbgorKyAgaWYgdGVzdCAteiAi JGRpcl9hcmciOyB0aGVuCisrICAgIGVjaG8gIiQwOiBubyBpbnB1dCBmaWxlIHNwZWNpZmllZC4i ID4mMgorKyAgICBleGl0IDEKKysgIGZpCisrICAjIEl0J3MgT0sgdG8gY2FsbCBgaW5zdGFsbC1z aCAtZCcgd2l0aG91dCBhcmd1bWVudC4KKysgICMgVGhpcyBjYW4gaGFwcGVuIHdoZW4gY3JlYXRp bmcgY29uZGl0aW9uYWwgZGlyZWN0b3JpZXMuCisrICBleGl0IDAKKytmaQorKworK2lmIHRlc3Qg LXogIiRkaXJfYXJnIjsgdGhlbgorKyAgdHJhcCAnKGV4aXQgJD8pOyBleGl0JyAxIDIgMTMgMTUK KysKKysgICMgU2V0IHVtYXNrIHNvIGFzIG5vdCB0byBjcmVhdGUgdGVtcHMgd2l0aCB0b28tZ2Vu ZXJvdXMgbW9kZXMuCisrICAjIEhvd2V2ZXIsICdzdHJpcCcgcmVxdWlyZXMgYm90aCByZWFkIGFu ZCB3cml0ZSBhY2Nlc3MgdG8gdGVtcHMuCisrICBjYXNlICRtb2RlIGluCisrICAgICMgT3B0aW1p emUgY29tbW9uIGNhc2VzLgorKyAgICAqNjQ0KSBjcF91bWFzaz0xMzM7OworKyAgICAqNzU1KSBj cF91bWFzaz0yMjs7CisrCisrICAgICpbMC03XSkKKysgICAgICBpZiB0ZXN0IC16ICIkc3RyaXBj bWQiOyB0aGVuCisrCXVfcGx1c19ydz0KKysgICAgICBlbHNlCisrCXVfcGx1c19ydz0nJSAyMDAn CisrICAgICAgZmkKKysgICAgICBjcF91bWFzaz1gZXhwciAnKCcgNzc3IC0gJG1vZGUgJSAxMDAw ICcpJyAkdV9wbHVzX3J3YDs7CisrICAgICopCisrICAgICAgaWYgdGVzdCAteiAiJHN0cmlwY21k IjsgdGhlbgorKwl1X3BsdXNfcnc9CisrICAgICAgZWxzZQorKwl1X3BsdXNfcnc9LHUrcncKKysg ICAgICBmaQorKyAgICAgIGNwX3VtYXNrPSRtb2RlJHVfcGx1c19ydzs7CisrICBlc2FjCisrZmkK KysKKytmb3Igc3JjCisrZG8KKysgICMgUHJvdGVjdCBuYW1lcyBzdGFydGluZyB3aXRoIGAtJy4K KysgIGNhc2UgJHNyYyBpbgorKyAgICAtKikgc3JjPS4vJHNyYzs7CisrICBlc2FjCisrCisrICBp ZiB0ZXN0IC1uICIkZGlyX2FyZyI7IHRoZW4KKysgICAgZHN0PSRzcmMKKysgICAgZHN0ZGlyPSRk c3QKKysgICAgdGVzdCAtZCAiJGRzdGRpciIKKysgICAgZHN0ZGlyX3N0YXR1cz0kPworKyAgZWxz ZQorKworKyAgICAjIFdhaXRpbmcgZm9yIHRoaXMgdG8gYmUgZGV0ZWN0ZWQgYnkgdGhlICIkY3Bw cm9nICRzcmMgJGRzdHRtcCIgY29tbWFuZAorKyAgICAjIG1pZ2h0IGNhdXNlIGRpcmVjdG9yaWVz IHRvIGJlIGNyZWF0ZWQsIHdoaWNoIHdvdWxkIGJlIGVzcGVjaWFsbHkgYmFkCisrICAgICMgaWYg JHNyYyAoYW5kIHRodXMgJGRzdHRtcCkgY29udGFpbnMgJyonLgorKyAgICBpZiB0ZXN0ICEgLWYg IiRzcmMiICYmIHRlc3QgISAtZCAiJHNyYyI7IHRoZW4KKysgICAgICBlY2hvICIkMDogJHNyYyBk b2VzIG5vdCBleGlzdC4iID4mMgorKyAgICAgIGV4aXQgMQorKyAgICBmaQorKworKyAgICBpZiB0 ZXN0IC16ICIkZHN0X2FyZyI7IHRoZW4KKysgICAgICBlY2hvICIkMDogbm8gZGVzdGluYXRpb24g c3BlY2lmaWVkLiIgPiYyCisrICAgICAgZXhpdCAxCisrICAgIGZpCisrCisrICAgIGRzdD0kZHN0 X2FyZworKyAgICAjIFByb3RlY3QgbmFtZXMgc3RhcnRpbmcgd2l0aCBgLScuCisrICAgIGNhc2Ug JGRzdCBpbgorKyAgICAgIC0qKSBkc3Q9Li8kZHN0OzsKKysgICAgZXNhYworKworKyAgICAjIElm IGRlc3RpbmF0aW9uIGlzIGEgZGlyZWN0b3J5LCBhcHBlbmQgdGhlIGlucHV0IGZpbGVuYW1lOyB3 b24ndCB3b3JrCisrICAgICMgaWYgZG91YmxlIHNsYXNoZXMgYXJlbid0IGlnbm9yZWQuCisrICAg IGlmIHRlc3QgLWQgIiRkc3QiOyB0aGVuCisrICAgICAgaWYgdGVzdCAtbiAiJG5vX3RhcmdldF9k aXJlY3RvcnkiOyB0aGVuCisrCWVjaG8gIiQwOiAkZHN0X2FyZzogSXMgYSBkaXJlY3RvcnkiID4m MgorKwlleGl0IDEKKysgICAgICBmaQorKyAgICAgIGRzdGRpcj0kZHN0CisrICAgICAgZHN0PSRk c3RkaXIvYGJhc2VuYW1lICIkc3JjImAKKysgICAgICBkc3RkaXJfc3RhdHVzPTAKKysgICAgZWxz ZQorKyAgICAgICMgUHJlZmVyIGRpcm5hbWUsIGJ1dCBmYWxsIGJhY2sgb24gYSBzdWJzdGl0dXRl IGlmIGRpcm5hbWUgZmFpbHMuCisrICAgICAgZHN0ZGlyPWAKKysJKGRpcm5hbWUgIiRkc3QiKSAy Pi9kZXYvbnVsbCB8fAorKwlleHByIFgiJGRzdCIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSov KiQnIFx8IFwKKysJICAgICBYIiRkc3QiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisrCSAgICAgWCIk ZHN0IiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgICAgIFgiJGRzdCIgOiAnWFwoL1wpJyBcfCAuIDI+ L2Rldi9udWxsIHx8CisrCWVjaG8gWCIkZHN0IiB8CisrCSAgICBzZWQgJy9eWFwoLipbXi9dXClc L1wvKlteL11bXi9dKlwvKiQveworKwkJICAgcy8vXDEvCisrCQkgICBxCisrCQkgfQorKwkJIC9e WFwoXC9cL1wpW14vXS4qL3sKKysJCSAgIHMvL1wxLworKwkJICAgcQorKwkJIH0KKysJCSAvXlhc KFwvXC9cKSQveworKwkJICAgcy8vXDEvCisrCQkgICBxCisrCQkgfQorKwkJIC9eWFwoXC9cKS4q L3sKKysJCSAgIHMvL1wxLworKwkJICAgcQorKwkJIH0KKysJCSBzLy4qLy4vOyBxJworKyAgICAg IGAKKysKKysgICAgICB0ZXN0IC1kICIkZHN0ZGlyIgorKyAgICAgIGRzdGRpcl9zdGF0dXM9JD8K KysgICAgZmkKKysgIGZpCisrCisrICBvYnNvbGV0ZV9ta2Rpcl91c2VkPWZhbHNlCisrCisrICBp ZiB0ZXN0ICRkc3RkaXJfc3RhdHVzICE9IDA7IHRoZW4KKysgICAgY2FzZSAkcG9zaXhfbWtkaXIg aW4KKysgICAgICAnJykKKysJIyBDcmVhdGUgaW50ZXJtZWRpYXRlIGRpcnMgdXNpbmcgbW9kZSA3 NTUgYXMgbW9kaWZpZWQgYnkgdGhlIHVtYXNrLgorKwkjIFRoaXMgaXMgbGlrZSBGcmVlQlNEICdp bnN0YWxsJyBhcyBvZiAxOTk3LTEwLTI4LgorKwl1bWFzaz1gdW1hc2tgCisrCWNhc2UgJHN0cmlw Y21kLiR1bWFzayBpbgorKwkgICMgT3B0aW1pemUgY29tbW9uIGNhc2VzLgorKwkgICpbMjM2N11b MjM2N10pIG1rZGlyX3VtYXNrPSR1bWFzazs7CisrCSAgLiowWzAyXVswMl0gfCAuWzAyXVswMl0g fCAuWzAyXSkgbWtkaXJfdW1hc2s9MjI7OworKworKwkgICpbMC03XSkKKysJICAgIG1rZGlyX3Vt YXNrPWBleHByICR1bWFzayArIDIyIFwKKysJICAgICAgLSAkdW1hc2sgJSAxMDAgJSA0MCArICR1 bWFzayAlIDIwIFwKKysJICAgICAgLSAkdW1hc2sgJSAxMCAlIDQgKyAkdW1hc2sgJSAyCisrCSAg ICBgOzsKKysJICAqKSBta2Rpcl91bWFzaz0kdW1hc2ssZ28tdzs7CisrCWVzYWMKKysKKysJIyBX aXRoIC1kLCBjcmVhdGUgdGhlIG5ldyBkaXJlY3Rvcnkgd2l0aCB0aGUgdXNlci1zcGVjaWZpZWQg bW9kZS4KKysJIyBPdGhlcndpc2UsIHJlbHkgb24gJG1rZGlyX3VtYXNrLgorKwlpZiB0ZXN0IC1u ICIkZGlyX2FyZyI7IHRoZW4KKysJICBta2Rpcl9tb2RlPS1tJG1vZGUKKysJZWxzZQorKwkgIG1r ZGlyX21vZGU9CisrCWZpCisrCisrCXBvc2l4X21rZGlyPWZhbHNlCisrCWNhc2UgJHVtYXNrIGlu CisrCSAgKlsxMjM1NjddWzAtN11bMC03XSkKKysJICAgICMgUE9TSVggbWtkaXIgLXAgc2V0cyB1 K3d4IGJpdHMgcmVnYXJkbGVzcyBvZiB1bWFzaywgd2hpY2gKKysJICAgICMgaXMgaW5jb21wYXRp YmxlIHdpdGggRnJlZUJTRCAnaW5zdGFsbCcgd2hlbiAodW1hc2sgJiAzMDApICE9IDAuCisrCSAg ICA7OworKwkgICopCisrCSAgICB0bXBkaXI9JHtUTVBESVItL3RtcH0vaW5zJFJBTkRPTS0kJAor KwkgICAgdHJhcCAncmV0PSQ/OyBybWRpciAiJHRtcGRpci9kIiAiJHRtcGRpciIgMj4vZGV2L251 bGw7IGV4aXQgJHJldCcgMAorKworKwkgICAgaWYgKHVtYXNrICRta2Rpcl91bWFzayAmJgorKwkJ ZXhlYyAkbWtkaXJwcm9nICRta2Rpcl9tb2RlIC1wIC0tICIkdG1wZGlyL2QiKSA+L2Rldi9udWxs IDI+JjEKKysJICAgIHRoZW4KKysJICAgICAgaWYgdGVzdCAteiAiJGRpcl9hcmciIHx8IHsKKysJ CSAgICMgQ2hlY2sgZm9yIFBPU0lYIGluY29tcGF0aWJpbGl0aWVzIHdpdGggLW0uCisrCQkgICAj IEhQLVVYIDExLjIzIGFuZCBJUklYIDYuNSBta2RpciAtbSAtcCBzZXRzIGdyb3VwLSBvcgorKwkJ ICAgIyBvdGhlci13cml0ZWFibGUgYml0IG9mIHBhcmVudCBkaXJlY3Rvcnkgd2hlbiBpdCBzaG91 bGRuJ3QuCisrCQkgICAjIEZyZWVCU0QgNi4xIG1rZGlyIC1tIC1wIHNldHMgbW9kZSBvZiBleGlz dGluZyBkaXJlY3RvcnkuCisrCQkgICBsc19sZF90bXBkaXI9YGxzIC1sZCAiJHRtcGRpciJgCisr CQkgICBjYXNlICRsc19sZF90bXBkaXIgaW4KKysJCSAgICAgZD8/Pz8tP3ItKikgZGlmZmVyZW50 X21vZGU9NzAwOzsKKysJCSAgICAgZD8/Pz8tPy0tKikgZGlmZmVyZW50X21vZGU9NzU1OzsKKysJ CSAgICAgKikgZmFsc2U7OworKwkJICAgZXNhYyAmJgorKwkJICAgJG1rZGlycHJvZyAtbSRkaWZm ZXJlbnRfbW9kZSAtcCAtLSAiJHRtcGRpciIgJiYgeworKwkJICAgICBsc19sZF90bXBkaXJfMT1g bHMgLWxkICIkdG1wZGlyImAKKysJCSAgICAgdGVzdCAiJGxzX2xkX3RtcGRpciIgPSAiJGxzX2xk X3RtcGRpcl8xIgorKwkJICAgfQorKwkJIH0KKysJICAgICAgdGhlbiBwb3NpeF9ta2Rpcj06Cisr CSAgICAgIGZpCisrCSAgICAgIHJtZGlyICIkdG1wZGlyL2QiICIkdG1wZGlyIgorKwkgICAgZWxz ZQorKwkgICAgICAjIFJlbW92ZSBhbnkgZGlycyBsZWZ0IGJlaGluZCBieSBhbmNpZW50IG1rZGly IGltcGxlbWVudGF0aW9ucy4KKysJICAgICAgcm1kaXIgLi8kbWtkaXJfbW9kZSAuLy1wIC4vLS0g Mj4vZGV2L251bGwKKysJICAgIGZpCisrCSAgICB0cmFwICcnIDA7OworKwllc2FjOzsKKysgICAg ZXNhYworKworKyAgICBpZgorKyAgICAgICRwb3NpeF9ta2RpciAmJiAoCisrCXVtYXNrICRta2Rp cl91bWFzayAmJgorKwkkZG9pdF9leGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiRk c3RkaXIiCisrICAgICAgKQorKyAgICB0aGVuIDoKKysgICAgZWxzZQorKworKyAgICAgICMgVGhl IHVtYXNrIGlzIHJpZGljdWxvdXMsIG9yIG1rZGlyIGRvZXMgbm90IGNvbmZvcm0gdG8gUE9TSVgs CisrICAgICAgIyBvciBpdCBmYWlsZWQgcG9zc2libHkgZHVlIHRvIGEgcmFjZSBjb25kaXRpb24u ICBDcmVhdGUgdGhlCisrICAgICAgIyBkaXJlY3RvcnkgdGhlIHNsb3cgd2F5LCBzdGVwIGJ5IHN0 ZXAsIGNoZWNraW5nIGZvciByYWNlcyBhcyB3ZSBnby4KKysKKysgICAgICBjYXNlICRkc3RkaXIg aW4KKysJLyopIHByZWZpeD0nLyc7OworKwktKikgcHJlZml4PScuLyc7OworKwkqKSAgcHJlZml4 PScnOzsKKysgICAgICBlc2FjCisrCisrICAgICAgZXZhbCAiJGluaXRpYWxpemVfcG9zaXhfZ2xv YiIKKysKKysgICAgICBvSUZTPSRJRlMKKysgICAgICBJRlM9LworKyAgICAgICRwb3NpeF9nbG9i IHNldCAtZgorKyAgICAgIHNldCBmbm9yZCAkZHN0ZGlyCisrICAgICAgc2hpZnQKKysgICAgICAk cG9zaXhfZ2xvYiBzZXQgK2YKKysgICAgICBJRlM9JG9JRlMKKysKKysgICAgICBwcmVmaXhlcz0K KysKKysgICAgICBmb3IgZAorKyAgICAgIGRvCisrCXRlc3QgLXogIiRkIiAmJiBjb250aW51ZQor KworKwlwcmVmaXg9JHByZWZpeCRkCisrCWlmIHRlc3QgLWQgIiRwcmVmaXgiOyB0aGVuCisrCSAg cHJlZml4ZXM9CisrCWVsc2UKKysJICBpZiAkcG9zaXhfbWtkaXI7IHRoZW4KKysJICAgICh1bWFz az0kbWtkaXJfdW1hc2sgJiYKKysJICAgICAkZG9pdF9leGVjICRta2RpcnByb2cgJG1rZGlyX21v ZGUgLXAgLS0gIiRkc3RkaXIiKSAmJiBicmVhaworKwkgICAgIyBEb24ndCBmYWlsIGlmIHR3byBp bnN0YW5jZXMgYXJlIHJ1bm5pbmcgY29uY3VycmVudGx5LgorKwkgICAgdGVzdCAtZCAiJHByZWZp eCIgfHwgZXhpdCAxCisrCSAgZWxzZQorKwkgICAgY2FzZSAkcHJlZml4IGluCisrCSAgICAgICpc JyopIHFwcmVmaXg9YGVjaG8gIiRwcmVmaXgiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsK KysJICAgICAgKikgcXByZWZpeD0kcHJlZml4OzsKKysJICAgIGVzYWMKKysJICAgIHByZWZpeGVz PSIkcHJlZml4ZXMgJyRxcHJlZml4JyIKKysJICBmaQorKwlmaQorKwlwcmVmaXg9JHByZWZpeC8K KysgICAgICBkb25lCisrCisrICAgICAgaWYgdGVzdCAtbiAiJHByZWZpeGVzIjsgdGhlbgorKwkj IERvbid0IGZhaWwgaWYgdHdvIGluc3RhbmNlcyBhcmUgcnVubmluZyBjb25jdXJyZW50bHkuCisr CSh1bWFzayAkbWtkaXJfdW1hc2sgJiYKKysJIGV2YWwgIlwkZG9pdF9leGVjIFwkbWtkaXJwcm9n ICRwcmVmaXhlcyIpIHx8CisrCSAgdGVzdCAtZCAiJGRzdGRpciIgfHwgZXhpdCAxCisrCW9ic29s ZXRlX21rZGlyX3VzZWQ9dHJ1ZQorKyAgICAgIGZpCisrICAgIGZpCisrICBmaQorKworKyAgaWYg dGVzdCAtbiAiJGRpcl9hcmciOyB0aGVuCisrICAgIHsgdGVzdCAteiAiJGNob3duY21kIiB8fCAk ZG9pdCAkY2hvd25jbWQgIiRkc3QiOyB9ICYmCisrICAgIHsgdGVzdCAteiAiJGNoZ3JwY21kIiB8 fCAkZG9pdCAkY2hncnBjbWQgIiRkc3QiOyB9ICYmCisrICAgIHsgdGVzdCAiJG9ic29sZXRlX21r ZGlyX3VzZWQkY2hvd25jbWQkY2hncnBjbWQiID0gZmFsc2UgfHwKKysgICAgICB0ZXN0IC16ICIk Y2htb2RjbWQiIHx8ICRkb2l0ICRjaG1vZGNtZCAkbW9kZSAiJGRzdCI7IH0gfHwgZXhpdCAxCisr ICBlbHNlCisrCisrICAgICMgTWFrZSBhIGNvdXBsZSBvZiB0ZW1wIGZpbGUgbmFtZXMgaW4gdGhl IHByb3BlciBkaXJlY3RvcnkuCisrICAgIGRzdHRtcD0kZHN0ZGlyL19pbnN0LiQkXworKyAgICBy bXRtcD0kZHN0ZGlyL19ybS4kJF8KKysKKysgICAgIyBUcmFwIHRvIGNsZWFuIHVwIHRob3NlIHRl bXAgZmlsZXMgYXQgZXhpdC4KKysgICAgdHJhcCAncmV0PSQ/OyBybSAtZiAiJGRzdHRtcCIgIiRy bXRtcCIgJiYgZXhpdCAkcmV0JyAwCisrCisrICAgICMgQ29weSB0aGUgZmlsZSBuYW1lIHRvIHRo ZSB0ZW1wIG5hbWUuCisrICAgICh1bWFzayAkY3BfdW1hc2sgJiYgJGRvaXRfZXhlYyAkY3Bwcm9n ICIkc3JjIiAiJGRzdHRtcCIpICYmCisrCisrICAgICMgYW5kIHNldCBhbnkgb3B0aW9uczsgZG8g Y2htb2QgbGFzdCB0byBwcmVzZXJ2ZSBzZXR1aWQgYml0cy4KKysgICAgIworKyAgICAjIElmIGFu eSBvZiB0aGVzZSBmYWlsLCB3ZSBhYm9ydCB0aGUgd2hvbGUgdGhpbmcuICBJZiB3ZSB3YW50IHRv CisrICAgICMgaWdub3JlIGVycm9ycyBmcm9tIGFueSBvZiB0aGVzZSwganVzdCBtYWtlIHN1cmUg bm90IHRvIGlnbm9yZQorKyAgICAjIGVycm9ycyBmcm9tIHRoZSBhYm92ZSAiJGRvaXQgJGNwcHJv ZyAkc3JjICRkc3R0bXAiIGNvbW1hbmQuCisrICAgICMKKysgICAgeyB0ZXN0IC16ICIkY2hvd25j bWQiIHx8ICRkb2l0ICRjaG93bmNtZCAiJGRzdHRtcCI7IH0gJiYKKysgICAgeyB0ZXN0IC16ICIk Y2hncnBjbWQiIHx8ICRkb2l0ICRjaGdycGNtZCAiJGRzdHRtcCI7IH0gJiYKKysgICAgeyB0ZXN0 IC16ICIkc3RyaXBjbWQiIHx8ICRkb2l0ICRzdHJpcGNtZCAiJGRzdHRtcCI7IH0gJiYKKysgICAg eyB0ZXN0IC16ICIkY2htb2RjbWQiIHx8ICRkb2l0ICRjaG1vZGNtZCAkbW9kZSAiJGRzdHRtcCI7 IH0gJiYKKysKKysgICAgIyBJZiAtQywgZG9uJ3QgYm90aGVyIHRvIGNvcHkgaWYgaXQgd291bGRu J3QgY2hhbmdlIHRoZSBmaWxlLgorKyAgICBpZiAkY29weV9vbl9jaGFuZ2UgJiYKKysgICAgICAg b2xkPWBMQ19BTEw9QyBscyAtZGxMICIkZHN0IgkyPi9kZXYvbnVsbGAgJiYKKysgICAgICAgbmV3 PWBMQ19BTEw9QyBscyAtZGxMICIkZHN0dG1wIgkyPi9kZXYvbnVsbGAgJiYKKysKKysgICAgICAg ZXZhbCAiJGluaXRpYWxpemVfcG9zaXhfZ2xvYiIgJiYKKysgICAgICAgJHBvc2l4X2dsb2Igc2V0 IC1mICYmCisrICAgICAgIHNldCBYICRvbGQgJiYgb2xkPTokMjokNDokNTokNiAmJgorKyAgICAg ICBzZXQgWCAkbmV3ICYmIG5ldz06JDI6JDQ6JDU6JDYgJiYKKysgICAgICAgJHBvc2l4X2dsb2Ig c2V0ICtmICYmCisrCisrICAgICAgIHRlc3QgIiRvbGQiID0gIiRuZXciICYmCisrICAgICAgICRj bXBwcm9nICIkZHN0IiAiJGRzdHRtcCIgPi9kZXYvbnVsbCAyPiYxCisrICAgIHRoZW4KKysgICAg ICBybSAtZiAiJGRzdHRtcCIKKysgICAgZWxzZQorKyAgICAgICMgUmVuYW1lIHRoZSBmaWxlIHRv IHRoZSByZWFsIGRlc3RpbmF0aW9uLgorKyAgICAgICRkb2l0ICRtdmNtZCAtZiAiJGRzdHRtcCIg IiRkc3QiIDI+L2Rldi9udWxsIHx8CisrCisrICAgICAgIyBUaGUgcmVuYW1lIGZhaWxlZCwgcGVy aGFwcyBiZWNhdXNlIG12IGNhbid0IHJlbmFtZSBzb21ldGhpbmcgZWxzZQorKyAgICAgICMgdG8g aXRzZWxmLCBvciBwZXJoYXBzIGJlY2F1c2UgbXYgaXMgc28gYW5jaWVudCB0aGF0IGl0IGRvZXMg bm90CisrICAgICAgIyBzdXBwb3J0IC1mLgorKyAgICAgIHsKKysJIyBOb3cgcmVtb3ZlIG9yIG1v dmUgYXNpZGUgYW55IG9sZCBmaWxlIGF0IGRlc3RpbmF0aW9uIGxvY2F0aW9uLgorKwkjIFdlIHRy eSB0aGlzIHR3byB3YXlzIHNpbmNlIHJtIGNhbid0IHVubGluayBpdHNlbGYgb24gc29tZQorKwkj IHN5c3RlbXMgYW5kIHRoZSBkZXN0aW5hdGlvbiBmaWxlIG1pZ2h0IGJlIGJ1c3kgZm9yIG90aGVy CisrCSMgcmVhc29ucy4gIEluIHRoaXMgY2FzZSwgdGhlIGZpbmFsIGNsZWFudXAgbWlnaHQgZmFp bCBidXQgdGhlIG5ldworKwkjIGZpbGUgc2hvdWxkIHN0aWxsIGluc3RhbGwgc3VjY2Vzc2Z1bGx5 LgorKwl7CisrCSAgdGVzdCAhIC1mICIkZHN0IiB8fAorKwkgICRkb2l0ICRybWNtZCAtZiAiJGRz dCIgMj4vZGV2L251bGwgfHwKKysJICB7ICRkb2l0ICRtdmNtZCAtZiAiJGRzdCIgIiRybXRtcCIg Mj4vZGV2L251bGwgJiYKKysJICAgIHsgJGRvaXQgJHJtY21kIC1mICIkcm10bXAiIDI+L2Rldi9u dWxsOyA6OyB9CisrCSAgfSB8fAorKwkgIHsgZWNobyAiJDA6IGNhbm5vdCB1bmxpbmsgb3IgcmVu YW1lICRkc3QiID4mMgorKwkgICAgKGV4aXQgMSk7IGV4aXQgMQorKwkgIH0KKysJfSAmJgorKwor KwkjIE5vdyByZW5hbWUgdGhlIGZpbGUgdG8gdGhlIHJlYWwgZGVzdGluYXRpb24uCisrCSRkb2l0 ICRtdmNtZCAiJGRzdHRtcCIgIiRkc3QiCisrICAgICAgfQorKyAgICBmaSB8fCBleGl0IDEKKysK KysgICAgdHJhcCAnJyAwCisrICBmaQorK2RvbmUKKysKKysjIExvY2FsIHZhcmlhYmxlczoKKysj IGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKysjIHRpbWUt c3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKKysjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5 LSUwMm0tJTAyZC4lMDJIIgorKyMgdGltZS1zdGFtcC10aW1lLXpvbmU6ICJVVEMiCisrIyB0aW1l LXN0YW1wLWVuZDogIjsgIyBVVEMiCisrIyBFbmQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svY29uZmlnL2xpYnRvb2wubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9saWJ0b29sLm00 CistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2xpYnRvb2wubTQJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2xpYnRv b2wubTQJMjAxMS0wMi0wOCAyMjozOTo0NC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNzQ0 MSBAQAorKyMgbGlidG9vbC5tNCAtIENvbmZpZ3VyZSBsaWJ0b29sIGZvciB0aGUgaG9zdCBzeXN0 ZW0uIC0qLUF1dG9jb25mLSotCisrIworKyMgICBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5 OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsCisrIyAgICAgICAgICAgICAg ICAgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s CisrIyAgICAgICAgICAgICAgICAgSW5jLgorKyMgICBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdr ZWl0LCAxOTk2CisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKKysjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkg YW5kL29yIGRpc3RyaWJ1dGUgaXQsIHdpdGggb3Igd2l0aG91dAorKyMgbW9kaWZpY2F0aW9ucywg YXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrbTRfZGVmaW5lKFtfTFRf Q09QWUlOR10sIFtkbmwKKysjICAgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5 LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LAorKyMgICAgICAgICAgICAgICAgIDIwMDYs IDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgICAg ICAgICAgICAgICAgIEluYy4KKysjICAgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5 NgorKyMKKysjICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIExpYnRvb2wuCisrIworKyMgR05V IExpYnRvb2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y CisrIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcworKyMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDIgb2YKKysjIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorKyMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBm aWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIG9yIGxpYnJhcnkgdGhhdAorKyMgaXMgYnVpbHQgdXNp bmcgR05VIExpYnRvb2wsIHlvdSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhlCisrIyBz YW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQg cHJvZ3JhbS4KKysjCisrIyBHTlUgTGlidG9vbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFs b25nIHdpdGggR05VIExpYnRvb2w7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCBhIGNv cHkKKysjIGNhbiBiZSBkb3dubG9hZGVkIGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz L2dwbC5odG1sLCBvcgorKyMgb2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuLAorKyMgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisrXSkKKysKKysjIHNlcmlhbCA1NyBMVF9JTklU CisrCisrCisrIyBMVF9QUkVSRVEoVkVSU0lPTikKKysjIC0tLS0tLS0tLS0tLS0tLS0tLQorKyMg Q29tcGxhaW4gYW5kIGV4aXQgaWYgdGhpcyBsaWJ0b29sIHZlcnNpb24gaXMgbGVzcyB0aGF0IFZF UlNJT04uCisrbTRfZGVmdW4oW0xUX1BSRVJFUV0sCisrW200X2lmKG00X3ZlcnNpb25fY29tcGFy ZShtNF9kZWZuKFtMVF9QQUNLQUdFX1ZFUlNJT05dKSwgWyQxXSksIC0xLAorKyAgICAgICBbbTRf ZGVmYXVsdChbJDNdLAorKwkJICAgW200X2ZhdGFsKFtMaWJ0b29sIHZlcnNpb24gJDEgb3IgaGln aGVyIGlzIHJlcXVpcmVkXSwKKysJCSAgICAgICAgICAgICA2MyldKV0sCisrICAgICAgIFskMl0p XSkKKysKKysKKysjIF9MVF9DSEVDS19CVUlMRERJUgorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisr IyBDb21wbGFpbiBpZiB0aGUgYWJzb2x1dGUgYnVpbGQgZGlyZWN0b3J5IG5hbWUgY29udGFpbnMg dW51c3VhbCBjaGFyYWN0ZXJzCisrbTRfZGVmdW4oW19MVF9DSEVDS19CVUlMRERJUl0sCisrW2Nh c2UgYHB3ZGAgaW4KKysgICpcICogfCAqXAkqKQorKyAgICBBQ19NU0dfV0FSTihbTGlidG9vbCBk b2VzIG5vdCBjb3BlIHdlbGwgd2l0aCB3aGl0ZXNwYWNlIGluIGBwd2RgXSkgOzsKKytlc2FjCisr XSkKKysKKysKKysjIExUX0lOSVQoW09QVElPTlNdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisr QUNfREVGVU4oW0xUX0lOSVRdLAorK1tBQ19QUkVSRVEoWzIuNThdKWRubCBXZSB1c2UgQUNfSU5D TFVERVNfREVGQVVMVAorK0FDX1JFUVVJUkUoW0FDX0NPTkZJR19BVVhfRElSX0RFRkFVTFRdKWRu bAorK0FDX0JFRk9SRShbJDBdLCBbTFRfTEFOR10pZG5sCisrQUNfQkVGT1JFKFskMF0sIFtMVF9P VVRQVVRdKWRubAorK0FDX0JFRk9SRShbJDBdLCBbTFRETF9JTklUXSlkbmwKKyttNF9yZXF1aXJl KFtfTFRfQ0hFQ0tfQlVJTERESVJdKWRubAorKworK2RubCBBdXRvY29uZiBkb2Vzbid0IGNhdGNo IHVuZXhwYW5kZWQgTFRfIG1hY3JvcyBieSBkZWZhdWx0OgorK200X3BhdHRlcm5fZm9yYmlkKFte Xz9MVF9bQS1aX10rJF0pZG5sCisrbTRfcGF0dGVybl9hbGxvdyhbXihfTFRfRU9GfExUX0RMR0xP QkFMfExUX0RMTEFaWV9PUl9OT1d8TFRfTVVMVElfTU9EVUxFKSRdKWRubAorK2RubCBhY2xvY2Fs IGRvZXNuJ3QgcHVsbCBsdG9wdGlvbnMubTQsIGx0c3VnYXIubTQsIG9yIGx0dmVyc2lvbi5tNAor K2RubCB1bmxlc3Mgd2UgcmVxdWlyZSBhbiBBQ19ERUZVTmVkIG1hY3JvOgorK0FDX1JFUVVJUkUo W0xUT1BUSU9OU19WRVJTSU9OXSlkbmwKKytBQ19SRVFVSVJFKFtMVFNVR0FSX1ZFUlNJT05dKWRu bAorK0FDX1JFUVVJUkUoW0xUVkVSU0lPTl9WRVJTSU9OXSlkbmwKKytBQ19SRVFVSVJFKFtMVE9C U09MRVRFX1ZFUlNJT05dKWRubAorK200X3JlcXVpcmUoW19MVF9QUk9HX0xUTUFJTl0pZG5sCisr CisrX0xUX1NIRUxMX0lOSVQoW1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9XSkKKysKKytk bmwgUGFyc2UgT1BUSU9OUworK19MVF9TRVRfT1BUSU9OUyhbJDBdLCBbJDFdKQorKworKyMgVGhp cyBjYW4gYmUgdXNlZCB0byByZWJ1aWxkIGxpYnRvb2wgd2hlbiBuZWVkZWQKKytMSUJUT09MX0RF UFM9IiRsdG1haW4iCisrCisrIyBBbHdheXMgdXNlIG91ciBvd24gbGlidG9vbC4KKytMSUJUT09M PSckKFNIRUxMKSAkKHRvcF9idWlsZGRpcikvbGlidG9vbCcKKytBQ19TVUJTVChMSUJUT09MKWRu bAorKworK19MVF9TRVRVUAorKworKyMgT25seSBleHBhbmQgb25jZToKKyttNF9kZWZpbmUoW0xU X0lOSVRdKQorK10pIyBMVF9JTklUCisrCisrIyBPbGQgbmFtZXM6CisrQVVfQUxJQVMoW0FDX1BS T0dfTElCVE9PTF0sIFtMVF9JTklUXSkKKytBVV9BTElBUyhbQU1fUFJPR19MSUJUT09MXSwgW0xU X0lOSVRdKQorK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwg QUNfREVGVU4oW0FDX1BST0dfTElCVE9PTF0sIFtdKQorK2RubCBBQ19ERUZVTihbQU1fUFJPR19M SUJUT09MXSwgW10pCisrCisrCisrIyBfTFRfQ0NfQkFTRU5BTUUoQ0MpCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBDYWxjdWxhdGUgY2NfYmFzZW5hbWUuICBTa2lwIGtub3duIGNvbXBpbGVy IHdyYXBwZXJzIGFuZCBjcm9zcy1wcmVmaXguCisrbTRfZGVmdW4oW19MVF9DQ19CQVNFTkFNRV0s CisrW2ZvciBjY190ZW1wIGluICQxIiI7IGRvCisrICBjYXNlICRjY190ZW1wIGluCisrICAgIGNv bXBpbGUgfCAqW1tcXC9dXWNvbXBpbGUgfCBjY2FjaGUgfCAqW1tcXC9dXWNjYWNoZSApIDs7Cisr ICAgIGRpc3RjYyB8ICpbW1xcL11dZGlzdGNjIHwgcHVyaWZ5IHwgKltbXFwvXV1wdXJpZnkgKSA7 OworKyAgICBcLSopIDs7CisrICAgICopIGJyZWFrOzsKKysgIGVzYWMKKytkb25lCisrY2NfYmFz ZW5hbWU9YCRFQ0hPICIkY2NfdGVtcCIgfCAkU0VEICJzJS4qLyUlOyBzJV4kaG9zdF9hbGlhcy0l JSJgCisrXSkKKysKKysKKysjIF9MVF9GSUxFVVRJTFNfREVGQVVMVFMKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysjIEl0IGlzIG9rYXkgdG8gdXNlIHRoZXNlIGZpbGUgY29tbWFuZHMgYW5k IGFzc3VtZSB0aGV5IGhhdmUgYmVlbiBzZXQKKysjIHNlbnNpYmx5IGFmdGVyIGBtNF9yZXF1aXJl KFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSknLgorK200X2RlZnVuKFtfTFRfRklMRVVUSUxTX0RF RkFVTFRTXSwKKytbOiAke0NQPSJjcCAtZiJ9CisrOiAke01WPSJtdiAtZiJ9CisrOiAke1JNPSJy bSAtZiJ9CisrXSkjIF9MVF9GSUxFVVRJTFNfREVGQVVMVFMKKysKKysKKysjIF9MVF9TRVRVUAor KyMgLS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9TRVRVUF0sCisrW0FDX1JFUVVJUkUoW0FDX0NB Tk9OSUNBTF9IT1NUXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfQlVJTERdKWRubAor K0FDX1JFUVVJUkUoW19MVF9QUkVQQVJFX1NFRF9RVU9URV9WQVJTXSlkbmwKKytBQ19SRVFVSVJF KFtfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSF0pZG5sCisrCisrX0xUX0RFQ0woW10sIFtob3N0X2Fs aWFzXSwgWzBdLCBbVGhlIGhvc3Qgc3lzdGVtXSlkbmwKKytfTFRfREVDTChbXSwgW2hvc3RdLCBb MF0pZG5sCisrX0xUX0RFQ0woW10sIFtob3N0X29zXSwgWzBdKWRubAorK2RubAorK19MVF9ERUNM KFtdLCBbYnVpbGRfYWxpYXNdLCBbMF0sIFtUaGUgYnVpbGQgc3lzdGVtXSlkbmwKKytfTFRfREVD TChbXSwgW2J1aWxkXSwgWzBdKWRubAorK19MVF9ERUNMKFtdLCBbYnVpbGRfb3NdLCBbMF0pZG5s CisrZG5sCisrQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCisrQUNfUkVRVUlSRShbTFRfUEFU SF9MRF0pZG5sCisrQUNfUkVRVUlSRShbTFRfUEFUSF9OTV0pZG5sCisrZG5sCisrQUNfUkVRVUlS RShbQUNfUFJPR19MTl9TXSlkbmwKKyt0ZXN0IC16ICIkTE5fUyIgJiYgTE5fUz0ibG4gLXMiCisr X0xUX0RFQ0woW10sIFtMTl9TXSwgWzFdLCBbV2hldGhlciB3ZSBuZWVkIHNvZnQgb3IgaGFyZCBs aW5rc10pZG5sCisrZG5sCisrQUNfUkVRVUlSRShbTFRfQ01EX01BWF9MRU5dKWRubAorK19MVF9E RUNMKFtvYmpleHRdLCBbYWNfb2JqZXh0XSwgWzBdLCBbT2JqZWN0IGZpbGUgc3VmZml4IChub3Jt YWxseSAibyIpXSlkbmwKKytfTFRfREVDTChbXSwgW2V4ZWV4dF0sIFswXSwgW0V4ZWN1dGFibGUg ZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKV0pZG5sCisrZG5sCisrbTRfcmVxdWlyZShbX0xUX0ZJ TEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX0NIRUNLX1NIRUxMX0ZFQVRV UkVTXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ01EX1JFTE9BRF0pZG5sCisrbTRfcmVxdWlyZShb X0xUX0NIRUNLX01BR0lDX01FVEhPRF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0NNRF9PTERfQVJD SElWRV0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0NNRF9HTE9CQUxfU1lNQk9MU10pZG5sCisrCisr X0xUX0NPTkZJR19MSUJUT09MX0lOSVQoWworKyMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpz aCwgYW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKKysjIGNvbW1hbmRzIHRocm91 Z2ggd2l0aG91dCByZW1vdmFsIG9mIFwgZXNjYXBlcyBJTklULgorK2lmIHRlc3QgLW4gIlwke1pT SF9WRVJTSU9OK3NldH0iIDsgdGhlbgorKyAgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZmkKKytd KQorK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCisrICAgc2V0b3B0IE5P X0dMT0JfU1VCU1QKKytmaQorKworK19MVF9DSEVDS19PQkpESVIKKysKKyttNF9yZXF1aXJlKFtf TFRfVEFHX0NPTVBJTEVSXSlkbmwKKysKKytjYXNlICRob3N0X29zIGluCisrYWl4MyopCisrICAj IEFJWCBzb21ldGltZXMgaGFzIHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFt LiAgRm9yIHNvbWUKKysgICMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1RfTkFNRVMgZW52 aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBwcm9ibGVtcworKyAgIyB2YW5pc2ggaW4gYSBwdWZmIG9m IHNtb2tlLgorKyAgaWYgdGVzdCAiWCR7Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVu CisrICAgIENPTExFQ1RfTkFNRVM9CisrICAgIGV4cG9ydCBDT0xMRUNUX05BTUVTCisrICBmaQor KyAgOzsKKytlc2FjCisrCisrIyBHbG9iYWwgdmFyaWFibGVzOgorK29maWxlPWxpYnRvb2wKKytj YW5fYnVpbGRfc2hhcmVkPXllcworKworKyMgQWxsIGtub3duIGxpbmtlcnMgcmVxdWlyZSBhIGAu YScgYXJjaGl2ZSBmb3Igc3RhdGljIGxpbmtpbmcgKGV4Y2VwdCBNU1ZDLAorKyMgd2hpY2ggbmVl ZHMgJy5saWInKS4KKytsaWJleHQ9YQorKworK3dpdGhfZ251X2xkPSIkbHRfY3ZfcHJvZ19nbnVf bGQiCisrCisrb2xkX0NDPSIkQ0MiCisrb2xkX0NGTEFHUz0iJENGTEFHUyIKKysKKysjIFNldCBz YW5lIGRlZmF1bHRzIGZvciB2YXJpb3VzIHZhcmlhYmxlcworK3Rlc3QgLXogIiRDQyIgJiYgQ0M9 Y2MKKyt0ZXN0IC16ICIkTFRDQyIgJiYgTFRDQz0kQ0MKKyt0ZXN0IC16ICIkTFRDRkxBR1MiICYm IExUQ0ZMQUdTPSRDRkxBR1MKKyt0ZXN0IC16ICIkTEQiICYmIExEPWxkCisrdGVzdCAteiAiJGFj X29iamV4dCIgJiYgYWNfb2JqZXh0PW8KKysKKytfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0p CisrCisrIyBPbmx5IHBlcmZvcm0gdGhlIGNoZWNrIGZvciBmaWxlLCBpZiB0aGUgY2hlY2sgbWV0 aG9kIHJlcXVpcmVzIGl0CisrdGVzdCAteiAiJE1BR0lDX0NNRCIgJiYgTUFHSUNfQ01EPWZpbGUK KytjYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgorK2ZpbGVfbWFnaWMqKQorKyAgaWYgdGVz dCAiJGZpbGVfbWFnaWNfY21kIiA9ICckTUFHSUNfQ01EJzsgdGhlbgorKyAgICBfTFRfUEFUSF9N QUdJQworKyAgZmkKKysgIDs7CisrZXNhYworKworKyMgVXNlIEMgZm9yIHRoZSBkZWZhdWx0IGNv bmZpZ3VyYXRpb24gaW4gdGhlIGxpYnRvb2wgc2NyaXB0CisrTFRfU1VQUE9SVEVEX1RBRyhbQ0Nd KQorK19MVF9MQU5HX0NfQ09ORklHCisrX0xUX0xBTkdfREVGQVVMVF9DT05GSUcKKytfTFRfQ09O RklHX0NPTU1BTkRTCisrXSkjIF9MVF9TRVRVUAorKworKworKyMgX0xUX1BSRVBBUkVfU0VEX1FV T1RFX1ZBUlMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBEZWZpbmUgYSBmZXcg c2VkIHN1YnN0aXR1dGlvbiB0aGF0IGhlbHAgdXMgZG8gcm9idXN0IHF1b3RpbmcuCisrbTRfZGVm dW4oW19MVF9QUkVQQVJFX1NFRF9RVU9URV9WQVJTXSwKKytbIyBCYWNrc2xhc2hpZnkgbWV0YWNo YXJhY3RlcnMgdGhhdCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbgorKyMgZG91YmxlLXF1b3RlZCBz dHJpbmdzLgorK3NlZF9xdW90ZV9zdWJzdD0ncy9cKFtbImAkXFxdXVwpL1xcXDEvZycKKysKKysj IFNhbWUgYXMgYWJvdmUsIGJ1dCBkbyBub3QgcXVvdGUgdmFyaWFibGUgcmVmZXJlbmNlcy4KKytk b3VibGVfcXVvdGVfc3Vic3Q9J3MvXChbWyJgXFxdXVwpL1xcXDEvZycKKysKKysjIFNlZCBzdWJz dGl0dXRpb24gdG8gZGVsYXkgZXhwYW5zaW9uIG9mIGFuIGVzY2FwZWQgc2hlbGwgdmFyaWFibGUg aW4gYQorKyMgZG91YmxlX3F1b3RlX3N1YnN0J2VkIHN0cmluZy4KKytkZWxheV92YXJpYWJsZV9z dWJzdD0ncy9cXFxcXFxcXFxcXCQvXFxcXFxcJC9nJworKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0 byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaW5nbGUgcXVvdGUuCisrZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0PSdzLydcJycvJ1wnXFxcXFxcXCdcJycvZycKKysKKysjIFNlZCBzdWJz dGl0dXRpb24gdG8gYXZvaWQgYWNjaWRlbnRhbCBnbG9iYmluZyBpbiBldmFsZWQgZXhwcmVzc2lv bnMKKytub19nbG9iX3N1YnN0PSdzL1wqL1xcXCovZycKKytdKQorKworKyMgX0xUX1BST0dfTFRN QUlOCisrIyAtLS0tLS0tLS0tLS0tLS0KKysjIE5vdGUgdGhhdCB0aGlzIGNvZGUgaXMgY2FsbGVk IGJvdGggZnJvbSBgY29uZmlndXJlJywgYW5kIGBjb25maWcuc3RhdHVzJworKyMgbm93IHRoYXQg d2UgdXNlIEFDX0NPTkZJR19DT01NQU5EUyB0byBnZW5lcmF0ZSBsaWJ0b29sLiAgTm90YWJseSwK KysjIGBjb25maWcuc3RhdHVzJyBoYXMgbm8gdmFsdWUgZm9yIGFjX2F1eF9kaXIgdW5sZXNzIHdl IGFyZSB1c2luZyBBdXRvbWFrZSwKKysjIHNvIHdlIHBhc3MgYSBjb3B5IGFsb25nIHRvIG1ha2Ug c3VyZSBpdCBoYXMgYSBzZW5zaWJsZSB2YWx1ZSBhbnl3YXkuCisrbTRfZGVmdW4oW19MVF9QUk9H X0xUTUFJTl0sCisrW200X2lmZGVmKFtBQ19SRVFVSVJFX0FVWF9GSUxFXSwgW0FDX1JFUVVJUkVf QVVYX0ZJTEUoW2x0bWFpbi5zaF0pXSlkbmwKKytfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbYWNf YXV4X2Rpcj0nJGFjX2F1eF9kaXInXSkKKytsdG1haW49IiRhY19hdXhfZGlyL2x0bWFpbi5zaCIK KytdKSMgX0xUX1BST0dfTFRNQUlOCisrCisrCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSAjIworKyMjIEFjY3VtdWxhdGUgY29kZSBmb3IgY3JlYXRpbmcgbGlidG9v bC4gIyMKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrCisr IyBTbyB0aGF0IHdlIGNhbiByZWNyZWF0ZSBhIGZ1bGwgbGlidG9vbCBzY3JpcHQgaW5jbHVkaW5n IGFkZGl0aW9uYWwKKysjIHRhZ3MsIHdlIGFjY3VtdWxhdGUgdGhlIGNodW5rcyBvZiBjb2RlIHRv IHNlbmQgdG8gQUNfQ09ORklHX0NPTU1BTkRTCisrIyBpbiBtYWNyb3MgYW5kIHRoZW4gbWFrZSBh IHNpbmdsZSBjYWxsIGF0IHRoZSBlbmQgdXNpbmcgdGhlIGBsaWJ0b29sJworKyMgbGFiZWwuCisr CisrCisrIyBfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbSU5JVC1DT01NQU5EU10pCisrIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBSZWdpc3RlciBJTklULUNP TU1BTkRTIHRvIGJlIHBhc3NlZCB0byBBQ19DT05GSUdfQ09NTUFORFMgbGF0ZXIuCisrbTRfZGVm aW5lKFtfTFRfQ09ORklHX0xJQlRPT0xfSU5JVF0sCisrW200X2lmdmFsKFskMV0sCisrICAgICAg ICAgIFttNF9hcHBlbmQoW19MVF9PVVRQVVRfTElCVE9PTF9JTklUXSwKKysgICAgICAgICAgICAg ICAgICAgICBbJDEKKytdKV0pXSkKKysKKysjIEluaXRpYWxpemUuCisrbTRfZGVmaW5lKFtfTFRf T1VUUFVUX0xJQlRPT0xfSU5JVF0pCisrCisrCisrIyBfTFRfQ09ORklHX0xJQlRPT0woW0NPTU1B TkRTXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUmVnaXN0ZXIgQ09N TUFORFMgdG8gYmUgcGFzc2VkIHRvIEFDX0NPTkZJR19DT01NQU5EUyBsYXRlci4KKyttNF9kZWZp bmUoW19MVF9DT05GSUdfTElCVE9PTF0sCisrW200X2lmdmFsKFskMV0sCisrICAgICAgICAgIFtt NF9hcHBlbmQoW19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU10sCisrICAgICAgICAgICAgICAg ICAgICAgWyQxCisrXSldKV0pCisrCisrIyBJbml0aWFsaXplLgorK200X2RlZmluZShbX0xUX09V VFBVVF9MSUJUT09MX0NPTU1BTkRTXSkKKysKKysKKysjIF9MVF9DT05GSUdfU0FWRV9DT01NQU5E UyhbQ09NTUFORFNdLCBbSU5JVF9DT01NQU5EU10pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfQ09ORklHX1NB VkVfQ09NTUFORFNdLAorK1tfTFRfQ09ORklHX0xJQlRPT0woWyQxXSkKKytfTFRfQ09ORklHX0xJ QlRPT0xfSU5JVChbJDJdKQorK10pCisrCisrCisrIyBfTFRfRk9STUFUX0NPTU1FTlQoW0NPTU1F TlRdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEFkZCBsZWFkaW5nIGNv bW1lbnQgbWFya3MgdG8gdGhlIHN0YXJ0IG9mIGVhY2ggbGluZSwgYW5kIGEgdHJhaWxpbmcKKysj IGZ1bGwtc3RvcCB0byB0aGUgd2hvbGUgY29tbWVudCBpZiBvbmUgaXMgbm90IHByZXNlbnQgYWxy ZWFkeS4KKyttNF9kZWZpbmUoW19MVF9GT1JNQVRfQ09NTUVOVF0sCisrW200X2lmdmFsKFskMV0s IFsKKyttNF9icGF0c3Vic3QoW200X2JwYXRzdWJzdChbJDFdLCBbXiAqXSwgWyMgXSldLAorKyAg ICAgICAgICAgICAgW1snYCRcXV0sIFtcXFwmXSldbTRfYm1hdGNoKFskMV0sIFtbIT8uXSRdLCBb XSwgWy5dKQorKyldKQorKworKworKworKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwor KyMjIEZJWE1FOiBFbGltaW5hdGUgVkFSTkFNRSAjIworKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSAjIworKworKworKyMgX0xUX0RFQ0woW0NPTkZJR05BTUVdLCBWQVJOQU1FLCBWQUxVRSwg W0RFU0NSSVBUSU9OXSwgW0lTLVRBR0dFRD9dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ09ORklHTkFN RSBpcyB0aGUgbmFtZSBnaXZlbiB0byB0aGUgdmFsdWUgaW4gdGhlIGxpYnRvb2wgc2NyaXB0Lgor KyMgVkFSTkFNRSBpcyB0aGUgKGJhc2UpIG5hbWUgdXNlZCBpbiB0aGUgY29uZmlndXJlIHNjcmlw dC4KKysjIFZBTFVFIG1heSBiZSAwLCAxIG9yIDIgZm9yIGEgY29tcHV0ZWQgcXVvdGUgZXNjYXBl ZCB2YWx1ZSBiYXNlZCBvbgorKyMgVkFSTkFNRS4gIEFueSBvdGhlciB2YWx1ZSB3aWxsIGJlIHVz ZWQgZGlyZWN0bHkuCisrbTRfZGVmaW5lKFtfTFRfREVDTF0sCisrW2x0X2lmX2FwcGVuZF91bmlx KFtsdF9kZWNsX3Zhcm5hbWVzXSwgWyQyXSwgWywgXSwKKysgICAgW2x0X2RpY3RfYWRkX3N1Ymtl eShbbHRfZGVjbF9kaWN0XSwgWyQyXSwgW2xpYnRvb2xfbmFtZV0sCisrCVttNF9pZnZhbChbJDFd LCBbJDFdLCBbJDJdKV0pCisrICAgIGx0X2RpY3RfYWRkX3N1YmtleShbbHRfZGVjbF9kaWN0XSwg WyQyXSwgW3ZhbHVlXSwgWyQzXSkKKysgICAgbTRfaWZ2YWwoWyQ0XSwKKysJW2x0X2RpY3RfYWRk X3N1YmtleShbbHRfZGVjbF9kaWN0XSwgWyQyXSwgW2Rlc2NyaXB0aW9uXSwgWyQ0XSldKQorKyAg ICBsdF9kaWN0X2FkZF9zdWJrZXkoW2x0X2RlY2xfZGljdF0sIFskMl0sCisrCVt0YWdnZWQ/XSwg W200X2lmdmFsKFskNV0sIFt5ZXNdLCBbbm9dKV0pXSkKKytdKQorKworKworKyMgX0xUX1RBR0RF Q0woW0NPTkZJR05BTUVdLCBWQVJOQU1FLCBWQUxVRSwgW0RFU0NSSVBUSU9OXSkKKysjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRf ZGVmaW5lKFtfTFRfVEFHREVDTF0sIFtfTFRfREVDTChbJDFdLCBbJDJdLCBbJDNdLCBbJDRdLCBb eWVzXSldKQorKworKworKyMgbHRfZGVjbF90YWdfdmFybmFtZXMoW1NFUEFSQVRPUl0sIFtWQVJO QU1FMS4uLl0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyttNF9kZWZpbmUoW2x0X2RlY2xfdGFnX3Zhcm5hbWVzXSwKKytbX2x0X2RlY2xfZmls dGVyKFt0YWdnZWQ/XSwgW3llc10sICRAKV0pCisrCisrCisrIyBfbHRfZGVjbF9maWx0ZXIoU1VC S0VZLCBWQUxVRSwgW1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4uXSkKKysjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZmluZShb X2x0X2RlY2xfZmlsdGVyXSwKKytbbTRfY2FzZShbJCNdLAorKyAgWzBdLCBbbTRfZmF0YWwoWyQw OiB0b28gZmV3IGFyZ3VtZW50czogJCNdKV0sCisrICBbMV0sIFttNF9mYXRhbChbJDA6IHRvbyBm ZXcgYXJndW1lbnRzOiAkIzogJDFdKV0sCisrICBbMl0sIFtsdF9kaWN0X2ZpbHRlcihbbHRfZGVj bF9kaWN0XSwgWyQxXSwgWyQyXSwgW10sIGx0X2RlY2xfdmFybmFtZXMpXSwKKysgIFszXSwgW2x0 X2RpY3RfZmlsdGVyKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbJDJdLCBbJDNdLCBsdF9kZWNsX3Zh cm5hbWVzKV0sCisrICBbbHRfZGljdF9maWx0ZXIoW2x0X2RlY2xfZGljdF0sICRAKV0pW11kbmwK KytdKQorKworKworKyMgbHRfZGVjbF9xdW90ZV92YXJuYW1lcyhbU0VQQVJBVE9SXSwgW1ZBUk5B TUUxLi4uXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrbTRfZGVmaW5lKFtsdF9kZWNsX3F1b3RlX3Zhcm5hbWVzXSwKKytbX2x0X2RlY2xf ZmlsdGVyKFt2YWx1ZV0sIFsxXSwgJEApXSkKKysKKysKKysjIGx0X2RlY2xfZHF1b3RlX3Zhcm5h bWVzKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9kZWNsX2RxdW90 ZV92YXJuYW1lc10sCisrW19sdF9kZWNsX2ZpbHRlcihbdmFsdWVdLCBbMl0sICRAKV0pCisrCisr CisrIyBsdF9kZWNsX3Zhcm5hbWVzX3RhZ2dlZChbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi4uXSkK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor K200X2RlZmluZShbbHRfZGVjbF92YXJuYW1lc190YWdnZWRdLAorK1ttNF9hc3NlcnQoWyQjIDw9 IDJdKWRubAorK18kMChtNF9xdW90ZShtNF9kZWZhdWx0KFskMV0sIFtbLCBdXSkpLAorKyAgICBt NF9pZnZhbChbJDJdLCBbWyQyXV0sIFttNF9kcXVvdGUobHRfZGVjbF90YWdfdmFybmFtZXMpXSks CisrICAgIG00X3NwbGl0KG00X25vcm1hbGl6ZShtNF9xdW90ZShfTFRfVEFHUykpLCBbIF0pKV0p CisrbTRfZGVmaW5lKFtfbHRfZGVjbF92YXJuYW1lc190YWdnZWRdLAorK1ttNF9pZnZhbChbJDNd LCBbbHRfY29tYmluZShbJDFdLCBbJDJdLCBbX10sICQzKV0pXSkKKysKKysKKysjIGx0X2RlY2xf YWxsX3Zhcm5hbWVzKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQorKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9kZWNs X2FsbF92YXJuYW1lc10sCisrW18kMChtNF9xdW90ZShtNF9kZWZhdWx0KFskMV0sIFtbLCBdXSkp LAorKyAgICAgbTRfaWYoWyQyXSwgW10sCisrCSAgIG00X3F1b3RlKGx0X2RlY2xfdmFybmFtZXMp LAorKwltNF9xdW90ZShtNF9zaGlmdCgkQCkpKSlbXWRubAorK10pCisrbTRfZGVmaW5lKFtfbHRf ZGVjbF9hbGxfdmFybmFtZXNdLAorK1tsdF9qb2luKCRALCBsdF9kZWNsX3Zhcm5hbWVzX3RhZ2dl ZChbJDFdLAorKwkJCWx0X2RlY2xfdGFnX3Zhcm5hbWVzKFtbLCBdXSwgbTRfc2hpZnQoJEApKSkp ZG5sCisrXSkKKysKKysKKysjIF9MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkUoW1ZBUk5BTUVdKQor KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBRdW90ZSBhIHZhcmlh YmxlIHZhbHVlLCBhbmQgZm9yd2FyZCBpdCB0byBgY29uZmlnLnN0YXR1cycgc28gdGhhdCBpdHMK KysjIGRlY2xhcmF0aW9uIHRoZXJlIHdpbGwgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyBpbiBgY29u ZmlndXJlJy4gIFZBUk5BTUUKKysjIG11c3QgaGF2ZSBhIHNpbmdsZSBxdW90ZSBkZWxpbWl0ZWQg dmFsdWUgZm9yIHRoaXMgdG8gd29yay4KKyttNF9kZWZpbmUoW19MVF9DT05GSUdfU1RBVFVTX0RF Q0xBUkVdLAorK1skMT0nYCRFQ0hPICIkXVskMSIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnXSkKKysKKysKKysjIF9MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkFUSU9OUworKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBXZSBkZWxpbWl0IGxpYnRvb2wgY29u ZmlnIHZhcmlhYmxlcyB3aXRoIHNpbmdsZSBxdW90ZXMsIHNvIHdoZW4KKysjIHdlIHdyaXRlIHRo ZW0gdG8gY29uZmlnLnN0YXR1cywgd2UgaGF2ZSB0byBiZSBzdXJlIHRvIHF1b3RlIGFsbAorKyMg ZW1iZWRkZWQgc2luZ2xlIHF1b3RlcyBwcm9wZXJseS4gIEluIGNvbmZpZ3VyZSwgdGhpcyBtYWNy byBleHBhbmRzCisrIyBlYWNoIHZhcmlhYmxlIGRlY2xhcmVkIHdpdGggX0xUX0RFQ0wgKGFuZCBf TFRfVEFHREVDTCkgaW50bzoKKysjCisrIyAgICA8dmFyPj0nYCRFQ0hPICIkPHZhcj4iIHwgJFNF RCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK200X2RlZnVuKFtfTFRfQ09ORklHX1NU QVRVU19ERUNMQVJBVElPTlNdLAorK1ttNF9mb3JlYWNoKFtfbHRfdmFyXSwgbTRfcXVvdGUobHRf ZGVjbF9hbGxfdmFybmFtZXMpLAorKyAgICBbbTRfbihbX0xUX0NPTkZJR19TVEFUVVNfREVDTEFS RShfbHRfdmFyKV0pXSldKQorKworKworKyMgX0xUX0xJQlRPT0xfVEFHUworKyMgLS0tLS0tLS0t LS0tLS0tLQorKyMgT3V0cHV0IGNvbW1lbnQgYW5kIGxpc3Qgb2YgdGFncyBzdXBwb3J0ZWQgYnkg dGhlIHNjcmlwdAorK200X2RlZnVuKFtfTFRfTElCVE9PTF9UQUdTXSwKKytbX0xUX0ZPUk1BVF9D T01NRU5UKFtUaGUgbmFtZXMgb2YgdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzdXBwb3J0ZWQg YnkgdGhpcyBzY3JpcHRdKWRubAorK2F2YWlsYWJsZV90YWdzPSJfTFRfVEFHUyJkbmwKKytdKQor KworKworKyMgX0xUX0xJQlRPT0xfREVDTEFSRShWQVJOQU1FLCBbVEFHXSkKKysjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFeHRyYWN0IHRoZSBkaWN0aW9uYXJ5IHZh bHVlcyBmb3IgVkFSTkFNRSAob3B0aW9uYWxseSB3aXRoIFRBRykgYW5kCisrIyBleHBhbmQgdG8g YSBjb21tZW50ZWQgc2hlbGwgdmFyaWFibGUgc2V0dGluZzoKKysjCisrIyAgICAjIFNvbWUgY29t bWVudCBhYm91dCB3aGF0IFZBUiBpcyBmb3IuCisrIyAgICB2aXNpYmxlX25hbWU9JGx0X2ludGVy bmFsX25hbWUKKyttNF9kZWZpbmUoW19MVF9MSUJUT09MX0RFQ0xBUkVdLAorK1tfTFRfRk9STUFU X0NPTU1FTlQobTRfcXVvdGUobHRfZGljdF9mZXRjaChbbHRfZGVjbF9kaWN0XSwgWyQxXSwKKysJ CQkJCSAgIFtkZXNjcmlwdGlvbl0pKSlbXWRubAorK200X3B1c2hkZWYoW19saWJ0b29sX25hbWVd LAorKyAgICBtNF9xdW90ZShsdF9kaWN0X2ZldGNoKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbbGli dG9vbF9uYW1lXSkpKVtdZG5sCisrbTRfY2FzZShtNF9xdW90ZShsdF9kaWN0X2ZldGNoKFtsdF9k ZWNsX2RpY3RdLCBbJDFdLCBbdmFsdWVdKSksCisrICAgIFswXSwgW19saWJ0b29sX25hbWU9WyRd JDFdLAorKyAgICBbMV0sIFtfbGlidG9vbF9uYW1lPSRsdF9bXSQxXSwKKysgICAgWzJdLCBbX2xp YnRvb2xfbmFtZT0kbHRfW10kMV0sCisrICAgIFtfbGlidG9vbF9uYW1lPWx0X2RpY3RfZmV0Y2go W2x0X2RlY2xfZGljdF0sIFskMV0sIFt2YWx1ZV0pXSlbXWRubAorK200X2lmdmFsKFskMl0sIFtf JDJdKVtdbTRfcG9wZGVmKFtfbGlidG9vbF9uYW1lXSlbXWRubAorK10pCisrCisrCisrIyBfTFRf TElCVE9PTF9DT05GSUdfVkFSUworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFByb2R1 Y2UgY29tbWVudGVkIGRlY2xhcmF0aW9ucyBvZiBub24tdGFnZ2VkIGxpYnRvb2wgY29uZmlnIHZh cmlhYmxlcworKyMgc3VpdGFibGUgZm9yIGluc2VydGlvbiBpbiB0aGUgTElCVE9PTCBDT05GSUcg c2VjdGlvbiBvZiB0aGUgYGxpYnRvb2wnCisrIyBzY3JpcHQuICBUYWdnZWQgbGlidG9vbCBjb25m aWcgdmFyaWFibGVzIChldmVuIGZvciB0aGUgTElCVE9PTCBDT05GSUcKKysjIHNlY3Rpb24pIGFy ZSBwcm9kdWNlZCBieSBfTFRfTElCVE9PTF9UQUdfVkFSUy4KKyttNF9kZWZ1bihbX0xUX0xJQlRP T0xfQ09ORklHX1ZBUlNdLAorK1ttNF9mb3JlYWNoKFtfbHRfdmFyXSwKKysgICAgbTRfcXVvdGUo X2x0X2RlY2xfZmlsdGVyKFt0YWdnZWQ/XSwgW25vXSwgW10sIGx0X2RlY2xfdmFybmFtZXMpKSwK KysgICAgW200X24oW19MVF9MSUJUT09MX0RFQ0xBUkUoX2x0X3ZhcildKV0pXSkKKysKKysKKysj IF9MVF9MSUJUT09MX1RBR19WQVJTKFRBRykKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyttNF9kZWZpbmUoW19MVF9MSUJUT09MX1RBR19WQVJTXSwKKytbbTRfZm9yZWFjaChbX2x0X3Zh cl0sIG00X3F1b3RlKGx0X2RlY2xfdGFnX3Zhcm5hbWVzKSwKKysgICAgW200X24oW19MVF9MSUJU T09MX0RFQ0xBUkUoX2x0X3ZhciwgWyQxXSldKV0pXSkKKysKKysKKysjIF9MVF9UQUdWQVIoVkFS TkFNRSwgW1RBR05BTUVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRf ZGVmaW5lKFtfTFRfVEFHVkFSXSwgW200X2lmdmFsKFskMl0sIFskMV8kMl0sIFskMV0pXSkKKysK KysKKysjIF9MVF9DT05GSUdfQ09NTUFORFMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFNl bmQgYWNjdW11bGF0ZWQgb3V0cHV0IHRvICRDT05GSUdfU1RBVFVTLiAgVGhhbmtzIHRvIHRoZSBs aXN0cyBvZgorKyMgdmFyaWFibGVzIGZvciBzaW5nbGUgYW5kIGRvdWJsZSBxdW90ZSBlc2NhcGlu ZyB3ZSBzYXZlZCBmcm9tIGNhbGxzCisrIyB0byBfTFRfREVDTCwgd2UgY2FuIHB1dCBxdW90ZSBl c2NhcGVkIHZhcmlhYmxlcyBkZWNsYXJhdGlvbnMKKysjIGludG8gYGNvbmZpZy5zdGF0dXMnLCBh bmQgdGhlbiB0aGUgc2hlbGwgY29kZSB0byBxdW90ZSBlc2NhcGUgdGhlbSBpbgorKyMgZm9yIGxv b3BzIGluIGBjb25maWcuc3RhdHVzJy4gIEZpbmFsbHksIGFueSBhZGRpdGlvbmFsIGNvZGUgYWNj dW11bGF0ZWQKKysjIGZyb20gY2FsbHMgdG8gX0xUX0NPTkZJR19MSUJUT09MX0lOSVQgaXMgZXhw YW5kZWQuCisrbTRfZGVmdW4oW19MVF9DT05GSUdfQ09NTUFORFNdLAorK1tBQ19QUk9WSURFX0lG RUxTRShbTFRfT1VUUFVUXSwKKysJZG5sIElmIHRoZSBsaWJ0b29sIGdlbmVyYXRpb24gY29kZSBo YXMgYmVlbiBwbGFjZWQgaW4gJENPTkZJR19MVCwKKysJZG5sIGluc3RlYWQgb2YgZHVwbGljYXRp bmcgaXQgYWxsIG92ZXIgYWdhaW4gaW50byBjb25maWcuc3RhdHVzLAorKwlkbmwgdGhlbiB3ZSB3 aWxsIGhhdmUgY29uZmlnLnN0YXR1cyBydW4gJENPTkZJR19MVCBsYXRlciwgc28gaXQKKysJZG5s IG5lZWRzIHRvIGtub3cgd2hhdCBuYW1lIGlzIHN0b3JlZCB0aGVyZToKKysgICAgICAgIFtBQ19D T05GSUdfQ09NTUFORFMoW2xpYnRvb2xdLAorKyAgICAgICAgICAgIFskU0hFTEwgJENPTkZJR19M VCB8fCBBU19FWElUKDEpXSwgW0NPTkZJR19MVD0nJENPTkZJR19MVCddKV0sCisrICAgIGRubCBJ ZiB0aGUgbGlidG9vbCBnZW5lcmF0aW9uIGNvZGUgaXMgZGVzdGluZWQgZm9yIGNvbmZpZy5zdGF0 dXMsCisrICAgIGRubCBleHBhbmQgdGhlIGFjY3VtdWxhdGVkIGNvbW1hbmRzIGFuZCBpbml0IGNv ZGUgbm93OgorKyAgICBbQUNfQ09ORklHX0NPTU1BTkRTKFtsaWJ0b29sXSwKKysgICAgICAgIFtf TFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFNdLCBbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRT X0lOSVRdKV0pCisrXSkjX0xUX0NPTkZJR19DT01NQU5EUworKworKworKyMgSW5pdGlhbGl6ZS4K KyttNF9kZWZpbmUoW19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU19JTklUXSwKKytbCisrCisr IyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9y eSB0byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQuCisrKHVuc2V0IENEUEFUSCkgPi9kZXYv bnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworK3NlZF9xdW90ZV9zdWJzdD0nJHNlZF9xdW90 ZV9zdWJzdCcKKytkb3VibGVfcXVvdGVfc3Vic3Q9JyRkb3VibGVfcXVvdGVfc3Vic3QnCisrZGVs YXlfdmFyaWFibGVfc3Vic3Q9JyRkZWxheV92YXJpYWJsZV9zdWJzdCcKKytfTFRfQ09ORklHX1NU QVRVU19ERUNMQVJBVElPTlMKKytMVENDPSckTFRDQycKKytMVENGTEFHUz0nJExUQ0ZMQUdTJwor K2NvbXBpbGVyPSckY29tcGlsZXJfREVGQVVMVCcKKysKKysjIEEgZnVuY3Rpb24gdGhhdCBpcyB1 c2VkIHdoZW4gdGhlcmUgaXMgbm8gcHJpbnQgYnVpbHRpbiBvciBwcmludGYuCisrZnVuY19mYWxs YmFja19lY2hvICgpCisreworKyAgZXZhbCAnY2F0IDw8X0xURUNIT19FT0YKKytcJFtdMQorK19M VEVDSE9fRU9GJworK30KKysKKysjIFF1b3RlIGV2YWxlZCBzdHJpbmdzLgorK2ZvciB2YXIgaW4g bHRfZGVjbF9hbGxfdmFybmFtZXMoW1sgXAorK11dLCBsdF9kZWNsX3F1b3RlX3Zhcm5hbWVzKTsg ZG8KKysgICAgY2FzZSBcYGV2YWwgXFxcXFwkRUNITyBcXFxcIiJcXFxcXCRcJHZhciJcXFxcIlxg IGluCisrICAgICpbW1xcXFxcXFxgXFwiXFxcJF1dKikKKysgICAgICBldmFsICJsdF9cJHZhcj1c XFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlxcXCRcJHZhclxcIiB8IFxcXCRTRUQgXFwiXFxcJHNlZF9x dW90ZV9zdWJzdFxcIlxcXGBcXFxcXFwiIgorKyAgICAgIDs7CisrICAgICopCisrICAgICAgZXZh bCAibHRfXCR2YXI9XFxcXFxcIlxcXCRcJHZhclxcXFxcXCIiCisrICAgICAgOzsKKysgICAgZXNh YworK2RvbmUKKysKKysjIERvdWJsZS1xdW90ZSBkb3VibGUtZXZhbGVkIHN0cmluZ3MuCisrZm9y IHZhciBpbiBsdF9kZWNsX2FsbF92YXJuYW1lcyhbWyBcCisrXV0sIGx0X2RlY2xfZHF1b3RlX3Zh cm5hbWVzKTsgZG8KKysgICAgY2FzZSBcYGV2YWwgXFxcXFwkRUNITyBcXFxcIiJcXFxcXCRcJHZh ciJcXFxcIlxgIGluCisrICAgICpbW1xcXFxcXFxgXFwiXFxcJF1dKikKKysgICAgICBldmFsICJs dF9cJHZhcj1cXFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlxcXCRcJHZhclxcIiB8IFxcXCRTRUQgLWUg XFwiXFxcJGRvdWJsZV9xdW90ZV9zdWJzdFxcIiAtZSBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0XFwi IC1lIFxcIlxcXCRkZWxheV92YXJpYWJsZV9zdWJzdFxcIlxcXGBcXFxcXFwiIgorKyAgICAgIDs7 CisrICAgICopCisrICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxcXCRcJHZhclxcXFxcXCIi CisrICAgICAgOzsKKysgICAgZXNhYworK2RvbmUKKysKKytfTFRfT1VUUFVUX0xJQlRPT0xfSU5J VAorK10pCisrCisrIyBfTFRfR0VORVJBVEVEX0ZJTEVfSU5JVChGSUxFLCBbQ09NTUVOVF0pCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEdlbmVyYXRlIGEgY2hp bGQgc2NyaXB0IEZJTEUgd2l0aCBhbGwgaW5pdGlhbGl6YXRpb24gbmVjZXNzYXJ5IHRvCisrIyBy ZXVzZSB0aGUgZW52aXJvbm1lbnQgbGVhcm5lZCBieSB0aGUgcGFyZW50IHNjcmlwdCwgYW5kIG1h a2UgdGhlCisrIyBmaWxlIGV4ZWN1dGFibGUuICBJZiBDT01NRU5UIGlzIHN1cHBsaWVkLCBpdCBp cyBpbnNlcnRlZCBhZnRlciB0aGUKKysjIGAjIScgc2VxdWVuY2UgYnV0IGJlZm9yZSBpbml0aWFs aXphdGlvbiB0ZXh0IGJlZ2lucy4gIEFmdGVyIHRoaXMKKysjIG1hY3JvLCBhZGRpdGlvbmFsIHRl eHQgY2FuIGJlIGFwcGVuZGVkIHRvIEZJTEUgdG8gZm9ybSB0aGUgYm9keSBvZgorKyMgdGhlIGNo aWxkIHNjcmlwdC4gIFRoZSBtYWNybyBlbmRzIHdpdGggbm9uLXplcm8gc3RhdHVzIGlmIHRoZQor KyMgZmlsZSBjb3VsZCBub3QgYmUgZnVsbHkgd3JpdHRlbiAoc3VjaCBhcyBpZiB0aGUgZGlzayBp cyBmdWxsKS4KKyttNF9pZmRlZihbQVNfSU5JVF9HRU5FUkFURURdLAorK1ttNF9kZWZ1bihbX0xU X0dFTkVSQVRFRF9GSUxFX0lOSVRdLFtBU19JTklUX0dFTkVSQVRFRCgkQCldKV0sCisrW200X2Rl ZnVuKFtfTFRfR0VORVJBVEVEX0ZJTEVfSU5JVF0sCisrW200X3JlcXVpcmUoW0FTX1BSRVBBUkVd KV1kbmwKKytbbTRfcHVzaGRlZihbQVNfTUVTU0FHRV9MT0dfRkRdKV1kbmwKKytbbHRfd3JpdGVf ZmFpbD0wCisrY2F0ID4kMSA8PF9BU0VPRiB8fCBsdF93cml0ZV9mYWlsPTEKKysjISAkU0hFTEwK KysjIEdlbmVyYXRlZCBieSAkYXNfbWUuCisrJDIKKytTSEVMTD1cJHtDT05GSUdfU0hFTEwtJFNI RUxMfQorK2V4cG9ydCBTSEVMTAorK19BU0VPRgorK2NhdCA+PiQxIDw8XF9BU0VPRiB8fCBsdF93 cml0ZV9mYWlsPTEKKytBU19TSEVMTF9TQU5JVElaRQorK19BU19QUkVQQVJFCisrZXhlYyBBU19N RVNTQUdFX0ZEPiYxCisrX0FTRU9GCisrdGVzdCAkbHRfd3JpdGVfZmFpbCA9IDAgJiYgY2htb2Qg K3ggJDFbXWRubAorK200X3BvcGRlZihbQVNfTUVTU0FHRV9MT0dfRkRdKV0pXSkjIF9MVF9HRU5F UkFURURfRklMRV9JTklUCisrCisrIyBMVF9PVVRQVVQKKysjIC0tLS0tLS0tLQorKyMgVGhpcyBt YWNybyBhbGxvd3MgZWFybHkgZ2VuZXJhdGlvbiBvZiB0aGUgbGlidG9vbCBzY3JpcHQgKGJlZm9y ZQorKyMgQUNfT1VUUFVUIGlzIGNhbGxlZCksIGluY2FzZSBpdCBpcyB1c2VkIGluIGNvbmZpZ3Vy ZSBmb3IgY29tcGlsYXRpb24KKysjIHRlc3RzLgorK0FDX0RFRlVOKFtMVF9PVVRQVVRdLAorK1s6 ICR7Q09ORklHX0xUPS4vY29uZmlnLmx0fQorK0FDX01TR19OT1RJQ0UoW2NyZWF0aW5nICRDT05G SUdfTFRdKQorK19MVF9HRU5FUkFURURfRklMRV9JTklUKFsiJENPTkZJR19MVCJdLAorK1sjIFJ1 biB0aGlzIGZpbGUgdG8gcmVjcmVhdGUgYSBsaWJ0b29sIHN0dWIgd2l0aCB0aGUgY3VycmVudCBj b25maWd1cmF0aW9uLl0pCisrCisrY2F0ID4+IiRDT05GSUdfTFQiIDw8XF9MVEVPRgorK2x0X2Ns X3NpbGVudD1mYWxzZQorK2V4ZWMgQVNfTUVTU0FHRV9MT0dfRkQ+PmNvbmZpZy5sb2cKKyt7Cisr ICBlY2hvCisrICBBU19CT1goW1J1bm5pbmcgJGFzX21lLl0pCisrfSA+JkFTX01FU1NBR0VfTE9H X0ZECisrCisrbHRfY2xfaGVscD0iXAorK1xgJGFzX21lJyBjcmVhdGVzIGEgbG9jYWwgbGlidG9v bCBzdHViIGZyb20gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiwKKytmb3IgdXNlIGluIGZ1cnRo ZXIgY29uZmlndXJlIHRpbWUgdGVzdHMgYmVmb3JlIHRoZSByZWFsIGxpYnRvb2wgaXMKKytnZW5l cmF0ZWQuCisrCisrVXNhZ2U6ICRbMF0gW1tPUFRJT05TXV0KKysKKysgIC1oLCAtLWhlbHAgICAg ICBwcmludCB0aGlzIGhlbHAsIHRoZW4gZXhpdAorKyAgLVYsIC0tdmVyc2lvbiAgIHByaW50IHZl cnNpb24gbnVtYmVyLCB0aGVuIGV4aXQKKysgIC1xLCAtLXF1aWV0ICAgICBkbyBub3QgcHJpbnQg cHJvZ3Jlc3MgbWVzc2FnZXMKKysgIC1kLCAtLWRlYnVnICAgICBkb24ndCByZW1vdmUgdGVtcG9y YXJ5IGZpbGVzCisrCisrUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1saWJ0b29sQGdudS5vcmc+LiIKKysK KytsdF9jbF92ZXJzaW9uPSJcCisrbTRfaWZzZXQoW0FDX1BBQ0tBR0VfTkFNRV0sIFtBQ19QQUNL QUdFX05BTUUgXSljb25maWcubHRbXWRubAorK200X2lmc2V0KFtBQ19QQUNLQUdFX1ZFUlNJT05d LCBbIEFDX1BBQ0tBR0VfVkVSU0lPTl0pCisrY29uZmlndXJlZCBieSAkWzBdLCBnZW5lcmF0ZWQg YnkgbTRfUEFDS0FHRV9TVFJJTkcuCisrCisrQ29weXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorK1RoaXMgY29uZmlnLmx0IHNjcmlwdCBpcyBmcmVlIHNvZnR3 YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrZ2l2ZXMgdW5saW1pdGVkIHBlcm1p c2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuIgorKworK3doaWxlIHRlc3Qg JFsjXSAhPSAwCisrZG8KKysgIGNhc2UgJFsxXSBpbgorKyAgICAtLXZlcnNpb24gfCAtLXYqIHwg LVYgKQorKyAgICAgIGVjaG8gIiRsdF9jbF92ZXJzaW9uIjsgZXhpdCAwIDs7CisrICAgIC0taGVs cCB8IC0taCogfCAtaCApCisrICAgICAgZWNobyAiJGx0X2NsX2hlbHAiOyBleGl0IDAgOzsKKysg ICAgLS1kZWJ1ZyB8IC0tZCogfCAtZCApCisrICAgICAgZGVidWc9OiA7OworKyAgICAtLXF1aWV0 IHwgLS1xKiB8IC0tc2lsZW50IHwgLS1zKiB8IC1xICkKKysgICAgICBsdF9jbF9zaWxlbnQ9OiA7 OworKworKyAgICAtKikgQUNfTVNHX0VSUk9SKFt1bnJlY29nbml6ZWQgb3B0aW9uOiAkWzFdCisr VHJ5IFxgJFswXSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLl0pIDs7CisrCisrICAgICop IEFDX01TR19FUlJPUihbdW5yZWNvZ25pemVkIGFyZ3VtZW50OiAkWzFdCisrVHJ5IFxgJFswXSAt LWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLl0pIDs7CisrICBlc2FjCisrICBzaGlmdAorK2Rv bmUKKysKKytpZiAkbHRfY2xfc2lsZW50OyB0aGVuCisrICBleGVjIEFTX01FU1NBR0VfRkQ+L2Rl di9udWxsCisrZmkKKytfTFRFT0YKKysKKytjYXQgPj4iJENPTkZJR19MVCIgPDxfTFRFT0YKKytf TFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFNfSU5JVAorK19MVEVPRgorKworK2NhdCA+PiIkQ09O RklHX0xUIiA8PFxfTFRFT0YKKytBQ19NU0dfTk9USUNFKFtjcmVhdGluZyAkb2ZpbGVdKQorK19M VF9PVVRQVVRfTElCVE9PTF9DT01NQU5EUworK0FTX0VYSVQoMCkKKytfTFRFT0YKKytjaG1vZCAr eCAiJENPTkZJR19MVCIKKysKKysjIGNvbmZpZ3VyZSBpcyB3cml0aW5nIHRvIGNvbmZpZy5sb2cs IGJ1dCBjb25maWcubHQgZG9lcyBpdHMgb3duIHJlZGlyZWN0aW9uLAorKyMgYXBwZW5kaW5nIHRv IGNvbmZpZy5sb2csIHdoaWNoIGZhaWxzIG9uIERPUywgYXMgY29uZmlnLmxvZyBpcyBzdGlsbCBr ZXB0CisrIyBvcGVuIGJ5IGNvbmZpZ3VyZS4gIEhlcmUgd2UgZXhlYyB0aGUgRkQgdG8gL2Rldi9u dWxsLCBlZmZlY3RpdmVseSBjbG9zaW5nCisrIyBjb25maWcubG9nLCBzbyBpdCBjYW4gYmUgcHJv cGVybHkgKHJlKW9wZW5lZCBhbmQgYXBwZW5kZWQgdG8gYnkgY29uZmlnLmx0LgorK2x0X2NsX3N1 Y2Nlc3M9OgorK3Rlc3QgIiRzaWxlbnQiID0geWVzICYmCisrICBsdF9jb25maWdfbHRfYXJncz0i JGx0X2NvbmZpZ19sdF9hcmdzIC0tcXVpZXQiCisrZXhlYyBBU19NRVNTQUdFX0xPR19GRD4vZGV2 L251bGwKKyskU0hFTEwgIiRDT05GSUdfTFQiICRsdF9jb25maWdfbHRfYXJncyB8fCBsdF9jbF9z dWNjZXNzPWZhbHNlCisrZXhlYyBBU19NRVNTQUdFX0xPR19GRD4+Y29uZmlnLmxvZworKyRsdF9j bF9zdWNjZXNzIHx8IEFTX0VYSVQoMSkKKytdKSMgTFRfT1VUUFVUCisrCisrCisrIyBfTFRfQ09O RklHKFRBRykKKysjIC0tLS0tLS0tLS0tLS0tLQorKyMgSWYgVEFHIGlzIHRoZSBidWlsdC1pbiB0 YWcsIGNyZWF0ZSBhbiBpbml0aWFsIGxpYnRvb2wgc2NyaXB0IHdpdGggYQorKyMgZGVmYXVsdCBj b25maWd1cmF0aW9uIGZyb20gdGhlIHVudGFnZ2VkIGNvbmZpZyB2YXJzLiAgT3RoZXJ3aXNlIGFk ZCBjb2RlCisrIyB0byBjb25maWcuc3RhdHVzIGZvciBhcHBlbmRpbmcgdGhlIGNvbmZpZ3VyYXRp b24gbmFtZWQgYnkgVEFHIGZyb20gdGhlCisrIyBtYXRjaGluZyB0YWdnZWQgY29uZmlnIHZhcnMu CisrbTRfZGVmdW4oW19MVF9DT05GSUddLAorK1ttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RF RkFVTFRTXSlkbmwKKytfTFRfQ09ORklHX1NBVkVfQ09NTUFORFMoWworKyAgbTRfZGVmaW5lKFtf TFRfVEFHXSwgbTRfaWYoWyQxXSwgW10sIFtDXSwgWyQxXSkpZG5sCisrICBtNF9pZihfTFRfVEFH LCBbQ10sIFsKKysgICAgIyBTZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRo ZSBvcHRpb25zIHdoaWNoIGFsbG93IG91cgorKyAgICAjIGNvbW1hbmRzIHRocm91Z2ggd2l0aG91 dCByZW1vdmFsIG9mIFwgZXNjYXBlcy4KKysgICAgaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitz ZXR9IiA7IHRoZW4KKysgICAgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorKyAgICBmaQorKworKyAg ICBjZmdmaWxlPSIke29maWxlfVQiCisrICAgIHRyYXAgIiRSTSBcIiRjZmdmaWxlXCI7IGV4aXQg MSIgMSAyIDE1CisrICAgICRSTSAiJGNmZ2ZpbGUiCisrCisrICAgIGNhdCA8PF9MVF9FT0YgPj4g IiRjZmdmaWxlIgorKyMhICRTSEVMTAorKworKyMgYCRFQ0hPICIkb2ZpbGUiIHwgc2VkICdzJV4u Ki8lJSdgIC0gUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2Vy dmljZXMuCisrIyBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSAkYXNfbWUgKCRQQUNLQUdFJFRJ TUVTVEFNUCkgJFZFUlNJT04KKysjIExpYnRvb2wgd2FzIGNvbmZpZ3VyZWQgb24gaG9zdCBgKGhv c3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWA6CisrIyBOT1RFOiBDaGFu Z2VzIG1hZGUgdG8gdGhpcyBmaWxlIHdpbGwgYmUgbG9zdDogbG9vayBhdCBsdG1haW4uc2guCisr IworK19MVF9DT1BZSU5HCisrX0xUX0xJQlRPT0xfVEFHUworKworKyMgIyMjIEJFR0lOIExJQlRP T0wgQ09ORklHCisrX0xUX0xJQlRPT0xfQ09ORklHX1ZBUlMKKytfTFRfTElCVE9PTF9UQUdfVkFS UworKyMgIyMjIEVORCBMSUJUT09MIENPTkZJRworKworK19MVF9FT0YKKysKKysgIGNhc2UgJGhv c3Rfb3MgaW4KKysgIGFpeDMqKQorKyAgICBjYXQgPDxcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisr IyBBSVggc29tZXRpbWVzIGhhcyBwcm9ibGVtcyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIgcHJvZ3Jh bS4gIEZvciBzb21lCisrIyByZWFzb24sIGlmIHdlIHNldCB0aGUgQ09MTEVDVF9OQU1FUyBlbnZp cm9ubWVudCB2YXJpYWJsZSwgdGhlIHByb2JsZW1zCisrIyB2YW5pc2ggaW4gYSBwdWZmIG9mIHNt b2tlLgorK2lmIHRlc3QgIlgke0NPTExFQ1RfTkFNRVMrc2V0fSIgIT0gWHNldDsgdGhlbgorKyAg Q09MTEVDVF9OQU1FUz0KKysgIGV4cG9ydCBDT0xMRUNUX05BTUVTCisrZmkKKytfTFRfRU9GCisr ICAgIDs7CisrICBlc2FjCisrCisrICBfTFRfUFJPR19MVE1BSU4KKysKKysgICMgV2UgdXNlIHNl ZCBpbnN0ZWFkIG9mIGNhdCBiZWNhdXNlIGJhc2ggb24gREpHUFAgZ2V0cyBjb25mdXNlZCBpZgor KyAgIyBpZiBmaW5kcyBtaXhlZCBDUi9MRiBhbmQgTEYtb25seSBsaW5lcy4gIFNpbmNlIHNlZCBv cGVyYXRlcyBpbgorKyAgIyB0ZXh0IG1vZGUsIGl0IHByb3Blcmx5IGNvbnZlcnRzIGxpbmVzIHRv IENSL0xGLiAgVGhpcyBiYXNoIHByb2JsZW0KKysgICMgaXMgcmVwb3J0ZWRseSBmaXhlZCwgYnV0 IHdoeSBub3QgcnVuIG9uIG9sZCB2ZXJzaW9ucyB0b28/CisrICBzZWQgJy9eIyBHZW5lcmF0ZWQg c2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUvcScgIiRsdG1haW4iID4+ICIkY2ZnZmlsZSIg XAorKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQorKworKyAgX0xUX1BST0dfWFNJ X1NIRUxMRk5TCisrCisrICBzZWQgLW4gJy9eIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGlu c2VydGVkIGhlcmUvLCRwJyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBcCisrICAgIHx8IChybSAt ZiAiJGNmZ2ZpbGUiOyBleGl0IDEpCisrCisrICBtdiAtZiAiJGNmZ2ZpbGUiICIkb2ZpbGUiIHx8 CisrICAgIChybSAtZiAiJG9maWxlIiAmJiBjcCAiJGNmZ2ZpbGUiICIkb2ZpbGUiICYmIHJtIC1m ICIkY2ZnZmlsZSIpCisrICBjaG1vZCAreCAiJG9maWxlIgorK10sCisrW2NhdCA8PF9MVF9FT0Yg Pj4gIiRvZmlsZSIKKysKKytkbmwgVW5mb3J0dW5hdGVseSB3ZSBoYXZlIHRvIHVzZSAkMSBoZXJl LCBzaW5jZSBfTFRfVEFHIGlzIG5vdCBleHBhbmRlZAorK2RubCBpbiBhIGNvbW1lbnQgKGllIGFm dGVyIGEgIykuCisrIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkMQorK19MVF9MSUJU T09MX1RBR19WQVJTKF9MVF9UQUcpCisrIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogJDEK KytfTFRfRU9GCisrXSlkbmwgL200X2lmCisrXSwKKytbbTRfaWYoWyQxXSwgW10sIFsKKysgICAg UEFDS0FHRT0nJFBBQ0tBR0UnCisrICAgIFZFUlNJT049JyRWRVJTSU9OJworKyAgICBUSU1FU1RB TVA9JyRUSU1FU1RBTVAnCisrICAgIFJNPSckUk0nCisrICAgIG9maWxlPSckb2ZpbGUnXSwgW10p CisrXSlkbmwgL19MVF9DT05GSUdfU0FWRV9DT01NQU5EUworK10pIyBfTFRfQ09ORklHCisrCisr CisrIyBMVF9TVVBQT1JURURfVEFHKFRBRykKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMg VHJhY2UgdGhpcyBtYWNybyB0byBkaXNjb3ZlciB3aGF0IHRhZ3MgYXJlIHN1cHBvcnRlZCBieSB0 aGUgbGlidG9vbAorKyMgLS10YWcgb3B0aW9uLCB1c2luZzoKKysjICAgIGF1dG9jb25mIC0tdHJh Y2UgJ0xUX1NVUFBPUlRFRF9UQUc6JDEnCisrQUNfREVGVU4oW0xUX1NVUFBPUlRFRF9UQUddLCBb XSkKKysKKysKKysjIEMgc3VwcG9ydCBpcyBidWlsdC1pbiBmb3Igbm93CisrbTRfZGVmaW5lKFtf TFRfTEFOR19DX2VuYWJsZWRdLCBbXSkKKyttNF9kZWZpbmUoW19MVF9UQUdTXSwgW10pCisrCisr CisrIyBMVF9MQU5HKExBTkcpCisrIyAtLS0tLS0tLS0tLS0tCisrIyBFbmFibGUgbGlidG9vbCBz dXBwb3J0IGZvciB0aGUgZ2l2ZW4gbGFuZ3VhZ2UgaWYgbm90IGFscmVhZHkgZW5hYmxlZC4KKytB Q19ERUZVTihbTFRfTEFOR10sCisrW0FDX0JFRk9SRShbJDBdLCBbTFRfT1VUUFVUXSlkbmwKKytt NF9jYXNlKFskMV0sCisrICBbQ10sCQkJW19MVF9MQU5HKEMpXSwKKysgIFtDKytdLAkJW19MVF9M QU5HKENYWCldLAorKyAgW0phdmFdLAkJW19MVF9MQU5HKEdDSildLAorKyAgW0ZvcnRyYW4gNzdd LAkJW19MVF9MQU5HKEY3NyldLAorKyAgW0ZvcnRyYW5dLAkJW19MVF9MQU5HKEZDKV0sCisrICBb V2luZG93cyBSZXNvdXJjZV0sCVtfTFRfTEFORyhSQyldLAorKyAgW200X2lmZGVmKFtfTFRfTEFO R19dJDFbX0NPTkZJR10sCisrICAgIFtfTFRfTEFORygkMSldLAorKyAgICBbbTRfZmF0YWwoWyQw OiB1bnN1cHBvcnRlZCBsYW5ndWFnZTogIiQxIl0pXSldKWRubAorK10pIyBMVF9MQU5HCisrCisr CisrIyBfTFRfTEFORyhMQU5HTkFNRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVu KFtfTFRfTEFOR10sCisrW200X2lmZGVmKFtfTFRfTEFOR19dJDFbX2VuYWJsZWRdLCBbXSwKKysg IFtMVF9TVVBQT1JURURfVEFHKFskMV0pZG5sCisrICBtNF9hcHBlbmQoW19MVF9UQUdTXSwgWyQx IF0pZG5sCisrICBtNF9kZWZpbmUoW19MVF9MQU5HX10kMVtfZW5hYmxlZF0sIFtdKWRubAorKyAg X0xUX0xBTkdfJDFfQ09ORklHKCQxKV0pZG5sCisrXSkjIF9MVF9MQU5HCisrCisrCisrIyBfTFRf TEFOR19ERUZBVUxUX0NPTkZJRworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZ1 bihbX0xUX0xBTkdfREVGQVVMVF9DT05GSUddLAorK1tBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJP R19DWFhdLAorKyAgW0xUX0xBTkcoQ1hYKV0sCisrICBbbTRfZGVmaW5lKFtBQ19QUk9HX0NYWF0s IGRlZm4oW0FDX1BST0dfQ1hYXSlbTFRfTEFORyhDWFgpXSldKQorKworK0FDX1BST1ZJREVfSUZF TFNFKFtBQ19QUk9HX0Y3N10sCisrICBbTFRfTEFORyhGNzcpXSwKKysgIFttNF9kZWZpbmUoW0FD X1BST0dfRjc3XSwgZGVmbihbQUNfUFJPR19GNzddKVtMVF9MQU5HKEY3NyldKV0pCisrCisrQUNf UFJPVklERV9JRkVMU0UoW0FDX1BST0dfRkNdLAorKyAgW0xUX0xBTkcoRkMpXSwKKysgIFttNF9k ZWZpbmUoW0FDX1BST0dfRkNdLCBkZWZuKFtBQ19QUk9HX0ZDXSlbTFRfTEFORyhGQyldKV0pCisr CisrZG5sIFRoZSBjYWxsIHRvIFtBXVtNX1BST0dfR0NKXSBpcyBxdW90ZWQgbGlrZSB0aGF0IHRv IHN0b3AgYWNsb2NhbAorK2RubCBwdWxsaW5nIHRoaW5ncyBpbiBuZWVkbGVzc2x5LgorK0FDX1BS T1ZJREVfSUZFTFNFKFtBQ19QUk9HX0dDSl0sCisrICBbTFRfTEFORyhHQ0opXSwKKysgIFtBQ19Q Uk9WSURFX0lGRUxTRShbQV1bTV9QUk9HX0dDSl0sCisrICAgIFtMVF9MQU5HKEdDSildLAorKyAg ICBbQUNfUFJPVklERV9JRkVMU0UoW0xUX1BST0dfR0NKXSwKKysgICAgICBbTFRfTEFORyhHQ0op XSwKKysgICAgICBbbTRfaWZkZWYoW0FDX1BST0dfR0NKXSwKKysJW200X2RlZmluZShbQUNfUFJP R19HQ0pdLCBkZWZuKFtBQ19QUk9HX0dDSl0pW0xUX0xBTkcoR0NKKV0pXSkKKysgICAgICAgbTRf aWZkZWYoW0FdW01fUFJPR19HQ0pdLAorKwlbbTRfZGVmaW5lKFtBXVtNX1BST0dfR0NKXSwgZGVm bihbQV1bTV9QUk9HX0dDSl0pW0xUX0xBTkcoR0NKKV0pXSkKKysgICAgICAgbTRfaWZkZWYoW0xU X1BST0dfR0NKXSwKKysJW200X2RlZmluZShbTFRfUFJPR19HQ0pdLCBkZWZuKFtMVF9QUk9HX0dD Sl0pW0xUX0xBTkcoR0NKKV0pXSldKV0pXSkKKysKKytBQ19QUk9WSURFX0lGRUxTRShbTFRfUFJP R19SQ10sCisrICBbTFRfTEFORyhSQyldLAorKyAgW200X2RlZmluZShbTFRfUFJPR19SQ10sIGRl Zm4oW0xUX1BST0dfUkNdKVtMVF9MQU5HKFJDKV0pXSkKKytdKSMgX0xUX0xBTkdfREVGQVVMVF9D T05GSUcKKysKKysjIE9ic29sZXRlIG1hY3JvczoKKytBVV9ERUZVTihbQUNfTElCVE9PTF9DWFhd LCBbTFRfTEFORyhDKyspXSkKKytBVV9ERUZVTihbQUNfTElCVE9PTF9GNzddLCBbTFRfTEFORyhG b3J0cmFuIDc3KV0pCisrQVVfREVGVU4oW0FDX0xJQlRPT0xfRkNdLCBbTFRfTEFORyhGb3J0cmFu KV0pCisrQVVfREVGVU4oW0FDX0xJQlRPT0xfR0NKXSwgW0xUX0xBTkcoSmF2YSldKQorK0FVX0RF RlVOKFtBQ19MSUJUT09MX1JDXSwgW0xUX0xBTkcoV2luZG93cyBSZXNvdXJjZSldKQorK2RubCBh Y2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0FDX0xJ QlRPT0xfQ1hYXSwgW10pCisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0Y3N10sIFtdKQorK2Ru bCBBQ19ERUZVTihbQUNfTElCVE9PTF9GQ10sIFtdKQorK2RubCBBQ19ERUZVTihbQUNfTElCVE9P TF9HQ0pdLCBbXSkKKytkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfUkNdLCBbXSkKKysKKysKKysj IF9MVF9UQUdfQ09NUElMRVIKKysjIC0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZ1bihbX0xUX1RB R19DT01QSUxFUl0sCisrW0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAorKworK19MVF9ERUNM KFtMVENDXSwgW0NDXSwgWzFdLCBbQSBDIGNvbXBpbGVyXSlkbmwKKytfTFRfREVDTChbTFRDRkxB R1NdLCBbQ0ZMQUdTXSwgWzFdLCBbTFRDQyBjb21waWxlciBmbGFnc10pZG5sCisrX0xUX1RBR0RF Q0woW0NDXSwgW2NvbXBpbGVyXSwgWzFdLCBbQSBsYW5ndWFnZSBzcGVjaWZpYyBjb21waWxlcl0p ZG5sCisrX0xUX1RBR0RFQ0woW3dpdGhfZ2NjXSwgW0dDQ10sIFswXSwgW0lzIHRoZSBjb21waWxl ciB0aGUgR05VIGNvbXBpbGVyP10pZG5sCisrCisrIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVj aWZpZWQsIHVzZSBDQy4KKytMVENDPSR7TFRDQy0iJENDIn0KKysKKysjIElmIG5vIEMgY29tcGls ZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQsIHVzZSBDRkxBR1MuCisrTFRDRkxBR1M9JHtMVENGTEFH Uy0iJENGTEFHUyJ9CisrCisrIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3VtZW50cy4KKytjb21waWxlcj0kQ0MKKytdKSMgX0xUX1RBR19DT01QSUxFUgorKworKworKyMg X0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysj IENoZWNrIGZvciBjb21waWxlciBib2lsZXJwbGF0ZSBvdXRwdXQgb3Igd2FybmluZ3Mgd2l0aAor KyMgdGhlIHNpbXBsZSBjb21waWxlciB0ZXN0IGNvZGUuCisrbTRfZGVmdW4oW19MVF9DT01QSUxF Ul9CT0lMRVJQTEFURV0sCisrW200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCisrYWNfb3V0 ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3Rf Y29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKKytldmFsICIkYWNfY29tcGlsZSIgMj4mMSA+L2Rldi9u dWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIKKytfbHRfY29tcGlsZXJf Ym9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCisrJFJNIGNvbmZ0ZXN0KgorK10pIyBfTFRf Q09NUElMRVJfQk9JTEVSUExBVEUKKysKKysKKysjIF9MVF9MSU5LRVJfQk9JTEVSUExBVEUKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIGZvciBsaW5rZXIgYm9pbGVycGxhdGUg b3V0cHV0IG9yIHdhcm5pbmdzIHdpdGgKKysjIHRoZSBzaW1wbGUgbGluayB0ZXN0IGNvZGUuCisr bTRfZGVmdW4oW19MVF9MSU5LRVJfQk9JTEVSUExBVEVdLAorK1ttNF9yZXF1aXJlKFtfTFRfREVD TF9TRURdKWRubAorK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAorK2VjaG8gIiRsdF9z aW1wbGVfbGlua190ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0CisrZXZhbCAiJGFjX2xpbmsi IDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCisr X2x0X2xpbmtlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyskUk0gLXIgY29uZnRl c3QqCisrXSkjIF9MVF9MSU5LRVJfQk9JTEVSUExBVEUKKysKKysjIF9MVF9SRVFVSVJFRF9EQVJX SU5fQ0hFQ0tTCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmdW5fb25jZShb X0xUX1JFUVVJUkVEX0RBUldJTl9DSEVDS1NdLFsKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAg cmhhcHNvZHkqIHwgZGFyd2luKikKKysgICAgQUNfQ0hFQ0tfVE9PTChbRFNZTVVUSUxdLCBbZHN5 bXV0aWxdLCBbOl0pCisrICAgIEFDX0NIRUNLX1RPT0woW05NRURJVF0sIFtubWVkaXRdLCBbOl0p CisrICAgIEFDX0NIRUNLX1RPT0woW0xJUE9dLCBbbGlwb10sIFs6XSkKKysgICAgQUNfQ0hFQ0tf VE9PTChbT1RPT0xdLCBbb3Rvb2xdLCBbOl0pCisrICAgIEFDX0NIRUNLX1RPT0woW09UT09MNjRd LCBbb3Rvb2w2NF0sIFs6XSkKKysgICAgX0xUX0RFQ0woW10sIFtEU1lNVVRJTF0sIFsxXSwKKysg ICAgICBbVG9vbCB0byBtYW5pcHVsYXRlIGFyY2hpdmVkIERXQVJGIGRlYnVnIHN5bWJvbCBmaWxl cyBvbiBNYWMgT1MgWF0pCisrICAgIF9MVF9ERUNMKFtdLCBbTk1FRElUXSwgWzFdLAorKyAgICAg IFtUb29sIHRvIGNoYW5nZSBnbG9iYWwgdG8gbG9jYWwgc3ltYm9scyBvbiBNYWMgT1MgWF0pCisr ICAgIF9MVF9ERUNMKFtdLCBbTElQT10sIFsxXSwKKysgICAgICBbVG9vbCB0byBtYW5pcHVsYXRl IGZhdCBvYmplY3RzIGFuZCBhcmNoaXZlcyBvbiBNYWMgT1MgWF0pCisrICAgIF9MVF9ERUNMKFtd LCBbT1RPT0xdLCBbMV0sCisrICAgICAgW2xkZC9yZWFkZWxmIGxpa2UgdG9vbCBmb3IgTWFjaC1P IGJpbmFyaWVzIG9uIE1hYyBPUyBYXSkKKysgICAgX0xUX0RFQ0woW10sIFtPVE9PTDY0XSwgWzFd LAorKyAgICAgIFtsZGQvcmVhZGVsZiBsaWtlIHRvb2wgZm9yIDY0IGJpdCBNYWNoLU8gYmluYXJp ZXMgb24gTWFjIE9TIFggMTAuNF0pCisrCisrICAgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgLXNpbmds ZV9tb2R1bGUgbGlua2VyIGZsYWddLFtsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kXSwKKysgICAg ICBbbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD1ubworKyAgICAgIGlmIHRlc3QgLXogIiR7TFRf TVVMVElfTU9EVUxFfSI7IHRoZW4KKysJIyBCeSBkZWZhdWx0IHdlIHdpbGwgYWRkIHRoZSAtc2lu Z2xlX21vZHVsZSBmbGFnLiBZb3UgY2FuIG92ZXJyaWRlCisrCSMgYnkgZWl0aGVyIHNldHRpbmcg dGhlIGVudmlyb25tZW50IHZhcmlhYmxlIExUX01VTFRJX01PRFVMRQorKwkjIG5vbi1lbXB0eSBh dCBjb25maWd1cmUgdGltZSwgb3IgYnkgYWRkaW5nIC1tdWx0aV9tb2R1bGUgdG8gdGhlCisrCSMg bGluayBmbGFncy4KKysJcm0gLXJmIGxpYmNvbmZ0ZXN0LmR5bGliKgorKwllY2hvICJpbnQgZm9v KHZvaWQpe3JldHVybiAxO30iID4gY29uZnRlc3QuYworKwllY2hvICIkTFRDQyAkTFRDRkxBR1Mg JExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIgXAorKy1keW5hbWljbGliIC1XbCwtc2luZ2xl X21vZHVsZSBjb25mdGVzdC5jIiA+JkFTX01FU1NBR0VfTE9HX0ZECisrCSRMVENDICRMVENGTEFH UyAkTERGTEFHUyAtbyBsaWJjb25mdGVzdC5keWxpYiBcCisrCSAgLWR5bmFtaWNsaWIgLVdsLC1z aW5nbGVfbW9kdWxlIGNvbmZ0ZXN0LmMgMj5jb25mdGVzdC5lcnIKKysgICAgICAgIF9sdF9yZXN1 bHQ9JD8KKysJaWYgdGVzdCAtZiBsaWJjb25mdGVzdC5keWxpYiAmJiB0ZXN0ICEgLXMgY29uZnRl c3QuZXJyICYmIHRlc3QgJF9sdF9yZXN1bHQgPSAwOyB0aGVuCisrCSAgbHRfY3ZfYXBwbGVfY2Nf c2luZ2xlX21vZD15ZXMKKysJZWxzZQorKwkgIGNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdF X0xPR19GRAorKwlmaQorKwlybSAtcmYgbGliY29uZnRlc3QuZHlsaWIqCisrCXJtIC1mIGNvbmZ0 ZXN0LioKKysgICAgICBmaV0pCisrICAgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgLWV4cG9ydGVkX3N5 bWJvbHNfbGlzdCBsaW5rZXIgZmxhZ10sCisrICAgICAgW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJv bHNfbGlzdF0sCisrICAgICAgW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD1ubworKyAg ICAgIHNhdmVfTERGTEFHUz0kTERGTEFHUworKyAgICAgIGVjaG8gIl9tYWluIiA+IGNvbmZ0ZXN0 LnN5bQorKyAgICAgIExERkxBR1M9IiRMREZMQUdTIC1XbCwtZXhwb3J0ZWRfc3ltYm9sc19saXN0 LGNvbmZ0ZXN0LnN5bSIKKysgICAgICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtd LFtdKV0sCisrCVtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9eWVzXSwKKysJW2x0X2N2 X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD1ub10pCisrCUxERkxBR1M9IiRzYXZlX0xERkxBR1Mi CisrICAgIF0pCisrICAgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgLWZvcmNlX2xvYWQgbGlua2VyIGZs YWddLFtsdF9jdl9sZF9mb3JjZV9sb2FkXSwKKysgICAgICBbbHRfY3ZfbGRfZm9yY2VfbG9hZD1u bworKyAgICAgIGNhdCA+IGNvbmZ0ZXN0LmMgPDwgX0xUX0VPRgorK2ludCBmb3JjZWRfbG9hZGVk KCkgeyByZXR1cm4gMjt9CisrX0xUX0VPRgorKyAgICAgIGVjaG8gIiRMVENDICRMVENGTEFHUyAt YyAtbyBjb25mdGVzdC5vIGNvbmZ0ZXN0LmMiID4mQVNfTUVTU0FHRV9MT0dfRkQKKysgICAgICAk TFRDQyAkTFRDRkxBR1MgLWMgLW8gY29uZnRlc3QubyBjb25mdGVzdC5jIDI+JkFTX01FU1NBR0Vf TE9HX0ZECisrICAgICAgZWNobyAiJEFSIGNydSBsaWJjb25mdGVzdC5hIGNvbmZ0ZXN0Lm8iID4m QVNfTUVTU0FHRV9MT0dfRkQKKysgICAgICAkQVIgY3J1IGxpYmNvbmZ0ZXN0LmEgY29uZnRlc3Qu byAyPiZBU19NRVNTQUdFX0xPR19GRAorKyAgICAgIGVjaG8gIiRSQU5MSUIgbGliY29uZnRlc3Qu YSIgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgICAgICRSQU5MSUIgbGliY29uZnRlc3QuYSAyPiZB U19NRVNTQUdFX0xPR19GRAorKyAgICAgIGNhdCA+IGNvbmZ0ZXN0LmMgPDwgX0xUX0VPRgorK2lu dCBtYWluKCkgeyByZXR1cm4gMDt9CisrX0xUX0VPRgorKyAgICAgIGVjaG8gIiRMVENDICRMVENG TEFHUyAkTERGTEFHUyAtbyBjb25mdGVzdCBjb25mdGVzdC5jIC1XbCwtZm9yY2VfbG9hZCwuL2xp YmNvbmZ0ZXN0LmEiID4mQVNfTUVTU0FHRV9MT0dfRkQKKysgICAgICAkTFRDQyAkTFRDRkxBR1Mg JExERkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAtV2wsLWZvcmNlX2xvYWQsLi9saWJjb25m dGVzdC5hIDI+Y29uZnRlc3QuZXJyCisrICAgICAgX2x0X3Jlc3VsdD0kPworKyAgICAgIGlmIHRl c3QgLWYgY29uZnRlc3QgJiYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyciAmJiB0ZXN0ICRfbHRfcmVz dWx0ID0gMCAmJiAkR1JFUCBmb3JjZWRfbG9hZCBjb25mdGVzdCAyPiYxID4vZGV2L251bGw7IHRo ZW4KKysJbHRfY3ZfbGRfZm9yY2VfbG9hZD15ZXMKKysgICAgICBlbHNlCisrCWNhdCBjb25mdGVz dC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgICAgIGZpCisrICAgICAgICBybSAtZiBjb25m dGVzdC5lcnIgbGliY29uZnRlc3QuYSBjb25mdGVzdCBjb25mdGVzdC5jCisrICAgICAgICBybSAt cmYgY29uZnRlc3QuZFNZTQorKyAgICBdKQorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIHJo YXBzb2R5KiB8IGRhcndpbjEuW1swMTJdXSkKKysgICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5l ZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7CisrICAgIGRhcndpbjEuKikKKysg ICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3bH0t dW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7CisrICAgIGRhcndpbiopICMgZGFyd2luIDUueCBv bgorKyAgICAgICMgaWYgcnVubmluZyBvbiAxMC41IG9yIGxhdGVyLCB0aGUgZGVwbG95bWVudCB0 YXJnZXQgZGVmYXVsdHMKKysgICAgICAjIHRvIHRoZSBPUyB2ZXJzaW9uLCBpZiBvbiB4ODYsIGFu ZCAxMC40LCB0aGUgZGVwbG95bWVudAorKyAgICAgICMgdGFyZ2V0IGRlZmF1bHRzIHRvIDEwLjQu IERvbid0IHlvdSBsb3ZlIGl0PworKyAgICAgIGNhc2UgJHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJH RVQtMTAuMH0sJGhvc3QgaW4KKysJMTAuMCwqODYqLWRhcndpbjgqfDEwLjAsKi1kYXJ3aW5bWzkx XV0qKQorKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1k eW5hbWljX2xvb2t1cCcgOzsKKysJMTAuW1swMTJdXSopCisrCSAgX2x0X2Rhcl9hbGxvd191bmRl ZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNz JyA7OworKwkxMC4qKQorKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmlu ZWQgJHt3bH1keW5hbWljX2xvb2t1cCcgOzsKKysgICAgICBlc2FjCisrICAgIDs7CisrICBlc2Fj CisrICAgIGlmIHRlc3QgIiRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiA9ICJ5ZXMiOyB0aGVu CisrICAgICAgX2x0X2Rhcl9zaW5nbGVfbW9kPSckc2luZ2xlX21vZHVsZScKKysgICAgZmkKKysg ICAgaWYgdGVzdCAiJGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCIgPSAieWVzIjsgdGhl bgorKyAgICAgIF9sdF9kYXJfZXhwb3J0X3N5bXM9JyAke3dsfS1leHBvcnRlZF9zeW1ib2xzX2xp c3QsJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bScKKysgICAgZWxzZQor KyAgICAgIF9sdF9kYXJfZXhwb3J0X3N5bXM9J34kTk1FRElUIC1zICRvdXRwdXRfb2JqZGlyLyR7 bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9JworKyAgICBmaQorKyAgICBpZiB0ZXN0ICIk RFNZTVVUSUwiICE9ICI6IiAmJiB0ZXN0ICIkbHRfY3ZfbGRfZm9yY2VfbG9hZCIgPSAibm8iOyB0 aGVuCisrICAgICAgX2x0X2RzeW11dGlsPSd+JERTWU1VVElMICRsaWIgfHwgOicKKysgICAgZWxz ZQorKyAgICAgIF9sdF9kc3ltdXRpbD0KKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKytdKQor KworKworKyMgX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVMKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBDaGVja3MgZm9yIGxpbmtlciBhbmQgY29tcGlsZXIgZmVhdHVyZXMgb24g ZGFyd2luCisrbTRfZGVmdW4oW19MVF9EQVJXSU5fTElOS0VSX0ZFQVRVUkVTXSwKKytbCisrICBt NF9yZXF1aXJlKFtfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLU10pCisrICBfTFRfVEFHVkFSKGFy Y2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKysgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0 LCAkMSk9bm8KKysgIF9MVF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSk9eWVzCisrICBf TFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRlZAorKyAgaWYg dGVzdCAiJGx0X2N2X2xkX2ZvcmNlX2xvYWQiID0gInllcyI7IHRoZW4KKysgICAgX0xUX1RBR1ZB Uih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSdgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNl XCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29u dmVuaWVuY2UgJHt3bH0tZm9yY2VfbG9hZCwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwi JG5ld19jb252ZW5pZW5jZVwiYCcKKysgIGVsc2UKKysgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYywgJDEpPScnCisrICBmaQorKyAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBs aWJzLCAkMSk9eWVzCisrICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9IiRf bHRfZGFyX2FsbG93X3VuZGVmaW5lZCIKKysgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICBp Zm9ydCopIF9sdF9kYXJfY2FuX3NoYXJlZD15ZXMgOzsKKysgICAgICopIF9sdF9kYXJfY2FuX3No YXJlZD0kR0NDIDs7CisrICBlc2FjCisrICBpZiB0ZXN0ICIkX2x0X2Rhcl9jYW5fc2hhcmVkIiA9 ICJ5ZXMiOyB0aGVuCisrICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPWZ1bmNfZWNob19hbGwK KysgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0iXCRDQyAtZHluYW1pY2xpYiBcJGFs bG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxl cl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9k YXJfc2luZ2xlX21vZCR7X2x0X2RzeW11dGlsfSIKKysgICAgX0xUX1RBR1ZBUihtb2R1bGVfY21k cywgJDEpPSJcJENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxp Ym9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kc3ltdXRpbH0iCisrICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9y dF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwk Q0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMg XCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1l IFwkdmVyc3RyaW5nICR7X2x0X2Rhcl9zaW5nbGVfbW9kfSR7X2x0X2Rhcl9leHBvcnRfc3ltc30k e19sdF9kc3ltdXRpbH0iCisrICAgIF9MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9 InNlZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7 bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwk bGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFy X2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKysgICAgbTRfaWYoWyQxXSwgW0NYWF0sCisr WyAgIGlmIHRlc3QgIiRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiAhPSAieWVzIjsgdGhlbgor KyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9IlwkQ0MgLXIgLWtlZXBfcHJpdmF0 ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1k eW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIu byBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25h bWUgXCR2ZXJzdHJpbmcke19sdF9kc3ltdXRpbH0iCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2V4cHN5bV9jbWRzLCAkMSk9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91 dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtciAta2VlcF9wcml2 YXRlX2V4dGVybnMgLW5vc3RkbGliIC1vIFwke2xpYn0tbWFzdGVyLm8gXCRsaWJvYmpzflwkQ0Mg LWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJHtsaWJ9LW1hc3Rl ci5vIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNv bmFtZSBcJHZlcnN0cmluZyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisr ICAgIGZpCisrXSxbXSkKKysgIGVsc2UKKysgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8K KysgIGZpCisrXSkKKysKKysjIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKyMgTGlua3MgYSBtaW5pbWFsIHByb2dyYW0gYW5kIGNoZWNrcyB0aGUg ZXhlY3V0YWJsZQorKyMgZm9yIHRoZSBzeXN0ZW0gZGVmYXVsdCBoYXJkY29kZWQgbGlicmFyeSBw YXRoLiBJbiBtb3N0IGNhc2VzLAorKyMgdGhpcyBpcyAvdXNyL2xpYjovbGliLCBidXQgd2hlbiB0 aGUgTVBJIGNvbXBpbGVycyBhcmUgdXNlZAorKyMgdGhlIGxvY2F0aW9uIG9mIHRoZSBjb21tdW5p Y2F0aW9uIGFuZCBNUEkgbGlicyBhcmUgaW5jbHVkZWQgdG9vLgorKyMgSWYgd2UgZG9uJ3QgZmlu ZCBhbnl0aGluZywgdXNlIHRoZSBkZWZhdWx0IGxpYnJhcnkgcGF0aCBhY2NvcmRpbmcKKysjIHRv IHRoZSBhaXggbGQgbWFudWFsLgorK200X2RlZnVuKFtfTFRfU1lTX01PRFVMRV9QQVRIX0FJWF0s CisrW200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCisrQUNfTElOS19JRkVMU0UoQUNfTEFO R19QUk9HUkFNLFsKKytsdF9haXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1wb3J0IEZpbGUgU3Ry aW5ncy8sL14kLyB7CisrCS9eMC8geworKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCisrCSAgICBw CisrCX0KKysgICAgfScKKythaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQg Mj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKysjIENoZWNr IGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCisraWYgdGVz dCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29u ZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRo X3NlZCJgCisrZmldLFtdKQorK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4gYWl4X2xp YnBhdGg9Ii91c3IvbGliOi9saWIiOyBmaQorK10pIyBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAor KworKworKyMgX0xUX1NIRUxMX0lOSVQoQVJHKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQorK200 X2RlZmluZShbX0xUX1NIRUxMX0lOSVRdLAorK1ttNF9kaXZlcnRfdGV4dChbTTRTSC1JTklUXSwg WyQxCisrXSldKSMgX0xUX1NIRUxMX0lOSVQKKysKKysKKysKKysjIF9MVF9QUk9HX0VDSE9fQkFD S1NMQVNICisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRmluZCBob3cgd2UgY2FuIGZh a2UgYW4gZWNobyBjb21tYW5kIHRoYXQgZG9lcyBub3QgaW50ZXJwcmV0IGJhY2tzbGFzaC4KKysj IEluIHBhcnRpY3VsYXIsIHdpdGggQXV0b2NvbmYgMi42MCBvciBsYXRlciB3ZSBhZGQgc29tZSBj b2RlIHRvIHRoZSBzdGFydAorKyMgb2YgdGhlIGdlbmVyYXRlZCBjb25maWd1cmUgc2NyaXB0IHdo aWNoIHdpbGwgZmluZCBhIHNoZWxsIHdpdGggYSBidWlsdGluCisrIyBwcmludGYgKHdoaWNoIHdl IGNhbiB1c2UgYXMgYW4gZWNobyBjb21tYW5kKS4KKyttNF9kZWZ1bihbX0xUX1BST0dfRUNIT19C QUNLU0xBU0hdLAorK1tFQ0hPPSdcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcJworK0VDSE89JEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNITworK0VDSE89JEVDSE8k RUNITyRFQ0hPJEVDSE8kRUNITyRFQ0hPCisrCisrQUNfTVNHX0NIRUNLSU5HKFtob3cgdG8gcHJp bnQgc3RyaW5nc10pCisrIyBUZXN0IHByaW50IGZpcnN0LCBiZWNhdXNlIGl0IHdpbGwgYmUgYSBi dWlsdGluIGlmIHByZXNlbnQuCisraWYgdGVzdCAiWGBwcmludCAtciAtLSAtbiAyPi9kZXYvbnVs bGAiID0gWC1uICYmIFwKKysgICB0ZXN0ICJYYHByaW50IC1yIC0tICRFQ0hPIDI+L2Rldi9udWxs YCIgPSAiWCRFQ0hPIjsgdGhlbgorKyAgRUNITz0ncHJpbnQgLXIgLS0nCisrZWxpZiB0ZXN0ICJY YHByaW50ZiAlcyAkRUNITyAyPi9kZXYvbnVsbGAiID0gIlgkRUNITyI7IHRoZW4KKysgIEVDSE89 J3ByaW50ZiAlc1xuJworK2Vsc2UKKysgICMgVXNlIHRoaXMgZnVuY3Rpb24gYXMgYSBmYWxsYmFj ayB0aGF0IGFsd2F5cyB3b3Jrcy4KKysgIGZ1bmNfZmFsbGJhY2tfZWNobyAoKQorKyAgeworKyAg ICBldmFsICdjYXQgPDxfTFRFQ0hPX0VPRgorKyRbXTEKKytfTFRFQ0hPX0VPRicKKysgIH0KKysg IEVDSE89J2Z1bmNfZmFsbGJhY2tfZWNobycKKytmaQorKworKyMgZnVuY19lY2hvX2FsbCBhcmcu Li4KKysjIEludm9rZSAkRUNITyB3aXRoIGFsbCBhcmdzLCBzcGFjZS1zZXBhcmF0ZWQuCisrZnVu Y19lY2hvX2FsbCAoKQorK3sKKysgICAgJEVDSE8gIiQqIiAKKyt9CisrCisrY2FzZSAiJEVDSE8i IGluCisrICBwcmludGYqKSBBQ19NU0dfUkVTVUxUKFtwcmludGZdKSA7OworKyAgcHJpbnQqKSBB Q19NU0dfUkVTVUxUKFtwcmludCAtcl0pIDs7CisrICAqKSBBQ19NU0dfUkVTVUxUKFtjYXRdKSA7 OworK2VzYWMKKysKKyttNF9pZmRlZihbX0FTX0RFVEVDVF9TVUdHRVNURURdLAorK1tfQVNfREVU RUNUX1NVR0dFU1RFRChbCisrICB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0ke0JBU0hfVkVS U0lPTitzZXR9IiB8fCAoCisrICAgIEVDSE89J1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFwnCisrICAgIEVDSE89JEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNITwor KyAgICBFQ0hPPSRFQ0hPJEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNITworKyAgICBQQVRIPS9lbXB0 eSBGUEFUSD0vZW1wdHk7IGV4cG9ydCBQQVRIIEZQQVRICisrICAgIHRlc3QgIlhgcHJpbnRmICVz ICRFQ0hPYCIgPSAiWCRFQ0hPIiBcCisrICAgICAgfHwgdGVzdCAiWGBwcmludCAtciAtLSAkRUNI T2AiID0gIlgkRUNITyIgKV0pXSkKKysKKytfTFRfREVDTChbXSwgW1NIRUxMXSwgWzFdLCBbU2hl bGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0c10pCisrX0xUX0RFQ0woW10sIFtF Q0hPXSwgWzFdLCBbQW4gZWNobyBwcm9ncmFtIHRoYXQgcHJvdGVjdHMgYmFja3NsYXNoZXNdKQor K10pIyBfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSAorKworKworKyMgX0xUX0VOQUJMRV9MT0NLCisr IyAtLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZ1bihbX0xUX0VOQUJMRV9MT0NLXSwKKytbQUNfQVJH X0VOQUJMRShbbGlidG9vbC1sb2NrXSwKKysgIFtBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLWxp YnRvb2wtbG9ja10sCisrICAgIFthdm9pZCBsb2NraW5nIChtaWdodCBicmVhayBwYXJhbGxlbCBi dWlsZHMpXSldKQorK3Rlc3QgIngkZW5hYmxlX2xpYnRvb2xfbG9jayIgIT0geG5vICYmIGVuYWJs ZV9saWJ0b29sX2xvY2s9eWVzCisrCisrIyBTb21lIGZsYWdzIG5lZWQgdG8gYmUgcHJvcGFnYXRl ZCB0byB0aGUgY29tcGlsZXIgb3IgbGlua2VyIGZvciBnb29kCisrIyBsaWJ0b29sIHN1cHBvcnQu CisrY2FzZSAkaG9zdCBpbgorK2lhNjQtKi1ocHV4KikKKysgICMgRmluZCBvdXQgd2hpY2ggQUJJ IHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0CisrICBp ZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgorKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxl IGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCisrICAgICAgKkVMRi0zMiopCisrCUhQVVhfSUE2NF9N T0RFPSIzMiIKKysJOzsKKysgICAgICAqRUxGLTY0KikKKysJSFBVWF9JQTY0X01PREU9IjY0Igor Kwk7OworKyAgICBlc2FjCisrICBmaQorKyAgcm0gLXJmIGNvbmZ0ZXN0KgorKyAgOzsKKysqLSot aXJpeDYqKQorKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgorKyAgZWNobyAn WyNdbGluZSAnJExJTkVOTycgImNvbmZpZ3VyZSInID4gY29uZnRlc3QuJGFjX2V4dAorKyAgaWYg QUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KKysgICAgaWYgdGVzdCAiJGx0X2N2X3Byb2df Z251X2xkIiA9IHllczsgdGhlbgorKyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qu JGFjX29iamV4dGAgaW4KKysJKjMyLWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC1tZWxmMzJic21p cCIKKysJICA7OworKwkqTjMyKikKKysJICBMRD0iJHtMRC1sZH0gLW1lbGYzMmJtaXBuMzIiCisr CSAgOzsKKysJKjY0LWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC1tZWxmNjRibWlwIgorKwk7Owor KyAgICAgIGVzYWMKKysgICAgZWxzZQorKyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRl c3QuJGFjX29iamV4dGAgaW4KKysJKjMyLWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC0zMiIKKysJ ICA7OworKwkqTjMyKikKKysJICBMRD0iJHtMRC1sZH0gLW4zMiIKKysJICA7OworKwkqNjQtYml0 KikKKysJICBMRD0iJHtMRC1sZH0gLTY0IgorKwkgIDs7CisrICAgICAgZXNhYworKyAgICBmaQor KyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7CisrCisreDg2XzY0LSprZnJlZWJzZCot Z251fHg4Nl82NC0qbGludXgqfHBwYyotKmxpbnV4Knxwb3dlcnBjKi0qbGludXgqfCBcCisrczM5 MCotKmxpbnV4KnxzMzkwKi0qdHBmKnxzcGFyYyotKmxpbnV4KikKKysgICMgRmluZCBvdXQgd2hp Y2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0 CisrICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgorKyAgICBjYXNlIGAvdXNyL2Jp bi9maWxlIGNvbmZ0ZXN0Lm9gIGluCisrICAgICAgKjMyLWJpdCopCisrCWNhc2UgJGhvc3QgaW4K KysJICB4ODZfNjQtKmtmcmVlYnNkKi1nbnUpCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kz ODZfZmJzZCIKKysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1s ZH0gLW0gZWxmX2kzODYiCisrCSAgICA7OworKwkgIHBwYzY0LSpsaW51eCp8cG93ZXJwYzY0LSps aW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmMzJwcGNsaW51eCIKKysJICAgIDs7Cisr CSAgczM5MHgtKmxpbnV4KikKKysJICAgIExEPSIke0xELWxkfSAtbSBlbGZfczM5MCIKKysJICAg IDs7CisrCSAgc3BhcmM2NC0qbGludXgqKQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMyX3Nw YXJjIgorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgICo2NC1iaXQqKQorKwljYXNlICRo b3N0IGluCisrCSAgeDg2XzY0LSprZnJlZWJzZCotZ251KQorKwkgICAgTEQ9IiR7TEQtbGR9IC1t IGVsZl94ODZfNjRfZmJzZCIKKysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBM RD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82NCIKKysJICAgIDs7CisrCSAgcHBjKi0qbGludXgqfHBv d2VycGMqLSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRwcGMiCisrCSAgICA7 OworKwkgIHMzOTAqLSpsaW51eCp8czM5MCotKnRwZiopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0g ZWxmNjRfczM5MCIKKysJICAgIDs7CisrCSAgc3BhcmMqLSpsaW51eCopCisrCSAgICBMRD0iJHtM RC1sZH0gLW0gZWxmNjRfc3BhcmMiCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgIGVzYWMK KysgIGZpCisrICBybSAtcmYgY29uZnRlc3QqCisrICA7OworKworKyotKi1zY28zLjJ2NSopCisr ICAjIE9uIFNDTyBPcGVuU2VydmVyIDUsIHdlIG5lZWQgLWJlbGYgdG8gZ2V0IGZ1bGwtZmVhdHVy ZWQgYmluYXJpZXMuCisrICBTQVZFX0NGTEFHUz0iJENGTEFHUyIKKysgIENGTEFHUz0iJENGTEFH UyAtYmVsZiIKKysgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIG5lZWRz IC1iZWxmXSwgbHRfY3ZfY2NfbmVlZHNfYmVsZiwKKysgICAgW0FDX0xBTkdfUFVTSChDKQorKyAg ICAgQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW11dLFtbXV0pXSxbbHRfY3ZfY2Nf bmVlZHNfYmVsZj15ZXNdLFtsdF9jdl9jY19uZWVkc19iZWxmPW5vXSkKKysgICAgIEFDX0xBTkdf UE9QXSkKKysgIGlmIHRlc3QgeCIkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgIT0geCJ5ZXMiOyB0aGVu CisrICAgICMgdGhpcyBpcyBwcm9iYWJseSBnY2MgMi44LjAsIGVnY3MgMS4wIG9yIG5ld2VyOyBu byBuZWVkIGZvciAtYmVsZgorKyAgICBDRkxBR1M9IiRTQVZFX0NGTEFHUyIKKysgIGZpCisrICA7 OworK3NwYXJjKi0qc29sYXJpcyopCisrICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNp bmcuCisrICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAorKyAgaWYgQUNfVFJZX0VW QUwoYWNfY29tcGlsZSk7IHRoZW4KKysgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC5v YCBpbgorKyAgICAqNjQtYml0KikKKysgICAgICBjYXNlICRsdF9jdl9wcm9nX2dudV9sZCBpbgor KyAgICAgIHllcyopIExEPSIke0xELWxkfSAtbSBlbGY2NF9zcGFyYyIgOzsKKysgICAgICAqKQor KwlpZiAke0xELWxkfSAtNjQgLXIgLW8gY29uZnRlc3QyLm8gY29uZnRlc3QubyA+L2Rldi9udWxs IDI+JjE7IHRoZW4KKysJICBMRD0iJHtMRC1sZH0gLTY0IgorKwlmaQorKwk7OworKyAgICAgIGVz YWMKKysgICAgICA7OworKyAgICBlc2FjCisrICBmaQorKyAgcm0gLXJmIGNvbmZ0ZXN0KgorKyAg OzsKKytlc2FjCisrCisrbmVlZF9sb2Nrcz0iJGVuYWJsZV9saWJ0b29sX2xvY2siCisrXSkjIF9M VF9FTkFCTEVfTE9DSworKworKworKyMgX0xUX0NNRF9PTERfQVJDSElWRQorKyMgLS0tLS0tLS0t LS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfQ01EX09MRF9BUkNISVZFXSwKKytbQUNfQ0hFQ0tf VE9PTChBUiwgYXIsIGZhbHNlKQorK3Rlc3QgLXogIiRBUiIgJiYgQVI9YXIKKyt0ZXN0IC16ICIk QVJfRkxBR1MiICYmIEFSX0ZMQUdTPWNydQorK19MVF9ERUNMKFtdLCBbQVJdLCBbMV0sIFtUaGUg YXJjaGl2ZXJdKQorK19MVF9ERUNMKFtdLCBbQVJfRkxBR1NdLCBbMV0pCisrCisrQUNfQ0hFQ0tf VE9PTChTVFJJUCwgc3RyaXAsIDopCisrdGVzdCAteiAiJFNUUklQIiAmJiBTVFJJUD06CisrX0xU X0RFQ0woW10sIFtTVFJJUF0sIFsxXSwgW0Egc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtXSkKKysK KytBQ19DSEVDS19UT09MKFJBTkxJQiwgcmFubGliLCA6KQorK3Rlc3QgLXogIiRSQU5MSUIiICYm IFJBTkxJQj06CisrX0xUX0RFQ0woW10sIFtSQU5MSUJdLCBbMV0sCisrICAgIFtDb21tYW5kcyB1 c2VkIHRvIGluc3RhbGwgYW4gb2xkLXN0eWxlIGFyY2hpdmVdKQorKworKyMgRGV0ZXJtaW5lIGNv bW1hbmRzIHRvIGNyZWF0ZSBvbGQtc3R5bGUgc3RhdGljIGFyY2hpdmVzLgorK29sZF9hcmNoaXZl X2NtZHM9JyRBUiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJworK29sZF9wb3N0aW5zdGFsbF9j bWRzPSdjaG1vZCA2NDQgJG9sZGxpYicKKytvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPQorKworK2lm IHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCisrICBjYXNlICRob3N0X29zIGluCisrICBvcGVuYnNk KikKKysgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJB TkxJQiAtdCBcJG9sZGxpYiIKKysgICAgOzsKKysgICopCisrICAgIG9sZF9wb3N0aW5zdGFsbF9j bWRzPSIkb2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCisrICAgIDs7Cisr ICBlc2FjCisrICBvbGRfYXJjaGl2ZV9jbWRzPSIkb2xkX2FyY2hpdmVfY21kc35cJFJBTkxJQiBc JG9sZGxpYiIKKytmaQorKworK2Nhc2UgJGhvc3Rfb3MgaW4KKysgIGRhcndpbiopCisrICAgIGxv Y2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbj15ZXMgOzsKKysgICopCisrICAgIGxvY2tfb2xkX2Fy Y2hpdmVfZXh0cmFjdGlvbj1ubyA7OworK2VzYWMKKytfTFRfREVDTChbXSwgW29sZF9wb3N0aW5z dGFsbF9jbWRzXSwgWzJdKQorK19MVF9ERUNMKFtdLCBbb2xkX3Bvc3R1bmluc3RhbGxfY21kc10s IFsyXSkKKytfTFRfVEFHREVDTChbXSwgW29sZF9hcmNoaXZlX2NtZHNdLCBbMl0sCisrICAgIFtD b21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuIG9sZC1zdHlsZSBhcmNoaXZlXSkKKytfTFRfREVDTChb XSwgW2xvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbl0sIFswXSwKKysgICAgW1doZXRoZXIgdG8g dXNlIGEgbG9jayBmb3Igb2xkIGFyY2hpdmUgZXh0cmFjdGlvbl0pCisrXSkjIF9MVF9DTURfT0xE X0FSQ0hJVkUKKysKKysKKysjIF9MVF9DT01QSUxFUl9PUFRJT04oTUVTU0FHRSwgVkFSSUFCTEUt TkFNRSwgRkxBR1MsCisrIwkJW09VVFBVVC1GSUxFXSwgW0FDVElPTi1TVUNDRVNTXSwgW0FDVElP Ti1GQUlMVVJFXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIGNvbXBp bGVyIG9wdGlvbiB3b3JrcworK0FDX0RFRlVOKFtfTFRfQ09NUElMRVJfT1BUSU9OXSwKKytbbTRf cmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RF Q0xfU0VEXSlkbmwKKytBQ19DQUNIRV9DSEVDSyhbJDFdLCBbJDJdLAorKyAgWyQyPW5vCisrICAg bTRfaWYoWyQ0XSwgLCBbYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0XSwgW2FjX291dGZp bGU9JDRdKQorKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRl c3QuJGFjX2V4dAorKyAgIGx0X2NvbXBpbGVyX2ZsYWc9IiQzIgorKyAgICMgSW5zZXJ0IHRoZSBv cHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAg IyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhl IGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFp biBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBh IGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICAjIFRoZSBv cHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2Vk LgorKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAorKyAgIC1lICdz Oi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKKysgICAtZSAnczog W1teIF1dKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKKysgICAtZSAnczok OiAkbHRfY29tcGlsZXJfZmxhZzonYAorKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5P OiAkbHRfY29tcGlsZVwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQorKyAgIChldmFsICIkbHRfY29t cGlsZSIgMj5jb25mdGVzdC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IGNvbmZ0ZXN0 LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mQVNfTUVTU0FHRV9MT0dfRkQKKysgICBpZiAoZXhpdCAkYWNfc3RhdHVz KSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNh biBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAg ICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwg b3V0cHV0LgorKyAgICAgJEVDSE8gIiRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFNFRCAn L14kL2QnID5jb25mdGVzdC5leHAKKysgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVz dC5lcnIgPmNvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8fCBk aWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICAk Mj15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICAkUk0gY29uZnRlc3QqCisrXSkKKysKKytpZiB0 ZXN0IHgiWyRdJDIiID0geHllczsgdGhlbgorKyAgICBtNF9pZihbJDVdLCAsIDosIFskNV0pCisr ZWxzZQorKyAgICBtNF9pZihbJDZdLCAsIDosIFskNl0pCisrZmkKKytdKSMgX0xUX0NPTVBJTEVS X09QVElPTgorKworKyMgT2xkIG5hbWU6CisrQVVfQUxJQVMoW0FDX0xJQlRPT0xfQ09NUElMRVJf T1BUSU9OXSwgW19MVF9DT01QSUxFUl9PUFRJT05dKQorK2RubCBhY2xvY2FsLTEuNCBiYWNrd2Fy ZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfQ09NUElMRVJfT1BU SU9OXSwgW10pCisrCisrCisrIyBfTFRfTElOS0VSX09QVElPTihNRVNTQUdFLCBWQVJJQUJMRS1O QU1FLCBGTEFHUywKKysjICAgICAgICAgICAgICAgICAgW0FDVElPTi1TVUNDRVNTXSwgW0FDVElP Ti1GQUlMVVJFXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysjIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIGxpbmtlciBvcHRpb24gd29y a3MKKytBQ19ERUZVTihbX0xUX0xJTktFUl9PUFRJT05dLAorK1ttNF9yZXF1aXJlKFtfTFRfRklM RVVUSUxTX0RFRkFVTFRTXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAorK0FD X0NBQ0hFX0NIRUNLKFskMV0sIFskMl0sCisrICBbJDI9bm8KKysgICBzYXZlX0xERkxBR1M9IiRM REZMQUdTIgorKyAgIExERkxBR1M9IiRMREZMQUdTICQzIgorKyAgIGVjaG8gIiRsdF9zaW1wbGVf bGlua190ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKyAgIGlmIChldmFsICRhY19saW5r IDI+Y29uZnRlc3QuZXJyKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgorKyAg ICAgIyBUaGUgbGlua2VyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5v dCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKKysg ICAgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCisrICAgICAgICMgQXBwZW5kIGFueSBl cnJvcnMgdG8gdGhlIGNvbmZpZy5sb2cuCisrICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mQVNf TUVTU0FHRV9MT0dfRkQKKysgICAgICAgJEVDSE8gIiRfbHRfbGlua2VyX2JvaWxlcnBsYXRlIiB8 ICRTRUQgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAorKyAgICAgICAkU0VEICcvXiQvZDsgL14gKisv ZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKKysgICAgICAgaWYgZGlmZiBjb25mdGVzdC5l eHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgICAkMj15ZXMKKysgICAg ICAgZmkKKysgICAgIGVsc2UKKysgICAgICAgJDI9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAg JFJNIC1yIGNvbmZ0ZXN0KgorKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisrXSkKKysKKytp ZiB0ZXN0IHgiWyRdJDIiID0geHllczsgdGhlbgorKyAgICBtNF9pZihbJDRdLCAsIDosIFskNF0p CisrZWxzZQorKyAgICBtNF9pZihbJDVdLCAsIDosIFskNV0pCisrZmkKKytdKSMgX0xUX0xJTktF Ul9PUFRJT04KKysKKysjIE9sZCBuYW1lOgorK0FVX0FMSUFTKFtBQ19MSUJUT09MX0xJTktFUl9P UFRJT05dLCBbX0xUX0xJTktFUl9PUFRJT05dKQorK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMg Y29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0s IFtdKQorKworKworKyMgTFRfQ01EX01BWF9MRU4KKysjLS0tLS0tLS0tLS0tLS0tCisrQUNfREVG VU4oW0xUX0NNRF9NQVhfTEVOXSwKKytbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRu bAorKyMgZmluZCB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwor K0FDX01TR19DSEVDS0lORyhbdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1 bWVudHNdKQorK0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lzX21heF9jbWRfbGVuXSwgW2RubAorKyAg aT0wCisrICB0ZXN0c3RyaW5nPSJBQkNEIgorKworKyAgY2FzZSAkYnVpbGRfb3MgaW4KKysgIG1z ZG9zZGpncHAqKQorKyAgICAjIE9uIERKR1BQLCB0aGlzIHRlc3QgY2FuIGJsb3cgdXAgcHJldHR5 IGJhZGx5IGR1ZSB0byBwcm9ibGVtcyBpbiBsaWJjCisrICAgICMgKGFueSBzaW5nbGUgYXJndW1l bnQgZXhjZWVkaW5nIDIwMDAgYnl0ZXMgY2F1c2VzIGEgYnVmZmVyIG92ZXJydW4KKysgICAgIyBk dXJpbmcgZ2xvYiBleHBhbnNpb24pLiAgRXZlbiBpZiBpdCB3ZXJlIGZpeGVkLCB0aGUgcmVzdWx0 IG9mIHRoaXMKKysgICAgIyBjaGVjayB3b3VsZCBiZSBsYXJnZXIgdGhhbiBpdCBzaG91bGQgYmUu CisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMjI4ODsgICAgIyAxMksgaXMgYWJvdXQgcmln aHQKKysgICAgOzsKKysKKysgIGdudSopCisrICAgICMgVW5kZXIgR05VIEh1cmQsIHRoaXMgdGVz dCBpcyBub3QgcmVxdWlyZWQgYmVjYXVzZSB0aGVyZSBpcworKyAgICAjIG5vIGxpbWl0IHRvIHRo ZSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4KKysgICAgIyBMaWJ0b29sIHdpbGwg aW50ZXJwcmV0IC0xIGFzIG5vIGxpbWl0IHdoYXRzb2V2ZXIKKysgICAgbHRfY3Zfc3lzX21heF9j bWRfbGVuPS0xOworKyAgICA7OworKworKyAgY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKKysg ICAgIyBPbiBXaW45eC9NRSwgdGhpcyB0ZXN0IGJsb3dzIHVwIC0tIGl0IHN1Y2NlZWRzLCBidXQg dGFrZXMKKysgICAgIyBhYm91dCA1IG1pbnV0ZXMgYXMgdGhlIHRlc3RzdHJpbmcgZ3Jvd3MgZXhw b25lbnRpYWxseS4KKysgICAgIyBXb3JzZSwgc2luY2UgOXgvTUUgYXJlIG5vdCBwcmUtZW1wdGl2 ZWx5IG11bHRpdGFza2luZywKKysgICAgIyB5b3UgZW5kIHVwIHdpdGggYSAiZnJvemVuIiBjb21w dXRlciwgZXZlbiB0aG91Z2ggd2l0aCBwYXRpZW5jZQorKyAgICAjIHRoZSB0ZXN0IGV2ZW50dWFs bHkgc3VjY2VlZHMgKHdpdGggYSBtYXggbGluZSBsZW5ndGggb2YgMjU2aykuCisrICAgICMgSW5z dGVhZCwgbGV0J3MganVzdCBwdW50OiB1c2UgdGhlIG1pbmltdW0gbGluZWxlbmd0aCByZXBvcnRl ZCBieQorKyAgICAjIGFsbCBvZiB0aGUgc3VwcG9ydGVkIHBsYXRmb3JtczogODE5MiAob24gTlQv MksvWFApLgorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKKysgICAgOzsKKysKKysg IG1pbnQqKQorKyAgICAjIE9uIE1pTlQgdGhpcyBjYW4gdGFrZSBhIGxvbmcgdGltZSBhbmQgcnVu IG91dCBvZiBtZW1vcnkuCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOworKyAgICA7 OworKworKyAgYW1pZ2FvcyopCisrICAgICMgT24gQW1pZ2FPUyB3aXRoIHBka3NoLCB0aGlzIHRl c3QgdGFrZXMgaG91cnMsIGxpdGVyYWxseS4KKysgICAgIyBTbyB3ZSBqdXN0IHB1bnQgYW5kIHVz ZSBhIG1pbmltdW0gbGluZSBsZW5ndGggb2YgODE5Mi4KKysgICAgbHRfY3Zfc3lzX21heF9jbWRf bGVuPTgxOTI7CisrICAgIDs7CisrCisrICBuZXRic2QqIHwgZnJlZWJzZCogfCBvcGVuYnNkKiB8 IGRhcndpbiogfCBkcmFnb25mbHkqKQorKyAgICAjIFRoaXMgaGFzIGJlZW4gYXJvdW5kIHNpbmNl IDM4NkJTRCwgYXQgbGVhc3QuICBMaWtlbHkgZnVydGhlci4KKysgICAgaWYgdGVzdCAteCAvc2Jp bi9zeXNjdGw7IHRoZW4KKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YC9zYmluL3N5c2N0 bCAtbiBrZXJuLmFyZ21heGAKKysgICAgZWxpZiB0ZXN0IC14IC91c3Ivc2Jpbi9zeXNjdGw7IHRo ZW4KKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YC91c3Ivc2Jpbi9zeXNjdGwgLW4ga2Vy bi5hcmdtYXhgCisrICAgIGVsc2UKKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49NjU1MzYJ IyB1c2FibGUgZGVmYXVsdCBmb3IgYWxsIEJTRHMKKysgICAgZmkKKysgICAgIyBBbmQgYWRkIGEg c2FmZXR5IHpvbmUKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNf bWF4X2NtZF9sZW4gXC8gNGAKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9j dl9zeXNfbWF4X2NtZF9sZW4gXCogM2AKKysgICAgOzsKKysKKysgIGludGVyaXgqKQorKyAgICAj IFdlIGtub3cgdGhlIHZhbHVlIDI2MjE0NCBhbmQgaGFyZGNvZGUgaXQgd2l0aCBhIHNhZmV0eSB6 b25lIChsaWtlIEJTRCkKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE5NjYwOAorKyAgICA7 OworKworKyAgb3NmKikKKysgICAgIyBEci4gSGFucyBFa2tlaGFyZCBQbGVzc2VyIHJlcG9ydHMg c2VlaW5nIGEga2VybmVsIHBhbmljIHJ1bm5pbmcgY29uZmlndXJlCisrICAgICMgZHVlIHRvIHRo aXMgdGVzdCB3aGVuIGV4ZWNfZGlzYWJsZV9hcmdfbGltaXQgaXMgMSBvbiBUcnU2NC4gSXQgaXMg bm90CisrICAgICMgbmljZSB0byBjYXVzZSBrZXJuZWwgcGFuaWNzIHNvIGxldHMgYXZvaWQgdGhl IGxvb3AgYmVsb3cuCisrICAgICMgRmlyc3Qgc2V0IGEgcmVhc29uYWJsZSBkZWZhdWx0LgorKyAg ICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTYzODQKKysgICAgIworKyAgICBpZiB0ZXN0IC14IC9z YmluL3N5c2NvbmZpZzsgdGhlbgorKyAgICAgIGNhc2UgYC9zYmluL3N5c2NvbmZpZyAtcSBwcm9j IGV4ZWNfZGlzYWJsZV9hcmdfbGltaXRgIGluCisrICAgICAgICAqMSopIGx0X2N2X3N5c19tYXhf Y21kX2xlbj0tMSA7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysgICAgOzsKKysgIHNjbzMuMnY1 KikKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTEwMjQwMAorKyAgICA7OworKyAgc3lzdjUq IHwgc2NvNXY2KiB8IHN5c3Y0LjJ1dzIqKQorKyAgICBrYXJnbWF4PWBncmVwIEFSR19NQVggL2V0 Yy9jb25mL2NmLmQvc3R1bmUgMj4vZGV2L251bGxgCisrICAgIGlmIHRlc3QgLW4gIiRrYXJnbWF4 IjsgdGhlbgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZWNobyAka2FyZ21heCB8IHNl ZCAncy8uKltbCSBdXS8vJ2AKKysgICAgZWxzZQorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xl bj0zMjc2OAorKyAgICBmaQorKyAgICA7OworKyAgKikKKysgICAgbHRfY3Zfc3lzX21heF9jbWRf bGVuPWAoZ2V0Y29uZiBBUkdfTUFYKSAyPiAvZGV2L251bGxgCisrICAgIGlmIHRlc3QgLW4gIiRs dF9jdl9zeXNfbWF4X2NtZF9sZW4iOyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVu PWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAKKysgICAgICBsdF9jdl9zeXNfbWF4 X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcKiAzYAorKyAgICBlbHNlCisr ICAgICAgIyBNYWtlIHRlc3RzdHJpbmcgYSBsaXR0bGUgYmlnZ2VyIGJlZm9yZSB3ZSBkbyBhbnl0 aGluZyB3aXRoIGl0LgorKyAgICAgICMgYSAxSyBzdHJpbmcgc2hvdWxkIGJlIGEgcmVhc29uYWJs ZSBzdGFydC4KKysgICAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNiA3IDggOyBkbworKyAgICAgICAg dGVzdHN0cmluZz0kdGVzdHN0cmluZyR0ZXN0c3RyaW5nCisrICAgICAgZG9uZQorKyAgICAgIFNI RUxMPSR7U0hFTEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH19CisrICAgICAgIyBJZiB0ZXN0IGlz IG5vdCBhIHNoZWxsIGJ1aWx0LWluLCB3ZSdsbCBwcm9iYWJseSBlbmQgdXAgY29tcHV0aW5nIGEK KysgICAgICAjIG1heGltdW0gbGVuZ3RoIHRoYXQgaXMgb25seSBoYWxmIG9mIHRoZSBhY3R1YWwg bWF4aW11bSBsZW5ndGgsIGJ1dAorKyAgICAgICMgd2UgY2FuJ3QgdGVsbC4KKysgICAgICB3aGls ZSB7IHRlc3QgIlgiYGZ1bmNfZmFsbGJhY2tfZWNobyAiJHRlc3RzdHJpbmckdGVzdHN0cmluZyIg Mj4vZGV2L251bGxgIFwKKysJICAgICAgICAgPSAiWCR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciOyB9 ID4vZGV2L251bGwgMj4mMSAmJgorKwkgICAgICB0ZXN0ICRpICE9IDE3ICMgMS8yIE1CIHNob3Vs ZCBiZSBlbm91Z2gKKysgICAgICBkbworKyAgICAgICAgaT1gZXhwciAkaSArIDFgCisrICAgICAg ICB0ZXN0c3RyaW5nPSR0ZXN0c3RyaW5nJHRlc3RzdHJpbmcKKysgICAgICBkb25lCisrICAgICAg IyBPbmx5IGNoZWNrIHRoZSBzdHJpbmcgbGVuZ3RoIG91dHNpZGUgdGhlIGxvb3AuCisrICAgICAg bHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICJYJHRlc3RzdHJpbmciIDogIi4qIiAyPiYxYAor KyAgICAgIHRlc3RzdHJpbmc9CisrICAgICAgIyBBZGQgYSBzaWduaWZpY2FudCBzYWZldHkgZmFj dG9yIGJlY2F1c2UgQysrIGNvbXBpbGVycyBjYW4gdGFjayBvbgorKyAgICAgICMgbWFzc2l2ZSBh bW91bnRzIG9mIGFkZGl0aW9uYWwgYXJndW1lbnRzIGJlZm9yZSBwYXNzaW5nIHRoZW0gdG8gdGhl CisrICAgICAgIyBsaW5rZXIuICBJdCBhcHBlYXJzIGFzIHRob3VnaCAxLzIgaXMgYSB1c2FibGUg dmFsdWUuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4 X2NtZF9sZW4gXC8gMmAKKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKytdKQorK2lmIHRlc3Qg LW4gJGx0X2N2X3N5c19tYXhfY21kX2xlbiA7IHRoZW4KKysgIEFDX01TR19SRVNVTFQoJGx0X2N2 X3N5c19tYXhfY21kX2xlbikKKytlbHNlCisrICBBQ19NU0dfUkVTVUxUKG5vbmUpCisrZmkKKytt YXhfY21kX2xlbj0kbHRfY3Zfc3lzX21heF9jbWRfbGVuCisrX0xUX0RFQ0woW10sIFttYXhfY21k X2xlbl0sIFswXSwKKysgICAgW1doYXQgaXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgY29tbWFu ZD9dKQorK10pIyBMVF9DTURfTUFYX0xFTgorKworKyMgT2xkIG5hbWU6CisrQVVfQUxJQVMoW0FD X0xJQlRPT0xfU1lTX01BWF9DTURfTEVOXSwgW0xUX0NNRF9NQVhfTEVOXSkKKytkbmwgYWNsb2Nh bC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09M X1NZU19NQVhfQ01EX0xFTl0sIFtdKQorKworKworKyMgX0xUX0hFQURFUl9ETEZDTgorKyMgLS0t LS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfSEVBREVSX0RMRkNOXSwKKytbQUNfQ0hFQ0tf SEVBREVSUyhbZGxmY24uaF0sIFtdLCBbXSwgW0FDX0lOQ0xVREVTX0RFRkFVTFRdKWRubAorK10p IyBfTFRfSEVBREVSX0RMRkNOCisrCisrCisrIyBfTFRfVFJZX0RMT1BFTl9TRUxGIChBQ1RJT04t SUYtVFJVRSwgQUNUSU9OLUlGLVRSVUUtVy1VU0NPUkUsCisrIyAgICAgICAgICAgICAgICAgICAg ICBBQ1RJT04tSUYtRkFMU0UsIEFDVElPTi1JRi1DUk9TUy1DT01QSUxJTkcpCisrIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrbTRfZGVmdW4oW19MVF9UUllfRExPUEVOX1NFTEZdLAorK1ttNF9yZXF1aXJlKFtfTFRfSEVB REVSX0RMRkNOXSlkbmwKKytpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6 CisrICBbJDRdCisrZWxzZQorKyAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0 X2RsbmVlZF91c2NvcmU9MgorKyAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KKysgIGNhdCA+IGNv bmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisrWyNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKKysj aW5jbHVkZSAiY29uZmRlZnMuaCIKKysKKysjaWYgSEFWRV9ETEZDTl9ICisrI2luY2x1ZGUgPGRs ZmNuLmg+CisrI2VuZGlmCisrCisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrCisrI2lmZGVmIFJUTERf R0xPQkFMCisrIyAgZGVmaW5lIExUX0RMR0xPQkFMCQlSVExEX0dMT0JBTAorKyNlbHNlCisrIyAg aWZkZWYgRExfR0xPQkFMCisrIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCURMX0dMT0JBTAorKyMg IGVsc2UKKysjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJMAorKyMgIGVuZGlmCisrI2VuZGlmCisr CisrLyogV2UgbWF5IGhhdmUgdG8gZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cgaW4gdGhlIGNvbW1h bmQgbGluZSBpZiB3ZQorKyAgIGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29tZSBwbGF0 Zm9ybS4gKi8KKysjaWZuZGVmIExUX0RMTEFaWV9PUl9OT1cKKysjICBpZmRlZiBSVExEX0xBWlkK KysjICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlSVExEX0xBWlkKKysjICBlbHNlCisrIyAg ICBpZmRlZiBETF9MQVpZCisrIyAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlETF9MQVpZ CisrIyAgICBlbHNlCisrIyAgICAgIGlmZGVmIFJUTERfTk9XCisrIyAgICAgICAgZGVmaW5lIExU X0RMTEFaWV9PUl9OT1cJUlRMRF9OT1cKKysjICAgICAgZWxzZQorKyMgICAgICAgIGlmZGVmIERM X05PVworKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCisrIyAgICAg ICAgZWxzZQorKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJMAorKyMgICAgICAg IGVuZGlmCisrIyAgICAgIGVuZGlmCisrIyAgICBlbmRpZgorKyMgIGVuZGlmCisrI2VuZGlmCisr CisrLyogV2hlbiAtZnZpc2JpbGl0eT1oaWRkZW4gaXMgdXNlZCwgYXNzdW1lIHRoZSBjb2RlIGhh cyBiZWVuIGFubm90YXRlZAorKyAgIGNvcnJlc3BvbmRpbmdseSBmb3IgdGhlIHN5bWJvbHMgbmVl ZGVkLiAgKi8KKysjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKCgoX19HTlVDX18gPT0gMykgJiYg KF9fR05VQ19NSU5PUl9fID49IDMpKSB8fCAoX19HTlVDX18gPiAzKSkKKyt2b2lkIGZub3JkICgp IF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpOworKyNlbmRpZgorKworK3Zv aWQgZm5vcmQgKCkgeyBpbnQgaT00MjsgfQorK2ludCBtYWluICgpCisreworKyAgdm9pZCAqc2Vs ZiA9IGRsb3BlbiAoMCwgTFRfRExHTE9CQUx8TFRfRExMQVpZX09SX05PVyk7CisrICBpbnQgc3Rh dHVzID0gJGx0X2RsdW5rbm93bjsKKysKKysgIGlmIChzZWxmKQorKyAgICB7CisrICAgICAgaWYg KGRsc3ltIChzZWxmLCJmbm9yZCIpKSAgICAgICBzdGF0dXMgPSAkbHRfZGxub191c2NvcmU7Cisr ICAgICAgZWxzZQorKyAgICAgICAgeworKwkgIGlmIChkbHN5bSggc2VsZiwiX2Zub3JkIikpICBz dGF0dXMgPSAkbHRfZGxuZWVkX3VzY29yZTsKKysgICAgICAgICAgZWxzZSBwdXRzIChkbGVycm9y ICgpKTsKKysJfQorKyAgICAgIC8qIGRsY2xvc2UgKHNlbGYpOyAqLworKyAgICB9CisrICBlbHNl CisrICAgIHB1dHMgKGRsZXJyb3IgKCkpOworKworKyAgcmV0dXJuIHN0YXR1czsKKyt9XQorK19M VF9FT0YKKysgIGlmIEFDX1RSWV9FVkFMKGFjX2xpbmspICYmIHRlc3QgLXMgY29uZnRlc3Qke2Fj X2V4ZWV4dH0gMj4vZGV2L251bGw7IHRoZW4KKysgICAgKC4vY29uZnRlc3Q7IGV4aXQ7ICkgPiZB U19NRVNTQUdFX0xPR19GRCAyPi9kZXYvbnVsbAorKyAgICBsdF9zdGF0dXM9JD8KKysgICAgY2Fz ZSB4JGx0X3N0YXR1cyBpbgorKyAgICAgIHgkbHRfZGxub191c2NvcmUpICQxIDs7CisrICAgICAg eCRsdF9kbG5lZWRfdXNjb3JlKSAkMiA7OworKyAgICAgIHgkbHRfZGx1bmtub3dufHgqKSAkMyA7 OworKyAgICBlc2FjCisrICBlbHNlIDoKKysgICAgIyBjb21waWxhdGlvbiBmYWlsZWQKKysgICAg JDMKKysgIGZpCisrZmkKKytybSAtZnIgY29uZnRlc3QqCisrXSkjIF9MVF9UUllfRExPUEVOX1NF TEYKKysKKysKKysjIExUX1NZU19ETE9QRU5fU0VMRgorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisr QUNfREVGVU4oW0xUX1NZU19ETE9QRU5fU0VMRl0sCisrW200X3JlcXVpcmUoW19MVF9IRUFERVJf RExGQ05dKWRubAorK2lmIHRlc3QgIngkZW5hYmxlX2Rsb3BlbiIgIT0geHllczsgdGhlbgorKyAg ZW5hYmxlX2Rsb3Blbj11bmtub3duCisrICBlbmFibGVfZGxvcGVuX3NlbGY9dW5rbm93bgorKyAg ZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtub3duCisrZWxzZQorKyAgbHRfY3ZfZGxvcGVu PW5vCisrICBsdF9jdl9kbG9wZW5fbGlicz0KKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGJl b3MqKQorKyAgICBsdF9jdl9kbG9wZW49ImxvYWRfYWRkX29uIgorKyAgICBsdF9jdl9kbG9wZW5f bGlicz0KKysgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCisrICAgIDs7CisrCisrICBtaW5ndyog fCBwdzMyKiB8IGNlZ2NjKikKKysgICAgbHRfY3ZfZGxvcGVuPSJMb2FkTGlicmFyeSIKKysgICAg bHRfY3ZfZGxvcGVuX2xpYnM9CisrICAgIDs7CisrCisrICBjeWd3aW4qKQorKyAgICBsdF9jdl9k bG9wZW49ImRsb3BlbiIKKysgICAgbHRfY3ZfZGxvcGVuX2xpYnM9CisrICAgIDs7CisrCisrICBk YXJ3aW4qKQorKyAgIyBpZiBsaWJkbCBpcyBpbnN0YWxsZWQgd2UgbmVlZCB0byBsaW5rIGFnYWlu c3QgaXQKKysgICAgQUNfQ0hFQ0tfTElCKFtkbF0sIFtkbG9wZW5dLAorKwkJW2x0X2N2X2Rsb3Bl bj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbCJdLFsKKysgICAgbHRfY3ZfZGxvcGVu PSJkeWxkIgorKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgbHRfY3ZfZGxvcGVuX3NlbGY9 eWVzCisrICAgIF0pCisrICAgIDs7CisrCisrICAqKQorKyAgICBBQ19DSEVDS19GVU5DKFtzaGxf bG9hZF0sCisrCSAgW2x0X2N2X2Rsb3Blbj0ic2hsX2xvYWQiXSwKKysgICAgICBbQUNfQ0hFQ0tf TElCKFtkbGRdLCBbc2hsX2xvYWRdLAorKwkgICAgW2x0X2N2X2Rsb3Blbj0ic2hsX2xvYWQiIGx0 X2N2X2Rsb3Blbl9saWJzPSItbGRsZCJdLAorKwlbQUNfQ0hFQ0tfRlVOQyhbZGxvcGVuXSwKKysJ ICAgICAgW2x0X2N2X2Rsb3Blbj0iZGxvcGVuIl0sCisrCSAgW0FDX0NIRUNLX0xJQihbZGxdLCBb ZGxvcGVuXSwKKysJCVtsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1s ZGwiXSwKKysJICAgIFtBQ19DSEVDS19MSUIoW3N2bGRdLCBbZGxvcGVuXSwKKysJCSAgW2x0X2N2 X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxzdmxkIl0sCisrCSAgICAgIFtB Q19DSEVDS19MSUIoW2RsZF0sIFtkbGRfbGlua10sCisrCQkgICAgW2x0X2N2X2Rsb3Blbj0iZGxk X2xpbmsiIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsZCJdKQorKwkgICAgICBdKQorKwkgICAgXSkK KysJICBdKQorKwldKQorKyAgICAgIF0pCisrICAgIDs7CisrICBlc2FjCisrCisrICBpZiB0ZXN0 ICJ4JGx0X2N2X2Rsb3BlbiIgIT0geG5vOyB0aGVuCisrICAgIGVuYWJsZV9kbG9wZW49eWVzCisr ICBlbHNlCisrICAgIGVuYWJsZV9kbG9wZW49bm8KKysgIGZpCisrCisrICBjYXNlICRsdF9jdl9k bG9wZW4gaW4KKysgIGRsb3BlbikKKysgICAgc2F2ZV9DUFBGTEFHUz0iJENQUEZMQUdTIgorKyAg ICB0ZXN0ICJ4JGFjX2N2X2hlYWRlcl9kbGZjbl9oIiA9IHh5ZXMgJiYgQ1BQRkxBR1M9IiRDUFBG TEFHUyAtREhBVkVfRExGQ05fSCIKKysKKysgICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysg ICAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2wgZXZhbCBMREZMQUdTPVwiXCRMREZMQUdTICRleHBv cnRfZHluYW1pY19mbGFnX3NwZWNcIgorKworKyAgICBzYXZlX0xJQlM9IiRMSUJTIgorKyAgICBM SUJTPSIkbHRfY3ZfZGxvcGVuX2xpYnMgJExJQlMiCisrCisrICAgIEFDX0NBQ0hFX0NIRUNLKFt3 aGV0aGVyIGEgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZl0sCisrCSAgbHRfY3ZfZGxvcGVuX3Nl bGYsIFtkbmwKKysJICBfTFRfVFJZX0RMT1BFTl9TRUxGKAorKwkgICAgbHRfY3ZfZGxvcGVuX3Nl bGY9eWVzLCBsdF9jdl9kbG9wZW5fc2VsZj15ZXMsCisrCSAgICBsdF9jdl9kbG9wZW5fc2VsZj1u bywgbHRfY3ZfZGxvcGVuX3NlbGY9Y3Jvc3MpCisrICAgIF0pCisrCisrICAgIGlmIHRlc3QgIngk bHRfY3ZfZGxvcGVuX3NlbGYiID0geHllczsgdGhlbgorKyAgICAgIHdsPSRsdF9wcm9nX2NvbXBp bGVyX3dsIGV2YWwgTERGTEFHUz1cIlwkTERGTEFHUyAkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNc IgorKyAgICAgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIGEgc3RhdGljYWxseSBsaW5rZWQgcHJv Z3JhbSBjYW4gZGxvcGVuIGl0c2VsZl0sCisrCSAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljLCBb ZG5sCisrCSAgX0xUX1RSWV9ETE9QRU5fU0VMRigKKysJICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0 YXRpYz15ZXMsIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz15ZXMsCisrCSAgICBsdF9jdl9kbG9w ZW5fc2VsZl9zdGF0aWM9bm8sICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9Y3Jvc3MpCisrICAg ICAgXSkKKysgICAgZmkKKysKKysgICAgQ1BQRkxBR1M9IiRzYXZlX0NQUEZMQUdTIgorKyAgICBM REZMQUdTPSIkc2F2ZV9MREZMQUdTIgorKyAgICBMSUJTPSIkc2F2ZV9MSUJTIgorKyAgICA7Owor KyAgZXNhYworKworKyAgY2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGYgaW4KKysgIHllc3xubykgZW5h YmxlX2Rsb3Blbl9zZWxmPSRsdF9jdl9kbG9wZW5fc2VsZiA7OworKyAgKikgZW5hYmxlX2Rsb3Bl bl9zZWxmPXVua25vd24gOzsKKysgIGVzYWMKKysKKysgIGNhc2UgJGx0X2N2X2Rsb3Blbl9zZWxm X3N0YXRpYyBpbgorKyAgeWVzfG5vKSBlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPSRsdF9jdl9k bG9wZW5fc2VsZl9zdGF0aWMgOzsKKysgICopIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5r bm93biA7OworKyAgZXNhYworK2ZpCisrX0xUX0RFQ0woW2Rsb3Blbl9zdXBwb3J0XSwgW2VuYWJs ZV9kbG9wZW5dLCBbMF0sCisrCSBbV2hldGhlciBkbG9wZW4gaXMgc3VwcG9ydGVkXSkKKytfTFRf REVDTChbZGxvcGVuX3NlbGZdLCBbZW5hYmxlX2Rsb3Blbl9zZWxmXSwgWzBdLAorKwkgW1doZXRo ZXIgZGxvcGVuIG9mIHByb2dyYW1zIGlzIHN1cHBvcnRlZF0pCisrX0xUX0RFQ0woW2Rsb3Blbl9z ZWxmX3N0YXRpY10sIFtlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljXSwgWzBdLAorKwkgW1doZXRo ZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW1zIGlzIHN1cHBvcnRlZF0pCisr XSkjIExUX1NZU19ETE9QRU5fU0VMRgorKworKyMgT2xkIG5hbWU6CisrQVVfQUxJQVMoW0FDX0xJ QlRPT0xfRExPUEVOX1NFTEZdLCBbTFRfU1lTX0RMT1BFTl9TRUxGXSkKKytkbmwgYWNsb2NhbC0x LjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0RM T1BFTl9TRUxGXSwgW10pCisrCisrCisrIyBfTFRfQ09NUElMRVJfQ19PKFtUQUdOQU1FXSkKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgdG8gc2VlIGlmIG9wdGlvbnMg LWMgYW5kIC1vIGFyZSBzaW11bHRhbmVvdXNseSBzdXBwb3J0ZWQgYnkgY29tcGlsZXIuCisrIyBU aGlzIG1hY3JvIGRvZXMgbm90IGhhcmQgY29kZSB0aGUgY29tcGlsZXIgbGlrZSBBQ19QUk9HX0ND X0NfTy4KKyttNF9kZWZ1bihbX0xUX0NPTVBJTEVSX0NfT10sCisrW200X3JlcXVpcmUoW19MVF9E RUNMX1NFRF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisr bTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCisrQUNfQ0FDSEVfQ0hFQ0soW2lmICRj b21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHRdLAorKyAgW19MVF9UQUdWQVIo bHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKV0sCisrICBbX0xUX1RBR1ZBUihsdF9jdl9wcm9n X2NvbXBpbGVyX2NfbywgJDEpPW5vCisrICAgJFJNIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCisr ICAgbWtkaXIgY29uZnRlc3QKKysgICBjZCBjb25mdGVzdAorKyAgIG1rZGlyIG91dAorKyAgIGVj aG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKwor KyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKKysgICAj IEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlh YmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwg b3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRv ZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxh ciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHku CisrICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCisrICAgLWUgJ3M6 LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAorKyAgIC1lICdzOiBb W14gXV0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6 ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOiRMSU5FTk86 ICRsdF9jb21waWxlXCIiID4mQVNfTUVTU0FHRV9MT0dfRkQpCisrICAgKGV2YWwgIiRsdF9jb21w aWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IG91dC9j b25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgIGVjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgaWYgKGV4aXQgJGFj X3N0YXR1cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKKysgICB0aGVuCisr ICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBp ZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdz CisrICAgICAkRUNITyAiJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcvXiQvZCcg PiBvdXQvY29uZnRlc3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0 ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVz dC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVs bDsgdGhlbgorKyAgICAgICBfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSk9 eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgY2htb2QgdSt3IC4gMj4mQVNfTUVTU0FHRV9MT0df RkQKKysgICAkUk0gY29uZnRlc3QqCisrICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRl IGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgorKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlv bgorKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYmICRSTSBvdXQvaWlfZmlsZXMvKiAmJiBybWRp ciBvdXQvaWlfZmlsZXMKKysgICAkUk0gb3V0LyogJiYgcm1kaXIgb3V0CisrICAgY2QgLi4KKysg ICAkUk0gLXIgY29uZnRlc3QKKysgICAkUk0gY29uZnRlc3QqCisrXSkKKytfTFRfVEFHREVDTChb Y29tcGlsZXJfY19vXSwgW2x0X2N2X3Byb2dfY29tcGlsZXJfY19vXSwgWzFdLAorKwlbRG9lcyBj b21waWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zP10pCisrXSkj IF9MVF9DT01QSUxFUl9DX08KKysKKysKKysjIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKFtUQUdO QU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHRv IHNlZSBpZiB3ZSBjYW4gZG8gaGFyZCBsaW5rcyB0byBsb2NrIHNvbWUgZmlsZXMgaWYgbmVlZGVk CisrbTRfZGVmdW4oW19MVF9DT01QSUxFUl9GSUxFX0xPQ0tTXSwKKytbbTRfcmVxdWlyZShbX0xU X0VOQUJMRV9MT0NLXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlk bmwKKytfTFRfQ09NUElMRVJfQ19PKFskMV0pCisrCisraGFyZF9saW5rcz0ibm90dGVzdGVkIgor K2lmIHRlc3QgIiRfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSkiID0gbm8g JiYgdGVzdCAiJG5lZWRfbG9ja3MiICE9IG5vOyB0aGVuCisrICAjIGRvIG5vdCBvdmVyd3JpdGUg dGhlIHZhbHVlIG9mIG5lZWRfbG9ja3MgcHJvdmlkZWQgYnkgdGhlIHVzZXIKKysgIEFDX01TR19D SEVDS0lORyhbaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxpbmtzXSkKKysgIGhhcmRfbGlua3M9 eWVzCisrICAkUk0gY29uZnRlc3QqCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2 L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAgdG91Y2ggY29uZnRlc3QuYQorKyAgbG4gY29uZnRl c3QuYSBjb25mdGVzdC5iIDI+JjUgfHwgaGFyZF9saW5rcz1ubworKyAgbG4gY29uZnRlc3QuYSBj b25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KKysgIEFDX01TR19SRVNVTFQo WyRoYXJkX2xpbmtzXSkKKysgIGlmIHRlc3QgIiRoYXJkX2xpbmtzIiA9IG5vOyB0aGVuCisrICAg IEFDX01TR19XQVJOKFtgJENDJyBkb2VzIG5vdCBzdXBwb3J0IGAtYyAtbycsIHNvIGBtYWtlIC1q JyBtYXkgYmUgdW5zYWZlXSkKKysgICAgbmVlZF9sb2Nrcz13YXJuCisrICBmaQorK2Vsc2UKKysg IG5lZWRfbG9ja3M9bm8KKytmaQorK19MVF9ERUNMKFtdLCBbbmVlZF9sb2Nrc10sIFsxXSwgW011 c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9uP10pCisrXSkjIF9MVF9DT01Q SUxFUl9GSUxFX0xPQ0tTCisrCisrCisrIyBfTFRfQ0hFQ0tfT0JKRElSCisrIyAtLS0tLS0tLS0t LS0tLS0tCisrbTRfZGVmdW4oW19MVF9DSEVDS19PQkpESVJdLAorK1tBQ19DQUNIRV9DSEVDSyhb Zm9yIG9iamRpcl0sIFtsdF9jdl9vYmpkaXJdLAorK1tybSAtZiAubGlicyAyPi9kZXYvbnVsbAor K21rZGlyIC5saWJzIDI+L2Rldi9udWxsCisraWYgdGVzdCAtZCAubGliczsgdGhlbgorKyAgbHRf Y3Zfb2JqZGlyPS5saWJzCisrZWxzZQorKyAgIyBNUy1ET1MgZG9lcyBub3QgYWxsb3cgZmlsZW5h bWVzIHRoYXQgYmVnaW4gd2l0aCBhIGRvdC4KKysgIGx0X2N2X29iamRpcj1fbGlicworK2ZpCisr cm1kaXIgLmxpYnMgMj4vZGV2L251bGxdKQorK29iamRpcj0kbHRfY3Zfb2JqZGlyCisrX0xUX0RF Q0woW10sIFtvYmpkaXJdLCBbMF0sCisrICAgICAgICAgW1RoZSBuYW1lIG9mIHRoZSBkaXJlY3Rv cnkgdGhhdCBjb250YWlucyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxlc10pZG5sCisrbTRfcGF0dGVy bl9hbGxvdyhbTFRfT0JKRElSXSlkbmwKKytBQ19ERUZJTkVfVU5RVU9URUQoTFRfT0JKRElSLCAi JGx0X2N2X29iamRpci8iLAorKyAgW0RlZmluZSB0byB0aGUgc3ViLWRpcmVjdG9yeSBpbiB3aGlj aCBsaWJ0b29sIHN0b3JlcyB1bmluc3RhbGxlZCBsaWJyYXJpZXMuXSkKKytdKSMgX0xUX0NIRUNL X09CSkRJUgorKworKworKyMgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKFtUQUdOQU1FXSkK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayBoYXJk Y29kaW5nIGF0dHJpYnV0ZXMuCisrbTRfZGVmdW4oW19MVF9MSU5LRVJfSEFSRENPREVfTElCUEFU SF0sCisrW0FDX01TR19DSEVDS0lORyhbaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50 byBwcm9ncmFtc10pCisrX0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT0KKytpZiB0ZXN0 IC1uICIkX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkiIHx8CisrICAg dGVzdCAtbiAiJF9MVF9UQUdWQVIocnVucGF0aF92YXIsICQxKSIgfHwKKysgICB0ZXN0ICJYJF9M VF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSkiID0gIlh5ZXMiIDsgdGhlbgorKworKyAg IyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4aXN0ZW50IGRpcmVjdG9yaWVzLgorKyAgaWYgdGVzdCAi JF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSkiICE9IG5vICYmCisrICAgICAjIElmIHRo ZSBvbmx5IG1lY2hhbmlzbSB0byBhdm9pZCBoYXJkY29kaW5nIGlzIHNobGlicGF0aF92YXIsIHdl CisrICAgICAjIGhhdmUgdG8gcmVsaW5rLCBvdGhlcndpc2Ugd2UgbWlnaHQgbGluayB3aXRoIGFu IGluc3RhbGxlZCBsaWJyYXJ5CisrICAgICAjIHdoZW4gd2Ugc2hvdWxkIGJlIGxpbmtpbmcgd2l0 aCBhIHlldC10by1iZS1pbnN0YWxsZWQgb25lCisrICAgICAjIyB0ZXN0ICIkX0xUX1RBR1ZBUiho YXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSkiICE9IG5vICYmCisrICAgICB0ZXN0ICIkX0xUX1RB R1ZBUihoYXJkY29kZV9taW51c19MLCAkMSkiICE9IG5vOyB0aGVuCisrICAgICMgTGlua2luZyBh bHdheXMgaGFyZGNvZGVzIHRoZSB0ZW1wb3JhcnkgbGlicmFyeSBkaXJlY3RvcnkuCisrICAgIF9M VF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSk9cmVsaW5rCisrICBlbHNlCisrICAgICMgV2Ug Y2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRjb2RlIG5vbmV4aXN0 aW5nIGRpcnMuCisrICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSk9aW1tZWRpYXRl CisrICBmaQorK2Vsc2UKKysgICMgV2UgY2Fubm90IGhhcmRjb2RlIGFueXRoaW5nLCBvciBlbHNl IHdlIGNhbiBvbmx5IGhhcmRjb2RlIGV4aXN0aW5nCisrICAjIGRpcmVjdG9yaWVzLgorKyAgX0xU X1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT11bnN1cHBvcnRlZAorK2ZpCisrQUNfTVNHX1JF U1VMVChbJF9MVF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSldKQorKworK2lmIHRlc3QgIiRf TFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpIiA9IHJlbGluayB8fAorKyAgIHRlc3QgIiRf TFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKSIgPSB5ZXM7IHRoZW4KKysgICMgRmFzdCBpbnN0 YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAorKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubworK2Vs aWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKKysgICAgIHRl c3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVuCisrICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlz IG5vdCBuZWNlc3NhcnkKKysgIGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKKytmaQorK19M VF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfYWN0aW9uXSwgWzBdLAorKyAgICBbSG93IHRvIGhhcmRj b2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGVdKQorK10pIyBfTFRf TElOS0VSX0hBUkRDT0RFX0xJQlBBVEgKKysKKysKKysjIF9MVF9DTURfU1RSSVBMSUIKKysjIC0t LS0tLS0tLS0tLS0tLS0KKyttNF9kZWZ1bihbX0xUX0NNRF9TVFJJUExJQl0sCisrW200X3JlcXVp cmUoW19MVF9ERUNMX0VHUkVQXSkKKytzdHJpcGxpYj0KKytvbGRfc3RyaXBsaWI9CisrQUNfTVNH X0NIRUNLSU5HKFt3aGV0aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2libGVdKQorK2lm IHRlc3QgLW4gIiRTVFJJUCIgJiYgJFNUUklQIC1WIDI+JjEgfCAkR1JFUCAiR05VIHN0cmlwIiA+ L2Rldi9udWxsOyB0aGVuCisrICB0ZXN0IC16ICIkb2xkX3N0cmlwbGliIiAmJiBvbGRfc3RyaXBs aWI9IiRTVFJJUCAtLXN0cmlwLWRlYnVnIgorKyAgdGVzdCAteiAiJHN0cmlwbGliIiAmJiBzdHJp cGxpYj0iJFNUUklQIC0tc3RyaXAtdW5uZWVkZWQiCisrICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQor K2Vsc2UKKysjIEZJWE1FIC0gaW5zZXJ0IHNvbWUgcmVhbCB0ZXN0cywgaG9zdF9vcyBpc24ndCBy ZWFsbHkgZ29vZCBlbm91Z2gKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGRhcndpbiopCisrICAg IGlmIHRlc3QgLW4gIiRTVFJJUCIgOyB0aGVuCisrICAgICAgc3RyaXBsaWI9IiRTVFJJUCAteCIK KysgICAgICBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtUyIKKysgICAgICBBQ19NU0dfUkVTVUxUKFt5 ZXNdKQorKyAgICBlbHNlCisrICAgICAgQUNfTVNHX1JFU1VMVChbbm9dKQorKyAgICBmaQorKyAg ICA7OworKyAgKikKKysgICAgQUNfTVNHX1JFU1VMVChbbm9dKQorKyAgICA7OworKyAgZXNhYwor K2ZpCisrX0xUX0RFQ0woW10sIFtvbGRfc3RyaXBsaWJdLCBbMV0sIFtDb21tYW5kcyB0byBzdHJp cCBsaWJyYXJpZXNdKQorK19MVF9ERUNMKFtdLCBbc3RyaXBsaWJdLCBbMV0pCisrXSkjIF9MVF9D TURfU1RSSVBMSUIKKysKKysKKysjIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoW1RBR10pCisrIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUE9SVE1FIEZpbGwgaW4geW91ciBsZC5z byBjaGFyYWN0ZXJpc3RpY3MKKyttNF9kZWZ1bihbX0xUX1NZU19EWU5BTUlDX0xJTktFUl0sCisr W0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfREVD TF9FR1JFUF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisr bTRfcmVxdWlyZShbX0xUX0RFQ0xfT0JKRFVNUF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RFQ0xf U0VEXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVNdKWRubAorK0FD X01TR19DSEVDS0lORyhbZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzXSkKKyttNF9pZihb JDFdLAorKwlbXSwgWworK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICBjYXNlICRob3N0 X29zIGluCisrICAgIGRhcndpbiopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVzOi8sL0xSLyIgOzsK KysgICAgKikgbHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LyIgOzsKKysgIGVzYWMKKysgIGNhc2Ug JGhvc3Rfb3MgaW4KKysgICAgbWluZ3cqIHwgY2VnY2MqKSBsdF9zZWRfc3RyaXBfZXE9InMsPVwo W1tBLVphLXpdXTpcKSxcMSxnIiA7OworKyAgICAqKSBsdF9zZWRfc3RyaXBfZXE9InMsPS8sLyxn IiA7OworKyAgZXNhYworKyAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gt ZGlycyB8IGF3ayAkbHRfYXdrX2FyZyB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgJGx0 X3NlZF9zdHJpcF9lcWAKKysgIGNhc2UgJGx0X3NlYXJjaF9wYXRoX3NwZWMgaW4KKysgICpcOyop CisrICAgICMgaWYgdGhlIHBhdGggY29udGFpbnMgIjsiIHRoZW4gd2UgYXNzdW1lIGl0IHRvIGJl IHRoZSBzZXBhcmF0b3IKKysgICAgIyBvdGhlcndpc2UgZGVmYXVsdCB0byB0aGUgc3RhbmRhcmQg cGF0aCBzZXBhcmF0b3IgKGkuZS4gIjoiKSAtIGl0IGlzCisrICAgICMgYXNzdW1lZCB0aGF0IG5v IHBhcnQgb2YgYSBub3JtYWwgcGF0aG5hbWUgY29udGFpbnMgIjsiIGJ1dCB0aGF0IHNob3VsZAor KyAgICAjIG9rYXkgaW4gdGhlIHJlYWwgd29ybGQgd2hlcmUgIjsiIGluIGRpcnBhdGhzIGlzIGl0 c2VsZiBwcm9ibGVtYXRpYy4KKysgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9z ZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgJ3MvOy8gL2cnYAorKyAgICA7OworKyAgKikKKysgICAg bHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQg InMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCisrICAgIDs7CisrICBlc2FjCisrICAjIE9rLCBub3cg d2UgaGF2ZSB0aGUgcGF0aCwgc2VwYXJhdGVkIGJ5IHNwYWNlcywgd2UgY2FuIHN0ZXAgdGhyb3Vn aCBpdAorKyAgIyBhbmQgYWRkIG11bHRpbGliIGRpciBpZiBuZWNlc3NhcnkuCisrICBsdF90bXBf bHRfc2VhcmNoX3BhdGhfc3BlYz0KKysgIGx0X211bHRpX29zX2Rpcj1gJENDICRDUFBGTEFHUyAk Q0ZMQUdTICRMREZMQUdTIC1wcmludC1tdWx0aS1vcy1kaXJlY3RvcnkgMj4vZGV2L251bGxgCisr ICBmb3IgbHRfc3lzX3BhdGggaW4gJGx0X3NlYXJjaF9wYXRoX3NwZWM7IGRvCisrICAgIGlmIHRl c3QgLWQgIiRsdF9zeXNfcGF0aC8kbHRfbXVsdGlfb3NfZGlyIjsgdGhlbgorKyAgICAgIGx0X3Rt cF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMgJGx0X3N5 c19wYXRoLyRsdF9tdWx0aV9vc19kaXIiCisrICAgIGVsc2UKKysgICAgICB0ZXN0IC1kICIkbHRf c3lzX3BhdGgiICYmIFwKKysJbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9IiRsdF90bXBfbHRf c2VhcmNoX3BhdGhfc3BlYyAkbHRfc3lzX3BhdGgiCisrICAgIGZpCisrICBkb25lCisrICBsdF9z ZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjIiB8IGF3 ayAnCisrQkVHSU4ge1JTPSIgIjsgRlM9Ii98XG4iO30geworKyAgbHRfZm9vPSIiOworKyAgbHRf Y291bnQ9MDsKKysgIGZvciAobHRfaSA9IE5GOyBsdF9pID4gMDsgbHRfaS0tKSB7CisrICAgIGlm ICgkbHRfaSAhPSAiIiAmJiAkbHRfaSAhPSAiLiIpIHsKKysgICAgICBpZiAoJGx0X2kgPT0gIi4u IikgeworKyAgICAgICAgbHRfY291bnQrKzsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgaWYg KGx0X2NvdW50ID09IDApIHsKKysgICAgICAgICAgbHRfZm9vPSIvIiAkbHRfaSBsdF9mb287Cisr ICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBsdF9jb3VudC0tOworKyAgICAgICAgfQorKyAg ICAgIH0KKysgICAgfQorKyAgfQorKyAgaWYgKGx0X2ZvbyAhPSAiIikgeyBsdF9mcmVxW1tsdF9m b29dXSsrOyB9CisrICBpZiAobHRfZnJlcVtbbHRfZm9vXV0gPT0gMSkgeyBwcmludCBsdF9mb287 IH0KKyt9J2AKKysgICMgQVdLIHByb2dyYW0gYWJvdmUgZXJyb25lb3VzbHkgcHJlcGVuZHMgJy8n IHRvIEM6L2Rvcy9wYXRocworKyAgIyBmb3IgdGhlc2UgaG9zdHMuCisrICBjYXNlICRob3N0X29z IGluCisrICAgIG1pbmd3KiB8IGNlZ2NjKikgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRs dF9zZWFyY2hfcGF0aF9zcGVjIiB8XAorKyAgICAgICRTRUQgJ3MsL1woW1tBLVphLXpdXTpcKSxc MSxnJ2AgOzsKKysgIGVzYWMKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRs dF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRsdF9OTDJTUGAKKytlbHNlCisrICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCisrZmldKQorK2xpYnJh cnlfbmFtZXNfc3BlYz0KKytsaWJuYW1lX3NwZWM9J2xpYiRuYW1lJworK3NvbmFtZV9zcGVjPQor K3NocmV4dF9jbWRzPSIuc28iCisrcG9zdGluc3RhbGxfY21kcz0KKytwb3N0dW5pbnN0YWxsX2Nt ZHM9CisrZmluaXNoX2NtZHM9CisrZmluaXNoX2V2YWw9Cisrc2hsaWJwYXRoX3Zhcj0KKytzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9dW5rbm93bgorK3ZlcnNpb25fdHlwZT1ub25lCisrZHlu YW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgorK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PSIvbGliIC91c3IvbGliIgorK25lZWRfbGliX3ByZWZpeD11bmtub3duCisraGFyZGNvZGVfaW50 b19saWJzPW5vCisrCisrIyB3aGVuIHlvdSBzZXQgbmVlZF92ZXJzaW9uIHRvIG5vLCBtYWtlIHN1 cmUgaXQgZG9lcyBub3QgY2F1c2UgLXNldF92ZXJzaW9uCisrIyBmbGFncyB0byBiZSBsZWZ0IHdp dGhvdXQgYXJndW1lbnRzCisrbmVlZF92ZXJzaW9uPXVua25vd24KKysKKytjYXNlICRob3N0X29z IGluCisrYWl4MyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZS5h JworKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisrCisrICAjIEFJWCAzIGhhcyBubyB2ZXJzaW9u aW5nIHN1cHBvcnQsIHNvIHdlIGFwcGVuZCBhIG1ham9yIHZlcnNpb24gdG8gdGhlIG5hbWUuCisr ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwor KyAgOzsKKysKKythaXhbWzQtOV1dKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9s aWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKKysgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgICMgQUlYIDUgc3Vw cG9ydHMgSUE2NAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKKysgIGVsc2UKKysgICAgIyBXaXRoIEdDQyB1cCB0byAyLjk1LngsIGNvbGxlY3Qy IHdvdWxkIGNyZWF0ZSBhbiBpbXBvcnQgZmlsZQorKyAgICAjIGZvciBkZXBlbmRlbmNlIGxpYnJh cmllcy4gIFRoZSBpbXBvcnQgZmlsZSB3b3VsZCBzdGFydCB3aXRoCisrICAgICMgdGhlIGxpbmUg YCMhIC4nLiAgVGhpcyB3b3VsZCBjYXVzZSB0aGUgZ2VuZXJhdGVkIGxpYnJhcnkgdG8KKysgICAg IyBkZXBlbmQgb24gYC4nLCBhbHdheXMgYW4gaW52YWxpZCBsaWJyYXJ5LiAgVGhpcyB3YXMgZml4 ZWQgaW4KKysgICAgIyBkZXZlbG9wbWVudCBzbmFwc2hvdHMgb2YgR0NDIHByaW9yIHRvIDMuMC4K KysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeDQgfCBhaXg0LltbMDFdXSB8IGFpeDQu W1swMV1dLiopCisrICAgICAgaWYgeyBlY2hvICcjaWYgX19HTlVDX18gPiAyIHx8IChfX0dOVUNf XyA9PSAyICYmIF9fR05VQ19NSU5PUl9fID49IDk3KScKKysJICAgZWNobyAnIHllcyAnCisrCSAg IGVjaG8gJyNlbmRpZic7IH0gfCAke0NDfSAtRSAtIHwgJEdSRVAgeWVzID4gL2Rldi9udWxsOyB0 aGVuCisrCToKKysgICAgICBlbHNlCisrCWNhbl9idWlsZF9zaGFyZWQ9bm8KKysgICAgICBmaQor KyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgIyBBSVggKG9uIFBvd2VyKikgaGFzIG5vIHZlcnNp b25pbmcgc3VwcG9ydCwgc28gY3VycmVudGx5IHdlIGNhbiBub3QgaGFyZGNvZGUgY29ycmVjdAor KyAgICAjIHNvbmFtZSBpbnRvIGV4ZWN1dGFibGUuIFByb2JhYmx5IHdlIGNhbiBhZGQgdmVyc2lv bmluZyBzdXBwb3J0IHRvCisrICAgICMgY29sbGVjdDIsIHNvIGFkZGl0aW9uYWwgbGlua3MgY2Fu IGJlIHVzZWZ1bCBpbiBmdXR1cmUuCisrICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5r aW5nIiA9IHllczsgdGhlbgorKyAgICAgICMgSWYgdXNpbmcgcnVuIHRpbWUgbGlua2luZyAob24g QUlYIDQuMiBvciBsYXRlcikgdXNlIGxpYjxuYW1lPi5zbworKyAgICAgICMgaW5zdGVhZCBvZiBs aWI8bmFtZT4uYSB0byBsZXQgcGVvcGxlIGtub3cgdGhhdCB0aGVzZSBhcmUgbm90CisrICAgICAg IyB0eXBpY2FsIEFJWCBzaGFyZWQgbGlicmFyaWVzLgorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAg ICBlbHNlCisrICAgICAgIyBXZSBwcmVzZXJ2ZSAuYSBhcyBleHRlbnNpb24gZm9yIHNoYXJlZCBs aWJyYXJpZXMgdGhyb3VnaCBBSVg0LjIKKysgICAgICAjIGFuZCBsYXRlciB3aGVuIHdlIGFyZSBu b3QgZG9pbmcgcnVuIHRpbWUgbGlua2luZy4KKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9LmEgJGxpYm5hbWUuYScKKysgICAgICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBmaQorKyAgICBzaGxp YnBhdGhfdmFyPUxJQlBBVEgKKysgIGZpCisrICA7OworKworK2FtaWdhb3MqKQorKyAgY2FzZSAk aG9zdF9jcHUgaW4KKysgIHBvd2VycGMpCisrICAgICMgU2luY2UgSnVseSAyMDA3IEFtaWdhT1M0 IG9mZmljaWFsbHkgc3VwcG9ydHMgLnNvIGxpYnJhcmllcy4KKysgICAgIyBXaGVuIGNvbXBpbGlu ZyB0aGUgZXhlY3V0YWJsZSwgYWRkIC11c2UtZHlubGQgLUxzb2JqczogdG8gdGhlIGNvbXBpbGVs aW5lLgorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgOzsKKysgIG02OGspCisrICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJGxpYm5hbWUuaXhsaWJyYXJ5ICRsaWJuYW1lLmEnCisrICAgICMgQ3JlYXRl ICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgZW50cmllcyBpbiAvc3lzL2xpYnMuCisrICAgIGZpbmlz aF9ldmFsPSdmb3IgbGliIGluIGBscyAkbGliZGlyLyouaXhsaWJyYXJ5IDI+L2Rldi9udWxsYDsg ZG8gbGlibmFtZT1gZnVuY19lY2hvX2FsbCAiJGxpYiIgfCAkU0VEICdcJydzJV4uKi9cKFtbXi9d XSpcKVwuaXhsaWJyYXJ5JCVcMSUnXCcnYDsgdGVzdCAkUk0gL3N5cy9saWJzLyR7bGlibmFtZX1f aXhsaWJyYXJ5LmE7ICRzaG93ICJjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9 X2l4bGlicmFyeS5hIjsgY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxp YnJhcnkuYSB8fCBleGl0IDE7IGRvbmUnCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2Jl b3MqKQorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysg IGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKKysgIHNobGlicGF0aF92YXI9TElCUkFS WV9QQVRICisrICA7OworKworK2JzZGlbWzQ1XV0qKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4Cisr ICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGZpbmlzaF9jbWRzPSdQQVRI PSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJ QlJBUllfUEFUSAorKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIg L3Vzci9YMTEvbGliIC91c3IvY29udHJpYi9saWIgL2xpYiAvdXNyL2xvY2FsL2xpYiIKKysgIHN5 c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIi CisrICAjIHRoZSBkZWZhdWx0IGxkLnNvLmNvbmYgYWxzbyBjb250YWlucyAvdXNyL2NvbnRyaWIv bGliIGFuZAorKyAgIyAvdXNyL1gxMVI2L2xpYiAoL3Vzci9YMTEgaXMgYSBsaW5rIHRvIC91c3Iv WDExUjYpLCBidXQgbGV0IHVzIGFsbG93CisrICAjIGxpYnRvb2wgdG8gaGFyZC1jb2RlIHRoZXNl IGludG8gcHJvZ3JhbXMKKysgIDs7CisrCisrY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2Vn Y2MqKQorKyAgdmVyc2lvbl90eXBlPXdpbmRvd3MKKysgIHNocmV4dF9jbWRzPSIuZGxsIgorKyAg bmVlZF92ZXJzaW9uPW5vCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysKKysgIGNhc2UgJEdDQywk aG9zdF9vcyBpbgorKyAgeWVzLGN5Z3dpbiogfCB5ZXMsbWluZ3cqIHwgeWVzLHB3MzIqIHwgeWVz LGNlZ2NjKikKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScKKysgICAg IyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21k cworKyAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4K KysgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmls ZX0nXCcnaTsgZWNobyBcJGRsbmFtZSdcJydgfgorKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJu YW1lIFwkZGxwYXRoYH4KKysgICAgICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRp cn4KKysgICAgICAkaW5zdGFsbF9wcm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+Cisr ICAgICAgY2htb2QgYSt4IFwkZGxkaXIvJGRsbmFtZX4KKysgICAgICBpZiB0ZXN0IC1uICdcJyck c3RyaXBtZSdcJycgJiYgdGVzdCAtbiAnXCcnJHN0cmlwbGliJ1wnJzsgdGhlbgorKyAgICAgICAg ZXZhbCAnXCcnJHN0cmlwbGliIFwkZGxkaXIvJGRsbmFtZSdcJycgfHwgZXhpdCBcJD87CisrICAg ICAgZmknCisrICAgIHBvc3R1bmluc3RhbGxfY21kcz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdc JycuICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+CisrICAgICAgZGxwYXRoPSRkaXIvXCRkbGRs bH4KKysgICAgICAgJFJNIFwkZGxwYXRoJworKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9eWVzCisrCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgY3lnd2luKikKKysgICAgICAj IEN5Z3dpbiBETExzIHVzZSAnY3lnJyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKKysgICAgICBz b25hbWVfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBlY2hv ICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRf ZXh0fScKKyttNF9pZihbJDFdLCBbXSxbCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj PSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC91c3IvbGliL3czMmFwaSJdKQorKyAgICAgIDs7 CisrICAgIG1pbmd3KiB8IGNlZ2NjKikKKysgICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlv bmFsICdsaWInIHByZWZpeAorKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHty ZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9 JworKyAgICAgIDs7CisrICAgIHB3MzIqKQorKyAgICAgICMgcHczMiBETExzIHVzZSAncHcnIHBy ZWZpeCByYXRoZXIgdGhhbiAnbGliJworKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVjaG8g JHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQg LWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIDs7Cisr ICAgIGVzYWMKKysgICAgOzsKKysKKysgICopCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZm aXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCisrICAgIDs7CisrICBlc2FjCisrICBkeW5h bWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJworKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNl YXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCisrICBzaGxpYnBh dGhfdmFyPVBBVEgKKysgIDs7CisrCisrZGFyd2luKiB8IHJoYXBzb2R5KikKKysgIGR5bmFtaWNf bGlua2VyPSIkaG9zdF9vcyBkeWxkIgorKyAgdmVyc2lvbl90eXBlPWRhcndpbgorKyAgbmVlZF9s aWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0ICR7bGlibmFtZX0kc2hhcmVk X2V4dCcKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJl ZF9leHQnCisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBzaGxpYnBhdGhf dmFyPURZTERfTElCUkFSWV9QQVRICisrICBzaHJleHRfY21kcz0nYHRlc3QgLiRtb2R1bGUgPSAu eWVzICYmIGVjaG8gLnNvIHx8IGVjaG8gLmR5bGliYCcKKyttNF9pZihbJDFdLCBbXSxbCisrICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL3Vzci9s b2NhbC9saWIiXSkKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xp YiAvbGliIC91c3IvbGliJworKyAgOzsKKysKKytkZ3V4KikKKysgIHZlcnNpb25fdHlwZT1saW51 eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUkc2hhcmVkX2V4 dCcKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgOzsKKysKKytmcmVlYnNk MSopCisrICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsKKysKKytmcmVlYnNkKiB8IGRyYWdvbmZs eSopCisrICAjIERyYWdvbkZseSBkb2VzIG5vdCBoYXZlIGFvdXQuICBXaGVuL2lmIHRoZXkgaW1w bGVtZW50IGEgbmV3CisrICAjIHZlcnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1c3QgdGhpcy4KKysg IGlmIHRlc3QgLXggL3Vzci9iaW4vb2JqZm9ybWF0OyB0aGVuCisrICAgIG9iamZvcm1hdD1gL3Vz ci9iaW4vb2JqZm9ybWF0YAorKyAgZWxzZQorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGZy ZWVic2RbWzEyM11dKikgb2JqZm9ybWF0PWFvdXQgOzsKKysgICAgKikgb2JqZm9ybWF0PWVsZiA7 OworKyAgICBlc2FjCisrICBmaQorKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtJG9iamZvcm1hdAor KyAgY2FzZSAkdmVyc2lvbl90eXBlIGluCisrICAgIGZyZWVic2QtZWxmKikKKysgICAgICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKKysgICAgICBuZWVkX3ZlcnNpb249bm8KKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysg ICAgICA7OworKyAgICBmcmVlYnNkLSopCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXgnCisrICAgICAgbmVlZF92ZXJzaW9uPXllcworKyAgICAgIDs7CisrICBl c2FjCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgY2FzZSAkaG9zdF9vcyBp bgorKyAgZnJlZWJzZDIqKQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisr ICAgIDs7CisrICBmcmVlYnNkMy5bWzAxXV0qIHwgZnJlZWJzZGVsZjMuW1swMV1dKikKKysgICAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9 eWVzCisrICAgIDs7CisrICBmcmVlYnNkMy5bWzItOV1dKiB8IGZyZWVic2RlbGYzLltbMi05XV0q IHwgXAorKyAgZnJlZWJzZDQuW1swLTVdXSB8IGZyZWVic2RlbGY0LltbMC01XV0gfCBmcmVlYnNk NC4xLjEgfCBmcmVlYnNkZWxmNC4xLjEpCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD1ubworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7CisrICAqKSAjIGZyb20g NC42IG9uLCBhbmQgRHJhZ29uRmx5CisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15 ZXMKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICA7OworKyAgZXNhYworKyAgOzsK KysKKytnbnUqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8K KysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKwor K2hhaWt1KikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisr ICBuZWVkX3ZlcnNpb249bm8KKysgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBydW50aW1lX2xv YWRlciIKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21ham9y fSAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFU SAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9Jy9ib290L2hvbWUvY29uZmlnL2xpYiAvYm9vdC9jb21tb24vbGliIC9ib290 L3N5c3RlbS9saWInCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK2hwdXg5 KiB8IGhwdXgxMCogfCBocHV4MTEqKQorKyAgIyBHaXZlIGEgc29uYW1lIGNvcnJlc3BvbmRpbmcg dG8gdGhlIG1ham9yIHZlcnNpb24gc28gdGhhdCBkbGQuc2wgcmVmdXNlcyB0bworKyAgIyBsaW5r IGFnYWluc3Qgb3RoZXIgdmVyc2lvbnMuCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIG5lZWRf bGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBjYXNlICRob3N0X2NwdSBpbgor KyAgaWE2NCopCisrICAgIHNocmV4dF9jbWRzPScuc28nCisrICAgIGhhcmRjb2RlX2ludG9fbGli cz15ZXMKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbyIKKysgICAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgorKyAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScK KysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv cicKKysgICAgaWYgdGVzdCAiWCRIUFVYX0lBNjRfTU9ERSIgPSBYMzI7IHRoZW4KKysgICAgICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYi9o cHV4MzIgL3Vzci9sb2NhbC9saWIiCisrICAgIGVsc2UKKysgICAgICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9Ii91c3IvbGliL2hwdXg2NCAvdXNyL2xvY2FsL2xpYi9ocHV4NjQiCisrICAgIGZp CisrICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWMKKysgICAgOzsKKysgIGhwcGEqNjQqKQorKyAgICBzaHJleHRfY21kcz0nLnNsJworKyAgICBo YXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQu c2wiCisrICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRIICMgSG93IHNob3VsZCB3ZSBo YW5kbGUgU0hMSUJfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMg VW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBz b25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAg ICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL3BhMjBfNjQgL3Vzci9jY3MvbGli L3BhMjBfNjQiCisrICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWMKKysgICAgOzsKKysgICopCisrICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAg IGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCisrICAgIHNobGlicGF0aF92YXI9U0hM SUJfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8gIyArcyBpcyByZXF1 aXJlZCB0byBlbmFibGUgU0hMSUJfUEFUSAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgOzsK KysgIGVzYWMKKysgICMgSFAtVVggcnVucyAqcmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBs aWJyYXJpZXMgYXJlIG1vZGUgNTU1LCAuLi4KKysgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDU1 NSAkbGliJworKyAgIyBvciBmYWlscyBvdXRyaWdodCwgc28gb3ZlcnJpZGUgYXRvbWljYWxseToK KysgIGluc3RhbGxfb3ZlcnJpZGVfbW9kZT01NTUKKysgIDs7CisrCisraW50ZXJpeFtbMy05XV0q KQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRf dmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBkeW5hbWljX2xpbmtlcj0nSW50ZXJp eCAzLnggbGQuc28uMSAoUEUsIGxpa2UgRUxGKScKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKKysgIDs7CisrCisraXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysg IGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5vbnN0b3B1 eCA7OworKyAgICAqKQorKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVu CisrCQl2ZXJzaW9uX3R5cGU9bGludXgKKysJZWxzZQorKwkJdmVyc2lvbl90eXBlPWlyaXgKKysJ ZmkgOzsKKysgIGVzYWMKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5v CisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKKysgICAgbGlic3VmZj0g c2hsaWJzdWZmPQorKyAgICA7OworKyAgKikKKysgICAgY2FzZSAkTEQgaW4gIyBsaWJ0b29sLm00 IHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAorKyAgICAqLTMyfCoiLTMyICJ8 Ki1tZWxmMzJic21pcHwqIi1tZWxmMzJic21pcCAiKQorKyAgICAgIGxpYnN1ZmY9IHNobGlic3Vm Zj0gbGlibWFnaWM9MzItYml0OzsKKysgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJibWlwbjMy fCoiLW1lbGYzMmJtaXBuMzIgIikKKysgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1OMzIgbGli bWFnaWM9TjMyOzsKKysgICAgKi02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxmNjRibWlw ICIpCisrICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0OzsKKysg ICAgKikgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7CisrICAgIGVz YWMKKysgICAgOzsKKysgIGVzYWMKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hsaWJz dWZmfV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3Iv bG9jYWwvbGliJHtsaWJzdWZmfSIKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNy L2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz CisrICA7OworKworKyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRsZCwgYW91 dCwgb3IgY29mZi4KKytsaW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYqKQor KyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrIyBUaGlzIG11c3QgYmUgTGludXggRUxG LgorK2xpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKKysgIHZlcnNpb25f dHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUk e3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29u ZmlnIC1uICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrCisrICAjIFNvbWUgYmludXRpbHMgbGQgYXJl IHBhdGNoZWQgdG8gc2V0IERUX1JVTlBBVEgKKysgIEFDX0NBQ0hFX1ZBTChbbHRfY3Zfc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoXSwKKysgICAgW2x0X2N2X3NobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD1ubworKyAgICBzYXZlX0xERkxBR1M9JExERkxBR1MKKysgICAgc2F2ZV9saWJkaXI9 JGxpYmRpcgorKyAgICBldmFsICJsaWJkaXI9L2Zvbzsgd2w9XCIkX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3dsLCAkMSlcIjsgXAorKwkgTERGTEFHUz1cIlwkTERGTEFHUyAkX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSlcIiIKKysgICAgQUNfTElOS19JRkVMU0Uo W0FDX0xBTkdfUFJPR1JBTShbXSxbXSldLAorKyAgICAgIFtBU19JRihbICgkT0JKRFVNUCAtcCBj b25mdGVzdCRhY19leGVleHQpIDI+L2Rldi9udWxsIHwgZ3JlcCAiUlVOUEFUSC4qJGxpYmRpciIg Pi9kZXYvbnVsbF0sCisrCSBbbHRfY3Zfc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllc10p XSkKKysgICAgTERGTEFHUz0kc2F2ZV9MREZMQUdTCisrICAgIGxpYmRpcj0kc2F2ZV9saWJkaXIK KysgICAgXSkKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD0kbHRfY3Zfc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoCisrCisrICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGws IHdoaWNoIGlzIHVuYWNjZXB0YWJsZS4KKysgICMgU29tZSByZXdvcmsgd2lsbCBiZSBuZWVkZWQg dG8gYWxsb3cgZm9yIGZhc3RfaW5zdGFsbAorKyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUgZW5hYmxl ZC4KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysKKysgICMgQWRkIEFCSS1zcGVjaWZpYyBk aXJlY3RvcmllcyB0byB0aGUgc3lzdGVtIGxpYnJhcnkgcGF0aC4KKysgIHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPSIvbGliNjQgL3Vzci9saWI2NCAvbGliIC91c3IvbGliIgorKworKyAgIyBB cHBlbmQgbGQuc28uY29uZiBjb250ZW50cyB0byB0aGUgc2VhcmNoIHBhdGgKKysgIGlmIHRlc3Qg LWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCisrICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVk ZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFxbJF0y KSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcWyRdMDsgc2tpcCA9IDA7IH0nIDwg L2V0Yy9sZC5zby5jb25mIHwgJFNFRCAtZSAncy8jLiovLzsvXlsJIF0qaHdjYXBbCSBdL2Q7cy9b OiwJXS8gL2c7cy89W149XSokLy87cy89W149IF0qIC8gL2c7cy8iLy9nOy9eJC9kJyB8IHRyICdc bicgJyAnYAorKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjICRsdF9sZF9leHRyYSIKKysKKysgIGZpCisrCisrICAjIFdlIHVzZWQgdG8g 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 IjsgdGhlbgorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgb3BlbmJzZDIuW1s4OV1dIHwg b3BlbmJzZDIuW1s4OV1dLiopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKwk7 OworKyAgICAgICopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysJOzsKKysg ICAgICBlc2FjCisrICBlbHNlCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMK KysgIGZpCisrICA7OworKworK29zMiopCisrICBsaWJuYW1lX3NwZWM9JyRuYW1lJworKyAgc2hy ZXh0X2NtZHM9Ii5kbGwiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9ICRsaWJuYW1lLmEnCisrICBkeW5hbWljX2xpbmtl cj0nT1MvMiBsZC5leGUnCisrICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysgIDs7CisrCisrb3Nm MyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgdmVyc2lvbl90eXBlPW9zZgorKyAgbmVlZF9saWJfcHJl Zml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNobGlicGF0 aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Iv c2hsaWIgL3Vzci9jY3MvbGliIC91c3IvbGliL2NtcGxycy9jYyAvdXNyL2xpYiAvdXNyL2xvY2Fs L2xpYiAvdmFyL3NobGliIgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWMiCisrICA7OworKworK3Jkb3MqKQorKyAgZHluYW1pY19saW5rZXI9 bm8KKysgIDs7CisrCisrc29sYXJpcyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRf bGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPXllcworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgIyBsZGQgY29tcGxhaW5zIHVu bGVzcyBsaWJyYXJpZXMgYXJlIGV4ZWN1dGFibGUKKysgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9k ICt4ICRsaWInCisrICA7OworKworK3N1bm9zNCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICBmaW5pc2hfY21k cz0nUEFUSD0iXCRQQVRIOi91c3IvZXRjIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMK KysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgbmVlZF9saWJfcHJl Zml4PW5vCisrICBmaQorKyAgbmVlZF92ZXJzaW9uPXllcworKyAgOzsKKysKKytzeXN2NCB8IHN5 c3Y0LjMqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKysgICAg c25pKQorKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgICAgIG5lZWRf bGliX3ByZWZpeD1ubworKyAgICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrICAgICAgOzsK KysgICAgc2llbWVucykKKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICA7OworKyAg ICBtb3Rvcm9sYSkKKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBuZWVkX3ZlcnNp b249bm8KKysgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICAgICBzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWM9Jy9saWIgL3Vzci9saWIgL3Vzci9jY3MvbGliJworKyAgICAg IDs7CisrICBlc2FjCisrICA7OworKworK3N5c3Y0Kk1QKikKKysgIGlmIHRlc3QgLWQgL3Vzci9u ZWMgO3RoZW4KKysgICAgdmVyc2lvbl90eXBlPWxpbnV4CisrICAgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9 LiRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPSckbGlibmFt ZSR7c2hhcmVkX2V4dH0uJG1ham9yJworKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAorKyAgZmkKKysgIDs7CisrCisrc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3 YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC1l bGYKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScK KysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In CisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPXllcworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgaWYgdGVzdCAiJHdp dGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91 c3IvbG9jYWwvbGliIC91c3IvZ251L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIgL2xpYicKKysg IGVsc2UKKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Njcy9saWIgL3Vzci9s aWInCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBzY28zLjJ2NSopCisrICAgICAgICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL2xpYiIK KysJOzsKKysgICAgZXNhYworKyAgZmkKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScv dXNyL2xpYicKKysgIDs7CisrCisrdHBmKikKKysgICMgVFBGIGlzIGEgY3Jvc3MtdGFyZ2V0IG9u bHkuICBQcmVmZXJyZWQgY3Jvc3MtaG9zdCA9IEdOVS9MaW51eC4KKysgIHZlcnNpb25fdHlwZT1s aW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJl ZF9leHR9JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD1ubworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysK Kyt1dHM0KikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hs aWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIDs7CisrCisrKikKKysgIGR5bmFtaWNfbGlu a2VyPW5vCisrICA7OworK2VzYWMKKytBQ19NU0dfUkVTVUxUKFskZHluYW1pY19saW5rZXJdKQor K3Rlc3QgIiRkeW5hbWljX2xpbmtlciIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisrCisr dmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IlBBVEggJHNobGlicGF0aF92YXIgJHJ1bnBhdGhf dmFyIgorK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICB2YXJpYWJsZXNfc2F2ZWRfZm9y X3JlbGluaz0iJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIEdDQ19FWEVDX1BSRUZJWCBDT01Q SUxFUl9QQVRIIExJQlJBUllfUEFUSCIKKytmaQorKworK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCisrICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCisrZmkKKytpZiB0ZXN0 ICIke2x0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCisr ICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0 aF9zcGVjIgorK2ZpCisrCisrX0xUX0RFQ0woW10sIFt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGlu a10sIFsxXSwKKysgICAgW1ZhcmlhYmxlcyB3aG9zZSB2YWx1ZXMgc2hvdWxkIGJlIHNhdmVkIGlu IGxpYnRvb2wgd3JhcHBlciBzY3JpcHRzIGFuZAorKyAgICByZXN0b3JlZCBhdCBsaW5rIHRpbWVd KQorK19MVF9ERUNMKFtdLCBbbmVlZF9saWJfcHJlZml4XSwgWzBdLAorKyAgICBbRG8gd2UgbmVl ZCB0aGUgImxpYiIgcHJlZml4IGZvciBtb2R1bGVzP10pCisrX0xUX0RFQ0woW10sIFtuZWVkX3Zl cnNpb25dLCBbMF0sIFtEbyB3ZSBuZWVkIGEgdmVyc2lvbiBmb3IgbGlicmFyaWVzP10pCisrX0xU X0RFQ0woW10sIFt2ZXJzaW9uX3R5cGVdLCBbMF0sIFtMaWJyYXJ5IHZlcnNpb25pbmcgdHlwZV0p CisrX0xUX0RFQ0woW10sIFtydW5wYXRoX3Zhcl0sIFswXSwgIFtTaGFyZWQgbGlicmFyeSBydW50 aW1lIHBhdGggdmFyaWFibGVdKQorK19MVF9ERUNMKFtdLCBbc2hsaWJwYXRoX3Zhcl0sIFswXSxb U2hhcmVkIGxpYnJhcnkgcGF0aCB2YXJpYWJsZV0pCisrX0xUX0RFQ0woW10sIFtzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGhdLCBbMF0sCisrICAgIFtJcyBzaGxpYnBhdGggc2VhcmNoZWQgYmVm b3JlIHRoZSBoYXJkLWNvZGVkIGxpYnJhcnkgc2VhcmNoIHBhdGg/XSkKKytfTFRfREVDTChbXSwg W2xpYm5hbWVfc3BlY10sIFsxXSwgW0Zvcm1hdCBvZiBsaWJyYXJ5IG5hbWUgcHJlZml4XSkKKytf TFRfREVDTChbXSwgW2xpYnJhcnlfbmFtZXNfc3BlY10sIFsxXSwKKysgICAgW1tMaXN0IG9mIGFy Y2hpdmUgbmFtZXMuICBGaXJzdCBuYW1lIGlzIHRoZSByZWFsIG9uZSwgdGhlIHJlc3QgYXJlIGxp bmtzLgorKyAgICBUaGUgbGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2VyIGZpbmRz IHdpdGggLWxOQU1FXV0pCisrX0xUX0RFQ0woW10sIFtzb25hbWVfc3BlY10sIFsxXSwKKysgICAg W1tUaGUgY29kZWQgbmFtZSBvZiB0aGUgbGlicmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJl YWwgbmFtZV1dKQorK19MVF9ERUNMKFtdLCBbaW5zdGFsbF9vdmVycmlkZV9tb2RlXSwgWzFdLAor KyAgICBbUGVybWlzc2lvbiBtb2RlIG92ZXJyaWRlIGZvciBpbnN0YWxsYXRpb24gb2Ygc2hhcmVk IGxpYnJhcmllc10pCisrX0xUX0RFQ0woW10sIFtwb3N0aW5zdGFsbF9jbWRzXSwgWzJdLAorKyAg ICBbQ29tbWFuZCB0byB1c2UgYWZ0ZXIgaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmVd KQorK19MVF9ERUNMKFtdLCBbcG9zdHVuaW5zdGFsbF9jbWRzXSwgWzJdLAorKyAgICBbQ29tbWFu ZCB0byB1c2UgYWZ0ZXIgdW5pbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZV0pCisrX0xU X0RFQ0woW10sIFtmaW5pc2hfY21kc10sIFsyXSwKKysgICAgW0NvbW1hbmRzIHVzZWQgdG8gZmlu aXNoIGEgbGlidG9vbCBsaWJyYXJ5IGluc3RhbGxhdGlvbiBpbiBhIGRpcmVjdG9yeV0pCisrX0xU X0RFQ0woW10sIFtmaW5pc2hfZXZhbF0sIFsxXSwKKysgICAgW1tBcyAiZmluaXNoX2NtZHMiLCBl eGNlcHQgYSBzaW5nbGUgc2NyaXB0IGZyYWdtZW50IHRvIGJlIGV2YWxlZCBidXQKKysgICAgbm90 IHNob3duXV0pCisrX0xUX0RFQ0woW10sIFtoYXJkY29kZV9pbnRvX2xpYnNdLCBbMF0sCisrICAg IFtXaGV0aGVyIHdlIHNob3VsZCBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gbGlicmFyaWVz XSkKKytfTFRfREVDTChbXSwgW3N5c19saWJfc2VhcmNoX3BhdGhfc3BlY10sIFsyXSwKKysgICAg W0NvbXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllc10pCisrX0xUX0RF Q0woW10sIFtzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlY10sIFsyXSwKKysgICAgW1J1bi10aW1l IHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzXSkKKytdKSMgX0xUX1NZU19EWU5BTUlD X0xJTktFUgorKworKworKyMgX0xUX1BBVEhfVE9PTF9QUkVGSVgoVE9PTCkKKysjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrIyBmaW5kIGEgZmlsZSBwcm9ncmFtIHdoaWNoIGNhbiByZWNv Z25pemUgc2hhcmVkIGxpYnJhcnkKKytBQ19ERUZVTihbX0xUX1BBVEhfVE9PTF9QUkVGSVhdLAor K1ttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCisrQUNfTVNHX0NIRUNLSU5HKFtmb3Ig JDFdKQorK0FDX0NBQ0hFX1ZBTChsdF9jdl9wYXRoX01BR0lDX0NNRCwKKytbY2FzZSAkTUFHSUNf Q01EIGluCisrW1tcXC8qXSB8ICA/OltcXC9dKl0pCisrICBsdF9jdl9wYXRoX01BR0lDX0NNRD0i JE1BR0lDX0NNRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGgu CisrICA7OworKyopCisrICBsdF9zYXZlX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIKKysgIGx0X3Nh dmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2RubCAkYWNfZHVtbXkgZm9yY2Vz IHNwbGl0dGluZyBvbiBjb25zdGFudCB1c2VyLXN1cHBsaWVkIHBhdGhzLgorK2RubCBQT1NJWC4y IHdvcmQgc3BsaXR0aW5nIGlzIGRvbmUgb25seSBvbiB0aGUgb3V0cHV0IG9mIHdvcmQgZXhwYW5z aW9ucywKKytkbmwgbm90IGV2ZXJ5IHdvcmQuICBUaGlzIGNsb3NlcyBhIGxvbmdzdGFuZGluZyBz aCBzZWN1cml0eSBob2xlLgorKyAgYWNfZHVtbXk9Im00X2lmKFskMl0sICwgJFBBVEgsIFskMl0p IgorKyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCisrICAgIElGUz0iJGx0X3NhdmVfaWZz IgorKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICBpZiB0ZXN0IC1mICRh Y19kaXIvJDE7IHRoZW4KKysgICAgICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJGFjX2Rpci8kMSIK KysgICAgICBpZiB0ZXN0IC1uICIkZmlsZV9tYWdpY190ZXN0X2ZpbGUiOyB0aGVuCisrCWNhc2Ug JGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrCSJmaWxlX21hZ2ljICIqKQorKwkgIGZpbGVfbWFn aWNfcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiZmlsZV9tYWdpYyBcKC4q XCkiYAorKwkgIE1BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgorKwkgIGlmIGV2YWwg JGZpbGVfbWFnaWNfY21kIFwkZmlsZV9tYWdpY190ZXN0X2ZpbGUgMj4gL2Rldi9udWxsIHwKKysJ ICAgICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICA6 CisrCSAgZWxzZQorKwkgICAgY2F0IDw8X0xUX0VPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IHRo ZSBjb21tYW5kIGxpYnRvb2wgdXNlcyB0byBkZXRlY3Qgc2hhcmVkIGxpYnJhcmllcywKKysqKiog JGZpbGVfbWFnaWNfY21kLCBwcm9kdWNlcyBvdXRwdXQgdGhhdCBsaWJ0b29sIGNhbm5vdCByZWNv Z25pemUuCisrKioqIFRoZSByZXN1bHQgaXMgdGhhdCBsaWJ0b29sIG1heSBmYWlsIHRvIHJlY29n bml6ZSBzaGFyZWQgbGlicmFyaWVzCisrKioqIGFzIHN1Y2guICBUaGlzIHdpbGwgYWZmZWN0IHRo ZSBjcmVhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcyB0aGF0CisrKioqIGRlcGVuZCBvbiBzaGFy ZWQgbGlicmFyaWVzLCBidXQgcHJvZ3JhbXMgbGlua2VkIHdpdGggc3VjaCBsaWJ0b29sCisrKioq IGxpYnJhcmllcyB3aWxsIHdvcmsgcmVnYXJkbGVzcyBvZiB0aGlzIHByb2JsZW0uICBOZXZlcnRo ZWxlc3MsIHlvdQorKyoqKiBtYXkgd2FudCB0byByZXBvcnQgdGhlIHByb2JsZW0gdG8geW91ciBz eXN0ZW0gbWFuYWdlciBhbmQvb3IgdG8KKysqKiogYnVnLWxpYnRvb2xAZ251Lm9yZworKworK19M VF9FT0YKKysJICBmaSA7OworKwllc2FjCisrICAgICAgZmkKKysgICAgICBicmVhaworKyAgICBm aQorKyAgZG9uZQorKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICBNQUdJQ19DTUQ9IiRsdF9zYXZl X01BR0lDX0NNRCIKKysgIDs7CisrZXNhY10pCisrTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJ Q19DTUQiCisraWYgdGVzdCAtbiAiJE1BR0lDX0NNRCI7IHRoZW4KKysgIEFDX01TR19SRVNVTFQo JE1BR0lDX0NNRCkKKytlbHNlCisrICBBQ19NU0dfUkVTVUxUKG5vKQorK2ZpCisrX0xUX0RFQ0wo W10sIFtNQUdJQ19DTURdLCBbMF0sCisrCSBbVXNlZCB0byBleGFtaW5lIGxpYnJhcmllcyB3aGVu IGZpbGVfbWFnaWNfY21kIGJlZ2lucyB3aXRoICJmaWxlIl0pZG5sCisrXSkjIF9MVF9QQVRIX1RP T0xfUFJFRklYCisrCisrIyBPbGQgbmFtZToKKytBVV9BTElBUyhbQUNfUEFUSF9UT09MX1BSRUZJ WF0sIFtfTFRfUEFUSF9UT09MX1BSRUZJWF0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBj b21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQUNfUEFUSF9UT09MX1BSRUZJWF0sIFtdKQor KworKworKyMgX0xUX1BBVEhfTUFHSUMKKysjIC0tLS0tLS0tLS0tLS0tCisrIyBmaW5kIGEgZmls ZSBwcm9ncmFtIHdoaWNoIGNhbiByZWNvZ25pemUgYSBzaGFyZWQgbGlicmFyeQorK200X2RlZnVu KFtfTFRfUEFUSF9NQUdJQ10sCisrW19MVF9QQVRIX1RPT0xfUFJFRklYKCR7YWNfdG9vbF9wcmVm aXh9ZmlsZSwgL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSCkKKytpZiB0ZXN0IC16ICIkbHRf Y3ZfcGF0aF9NQUdJQ19DTUQiOyB0aGVuCisrICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgi OyB0aGVuCisrICAgIF9MVF9QQVRIX1RPT0xfUFJFRklYKGZpbGUsIC91c3IvYmluJFBBVEhfU0VQ QVJBVE9SJFBBVEgpCisrICBlbHNlCisrICAgIE1BR0lDX0NNRD06CisrICBmaQorK2ZpCisrXSkj IF9MVF9QQVRIX01BR0lDCisrCisrCisrIyBMVF9QQVRIX0xECisrIyAtLS0tLS0tLS0tCisrIyBm aW5kIHRoZSBwYXRobmFtZSB0byB0aGUgR05VIG9yIG5vbi1HTlUgbGlua2VyCisrQUNfREVGVU4o W0xUX1BBVEhfTERdLAorK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKKytBQ19SRVFVSVJF KFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCisrQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0JVSUxE XSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAorK200X3JlcXVpcmUoW19MVF9E RUNMX0VHUkVQXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSF0pZG5s CisrCisrQUNfQVJHX1dJVEgoW2dudS1sZF0sCisrICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRo LWdudS1sZF0sCisrCVthc3N1bWUgdGhlIEMgY29tcGlsZXIgdXNlcyBHTlUgbGQgQDw6QGRlZmF1 bHQ9bm9AOj5AXSldLAorKyAgICBbdGVzdCAiJHdpdGh2YWwiID0gbm8gfHwgd2l0aF9nbnVfbGQ9 eWVzXSwKKysgICAgW3dpdGhfZ251X2xkPW5vXSlkbmwKKysKKythY19wcm9nPWxkCisraWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICMgQ2hlY2sgaWYgZ2NjIC1wcmludC1wcm9nLW5hbWU9 bGQgZ2l2ZXMgYSBwYXRoLgorKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgbGQgdXNlZCBieSAkQ0Nd KQorKyAgY2FzZSAkaG9zdCBpbgorKyAgKi0qLW1pbmd3KikKKysgICAgIyBnY2MgbGVhdmVzIGEg dHJhaWxpbmcgY2FycmlhZ2UgcmV0dXJuIHdoaWNoIHVwc2V0cyBtaW5ndworKyAgICBhY19wcm9n PWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjUgfCB0ciAtZCAnXDAxNSdgIDs7CisrICAq KQorKyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjVgIDs7CisrICBl c2FjCisrICBjYXNlICRhY19wcm9nIGluCisrICAgICMgQWNjZXB0IGFic29sdXRlIHBhdGhzLgor KyAgICBbW1xcL11dKiB8ID86W1tcXC9dXSopCisrICAgICAgcmVfZGlyZWx0PScvW1teL11dW1te L11dKi9cLlwuLycKKysgICAgICAjIENhbm9uaWNhbGl6ZSB0aGUgcGF0aG5hbWUgb2YgbGQKKysg ICAgICBhY19wcm9nPWAkRUNITyAiJGFjX3Byb2cifCAkU0VEICdzJVxcXFwlLyVnJ2AKKysgICAg ICB3aGlsZSAkRUNITyAiJGFjX3Byb2ciIHwgJEdSRVAgIiRyZV9kaXJlbHQiID4gL2Rldi9udWxs IDI+JjE7IGRvCisrCWFjX3Byb2c9YCRFQ0hPICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJlbHQl LyUiYAorKyAgICAgIGRvbmUKKysgICAgICB0ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJvZyIK KysgICAgICA7OworKyAgIiIpCisrICAgICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3ZSBh cmVuJ3QgdXNpbmcgR0NDLgorKyAgICBhY19wcm9nPWxkCisrICAgIDs7CisrICAqKQorKyAgICAj IElmIGl0IGlzIHJlbGF0aXZlLCB0aGVuIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEgu CisrICAgIHdpdGhfZ251X2xkPXVua25vd24KKysgICAgOzsKKysgIGVzYWMKKytlbGlmIHRlc3Qg IiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgIEFDX01TR19DSEVDS0lORyhbZm9yIEdOVSBs ZF0pCisrZWxzZQorKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3Igbm9uLUdOVSBsZF0pCisrZmkKKytB Q19DQUNIRV9WQUwobHRfY3ZfcGF0aF9MRCwKKytbaWYgdGVzdCAteiAiJExEIjsgdGhlbgorKyAg bHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrICBmb3IgYWNfZGlyIGlu ICRQQVRIOyBkbworKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgdGVzdCAteiAiJGFjX2Rp ciIgJiYgYWNfZGlyPS4KKysgICAgaWYgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyIgfHwgdGVz dCAtZiAiJGFjX2Rpci8kYWNfcHJvZyRhY19leGVleHQiOyB0aGVuCisrICAgICAgbHRfY3ZfcGF0 aF9MRD0iJGFjX2Rpci8kYWNfcHJvZyIKKysgICAgICAjIENoZWNrIHRvIHNlZSBpZiB0aGUgcHJv Z3JhbSBpcyBHTlUgbGQuICBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24sCisrICAgICAgIyBidXQg YXBwYXJlbnRseSBzb21lIHZhcmlhbnRzIG9mIEdOVSBsZCBvbmx5IGFjY2VwdCAtdi4KKysgICAg ICAjIEJyZWFrIG9ubHkgaWYgaXQgd2FzIHRoZSBHTlUvbm9uLUdOVSBsZCB0aGF0IHdlIHByZWZl ci4KKysgICAgICBjYXNlIGAiJGx0X2N2X3BhdGhfTEQiIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4K KysgICAgICAqR05VKiB8ICond2l0aCBCRkQnKikKKysJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSBu byAmJiBicmVhaworKwk7OworKyAgICAgICopCisrCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0geWVz ICYmIGJyZWFrCisrCTs7CisrICAgICAgZXNhYworKyAgICBmaQorKyAgZG9uZQorKyAgSUZTPSIk bHRfc2F2ZV9pZnMiCisrZWxzZQorKyAgbHRfY3ZfcGF0aF9MRD0iJExEIiAjIExldCB0aGUgdXNl ciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KKytmaV0pCisrTEQ9IiRsdF9jdl9wYXRo X0xEIgorK2lmIHRlc3QgLW4gIiRMRCI7IHRoZW4KKysgIEFDX01TR19SRVNVTFQoJExEKQorK2Vs c2UKKysgIEFDX01TR19SRVNVTFQobm8pCisrZmkKKyt0ZXN0IC16ICIkTEQiICYmIEFDX01TR19F UlJPUihbbm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEhdKQorK19MVF9QQVRIX0xEX0dO VQorK0FDX1NVQlNUKFtMRF0pCisrCisrX0xUX1RBR0RFQ0woW10sIFtMRF0sIFsxXSwgW1RoZSBs aW5rZXIgdXNlZCB0byBidWlsZCBsaWJyYXJpZXNdKQorK10pIyBMVF9QQVRIX0xECisrCisrIyBP bGQgbmFtZXM6CisrQVVfQUxJQVMoW0FNX1BST0dfTERdLCBbTFRfUEFUSF9MRF0pCisrQVVfQUxJ QVMoW0FDX1BST0dfTERdLCBbTFRfUEFUSF9MRF0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJk cyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQU1fUFJPR19MRF0sIFtdKQorK2RubCBB Q19ERUZVTihbQUNfUFJPR19MRF0sIFtdKQorKworKworKyMgX0xUX1BBVEhfTERfR05VCisrIy0g LS0tLS0tLS0tLS0tLS0KKyttNF9kZWZ1bihbX0xUX1BBVEhfTERfR05VXSwKKytbQUNfQ0FDSEVf Q0hFQ0soW2lmIHRoZSBsaW5rZXIgKCRMRCkgaXMgR05VIGxkXSwgbHRfY3ZfcHJvZ19nbnVfbGQs CisrWyMgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uIGhlcmUsIGJ1dCBhcHBhcmVudGx5IHNvbWUg R05VIGxkcyBvbmx5IGFjY2VwdCAtdi4KKytjYXNlIGAkTEQgLXYgMj4mMSA8L2Rldi9udWxsYCBp bgorKypHTlUqIHwgKid3aXRoIEJGRCcqKQorKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9eWVzCisrICA7 OworKyopCisrICBsdF9jdl9wcm9nX2dudV9sZD1ubworKyAgOzsKKytlc2FjXSkKKyt3aXRoX2du dV9sZD0kbHRfY3ZfcHJvZ19nbnVfbGQKKytdKSMgX0xUX1BBVEhfTERfR05VCisrCisrCisrIyBf TFRfQ01EX1JFTE9BRAorKyMgLS0tLS0tLS0tLS0tLS0KKysjIGZpbmQgcmVsb2FkIGZsYWcgZm9y IGxpbmtlcgorKyMgICAtLSBQT1JUTUUgU29tZSBsaW5rZXJzIG1heSBuZWVkIGEgZGlmZmVyZW50 IHJlbG9hZCBmbGFnLgorK200X2RlZnVuKFtfTFRfQ01EX1JFTE9BRF0sCisrW0FDX0NBQ0hFX0NI RUNLKFtmb3IgJExEIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzXSwKKysgIGx0X2N2X2xk X3JlbG9hZF9mbGFnLAorKyAgW2x0X2N2X2xkX3JlbG9hZF9mbGFnPSctciddKQorK3JlbG9hZF9m bGFnPSRsdF9jdl9sZF9yZWxvYWRfZmxhZworK2Nhc2UgJHJlbG9hZF9mbGFnIGluCisrIiIgfCAi ICIqKSA7OworKyopIHJlbG9hZF9mbGFnPSIgJHJlbG9hZF9mbGFnIiA7OworK2VzYWMKKytyZWxv YWRfY21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCisrY2FzZSAk aG9zdF9vcyBpbgorKyAgZGFyd2luKikKKysgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4K KysgICAgICByZWxvYWRfY21kcz0nJExUQ0MgJExUQ0ZMQUdTIC1ub3N0ZGxpYiAke3dsfS1yIC1v ICRvdXRwdXQkcmVsb2FkX29ianMnCisrICAgIGVsc2UKKysgICAgICByZWxvYWRfY21kcz0nJExE JHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCisrICAgIGZpCisrICAgIDs7Cisr ZXNhYworK19MVF9UQUdERUNMKFtdLCBbcmVsb2FkX2ZsYWddLCBbMV0sIFtIb3cgdG8gY3JlYXRl IHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzXSlkbmwKKytfTFRfVEFHREVDTChbXSwgW3JlbG9hZF9j bWRzXSwgWzJdKWRubAorK10pIyBfTFRfQ01EX1JFTE9BRAorKworKworKyMgX0xUX0NIRUNLX01B R0lDX01FVEhPRAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgaG93IHRvIGNoZWNrIGZv ciBsaWJyYXJ5IGRlcGVuZGVuY2llcworKyMgIC0tIFBPUlRNRSBmaWxsIGluIHdpdGggdGhlIGR5 bmFtaWMgbGlicmFyeSBjaGFyYWN0ZXJpc3RpY3MKKyttNF9kZWZ1bihbX0xUX0NIRUNLX01BR0lD X01FVEhPRF0sCisrW200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSkKKyttNF9yZXF1aXJlKFtf TFRfREVDTF9PQkpEVU1QXSkKKytBQ19DQUNIRV9DSEVDSyhbaG93IHRvIHJlY29nbml6ZSBkZXBl bmRlbnQgbGlicmFyaWVzXSwKKytsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZCwKKytbbHRfY3Zf ZmlsZV9tYWdpY19jbWQ9JyRNQUdJQ19DTUQnCisrbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9 CisrbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J3Vua25vd24nCisrIyBOZWVkIHRvIHNldCB0 aGUgcHJlY2VkaW5nIHZhcmlhYmxlIG9uIGFsbCBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0CisrIyBp bnRlcmxpYnJhcnkgZGVwZW5kZW5jaWVzLgorKyMgJ25vbmUnIC0tIGRlcGVuZGVuY2llcyBub3Qg c3VwcG9ydGVkLgorKyMgYHVua25vd24nIC0tIHNhbWUgYXMgbm9uZSwgYnV0IGRvY3VtZW50cyB0 aGF0IHdlIHJlYWxseSBkb24ndCBrbm93LgorKyMgJ3Bhc3NfYWxsJyAtLSBhbGwgZGVwZW5kZW5j aWVzIHBhc3NlZCB3aXRoIG5vIGNoZWNrcy4KKysjICd0ZXN0X2NvbXBpbGUnIC0tIGNoZWNrIGJ5 IG1ha2luZyB0ZXN0IHByb2dyYW0uCisrIyAnZmlsZV9tYWdpYyBbW3JlZ2V4XV0nIC0tIGNoZWNr IGJ5IGxvb2tpbmcgZm9yIGZpbGVzIGluIGxpYnJhcnkgcGF0aAorKyMgd2hpY2ggcmVzcG9uZHMg dG8gdGhlICRmaWxlX21hZ2ljX2NtZCB3aXRoIGEgZ2l2ZW4gZXh0ZW5kZWQgcmVnZXguCisrIyBJ ZiB5b3UgaGF2ZSBgZmlsZScgb3IgZXF1aXZhbGVudCBvbiB5b3VyIHN5c3RlbSBhbmQgeW91J3Jl IG5vdCBzdXJlCisrIyB3aGV0aGVyIGBwYXNzX2FsbCcgd2lsbCAqYWx3YXlzKiB3b3JrLCB5b3Ug cHJvYmFibHkgd2FudCB0aGlzIG9uZS4KKysKKytjYXNlICRob3N0X29zIGluCisrYWl4W1s0LTld XSopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKyti ZW9zKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKwor K2JzZGlbWzQ1XV0qKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMg RUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tNTF1dU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBs aWIpJworKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9Jy91c3IvYmluL2ZpbGUgLUwnCisrICBsdF9j dl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vc2hsaWIvbGliYy5zbworKyAgOzsKKysKKytjeWd3aW4q KQorKyAgIyBmdW5jX3dpbjMyX2xpYmlkIGlzIGEgc2hlbGwgZnVuY3Rpb24gZGVmaW5lZCBpbiBs dG1haW4uc2gKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIF54ODYg YXJjaGl2ZSBpbXBvcnR8Xng4NiBETEwnCisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nZnVuY193 aW4zMl9saWJpZCcKKysgIDs7CisrCisrbWluZ3cqIHwgcHczMiopCisrICAjIEJhc2UgTVNZUy9N aW5HVyBkbyBub3QgcHJvdmlkZSB0aGUgJ2ZpbGUnIGNvbW1hbmQgbmVlZGVkIGJ5CisrICAjIGZ1 bmNfd2luMzJfbGliaWQgc2hlbGwgZnVuY3Rpb24sIHNvIHVzZSBhIHdlYWtlciB0ZXN0IGJhc2Vk IG9uICdvYmpkdW1wJywKKysgICMgdW5sZXNzIHdlIGZpbmQgJ2ZpbGUnLCBmb3IgZXhhbXBsZSBi ZWNhdXNlIHdlIGFyZSBjcm9zcy1jb21waWxpbmcuCisrICAjIGZ1bmNfd2luMzJfbGliaWQgYXNz dW1lcyBCU0Qgbm0sIHNvIGRpc2FsbG93IGl0IGlmIHVzaW5nIE1TIGR1bXBiaW4uCisrICBpZiAo IHRlc3QgIiRsdF9jdl9ubV9pbnRlcmZhY2UiID0gIkJTRCBubSIgJiYgZmlsZSAvICkgPi9kZXYv bnVsbCAyPiYxOyB0aGVuCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21h Z2ljIF54ODYgYXJjaGl2ZSBpbXBvcnR8Xng4NiBETEwnCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNf Y21kPSdmdW5jX3dpbjMyX2xpYmlkJworKyAgZWxzZQorKyAgICAjIEtlZXAgdGhpcyBwYXR0ZXJu IGluIHN5bmMgd2l0aCB0aGUgb25lIGluIGZ1bmNfd2luMzJfbGliaWQuCisrICAgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0IChwZWkqLWkzODYoLiph cmNoaXRlY3R1cmU6IGkzODYpP3xwZS1hcm0td2luY2V8cGUteDg2LTY0KScKKysgICAgbHRfY3Zf ZmlsZV9tYWdpY19jbWQ9JyRPQkpEVU1QIC1mJworKyAgZmkKKysgIDs7CisrCisrY2VnY2MqKQor KyAgIyB1c2UgdGhlIHdlYWtlciB0ZXN0IGJhc2VkIG9uICdvYmpkdW1wJy4gU2VlIG1pbmd3Ki4K KysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0IHBl LWFybS0uKmxpdHRsZSguKmFyY2hpdGVjdHVyZTogYXJtKT8nCisrICBsdF9jdl9maWxlX21hZ2lj X2NtZD0nJE9CSkRVTVAgLWYnCisrICA7OworKworK2RhcndpbiogfCByaGFwc29keSopCisrICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytmcmVlYnNkKiB8 IGRyYWdvbmZseSopCisrICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxG X18gPiAvZGV2L251bGw7IHRoZW4KKysgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgaSo4NiAp CisrICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHRoZSBwcmVzZW5jZSBvZiBPcGVuQlNEIGhlcmUg d2FzIGEgbWlzdGFrZS4KKysgICAgICAjIExldCdzIGFjY2VwdCBib3RoIG9mIHRoZW0gdW50aWwg dGhpcyBpcyBjbGVhcmVkIHVwLgorKyAgICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdm aWxlX21hZ2ljIChGcmVlQlNEfE9wZW5CU0R8RHJhZ29uRmx5KS9pW1szLTldXTg2IChjb21wYWN0 ICk/ZGVtYW5kIHBhZ2VkIHNoYXJlZCBsaWJyYXJ5JworKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNf Y21kPS91c3IvYmluL2ZpbGUKKysgICAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNo byAvdXNyL2xpYi9saWJjLnNvLipgCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZWxzZQorKyAg ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgZmkKKysgIDs7CisrCisr Z251KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKwor K2hhaWt1KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7Owor KworK2hwdXgxMC4yMCogfCBocHV4MTEqKQorKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9i aW4vZmlsZQorKyAgY2FzZSAkaG9zdF9jcHUgaW4KKysgIGlhNjQqKQorKyAgICBsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1tbMC05XV1bWzAtOV1dW1swLTldXXxFTEYt W1swLTldXVtbMC05XV0pIHNoYXJlZCBvYmplY3QgZmlsZSAtIElBNjQnCisrICAgIGx0X2N2X2Zp bGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2hwdXgzMi9saWJjLnNvCisrICAgIDs7CisrICBo cHBhKjY0KikKKysgICAgW2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChz WzAtOV1bMC05XVswLTldfEVMRlsgLV1bMC05XVswLTldKSgtYml0KT8oIFtMTV1TQik/IHNoYXJl ZCBvYmplY3QoIGZpbGUpP1ssIC1dKiBQQS1SSVNDIFswLTldXC5bMC05XSddCisrICAgIGx0X2N2 X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL3BhMjBfNjQvbGliYy5zbAorKyAgICA7Owor KyAgKikKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbWzAt OV1dW1swLTldXVtbMC05XV18UEEtUklTQ1tbMC05XV1cLltbMC05XV0pIHNoYXJlZCBsaWJyYXJ5 JworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9saWJjLnNsCisrICAg IDs7CisrICBlc2FjCisrICA7OworKworK2ludGVyaXhbWzMtOV1dKikKKysgICMgUElDIGNvZGUg aXMgYnJva2VuIG9uIEludGVyaXggMy54LCB0aGF0J3Mgd2h5IHxcLmEgbm90IHxfcGljXC5hIGhl cmUKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbW14v XV0rKFwuc298XC5hKSQnCisrICA7OworKworK2lyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCop CisrICBjYXNlICRMRCBpbgorKyAgKi0zMnwqIi0zMiAiKSBsaWJtYWdpYz0zMi1iaXQ7OworKyAg Ki1uMzJ8KiItbjMyICIpIGxpYm1hZ2ljPU4zMjs7CisrICAqLTY0fCoiLTY0ICIpIGxpYm1hZ2lj PTY0LWJpdDs7CisrICAqKSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7CisrICBlc2FjCisrICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKysjIFRoaXMgbXVzdCBi ZSBMaW51eCBFTEYuCisrbGludXgqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQor KyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrbmV0YnNk KikKKysgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+IC9kZXYv bnVsbDsgdGhlbgorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVy biAvbGliW1teL11dKyhcLnNvXC5bWzAtOV1dK1wuW1swLTldXSt8X3BpY1wuYSkkJworKyAgZWxz ZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1te L11dKyhcLnNvfF9waWNcLmEpJCcKKysgIGZpCisrICA7OworKworK25ld29zNiopCisrICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0qLWJp dCBbW01MXV1TQiAoZXhlY3V0YWJsZXxkeW5hbWljIGxpYiknCisrICBsdF9jdl9maWxlX21hZ2lj X2NtZD0vdXNyL2Jpbi9maWxlCisrICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xp Yi9saWJubHMuc28KKysgIDs7CisrCisrKm50byogfCAqcW54KikKKysgIGx0X2N2X2RlcGxpYnNf Y2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK29wZW5ic2QqKQorKyAgaWYgdGVzdCAt eiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8IHRlc3QgIiRo b3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgorKyAgICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvXC5b WzAtOV1dK1wuW1swLTldXSt8XC5zb3xfcGljXC5hKSQnCisrICBlbHNlCisrICAgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc29cLltbMC05 XV0rXC5bWzAtOV1dK3xfcGljXC5hKSQnCisrICBmaQorKyAgOzsKKysKKytvc2YzKiB8IG9zZjQq IHwgb3NmNSopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsK KysKKytyZG9zKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7 OworKworK3NvbGFyaXMqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwK KysgIDs7CisrCisrc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9w ZW5VTklYKiB8IHN5c3Y0KnV3MiopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNz X2FsbAorKyAgOzsKKysKKytzeXN2NCB8IHN5c3Y0LjMqKQorKyAgY2FzZSAkaG9zdF92ZW5kb3Ig aW4KKysgIG1vdG9yb2xhKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9t YWdpYyBFTEYgW1swLTldXVtbMC05XV0qLWJpdCBbW01MXV1TQiAoc2hhcmVkIG9iamVjdHxkeW5h bWljIGxpYikgTVtbMC05XV1bWzAtOV1dKiBWZXJzaW9uIFtbMC05XV0nCisrICAgIGx0X2N2X2Zp bGVfbWFnaWNfdGVzdF9maWxlPWBlY2hvIC91c3IvbGliL2xpYmMuc28qYAorKyAgICA7OworKyAg bmNyKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgICA7Owor KyAgc2VxdWVudCkKKysgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9Jy9iaW4vZmlsZScKKysgICAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1d Ki1iaXQgW1tMTV1dU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIgKScKKysgICAgOzsKKysg IHNuaSkKKysgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9Jy9iaW4vZmlsZScKKysgICAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9ImZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQg W1tMTV1dU0IgZHluYW1pYyBsaWIiCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS9s aWIvbGliYy5zbworKyAgICA7OworKyAgc2llbWVucykKKysgICAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsKKysgIHBjKQorKyAgICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKyt0cGYqKQor KyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrZXNhYworK10p CisrZmlsZV9tYWdpY19jbWQ9JGx0X2N2X2ZpbGVfbWFnaWNfY21kCisrZGVwbGlic19jaGVja19t ZXRob2Q9JGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kCisrdGVzdCAteiAiJGRlcGxpYnNfY2hl Y2tfbWV0aG9kIiAmJiBkZXBsaWJzX2NoZWNrX21ldGhvZD11bmtub3duCisrCisrX0xUX0RFQ0wo W10sIFtkZXBsaWJzX2NoZWNrX21ldGhvZF0sIFsxXSwKKysgICAgW01ldGhvZCB0byBjaGVjayB3 aGV0aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzXSkKKytfTFRfREVD TChbXSwgW2ZpbGVfbWFnaWNfY21kXSwgWzFdLAorKyAgICBbQ29tbWFuZCB0byB1c2Ugd2hlbiBk ZXBsaWJzX2NoZWNrX21ldGhvZCA9PSAiZmlsZV9tYWdpYyJdKQorK10pIyBfTFRfQ0hFQ0tfTUFH SUNfTUVUSE9ECisrCisrCisrIyBMVF9QQVRIX05NCisrIyAtLS0tLS0tLS0tCisrIyBmaW5kIHRo ZSBwYXRobmFtZSB0byBhIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlcgorK0FDX0RF RlVOKFtMVF9QQVRIX05NXSwKKytbQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCisrQUNfQ0FD SEVfQ0hFQ0soW2ZvciBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKV0sIGx0 X2N2X3BhdGhfTk0sCisrW2lmIHRlc3QgLW4gIiROTSI7IHRoZW4KKysgICMgTGV0IHRoZSB1c2Vy IG92ZXJyaWRlIHRoZSB0ZXN0LgorKyAgbHRfY3ZfcGF0aF9OTT0iJE5NIgorK2Vsc2UKKysgIGx0 X25tX3RvX2NoZWNrPSIke2FjX3Rvb2xfcHJlZml4fW5tIgorKyAgaWYgdGVzdCAtbiAiJGFjX3Rv b2xfcHJlZml4IiAmJiB0ZXN0ICIkYnVpbGQiID0gIiRob3N0IjsgdGhlbgorKyAgICBsdF9ubV90 b19jaGVjaz0iJGx0X25tX3RvX2NoZWNrIG5tIgorKyAgZmkKKysgIGZvciBsdF90bXBfbm0gaW4g JGx0X25tX3RvX2NoZWNrOyBkbworKyAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9T RVBBUkFUT1IKKysgICAgZm9yIGFjX2RpciBpbiAkUEFUSCAvdXNyL2Njcy9iaW4vZWxmIC91c3Iv Y2NzL2JpbiAvdXNyL3VjYiAvYmluOyBkbworKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAg ICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCisrICAgICAgdG1wX25tPSIkYWNfZGly LyRsdF90bXBfbm0iCisrICAgICAgaWYgdGVzdCAtZiAiJHRtcF9ubSIgfHwgdGVzdCAtZiAiJHRt cF9ubSRhY19leGVleHQiIDsgdGhlbgorKwkjIENoZWNrIHRvIHNlZSBpZiB0aGUgbm0gYWNjZXB0 cyBhIEJTRC1jb21wYXQgZmxhZy4KKysJIyBBZGRpbmcgdGhlIGBzZWQgMXEnIHByZXZlbnRzIGZh bHNlIHBvc2l0aXZlcyBvbiBIUC1VWCwgd2hpY2ggc2F5czoKKysJIyAgIG5tOiB1bmtub3duIG9w dGlvbiAiQiIgaWdub3JlZAorKwkjIFRydTY0J3Mgbm0gY29tcGxhaW5zIHRoYXQgL2Rldi9udWxs IGlzIGFuIGludmFsaWQgb2JqZWN0IGZpbGUKKysJY2FzZSBgIiR0bXBfbm0iIC1CIC9kZXYvbnVs bCAyPiYxIHwgc2VkICcxcSdgIGluCisrCSovZGV2L251bGwqIHwgKidJbnZhbGlkIGZpbGUgb3Ig b2JqZWN0IHR5cGUnKikKKysJICBsdF9jdl9wYXRoX05NPSIkdG1wX25tIC1CIgorKwkgIGJyZWFr CisrCSAgOzsKKysJKikKKysJICBjYXNlIGAiJHRtcF9ubSIgLXAgL2Rldi9udWxsIDI+JjEgfCBz ZWQgJzFxJ2AgaW4KKysJICAqL2Rldi9udWxsKikKKysJICAgIGx0X2N2X3BhdGhfTk09IiR0bXBf bm0gLXAiCisrCSAgICBicmVhaworKwkgICAgOzsKKysJICAqKQorKwkgICAgbHRfY3ZfcGF0aF9O TT0ke2x0X2N2X3BhdGhfTk09IiR0bXBfbm0ifSAjIGtlZXAgdGhlIGZpcnN0IG1hdGNoLCBidXQK KysJICAgIGNvbnRpbnVlICMgc28gdGhhdCB3ZSBjYW4gdHJ5IHRvIGZpbmQgb25lIHRoYXQgc3Vw cG9ydHMgQlNEIGZsYWdzCisrCSAgICA7OworKwkgIGVzYWMKKysJICA7OworKwllc2FjCisrICAg ICAgZmkKKysgICAgZG9uZQorKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgIGRvbmUKKysgIDog JHtsdF9jdl9wYXRoX05NPW5vfQorK2ZpXSkKKytpZiB0ZXN0ICIkbHRfY3ZfcGF0aF9OTSIgIT0g Im5vIjsgdGhlbgorKyAgTk09IiRsdF9jdl9wYXRoX05NIgorK2Vsc2UKKysgICMgRGlkbid0IGZp bmQgYW55IEJTRCBjb21wYXRpYmxlIG5hbWUgbGlzdGVyLCBsb29rIGZvciBkdW1wYmluLgorKyAg aWYgdGVzdCAtbiAiJERVTVBCSU4iOyB0aGVuIDoKKysgICAgIyBMZXQgdGhlIHVzZXIgb3ZlcnJp ZGUgdGhlIHRlc3QuCisrICBlbHNlCisrICAgIEFDX0NIRUNLX1RPT0xTKERVTVBCSU4sIFtkdW1w YmluICJsaW5rIC1kdW1wIl0sIDopCisrICAgIGNhc2UgYCREVU1QQklOIC1zeW1ib2xzIC9kZXYv bnVsbCAyPiYxIHwgc2VkICcxcSdgIGluCisrICAgICpDT0ZGKikKKysgICAgICBEVU1QQklOPSIk RFVNUEJJTiAtc3ltYm9scyIKKysgICAgICA7OworKyAgICAqKQorKyAgICAgIERVTVBCSU49Ogor KyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrICBBQ19TVUJTVChbRFVNUEJJTl0pCisrICBp ZiB0ZXN0ICIkRFVNUEJJTiIgIT0gIjoiOyB0aGVuCisrICAgIE5NPSIkRFVNUEJJTiIKKysgIGZp CisrZmkKKyt0ZXN0IC16ICIkTk0iICYmIE5NPW5tCisrQUNfU1VCU1QoW05NXSkKKytfTFRfREVD TChbXSwgW05NXSwgWzFdLCBbQSBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXJdKWRu bAorKworK0FDX0NBQ0hFX0NIRUNLKFt0aGUgbmFtZSBsaXN0ZXIgKCROTSkgaW50ZXJmYWNlXSwg W2x0X2N2X25tX2ludGVyZmFjZV0sCisrICBbbHRfY3Zfbm1faW50ZXJmYWNlPSJCU0Qgbm0iCisr ICBlY2hvICJpbnQgc29tZV92YXJpYWJsZSA9IDA7IiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgIChl dmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAkYWNfY29tcGlsZVwiIiA+JkFTX01FU1NBR0Vf TE9HX0ZEKQorKyAgKGV2YWwgIiRhY19jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKKysgIGNhdCBj b25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgKGV2YWwgZWNobyAiXCJcJGFzX21l OiRMSU5FTk86ICROTSBcXFwiY29uZnRlc3QuJGFjX29iamV4dFxcXCJcIiIgPiZBU19NRVNTQUdF X0xPR19GRCkKKysgIChldmFsICIkTk0gXCJjb25mdGVzdC4kYWNfb2JqZXh0XCIiIDI+Y29uZnRl c3QuZXJyID4gY29uZnRlc3Qub3V0KQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0Vf TE9HX0ZECisrICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogb3V0cHV0XCIiID4mQVNf TUVTU0FHRV9MT0dfRkQpCisrICBjYXQgY29uZnRlc3Qub3V0ID4mQVNfTUVTU0FHRV9MT0dfRkQK KysgIGlmICRHUkVQICdFeHRlcm5hbC4qc29tZV92YXJpYWJsZScgY29uZnRlc3Qub3V0ID4gL2Rl di9udWxsOyB0aGVuCisrICAgIGx0X2N2X25tX2ludGVyZmFjZT0iTVMgZHVtcGJpbiIKKysgIGZp CisrICBybSAtZiBjb25mdGVzdCpdKQorK10pIyBMVF9QQVRIX05NCisrCisrIyBPbGQgbmFtZXM6 CisrQVVfQUxJQVMoW0FNX1BST0dfTk1dLCBbTFRfUEFUSF9OTV0pCisrQVVfQUxJQVMoW0FDX1BS T0dfTk1dLCBbTFRfUEFUSF9OTV0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRp YmlsaXR5OgorK2RubCBBQ19ERUZVTihbQU1fUFJPR19OTV0sIFtdKQorK2RubCBBQ19ERUZVTihb QUNfUFJPR19OTV0sIFtdKQorKworKworKyMgTFRfTElCX00KKysjIC0tLS0tLS0tCisrIyBjaGVj ayBmb3IgbWF0aCBsaWJyYXJ5CisrQUNfREVGVU4oW0xUX0xJQl9NXSwKKytbQUNfUkVRVUlSRShb QUNfQ0FOT05JQ0FMX0hPU1RdKWRubAorK0xJQk09CisrY2FzZSAkaG9zdCBpbgorKyotKi1iZW9z KiB8ICotKi1jZWdjYyogfCAqLSotY3lnd2luKiB8ICotKi1oYWlrdSogfCAqLSotcHczMiogfCAq LSotZGFyd2luKikKKysgICMgVGhlc2Ugc3lzdGVtIGRvbid0IGhhdmUgbGlibSwgb3IgZG9uJ3Qg bmVlZCBpdAorKyAgOzsKKysqLW5jci1zeXN2NC4zKikKKysgIEFDX0NIRUNLX0xJQihtdywgX213 dmFsaWRjaGVja2wsIExJQk09Ii1sbXciKQorKyAgQUNfQ0hFQ0tfTElCKG0sIGNvcywgTElCTT0i JExJQk0gLWxtIikKKysgIDs7CisrKikKKysgIEFDX0NIRUNLX0xJQihtLCBjb3MsIExJQk09Ii1s bSIpCisrICA7OworK2VzYWMKKytBQ19TVUJTVChbTElCTV0pCisrXSkjIExUX0xJQl9NCisrCisr IyBPbGQgbmFtZToKKytBVV9BTElBUyhbQUNfQ0hFQ0tfTElCTV0sIFtMVF9MSUJfTV0pCisrZG5s IGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQUNf Q0hFQ0tfTElCTV0sIFtdKQorKworKworKyMgX0xUX0NPTVBJTEVSX05PX1JUVEkoW1RBR05BTUVd KQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfQ09N UElMRVJfTk9fUlRUSV0sCisrW200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAorKwor K19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0KKysKKytp ZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgIG52 Y2MqKQorKyAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAk MSk9JyAtWGNvbXBpbGVyIC1mbm8tYnVpbHRpbicgOzsKKysgICopCisrICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0nIC1mbm8tYnVpbHRpbicgOzsK KysgIGVzYWMKKysKKysgIF9MVF9DT01QSUxFUl9PUFRJT04oW2lmICRjb21waWxlciBzdXBwb3J0 cyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zXSwKKysgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9y dHRpX2V4Y2VwdGlvbnMsCisrICAgIFstZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zXSwgW10sCisr ICAgIFtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9IiRf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSkgLWZuby1ydHRp IC1mbm8tZXhjZXB0aW9ucyJdKQorK2ZpCisrX0xUX1RBR0RFQ0woW25vX2J1aWx0aW5fZmxhZ10s IFtsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ10sIFsxXSwKKysJW0NvbXBpbGVyIGZs YWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnNdKQorK10pIyBfTFRfQ09NUElMRVJfTk9f UlRUSQorKworKworKyMgX0xUX0NNRF9HTE9CQUxfU1lNQk9MUworKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorK200X2RlZnVuKFtfTFRfQ01EX0dMT0JBTF9TWU1CT0xTXSwKKytbQUNfUkVRVUlS RShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAorK0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAor K0FDX1JFUVVJUkUoW0FDX1BST0dfQVdLXSlkbmwKKytBQ19SRVFVSVJFKFtMVF9QQVRIX05NXSlk bmwKKytBQ19SRVFVSVJFKFtMVF9QQVRIX0xEXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9T RURdKWRubAorK200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKKyttNF9yZXF1aXJlKFtf TFRfVEFHX0NPTVBJTEVSXSlkbmwKKysKKysjIENoZWNrIGZvciBjb21tYW5kIHRvIGdyYWIgdGhl IHJhdyBzeW1ib2wgbmFtZSBmb2xsb3dlZCBieSBDIHN5bWJvbCBmcm9tIG5tLgorK0FDX01TR19D SEVDS0lORyhbY29tbWFuZCB0byBwYXJzZSAkTk0gb3V0cHV0IGZyb20gJGNvbXBpbGVyIG9iamVj dF0pCisrQUNfQ0FDSEVfVkFMKFtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlXSwKKytbCisr IyBUaGVzZSBhcmUgc2FuZSBkZWZhdWx0cyB0aGF0IHdvcmsgb24gYXQgbGVhc3QgYSBmZXcgb2xk IHN5c3RlbXMuCisrIyBbVGhleSBjb21lIGZyb20gVWx0cml4LiAgV2hhdCBjb3VsZCBiZSBvbGRl ciB0aGFuIFVsdHJpeD8hISA7KV0KKysKKysjIENoYXJhY3RlciBjbGFzcyBkZXNjcmliaW5nIE5N IGdsb2JhbCBzeW1ib2wgY29kZXMuCisrc3ltY29kZT0nW1tCQ0RFR1JTVF1dJworKworKyMgUmVn ZXhwIHRvIG1hdGNoIHN5bWJvbHMgdGhhdCBjYW4gYmUgYWNjZXNzZWQgZGlyZWN0bHkgZnJvbSBD LgorK3N5bXBhdD0nXChbW19BLVphLXpdXVtbX0EtWmEtejAtOV1dKlwpJworKworKyMgRGVmaW5l IHN5c3RlbS1zcGVjaWZpYyB2YXJpYWJsZXMuCisrY2FzZSAkaG9zdF9vcyBpbgorK2FpeCopCisr ICBzeW1jb2RlPSdbW0JDRFRdXScKKysgIDs7CisrY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwg Y2VnY2MqKQorKyAgc3ltY29kZT0nW1tBQkNER0lTVFddXScKKysgIDs7CisraHB1eCopCisrICBp ZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKyAgICBzeW1jb2RlPSdbW0FCQ0RFR1JT VF1dJworKyAgZmkKKysgIDs7CisraXJpeCogfCBub25zdG9wdXgqKQorKyAgc3ltY29kZT0nW1tC Q0RFR1JTVF1dJworKyAgOzsKKytvc2YqKQorKyAgc3ltY29kZT0nW1tCQ0RFR1FSU1RdXScKKysg IDs7Cisrc29sYXJpcyopCisrICBzeW1jb2RlPSdbW0JEUlRdXScKKysgIDs7Cisrc2NvMy4ydjUq KQorKyAgc3ltY29kZT0nW1tEVF1dJworKyAgOzsKKytzeXN2NC4ydXcyKikKKysgIHN5bWNvZGU9 J1tbRFRdXScKKysgIDs7Cisrc3lzdjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklY KikKKysgIHN5bWNvZGU9J1tbQUJEVF1dJworKyAgOzsKKytzeXN2NCkKKysgIHN5bWNvZGU9J1tb REZOU1RVXV0nCisrICA7OworK2VzYWMKKysKKysjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhl biB1c2UgaXRzIHN0YW5kYXJkIHN5bWJvbCBjb2Rlcy4KKytjYXNlIGAkTk0gLVYgMj4mMWAgaW4K KysqR05VKiB8ICond2l0aCBCRkQnKikKKysgIHN5bWNvZGU9J1tbQUJDREdJUlNUV11dJyA7Owor K2VzYWMKKysKKysjIFRyYW5zZm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50byBhIHBy b3BlciBDIGRlY2xhcmF0aW9uLgorKyMgU29tZSBzeXN0ZW1zIChlc3AuIG9uIGlhNjQpIGxpbmsg ZGF0YSBhbmQgY29kZSBzeW1ib2xzIGRpZmZlcmVudGx5LAorKyMgc28gdXNlIHRoaXMgZ2VuZXJh bCBhcHByb2FjaC4KKytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0ic2VkIC1uIC1l ICdzL15UIC4qIFwoLipcKSQvZXh0ZXJuIGludCBcMSgpOy9wJyAtZSAncy9eJHN5bWNvZGUqIC4q IFwoLipcKSQvZXh0ZXJuIGNoYXIgXDE7L3AnIgorKworKyMgVHJhbnNmb3JtIGFuIGV4dHJhY3Rl ZCBzeW1ib2wgbGluZSBpbnRvIHN5bWJvbCBuYW1lIGFuZCBzeW1ib2wgYWRkcmVzcworK2x0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChb W14gXV0qXCkgJC8gIHtcXFwiXDFcXFwiLCAodm9pZCAqKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2Rl KiBcKFtbXiBdXSpcKSBcKFtbXiBdXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCci CisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeD0i c2VkIC1uIC1lICdzL146IFwoW1teIF1dKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0s L3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChsaWJbW14gXV0qXCkkLyAge1wiXDJc IiwgKHZvaWQgKikgXCZcMn0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChbW14g XV0qXCkkLyAge1wibGliXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIgorKworKyMgSGFuZGxlIENS TEYgaW4gbWluZ3cgdG9vbCBjaGFpbgorK29wdF9jcj0KKytjYXNlICRidWlsZF9vcyBpbgorK21p bmd3KikKKysgIG9wdF9jcj1gJEVDSE8gJ3hcezAsMVx9JyB8IHRyIHggJ1wwMTUnYCAjIG9wdGlv biBjciBpbiByZWdleHAKKysgIDs7CisrZXNhYworKworKyMgVHJ5IHdpdGhvdXQgYSBwcmVmaXgg dW5kZXJzY29yZSwgdGhlbiB3aXRoIGl0LgorK2ZvciBhY19zeW1wcmZ4IGluICIiICJfIjsgZG8K KysKKysgICMgVHJhbnNmb3JtIHN5bWNvZGUsIHN5bXBhdCwgYW5kIHN5bXByZnggaW50byBhIHJh dyBzeW1ib2wgYW5kIGEgQyBzeW1ib2wuCisrICBzeW14ZnJtPSJcXDEgJGFjX3N5bXByZnhcXDIg XFwyIgorKworKyAgIyBXcml0ZSB0aGUgcmF3IGFuZCBDIGlkZW50aWZpZXJzLgorKyAgaWYgdGVz dCAiJGx0X2N2X25tX2ludGVyZmFjZSIgPSAiTVMgZHVtcGJpbiI7IHRoZW4KKysgICAgIyBGYWtl IGl0IGZvciBkdW1wYmluIGFuZCBzYXkgVCBmb3IgYW55IG5vbi1zdGF0aWMgZnVuY3Rpb24KKysg ICAgIyBhbmQgRCBmb3IgYW55IGdsb2JhbCB2YXJpYWJsZS4KKysgICAgIyBBbHNvIGZpbmQgQysr IGFuZCBfX2Zhc3RjYWxsIHN5bWJvbHMgZnJvbSBNU1ZDKyssCisrICAgICMgd2hpY2ggc3RhcnQg d2l0aCBAIG9yID8uCisrICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9IiRBV0sgWyci XAorKyIgICAgIHtsYXN0X3NlY3Rpb249c2VjdGlvbjsgc2VjdGlvbj1cJCAzfTsiXAorKyIgICAg IC9TZWN0aW9uIGxlbmd0aCAuKiNyZWxvY3MuKihwaWNrIGFueSkve2hpZGVbbGFzdF9zZWN0aW9u XT0xfTsiXAorKyIgICAgIFwkIDAhfi9FeHRlcm5hbCAqXHwve25leHR9OyJcCisrIiAgICAgLyAw KyBVTkRFRiAve25leHR9OyAvIFVOREVGIFwoW158XVwpKigpL3tuZXh0fTsiXAorKyIgICAgIHtp ZihoaWRlW3NlY3Rpb25dKSBuZXh0fTsiXAorKyIgICAgIHtmPTB9OyBcJCAwfi9cKFwpLipcfC97 Zj0xfTsge3ByaW50ZiBmID8gXCJUIFwiIDogXCJEIFwifTsiXAorKyIgICAgIHtzcGxpdChcJCAw LCBhLCAvXHx8XHIvKTsgc3BsaXQoYVsyXSwgcyl9OyJcCisrIiAgICAgc1sxXX4vXltAP10ve3By aW50IHNbMV0sIHNbMV07IG5leHR9OyJcCisrIiAgICAgc1sxXX5wcmZ4IHtzcGxpdChzWzFdLHQs XCJAXCIpOyBwcmludCB0WzFdLCBzdWJzdHIodFsxXSxsZW5ndGgocHJmeCkpfSJcCisrIiAgICAg JyBwcmZ4PV4kYWNfc3ltcHJmeF0iCisrICBlbHNlCisrICAgIGx0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3BpcGU9InNlZCAtbiAtZSAncy9eLipbWwkgXV1cKCRzeW1jb2RlJHN5bWNvZGUqXClbWwkg XV1bWwkgXV0qJGFjX3N5bXByZngkc3ltcGF0JG9wdF9jciQvJHN5bXhmcm0vcCciCisrICBmaQor KworKyAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGUgcGlwZSB3b3JrcyBjb3JyZWN0bHkuCisrICBw aXBlX3dvcmtzPW5vCisrCisrICBybSAtZiBjb25mdGVzdCoKKysgIGNhdCA+IGNvbmZ0ZXN0LiRh Y19leHQgPDxfTFRfRU9GCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIiB7CisrI2Vu ZGlmCisrY2hhciBubV90ZXN0X3ZhcjsKKyt2b2lkIG5tX3Rlc3RfZnVuYyh2b2lkKTsKKyt2b2lk IG5tX3Rlc3RfZnVuYyh2b2lkKXt9CisrI2lmZGVmIF9fY3BsdXNwbHVzCisrfQorKyNlbmRpZgor K2ludCBtYWluKCl7bm1fdGVzdF92YXI9J2EnO25tX3Rlc3RfZnVuYygpO3JldHVybigwKTt9Cisr X0xUX0VPRgorKworKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KKysgICAgIyBO b3cgdHJ5IHRvIGdyYWIgdGhlIHN5bWJvbHMuCisrICAgIG5saXN0PWNvbmZ0ZXN0Lm5tCisrICAg IGlmIEFDX1RSWV9FVkFMKE5NIGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwgIiRsdF9jdl9zeXNfZ2xv YmFsX3N5bWJvbF9waXBlIiBcPiAkbmxpc3QpICYmIHRlc3QgLXMgIiRubGlzdCI7IHRoZW4KKysg ICAgICAjIFRyeSBzb3J0aW5nIGFuZCB1bmlxdWlmeWluZyB0aGUgb3V0cHV0LgorKyAgICAgIGlm IHNvcnQgIiRubGlzdCIgfCB1bmlxID4gIiRubGlzdCJUOyB0aGVuCisrCW12IC1mICIkbmxpc3Qi VCAiJG5saXN0IgorKyAgICAgIGVsc2UKKysJcm0gLWYgIiRubGlzdCJUCisrICAgICAgZmkKKysK KysgICAgICAjIE1ha2Ugc3VyZSB0aGF0IHdlIHNuYWdnZWQgYWxsIHRoZSBzeW1ib2xzIHdlIG5l ZWQuCisrICAgICAgaWYgJEdSRVAgJyBubV90ZXN0X3ZhciQnICIkbmxpc3QiID4vZGV2L251bGw7 IHRoZW4KKysJaWYgJEdSRVAgJyBubV90ZXN0X2Z1bmMkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0 aGVuCisrCSAgY2F0IDw8X0xUX0VPRiA+IGNvbmZ0ZXN0LiRhY19leHQKKysjaWZkZWYgX19jcGx1 c3BsdXMKKytleHRlcm4gIkMiIHsKKysjZW5kaWYKKysKKytfTFRfRU9GCisrCSAgIyBOb3cgZ2Vu ZXJhdGUgdGhlIHN5bWJvbCBmaWxlLgorKwkgIGV2YWwgIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF90b19jZGVjbCInIDwgIiRubGlzdCIgfCAkR1JFUCAtdiBtYWluID4+IGNvbmZ0ZXN0LiRhY19l eHQnCisrCisrCSAgY2F0IDw8X0xUX0VPRiA+PiBjb25mdGVzdC4kYWNfZXh0CisrCisrLyogVGhl IG1hcHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICAqLworK2NvbnN0IHN0 cnVjdCB7CisrICBjb25zdCBjaGFyICpuYW1lOworKyAgdm9pZCAgICAgICAqYWRkcmVzczsKKyt9 CisrbHRfX1BST0dSQU1fX0xUWF9wcmVsb2FkZWRfc3ltYm9sc1tbXV0gPQorK3sKKysgIHsgIkBQ Uk9HUkFNQCIsICh2b2lkICopIDAgfSwKKytfTFRfRU9GCisrCSAgJFNFRCAicy9eJHN5bWNvZGUk c3ltY29kZSogXCguKlwpIFwoLipcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvIiA8ICIk bmxpc3QiIHwgJEdSRVAgLXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0CisrCSAgY2F0IDw8XF9M VF9FT0YgPj4gY29uZnRlc3QuJGFjX2V4dAorKyAgezAsICh2b2lkICopIDB9CisrfTsKKysKKysv KiBUaGlzIHdvcmtzIGFyb3VuZCBhIHByb2JsZW0gaW4gRnJlZUJTRCBsaW5rZXIgKi8KKysjaWZk ZWYgRlJFRUJTRF9XT1JLQVJPVU5ECisrc3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9z ZXR1cCgpIHsKKysgIHJldHVybiBsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9zeW1ib2xzOwor K30KKysjZW5kaWYKKysKKysjaWZkZWYgX19jcGx1c3BsdXMKKyt9CisrI2VuZGlmCisrX0xUX0VP RgorKwkgICMgTm93IHRyeSBsaW5raW5nIHRoZSB0d28gZmlsZXMuCisrCSAgbXYgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdHN0bS4kYWNfb2JqZXh0CisrCSAgbHRfc2F2ZV9MSUJTPSIkTElCUyIK KysJICBsdF9zYXZlX0NGTEFHUz0iJENGTEFHUyIKKysJICBMSUJTPSJjb25mdHN0bS4kYWNfb2Jq ZXh0IgorKwkgIENGTEFHUz0iJENGTEFHUyRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9f YnVpbHRpbl9mbGFnLCAkMSkiCisrCSAgaWYgQUNfVFJZX0VWQUwoYWNfbGluaykgJiYgdGVzdCAt cyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbgorKwkgICAgcGlwZV93b3Jrcz15ZXMKKysJICBm aQorKwkgIExJQlM9IiRsdF9zYXZlX0xJQlMiCisrCSAgQ0ZMQUdTPSIkbHRfc2F2ZV9DRkxBR1Mi CisrCWVsc2UKKysJICBlY2hvICJjYW5ub3QgZmluZCBubV90ZXN0X2Z1bmMgaW4gJG5saXN0IiA+ JkFTX01FU1NBR0VfTE9HX0ZECisrCWZpCisrICAgICAgZWxzZQorKwllY2hvICJjYW5ub3QgZmlu ZCBubV90ZXN0X3ZhciBpbiAkbmxpc3QiID4mQVNfTUVTU0FHRV9MT0dfRkQKKysgICAgICBmaQor KyAgICBlbHNlCisrICAgICAgZWNobyAiY2Fubm90IHJ1biAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfcGlwZSIgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgICBmaQorKyAgZWxzZQorKyAgICBlY2hv ICIkcHJvZ25hbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mQVNfTUVTU0FHRV9MT0dfRkQKKysg ICAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrICBmaQorKyAgcm0gLXJmIGNvbmZ0ZXN0KiBj b25mdHN0KgorKworKyAgIyBEbyBub3QgdXNlIHRoZSBnbG9iYWxfc3ltYm9sX3BpcGUgdW5sZXNz IGl0IHdvcmtzLgorKyAgaWYgdGVzdCAiJHBpcGVfd29ya3MiID0geWVzOyB0aGVuCisrICAgIGJy ZWFrCisrICBlbHNlCisrICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9CisrICBmaQor K2RvbmUKKytdKQorK2lmIHRlc3QgLXogIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIjsg dGhlbgorKyAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9CisrZmkKKytpZiB0ZXN0 IC16ICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF90b19jZGVjbCI7IHRoZW4KKysgIEFDX01TR19SRVNVTFQoZmFpbGVkKQorK2Vsc2UKKysgIEFD X01TR19SRVNVTFQob2spCisrZmkKKysKKytfTFRfREVDTChbZ2xvYmFsX3N5bWJvbF9waXBlXSwg W2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGVdLCBbMV0sCisrICAgIFtUYWtlIHRoZSBvdXRw dXQgb2Ygbm0gYW5kIHByb2R1Y2UgYSBsaXN0aW5nIG9mIHJhdyBzeW1ib2xzIGFuZCBDIG5hbWVz XSkKKytfTFRfREVDTChbZ2xvYmFsX3N5bWJvbF90b19jZGVjbF0sIFtsdF9jdl9zeXNfZ2xvYmFs X3N5bWJvbF90b19jZGVjbF0sIFsxXSwKKysgICAgW1RyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5t IGluIGEgcHJvcGVyIEMgZGVjbGFyYXRpb25dKQorK19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3Rv X2NfbmFtZV9hZGRyZXNzXSwKKysgICAgW2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFt ZV9hZGRyZXNzXSwgWzFdLAorKyAgICBbVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBD IG5hbWUgYWRkcmVzcyBwYWlyXSkKKytfTFRfREVDTChbZ2xvYmFsX3N5bWJvbF90b19jX25hbWVf YWRkcmVzc19saWJfcHJlZml4XSwKKysgICAgW2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2Nf bmFtZV9hZGRyZXNzX2xpYl9wcmVmaXhdLCBbMV0sCisrICAgIFtUcmFuc2Zvcm0gdGhlIG91dHB1 dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXIgd2hlbiBsaWIgcHJlZml4IGlzIG5lZWRl ZF0pCisrXSkgIyBfTFRfQ01EX0dMT0JBTF9TWU1CT0xTCisrCisrCisrIyBfTFRfQ09NUElMRVJf UElDKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVu KFtfTFRfQ09NUElMRVJfUElDXSwKKytbbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5s CisrX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9CisrX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPQorK19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0 aWMsICQxKT0KKysKKytBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHBy b2R1Y2UgUElDXSkKKyttNF9pZihbJDFdLCBbQ1hYXSwgWworKyAgIyBDKysgc3BlY2lmaWMgY2Fz ZXMgZm9yIHBpYywgc3RhdGljLCB3bCwgZXRjLgorKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRo ZW4KKysgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKysKKysg ICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXgqKQorKyAgICAgICMgQWxsIEFJWCBjb2RlIGlz IFBJQy4KKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIEFJWCA1 IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAg YW1pZ2FvcyopCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBwb3dlcnBjKQorKyAg ICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKKysgICAg ICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworKyAg ICAgICAgOzsKKysgICAgICBtNjhrKQorKyAgICAgICAgICAgICMgRklYTUU6IHdlIG5lZWQgYXQg bGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKKysgICAgICAg ICAgICAjIGFkZGluZyB0aGUgYC1tNjgwMjAnIGZsYWcgdG8gR0NDIHByZXZlbnRzIGJ1aWxkaW5n IGFueXRoaW5nIGJldHRlciwKKysgICAgICAgICAgICAjIGxpa2UgYC1tNjgwNDAnLgorKyAgICAg ICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLW02ODAyMCAtcmVz aWRlbnQzMiAtbWFsd2F5cy1yZXN0b3JlLWE0JworKyAgICAgICAgOzsKKysgICAgICBlc2FjCisr ICAgICAgOzsKKysKKysgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwg b3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0 aGVzZSBPU2VzLgorKyAgICAgIDs7CisrICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBvczIqIHwgcHcz MiogfCBjZWdjYyopCisrICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZp bGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZworKyAgICAgICMgYnVpbHQgZm9yIGluY2x1 c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisr ICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVk IHRoaXMgZm9yIG9sZC1zdHlsZQorKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGli cmFyaWVzCisrICAgICAgbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAorKwlbX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkKKysgICAgICA7OworKyAgICBk YXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMg cGxhdGZvcm0KKysgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElC IGZpbGVzCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZm5v LWNvbW1vbicKKysgICAgICA7OworKyAgICAqZGpncHAqKQorKyAgICAgICMgREpHUFAgZG9lcyBu b3Qgc3VwcG9ydCBzaGFyZWQgbGlicmFyaWVzIGF0IGFsbAorKyAgICAgIF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9waWMsICQxKT0KKysgICAgICA7OworKyAgICBoYWlrdSopCisrICAgICAg IyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIEhhaWt1LgorKyAgICAgICMgVGhlICItc3RhdGljIiBm bGFnIGV4aXN0cywgYnV0IGlzIGJyb2tlbi4KKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfc3RhdGljLCAkMSk9CisrICAgICAgOzsKKysgICAgaW50ZXJpeFtbMy05XV0qKQorKyAg ICAgICMgSW50ZXJpeCAzLnggZ2NjIC1mcGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUgYnJva2Vu IGNvZGUuCisrICAgICAgIyBJbnN0ZWFkLCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFyaWVzIGF0 IHJ1bnRpbWUuCisrICAgICAgOzsKKysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQg L3Vzci9uZWM7IHRoZW4KKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPS1L Y29uZm9ybV9waWMKKysgICAgICBmaQorKyAgICAgIDs7CisrICAgIGhwdXgqKQorKyAgICAgICMg UElDIGlzIHRoZSBkZWZhdWx0IGZvciA2NC1iaXQgUEEgSFAtVVgsIGJ1dCBub3QgZm9yIDMyLWJp dAorKyAgICAgICMgUEEgSFAtVVguICBPbiBJQTY0IEhQLVVYLCBQSUMgaXMgdGhlIGRlZmF1bHQg YnV0IHRoZSBwaWMgZmxhZworKyAgICAgICMgc2V0cyB0aGUgZGVmYXVsdCBUTFMgbW9kZWwgYW5k IGFmZmVjdHMgaW5saW5pbmcuCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBh KjY0KikKKysJOzsKKysgICAgICAqKQorKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGlj LCAkMSk9Jy1mUElDJworKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKyAgICAqcW54KiB8 ICpudG8qKQorKyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1z aGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCisrICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgor KyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMgLXNoYXJl ZCcKKysgICAgICA7OworKyAgICAqKQorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKT0nLWZQSUMnCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZWxzZQorKyAgICBj YXNlICRob3N0X29zIGluCisrICAgICAgYWl4W1s0LTldXSopCisrCSMgQWxsIEFJWCBjb2RlIGlz IFBJQy4KKysJaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysJICAjIEFJWCA1IG5v dyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrCWVsc2UKKysJICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4cCcKKysJZmkK KysJOzsKKysgICAgICBjaG9ydXMqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwljeGNoNjgq KQorKwkgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCSAgIyBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Ii0tbm9fYXV0b19pbnN0YW50aWF0aW9uIC11IF9fbWFp biAtdSBfX3ByZW1haW4gLXUgX2Fib3J0IC1yICRDT09MX0RJUi9saWIvbGliT3JiLmEgJE1WTUVf RElSL2xpYi9DQy9saWJDLmEgJE1WTUVfRElSL2xpYi9jbGFzc2l4L2xpYmN4LnMuYSIKKysJICA7 OworKwllc2FjCisrCTs7CisrICAgICAgZGd1eCopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisr CSAgZWMrKyopCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1L UElDJworKwkgICAgOzsKKysJICBnaGN4KikKKysJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBp bGVyCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMnCisr CSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgZnJlZWJzZCog fCBkcmFnb25mbHkqKQorKwkjIEZyZWVCU0QgdXNlcyBHTlUgQysrCisrCTs7CisrICAgICAgaHB1 eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgQ0Mq KQorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCSAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9JyR7d2x9LWEgJHt3bH1h cmNoaXZlJworKwkgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0aGVuCisrCSAgICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nK1onCisrCSAgICBmaQorKwkg ICAgOzsKKysJICBhQ0MqKQorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1XbCwnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9 JyR7d2x9LWEgJHt3bH1hcmNoaXZlJworKwkgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysJICAgIGhw cGEqNjQqfGlhNjQqKQorKwkgICAgICAjICtaIHRoZSBkZWZhdWx0CisrCSAgICAgIDs7CisrCSAg ICAqKQorKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9JytaJwor KwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNh YworKwk7OworKyAgICAgIGludGVyaXgqKQorKwkjIFRoaXMgaXMgYzg5LCB3aGljaCBpcyBNUyBW aXN1YWwgQysrIChubyBzaGFyZWQgbGlicykKKysJIyBBbnlvbmUgd2FudHMgdG8gZG8gYSBwb3J0 PworKwk7OworKyAgICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrCWNhc2UgJGNj X2Jhc2VuYW1lIGluCisrCSAgQ0MqKQorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3dsLCAkMSk9Jy1XbCwnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj LCAkMSk9Jy1ub25fc2hhcmVkJworKwkgICAgIyBDQyBwaWMgZmxhZyAtS1BJQyBpcyB0aGUgZGVm YXVsdC4KKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBs aW51eCogfCBrKmJzZCotZ251IHwga29wZW5zb2xhcmlzKi1nbnUpCisrCWNhc2UgJGNjX2Jhc2Vu YW1lIGluCisrCSAgS0NDKikKKysJICAgICMgS0FJIEMrKyBDb21waWxlcgorKwkgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy0tYmFja2VuZCAtV2wsJworKwkgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKKysJICAgIDs7CisrCSAg ZWNwYyogKQorKwkgICAgIyBvbGQgSW50ZWwgQysrIGZvciB4ODZfNjQgd2hpY2ggc3RpbGwgc3Vw cG9ydGVkIC1LUElDLgorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9 Jy1XbCwnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElD JworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3RhdGlj JworKwkgICAgOzsKKysJICBpY3BjKiApCisrCSAgICAjIEludGVsIEMrKywgdXNlZCB0byBiZSBp bmNvbXBhdGlibGUgd2l0aCBHQ0MuCisrCSAgICAjIElDQyAxMCBkb2Vzbid0IGFjY2VwdCAtS1BJ QyBhbnkgbW9yZS4KKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSct V2wsJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycK KysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycK KysJICAgIDs7CisrCSAgcGdDQyogfCBwZ2NwcCopCisrCSAgICAjIFBvcnRsYW5kIEdyb3VwIEMr KyBjb21waWxlcgorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1X bCwnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mcGljJwor KwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycK KysJICAgIDs7CisrCSAgY3h4KikKKysJICAgICMgQ29tcGFxIEMrKworKwkgICAgIyBNYWtlIHN1 cmUgdGhlIFBJQyBmbGFnIGlzIGVtcHR5LiAgSXQgYXBwZWFycyB0aGF0IGFsbCBBbHBoYQorKwkg ICAgIyBMaW51eCBhbmQgQ29tcGFxIFRydTY0IFVuaXggb2JqZWN0cyBhcmUgUElDLgorKwkgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQorKwkgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKysJICAgIDs7CisrCSAg eGxjKiB8IHhsQyogfCBiZ3hsW1tjQ11dKiB8IG1waXhsW1tjQ11dKikKKysJICAgICMgSUJNIFhM IDguMCwgOS4wIG9uIFBQQyBhbmQgQmx1ZUdlbmUKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPSctcXBpYycKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0 aWMsICQxKT0nLXFzdGF0aWNsaW5rJworKwkgICAgOzsKKysJICAqKQorKwkgICAgY2FzZSBgJEND IC1WIDI+JjEgfCBzZWQgNXFgIGluCisrCSAgICAqU3VuXCBDKikKKysJICAgICAgIyBTdW4gQysr IDUuOQorKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElD JworKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3Rh dGljJworKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVFvcHRp b24gbGQgJworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgOzsKKysJZXNhYworKwk7Owor KyAgICAgIGx5bnhvcyopCisrCTs7CisrICAgICAgbTg4ayopCisrCTs7CisrICAgICAgbXZzKikK KysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBjeHgqKQorKwkgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPSctVyBjLGV4cG9ydGFsbCcKKysJICAgIDs7CisrCSAgKikK KysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBuZXRic2QqKQorKwk7OworKyAgICAgICpx bngqIHwgKm50byopCisrICAgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRl ZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQorKyAgICAgICAgIyBpdCB3aWxsIGNv cmVkdW1wLgorKyAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSct ZlBJQyAtc2hhcmVkJworKyAgICAgICAgOzsKKysgICAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSop CisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgS0NDKikKKysJICAgIF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl93bCwgJDEpPSctLWJhY2tlbmQgLVdsLCcKKysJICAgIDs7CisrCSAgUkND KikKKysJICAgICMgUmF0aW9uYWwgQysrIDIuNC4xCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfcGljLCAkMSk9Jy1waWMnCisrCSAgICA7OworKwkgIGN4eCopCisrCSAgICAjIERp Z2l0YWwvQ29tcGFxIEMrKworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1XbCwnCisrCSAgICAjIE1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJdCBh cHBlYXJzIHRoYXQgYWxsIEFscGhhCisrCSAgICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQgVW5p eCBvYmplY3RzIGFyZSBQSUMuCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGlj LCAkMSk9CisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1u b25fc2hhcmVkJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAg ICAgIHBzb3MqKQorKwk7OworKyAgICAgIHNvbGFyaXMqKQorKwljYXNlICRjY19iYXNlbmFtZSBp bgorKwkgIENDKiB8IHN1bkNDKikKKysJICAgICMgU3VuIEMrKyA0LjIsIDUueCBhbmQgQ2VudGVy bGluZSBDKysKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQ SUMnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3Rh dGljJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9u IGxkICcKKysJICAgIDs7CisrCSAgZ2N4KikKKysJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBp bGVyCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1QSUMnCisr CSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgc3Vub3M0KikK KysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBDQyopCisrCSAgICAjIFN1biBDKysgNC54Cisr CSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMnCisrCSAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwkgICAg OzsKKysJICBsY2MqKQorKwkgICAgIyBMdWNpZAorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctcGljJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNh YworKwk7OworKyAgICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNjbzV2Niog fCBPcGVuVU5JWCopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgQ0MqKQorKwkgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCSAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworKwkgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysJICAgIDs7CisrCWVzYWMKKysJ OzsKKysgICAgICB0YW5kZW0qKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIE5DQyopCisr CSAgICAjIE5vblN0b3AtVVggTkNDIDMuMjAKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2Fj CisrCTs7CisrICAgICAgdnh3b3JrcyopCisrCTs7CisrICAgICAgKikKKysJX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubworKwk7OworKyAgICBlc2Fj CisrICBmaQorK10sCisrWworKyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKysKKysgICAgY2FzZSAkaG9z dF9vcyBpbgorKyAgICAgIGFpeCopCisrICAgICAgIyBBbGwgQUlYIGNvZGUgaXMgUElDLgorKyAg ICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBv cnRzIElBNjQgcHJvY2Vzc29yCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMs ICQxKT0nLUJzdGF0aWMnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikK KysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgIHBvd2VycGMpCisrICAgICAgICAgICAg IyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAorKyAgICAgICAgICAgIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisrICAgICAgICA7Owor KyAgICAgIG02OGspCisrICAgICAgICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAy MCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAorKyAgICAgICAgICAgICMgYWRk aW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcg YmV0dGVyLAorKyAgICAgICAgICAgICMgbGlrZSBgLW02ODA0MCcuCisrICAgICAgICAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctbTY4MDIwIC1yZXNpZGVudDMyIC1t YWx3YXlzLXJlc3RvcmUtYTQnCisrICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICA7Owor KworKyAgICBiZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9z ZjQqIHwgb3NmNSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMu CisrICAgICAgOzsKKysKKysgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKiB8IGNl Z2NjKikKKysgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4g dGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCisrICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGlu IGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKysgICAgICAj IEFsdGhvdWdoIHRoZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBm b3Igb2xkLXN0eWxlCisrICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMK KysgICAgICBtNF9pZihbJDFdLCBbR0NKXSwgW10sCisrCVtfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfcGljLCAkMSk9Jy1ERExMX0VYUE9SVCddKQorKyAgICAgIDs7CisrCisrICAgIGRhcndp biogfCByaGFwc29keSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0 Zm9ybQorKyAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmls ZXMKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mbm8tY29t bW9uJworKyAgICAgIDs7CisrCisrICAgIGhhaWt1KikKKysgICAgICAjIFBJQyBpcyB0aGUgZGVm YXVsdCBmb3IgSGFpa3UuCisrICAgICAgIyBUaGUgIi1zdGF0aWMiIGZsYWcgZXhpc3RzLCBidXQg aXMgYnJva2VuLgorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQx KT0KKysgICAgICA7OworKworKyAgICBocHV4KikKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVs dCBmb3IgNjQtYml0IFBBIEhQLVVYLCBidXQgbm90IGZvciAzMi1iaXQKKysgICAgICAjIFBBIEhQ LVVYLiAgT24gSUE2NCBIUC1VWCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1dCB0aGUgcGljIGZsYWcK KysgICAgICAjIHNldHMgdGhlIGRlZmF1bHQgVExTIG1vZGVsIGFuZCBhZmZlY3RzIGlubGluaW5n LgorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgaHBwYSo2NCopCisrCSMgK1ogdGhl IGRlZmF1bHQKKysJOzsKKysgICAgICAqKQorKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSk9Jy1mUElDJworKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBp bnRlcml4W1szLTldXSopCisrICAgICAgIyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0 aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KKysgICAgICAjIEluc3RlYWQsIHdlIHJlbG9jYXRl IHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KKysgICAgICA7OworKworKyAgICBtc2Rvc2Rq Z3BwKikKKysgICAgICAjIEp1c3QgYmVjYXVzZSB3ZSB1c2UgR0NDIGRvZXNuJ3QgbWVhbiB3ZSBz dWRkZW5seSBnZXQgc2hhcmVkIGxpYnJhcmllcworKyAgICAgICMgb24gc3lzdGVtcyB0aGF0IGRv bid0IHN1cHBvcnQgdGhlbS4KKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfY2Fu X2J1aWxkX3NoYXJlZCwgJDEpPW5vCisrICAgICAgZW5hYmxlX3NoYXJlZD1ubworKyAgICAgIDs7 CisrCisrICAgICpudG8qIHwgKnFueCopCisrICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQg bmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKysgICAgICAjIGl0 IHdpbGwgY29yZWR1bXAuCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctZlBJQyAtc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0Kk1QKikKKysgICAg ICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKT0tS2NvbmZvcm1fcGljCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICAq KQorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisr ICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICBu dmNjKikgIyBDdWRhIENvbXBpbGVyIERyaXZlciAyLjIKKysgICAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfd2wsICQxKT0nLVhsaW5rZXIgJworKyAgICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0nLVhjb21waWxlciAtZlBJQycKKysgICAgICA7OworKyAgICBl c2FjCisrICBlbHNlCisrICAgICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRvIHBhc3MgbGlua2Vy IGZsYWdzIHRocm91Z2ggdGhlIHN5c3RlbSBjb21waWxlci4KKysgICAgY2FzZSAkaG9zdF9vcyBp bgorKyAgICBhaXgqKQorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEp PSctV2wsJworKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlY IDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4cCcK KysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8 IG9zMiogfCBjZWdjYyopCisrICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNl IGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZworKyAgICAgICMgYnVpbHQgZm9yIGlu Y2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSku CisrICAgICAgbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAorKwlbX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkKKysgICAgICA7OworKworKyAgICBocHV4 OSogfCBocHV4MTAqIHwgaHB1eDExKikKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBI UC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKKysgICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCisr ICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0KnxpYTY0KikKKysJIyArWiB0 aGUgZGVmYXVsdAorKwk7OworKyAgICAgICopCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKT0nK1onCisrCTs7CisrICAgICAgZXNhYworKyAgICAgICMgSXMgdGhlcmUgYSBi ZXR0ZXIgbHRfcHJvZ19jb21waWxlcl9zdGF0aWMgdGhhdCB3b3JrcyB3aXRoIHRoZSBidW5kbGVk IENDPworKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nJHt3 bH0tYSAke3dsfWFyY2hpdmUnCisrICAgICAgOzsKKysKKysgICAgaXJpeDUqIHwgaXJpeDYqIHwg bm9uc3RvcHV4KikKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0n LVdsLCcKKysgICAgICAjIFBJQyAod2l0aCAtS1BJQykgaXMgdGhlIGRlZmF1bHQuCisrICAgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKysg ICAgICA7OworKworKyAgICBsaW51eCogfCBrKmJzZCotZ251IHwga29wZW5zb2xhcmlzKi1nbnUp CisrICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAjIG9sZCBJbnRlbCBmb3IgeDg2 XzY0IHdoaWNoIHN0aWxsIHN1cHBvcnRlZCAtS1BJQy4KKysgICAgICBlY2MqKQorKwlfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpPSctc3RhdGljJworKyAgICAgICAgOzsKKysgICAgICAjIGljYyB1c2VkIHRv IGJlIGluY29tcGF0aWJsZSB3aXRoIEdDQy4KKysgICAgICAjIElDQyAxMCBkb2Vzbid0IGFjY2Vw dCAtS1BJQyBhbnkgbW9yZS4KKysgICAgICBpY2MqIHwgaWZvcnQqKQorKwlfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPSctZlBJQycKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YywgJDEpPSctc3RhdGljJworKyAgICAgICAgOzsKKysgICAgICAjIExhaGV5IEZvcnRyYW4gOC4x LgorKyAgICAgIGxmOTUqKQorKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0n LVdsLCcKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctLXNoYXJlZCcK KysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctLXN0YXRpYycKKysJ OzsKKysgICAgICBwZ2NjKiB8IHBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KiB8IHBnZm9ydHJhbiop CisrICAgICAgICAjIFBvcnRsYW5kIEdyb3VwIGNvbXBpbGVycyAoKm5vdCogdGhlIFBlbnRpdW0g Z2NjIGNvbXBpbGVyLAorKwkjIHdoaWNoIGxvb2tzIHRvIGJlIGEgZGVhZCBwcm9qZWN0KQorKwlf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZnBpYycKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAgICAgIDs7CisrICAgICAgY2NjKikK KysgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKyAg ICAgICAgIyBBbGwgQWxwaGEgY29kZSBpcyBQSUMuCisrICAgICAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworKyAgICAgICAgOzsKKysgICAg ICB4bCogfCBiZ3hsKiB8IGJnZiogfCBtcGl4bCopCisrCSMgSUJNIFhMIEMgOC4wL0ZvcnRyYW4g MTAuMSwgMTEuMSBvbiBQUEMgYW5kIEJsdWVHZW5lCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl93bCwgJDEpPSctV2wsJworKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9Jy1xcGljJworKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1x c3RhdGljbGluaycKKysJOzsKKysgICAgICAqKQorKwljYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1 cWAgaW4KKysJKlN1blwgRiogfCAqU3VuKkZvcnRyYW4qKQorKwkgICMgU3VuIEZvcnRyYW4gOC4z IHBhc3NlcyBhbGwgdW5yZWNvZ25pemVkIGZsYWdzIHRvIHRoZSBsaW5rZXIKKysJICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworKwkgIF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrCSAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3dsLCAkMSk9JycKKysJICA7OworKwkqU3VuXCBDKikKKysJICAjIFN1biBD IDUuOQorKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisr CSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysJ ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJICA7OworKwll c2FjCisrCTs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIG5ld3NvczYpCisrICAg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysgICAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAg IDs7CisrCisrICAgICpudG8qIHwgKnFueCopCisrICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBi dXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKysgICAgICAj IGl0IHdpbGwgY29yZWR1bXAuCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3Bp YywgJDEpPSctZlBJQyAtc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIG9zZjMqIHwgb3NmNCog fCBvc2Y1KikKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVds LCcKKysgICAgICAjIEFsbCBPU0YvMSBjb2RlIGlzIFBJQy4KKysgICAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisr ICAgIHJkb3MqKQorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQx KT0nLW5vbl9zaGFyZWQnCisrICAgICAgOzsKKysKKysgICAgc29sYXJpcyopCisrICAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysgICAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIGNhc2Ug JGNjX2Jhc2VuYW1lIGluCisrICAgICAgZjc3KiB8IGY5MCogfCBmOTUqIHwgc3VuZjc3KiB8IHN1 bmY5MCogfCBzdW5mOTUqKQorKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0n LVFvcHRpb24gbGQgJzs7CisrICAgICAgKikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3dsLCAkMSk9Jy1XbCwnOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAgc3Vub3M0 KikKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVFvcHRpb24g bGQgJworKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLVBJQycK KysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGlj JworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKikKKysg ICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworKyAgICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrICAgICAgOzsK KysKKysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KKysJ X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS2NvbmZvcm1fcGljJworKwlf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAg IGZpCisrICAgICAgOzsKKysKKysgICAgc3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwg c2NvNXY2KiB8IE9wZW5VTklYKikKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf d2wsICQxKT0nLVdsLCcKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9Jy1LUElDJworKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQx KT0nLUJzdGF0aWMnCisrICAgICAgOzsKKysKKysgICAgdW5pY29zKikKKysgICAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZCwgJDEpPW5vCisrICAgICAgOzsKKysKKysg ICAgdXRzNCopCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSct cGljJworKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJz dGF0aWMnCisrICAgICAgOzsKKysKKysgICAgKikKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZCwgJDEpPW5vCisrICAgICAgOzsKKysgICAgZXNhYwor KyAgZmkKKytdKQorK2Nhc2UgJGhvc3Rfb3MgaW4KKysgICMgRm9yIHBsYXRmb3JtcyB3aGljaCBk byBub3Qgc3VwcG9ydCBQSUMsIC1EUElDIGlzIG1lYW5pbmdsZXNzOgorKyAgKmRqZ3BwKikKKysg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQorKyAgICA7OworKyAgKikK KysgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSIkX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpQCZ0QG00X2lmKFskMV0sW10sWyAtRFBJQ10sW200X2lm KFskMV0sW0NYWF0sWyAtRFBJQ10sW10pXSkiCisrICAgIDs7CisrZXNhYworK0FDX01TR19SRVNV TFQoWyRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSldKQorK19MVF9UQUdERUNM KFt3bF0sIFtsdF9wcm9nX2NvbXBpbGVyX3dsXSwgWzFdLAorKwlbSG93IHRvIHBhc3MgYSBsaW5r ZXIgZmxhZyB0aHJvdWdoIHRoZSBjb21waWxlcl0pCisrCisrIworKyMgQ2hlY2sgdG8gbWFrZSBz dXJlIHRoZSBQSUMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KKysjCisraWYgdGVzdCAtbiAiJF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKSI7IHRoZW4KKysgIF9MVF9DT01QSUxFUl9P UFRJT04oW2lmICRjb21waWxlciBQSUMgZmxhZyAkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpIHdvcmtzXSwKKysgICAgW19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9w aWNfd29ya3MsICQxKV0sCisrICAgIFskX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpQCZ0QG00X2lmKFskMV0sW10sWyAtRFBJQ10sW200X2lmKFskMV0sW0NYWF0sWyAtRFBJQ10s W10pXSldLCBbXSwKKysgICAgW2Nhc2UgJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMs ICQxKSBpbgorKyAgICAgIiIgfCAiICIqKSA7OworKyAgICAgKikgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPSIgJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KSIgOzsKKysgICAgIGVzYWNdLAorKyAgICBbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3Bp YywgJDEpPQorKyAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFy ZWQsICQxKT1ub10pCisrZmkKKytfTFRfVEFHREVDTChbcGljX2ZsYWddLCBbbHRfcHJvZ19jb21w aWxlcl9waWNdLCBbMV0sCisrCVtBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGlu ZyBsaWJyYXJ5IG9iamVjdHNdKQorKworKyMKKysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3Rh dGljIGZsYWcgYWN0dWFsbHkgd29ya3MuCisrIworK3dsPSRfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfd2wsICQxKSBldmFsIGx0X3RtcF9zdGF0aWNfZmxhZz1cIiRfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfc3RhdGljLCAkMSlcIgorK19MVF9MSU5LRVJfT1BUSU9OKFtpZiAkY29tcGls ZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3b3Jrc10sCisrICBfTFRfVEFHVkFS KGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzLCAkMSksCisrICAkbHRfdG1wX3N0YXRp Y19mbGFnLAorKyAgW10sCisrICBbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywg JDEpPV0pCisrX0xUX1RBR0RFQ0woW2xpbmtfc3RhdGljX2ZsYWddLCBbbHRfcHJvZ19jb21waWxl cl9zdGF0aWNdLCBbMV0sCisrCVtDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5r aW5nXSkKKytdKSMgX0xUX0NPTVBJTEVSX1BJQworKworKworKyMgX0xUX0xJTktFUl9TSExJQlMo W1RBR05BTUVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU2VlIGlmIHRo ZSBsaW5rZXIgc3VwcG9ydHMgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KKyttNF9kZWZ1bihb X0xUX0xJTktFUl9TSExJQlNdLAorK1tBQ19SRVFVSVJFKFtMVF9QQVRIX0xEXSlkbmwKKytBQ19S RVFVSVJFKFtMVF9QQVRIX05NXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFV TFRTXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCisrbTRfcmVxdWlyZShb X0xUX0RFQ0xfU0VEXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ01EX0dMT0JBTF9TWU1CT0xTXSlk bmwKKyttNF9yZXF1aXJlKFtfTFRfVEFHX0NPTVBJTEVSXSlkbmwKKytBQ19NU0dfQ0hFQ0tJTkco W3doZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJh cmllc10pCisrbTRfaWYoWyQxXSwgW0NYWF0sIFsKKysgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJv bHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xf cGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJv bHMnCisrICBjYXNlICRob3N0X29zIGluCisrICBhaXhbWzQtOV1dKikKKysgICAgIyBJZiB3ZSdy ZSB1c2luZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCisrICAg ICMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUg d2l0aCBHTlUgbm0KKysgICAgIyBBbHNvLCBBSVggbm0gdHJlYXRzIHdlYWsgZGVmaW5lZCBzeW1i b2xzIGxpa2Ugb3RoZXIgZ2xvYmFsIGRlZmluZWQKKysgICAgIyBzeW1ib2xzLCB3aGVyZWFzIEdO VSBubSBtYXJrcyB0aGVtIGFzICJXIi4KKysgICAgaWYgJE5NIC1WIDI+JjEgfCAkR1JFUCAnR05V JyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21k cywgJDEpPSckTk0gLUJwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgo XCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSB8fCAoXCQgMiA9 PSAiVyIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0n XCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKysgICAgZWxzZQorKyAgICAgIF9MVF9U QUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gLUJDcGcgJGxpYm9ianMgJGNvbnZl bmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8 IChcJCAyID09ICJCIikpICYmIChbc3Vic3RyXShcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBc JCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJworKyAgICBmaQorKyAgICA7 OworKyAgcHczMiopCisrICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSIk bHRkbGxfY21kcyIKKysgIDs7CisrICBjeWd3aW4qIHwgbWluZ3cqIHwgY2VnY2MqKQorKyAgICBf TFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5p ZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltbQkNER1JTXV1bWyBd XS9zLy4qW1sgXV1cKFtbXiBdXSpcKS9cMSBEQVRBLzsvXi4qW1sgXV1fX25tX18vcy9eLipbWyBd XV9fbm1fX1woW1teIF1dKlwpW1sgXV1bW14gXV0qL1wxIERBVEEvOy9eSVtbIF1dL2Q7L15bW0FJ VFddXVtbIF1dL3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisr ICA7OworKyAgKikKKysgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyRO TSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcn cy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKysgIDs7CisrICBl c2FjCisrICBfTFRfVEFHVkFSKGV4Y2x1ZGVfZXhwc3ltcywgJDEpPVsnX0dMT0JBTF9PRkZTRVRf VEFCTEVffF9HTE9CQUxfX0ZbSURdXy4qJ10KKytdLCBbCisrICBydW5wYXRoX3Zhcj0KKysgIF9M VF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KKysgIF9MVF9UQUdWQVIoYWx3YXlz X2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KKysgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 CisrICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0KKysgIF9MVF9UQUdWQVIo Y29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9bm8KKysgIF9MVF9UQUdWQVIoZW5hYmxlX3NoYXJl ZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5vCisrICBfTFRfVEFHVkFSKGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlYywgJDEpPQorKyAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAk MSk9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNF RCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKysgIF9M VF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSk9bm8KKysgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfZGlyZWN0LCAkMSk9bm8KKysgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRl LCAkMSk9bm8KKysgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQor KyAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9CisrICBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KKysgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbWludXNfTCwgJDEpPW5vCisrICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92 YXIsICQxKT11bnN1cHBvcnRlZAorKyAgX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9bm8K KysgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXVua25vd24KKysgIF9MVF9UQUdW QVIobW9kdWxlX2NtZHMsICQxKT0KKysgIF9MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAk MSk9CisrICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0KKysgIF9M VF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMsICQxKT0KKysgIF9MVF9UQUdW QVIodGhyZWFkX3NhZmVfZmxhZ19zcGVjLCAkMSk9CisrICBfTFRfVEFHVkFSKHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjLCAkMSk9CisrICAjIGluY2x1ZGVfZXhwc3ltcyBzaG91bGQgYmUgYSBsaXN0 IG9mIHNwYWNlLXNlcGFyYXRlZCBzeW1ib2xzIHRvIGJlICphbHdheXMqCisrICAjIGluY2x1ZGVk IGluIHRoZSBzeW1ib2wgbGlzdAorKyAgX0xUX1RBR1ZBUihpbmNsdWRlX2V4cHN5bXMsICQxKT0K KysgICMgZXhjbHVkZV9leHBzeW1zIGNhbiBiZSBhbiBleHRlbmRlZCByZWdleHAgb2Ygc3ltYm9s cyB0byBleGNsdWRlCisrICAjIGl0IHdpbGwgYmUgd3JhcHBlZCBieSBgICgnIGFuZCBgKSQnLCBz byBvbmUgbXVzdCBub3QgbWF0Y2ggYmVnaW5uaW5nIG9yCisrICAjIGVuZCBvZiBsaW5lLiAgRXhh bXBsZTogYGF8YmN8LipkLionIHdpbGwgZXhjbHVkZSB0aGUgc3ltYm9scyBgYScgYW5kIGBiYycs CisrICAjIGFzIHdlbGwgYXMgYW55IHN5bWJvbCB0aGF0IGNvbnRhaW5zIGBkJy4KKysgIF9MVF9U QUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JB TF9fRltJRF1fLionXQorKyAgIyBBbHRob3VnaCBfR0xPQkFMX09GRlNFVF9UQUJMRV8gaXMgYSB2 YWxpZCBzeW1ib2wgQyBuYW1lLCBtb3N0IGEub3V0CisrICAjIHBsYXRmb3JtcyAoYWIpdXNlIGl0 IGluIFBJQyBjb2RlLCBidXQgdGhlaXIgbGlua2VycyBnZXQgY29uZnVzZWQgaWYKKysgICMgdGhl IHN5bWJvbCBpcyBleHBsaWNpdGx5IHJlZmVyZW5jZWQuICBTaW5jZSBwb3J0YWJsZSBjb2RlIGNh bm5vdAorKyAgIyByZWx5IG9uIHRoaXMgc3ltYm9sIG5hbWUsIGl0J3MgcHJvYmFibHkgZmluZSB0 byBuZXZlciBpbmNsdWRlIGl0IGluCisrICAjIHByZWxvYWRlZCBzeW1ib2wgdGFibGVzLgorKyAg IyBFeGNsdWRlIHNoYXJlZCBsaWJyYXJ5IGluaXRpYWxpemF0aW9uL2ZpbmFsaXphdGlvbiBzeW1i b2xzLgorK2RubCBOb3RlIGFsc28gYWRqdXN0IGV4Y2x1ZGVfZXhwc3ltcyBmb3IgQysrIGFib3Zl LgorKyAgZXh0cmFjdF9leHBzeW1zX2NtZHM9CisrCisrICBjYXNlICRob3N0X29zIGluCisrICBj eWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisrICAgICMgRklYTUU6IHRoZSBNU1ZD KysgcG9ydCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgaW4gYSBsb29vb25nIHRpbWUKKysgICAgIyBXaGVu IG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcKKysg ICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KKysgICAgaWYgdGVzdCAiJEdDQyIgIT0geWVzOyB0 aGVuCisrICAgICAgd2l0aF9nbnVfbGQ9bm8KKysgICAgZmkKKysgICAgOzsKKysgIGludGVyaXgq KQorKyAgICAjIHdlIGp1c3QgaG9wZS9hc3N1bWUgdGhpcyBpcyBnY2MgYW5kIG5vdCBjODkgKD0g TVNWQysrKQorKyAgICB3aXRoX2dudV9sZD15ZXMKKysgICAgOzsKKysgIG9wZW5ic2QqKQorKyAg ICB3aXRoX2dudV9sZD1ubworKyAgICA7OworKyAgZXNhYworKworKyAgX0xUX1RBR1ZBUihsZF9z aGxpYnMsICQxKT15ZXMKKysKKysgICMgT24gc29tZSB0YXJnZXRzLCBHTlUgbGQgaXMgY29tcGF0 aWJsZSBlbm91Z2ggd2l0aCB0aGUgbmF0aXZlIGxpbmtlcgorKyAgIyB0aGF0IHdlJ3JlIGJldHRl ciBvZmYgdXNpbmcgdGhlIG5hdGl2ZSBpbnRlcmZhY2UgZm9yIGJvdGguCisrICBsdF91c2VfZ251 X2xkX2ludGVyZmFjZT1ubworKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgor KyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgYWl4KikKKysJIyBUaGUgQUlYIHBvcnQgb2Yg R05VIGxkIGhhcyBhbHdheXMgYXNwaXJlZCB0byBjb21wYXRpYmlsaXR5CisrCSMgd2l0aCB0aGUg bmF0aXZlIGxpbmtlci4gIEhvd2V2ZXIsIGFzIHRoZSB3YXJuaW5nIGluIHRoZSBHTlUgbGQKKysJ IyBibG9jayBzYXlzLCB2ZXJzaW9ucyBiZWZvcmUgMi4xOS41KiBjb3VsZG4ndCByZWFsbHkgY3Jl YXRlIHdvcmtpbmcKKysJIyBzaGFyZWQgbGlicmFyaWVzLCByZWdhcmRsZXNzIG9mIHRoZSBpbnRl cmZhY2UgdXNlZC4KKysJY2FzZSBgJExEIC12IDI+JjFgIGluCisrCSAgKlwgXChHTlVcIEJpbnV0 aWxzXClcIDIuMTkuNSopIDs7CisrCSAgKlwgXChHTlVcIEJpbnV0aWxzXClcIDIuW1syLTldXSop IDs7CisrCSAgKlwgXChHTlVcIEJpbnV0aWxzXClcIFtbMy05XV0qKSA7OworKwkgICopCisrCSAg ICBsdF91c2VfZ251X2xkX2ludGVyZmFjZT15ZXMKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysg ICAgICAqKQorKwlsdF91c2VfZ251X2xkX2ludGVyZmFjZT15ZXMKKysJOzsKKysgICAgZXNhYwor KyAgZmkKKysKKysgIGlmIHRlc3QgIiRsdF91c2VfZ251X2xkX2ludGVyZmFjZSIgPSB5ZXM7IHRo ZW4KKysgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQg YmUgZW1wdHkKKysgICAgd2xhcmM9JyR7d2x9JworKworKyAgICAjIFNldCBzb21lIGRlZmF1bHRz IGZvciBHTlUgbGQgd2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQorKyAgICAjIGFy ZSByZXNldCBsYXRlciBpZiBzaGFyZWQgbGlicmFyaWVzIGFyZSBub3Qgc3VwcG9ydGVkLiBQdXR0 aW5nIHRoZW0KKysgICAgIyBoZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYgbmVj ZXNzYXJ5LgorKyAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorKyAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwor KyAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhw b3J0LWR5bmFtaWMnCisrICAgICMgYW5jaWVudCBHTlUgbGQgZGlkbid0IHN1cHBvcnQgLS13aG9s ZS1hcmNoaXZlIGV0LiBhbC4KKysgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJ25vLXdo b2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgX0xUX1RBR1ZBUih3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYywgJDEpPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5j ZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJworKyAgICBlbHNlCisrICAgICAgX0xUX1RB R1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQorKyAgICBmaQorKyAgICBzdXBwb3J0 c19hbm9uX3ZlcnNpb25pbmc9bm8KKysgICAgY2FzZSBgJExEIC12IDI+JjFgIGluCisrICAgICAg KkdOVVwgZ29sZCopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsKKysgICAgICAqXCBb WzAxXV0uKiB8ICpcIDIuW1swLTldXS4qIHwgKlwgMi4xMC4qKSA7OyAjIGNhdGNoIHZlcnNpb25z IDwgMi4xMQorKyAgICAgICpcIDIuMTEuOTMuMC4yXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25p bmc9eWVzIDs7ICMgUkg3LjMgLi4uCisrICAgICAgKlwgMi4xMS45Mi4wLjEyXCAqKSBzdXBwb3J0 c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgTWFuZHJha2UgOC4yIC4uLgorKyAgICAgICpcIDIu MTEuKikgOzsgIyBvdGhlciAyLjExIHZlcnNpb25zCisrICAgICAgKikgc3VwcG9ydHNfYW5vbl92 ZXJzaW9uaW5nPXllcyA7OworKyAgICBlc2FjCisrCisrICAgICMgU2VlIGlmIEdOVSBsZCBzdXBw b3J0cyBzaGFyZWQgbGlicmFyaWVzLgorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFpeFtb My05XV0qKQorKyAgICAgICMgT24gQUlYL1BQQywgdGhlIEdOVSBsaW5rZXIgaXMgdmVyeSBicm9r ZW4KKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KKysJX0xUX1RBR1ZB UihsZF9zaGxpYnMsICQxKT1ubworKwljYXQgPDxfTFRfRU9GIDE+JjIKKysKKysqKiogV2Fybmlu ZzogdGhlIEdOVSBsaW5rZXIsIGF0IGxlYXN0IHVwIHRvIHJlbGVhc2UgMi4xOSwgaXMgcmVwb3J0 ZWQKKysqKiogdG8gYmUgdW5hYmxlIHRvIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVz IG9uIEFJWC4KKysqKiogVGhlcmVmb3JlLCBsaWJ0b29sIGlzIGRpc2FibGluZyBzaGFyZWQgbGli cmFyaWVzIHN1cHBvcnQuICBJZiB5b3UKKysqKiogcmVhbGx5IGNhcmUgZm9yIHNoYXJlZCBsaWJy YXJpZXMsIHlvdSBtYXkgd2FudCB0byBpbnN0YWxsIGJpbnV0aWxzCisrKioqIDIuMjAgb3IgYWJv dmUsIG9yIG1vZGlmeSB5b3VyIFBBVEggc28gdGhhdCBhIG5vbi1HTlUgbGlua2VyIGlzIGZvdW5k LgorKyoqKiBZb3Ugd2lsbCB0aGVuIG5lZWQgdG8gcmVzdGFydCB0aGUgY29uZmlndXJhdGlvbiBw cm9jZXNzLgorKworK19MVF9FT0YKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFtaWdh b3MqKQorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgcG93ZXJwYykKKysgICAgICAg ICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisrICAgICAgICAg ICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisr ICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JycKKysgICAg ICAgIDs7CisrICAgICAgbTY4aykKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmlu ZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8g IiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRh fiRFQ0hPICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGli cmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9v YmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJ QiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJworKyAgICAgICAg ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXIn CisrICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAg ICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBiZW9zKikKKysgICAgICBp ZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4g L2Rldi9udWxsOyB0aGVuCisrCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11 bnN1cHBvcnRlZAorKwkjIEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNv bWUgcmVsZWFzZXMgb2YgZ2NjCisrCSMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2 ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKyAgICAgIGVsc2UKKysJX0xUX1RBR1ZBUihs ZF9zaGxpYnMsICQxKT1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgY3lnd2luKiB8 IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorKyAgICAgICMgX0xUX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCisrICAgICAgIyBh cyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKysgICAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworKyAgICAgIF9MVF9UQUdW QVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtYWxsLXN5bWJv bHMnCisrICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9y dGVkCisrICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubworKyAg ICAgIF9MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPXll cworKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9i anMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW1tC Q0RHUlNdXVtbIF1dL3MvLipbWyBdXVwoW1teIF1dKlwpL1wxIERBVEEvJ1wnJyB8ICRTRUQgLWUg J1wnJy9eW1tBSVRXXV1bWyBdXS9zLy4qW1sgXV0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBv cnRfc3ltYm9scycKKysKKysgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnYXV0by1p bXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8g JG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxp bmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKysJIyBJZiB0aGUgZXhwb3J0LXN5bWJv bHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGluZQorKwkjIGlzIEVYUE9SVFMp LCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgorKwlfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2Ai ID0geEVYUE9SVFM7IHRoZW4KKysJICBjcCAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIv JHNvbmFtZS5kZWY7CisrCWVsc2UKKysJICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8k c29uYW1lLmRlZjsKKysJICBjYXQgJGV4cG9ydF9zeW1ib2xzID4+ICRvdXRwdXRfb2JqZGlyLyRz b25hbWUuZGVmOworKwlmaX4KKysJJENDIC1zaGFyZWQgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5k ZWYgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRz b25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGli IC1YbGlua2VyICRsaWInCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBoYWlrdSopCisrICAgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAgICAgX0xU X1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisrICAgICAgOzsKKysKKysgICAgaW50 ZXJpeFtbMy05XV0qKQorKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8K KysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwk bGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LUUnCisrICAgICAgIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBp bGUgUElDIGJlY2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgorKyAgICAgICMgSW5zdGVhZCwgc2hhcmVk IGxpYnJhcmllcyBhcmUgbG9hZGVkIGF0IGFuIGltYWdlIGJhc2UgKDB4MTAwMDAwMDAgYnkKKysg ICAgICAjIGRlZmF1bHQpIGFuZCByZWxvY2F0ZWQgaWYgdGhleSBjb25mbGljdCwgd2hpY2ggaXMg YSBzbG93IHZlcnkgbWVtb3J5CisrICAgICAgIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHBy b2Nlc3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAorKyAgICAgICMgMjU2IEtp Qi1hbGlnbmVkIGltYWdlIGJhc2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMwMDAwIGF0 IGxpbmsKKysgICAgICAjIHRpbWUuICBNb3ZpbmcgdXAgZnJvbSAweDEwMDAwMDAwIGFsc28gYWxs b3dzIG1vcmUgc2JyaygyKSBzcGFjZS4KKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0g JSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKyAgICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdzZWQgInMsXixfLCIgJGV4cG9ydF9zeW1i b2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0t cmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bSAke3dsfS0t aW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQy MTc3MjgwYCAtbyAkbGliJworKyAgICAgIDs7CisrCisrICAgIGdudSogfCBsaW51eCogfCB0cGYq IHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQorKyAgICAgIHRtcF9kaWV0PW5vCisr ICAgICAgaWYgdGVzdCAiJGhvc3Rfb3MiID0gbGludXgtZGlldGxpYmM7IHRoZW4KKysJY2FzZSAk Y2NfYmFzZW5hbWUgaW4KKysJICBkaWV0XCAqKSB0bXBfZGlldD15ZXM7OwkjIGxpbnV4LWRpZXRs aWJjIHdpdGggc3RhdGljIGxpbmtpbmcgKCFkaWV0LWR5bikKKysJZXNhYworKyAgICAgIGZpCisr ICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEVHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4q IGVsZicgPiAvZGV2L251bGwgXAorKwkgJiYgdGVzdCAiJHRtcF9kaWV0IiA9IG5vCisrICAgICAg dGhlbgorKwl0bXBfYWRkZmxhZz0KKysJdG1wX3NoYXJlZGZsYWc9Jy1zaGFyZWQnCisrCWNhc2Ug JGNjX2Jhc2VuYW1lLCRob3N0X2NwdSBpbgorKyAgICAgICAgcGdjYyopCQkJCSMgUG9ydGxhbmQg R3JvdXAgQyBjb21waWxlcgorKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsg ZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVu Y2UsJGNvbnZcIjsgZG9uZTsgZnVuY19lY2hvX2FsbCBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3 bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcnCisrCSAg OzsKKysJcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqIHwgcGdmb3J0cmFuKikKKysJCQkJCSMgUG9y dGxhbmQgR3JvdXAgZjc3IGFuZCBmOTAgY29tcGlsZXJzCisrCSAgX0xUX1RBR1ZBUih3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAk Y29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNl PVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19j b252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICB0bXBfYWRkZmxhZz0n ICRwaWNfZmxhZyAtTW5vbWFpbicgOzsKKysJZWNjKixpYTY0KiB8IGljYyosaWE2NCopCSMgSW50 ZWwgQyBjb21waWxlciBvbiBpYTY0CisrCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7Owor KwllZmMqLGlhNjQqIHwgaWZvcnQqLGlhNjQqKQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIgb24g aWE2NAorKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1pYyAtbm9mb3JfbWFpbicgOzsKKysJaWZj KiB8IGlmb3J0KikJCQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIKKysJICB0bXBfYWRkZmxhZz0n IC1ub2Zvcl9tYWluJyA7OworKwlsZjk1KikJCQkJIyBMYWhleSBGb3J0cmFuIDguMQorKwkgIF9M VF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKysJICB0bXBfc2hhcmVkZmxh Zz0nLS1zaGFyZWQnIDs7CisrCXhsW1tjQ11dKiB8IGJneGxbW2NDXV0qIHwgbXBpeGxbW2NDXV0q KSAjIElCTSBYTCBDIDguMCBvbiBQUEMgKGRlYWwgd2l0aCB4bGYgYmVsb3cpCisrCSAgdG1wX3No YXJlZGZsYWc9Jy1xbWtzaHJvYmonCisrCSAgdG1wX2FkZGZsYWc9IDs7CisrCW52Y2MqKQkjIEN1 ZGEgQ29tcGlsZXIgRHJpdmVyIDIuMgorKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNl XCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29u dmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgZnVuY19lY2hvX2FsbCBcIiRuZXdfY29udmVuaWVuY2Vc ImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrCSAgX0xUX1RBR1ZBUihjb21waWxlcl9uZWVk c19vYmplY3QsICQxKT15ZXMKKysJICA7OworKwllc2FjCisrCWNhc2UgYCRDQyAtViAyPiYxIHwg c2VkIDVxYCBpbgorKwkqU3VuXCBDKikJCQkjIFN1biBDIDUuOQorKwkgIF9MVF9UQUdWQVIod2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZl bmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252 XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBm dW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2 ZScKKysJICBfTFRfVEFHVkFSKGNvbXBpbGVyX25lZWRzX29iamVjdCwgJDEpPXllcworKwkgIHRt cF9zaGFyZWRmbGFnPSctRycgOzsKKysJKlN1blwgRiopCQkJIyBTdW4gRm9ydHJhbiA4LjMKKysJ ICB0bXBfc2hhcmVkZmxhZz0nLUcnIDs7CisrCWVzYWMKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicK KysKKysgICAgICAgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5ZXM7 IHRoZW4KKysgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2Vj aG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAgICBjYXQg JGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRp ci8kbGlibmFtZS52ZXJ+CisrCSAgICBlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICRDQyAnIiR0bXBfc2hhcmVkZmxhZyIiJHRtcF9hZGRm bGFnIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lICR7d2x9LXZlcnNpb24tc2NyaXB0ICR7d2x9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu dmVyIC1vICRsaWInCisrICAgICAgICBmaQorKworKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwl4 bGYqIHwgYmdmKiB8IGJneGxmKiB8IG1waXhsZiopCisrCSAgIyBJQk0gWEwgRm9ydHJhbiAxMC4x IG9uIFBQQyBjYW5ub3QgY3JlYXRlIHNoYXJlZCBsaWJzIGl0c2VsZgorKwkgIF9MVF9UQUdWQVIo d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNl IC0tbm8td2hvbGUtYXJjaGl2ZScKKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0KKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQs ICQxKT0nLXJwYXRoICRsaWJkaXInCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25h bWUgLW8gJGxpYicKKysJICBpZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4 eWVzOyB0aGVuCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNo byAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICAgY2F0 ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUudmVyfgorKwkgICAgICBlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRf b2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICAgJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgLXZlcnNpb24tc2NyaXB0ICRvdXRwdXRf b2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJworKwkgIGZpCisrCSAgOzsKKysJZXNhYworKyAg ICAgIGVsc2UKKysgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICBm aQorKyAgICAgIDs7CisrCisrICAgIG5ldGJzZCopCisrICAgICAgaWYgZWNobyBfX0VMRl9fIHwg JENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KKysJX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MgLW8gJGxpYicKKysJd2xhcmM9CisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJX0xUX1RBR1ZBUihhcmNo aXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1m aWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKyAgICAgIGZpCisrICAgICAgOzsKKysK KysgICAgc29sYXJpcyopCisrICAgICAgaWYgJExEIC12IDI+JjEgfCAkR1JFUCAnQkZEIDJcLjgn ID4gL2Rldi9udWxsOyB0aGVuCisrCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJY2F0 IDw8X0xUX0VPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IFRoZSByZWxlYXNlcyAyLjguKiBvZiB0 aGUgR05VIGxpbmtlciBjYW5ub3QgcmVsaWFibHkKKysqKiogY3JlYXRlIHNoYXJlZCBsaWJyYXJp ZXMgb24gU29sYXJpcyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCisrKioqIGlzIGRpc2Fi bGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdO VQorKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIuOS4xIG9yIG5ld2VyLiAgQW5vdGhlciBvcHRp b24gaXMgdG8gbW9kaWZ5CisrKioqIHlvdXIgUEFUSCBvciBjb21waWxlciBjb25maWd1cmF0aW9u IHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKKysqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFy dC4KKysKKytfTFRfRU9GCisrICAgICAgZWxpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBz dXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCV9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwlfTFRfVEFHVkFSKGFy Y2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xz LWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAgICAgZWxzZQorKwlfTFRfVEFH VkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBzeXN2 NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqKQorKyAgICAg IGNhc2UgYCRMRCAtdiAyPiYxYCBpbgorKyAgICAgICAgKlwgW1swMV1dLiogfCAqXCAyLltbMC05 XV0uKiB8ICpcIDIuMVtbMC01XV0uKikKKysJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwor KwljYXQgPDxfTFRfRU9GIDE+JjIKKysKKysqKiogV2FybmluZzogUmVsZWFzZXMgb2YgdGhlIEdO VSBsaW5rZXIgcHJpb3IgdG8gMi4xNi45MS4wLjMgY2FuIG5vdAorKyoqKiByZWxpYWJseSBjcmVh dGUgc2hhcmVkIGxpYnJhcmllcyBvbiBTQ08gc3lzdGVtcy4gIFRoZXJlZm9yZSwgbGlidG9vbAor KyoqKiBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgV2UgdXJnZSB5b3Ug dG8gdXBncmFkZSBHTlUKKysqKiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjE2LjkxLjAuMyBvciBu ZXdlci4gIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlmeQorKyoqKiB5b3VyIFBBVEggb3IgY29t cGlsZXIgY29uZmlndXJhdGlvbiBzbyB0aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCisrKioqIHVz ZWQsIGFuZCB0aGVuIHJlc3RhcnQuCisrCisrX0xUX0VPRgorKwk7OworKwkqKQorKwkgICMgRm9y IHNlY3VyaXR5IHJlYXNvbnMsIGl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHlvdSBhbHdh eXMKKysJICAjIHVzZSBhYnNvbHV0ZSBwYXRocyBmb3IgbmFtaW5nIHNoYXJlZCBsaWJyYXJpZXMs IGFuZCBleGNsdWRlIHRoZQorKwkgICMgRFRfUlVOUEFUSCB0YWcgZnJvbSBleGVjdXRhYmxlcyBh bmQgbGlicmFyaWVzLiAgQnV0IGRvaW5nIHNvCisrCSAgIyByZXF1aXJlcyB0aGF0IHlvdSBjb21w aWxlIGV2ZXJ5dGhpbmcgdHdpY2UsIHdoaWNoIGlzIGEgcGFpbi4KKysJICBpZiAkTEQgLS1oZWxw IDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0 aGVuCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3 bH0tcnBhdGggJHt3bH0kbGliZGlyJworKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4 cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCSAgZWxzZQorKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxp YnMsICQxKT1ubworKwkgIGZpCisrCTs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAg IHN1bm9zNCopCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1hc3Nl cnQgcHVyZS10ZXh0IC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFncycKKysgICAgICB3bGFyYz0KKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVj dCwgJDEpPXllcworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEp PW5vCisrICAgICAgOzsKKysKKysgICAgKikKKysgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAk R1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCV9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwlfTFRf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFp bi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAgICAgZWxzZQor KwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgZmkKKysgICAgICA7OworKyAg ICBlc2FjCisrCisrICAgIGlmIHRlc3QgIiRfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpIiA9IG5v OyB0aGVuCisrICAgICAgcnVucGF0aF92YXI9CisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSk9CisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19m bGFnX3NwZWMsICQxKT0KKysgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj LCAkMSk9CisrICAgIGZpCisrICBlbHNlCisrICAgICMgUE9SVE1FIGZpbGwgaW4gYSBkZXNjcmlw dGlvbiBvZiB5b3VyIHN5c3RlbSdzIGxpbmtlciAobm90IEdOVSBsZCkKKysgICAgY2FzZSAkaG9z dF9vcyBpbgorKyAgICBhaXgzKikKKysgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9m bGFnLCAkMSk9dW5zdXBwb3J0ZWQKKysgICAgICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3lt Ym9scywgJDEpPXllcworKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PSckTEQgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzIC1iRTokZXhwb3J0X3N5bWJvbHMgLVQ1MTIgLUg1MTIgLWJNOlNSRX4kQVIgJEFSX0ZM QUdTICRsaWIgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScKKysgICAgICAjIE5vdGU6IHRoaXMgbGlu a2VyIGhhcmRjb2RlcyB0aGUgZGlyZWN0b3JpZXMgaW4gTElCUEFUSCBpZiB0aGVyZQorKyAgICAg ICMgYXJlIG5vIGRpcmVjdG9yaWVzIHNwZWNpZmllZCBieSAtTC4KKysgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAm JiB0ZXN0IC16ICIkbHRfcHJvZ19jb21waWxlcl9zdGF0aWMiOyB0aGVuCisrCSMgTmVpdGhlciBk aXJlY3QgaGFyZGNvZGluZyBub3Igc3RhdGljIGxpbmtpbmcgaXMgc3VwcG9ydGVkIHdpdGggYQor KwkjIGJyb2tlbiBjb2xsZWN0Mi4KKysJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT11 bnN1cHBvcnRlZAorKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgYWl4W1s0LTldXSopCisr ICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysJIyBPbiBJQTY0LCB0aGUg bGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAorKwkj IGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbC4KKysJYWl4X3VzZV9ydW50aW1lbGlua2luZz1u bworKwlleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0JworKwlub19lbnRyeV9mbGFnPSIiCisrICAgICAg ZWxzZQorKwkjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50IHRoZSAi LUMiIG9wdGlvbi4KKysJIyAtQyBtZWFucyBkZW1hbmdsZSB0byBBSVggbm0sIGJ1dCBtZWFucyBk b24ndCBkZW1hbmdsZSB3aXRoIEdOVSBubQorKwkjIEFsc28sIEFJWCBubSB0cmVhdHMgd2VhayBk ZWZpbmVkIHN5bWJvbHMgbGlrZSBvdGhlciBnbG9iYWwKKysJIyBkZWZpbmVkIHN5bWJvbHMsIHdo ZXJlYXMgR05VIG5tIG1hcmtzIHRoZW0gYXMgIlciLgorKwlpZiAkTk0gLVYgMj4mMSB8ICRHUkVQ ICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19j bWRzLCAkMSk9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAo KChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpIHx8IChcJCAy ID09ICJXIikpICYmIChbc3Vic3RyXShcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0g fSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJworKwllbHNlCisrCSAgX0xUX1RBR1ZB UihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVu Y2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwk IDIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMg fSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCisrCWZpCisrCWFpeF91c2VfcnVu dGltZWxpbmtpbmc9bm8KKysKKysJIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1biB0 aW1lIGxpbmtpbmcgb3Igbm9ybWFsCisrCSMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlz IHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQorKwkjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5raW5n LgorKwljYXNlICRob3N0X29zIGluIGFpeDQuW1syM11dfGFpeDQuW1syM11dLip8YWl4W1s1LTld XSopCisrCSAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCisrCSAgaWYgKHRlc3QgJGxkX2Zs YWcgPSAiLWJydGwiIHx8IHRlc3QgJGxkX2ZsYWcgPSAiLVdsLC1icnRsIik7IHRoZW4KKysJICAg IGFpeF91c2VfcnVudGltZWxpbmtpbmc9eWVzCisrCSAgICBicmVhaworKwkgIGZpCisrCSAgZG9u ZQorKwkgIDs7CisrCWVzYWMKKysKKysJZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKKysJbm9fZW50 cnlfZmxhZz0nLWJub2VudHJ5JworKyAgICAgIGZpCisrCisrICAgICAgIyBXaGVuIGxhcmdlIGV4 ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmplY3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgorKyAgICAg ICMgaGF2ZSBwcm9ibGVtcyBjcmVhdGluZyB0aGUgdGFibGUgb2YgY29udGVudHMuICBJZiBsaW5r aW5nIGEgbGlicmFyeQorKyAgICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mg b3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCisrICAgICAgIyBDWFhGTEFHUy9DRkxBR1Mg Zm9yIGcrKy9nY2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBub3QKKysgICAgICAjIGVu b3VnaCB0byBmaXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJiaWd0b2MgdG8gTERGTEFHUy4KKysK KysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPScnCisrICAgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2Rp cmVjdF9hYnNvbHV0ZSwgJDEpPXllcworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvciwgJDEpPSc6JworKyAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywg JDEpPXllcworKyAgICAgIF9MVF9UQUdWQVIoZmlsZV9saXN0X3NwZWMsICQxKT0nJHt3bH0tZiwn CisrCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJY2FzZSAkaG9zdF9vcyBp biBhaXg0LltbMDEyXV18YWl4NC5bWzAxMl1dLiopCisrCSMgV2Ugb25seSB3YW50IHRvIGRvIHRo aXMgb24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjaworKwkjIGJlbG93IGZvciBicm9rZW4g Y29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKKysJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9 IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCisrCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFt ZSIgJiYKKysJICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9u YW1lID4vZGV2L251bGwKKysJICB0aGVuCisrCSAgIyBXZSBoYXZlIHJld29ya2VkIGNvbGxlY3Qy CisrCSAgOgorKwkgIGVsc2UKKysJICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCisrCSAgX0xUX1RB R1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT11bnN1cHBvcnRlZAorKwkgICMgSXQgZmFpbHMgdG8g ZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKKysJICAjIHBh dGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVfbWludXNf TAorKwkgICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZworKwkgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yLCAkMSk9CisrCSAgZmkKKysJICA7OworKwllc2FjCisrCXNoYXJlZF9mbGFn PSctc2hhcmVkJworKwlpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRo ZW4KKysJICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICInJHt3bH0tRycKKysJZmkKKysgICAg ICBlbHNlCisrCSMgbm90IHVzaW5nIGdjYworKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsg dGhlbgorKwkjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0 LCBCZXRhIDMgUmVsZWFzZQorKwkjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGlu ZSBpcyBjb3JyZWN0OgorKwkgIHNoYXJlZF9mbGFnPSctRycKKysJZWxzZQorKwkgIGlmIHRlc3Qg IiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgICAgc2hhcmVkX2ZsYWc9 JyR7d2x9LUcnCisrCSAgZWxzZQorKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKKysJ ICBmaQorKwlmaQorKyAgICAgIGZpCisrCisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1p Y19mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmV4cGFsbCcKKysgICAgICAjIEl0IHNlZW1zIHRoYXQg LWJleHBhbGwgZG9lcyBub3QgZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKKysgICAgICAj IHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5 bWJvbHMgdG8gZXhwb3J0LgorKyAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xz LCAkMSk9eWVzCisrICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVz OyB0aGVuCisrCSMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9h ZGluZyBmbGFncyAoLWJydGwpLAorKwkjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwg YnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrCV9MVF9UQUdWQVIoYWxsb3dfdW5k ZWZpbmVkX2ZsYWcsICQxKT0nLWJlcm9rJworKyAgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1 bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCisrICAgICAgICAjIGVtcHR5 IGV4ZWN1dGFibGUuCisrICAgICAgICBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKyAgICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRo OiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhw c3ltX2NtZHMsICQxKT0nJENDIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRl cGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAi eCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4gZnVuY19lY2hvX2FsbCAiJHt3 bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSI7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1f ZmxhZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKKysgICAgICBlbHNlCisrCWlmIHRl c3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJworKwkgIF9M VF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0iLXogbm9kZWZzIgorKwkgIF9MVF9U QUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRv dXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlf ZmxhZyInICRjb21waWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7 d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgorKwllbHNlCisrCSAjIERldGVybWlu ZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KKysJICMg ZW1wdHkgZXhlY3V0YWJsZS4KKysJIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCisrCSBfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRp cjonIiRhaXhfbGlicGF0aCIKKysJICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhl ciBydW4gdGltZSBsb2FkaW5nIGZsYWdzLAorKwkgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0 IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKysJICBfTFRfVEFHVkFS KG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJub3RvaycKKysJICBfTFRfVEFHVkFS KGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJvaycKKysJICBpZiB0ZXN0ICIk d2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisrCSAgICAjIFdlIG9ubHkgdXNlIHRoaXMgY29kZSBm b3IgR05VIGxkcyB0aGF0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlLgorKwkgICAgX0xUX1RBR1ZB Uih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZSRjb252 ZW5pZW5jZSAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICBlbHNlCisrCSAgICAjIEV4cG9y dGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2 ZXMKKysJICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJGNvbnZl bmllbmNlJworKwkgIGZpCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEp PXllcworKwkgICMgVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBBSVggdHJhZGl0aW9uYWxseSBidWls ZHMgaXRzIHNoYXJlZCBsaWJyYXJpZXMuCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9j bWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAk bGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tYkU6 JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxhZ31+JEFSICRBUl9GTEFHUyAkb3V0 cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScKKysJ ZmkKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFtaWdhb3MqKQorKyAgICAgIGNhc2Ug JGhvc3RfY3B1IGluCisrICAgICAgcG93ZXJwYykKKysgICAgICAgICAgICAjIHNlZSBjb21tZW50 IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisrICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAgICAgICAgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JycKKysgICAgICAgIDs7CisrICAgICAgbTY4 aykKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1 dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTElCUkFSWV9J RCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFZF UlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIj ZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnku ZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0 X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJworKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrICAgICAgICAgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAgICA7OworKyAgICAgIGVz YWMKKysgICAgICA7OworKworKyAgICBic2RpW1s0NV1dKikKKysgICAgICBfTFRfVEFHVkFSKGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPS1yZHluYW1pYworKyAgICAgIDs7CisrCisrICAg IGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAgICAjIFdoZW4gbm90IHVz aW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZworKyAgICAgICMg TWljcm9zb2Z0IFZpc3VhbCBDKysuCisrICAgICAgIyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj IGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcworKyAgICAgICMgbm8gc2VhcmNo IHBhdGggZm9yIERMTHMuCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjLCAkMSk9JyAnCisrICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEp PXVuc3VwcG9ydGVkCisrICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5saWIgZmlsZXMsIG5v dCAuYSBmaWxlcy4KKysgICAgICBsaWJleHQ9bGliCisrICAgICAgIyBUZWxsIGx0bWFpbiB0byBt YWtlIC5kbGwgZmlsZXMsIG5vdCAuc28gZmlsZXMuCisrICAgICAgc2hyZXh0X2NtZHM9Ii5kbGwi CisrICAgICAgIyBGSVhNRTogU2V0dGluZyBsaW5rbmFtZXMgaGVyZSBpcyBhIGJhZCBoYWNrLgor KyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbyAkbGliICRsaWJvYmpz ICRjb21waWxlcl9mbGFncyBgZnVuY19lY2hvX2FsbCAiJGRlcGxpYnMiIHwgJFNFRCAnXCcncy8g LWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9JworKyAgICAgICMgVGhlIGxpbmtlciB3 aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGliIGZpbGUgaWYgd2UgYnVpbGQgYSBETEwuCisr ICAgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzLCAkMSk9J3RydWUnCisr ICAgICAgIyBGSVhNRTogU2hvdWxkIGxldCB0aGUgdXNlciBzcGVjaWZ5IHRoZSBsaWIgcHJvZ3Jh bS4KKysgICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nbGliIC1PVVQ6JG9s ZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzJworKyAgICAgIF9MVF9UQUdWQVIoZml4X3NyY2ZpbGVf cGF0aCwgJDEpPSdgY3lncGF0aCAtdyAiJHNyY2ZpbGUiYCcKKysgICAgICBfTFRfVEFHVkFSKGVu YWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKKysgICAgICA7OworKwor KyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgICAgIF9MVF9EQVJXSU5fTElOS0VSX0ZFQVRV UkVTKCQxKQorKyAgICAgIDs7CisrCisrICAgIGRndXgqKQorKyAgICAgIF9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncycKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0nLUwkbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJw YXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsKKysKKysgICAgZnJlZWJzZDEqKQorKyAgICAgIF9M VF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICAjIEZyZWVCU0Qg Mi4yLlswMTJdIGFsbG93cyB1cyB0byBpbmNsdWRlIGMrK3J0MC5vIHRvIGdldCBDKysgY29uc3Ry dWN0b3IKKysgICAgIyBzdXBwb3J0LiAgRnV0dXJlIHZlcnNpb25zIGRvIHRoaXMgYXV0b21hdGlj YWxseSwgYnV0IGFuIGV4cGxpY2l0IGMrK3J0MC5vCisrICAgICMgZG9lcyBub3QgYnJlYWsgYW55 dGhpbmcsIGFuZCBoZWxwcyBzaWduaWZpY2FudGx5IChhdCB0aGUgY29zdCBvZiBhIGxpdHRsZQor KyAgICAjIGV4dHJhIHNwYWNlKS4KKysgICAgZnJlZWJzZDIuMiopCisrICAgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGxpbmtlcl9mbGFncyAvdXNyL2xpYi9jKytydDAubycKKysgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworKyAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICAjIFVuZm9ydHVuYXRl bHksIG9sZGVyIHZlcnNpb25zIG9mIEZyZWVCU0QgMiBkbyBub3QgaGF2ZSB0aGlzIGZlYXR1cmUu CisrICAgIGZyZWVic2QyKikKKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck TEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwor KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICAjIEZyZWVCU0QgMyBh bmQgZ3JlYXRlciB1c2VzIGdjYyAtc2hhcmVkIHRvIGRvIHNoYXJlZCBsaWJyYXJpZXMuCisrICAg IGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIk bGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7Owor KworKyAgICBocHV4OSopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JEND IC1zaGFyZWQgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29i amRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRw dXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxp YicKKysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0 cHV0X29iamRpci8kc29uYW1lfiRMRCAtYiArYiAkaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfnRlc3QgJG91dHB1 dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGli JworKyAgICAgIGZpCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVj dCwgJDEpPXllcworKworKyAgICAgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0 aGUgc2VhcmNoIFBBVEgsCisrICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2Yg dGhlIGxpYnJhcnkuCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVz CisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0t RScKKysgICAgICA7OworKworKyAgICBocHV4MTAqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0g eWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwlfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3ds fStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JExEIC1iICtoICRzb25hbWUgK2IgJGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBmaQorKyAgICAgIGlmIHRlc3QgIiR3aXRoX2du dV9sZCIgPSBubzsgdGhlbgorKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19sZCwgJDEpPScrYiAkbGliZGlyJworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3IsICQxKT06CisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9 eWVzCisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCisrCV9M VF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisrCSMgaGFy ZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCisrCSMgYnV0IGFz IHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgorKwlfTFRfVEFHVkFSKGhhcmRj b2RlX21pbnVzX0wsICQxKT15ZXMKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGhwdXgx MSopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9 IG5vOyB0aGVuCisrCWNhc2UgJGhvc3RfY3B1IGluCisrCWhwcGEqNjQqKQorKwkgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCWlhNjQq KQorKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1mUElDICR7 d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUg JHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncycKKysJICA7OworKwllc2FjCisrICAgICAgZWxzZQorKwljYXNlICRob3N0 X2NwdSBpbgorKwlocHBhKjY0KikKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck Q0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJaWE2NCopCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRo IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSop CisrCW00X2lmKCQxLCBbXSwgWworKwkgICMgT2xkZXIgdmVyc2lvbnMgb2YgdGhlIDExLjAwIGNv bXBpbGVyIGRvIG5vdCB1bmRlcnN0YW5kIC1iIHlldAorKwkgICMgKEhQOTI0NTMtMDEgQS4xMS4w MS4yMCBkb2Vzbid0LCBIUDkyNDUzLTAxIEIuMTEuWC4zNTE3NS0zNTE3Ni5HUCBkb2VzKQorKwkg IF9MVF9MSU5LRVJfT1BUSU9OKFtpZiAkQ0MgdW5kZXJzdGFuZHMgLWJdLAorKwkgICAgX0xUX1RB R1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX19iLCAkMSksIFstYl0sCisrCSAgICBbX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2Ig JHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnXSwKKysJICAgIFtfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWIgK2gg JHNvbmFtZSArYiAkaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlu a2VyX2ZsYWdzJ10pXSwKKysJICBbX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1i ICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnXSkKKysJICA7OworKwllc2FjCisr ICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGli ZGlyJworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrCisr CWNhc2UgJGhvc3RfY3B1IGluCisrCWhwcGEqNjQqfGlhNjQqKQorKwkgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfZGlyZWN0LCAkMSk9bm8KKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92 YXIsICQxKT1ubworKwkgIDs7CisrCSopCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3Qs ICQxKT15ZXMKKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXll cworKwkgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUn CisrCisrCSAgIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFU SCwKKysJICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysJ ICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKysJICA7OworKwllc2FjCisr ICAgICAgZmkKKysgICAgICA7OworKworKyAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgq KQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCV9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5j X2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRh dGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwor KwkjIFRyeSB0byB1c2UgdGhlIC1leHBvcnRlZF9zeW1ib2wgbGQgb3B0aW9uLCBpZiBpdCBkb2Vz IG5vdAorKwkjIHdvcmssIGFzc3VtZSB0aGF0IC1leHBvcnRzX2ZpbGUgZG9lcyBub3Qgd29yayBl aXRoZXIgYW5kCisrCSMgaW1wbGljaXRseSBleHBvcnQgYWxsIHN5bWJvbHMuCisrICAgICAgICBz YXZlX0xERkxBR1M9IiRMREZMQUdTIgorKyAgICAgICAgTERGTEFHUz0iJExERkxBR1MgLXNoYXJl ZCAke3dsfS1leHBvcnRlZF9zeW1ib2wgJHt3bH1mb28gJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7 d2x9L2Rldi9udWxsIgorKyAgICAgICAgQUNfTElOS19JRkVMU0UoaW50IGZvbyh2b2lkKSB7fSwK KysgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0k c29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRf dmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291 dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAke3dsfS1leHBvcnRzX2ZpbGUgJHt3bH0kZXhwb3J0 X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICAgICkKKysgICAgICAgIExERkxBR1M9IiRzYXZlX0xE RkxBR1MiCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1l IGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICItc2V0X3ZlcnNpb24gJHZl cnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMg LW8gJGxpYicKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRl c3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVyc3Ry aW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtZXhw b3J0c19maWxlICRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKyAgICAgIGZpCisrICAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPSdubycKKysgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGly JworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysg ICAgICBfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT15ZXMKKysgICAgICBfTFRfVEFHVkFS KGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKysgICAgICA7OworKworKyAgICBuZXRic2QqKQor KyAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9u dWxsOyB0aGVuCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJs ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAjIGEub3V0CisrICAg ICAgZWxzZQorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLXNoYXJlZCAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAgICAgIyBFTEYKKysgICAgICBm aQorKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRs aWJkaXInCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICAgIDs7Cisr CisrICAgIG5ld3NvczYpCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExE IC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwor KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxp YmRpcicKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06 CisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAg ICA7OworKworKyAgICAqbnRvKiB8ICpxbngqKQorKyAgICAgIDs7CisrCisrICAgIG9wZW5ic2Qq KQorKyAgICAgIGlmIHRlc3QgLWYgL3Vzci9saWJleGVjL2xkLnNvOyB0aGVuCisrCV9MVF9UQUdW QVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJw YXRoX3ZhciwgJDEpPW5vCisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAk MSk9eWVzCisrCWlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9f RUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJw YyI7IHRoZW4KKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAk cGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAg X0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxh ZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4t c3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9scycKKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICBfTFRfVEFHVkFS KGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJworKwllbHNlCisrCSAgY2Fz ZSAkaG9zdF9vcyBpbgorKwkgICBvcGVuYnNkW1swMV1dLiogfCBvcGVuYnNkMi5bWzAtN11dIHwg b3BlbmJzZDIuW1swLTddXS4qKQorKwkgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn CisrCSAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxp YmRpcicKKysJICAgICA7OworKwkgICAqKQorKwkgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncycKKysJICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICAgICA7OworKwkgIGVzYWMKKysJZmkK KysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICBmaQor KyAgICAgIDs7CisrCisrICAgIG9zMiopCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X21pbnVzX0wsICQxKT15ZXMKKysgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFn LCAkMSk9dW5zdXBwb3J0ZWQKKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck RUNITyAiTElCUkFSWSAkbGlibmFtZSBJTklUSU5TVEFOQ0UiID4gJG91dHB1dF9vYmpkaXIvJGxp Ym5hbWUuZGVmfiRFQ0hPICJERVNDUklQVElPTiBcIiRsaWJuYW1lXCIiID4+ICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLmRlZn5lY2hvIERBVEEgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVm fmVjaG8gIiBTSU5HTEUgTk9OU0hBUkVEIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ ZWNobyBFWFBPUlRTID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn5lbXhleHAgJGxpYm9i anMgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRDQyAtWmRsbCAtWmNydGRsbCAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAkb3V0cHV0X29iamRpci8kbGli bmFtZS5kZWYnCisrICAgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzLCAk MSk9J2VteGltcCAtbyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5hICRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLmRlZicKKysgICAgICA7OworKworKyAgICBvc2YzKikKKysgICAgICBpZiB0ZXN0ICIk R0NDIiA9IHllczsgdGhlbgorKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9 JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJworKwlfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1u ICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2 ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3Nv X2xvY2F0aW9ucyAtbyAkbGliJworKyAgICAgIGVsc2UKKysJX0xUX1RBR1ZBUihhbGxvd191bmRl ZmluZWRfZmxhZywgJDEpPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJworKwlfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2 ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVw ZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKyAg ICAgIGZpCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPSdubycK KysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0t cnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvciwgJDEpPToKKysgICAgICA7OworKworKyAgICBvc2Y0KiB8IG9zZjUqKQkjIGFzIG9z ZjMqIHdpdGggdGhlIGFkZGl0aW9uIG9mIC1tc3ltIGZsYWcKKysgICAgICBpZiB0ZXN0ICIkR0ND IiA9IHllczsgdGhlbgorKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAk e3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUg YHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9u ICR7d2x9JHZlcnN0cmluZyJgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29i amRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgZWxzZQor KwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2 ZWQgXConCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxv d191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1tc3lt IC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAi LXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRp cn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21k cywgJDEpPSdmb3IgaSBpbiBgY2F0ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50ZiAiJXMgJXNc XG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4gJGxpYi5leHA7IGRvbmU7IHByaW50ZiAiJXNc XG4iICItaGlkZGVuIj4+ICRsaWIuZXhwfgorKwkkQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9ICR7d2x9LWlucHV0ICR7d2x9JGxpYi5leHAgJGNvbXBpbGVyX2ZsYWdzICRsaWJvYmpz ICRkZXBsaWJzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8g Ii1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifiRSTSAkbGliLmV4cCcKKysKKysJIyBCb3RoIGMgYW5k IGN4eCBjb21waWxlciBzdXBwb3J0IC1ycGF0aCBkaXJlY3RseQorKwlfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLXJwYXRoICRsaWJkaXInCisrICAgICAgZmkKKysg ICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9J25vJworKyAgICAgIF9M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysgICAgICA7OworKwor KyAgICBzb2xhcmlzKikKKysgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9 JyAteiBkZWZzJworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCXdsYXJjPSck e3dsfScKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0t eiAke3dsfXRleHQgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQg LWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxp Yi5leHB+CisrCSAgJENDIC1zaGFyZWQgJHt3bH0teiAke3dsfXRleHQgJHt3bH0tTSAke3dsfSRs aWIuZXhwICR7d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKKysgICAgICBlbHNlCisrCWNhc2UgYCRDQyAtViAy PiYxYCBpbgorKwkqIkNvbXBpbGVycyA1LjAiKikKKysJICB3bGFyYz0nJworKwkgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oICRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgIF9MVF9U QUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5l eHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIu ZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSAgJExEIC1HJHthbGxvd191 bmRlZmluZWRfZmxhZ30gLU0gJGxpYi5leHAgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRsaW5rZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKwkgIDs7CisrCSopCisrCSAgd2xh cmM9JyR7d2x9JworKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MnCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAt ZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGli LmV4cH4KKysJICAkQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAk c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGli LmV4cCcKKysJICA7OworKwllc2FjCisrICAgICAgZmkKKysgICAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgY2FzZSAkaG9zdF9vcyBpbgor KyAgICAgIHNvbGFyaXMyLltbMC01XV0gfCBzb2xhcmlzMi5bWzAtNV1dLiopIDs7CisrICAgICAg KikKKysJIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5r ZXIgb3B0aW9ucywKKysJIyBidXQgdW5kZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFnJy4gIEdDQyBk aXNjYXJkcyBpdCB3aXRob3V0IGAkd2wnLAorKwkjIGJ1dCBpcyBjYXJlZnVsIGVub3VnaCBub3Qg dG8gcmVvcmRlci4KKysJIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4x PykKKysJaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJICBfTFRfVEFHVkFSKHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNl ICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKKysJZWxzZQorKwkgIF9MVF9UQUdWQVIod2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBk ZWZhdWx0ZXh0cmFjdCcKKysJZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgX0xUX1RBR1ZB UihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisrICAgICAgOzsKKysKKysgICAgc3Vub3M0KikK KysgICAgICBpZiB0ZXN0ICJ4JGhvc3RfdmVuZG9yIiA9IHhzZXF1ZW50OyB0aGVuCisrCSMgVXNl ICRDQyB0byBsaW5rIHVuZGVyIHNlcXVlbnQsIGJlY2F1c2UgaXQgdGhyb3dzIGluIHNvbWUgZXh0 cmEgLm8KKysJIyBmaWxlcyB0aGF0IG1ha2UgLmluaXQgYW5kIC5maW5pIHNlY3Rpb25zIHdvcmsu CisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oICRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQor KwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJz dGF0aWMgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGZp CisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxp YmRpcicKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKyAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsKKysKKysgICAgc3lzdjQp CisrICAgICAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKysJc25pKQorKwkgIF9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncycKKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXll cyAjIGlzIHRoaXMgcmVhbGx5IHRydWU/Pz8KKysJOzsKKysJc2llbWVucykKKysJICAjIyBMRCBp cyBsZCBpdCBtYWtlcyBhIFBMQU1MSUIKKysJICAjIyBDQyBqdXN0IG1ha2VzIGEgR3Jvc3NNb2R1 bGUuCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJICBfTFRfVEFHVkFSKHJlbG9hZF9jbWRz LCAkMSk9JyRDQyAtciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJworKwkgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfZGlyZWN0LCAkMSk9bm8KKysgICAgICAgIDs7CisrCW1vdG9yb2xhKQorKwkgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVj dCwgJDEpPW5vICNNb3Rvcm9sYSBtYW51YWwgc2F5cyB5ZXMsIGJ1dCBteSB0ZXN0cyBzYXkgdGhl eSBsaWUKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRI JworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAg ICAgOzsKKysKKysgICAgc3lzdjQuMyopCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5v CisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nLUJleHBv cnQnCisrICAgICAgOzsKKysKKysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vz ci9uZWM7IHRoZW4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwlfTFRfVEFH VkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKwlydW5wYXRoX3Zhcj1MRF9SVU5f UEFUSAorKwloYXJkY29kZV9ydW5wYXRoX3Zhcj15ZXMKKysJX0xUX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT15ZXMKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y0KnV3MiogfCBzeXN2 NU9wZW5VTklYKiB8IHN5c3Y1VW5peFdhcmU3LltbMDFdXS5bWzEwXV0qIHwgdW5peHdhcmU3KiB8 IHNjbzMuMnY1LjAuW1swMjRdXSopCisrICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxh ZywgJDEpPScke3dsfS16LHRleHQnCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVl ZF9sYywgJDEpPW5vCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9bm8KKysgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEND IC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJX0xUX1RBR1ZBUihhcmNoaXZl X2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAk e3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn CisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281 djYqKQorKyAgICAgICMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBk ZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90CisrICAgICAgIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhh dCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGliYyB0bworKyAgICAgICMgYWx3 YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3b3Vs ZAorKyAgICAgICMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUg bGQgd2UgdXNlIC16IHRleHQKKysgICAgICAjIHRob3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBzb21l IGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5kZWQKKysgICAgICAjIGFzIC16IGRl ZnMuCisrICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LHRl eHQnCisrICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16 LG5vZGVmcycKKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8K KysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1SLCRsaWJk aXInCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9Jzon CisrICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisrICAgICAgX0xU X1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tQmV4cG9ydCcKKysg ICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrICAgICAgaWYgdGVzdCAiJEdDQyIg PSB5ZXM7IHRoZW4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQg JHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JworKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3 bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9j bWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAg ZmkKKysgICAgICA7OworKworKyAgICB1dHM0KikKKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRs aW5rZXJfZmxhZ3MnCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSk9Jy1MJGxpYmRpcicKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92 YXIsICQxKT1ubworKyAgICAgIDs7CisrCisrICAgICopCisrICAgICAgX0xUX1RBR1ZBUihsZF9z aGxpYnMsICQxKT1ubworKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgaWYgdGVzdCB4JGhv c3RfdmVuZG9yID0geHNuaTsgdGhlbgorKyAgICAgIGNhc2UgJGhvc3QgaW4KKysgICAgICBzeXN2 NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQuMyogfCBzeXN2NSopCisrCV9MVF9UQUdWQVIoZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUJsYXJnZWR5bnN5bScKKysJOzsKKysgICAg ICBlc2FjCisrICAgIGZpCisrICBmaQorK10pCisrQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdWQVIo bGRfc2hsaWJzLCAkMSldKQorK3Rlc3QgIiRfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpIiA9IG5v ICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KKysKKytfTFRfVEFHVkFSKHdpdGhfZ251X2xkLCAkMSk9 JHdpdGhfZ251X2xkCisrCisrX0xUX0RFQ0woW10sIFtsaWJleHRdLCBbMF0sIFtPbGQgYXJjaGl2 ZSBzdWZmaXggKG5vcm1hbGx5ICJhIildKWRubAorK19MVF9ERUNMKFtdLCBbc2hyZXh0X2NtZHNd LCBbMV0sIFtTaGFyZWQgbGlicmFyeSBzdWZmaXggKG5vcm1hbGx5ICIuc28iKV0pZG5sCisrX0xU X0RFQ0woW10sIFtleHRyYWN0X2V4cHN5bXNfY21kc10sIFsyXSwKKysgICAgW1RoZSBjb21tYW5k cyB0byBleHRyYWN0IHRoZSBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9tIGEgc2hhcmVkIGFyY2hp dmVdKQorKworKyMKKysjIERvIHdlIG5lZWQgdG8gZXhwbGljaXRseSBsaW5rIGxpYmM/CisrIwor K2Nhc2UgIngkX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpIiBpbgorK3h8eHll cykKKysgICMgQXNzdW1lIC1sYyBzaG91bGQgYmUgYWRkZWQKKysgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzX25lZWRfbGMsICQxKT15ZXMKKysKKysgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9 IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgICBjYXNlICRfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpIGluCisrICAgIConficqKQorKyAgICAgICMgRklYTUU6IHdlIG1heSBo YXZlIHRvIGRlYWwgd2l0aCBtdWx0aS1jb21tYW5kIHNlcXVlbmNlcy4KKysgICAgICA7OworKyAg ICAnJENDICcqKQorKyAgICAgICMgVGVzdCB3aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5 IGxpbmtzIHdpdGggLWxjIHNpbmNlIG9uIHNvbWUKKysgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhh cyB0byBjb21lIGJlZm9yZSAtbGMuIElmIGdjYyBhbHJlYWR5IHBhc3NlcyAtbGMKKysgICAgICAj IHRvIGxkLCBkb24ndCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4KKysgICAgICBBQ19DQUNIRV9DSEVD Syhbd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluXSwKKysJW2x0X2N2 X11fTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSksCisrCVskUk0gY29uZnRlc3Qq CisrCWVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4 dAorKworKwlpZiBBQ19UUllfRVZBTChhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgor KwkgIHNvbmFtZT1jb25mdGVzdAorKwkgIGxpYj1jb25mdGVzdAorKwkgIGxpYm9ianM9Y29uZnRl c3QuJGFjX29iamV4dAorKwkgIGRlcGxpYnM9CisrCSAgd2w9JF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl93bCwgJDEpCisrCSAgcGljX2ZsYWc9JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKQorKwkgIGNvbXBpbGVyX2ZsYWdzPS12CisrCSAgbGlua2VyX2ZsYWdzPS12Cisr CSAgdmVyc3RyaW5nPQorKwkgIG91dHB1dF9vYmpkaXI9LgorKwkgIGxpYm5hbWU9Y29uZnRlc3QK KysJICBsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRfTFRfVEFHVkFSKGFsbG93X3VuZGVm aW5lZF9mbGFnLCAkMSkKKysJICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9 CisrCSAgaWYgQUNfVFJZX0VWQUwoX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKSAyXD5cJjEg XHwgJEdSRVAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMSkKKysJICB0aGVuCisrCSAgICBs dF9jdl9bXV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworKwkgIGVsc2UK KysJICAgIGx0X2N2X1tdX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcwor KwkgIGZpCisrCSAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSRsdF9zYXZl X2FsbG93X3VuZGVmaW5lZF9mbGFnCisrCWVsc2UKKysJICBjYXQgY29uZnRlc3QuZXJyIDE+JjUK KysJZmkKKysJJFJNIGNvbmZ0ZXN0KgorKwldKQorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzX25lZWRfbGMsICQxKT0kbHRfY3ZfW11fTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xj LCAkMSkKKysgICAgICA7OworKyAgICBlc2FjCisrICBmaQorKyAgOzsKKytlc2FjCisrCisrX0xU X1RBR0RFQ0woW2J1aWxkX2xpYnRvb2xfbmVlZF9sY10sIFthcmNoaXZlX2NtZHNfbmVlZF9sY10s IFswXSwKKysgICAgW1doZXRoZXIgb3Igbm90IHRvIGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJl ZCBsaWJyYXJpZXNdKQorK19MVF9UQUdERUNMKFthbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0 aWNfcnVudGltZXNdLAorKyAgICBbZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc10s IFswXSwKKysgICAgW1doZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93IHNoYXJlZCBsaWJzIHdoZW4g cnVudGltZSBsaWJzIGFyZSBzdGF0aWNdKQorK19MVF9UQUdERUNMKFtdLCBbZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjXSwgWzFdLAorKyAgICBbQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhp dmUgZGxvcGVuc10pCisrX0xUX1RBR0RFQ0woW10sIFt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY10s IFsxXSwKKysgICAgW0NvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgc2hhcmVkIG9iamVjdHMgZGly ZWN0bHkgZnJvbSBhcmNoaXZlc10pCisrX0xUX1RBR0RFQ0woW10sIFtjb21waWxlcl9uZWVkc19v YmplY3RdLCBbMV0sCisrICAgIFtXaGV0aGVyIHRoZSBjb21waWxlciBjb3BlcyB3aXRoIHBhc3Np bmcgbm8gb2JqZWN0cyBkaXJlY3RseV0pCisrX0xUX1RBR0RFQ0woW10sIFtvbGRfYXJjaGl2ZV9m cm9tX25ld19jbWRzXSwgWzJdLAorKyAgICBbQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZy b20gYSBzaGFyZWQgYXJjaGl2ZV0pCisrX0xUX1RBR0RFQ0woW10sIFtvbGRfYXJjaGl2ZV9mcm9t X2V4cHN5bXNfY21kc10sIFsyXSwKKysgICAgW0NyZWF0ZSBhIHRlbXBvcmFyeSBvbGQtc3R5bGUg YXJjaGl2ZSB0byBsaW5rIGluc3RlYWQgb2YgYSBzaGFyZWQgYXJjaGl2ZV0pCisrX0xUX1RBR0RF Q0woW10sIFthcmNoaXZlX2NtZHNdLCBbMl0sIFtDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgc2hh cmVkIGFyY2hpdmVdKQorK19MVF9UQUdERUNMKFtdLCBbYXJjaGl2ZV9leHBzeW1fY21kc10sIFsy XSkKKytfTFRfVEFHREVDTChbXSwgW21vZHVsZV9jbWRzXSwgWzJdLAorKyAgICBbQ29tbWFuZHMg dXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBidWlsZGlu ZworKyAgICBhIHNoYXJlZCBhcmNoaXZlLl0pCisrX0xUX1RBR0RFQ0woW10sIFttb2R1bGVfZXhw c3ltX2NtZHNdLCBbMl0pCisrX0xUX1RBR0RFQ0woW10sIFt3aXRoX2dudV9sZF0sIFsxXSwKKysg ICAgW1doZXRoZXIgd2UgYXJlIGJ1aWxkaW5nIHdpdGggR05VIGxkIG9yIG5vdF0pCisrX0xUX1RB R0RFQ0woW10sIFthbGxvd191bmRlZmluZWRfZmxhZ10sIFsxXSwKKysgICAgW0ZsYWcgdGhhdCBh bGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0 XSkKKytfTFRfVEFHREVDTChbXSwgW25vX3VuZGVmaW5lZF9mbGFnXSwgWzFdLAorKyAgICBbRmxh ZyB0aGF0IGVuZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzXSkKKytfTFRfVEFHREVDTChbXSwg W2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNdLCBbMV0sCisrICAgIFtGbGFnIHRvIGhhcmRjb2Rl ICRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KKysgICAgVGhpcyBtdXN0IHdv cmsgZXZlbiBpZiAkbGliZGlyIGRvZXMgbm90IGV4aXN0XSkKKytfTFRfVEFHREVDTChbXSwgW2hh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRdLCBbMV0sCisrICAgIFtbSWYgbGQgaXMgdXNlZCB3 aGVuIGxpbmtpbmcsIGZsYWcgdG8gaGFyZGNvZGUgJGxpYmRpciBpbnRvIGEgYmluYXJ5CisrICAg IGR1cmluZyBsaW5raW5nLiAgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiAkbGliZGlyIGRvZXMgbm90 IGV4aXN0XV0pCisrX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yXSwg WzFdLAorKyAgICBbV2hldGhlciB3ZSBuZWVkIGEgc2luZ2xlICItcnBhdGgiIGZsYWcgd2l0aCBh IHNlcGFyYXRlZCBhcmd1bWVudF0pCisrX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9kaXJlY3Rd LCBbMF0sCisrICAgIFtTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9l eHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcworKyAgICBESVIgaW50byB0aGUgcmVzdWx0aW5n IGJpbmFyeV0pCisrX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVdLCBb MF0sCisrICAgIFtTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9 IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcworKyAgICBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJp bmFyeSBhbmQgdGhlIHJlc3VsdGluZyBsaWJyYXJ5IGRlcGVuZGVuY3kgaXMKKysgICAgImFic29s dXRlIiwgaS5lIGltcG9zc2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgJHtzaGxpYnBhdGhfdmFy fSBpZiB0aGUKKysgICAgbGlicmFyeSBpcyByZWxvY2F0ZWRdKQorK19MVF9UQUdERUNMKFtdLCBb aGFyZGNvZGVfbWludXNfTF0sIFswXSwKKysgICAgW1NldCB0byAieWVzIiBpZiB1c2luZyB0aGUg LUxESVIgZmxhZyBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCisrICAgIGludG8gdGhlIHJl c3VsdGluZyBiaW5hcnldKQorK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfc2hsaWJwYXRoX3Zh cl0sIFswXSwKKysgICAgW1NldCB0byAieWVzIiBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJUiBk dXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCisrICAgIGludG8gdGhlIHJlc3VsdGluZyBiaW5h cnldKQorK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfYXV0b21hdGljXSwgWzBdLAorKyAgICBb U2V0IHRvICJ5ZXMiIGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBo YXJkY29kZXMgRElSCisrICAgIGludG8gdGhlIGxpYnJhcnkgYW5kIGFsbCBzdWJzZXF1ZW50IGxp YnJhcmllcyBhbmQgZXhlY3V0YWJsZXMgbGlua2VkCisrICAgIGFnYWluc3QgaXRdKQorK19MVF9U QUdERUNMKFtdLCBbaW5oZXJpdF9ycGF0aF0sIFswXSwKKysgICAgW1NldCB0byB5ZXMgaWYgbGlu a2VyIGFkZHMgcnVudGltZSBwYXRocyBvZiBkZXBlbmRlbnQgbGlicmFyaWVzCisrICAgIHRvIHJ1 bnRpbWUgcGF0aCBsaXN0XSkKKytfTFRfVEFHREVDTChbXSwgW2xpbmtfYWxsX2RlcGxpYnNdLCBb MF0sCisrICAgIFtXaGV0aGVyIGxpYnRvb2wgbXVzdCBsaW5rIGEgcHJvZ3JhbSBhZ2FpbnN0IGFs bCBpdHMgZGVwZW5kZW5jeSBsaWJyYXJpZXNdKQorK19MVF9UQUdERUNMKFtdLCBbZml4X3NyY2Zp bGVfcGF0aF0sIFsxXSwKKysgICAgW0ZpeCB0aGUgc2hlbGwgdmFyaWFibGUgJHNyY2ZpbGUgZm9y IHRoZSBjb21waWxlcl0pCisrX0xUX1RBR0RFQ0woW10sIFthbHdheXNfZXhwb3J0X3N5bWJvbHNd LCBbMF0sCisrICAgIFtTZXQgdG8gInllcyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWly ZWRdKQorK19MVF9UQUdERUNMKFtdLCBbZXhwb3J0X3N5bWJvbHNfY21kc10sIFsyXSwKKysgICAg W1RoZSBjb21tYW5kcyB0byBsaXN0IGV4cG9ydGVkIHN5bWJvbHNdKQorK19MVF9UQUdERUNMKFtd LCBbZXhjbHVkZV9leHBzeW1zXSwgWzFdLAorKyAgICBbU3ltYm9scyB0aGF0IHNob3VsZCBub3Qg YmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9sc10pCisrX0xUX1RBR0RFQ0woW10sIFtp bmNsdWRlX2V4cHN5bXNdLCBbMV0sCisrICAgIFtTeW1ib2xzIHRoYXQgbXVzdCBhbHdheXMgYmUg ZXhwb3J0ZWRdKQorK19MVF9UQUdERUNMKFtdLCBbcHJlbGlua19jbWRzXSwgWzJdLAorKyAgICBb Q29tbWFuZHMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHByb2dyYW1zIChhZ2FpbnN0IGxpYnJhcmll cykgd2l0aCB0ZW1wbGF0ZXNdKQorK19MVF9UQUdERUNMKFtdLCBbZmlsZV9saXN0X3NwZWNdLCBb MV0sCisrICAgIFtTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXNdKQorK2Ru bCBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAorK2RubCBfTFRfVEFHREVDTChbXSwgW3RocmVh ZF9zYWZlX2ZsYWdfc3BlY10sIFsxXSwKKytkbmwgICAgW0NvbXBpbGVyIGZsYWcgdG8gZ2VuZXJh dGUgdGhyZWFkIHNhZmUgb2JqZWN0c10pCisrXSkjIF9MVF9MSU5LRVJfU0hMSUJTCisrCisrCisr IyBfTFRfTEFOR19DX0NPTkZJRyhbVEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEMgY29tcGls ZXIgYXJlIHN1aXRhYmx5CisrIyBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1 ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHIHRvIHdyaXRlCisrIyB0aGUgY29tcGlsZXIgY29uZmln dXJhdGlvbiB0byBgbGlidG9vbCcuCisrbTRfZGVmdW4oW19MVF9MQU5HX0NfQ09ORklHXSwKKytb bTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAorK2x0X3NhdmVfQ0M9IiRDQyIKKytBQ19M QU5HX1BVU0goQykKKysKKysjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQyB0ZXN0IHNvdXJj ZXMuCisrYWNfZXh0PWMKKysKKysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQg QyB0ZXN0IHNvdXJjZXMuCisrb2JqZXh0PW8KKytfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpl eHQKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0X3Np bXBsZV9jb21waWxlX3Rlc3RfY29kZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKKysKKysjIENv ZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rlc3Rf Y29kZT0naW50IG1haW4oKXtyZXR1cm4oMCk7fScKKysKKytfTFRfVEFHX0NPTVBJTEVSCisrIyBT YXZlIHRoZSBkZWZhdWx0IGNvbXBpbGVyLCBzaW5jZSBpdCBnZXRzIG92ZXJ3cml0dGVuIHdoZW4g dGhlIG90aGVyCisrIyB0YWdzIGFyZSBiZWluZyB0ZXN0ZWQsIGFuZCBfTFRfVEFHVkFSKGNvbXBp bGVyLCBbXSkgaXMgYSBOT1AuCisrY29tcGlsZXJfREVGQVVMVD0kQ0MKKysKKysjIHNhdmUgd2Fy bmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorK19MVF9DT01QSUxFUl9CT0lM RVJQTEFURQorK19MVF9MSU5LRVJfQk9JTEVSUExBVEUKKysKKysjIyBDQVZFQVQgRU1QVE9SOgor KyMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9z LCBkbyBub3QgY2hhbmdlCisrIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUg dGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKKysjIyB3aGF0IHlvdSBhcmUgZG9p bmcuLi4KKytpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCisrICBfTFRfQ09NUElMRVJfTk9f UlRUSSgkMSkKKysgIF9MVF9DT01QSUxFUl9QSUMoJDEpCisrICBfTFRfQ09NUElMRVJfQ19PKCQx KQorKyAgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoJDEpCisrICBfTFRfTElOS0VSX1NITElCUygk MSkKKysgIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCisrICBfTFRfTElOS0VSX0hBUkRDT0RF X0xJQlBBVEgoJDEpCisrICBMVF9TWVNfRExPUEVOX1NFTEYKKysgIF9MVF9DTURfU1RSSVBMSUIK KysKKysgICMgUmVwb3J0IHdoaWNoIGxpYnJhcnkgdHlwZXMgd2lsbCBhY3R1YWxseSBiZSBidWls dAorKyAgQUNfTVNHX0NIRUNLSU5HKFtpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJp ZXNdKQorKyAgQUNfTVNHX1JFU1VMVChbJGNhbl9idWlsZF9zaGFyZWRdKQorKworKyAgQUNfTVNH X0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQorKyAgdGVzdCAi JGNhbl9idWlsZF9zaGFyZWQiID0gIm5vIiAmJiBlbmFibGVfc2hhcmVkPW5vCisrCisrICAjIE9u IEFJWCwgc2hhcmVkIGxpYnJhcmllcyBhbmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUg bmFtZXNwYWNlLCBhbmQKKysgICMgYXJlIGFsbCBidWlsdCBmcm9tIFBJQy4KKysgIGNhc2UgJGhv c3Rfb3MgaW4KKysgIGFpeDMqKQorKyAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYg ZW5hYmxlX3N0YXRpYz1ubworKyAgICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorKyAgICAg IGFyY2hpdmVfY21kcz0iJGFyY2hpdmVfY21kc35cJFJBTkxJQiBcJGxpYiIKKysgICAgICBwb3N0 aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWInCisrICAgIGZpCisrICAgIDs7CisrCisrICBhaXhb WzQtOV1dKikKKysgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhf dXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgorKyAgICAgIHRlc3QgIiRlbmFibGVfc2hh cmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisrICAgIGZpCisrICAgIDs7CisrICBlc2Fj CisrICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3NoYXJlZF0pCisrCisrICBBQ19NU0dfQ0hFQ0tJ TkcoW3doZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCisrICAjIE1ha2Ugc3VyZSBl aXRoZXIgZW5hYmxlX3NoYXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4KKysgIHRlc3QgIiRl bmFibGVfc2hhcmVkIiA9IHllcyB8fCBlbmFibGVfc3RhdGljPXllcworKyAgQUNfTVNHX1JFU1VM VChbJGVuYWJsZV9zdGF0aWNdKQorKworKyAgX0xUX0NPTkZJRygkMSkKKytmaQorK0FDX0xBTkdf UE9QCisrQ0M9IiRsdF9zYXZlX0NDIgorK10pIyBfTFRfTEFOR19DX0NPTkZJRworKworKworKyMg X0xUX0xBTkdfQ1hYX0NPTkZJRyhbVEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIGEgQysrIGNv bXBpbGVyIGFyZSBzdWl0YWJseQorKyMgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vi c2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRyB0byB3cml0ZQorKyMgdGhlIGNvbXBpbGVyIGNv bmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgorK200X2RlZnVuKFtfTFRfTEFOR19DWFhfQ09ORklH XSwKKytbbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWly ZShbX0xUX0RFQ0xfRUdSRVBdKWRubAorK2lmIHRlc3QgLW4gIiRDWFgiICYmICggdGVzdCAiWCRD WFgiICE9ICJYbm8iICYmCisrICAgICggKHRlc3QgIlgkQ1hYIiA9ICJYZysrIiAmJiBgZysrIC12 ID4vZGV2L251bGwgMj4mMWAgKSB8fAorKyAgICAodGVzdCAiWCRDWFgiICE9ICJYZysrIikpKSA7 IHRoZW4KKysgIEFDX1BST0dfQ1hYQ1BQCisrZWxzZQorKyAgX2x0X2NhdWdodF9DWFhfZXJyb3I9 eWVzCisrZmkKKysKKytBQ19MQU5HX1BVU0goQysrKQorK19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz X25lZWRfbGMsICQxKT1ubworK19MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0K KytfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCisrX0xUX1RBR1ZBUihh cmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9CisrX0xUX1RBR1ZBUihjb21waWxlcl9uZWVkc19vYmpl Y3QsICQxKT1ubworK19MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9Cisr X0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworK19MVF9UQUdWQVIoaGFyZGNvZGVf ZGlyZWN0X2Fic29sdXRlLCAkMSk9bm8KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQx KT0KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KKytfTFRfVEFH VkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT1ubworK19MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJw YXRoX3ZhciwgJDEpPXVuc3VwcG9ydGVkCisrX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMs ICQxKT1ubworK19MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPW5vCisrX0xUX1RBR1ZBUiht b2R1bGVfY21kcywgJDEpPQorK19MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9Cisr X0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgorK19MVF9UQUdWQVIob2xk X2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCisrX0xUX1RBR1ZBUihyZWxvYWRf ZmxhZywgJDEpPSRyZWxvYWRfZmxhZworK19MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0kcmVs b2FkX2NtZHMKKytfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9CisrX0xUX1RBR1ZB Uih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQorK19MVF9UQUdWQVIoZW5hYmxlX3NoYXJl ZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5vCisrCisrIyBTb3VyY2UgZmlsZSBleHRlbnNp b24gZm9yIEMrKyB0ZXN0IHNvdXJjZXMuCisrYWNfZXh0PWNwcAorKworKyMgT2JqZWN0IGZpbGUg ZXh0ZW5zaW9uIGZvciBjb21waWxlZCBDKysgdGVzdCBzb3VyY2VzLgorK29iamV4dD1vCisrX0xU X1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0CisrCisrIyBObyBzZW5zZSBpbiBydW5uaW5nIGFs bCB0aGVzZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAorKyMgdGhlIENYWCBj b21waWxlciBpc24ndCB3b3JraW5nLiAgU29tZSB2YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJl ZCkKKysjIGFyZSBjdXJyZW50bHkgYXNzdW1lZCB0byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9u IHRoaXMgcGxhdGZvcm0sCisrIyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVt IGJhc2VkIG9uIGEgbm9uLXdvcmtpbmcgY29tcGlsZXIuCisraWYgdGVzdCAiJF9sdF9jYXVnaHRf Q1hYX2Vycm9yIiAhPSB5ZXM7IHRoZW4KKysgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBj b21waWxlIHRlc3RzCisrICBsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImludCBzb21lX3Zh cmlhYmxlID0gMDsiCisrCisrICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0 cworKyAgbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbihpbnQsIGNoYXIgKltbXV0p IHsgcmV0dXJuKDApOyB9JworKworKyAgIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2Vk IGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgorKyAgX0xUX1RBR19DT01Q SUxFUgorKworKyAgIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNv ZGUKKysgIF9MVF9DT01QSUxFUl9CT0lMRVJQTEFURQorKyAgX0xUX0xJTktFUl9CT0lMRVJQTEFU RQorKworKyAgIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4K KysgIGx0X3NhdmVfQ0M9JENDCisrICBsdF9zYXZlX0xEPSRMRAorKyAgbHRfc2F2ZV9HQ0M9JEdD QworKyAgR0NDPSRHWFgKKysgIGx0X3NhdmVfd2l0aF9nbnVfbGQ9JHdpdGhfZ251X2xkCisrICBs dF9zYXZlX3BhdGhfTEQ9JGx0X2N2X3BhdGhfTEQKKysgIGlmIHRlc3QgLW4gIiR7bHRfY3ZfcHJv Z19nbnVfbGRjeHgrc2V0fSI7IHRoZW4KKysgICAgbHRfY3ZfcHJvZ19nbnVfbGQ9JGx0X2N2X3By b2dfZ251X2xkY3h4CisrICBlbHNlCisrICAgICRhc191bnNldCBsdF9jdl9wcm9nX2dudV9sZAor KyAgZmkKKysgIGlmIHRlc3QgLW4gIiR7bHRfY3ZfcGF0aF9MRENYWCtzZXR9IjsgdGhlbgorKyAg ICBsdF9jdl9wYXRoX0xEPSRsdF9jdl9wYXRoX0xEQ1hYCisrICBlbHNlCisrICAgICRhc191bnNl dCBsdF9jdl9wYXRoX0xECisrICBmaQorKyAgdGVzdCAteiAiJHtMRENYWCtzZXR9IiB8fCBMRD0k TERDWFgKKysgIENDPSR7Q1hYLSJjKysifQorKyAgY29tcGlsZXI9JENDCisrICBfTFRfVEFHVkFS KGNvbXBpbGVyLCAkMSk9JENDCisrICBfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCisrCisr ICBpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCisrICAgICMgV2UgZG9uJ3Qgd2FudCAtZm5v LWV4Y2VwdGlvbiB3aGVuIGNvbXBpbGluZyBDKysgY29kZSwgc28gc2V0IHRoZQorKyAgICAjIG5v X2J1aWx0aW5fZmxhZyBzZXBhcmF0ZWx5CisrICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVu CisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEp PScgLWZuby1idWlsdGluJworKyAgICBlbHNlCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPQorKyAgICBmaQorKworKyAgICBpZiB0ZXN0ICIk R1hYIiA9IHllczsgdGhlbgorKyAgICAgICMgU2V0IHVwIGRlZmF1bHQgR05VIEMrKyBjb25maWd1 cmF0aW9uCisrCisrICAgICAgTFRfUEFUSF9MRAorKworKyAgICAgICMgQ2hlY2sgaWYgR05VIEMr KyB1c2VzIEdOVSBsZCBhcyB0aGUgdW5kZXJseWluZyBsaW5rZXIsIHNpbmNlIHRoZQorKyAgICAg ICMgYXJjaGl2aW5nIGNvbW1hbmRzIGJlbG93IGFzc3VtZSB0aGF0IEdOVSBsZCBpcyBiZWluZyB1 c2VkLgorKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysgICAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHds JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCisrICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAg ICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9y dC1keW5hbWljJworKworKyAgICAgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IEND LCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKKysgICAgICAgICMgWFhYIEkgdGhpbmsgd2xhcmMgY2Fu IGJlIGVsaW1pbmF0ZWQgaW4gbHRjZi1jeHgsIGJ1dCBJIG5lZWQgdG8KKysgICAgICAgICMgICAg IGludmVzdGlnYXRlIGl0IGEgbGl0dGxlIGJpdCBtb3JlLiAoTU0pCisrICAgICAgICB3bGFyYz0n JHt3bH0nCisrCisrICAgICAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hv bGUtYXJjaGl2ZSBldC4gYWwuCisrICAgICAgICBpZiBldmFsICJgJENDIC1wcmludC1wcm9nLW5h bWU9bGRgIC0taGVscCAyPiYxIiB8CisrCSAgJEdSRVAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rl di9udWxsOyB0aGVuCisrICAgICAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0t bm8td2hvbGUtYXJjaGl2ZScKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgX0xUX1RBR1ZBUih3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQorKyAgICAgICAgZmkKKysgICAgICBlbHNlCisr ICAgICAgICB3aXRoX2dudV9sZD1ubworKyAgICAgICAgd2xhcmM9CisrCisrICAgICAgICAjIEEg Z2VuZXJpYyBhbmQgdmVyeSBzaW1wbGUgZGVmYXVsdCBzaGFyZWQgbGlicmFyeSBjcmVhdGlvbgor KyAgICAgICAgIyBjb21tYW5kIGZvciBHTlUgQysrIGZvciB0aGUgY2FzZSB3aGVyZSBpdCB1c2Vz IHRoZSBuYXRpdmUKKysgICAgICAgICMgbGlua2VyLCBpbnN0ZWFkIG9mIEdOVSBsZC4gIElmIHBv c3NpYmxlLCB0aGlzIHNldHRpbmcgc2hvdWxkCisrICAgICAgICAjIG92ZXJyaWRkZW4gdG8gdGFr ZSBhZHZhbnRhZ2Ugb2YgdGhlIG5hdGl2ZSBsaW5rZXIgZmVhdHVyZXMgb24KKysgICAgICAgICMg dGhlIHBsYXRmb3JtIGl0IGlzIGJlaW5nIHVzZWQgb24uCisrICAgICAgICBfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWIn CisrICAgICAgZmkKKysKKysgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVj ZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJh cmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrICAgICAgIyBsaW5r aW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRD QyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgLXYgIl5D b25maWd1cmVkIHdpdGg6IiB8ICRHUkVQICJcLUwiJworKworKyAgICBlbHNlCisrICAgICAgR1hY PW5vCisrICAgICAgd2l0aF9nbnVfbGQ9bm8KKysgICAgICB3bGFyYz0KKysgICAgZmkKKysKKysg ICAgIyBQT1JUTUU6IGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIEMrKyBs aW5rIGNoYXJhY3RlcmlzdGljcworKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhlICRj b21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10pCisrICAgIF9M VF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9eWVzCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAg ICBhaXgzKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAorKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgICAgOzsK KysgICAgICBhaXhbWzQtOV1dKikKKysgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0 OyB0aGVuCisrICAgICAgICAgICMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxp bmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QKKysgICAgICAgICAgIyBoYXZlIHRvIGRvIGFu eXRoaW5nIHNwZWNpYWwuCisrICAgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysg ICAgICAgICAgZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKKysgICAgICAgICAgbm9fZW50cnlfZmxh Zz0iIgorKyAgICAgICAgZWxzZQorKyAgICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5v CisrCisrICAgICAgICAgICMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBs aW5raW5nIG9yIG5vcm1hbAorKyAgICAgICAgICAjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0 bCBpcyBzb21ld2hlcmUgaW4gTERGTEFHUywgd2UKKysgICAgICAgICAgIyBuZWVkIHRvIGRvIHJ1 bnRpbWUgbGlua2luZy4KKysgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMjNdXXxh aXg0LltbMjNdXS4qfGFpeFtbNS05XV0qKQorKwkgICAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7 IGRvCisrCSAgICAgIGNhc2UgJGxkX2ZsYWcgaW4KKysJICAgICAgKi1icnRsKikKKysJICAgICAg ICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXllcworKwkgICAgICAgIGJyZWFrCisrCSAgICAgICAg OzsKKysJICAgICAgZXNhYworKwkgICAgZG9uZQorKwkgICAgOzsKKysgICAgICAgICAgZXNhYwor KworKyAgICAgICAgICBleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JworKyAgICAgICAgICBub19lbnRy eV9mbGFnPSctYm5vZW50cnknCisrICAgICAgICBmaQorKworKyAgICAgICAgIyBXaGVuIGxhcmdl IGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmplY3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgorKyAg ICAgICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElm IGxpbmtpbmcgYSBsaWJyYXJ5CisrICAgICAgICAjIG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJy b3IgVE9DIG92ZXJmbG93IiBhZGQgLW1taW5pbWFsLXRvYyB0bworKyAgICAgICAgIyBDWFhGTEFH Uy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBub3QKKysg ICAgICAgICMgZW5vdWdoIHRvIGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBM REZMQUdTLgorKworKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJworKyAg ICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCisrICAgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0nOicKKysgICAgICAgIF9MVF9UQUdW QVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworKyAgICAgICAgX0xUX1RBR1ZBUihmaWxlX2xp c3Rfc3BlYywgJDEpPScke3dsfS1mLCcKKysKKysgICAgICAgIGlmIHRlc3QgIiRHWFgiID0geWVz OyB0aGVuCisrICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bWzAxMl1dfGFpeDQuW1sw MTJdXS4qKQorKyAgICAgICAgICAjIFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0LjIg YW5kIGxvd2VyLCB0aGUgY2hlY2sKKysgICAgICAgICAgIyBiZWxvdyBmb3IgYnJva2VuIGNvbGxl Y3QyIGRvZXNuJ3Qgd29yayB1bmRlciA0LjMrCisrCSAgY29sbGVjdDJuYW1lPWAke0NDfSAtcHJp bnQtcHJvZy1uYW1lPWNvbGxlY3QyYAorKwkgIGlmIHRlc3QgLWYgIiRjb2xsZWN0Mm5hbWUiICYm CisrCSAgICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9uYW1l ID4vZGV2L251bGwKKysJICB0aGVuCisrCSAgICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIK KysJICAgIDoKKysJICBlbHNlCisrCSAgICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCisrCSAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVkCisrCSAgICAjIEl0IGZh aWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFsbGVkCisr CSAgICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNv ZGVfbWludXNfTAorKwkgICAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCisrCSAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKysJICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrCSAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KKysJICBmaQorKyAgICAgICAgICBl c2FjCisrICAgICAgICAgIHNoYXJlZF9mbGFnPSctc2hhcmVkJworKwkgIGlmIHRlc3QgIiRhaXhf dXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgICAgc2hhcmVkX2ZsYWc9IiRzaGFy ZWRfZmxhZyAiJyR7d2x9LUcnCisrCSAgZmkKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgIyBu b3QgdXNpbmcgZ2NjCisrICAgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVu CisrCSAgIyBWaXN1YWxBZ2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwg QmV0YSAzIFJlbGVhc2UKKysJICAjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGlu ZSBpcyBjb3JyZWN0OgorKwkgIHNoYXJlZF9mbGFnPSctRycKKysgICAgICAgICAgZWxzZQorKwkg ICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSAgICAg IHNoYXJlZF9mbGFnPScke3dsfS1HJworKwkgICAgZWxzZQorKwkgICAgICBzaGFyZWRfZmxhZz0n JHt3bH0tYk06U1JFJworKwkgICAgZmkKKysgICAgICAgICAgZmkKKysgICAgICAgIGZpCisrCisr ICAgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1i ZXhwYWxsJworKyAgICAgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9y dCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCisrICAgICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBp dCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8KKysJIyBleHBvcnQu CisrICAgICAgICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPXllcworKyAg ICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrICAg ICAgICAgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGlu ZyBmbGFncyAoLWJydGwpLAorKyAgICAgICAgICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBl cnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrICAgICAgICAgIF9MVF9U QUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nLWJlcm9rJworKyAgICAgICAgICAjIERl dGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4g ZW1wdHkKKysgICAgICAgICAgIyBleGVjdXRhYmxlLgorKyAgICAgICAgICBfTFRfU1lTX01PRFVM RV9QQVRIX0FJWAorKyAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKysKKysgICAg ICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWci JyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0g IngiOyB0aGVuIGZ1bmNfZWNob19hbGwgIiR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iOyBl bHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAkc2hhcmVk X2ZsYWciCisrICAgICAgICBlbHNlCisrICAgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBp YTY0OyB0aGVuCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9saWInCisrCSAgICBfTFRfVEFHVkFSKGFsbG93 X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ii16IG5vZGVmcyIKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21w aWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1f ZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgorKyAgICAgICAgICBlbHNlCisrCSAgICAjIERldGVybWlu ZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KKysJICAg ICMgZW1wdHkgZXhlY3V0YWJsZS4KKysJICAgIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCisrCSAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBh dGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKysJICAgICMgV2FybmluZyAtIHdpdGhvdXQgdXNp bmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCisrCSAgICAjIC1iZXJvayB3aWxs IGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisr CSAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJub3RvaycK KysJICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm9r JworKwkgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKwkgICAgICAjIFdl IG9ubHkgdXNlIHRoaXMgY29kZSBmb3IgR05VIGxkcyB0aGF0IHN1cHBvcnQgLS13aG9sZS1hcmNo aXZlLgorKwkgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7 d2x9LS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwor KwkgICAgZWxzZQorKwkgICAgICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRv IHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKKysJICAgICAgX0xUX1RBR1ZBUih3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYywgJDEpPSckY29udmVuaWVuY2UnCisrCSAgICBmaQorKwkgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworKwkgICAgIyBUaGlzIGlzIHNp bWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkCisrCSAgICAj IGxpYnJhcmllcy4KKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJc JENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRl cGxpYnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3lt Ym9scyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIv JGxpYm5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCisrICAgICAgICAgIGZp CisrICAgICAgICBmaQorKyAgICAgICAgOzsKKysKKysgICAgICBiZW9zKikKKysJaWYgJExEIC0t aGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVs bDsgdGhlbgorKwkgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBv cnRlZAorKwkgICMgSm9zZXBoIEJlY2tlbmJhY2ggPGpyYjNAYmVzdC5jb20+IHNheXMgc29tZSBy ZWxlYXNlcyBvZiBnY2MKKysJICAjIHN1cHBvcnQgLS11bmRlZmluZWQuICBUaGlzIGRlc2VydmVz IHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1FCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwllbHNlCisrCSAgX0xUX1RBR1ZBUihsZF9z aGxpYnMsICQxKT1ubworKwlmaQorKwk7OworKworKyAgICAgIGNob3J1cyopCisrICAgICAgICBj YXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICAqKQorKwkgICMgRklYTUU6IGluc2VydCBw cm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9 bm8KKysJICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgOzsKKysKKysgICAgICBjeWd3aW4q IHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisrICAgICAgICAjIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLAorKyAgICAg ICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKysgICAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrICAgICAg ICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0 LWFsbC1zeW1ib2xzJworKyAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywg JDEpPXVuc3VwcG9ydGVkCisrICAgICAgICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9s cywgJDEpPW5vCisrICAgICAgICBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNf cnVudGltZXMsICQxKT15ZXMKKysKKysgICAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQ ICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KKysgICAgICAgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0 cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2Vy IC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJworKyAgICAgICAgICAjIElmIHRoZSBleHBvcnQt c3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCisrICAgICAgICAg ICMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCisrICAg ICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdpZiB0ZXN0ICJ4YCRT RUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgorKwkgICAgY3AgJGV4cG9y dF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworKyAgICAgICAgICBlbHNlCisr CSAgICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysJICAgIGNh dCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrICAgICAg ICAgIGZpfgorKyAgICAgICAgICAkQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJG91dHB1dF9vYmpkaXIv JHNvbmFtZS5kZWYgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVu YWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWIn CisrICAgICAgICBlbHNlCisrICAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8K KysgICAgICAgIGZpCisrICAgICAgICA7OworKyAgICAgIGRhcndpbiogfCByaGFwc29keSopCisr ICAgICAgICBfTFRfREFSV0lOX0xJTktFUl9GRUFUVVJFUygkMSkKKysJOzsKKysKKysgICAgICBk Z3V4KikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIGVjKysqKQor KwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBf TFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCSAgICA7OworKyAgICAgICAgICBnaGN4KikK KysJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCSAgICAjIEZJWE1FOiBpbnNlcnQg cHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAk MSk9bm8KKysJICAgIDs7CisrICAgICAgICAgICopCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJv cGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9 bm8KKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7OworKworKyAgICAgIGZyZWVi c2RbWzEyXV0qKQorKyAgICAgICAgIyBDKysgc2hhcmVkIGxpYnJhcmllcyByZXBvcnRlZCB0byBi ZSBmYWlybHkgYnJva2VuIGJlZm9yZQorKwkjIHN3aXRjaCB0byBFTEYKKysgICAgICAgIF9MVF9U QUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICAgIDs7CisrCisrICAgICAgZnJlZWJzZC1l bGYqKQorKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisr ICAgICAgICA7OworKworKyAgICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICAgICAgICMg RnJlZUJTRCAzIGFuZCBsYXRlciB1c2UgR05VIEMrKyBhbmQgR05VIGxkIHdpdGggc3RhbmRhcmQg RUxGCisrICAgICAgICAjIGNvbnZlbnRpb25zCisrICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGli cywgJDEpPXllcworKyAgICAgICAgOzsKKysKKysgICAgICBnbnUqKQorKyAgICAgICAgOzsKKysK KysgICAgICBoYWlrdSopCisrICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck Q0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR3bCRzb25hbWUgLW8gJGxpYicKKysgICAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGli cywgJDEpPXllcworKyAgICAgICAgOzsKKysKKysgICAgICBocHV4OSopCisrICAgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRsaWJk aXInCisrICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06 CisrICAgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3ds fS1FJworKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAg ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcyAjIE5vdCBpbiB0aGUgc2Vh cmNoIFBBVEgsCisrCQkJCSAgICAgICAgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdAorKwkJCQkg ICAgICAgICAgICAgIyBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysKKysgICAgICAgIGNhc2Ug JGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIENDKikKKysgICAgICAgICAgICAjIEZJWE1FOiBp bnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICAgICAgICBfTFRfVEFHVkFS KGxkX3NobGlicywgJDEpPW5vCisrICAgICAgICAgICAgOzsKKysgICAgICAgICAgYUNDKikKKysg ICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpk aXIvJHNvbmFtZX4kQ0MgLWIgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAk bGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICAgICAgICAjIENv bW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3Rz CisrICAgICAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFu ZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrICAgICAgICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxp YnJhcnkuCisrICAgICAgICAgICAgIworKyAgICAgICAgICAgICMgVGhlcmUgZG9lc24ndCBhcHBl YXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KKysgICAgICAgICAg ICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8g c3RyaXAgdGhlbQorKyAgICAgICAgICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBk b24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysgICAgICAgICAgICAjIGRlcGVuZGVu Y2llcy4KKysgICAgICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgk Q0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEVHUkVQICJcLUwiYDsg bGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpl eHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2Vz YWM7IGRvbmU7IGZ1bmNfZWNob19hbGwgIiRsaXN0IicKKysgICAgICAgICAgICA7OworKyAgICAg ICAgICAqKQorKyAgICAgICAgICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgICAg ICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIv JHNvbmFtZX4kQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxs X2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicK KysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVy IEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJz LCAkMSk9bm8KKysgICAgICAgICAgICBmaQorKyAgICAgICAgICAgIDs7CisrICAgICAgICBlc2Fj CisrICAgICAgICA7OworKworKyAgICAgIGhwdXgxMCp8aHB1eDExKikKKysgICAgICAgIGlmIHRl c3QgJHdpdGhfZ251X2xkID0gbm87IHRoZW4KKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisrCSAgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKworKyAgICAgICAgICBjYXNlICRob3N0 X2NwdSBpbgorKyAgICAgICAgICAgIGhwcGEqNjQqfGlhNjQqKQorKyAgICAgICAgICAgICAgOzsK KysgICAgICAgICAgICAqKQorKwkgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlYywgJDEpPScke3dsfS1FJworKyAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgZXNhYwor KyAgICAgICAgZmkKKysgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgICAgIGhwcGEq NjQqfGlhNjQqKQorKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9 bm8KKysgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1u bworKyAgICAgICAgICAgIDs7CisrICAgICAgICAgICopCisrICAgICAgICAgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcworKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbWludXNfTCwgJDEpPXllcyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCisrCQkJCQkg ICAgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdAorKwkJCQkJICAgICAgICAgIyBsb2NhdGlvbiBv ZiB0aGUgbGlicmFyeS4KKysgICAgICAgICAgICA7OworKyAgICAgICAgZXNhYworKworKyAgICAg ICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgQ0MqKQorKwkgICAgIyBGSVhNRTog aW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxkX3No bGlicywgJDEpPW5vCisrCSAgICA7OworKyAgICAgICAgICBhQ0MqKQorKwkgICAgY2FzZSAkaG9z dF9jcHUgaW4KKysJICAgICAgaHBwYSo2NCopCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz JworKwkgICAgICAgIDs7CisrCSAgICAgIGlhNjQqKQorKwkgICAgICAgIF9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1 bHRycGF0aCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAgICAgICA7OworKwkgICAgICAqKQorKwkg ICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9 JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwor KwkgICAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGls ZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAjIHdoYXQgImhpZGRl biIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAg ICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgIworKwkgICAgIyBUaGVyZSBkb2Vz bid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKwkg ICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRv IHN0cmlwIHRoZW0KKysJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBn ZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJICAgICMgZGVwZW5kZW5jaWVzLgorKwkgICAg b3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29u ZnRlc3QuJG9iamV4dCAyPiYxKSB8ICRHUkVQICJcLUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRl bXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7 ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNob19h bGwgIiRsaXN0IicKKysJICAgIDs7CisrICAgICAgICAgICopCisrCSAgICBpZiB0ZXN0ICIkR1hY IiA9IHllczsgdGhlbgorKwkgICAgICBpZiB0ZXN0ICR3aXRoX2dudV9sZCA9IG5vOyB0aGVuCisr CSAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysJICAgICAgICAgIGhwcGEqNjQqKQorKwkgICAg ICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRs aWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAg ICAgICAgIDs7CisrCSAgICAgICAgICBpYTY0KikKKysJICAgICAgICAgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3 bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAg ICAgICAgICA7OworKwkgICAgICAgICAgKikKKysJICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0k c29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisr CSAgICAgICAgICAgIDs7CisrCSAgICAgICAgZXNhYworKwkgICAgICBmaQorKwkgICAgZWxzZQor KwkgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAg ICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwkgICAgZmkKKysJICAgIDs7CisrICAg ICAgICBlc2FjCisrICAgICAgICA7OworKworKyAgICAgIGludGVyaXhbWzMtOV1dKikKKysJX0xU X1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3No bGlicGF0aF92YXIsICQxKT1ubworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJX0xUX1RBR1ZBUihleHBvcnRfZHluYW1p Y19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKysJIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2Ug Y2Fubm90IGNvbXBpbGUgUElDIGJlY2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgorKwkjIEluc3RlYWQs IHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAw IGJ5CisrCSMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBp cyBhIHNsb3cgdmVyeSBtZW1vcnkKKysJIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nl c3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAorKwkjIDI1NiBLaUItYWxpZ25l ZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCisr CSMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJr KDIpIHNwYWNlLgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAk cGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFt ZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIx NDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNv bmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91 dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5E T00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKKysJOzsK KysgICAgICBpcml4NSogfCBpcml4NiopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgor KyAgICAgICAgICBDQyopCisrCSAgICAjIFNHSSBDKysKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1hbGwgLW11bHRpZ290ICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtc29uYW1l ICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVy c2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xv Y2F0aW9ucyAtbyAkbGliJworKworKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmpl Y3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAjICJDQyAtYXIiLCB3aGVyZSAi Q0MiIGlzIHRoZSBJUklYIEMrKyBjb21waWxlci4gIFRoaXMgaXMKKysJICAgICMgbmVjZXNzYXJ5 IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAorKwkgICAg IyBpbiB0aGUgYXJjaGl2ZS4KKysJICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEp PSckQ0MgLWFyIC1XUiwtdSAtbyAkb2xkbGliICRvbGRvYmpzJworKwkgICAgOzsKKysgICAgICAg ICAgKikKKysJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrCSAgICAgIGlmIHRlc3Qg IiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7 d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0t c2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9 JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJICAgICAgZWxzZQorKwkg ICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxp YiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmlu ZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAg LW8gJGxpYicKKysJICAgICAgZmkKKysJICAgIGZpCisrCSAgICBfTFRfVEFHVkFSKGxpbmtfYWxs X2RlcGxpYnMsICQxKT15ZXMKKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0k bGliZGlyJworKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAk MSk9OgorKyAgICAgICAgX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9eWVzCisrICAgICAg ICA7OworKworKyAgICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkK KysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIEtDQyopCisrCSAgICAj IEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCisrCisrCSAgICAj IEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxl CisrCSAgICAjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1l IHRoZSBsaWJyYXJ5CisrCSAgICAjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBh ZnRlciBsaW5raW5nLgorKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0ndGVtcGV4 dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbW14oKTAtOUEtWmEtent9XV1c KS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBl eHR9XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBs aWI7IG12IFwkdGVtcGxpYiAkbGliJworKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9j bWRzLCAkMSk9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW1te KCkwLTlBLVphLXp7fV1dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAkbGliIHwgJFNF RCAtZSAicy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRz b25hbWUgLW8gXCR0ZW1wbGliICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1i b2xzOyBtdiBcJHRlbXBsaWIgJGxpYicKKysJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxl ciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJICAgICMgd2hhdCAiaGlkZGVu IiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkgICAg IyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgICAjCisrCSAgICAjIFRoZXJlIGRvZXNu J3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCisrCSAg ICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8g c3RyaXAgdGhlbQorKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdl dCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKwkgICAgIyBkZXBlbmRlbmNpZXMuCisrCSAgICBv dXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0 LiRvYmpleHQgLW8gbGliY29uZnRlc3Qkc2hhcmVkX2V4dCAyPiYxIHwgJEdSRVAgImxkImA7IHJt IC1mIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQ7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsg ZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpl eHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBmdW5jX2VjaG9fYWxsICIkbGlz dCInCisrCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0n JHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKysKKysJICAgICMgQXJjaGl2ZXMg Y29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkgICAg IyAiQ0MgLUJzdGF0aWMiLCB3aGVyZSAiQ0MiIGlzIHRoZSBLQUkgQysrIGNvbXBpbGVyLgorKwkg ICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtQnN0YXRpYyAtbyAkb2xk bGliICRvbGRvYmpzJworKwkgICAgOzsKKysJICBpY3BjKiB8IGVjcGMqICkKKysJICAgICMgSW50 ZWwgQysrCisrCSAgICB3aXRoX2dudV9sZD15ZXMKKysJICAgICMgdmVyc2lvbiA4LjAgYW5kIGFi b3ZlIG9mIGljcGMgY2hva2Ugb24gbXVsdGlwbHkgZGVmaW5lZCBzeW1ib2xzCisrCSAgICAjIGlm IHdlIGFkZCAkcHJlZGVwX29iamVjdHMgYW5kICRwb3N0ZGVwX29iamVjdHMsIGhvd2V2ZXIgNy4x IGFuZAorKwkgICAgIyBlYXJsaWVyIGRvIG5vdCBhZGQgdGhlIG9iamVjdHMgdGhlbXNlbHZlcy4K KysJICAgIGNhc2UgYCRDQyAtViAyPiYxYCBpbgorKwkgICAgICAqIlZlcnNpb24gNy4iKikKKysJ ICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJCV9MVF9UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3 bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8g JGxpYicKKysJCTs7CisrCSAgICAgICopICAjIFZlcnNpb24gOC4wIG9yIG5ld2VyCisrCSAgICAg ICAgdG1wX2lkeW49CisrCSAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysJCSAgaWE2NCopIHRt cF9pZHluPScgLWlfZHluYW1pYyc7OworKwkJZXNhYworKwkgICAgICAgIF9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJCV9M VF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCciJHRtcF9pZHlu IicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29u YW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWIn CisrCQk7OworKwkgICAgZXNhYworKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9s YywgJDEpPW5vCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKysJICAgIF9MVF9UQUdWQVIo d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmUkY29udmVu aWVuY2UgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrCSAgICA7OworKyAgICAgICAgICBwZ0ND KiB8IHBnY3BwKikKKysgICAgICAgICAgICAjIFBvcnRsYW5kIEdyb3VwIEMrKyBjb21waWxlcgor KwkgICAgY2FzZSBgJENDIC1WYCBpbgorKwkgICAgKnBnQ0NcIFtbMS01XV0uKiB8ICpwZ2NwcFwg W1sxLTVdXS4qKQorKwkgICAgICBfTFRfVEFHVkFSKHByZWxpbmtfY21kcywgJDEpPSd0cGxkaXI9 VGVtcGxhdGUuZGlyfgorKwkJcm0gLXJmICR0cGxkaXJ+CisrCQkkQ0MgLS1wcmVsaW5rX29iamVj dHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGlyICRvYmpzICRsaWJvYmpzICRjb21waWxlX2Rl cGxpYnN+CisrCQljb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgYGZpbmQgJHRwbGRp ciAtbmFtZSBcKi5vIHwgc29ydCB8ICROTDJTUGAiJworKwkgICAgICBfTFRfVEFHVkFSKG9sZF9h cmNoaXZlX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBsZGly fgorKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAk b2xkb2JqcyRvbGRfZGVwbGlic34KKysJCSRBUiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJG9s ZF9kZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8IHNvcnQgfCAkTkwyU1BgfgorKwkJ JFJBTkxJQiAkb2xkbGliJworKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSd0 cGxkaXI9VGVtcGxhdGUuZGlyfgorKwkJcm0gLXJmICR0cGxkaXJ+CisrCQkkQ0MgLS1wcmVsaW5r X29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGlyICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkY29udmVuaWVuY2UgJHBvc3RkZXBfb2JqZWN0c34KKysJCSRDQyAtc2hh cmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgYGZpbmQgJHRw bGRpciAtbmFtZSBcKi5vIHwgc29ydCB8ICROTDJTUGAgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAtbyAkbGliJworKwkgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKysJ CXJtIC1yZiAkdHBsZGlyfgorKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlv bl9kaXIgJHRwbGRpciAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmll bmNlICRwb3N0ZGVwX29iamVjdHN+CisrCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8IHNvcnQg fCAkTkwyU1BgICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk e3dsfSRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9s cyAtbyAkbGliJworKwkgICAgICA7OworKwkgICAgKikgIyBWZXJzaW9uIDYgYW5kIGFib3ZlIHVz ZSB3ZWFrIHN5bWJvbHMKKysJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEND IC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIC1v ICRsaWInCisrCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgJHt3 bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkg ICAgICA7OworKwkgICAgZXNhYworKworKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBfTFRfVEFH VkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMn CisrCSAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13 aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwi JGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRv bmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1h cmNoaXZlJworKyAgICAgICAgICAgIDs7CisrCSAgY3h4KikKKysJICAgICMgQ29tcGFxIEMrKwor KwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCSAgICBfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk d2wkc29uYW1lICAtbyAkbGliICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9z eW1ib2xzJworKworKwkgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKKysJICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRpcicKKysJICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysKKysJICAgICMg Q29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlz dHMKKysJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxh Z3MgYXJlIHVzZWQgd2hlbgorKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAg ICAjCisrCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQg dGhpcyBjb21waWxlciBmcm9tCisrCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2Jq ZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQorKwkgICAgIyBmcm9tIHRoZSBvdXRw dXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKwkgICAg IyBkZXBlbmRlbmNpZXMuCisrCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9 YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgImxk ImA7IHRlbXBsaXN0PWBmdW5jX2VjaG9fYWxsICIkdGVtcGxpc3QiIHwgJFNFRCAicy9cKF4uKmxk LipcKVwoIC4qbGQgLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8g Y2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQp OzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBmdW5jX2VjaG9fYWxsICJYJGxpc3Qi IHwgJFhzZWQnCisrCSAgICA7OworKwkgIHhsKiB8IG1waXhsKiB8IGJneGwqKQorKwkgICAgIyBJ Qk0gWEwgOC4wIG9uIFBQQywgd2l0aCBHTlUgbGQKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBf TFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5 bmFtaWMnCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXFta3Nocm9i aiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25h bWUgLW8gJGxpYicKKysJICAgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9 IHh5ZXM7IHRoZW4KKysJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 J2VjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCQljYXQg JGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRp ci8kbGlibmFtZS52ZXJ+CisrCQllY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLnZlcn4KKysJCSRDQyAtcW1rc2hyb2JqICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS12ZXJzaW9uLXNjcmlwdCAk e3dsfSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJworKwkgICAgZmkKKysJICAg IDs7CisrCSAgKikKKysJICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkgICAg KlN1blwgQyopCisrCSAgICAgICMgU3VuIEMrKyA1LjkKKysJICAgICAgX0xUX1RBR1ZBUihub191 bmRlZmluZWRfZmxhZywgJDEpPScgLXpkZWZzJworKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxp YiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MnCisrCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scycKKysJICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicK KysJICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0t d2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2Vc IlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZl bmllbmNlLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJg ICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworKwkgICAgICBfTFRfVEFHVkFSKGNvbXBpbGVyX25l ZWRzX29iamVjdCwgJDEpPXllcworKworKwkgICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgc29tZXRo aW5nIGJhc2VkIG9uCisrCSAgICAgICMgJENDICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAt byBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+JjEKKysJICAgICAgIyB3b3VsZCBiZSBiZXR0ZXIu CisrCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdmdW5jX2VjaG9fYWxsJworKworKwkg ICAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0 ZWQgdXNpbmcKKysJICAgICAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysg Y29tcGlsZXIuICBUaGlzIGlzCisrCSAgICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0 YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAorKwkgICAgICAjIGluIHRoZSBhcmNoaXZl LgorKwkgICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC14YXIgLW8g JG9sZGxpYiAkb2xkb2JqcycKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICAgIDs7CisrCWVz YWMKKysJOzsKKysKKysgICAgICBseW54b3MqKQorKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHBy b3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8K KysJOzsKKysKKysgICAgICBtODhrKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIg QysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bworKwk7OworKworKyAgICAgIG12cyopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgor KyAgICAgICAgICBjeHgqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFy eSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCSAgICA7Owor KwkgICopCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQK KysJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrCWVzYWMKKysJ OzsKKysKKysgICAgICBuZXRic2QqKQorKyAgICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1F IC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KKysJICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGxpbmtlcl9mbGFncycKKysJICB3bGFy Yz0KKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGli ZGlyJworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrCSAgX0xUX1RB R1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysJZmkKKysJIyBXb3JrYXJvdW5k IHNvbWUgYnJva2VuIHByZS0xLjUgdG9vbGNoYWlucworKwlvdXRwdXRfdmVyYm9zZV9saW5rX2Nt ZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCBj b25mdGVzdC4kb2JqZXh0IHwgJFNFRCAtZSAiczotbGdjYyAtbGMgLWxnY2M6OiInCisrCTs7Cisr CisrICAgICAgKm50byogfCAqcW54KikKKysgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAk MSk9eWVzCisrCTs7CisrCisrICAgICAgb3BlbmJzZDIqKQorKyAgICAgICAgIyBDKysgc2hhcmVk IGxpYnJhcmllcyBhcmUgZmFpcmx5IGJyb2tlbgorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCisrCTs7CisrCisrICAgICAgb3BlbmJzZCopCisrCWlmIHRlc3QgLWYgL3Vzci9saWJleGVj L2xkLnNvOyB0aGVuCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysJ ICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKwkgIF9MVF9UQUdW QVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCisrCSAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkbGliJwor KwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0 aCwkbGliZGlyJworKwkgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdy ZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1w b3dlcnBjIjsgdGhlbgorKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmls ZSwkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisrCSAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjLCAkMSk9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICci JHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCisrCSAgZmkKKysJICBvdXRwdXRfdmVyYm9zZV9s aW5rX2NtZD1mdW5jX2VjaG9fYWxsCisrCWVsc2UKKysJICBfTFRfVEFHVkFSKGxkX3NobGlicywg JDEpPW5vCisrCWZpCisrCTs7CisrCisrICAgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAg ICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgS0NDKikKKysJICAgICMgS3Vj ayBhbmQgQXNzb2NpYXRlcywgSW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKKysKKysJICAgICMgS0ND IHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKKysJ ICAgICMgZW5kcyB3aXRoICIuc28iIChvciAiLnNsIiBmb3IgSFAtVVgpLCBzbyByZW5hbWUgdGhl IGxpYnJhcnkKKysJICAgICMgdG8gaXRzIHByb3BlciBuYW1lICh3aXRoIHZlcnNpb24pIGFmdGVy IGxpbmtpbmcuCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSd0ZW1wZXh0PWBl Y2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xc XFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gIiRsaWIiIHwgJFNFRCAtZSAicy9cJHt0ZW1wZXh0 fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0ZW1wbGli OyBtdiBcJHRlbXBsaWIgJGxpYicKKysKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworKwkgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKworKwkgICAgIyBBcmNoaXZlcyBjb250 YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAjIHRo ZSBLQUkgQysrIGNvbXBpbGVyLgorKwkgICAgY2FzZSAkaG9zdCBpbgorKwkgICAgICBvc2YzKikg X0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtQnN0YXRpYyAtbyAkb2xkbGli ICRvbGRvYmpzJyA7OworKwkgICAgICAqKSBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQx KT0nJENDIC1vICRvbGRsaWIgJG9sZG9ianMnIDs7CisrCSAgICBlc2FjCisrCSAgICA7OworKyAg ICAgICAgICBSQ0MqKQorKwkgICAgIyBSYXRpb25hbCBDKysgMi40LjEKKysJICAgICMgRklYTUU6 IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgX0xUX1RBR1ZBUihsZF9z aGxpYnMsICQxKT1ubworKwkgICAgOzsKKysgICAgICAgICAgY3h4KikKKysJICAgIGNhc2UgJGhv c3QgaW4KKysJICAgICAgb3NmMyopCisrCSAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmlu ZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJICAgICAg ICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZp bmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0 cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11 cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJ ICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0t cnBhdGggJHt3bH0kbGliZGlyJworKwkJOzsKKysJICAgICAgKikKKysJICAgICAgICBfTFRfVEFH VkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCisr CSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93 X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1u ICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJg IC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicK KysJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZm9yIGkgaW4g YGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3lt Ym9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lfgorKwkgICAgICAgICAgZWNobyAiLWhpZGRlbiI+ PiAkbGliLmV4cH4KKysJICAgICAgICAgICRDQyAtc2hhcmVkJGFsbG93X3VuZGVmaW5lZF9mbGFn ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4 cCAgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICItc2V0X3ZlcnNpb24gJHZlcnN0cmlu ZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxp Yn4KKysJICAgICAgICAgICRSTSAkbGliLmV4cCcKKysJICAgICAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLXJwYXRoICRsaWJkaXInCisrCQk7OworKwkgICAg ZXNhYworKworKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9 OgorKworKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBv dXRwdXQgdGhhdCBsaXN0cworKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0 IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQg bGlicmFyeS4KKysJICAgICMKKysJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3 YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KKysJICAgICMgZXhwbGljaXRseSBsaW5r aW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrCSAgICAj IGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBs aWJyYXJ5CisrCSAgICAjIGRlcGVuZGVuY2llcy4KKysJICAgIG91dHB1dF92ZXJib3NlX2xpbmtf Y21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+ JjEgfCAkR1JFUCAibGQiIHwgJEdSRVAgLXYgImxkOiJgOyB0ZW1wbGlzdD1gZnVuY19lY2hvX2Fs bCAiJHRlbXBsaXN0IiB8ICRTRUQgInMvXCheLipsZC4qXClcKCAuKmxkLiokXCkvXDEvImA7IGxp c3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0 KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2Fj OyBkb25lOyBmdW5jX2VjaG9fYWxsICIkbGlzdCInCisrCSAgICA7OworKwkgICopCisrCSAgICBp ZiB0ZXN0ICIkR1hYIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJ ICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0 X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJICAgICAgY2FzZSAkaG9zdCBpbgorKwkgICAgICAgIG9z ZjMqKQorKwkgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIk e3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkg JHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkJICA7OworKwkg ICAgICAgICopCisrCSAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAtbm9zdGRsaWIgJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYg ZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0t dXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxp YicKKysJCSAgOzsKKysJICAgICAgZXNhYworKworKwkgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKwkgICAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrCisrCSAgICAg ICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQg bGlzdHMKKysJICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFu ZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5 LgorKwkgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAt diBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAtdiAiXkNvbmZpZ3VyZWQgd2l0aDoiIHwg JEdSRVAgIlwtTCInCisrCisrCSAgICBlbHNlCisrCSAgICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCisrCSAgICBmaQorKwkgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisr ICAgICAgcHNvcyopCisrICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5 IHN1cHBvcnQKKysgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICAg IDs7CisrCisrICAgICAgc3Vub3M0KikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisr ICAgICAgICAgIENDKikKKysJICAgICMgU3VuIEMrKyA0LngKKysJICAgICMgRklYTUU6IGluc2Vy dCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT1ubworKwkgICAgOzsKKysgICAgICAgICAgbGNjKikKKysJICAgICMgTHVjaWQKKysJICAg ICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgX0xUX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwkgICAgOzsKKysgICAgICAgICAgKikKKysJICAgICMg RklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgX0xUX1RBR1ZB UihsZF9zaGxpYnMsICQxKT1ubworKwkgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7 CisrCisrICAgICAgc29sYXJpcyopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAg ICAgICAgICBDQyogfCBzdW5DQyopCisrCSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRl cmxpbmUgQysrCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywk MSk9eWVzCisrCSAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtemRlZnMn CisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcke2FsbG93X3VuZGVm aW5lZF9mbGFnfSAgLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5j YXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJICAgICAgJENDIC1HJHthbGxvd191 bmRlZmluZWRfZmxhZ30gJHt3bH0tTSAke3dsfSRsaWIuZXhwIC1oJHNvbmFtZSAtbyAkbGliICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFnc34kUk0gJGxpYi5leHAnCisrCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9z aGxpYnBhdGhfdmFyLCAkMSk9bm8KKysJICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysJICAgICAgc29s YXJpczIuW1swLTVdXSB8IHNvbGFyaXMyLltbMC01XV0uKikgOzsKKysJICAgICAgKikKKysJCSMg VGhlIGNvbXBpbGVyIGRyaXZlciB3aWxsIGNvbWJpbmUgYW5kIHJlb3JkZXIgbGlua2VyIG9wdGlv bnMsCisrCQkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLgorKwkgICAgICAgICMg U3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMgMi42IChtYXliZSAyLjUuMT8pCisrCQlfTFRfVEFHVkFS KHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Jy16IGFsbGV4dHJhY3QkY29udmVuaWVuY2Ug LXogZGVmYXVsdGV4dHJhY3QnCisrCSAgICAgICAgOzsKKysJICAgIGVzYWMKKysJICAgIF9MVF9U QUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworKworKwkgICAgb3V0cHV0X3ZlcmJvc2Vf bGlua19jbWQ9J2Z1bmNfZWNob19hbGwnCisrCisrCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcg QysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKKysJICAgICMgIkNDIC14YXIi LCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcworKwkgICAgIyBu ZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVk CisrCSAgICAjIGluIHRoZSBhcmNoaXZlLgorKwkgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCSAgICA7OworKyAgICAg ICAgICBnY3gqKQorKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKKysJICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3 bCRzb25hbWUgLW8gJGxpYicKKysKKysJICAgICMgVGhlIEMrKyBjb21waWxlciBtdXN0IGJlIHVz ZWQgdG8gY3JlYXRlIHRoZSBhcmNoaXZlLgorKwkgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAkTERGTEFHUyAtYXJjaGl2ZSAtbyAkb2xkbGliICRvbGRvYmpzJworKwkg ICAgOzsKKysgICAgICAgICAgKikKKysJICAgICMgR05VIEMrKyBjb21waWxlciB3aXRoIFNvbGFy aXMgbGlua2VyCisrCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVf bGQiID0gbm87IHRoZW4KKysJICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEp PScgJHt3bH0teiAke3dsfWRlZnMnCisrCSAgICAgIGlmICRDQyAtLXZlcnNpb24gfCAkR1JFUCAt diAnXjJcLjcnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRMREZMQUdTICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1oICR3bCRzb25hbWUgLW8gJGxpYicKKysJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhw c3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5 bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDog KjsgfTsiID4+ICRsaWIuZXhwfgorKwkJICAkQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHt3bH0tTSAk d2wkbGliLmV4cCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisrCisrCSAgICAgICAg IyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBs aXN0cworKwkgICAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBh bmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJy YXJ5LgorKwkgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZM QUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQIC12ICJeQ29uZmlndXJlZCB3aXRo OiIgfCAkR1JFUCAiXC1MIicKKysJICAgICAgZWxzZQorKwkgICAgICAgICMgZysrIDIuNyBhcHBl YXJzIHRvIHJlcXVpcmUgYC1HJyBOT1QgYC1zaGFyZWQnIG9uIHRoaXMKKysJICAgICAgICAjIHBs YXRmb3JtLgorKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAt bm9zdGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJwor KwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGds b2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwp L1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCQkg ICRDQyAtRyAtbm9zdGRsaWIgJHt3bH0tTSAkd2wkbGliLmV4cCAtbyAkbGliICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc34k Uk0gJGxpYi5leHAnCisrCisrCSAgICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHBy b2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgICAgICMgd2hhdCAiaGlkZGVu IiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkgICAg ICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgICAgIG91dHB1dF92ZXJib3Nl X2xpbmtfY21kPSckQ0MgLUcgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JF UCAtdiAiXkNvbmZpZ3VyZWQgd2l0aDoiIHwgJEdSRVAgIlwtTCInCisrCSAgICAgIGZpCisrCisr CSAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1S ICR3bCRsaWJkaXInCisrCSAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysJCXNvbGFyaXMyLltbMC01 XV0gfCBzb2xhcmlzMi5bWzAtNV1dLiopIDs7CisrCQkqKQorKwkJICBfTFRfVEFHVkFSKHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmll bmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKKysJCSAgOzsKKysJICAgICAgZXNhYwor KwkgICAgZmkKKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7OworKworKyAgICBz eXN2NCp1dzIqIHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJlNy5bWzAxXV0uW1sxMF1d KiB8IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLltbMDI0XV0qKQorKyAgICAgIF9MVF9UQUdWQVIo bm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nJHt3bH0teix0ZXh0JworKyAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf c2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJwor KworKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICBDQyopCisrCSAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVf ZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7 d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK KysJICA7OworKwkqKQorKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncycKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrICAgICAgZXNhYwor KyAgICAgIDs7CisrCisrICAgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KikKKysJIyBO b3RlOiBXZSBjYW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3 ZSBkbyBub3QKKysJIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3lt Ym9scyB1c2VkIGZyb20gbGliYyB0bworKwkjIGFsd2F5cyBiZSB1bnJlc29sdmVkLCB3aGljaCBt ZWFucyBqdXN0IGFib3V0IG5vIGxpYnJhcnkgd291bGQKKysJIyBldmVyIGxpbmsgY29ycmVjdGx5 LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAorKwkjIHRob3VnaCwg d2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5k ZWQKKysJIyBhcyAteiBkZWZzLgorKwlfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9 JyR7d2x9LXosdGV4dCcKKysJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSck e3dsfS16LG5vZGVmcycKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5v CisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrCV9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1SLCRsaWJkaXInCisrCV9M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPSc6JworKwlfTFRfVEFHVkFS KGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKysJX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19m bGFnX3NwZWMsICQxKT0nJHt3bH0tQmV4cG9ydCcKKysJcnVucGF0aF92YXI9J0xEX1JVTl9QQVRI JworKworKwljYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBDQyopCisrCSAgICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgX0xUX1RBR1ZBUihhcmNo aXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9s cyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCisrCSAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1UcHJlbGlu a19vYmplY3RzICRvbGRvYmpzfgorKwkgICAgICAnIiRfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Nt ZHMsICQxKSIKKysJICAgIF9MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0nJENDIC1UcHJlbGlu a19vYmplY3RzICRyZWxvYWRfb2Jqc34KKysJICAgICAgJyIkX0xUX1RBR1ZBUihyZWxvYWRfY21k cywgJDEpIgorKwkgICAgOzsKKysJICAqKQorKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRz LCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgs JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICAg IDs7CisrCWVzYWMKKysgICAgICA7OworKworKyAgICAgIHRhbmRlbSopCisrICAgICAgICBjYXNl ICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBOQ0MqKQorKwkgICAgIyBOb25TdG9wLVVYIE5D QyAzLjIwCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQK KysJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAgICAgICAg ICopCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJ ICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAgICAgICBlc2Fj CisrICAgICAgICA7OworKworKyAgICAgIHZ4d29ya3MqKQorKyAgICAgICAgIyBGSVhNRTogaW5z ZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrICAgICAgICBfTFRfVEFHVkFSKGxkX3No bGlicywgJDEpPW5vCisrICAgICAgICA7OworKworKyAgICAgICopCisrICAgICAgICAjIEZJWE1F OiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICAgIF9MVF9UQUdWQVIo bGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgQUNfTVNH X1JFU1VMVChbJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSldKQorKyAgICB0ZXN0ICIkX0xUX1RB R1ZBUihsZF9zaGxpYnMsICQxKSIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisrCisrICAg IF9MVF9UQUdWQVIoR0NDLCAkMSk9IiRHWFgiCisrICAgIF9MVF9UQUdWQVIoTEQsICQxKT0iJExE IgorKworKyAgICAjIyBDQVZFQVQgRU1QVE9SOgorKyAgICAjIyBUaGVyZSBpcyBubyBlbmNhcHN1 bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93aW5nIG1hY3JvcywgZG8gbm90IGNoYW5nZQorKyAgICAj IyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3Mg eW91IGtub3cgZXhhY3RseQorKyAgICAjIyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KKysgICAgX0xU X1NZU19ISURERU5fTElCREVQUygkMSkKKysgICAgX0xUX0NPTVBJTEVSX1BJQygkMSkKKysgICAg X0xUX0NPTVBJTEVSX0NfTygkMSkKKysgICAgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoJDEpCisr ICAgIF9MVF9MSU5LRVJfU0hMSUJTKCQxKQorKyAgICBfTFRfU1lTX0RZTkFNSUNfTElOS0VSKCQx KQorKyAgICBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgoJDEpCisrCisrICAgIF9MVF9DT05G SUcoJDEpCisrICBmaSAjIHRlc3QgLW4gIiRjb21waWxlciIKKysKKysgIENDPSRsdF9zYXZlX0ND CisrICBMRENYWD0kTEQKKysgIExEPSRsdF9zYXZlX0xECisrICBHQ0M9JGx0X3NhdmVfR0NDCisr ICB3aXRoX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAorKyAgbHRfY3ZfcGF0aF9MRENYWD0k bHRfY3ZfcGF0aF9MRAorKyAgbHRfY3ZfcGF0aF9MRD0kbHRfc2F2ZV9wYXRoX0xECisrICBsdF9j dl9wcm9nX2dudV9sZGN4eD0kbHRfY3ZfcHJvZ19nbnVfbGQKKysgIGx0X2N2X3Byb2dfZ251X2xk PSRsdF9zYXZlX3dpdGhfZ251X2xkCisrZmkgIyB0ZXN0ICIkX2x0X2NhdWdodF9DWFhfZXJyb3Ii ICE9IHllcworKworK0FDX0xBTkdfUE9QCisrXSkjIF9MVF9MQU5HX0NYWF9DT05GSUcKKysKKysK KysjIF9MVF9TWVNfSElEREVOX0xJQkRFUFMoW1RBR05BTUVdKQorKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrIyBGaWd1cmUgb3V0ICJoaWRkZW4iIGxpYnJhcnkgZGVwZW5k ZW5jaWVzIGZyb20gdmVyYm9zZQorKyMgY29tcGlsZXIgb3V0cHV0IHdoZW4gbGlua2luZyBhIHNo YXJlZCBsaWJyYXJ5LgorKyMgUGFyc2UgdGhlIGNvbXBpbGVyIG91dHB1dCBhbmQgZXh0cmFjdCB0 aGUgbmVjZXNzYXJ5CisrIyBvYmplY3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxhZ3MuCisr bTRfZGVmdW4oW19MVF9TWVNfSElEREVOX0xJQkRFUFNdLAorK1ttNF9yZXF1aXJlKFtfTFRfRklM RVVUSUxTX0RFRkFVTFRTXSlkbmwKKysjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgYW5k IGFmdGVyIHRoZSBvYmplY3QgYmVpbmcgbGlua2VkOgorK19MVF9UQUdWQVIocHJlZGVwX29iamVj dHMsICQxKT0KKytfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpPQorK19MVF9UQUdWQVIo cHJlZGVwcywgJDEpPQorK19MVF9UQUdWQVIocG9zdGRlcHMsICQxKT0KKytfTFRfVEFHVkFSKGNv bXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpPQorKworK2RubCB3ZSBjYW4ndCB1c2UgdGhlIGx0 X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSBoZXJlLAorK2RubCBiZWNhdXNlIGl0IGNvbnRhaW5z IGNvZGUgaW50ZW5kZWQgZm9yIGFuIGV4ZWN1dGFibGUsCisrZG5sIG5vdCBhIGxpYnJhcnkuICBJ dCdzIHBvc3NpYmxlIHdlIHNob3VsZCBsZXQgZWFjaAorK2RubCB0YWcgZGVmaW5lIGEgbmV3IGx0 Xz8/Pz9fbGlua190ZXN0X2NvZGUgdmFyaWFibGUsCisrZG5sIGJ1dCBpdCdzIG9ubHkgdXNlZCBo ZXJlLi4uCisrbTRfaWYoWyQxXSwgW10sIFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VP RgorK2ludCBhOworK3ZvaWQgZm9vICh2b2lkKSB7IGEgPSAwOyB9CisrX0xUX0VPRgorK10sIFsk MV0sIFtDWFhdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKytjbGFzcyBGb28K Kyt7CisrcHVibGljOgorKyAgRm9vICh2b2lkKSB7IGEgPSAwOyB9CisrcHJpdmF0ZToKKysgIGlu dCBhOworK307CisrX0xUX0VPRgorK10sIFskMV0sIFtGNzddLCBbY2F0ID4gY29uZnRlc3QuJGFj X2V4dCA8PF9MVF9FT0YKKysgICAgICBzdWJyb3V0aW5lIGZvbworKyAgICAgIGltcGxpY2l0IG5v bmUKKysgICAgICBpbnRlZ2VyKjQgYQorKyAgICAgIGE9MAorKyAgICAgIHJldHVybgorKyAgICAg IGVuZAorK19MVF9FT0YKKytdLCBbJDFdLCBbRkNdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8 PF9MVF9FT0YKKysgICAgICBzdWJyb3V0aW5lIGZvbworKyAgICAgIGltcGxpY2l0IG5vbmUKKysg ICAgICBpbnRlZ2VyIGEKKysgICAgICBhPTAKKysgICAgICByZXR1cm4KKysgICAgICBlbmQKKytf TFRfRU9GCisrXSwgWyQxXSwgW0dDSl0sIFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VP RgorK3B1YmxpYyBjbGFzcyBmb28geworKyAgcHJpdmF0ZSBpbnQgYTsKKysgIHB1YmxpYyB2b2lk IGJhciAodm9pZCkgeworKyAgICBhID0gMDsKKysgIH0KKyt9OworK19MVF9FT0YKKytdKQorK2Ru bCBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkKKytk bmwgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgorK2lmIEFDX1RSWV9FVkFM KGFjX2NvbXBpbGUpOyB0aGVuCisrICAjIFBhcnNlIHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4 dHJhY3QgdGhlIG5lY2Vzc2FyeQorKyAgIyBvYmplY3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkg ZmxhZ3MuCisrCisrICAjIFNlbnRpbmVsIHVzZWQgdG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIG9y IG5vdCB3ZSBhcmUgYmVmb3JlCisrICAjIHRoZSBjb25mdGVzdCBvYmplY3QgZmlsZS4KKysgIHBy ZV90ZXN0X29iamVjdF9kZXBzX2RvbmU9bm8KKysKKysgIGZvciBwIGluIGBldmFsICIkb3V0cHV0 X3ZlcmJvc2VfbGlua19jbWQiYDsgZG8KKysgICAgY2FzZSAkcCBpbgorKworKyAgICAtTCogfCAt UiogfCAtbCopCisrICAgICAgICMgU29tZSBjb21waWxlcnMgcGxhY2Ugc3BhY2UgYmV0d2VlbiAi LXtMLFJ9IiBhbmQgdGhlIHBhdGguCisrICAgICAgICMgUmVtb3ZlIHRoZSBzcGFjZS4KKysgICAg ICAgaWYgdGVzdCAkcCA9ICItTCIgfHwKKysgICAgICAgICAgdGVzdCAkcCA9ICItUiI7IHRoZW4K KysJIHByZXY9JHAKKysJIGNvbnRpbnVlCisrICAgICAgIGVsc2UKKysJIHByZXY9CisrICAgICAg IGZpCisrCisrICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9IG5v OyB0aGVuCisrCSBjYXNlICRwIGluCisrCSAtTCogfCAtUiopCisrCSAgICMgSW50ZXJuYWwgY29t cGlsZXIgbGlicmFyeSBwYXRocyBzaG91bGQgY29tZSBhZnRlciB0aG9zZQorKwkgICAjIHByb3Zp ZGVkIHRoZSB1c2VyLiAgVGhlIHBvc3RkZXBzIGFscmVhZHkgY29tZSBhZnRlciB0aGUKKysJICAg IyB1c2VyIHN1cHBsaWVkIGxpYnMgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBwcm9jZXNzIHRoZW0u CisrCSAgIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwg JDEpIjsgdGhlbgorKwkgICAgIF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAk MSk9IiR7cHJldn0ke3B9IgorKwkgICBlbHNlCisrCSAgICAgX0xUX1RBR1ZBUihjb21waWxlcl9s aWJfc2VhcmNoX3BhdGgsICQxKT0iJHtfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0 aCwgJDEpfSAke3ByZXZ9JHtwfSIKKysJICAgZmkKKysJICAgOzsKKysJICMgVGhlICItbCIgY2Fz ZSB3b3VsZCBuZXZlciBjb21lIGJlZm9yZSB0aGUgb2JqZWN0IGJlaW5nCisrCSAjIGxpbmtlZCwg c28gZG9uJ3QgYm90aGVyIGhhbmRsaW5nIHRoaXMgY2FzZS4KKysJIGVzYWMKKysgICAgICAgZWxz ZQorKwkgaWYgdGVzdCAteiAiJF9MVF9UQUdWQVIocG9zdGRlcHMsICQxKSI7IHRoZW4KKysJICAg X0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpPSIke3ByZXZ9JHtwfSIKKysJIGVsc2UKKysJICAgX0xU X1RBR1ZBUihwb3N0ZGVwcywgJDEpPSIke19MVF9UQUdWQVIocG9zdGRlcHMsICQxKX0gJHtwcmV2 fSR7cH0iCisrCSBmaQorKyAgICAgICBmaQorKyAgICAgICA7OworKworKyAgICAqLiRvYmpleHQp CisrICAgICAgICMgVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHRlc3Qgb2JqZWN0IGZpbGUgb25seSBz aG93cyB1cAorKyAgICAgICAjIG9uY2UgaW4gdGhlIGNvbXBpbGVyIG91dHB1dC4KKysgICAgICAg aWYgdGVzdCAiJHAiID0gImNvbmZ0ZXN0LiRvYmpleHQiOyB0aGVuCisrCSBwcmVfdGVzdF9vYmpl Y3RfZGVwc19kb25lPXllcworKwkgY29udGludWUKKysgICAgICAgZmkKKysKKysgICAgICAgaWYg dGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4KKysJIGlmIHRlc3Qg LXogIiRfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSkiOyB0aGVuCisrCSAgIF9MVF9UQUdW QVIocHJlZGVwX29iamVjdHMsICQxKT0iJHAiCisrCSBlbHNlCisrCSAgIF9MVF9UQUdWQVIocHJl ZGVwX29iamVjdHMsICQxKT0iJF9MVF9UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKSAkcCIKKysJ IGZpCisrICAgICAgIGVsc2UKKysJIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKHBvc3RkZXBfb2Jq ZWN0cywgJDEpIjsgdGhlbgorKwkgICBfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpPSIk cCIKKysJIGVsc2UKKysJICAgX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKT0iJF9MVF9U QUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSkgJHAiCisrCSBmaQorKyAgICAgICBmaQorKyAgICAg ICA7OworKworKyAgICAqKSA7OyAjIElnbm9yZSB0aGUgcmVzdC4KKysKKysgICAgZXNhYworKyAg ZG9uZQorKworKyAgIyBDbGVhbiB1cC4KKysgIHJtIC1mIGEub3V0IGEuZXhlCisrZWxzZQorKyAg ZWNobyAibGlidG9vbC5tNDogZXJyb3I6IHByb2JsZW0gY29tcGlsaW5nICQxIHRlc3QgcHJvZ3Jh bSIKKytmaQorKworKyRSTSAtZiBjb25mZXN0LiRvYmpleHQKKysKKysjIFBPUlRNRTogb3ZlcnJp ZGUgYWJvdmUgdGVzdCBvbiBzeXN0ZW1zIHdoZXJlIGl0IGlzIGJyb2tlbgorK200X2lmKFskMV0s IFtDWFhdLAorK1tjYXNlICRob3N0X29zIGluCisraW50ZXJpeFtbMy05XV0qKQorKyAgIyBJbnRl cml4IDMuNSBpbnN0YWxscyBjb21wbGV0ZWx5IGhvc2VkIC5sYSBmaWxlcyBmb3IgQysrLCBzbyBy YXRoZXIgdGhhbgorKyAgIyBoYWNrIGFsbCBhcm91bmQgaXQsIGxldCdzIGp1c3QgdHJ1c3QgImcr KyIgdG8gRFRSVC4KKysgIF9MVF9UQUdWQVIocHJlZGVwX29iamVjdHMsJDEpPQorKyAgX0xUX1RB R1ZBUihwb3N0ZGVwX29iamVjdHMsJDEpPQorKyAgX0xUX1RBR1ZBUihwb3N0ZGVwcywkMSk9Cisr ICA7OworKworK2xpbnV4KikKKysgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKyAg KlN1blwgQyopCisrICAgICMgU3VuIEMrKyA1LjkKKysKKysgICAgIyBUaGUgbW9yZSBzdGFuZGFy ZHMtY29uZm9ybWluZyBzdGxwb3J0NCBsaWJyYXJ5IGlzCisrICAgICMgaW5jb21wYXRpYmxlIHdp dGggdGhlIENzdGQgbGlicmFyeS4gQXZvaWQgc3BlY2lmeWluZworKyAgICAjIGl0IGlmIGl0J3Mg aW4gQ1hYRkxBR1MuIElnbm9yZSBsaWJDcnVuIGFzCisrICAgICMgLWxpYnJhcnk9c3RscG9ydDQg ZGVwZW5kcyBvbiBpdC4KKysgICAgY2FzZSAiICRDWFggJENYWEZMQUdTICIgaW4KKysgICAgKiIg LWxpYnJhcnk9c3RscG9ydDQgIiopCisrICAgICAgc29sYXJpc191c2Vfc3RscG9ydDQ9eWVzCisr ICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBpZiB0ZXN0ICIkc29sYXJpc191c2Vfc3RscG9y dDQiICE9IHllczsgdGhlbgorKyAgICAgIF9MVF9UQUdWQVIocG9zdGRlcHMsJDEpPSctbGlicmFy eT1Dc3RkIC1saWJyYXJ5PUNydW4nCisrICAgIGZpCisrICAgIDs7CisrICBlc2FjCisrICA7Owor KworK3NvbGFyaXMqKQorKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgIENDKiB8IHN1bkNDKikK KysgICAgIyBUaGUgbW9yZSBzdGFuZGFyZHMtY29uZm9ybWluZyBzdGxwb3J0NCBsaWJyYXJ5IGlz CisrICAgICMgaW5jb21wYXRpYmxlIHdpdGggdGhlIENzdGQgbGlicmFyeS4gQXZvaWQgc3BlY2lm eWluZworKyAgICAjIGl0IGlmIGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9yZSBsaWJDcnVuIGFzCisr ICAgICMgLWxpYnJhcnk9c3RscG9ydDQgZGVwZW5kcyBvbiBpdC4KKysgICAgY2FzZSAiICRDWFgg JENYWEZMQUdTICIgaW4KKysgICAgKiIgLWxpYnJhcnk9c3RscG9ydDQgIiopCisrICAgICAgc29s YXJpc191c2Vfc3RscG9ydDQ9eWVzCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICAjIEFk ZGluZyB0aGlzIHJlcXVpcmVzIGEga25vd24tZ29vZCBzZXR1cCBvZiBzaGFyZWQgbGlicmFyaWVz IGZvcgorKyAgICAjIFN1biBjb21waWxlciB2ZXJzaW9ucyBiZWZvcmUgNS42LCBlbHNlIFBJQyBv YmplY3RzIGZyb20gYW4gb2xkCisrICAgICMgYXJjaGl2ZSB3aWxsIGJlIGxpbmtlZCBpbnRvIHRo ZSBvdXRwdXQsIGxlYWRpbmcgdG8gc3VidGxlIGJ1Z3MuCisrICAgIGlmIHRlc3QgIiRzb2xhcmlz X3VzZV9zdGxwb3J0NCIgIT0geWVzOyB0aGVuCisrICAgICAgX0xUX1RBR1ZBUihwb3N0ZGVwcywk MSk9Jy1saWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKKysgICAgZmkKKysgICAgOzsKKysgIGVz YWMKKysgIDs7CisrZXNhYworK10pCisrCisrY2FzZSAiICRfTFRfVEFHVkFSKHBvc3RkZXBzLCAk MSkgIiBpbgorKyoiIC1sYyAiKikgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEp PW5vIDs7CisrZXNhYworKyBfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlycywgJDEp PQorK2lmIHRlc3QgLW4gIiR7X0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQx KX0iOyB0aGVuCisrIF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzLCAkMSk9YGVj aG8gIiAke19MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSl9IiB8ICR7U0VE fSAtZSAncyEgLUwhICFnJyAtZSAncyFeICEhJ2AKKytmaQorK19MVF9UQUdERUNMKFtdLCBbY29t cGlsZXJfbGliX3NlYXJjaF9kaXJzXSwgWzFdLAorKyAgICBbVGhlIGRpcmVjdG9yaWVzIHNlYXJj aGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNoYXJlZCBsaWJyYXJ5XSkKKytf TFRfVEFHREVDTChbXSwgW3ByZWRlcF9vYmplY3RzXSwgWzFdLAorKyAgICBbRGVwZW5kZW5jaWVz IHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvCisr ICAgIGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5XSkKKytfTFRfVEFHREVDTChbXSwgW3Bvc3RkZXBf b2JqZWN0c10sIFsxXSkKKytfTFRfVEFHREVDTChbXSwgW3ByZWRlcHNdLCBbMV0pCisrX0xUX1RB R0RFQ0woW10sIFtwb3N0ZGVwc10sIFsxXSkKKytfTFRfVEFHREVDTChbXSwgW2NvbXBpbGVyX2xp Yl9zZWFyY2hfcGF0aF0sIFsxXSwKKysgICAgW1RoZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQg aW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCisrICAgIGEgc2hhcmVkIGxp YnJhcnldKQorK10pIyBfTFRfU1lTX0hJRERFTl9MSUJERVBTCisrCisrCisrIyBfTFRfTEFOR19G NzdfQ09ORklHKFtUQUddKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEVuc3Vy ZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBGb3J0cmFuIDc3IGNvbXBp bGVyIGFyZQorKyMgc3VpdGFibHkgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2Vx dWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRworKyMgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZp Z3VyYXRpb24gdG8gYGxpYnRvb2wnLgorK200X2RlZnVuKFtfTFRfTEFOR19GNzdfQ09ORklHXSwK KytbQUNfTEFOR19QVVNIKEZvcnRyYW4gNzcpCisraWYgdGVzdCAteiAiJEY3NyIgfHwgdGVzdCAi WCRGNzciID0gIlhubyI7IHRoZW4KKysgIF9sdF9kaXNhYmxlX0Y3Nz15ZXMKKytmaQorKworK19M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworK19MVF9UQUdWQVIoYWxsb3df dW5kZWZpbmVkX2ZsYWcsICQxKT0KKytfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywg JDEpPW5vCisrX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9CisrX0xUX1RBR1ZB UihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2Rp cmVjdCwgJDEpPW5vCisrX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT1u bworK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQorK19MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPQorK19MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQorK19MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwg JDEpPW5vCisrX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT1ubworK19MVF9UQUdW QVIoaW5oZXJpdF9ycGF0aCwgJDEpPW5vCisrX0xUX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPQor K19MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9CisrX0xUX1RBR1ZBUihsaW5rX2Fs bF9kZXBsaWJzLCAkMSk9dW5rbm93bgorK19MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEp PSRvbGRfYXJjaGl2ZV9jbWRzCisrX0xUX1RBR1ZBUihyZWxvYWRfZmxhZywgJDEpPSRyZWxvYWRf ZmxhZworK19MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0kcmVsb2FkX2NtZHMKKytfTFRfVEFH VkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9CisrX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYywgJDEpPQorK19MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50 aW1lcywgJDEpPW5vCisrCisrIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIGY3NyB0ZXN0IHNv dXJjZXMuCisrYWNfZXh0PWYKKysKKysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGls ZWQgZjc3IHRlc3Qgc291cmNlcy4KKytvYmpleHQ9bworK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9 JG9iamV4dAorKworKyMgTm8gc2Vuc2UgaW4gcnVubmluZyBhbGwgdGhlc2UgdGVzdHMgaWYgd2Ug YWxyZWFkeSBkZXRlcm1pbmVkIHRoYXQKKysjIHRoZSBGNzcgY29tcGlsZXIgaXNuJ3Qgd29ya2lu Zy4gIFNvbWUgdmFyaWFibGVzIChsaWtlIGVuYWJsZV9zaGFyZWQpCisrIyBhcmUgY3VycmVudGx5 IGFzc3VtZWQgdG8gYXBwbHkgdG8gYWxsIGNvbXBpbGVycyBvbiB0aGlzIHBsYXRmb3JtLAorKyMg YW5kIHdpbGwgYmUgY29ycnVwdGVkIGJ5IHNldHRpbmcgdGhlbSBiYXNlZCBvbiBhIG5vbi13b3Jr aW5nIGNvbXBpbGVyLgorK2lmIHRlc3QgIiRfbHRfZGlzYWJsZV9GNzciICE9IHllczsgdGhlbgor KyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKKysgIGx0X3NpbXBs ZV9jb21waWxlX3Rlc3RfY29kZT0iXAorKyAgICAgIHN1YnJvdXRpbmUgdAorKyAgICAgIHJldHVy bgorKyAgICAgIGVuZAorKyIKKysKKysgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5r IHRlc3RzCisrICBsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9IlwKKysgICAgICBwcm9ncmFtIHQK KysgICAgICBlbmQKKysiCisrCisrICAjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQg Y29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCisrICBfTFRfVEFHX0NPTVBJ TEVSCisrCisrICAjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29k ZQorKyAgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisrICBfTFRfTElOS0VSX0JPSUxFUlBMQVRF CisrCisrICAjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgor KyAgbHRfc2F2ZV9DQz0iJENDIgorKyAgbHRfc2F2ZV9HQ0M9JEdDQworKyAgQ0M9JHtGNzctImY3 NyJ9CisrICBjb21waWxlcj0kQ0MKKysgIF9MVF9UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKKysg IF9MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKKysgIEdDQz0kRzc3CisrICBpZiB0ZXN0IC1u ICIkY29tcGlsZXIiOyB0aGVuCisrICAgIEFDX01TR19DSEVDS0lORyhbaWYgbGlidG9vbCBzdXBw b3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKKysgICAgQUNfTVNHX1JFU1VMVChbJGNhbl9idWlsZF9z aGFyZWRdKQorKworKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc2hhcmVk IGxpYnJhcmllc10pCisrICAgIHRlc3QgIiRjYW5fYnVpbGRfc2hhcmVkIiA9ICJubyIgJiYgZW5h YmxlX3NoYXJlZD1ubworKworKyAgICAjIE9uIEFJWCwgc2hhcmVkIGxpYnJhcmllcyBhbmQgc3Rh dGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUgbmFtZXNwYWNlLCBhbmQKKysgICAgIyBhcmUgYWxs IGJ1aWx0IGZyb20gUElDLgorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgYWl4MyopCisr ICAgICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwor KyAgICAgICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KKysgICAgICAgICAgYXJjaGl2ZV9j bWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGliIgorKyAgICAgICAgICBwb3N0aW5zdGFs bF9jbWRzPSckUkFOTElCICRsaWInCisrICAgICAgICBmaQorKyAgICAgICAgOzsKKysgICAgICBh aXhbWzQtOV1dKikKKysJaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhf dXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgorKwkgIHRlc3QgIiRlbmFibGVfc2hhcmVk IiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisrCWZpCisrICAgICAgICA7OworKyAgICBlc2Fj CisrICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc2hhcmVkXSkKKysKKysgICAgQUNfTVNHX0NI RUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXNdKQorKyAgICAjIE1ha2Ug c3VyZSBlaXRoZXIgZW5hYmxlX3NoYXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4KKysgICAg dGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCisrICAgIEFD X01TR19SRVNVTFQoWyRlbmFibGVfc3RhdGljXSkKKysKKysgICAgX0xUX1RBR1ZBUihHQ0MsICQx KT0iJEc3NyIKKysgICAgX0xUX1RBR1ZBUihMRCwgJDEpPSIkTEQiCisrCisrICAgICMjIENBVkVB VCBFTVBUT1I6CisrICAgICMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBm b2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCisrICAgICMjIHRoZSBydW5uaW5nIG9yZGVy IG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5Cisr ICAgICMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgorKyAgICBfTFRfQ09NUElMRVJfUElDKCQxKQor KyAgICBfTFRfQ09NUElMRVJfQ19PKCQxKQorKyAgICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygk MSkKKysgICAgX0xUX0xJTktFUl9TSExJQlMoJDEpCisrICAgIF9MVF9TWVNfRFlOQU1JQ19MSU5L RVIoJDEpCisrICAgIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSCgkMSkKKysKKysgICAgX0xU X0NPTkZJRygkMSkKKysgIGZpICMgdGVzdCAtbiAiJGNvbXBpbGVyIgorKworKyAgR0NDPSRsdF9z YXZlX0dDQworKyAgQ0M9IiRsdF9zYXZlX0NDIgorK2ZpICMgdGVzdCAiJF9sdF9kaXNhYmxlX0Y3 NyIgIT0geWVzCisrCisrQUNfTEFOR19QT1AKKytdKSMgX0xUX0xBTkdfRjc3X0NPTkZJRworKwor KworKyMgX0xUX0xBTkdfRkNfQ09ORklHKFtUQUddKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEZv cnRyYW4gY29tcGlsZXIgYXJlCisrIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVz IGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHCisrIyB0byB3cml0ZSB0aGUgY29t cGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCisrbTRfZGVmdW4oW19MVF9MQU5HX0ZD X0NPTkZJR10sCisrW0FDX0xBTkdfUFVTSChGb3J0cmFuKQorKworK2lmIHRlc3QgLXogIiRGQyIg fHwgdGVzdCAiWCRGQyIgPSAiWG5vIjsgdGhlbgorKyAgX2x0X2Rpc2FibGVfRkM9eWVzCisrZmkK KysKKytfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKytfTFRfVEFHVkFS KGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9CisrX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5 bWJvbHMsICQxKT1ubworK19MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPQorK19M VF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJk Y29kZV9kaXJlY3QsICQxKT1ubworK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRl LCAkMSk9bm8KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KKytf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0KKytfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KKytfTFRfVEFHVkFSKGhhcmRjb2RlX21p bnVzX0wsICQxKT1ubworK19MVF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSk9bm8KKytf TFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT1ubworK19MVF9UQUdWQVIobW9kdWxlX2NtZHMs ICQxKT0KKytfTFRfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21kcywgJDEpPQorK19MVF9UQUdWQVIo bGlua19hbGxfZGVwbGlicywgJDEpPXVua25vd24KKytfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Nt ZHMsICQxKT0kb2xkX2FyY2hpdmVfY21kcworK19MVF9UQUdWQVIocmVsb2FkX2ZsYWcsICQxKT0k cmVsb2FkX2ZsYWcKKytfTFRfVEFHVkFSKHJlbG9hZF9jbWRzLCAkMSk9JHJlbG9hZF9jbWRzCisr X0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPQorK19MVF9UQUdWQVIod2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMsICQxKT0KKytfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0 aWNfcnVudGltZXMsICQxKT1ubworKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBmYyB0 ZXN0IHNvdXJjZXMuCisrYWNfZXh0PSR7YWNfZmNfc3JjZXh0LWZ9CisrCisrIyBPYmplY3QgZmls ZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIGZjIHRlc3Qgc291cmNlcy4KKytvYmpleHQ9bworK19M VF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAorKworKyMgTm8gc2Vuc2UgaW4gcnVubmluZyBh bGwgdGhlc2UgdGVzdHMgaWYgd2UgYWxyZWFkeSBkZXRlcm1pbmVkIHRoYXQKKysjIHRoZSBGQyBj b21waWxlciBpc24ndCB3b3JraW5nLiAgU29tZSB2YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJl ZCkKKysjIGFyZSBjdXJyZW50bHkgYXNzdW1lZCB0byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9u IHRoaXMgcGxhdGZvcm0sCisrIyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVt IGJhc2VkIG9uIGEgbm9uLXdvcmtpbmcgY29tcGlsZXIuCisraWYgdGVzdCAiJF9sdF9kaXNhYmxl X0ZDIiAhPSB5ZXM7IHRoZW4KKysgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxl IHRlc3RzCisrICBsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9IlwKKysgICAgICBzdWJyb3V0 aW5lIHQKKysgICAgICByZXR1cm4KKysgICAgICBlbmQKKysiCisrCisrICAjIENvZGUgdG8gYmUg dXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworKyAgbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSJc CisrICAgICAgcHJvZ3JhbSB0CisrICAgICAgZW5kCisrIgorKworKyAgIyBsdG1haW4gb25seSB1 c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0 LgorKyAgX0xUX1RBR19DT01QSUxFUgorKworKyAgIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRl IG9mIHNpbXBsZSB0ZXN0IGNvZGUKKysgIF9MVF9DT01QSUxFUl9CT0lMRVJQTEFURQorKyAgX0xU X0xJTktFUl9CT0lMRVJQTEFURQorKworKyAgIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFt ZSB3aXRoIGFyZ3VtZW50cy4KKysgIGx0X3NhdmVfQ0M9IiRDQyIKKysgIGx0X3NhdmVfR0NDPSRH Q0MKKysgIENDPSR7RkMtImY5NSJ9CisrICBjb21waWxlcj0kQ0MKKysgIEdDQz0kYWNfY3ZfZmNf Y29tcGlsZXJfZ251CisrCisrICBfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCisrICBfTFRf Q0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCisrCisrICBpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0 aGVuCisrICAgIEFDX01TR19DSEVDS0lORyhbaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGli cmFyaWVzXSkKKysgICAgQUNfTVNHX1JFU1VMVChbJGNhbl9idWlsZF9zaGFyZWRdKQorKworKyAg ICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCisr ICAgIHRlc3QgIiRjYW5fYnVpbGRfc2hhcmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubwor KworKyAgICAjIE9uIEFJWCwgc2hhcmVkIGxpYnJhcmllcyBhbmQgc3RhdGljIGxpYnJhcmllcyB1 c2UgdGhlIHNhbWUgbmFtZXNwYWNlLCBhbmQKKysgICAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElD LgorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgYWl4MyopCisrICAgICAgICB0ZXN0ICIk ZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubworKyAgICAgICAgaWYgdGVz dCAtbiAiJFJBTkxJQiI7IHRoZW4KKysgICAgICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9j bWRzflwkUkFOTElCIFwkbGliIgorKyAgICAgICAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElC ICRsaWInCisrICAgICAgICBmaQorKyAgICAgICAgOzsKKysgICAgICBhaXhbWzQtOV1dKikKKysJ aWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5r aW5nIiA9IG5vIDsgdGhlbgorKwkgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFi bGVfc3RhdGljPW5vCisrCWZpCisrICAgICAgICA7OworKyAgICBlc2FjCisrICAgIEFDX01TR19S RVNVTFQoWyRlbmFibGVfc2hhcmVkXSkKKysKKysgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVy IHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXNdKQorKyAgICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5h YmxlX3NoYXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4KKysgICAgdGVzdCAiJGVuYWJsZV9z aGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCisrICAgIEFDX01TR19SRVNVTFQoWyRl bmFibGVfc3RhdGljXSkKKysKKysgICAgX0xUX1RBR1ZBUihHQ0MsICQxKT0iJGFjX2N2X2ZjX2Nv bXBpbGVyX2dudSIKKysgICAgX0xUX1RBR1ZBUihMRCwgJDEpPSIkTEQiCisrCisrICAgICMjIENB VkVBVCBFTVBUT1I6CisrICAgICMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRo ZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCisrICAgICMjIHRoZSBydW5uaW5nIG9y ZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5 CisrICAgICMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgorKyAgICBfTFRfU1lTX0hJRERFTl9MSUJE RVBTKCQxKQorKyAgICBfTFRfQ09NUElMRVJfUElDKCQxKQorKyAgICBfTFRfQ09NUElMRVJfQ19P KCQxKQorKyAgICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkKKysgICAgX0xUX0xJTktFUl9T SExJQlMoJDEpCisrICAgIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCisrICAgIF9MVF9MSU5L RVJfSEFSRENPREVfTElCUEFUSCgkMSkKKysKKysgICAgX0xUX0NPTkZJRygkMSkKKysgIGZpICMg dGVzdCAtbiAiJGNvbXBpbGVyIgorKworKyAgR0NDPSRsdF9zYXZlX0dDQworKyAgQ0M9IiRsdF9z YXZlX0NDIgorK2ZpICMgdGVzdCAiJF9sdF9kaXNhYmxlX0ZDIiAhPSB5ZXMKKysKKytBQ19MQU5H X1BPUAorK10pIyBfTFRfTEFOR19GQ19DT05GSUcKKysKKysKKysjIF9MVF9MQU5HX0dDSl9DT05G SUcoW1RBR10pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRW5zdXJlIHRoYXQg dGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciB0aGUgR05VIEphdmEgQ29tcGlsZXIgY29t cGlsZXIKKysjIGFyZSBzdWl0YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJz ZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHCisrIyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29u ZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCisrbTRfZGVmdW4oW19MVF9MQU5HX0dDSl9DT05GSUdd LAorK1tBQ19SRVFVSVJFKFtMVF9QUk9HX0dDSl0pZG5sCisrQUNfTEFOR19TQVZFCisrCisrIyBT b3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEphdmEgdGVzdCBzb3VyY2VzLgorK2FjX2V4dD1qYXZh CisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEphdmEgdGVzdCBzb3Vy Y2VzLgorK29iamV4dD1vCisrX0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0CisrCisrIyBD b2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKKytsdF9zaW1wbGVfY29tcGls ZV90ZXN0X2NvZGU9ImNsYXNzIGZvbyB7fSIKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1w bGUgbGluayB0ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0ncHVibGljIGNsYXNzIGNv bmZ0ZXN0IHsgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW1tdXSBhcmd2KSB7fTsgfScK KysKKysjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28g bWFrZSBzdXJlICRDQyBpcyBzZXQuCisrX0xUX1RBR19DT01QSUxFUgorKworKyMgc2F2ZSB3YXJu aW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCisrX0xUX0NPTVBJTEVSX0JPSUxF UlBMQVRFCisrX0xUX0xJTktFUl9CT0lMRVJQTEFURQorKworKyMgQWxsb3cgQ0MgdG8gYmUgYSBw cm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCisrbHRfc2F2ZV9DQz0iJENDIgorK2x0X3NhdmVf R0NDPSRHQ0MKKytHQ0M9eWVzCisrQ0M9JHtHQ0otImdjaiJ9CisrY29tcGlsZXI9JENDCisrX0xU X1RBR1ZBUihjb21waWxlciwgJDEpPSRDQworK19MVF9UQUdWQVIoTEQsICQxKT0iJExEIgorK19M VF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKKysKKysjIEdDSiBkaWQgbm90IGV4aXN0IGF0IHRo ZSB0aW1lIEdDQyBkaWRuJ3QgaW1wbGljaXRseSBsaW5rIGxpYmMgaW4uCisrX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrCisrX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9j bWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKKytfTFRfVEFHVkFSKHJlbG9hZF9mbGFnLCAkMSk9 JHJlbG9hZF9mbGFnCisrX0xUX1RBR1ZBUihyZWxvYWRfY21kcywgJDEpPSRyZWxvYWRfY21kcwor KworKyMjIENBVkVBVCBFTVBUT1I6CisrIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRo aW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysjIyB0aGUgcnVubmluZyBv cmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3Rs eQorKyMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgorK2lmIHRlc3QgLW4gIiRjb21waWxlciI7IHRo ZW4KKysgIF9MVF9DT01QSUxFUl9OT19SVFRJKCQxKQorKyAgX0xUX0NPTVBJTEVSX1BJQygkMSkK KysgIF9MVF9DT01QSUxFUl9DX08oJDEpCisrICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkK KysgIF9MVF9MSU5LRVJfU0hMSUJTKCQxKQorKyAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRI KCQxKQorKworKyAgX0xUX0NPTkZJRygkMSkKKytmaQorKworK0FDX0xBTkdfUkVTVE9SRQorKwor K0dDQz0kbHRfc2F2ZV9HQ0MKKytDQz0iJGx0X3NhdmVfQ0MiCisrXSkjIF9MVF9MQU5HX0dDSl9D T05GSUcKKysKKysKKysjIF9MVF9MQU5HX1JDX0NPTkZJRyhbVEFHXSkKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKysjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxl cyBmb3IgdGhlIFdpbmRvd3MgcmVzb3VyY2UgY29tcGlsZXIKKysjIGFyZSBzdWl0YWJseSBkZWZp bmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklH CisrIyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCisr bTRfZGVmdW4oW19MVF9MQU5HX1JDX0NPTkZJR10sCisrW0FDX1JFUVVJUkUoW0xUX1BST0dfUkNd KWRubAorK0FDX0xBTkdfU0FWRQorKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBSQyB0 ZXN0IHNvdXJjZXMuCisrYWNfZXh0PXJjCisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9y IGNvbXBpbGVkIFJDIHRlc3Qgc291cmNlcy4KKytvYmpleHQ9bworK19MVF9UQUdWQVIob2JqZXh0 LCAkMSk9JG9iamV4dAorKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRl c3RzCisrbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSdzYW1wbGUgTUVOVSB7IE1FTlVJVEVN ICImU291cCIsIDEwMCwgQ0hFQ0tFRCB9JworKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBs ZSBsaW5rIHRlc3RzCisrbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSIkbHRfc2ltcGxlX2NvbXBp bGVfdGVzdF9jb2RlIgorKworKyMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25m aWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KKytfTFRfVEFHX0NPTVBJTEVSCisr CisrIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKKytfTFRf Q09NUElMRVJfQk9JTEVSUExBVEUKKytfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisrIyBBbGxv dyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytsdF9zYXZlX0NDPSIk Q0MiCisrbHRfc2F2ZV9HQ0M9JEdDQworK0dDQz0KKytDQz0ke1JDLSJ3aW5kcmVzIn0KKytjb21w aWxlcj0kQ0MKKytfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCisrX0xUX0NDX0JBU0VOQU1F KFskY29tcGlsZXJdKQorK19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKT15 ZXMKKysKKytpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCisrICA6CisrICBfTFRfQ09ORklH KCQxKQorK2ZpCisrCisrR0NDPSRsdF9zYXZlX0dDQworK0FDX0xBTkdfUkVTVE9SRQorK0NDPSIk bHRfc2F2ZV9DQyIKKytdKSMgX0xUX0xBTkdfUkNfQ09ORklHCisrCisrCisrIyBMVF9QUk9HX0dD SgorKyMgLS0tLS0tLS0tLS0KKytBQ19ERUZVTihbTFRfUFJPR19HQ0pdLAorK1ttNF9pZmRlZihb QUNfUFJPR19HQ0pdLCBbQUNfUFJPR19HQ0pdLAorKyAgW200X2lmZGVmKFtBXVtNX1BST0dfR0NK XSwgW0FdW01fUFJPR19HQ0pdLAorKyAgICBbQUNfQ0hFQ0tfVE9PTChHQ0osIGdjaiwpCisrICAg ICAgdGVzdCAieCR7R0NKRkxBR1Mrc2V0fSIgPSB4c2V0IHx8IEdDSkZMQUdTPSItZyAtTzIiCisr ICAgICAgQUNfU1VCU1QoR0NKRkxBR1MpXSldKVtdZG5sCisrXSkKKysKKysjIE9sZCBuYW1lOgor K0FVX0FMSUFTKFtMVF9BQ19QUk9HX0dDSl0sIFtMVF9QUk9HX0dDSl0pCisrZG5sIGFjbG9jYWwt MS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbTFRfQUNfUFJPR19H Q0pdLCBbXSkKKysKKysKKysjIExUX1BST0dfUkMKKysjIC0tLS0tLS0tLS0KKytBQ19ERUZVTihb TFRfUFJPR19SQ10sCisrW0FDX0NIRUNLX1RPT0woUkMsIHdpbmRyZXMsKQorK10pCisrCisrIyBP bGQgbmFtZToKKytBVV9BTElBUyhbTFRfQUNfUFJPR19SQ10sIFtMVF9QUk9HX1JDXSkKKytkbmwg YWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtMVF9B Q19QUk9HX1JDXSwgW10pCisrCisrCisrIyBfTFRfREVDTF9FR1JFUAorKyMgLS0tLS0tLS0tLS0t LS0KKysjIElmIHdlIGRvbid0IGhhdmUgYSBuZXcgZW5vdWdoIEF1dG9jb25mIHRvIGNob29zZSB0 aGUgYmVzdCBncmVwCisrIyBhdmFpbGFibGUsIGNob29zZSB0aGUgb25lIGZpcnN0IGluIHRoZSB1 c2VyJ3MgUEFUSC4KKyttNF9kZWZ1bihbX0xUX0RFQ0xfRUdSRVBdLAorK1tBQ19SRVFVSVJFKFtB Q19QUk9HX0VHUkVQXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0ZHUkVQXSlkbmwKKyt0ZXN0 IC16ICIkR1JFUCIgJiYgR1JFUD1ncmVwCisrX0xUX0RFQ0woW10sIFtHUkVQXSwgWzFdLCBbQSBn cmVwIHByb2dyYW0gdGhhdCBoYW5kbGVzIGxvbmcgbGluZXNdKQorK19MVF9ERUNMKFtdLCBbRUdS RVBdLCBbMV0sIFtBbiBFUkUgbWF0Y2hlcl0pCisrX0xUX0RFQ0woW10sIFtGR1JFUF0sIFsxXSwg W0EgbGl0ZXJhbCBzdHJpbmcgbWF0Y2hlcl0pCisrZG5sIE5vbi1ibGVlZGluZy1lZGdlIGF1dG9j b25mIGRvZXNuJ3Qgc3Vic3QgR1JFUCwgc28gZG8gaXQgaGVyZSB0b28KKytBQ19TVUJTVChbR1JF UF0pCisrXSkKKysKKysKKysjIF9MVF9ERUNMX09CSkRVTVAKKysjIC0tLS0tLS0tLS0tLS0tCisr IyBJZiB3ZSBkb24ndCBoYXZlIGEgbmV3IGVub3VnaCBBdXRvY29uZiB0byBjaG9vc2UgdGhlIGJl c3Qgb2JqZHVtcAorKyMgYXZhaWxhYmxlLCBjaG9vc2UgdGhlIG9uZSBmaXJzdCBpbiB0aGUgdXNl cidzIFBBVEguCisrbTRfZGVmdW4oW19MVF9ERUNMX09CSkRVTVBdLAorK1tBQ19DSEVDS19UT09M KE9CSkRVTVAsIG9iamR1bXAsIGZhbHNlKQorK3Rlc3QgLXogIiRPQkpEVU1QIiAmJiBPQkpEVU1Q PW9iamR1bXAKKytfTFRfREVDTChbXSwgW09CSkRVTVBdLCBbMV0sIFtBbiBvYmplY3Qgc3ltYm9s IGR1bXBlcl0pCisrQUNfU1VCU1QoW09CSkRVTVBdKQorK10pCisrCisrCisrIyBfTFRfREVDTF9T RUQKKysjIC0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgZm9yIGEgZnVsbHktZnVuY3Rpb25hbCBzZWQg cHJvZ3JhbSwgdGhhdCB0cnVuY2F0ZXMKKysjIGFzIGZldyBjaGFyYWN0ZXJzIGFzIHBvc3NpYmxl LiAgUHJlZmVyIEdOVSBzZWQgaWYgZm91bmQuCisrbTRfZGVmdW4oW19MVF9ERUNMX1NFRF0sCisr W0FDX1BST0dfU0VECisrdGVzdCAteiAiJFNFRCIgJiYgU0VEPXNlZAorK1hzZWQ9IiRTRUQgLWUg MXMvXlgvLyIKKytfTFRfREVDTChbXSwgW1NFRF0sIFsxXSwgW0Egc2VkIHByb2dyYW0gdGhhdCBk b2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXRdKQorK19MVF9ERUNMKFtdLCBbWHNlZF0sIFsiXCRTRUQg LWUgMXMvXlgvLyJdLAorKyAgICBbU2VkIHRoYXQgaGVscHMgdXMgYXZvaWQgYWNjaWRlbnRhbGx5 IHRyaWdnZXJpbmcgZWNobygxKSBvcHRpb25zIGxpa2UgLW5dKQorK10pIyBfTFRfREVDTF9TRUQK KysKKyttNF9pZm5kZWYoW0FDX1BST0dfU0VEXSwgWworKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKyMgTk9URTogVGhpcyBtYWNy byBoYXMgYmVlbiBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbnRvICAgIworKyMgIEdOVSBBdXRv Y29uZiBhcyBBQ19QUk9HX1NFRC4gIFdoZW4gaXQgaXMgYXZhaWxhYmxlIGluICAgIworKyMgIGEg cmVsZWFzZWQgdmVyc2lvbiBvZiBBdXRvY29uZiB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgICAgIwor KyMgIG1hY3JvIGFuZCB1c2UgaXQgaW5zdGVhZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIworKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworKworK200X2RlZnVuKFtBQ19QUk9HX1NFRF0sCisrW0FDX01TR19DSEVDS0lO RyhbZm9yIGEgc2VkIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0XSkKKytBQ19DQUNIRV9W QUwobHRfY3ZfcGF0aF9TRUQsCisrWyMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQg dGVzdCBmb3Igc2VkIGFuZCBnc2VkLgorKyMgVGhlbiB1c2UgdGhhdCBsaXN0IG9mIHNlZCdzIGFz IG9uZXMgdG8gdGVzdCBmb3IgdHJ1bmNhdGlvbi4KKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVf SUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGx0X2FjX3Byb2cg aW4gc2VkIGdzZWQ7IGRvCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs ZV9leHRlbnNpb25zOyBkbworKyAgICAgIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGx0 X2FjX3Byb2ckYWNfZXhlY19leHQiOyB0aGVuCisrICAgICAgICBsdF9hY19zZWRfbGlzdD0iJGx0 X2FjX3NlZF9saXN0ICRhc19kaXIvJGx0X2FjX3Byb2ckYWNfZXhlY19leHQiCisrICAgICAgZmkK KysgICAgZG9uZQorKyAgZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrbHRfYWNfbWF4 PTAKKytsdF9hY19jb3VudD0wCisrIyBBZGQgL3Vzci94cGc0L2Jpbi9zZWQgYXMgaXQgaXMgdHlw aWNhbGx5IGZvdW5kIG9uIFNvbGFyaXMKKysjIGFsb25nIHdpdGggL2Jpbi9zZWQgdGhhdCB0cnVu Y2F0ZXMgb3V0cHV0LgorK2ZvciBsdF9hY19zZWQgaW4gJGx0X2FjX3NlZF9saXN0IC91c3IveHBn NC9iaW4vc2VkOyBkbworKyAgdGVzdCAhIC1mICRsdF9hY19zZWQgJiYgY29udGludWUKKysgIGNh dCAvZGV2L251bGwgPiBjb25mdGVzdC5pbgorKyAgbHRfYWNfY291bnQ9MAorKyAgZWNobyAkRUNI T19OICIwMTIzNDU2Nzg5JEVDSE9fQyIgPmNvbmZ0ZXN0LmluCisrICAjIENoZWNrIGZvciBHTlUg c2VkIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCisrICBpZiAiJGx0X2FjX3NlZCIgLS12 ZXJzaW9uIDI+JjEgPCAvZGV2L251bGwgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCisr ICAgIGx0X2N2X3BhdGhfU0VEPSRsdF9hY19zZWQKKysgICAgYnJlYWsKKysgIGZpCisrICB3aGls ZSB0cnVlOyBkbworKyAgICBjYXQgY29uZnRlc3QuaW4gY29uZnRlc3QuaW4gPmNvbmZ0ZXN0LnRt cAorKyAgICBtdiBjb25mdGVzdC50bXAgY29uZnRlc3QuaW4KKysgICAgY3AgY29uZnRlc3QuaW4g Y29uZnRlc3QubmwKKysgICAgZWNobyA+PmNvbmZ0ZXN0Lm5sCisrICAgICRsdF9hY19zZWQgLWUg J3MvYSQvLycgPCBjb25mdGVzdC5ubCA+Y29uZnRlc3Qub3V0IHx8IGJyZWFrCisrICAgIGNtcCAt cyBjb25mdGVzdC5vdXQgY29uZnRlc3QubmwgfHwgYnJlYWsKKysgICAgIyAxMDAwMCBjaGFycyBh cyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCisrICAgIHRlc3QgJGx0X2FjX2NvdW50IC1n dCAxMCAmJiBicmVhaworKyAgICBsdF9hY19jb3VudD1gZXhwciAkbHRfYWNfY291bnQgKyAxYAor KyAgICBpZiB0ZXN0ICRsdF9hY19jb3VudCAtZ3QgJGx0X2FjX21heDsgdGhlbgorKyAgICAgIGx0 X2FjX21heD0kbHRfYWNfY291bnQKKysgICAgICBsdF9jdl9wYXRoX1NFRD0kbHRfYWNfc2VkCisr ICAgIGZpCisrICBkb25lCisrZG9uZQorK10pCisrU0VEPSRsdF9jdl9wYXRoX1NFRAorK0FDX1NV QlNUKFtTRURdKQorK0FDX01TR19SRVNVTFQoWyRTRURdKQorK10pI0FDX1BST0dfU0VECisrXSkj bTRfaWZuZGVmCisrCisrIyBPbGQgbmFtZToKKytBVV9BTElBUyhbTFRfQUNfUFJPR19TRURdLCBb QUNfUFJPR19TRURdKQorK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToK KytkbmwgQUNfREVGVU4oW0xUX0FDX1BST0dfU0VEXSwgW10pCisrCisrCisrIyBfTFRfQ0hFQ0tf U0hFTExfRkVBVFVSRVMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRmluZCBvdXQg d2hldGhlciB0aGUgc2hlbGwgaXMgQm91cm5lIG9yIFhTSSBjb21wYXRpYmxlLAorKyMgb3IgaGFz IHNvbWUgb3RoZXIgdXNlZnVsIGZlYXR1cmVzLgorK200X2RlZnVuKFtfTFRfQ0hFQ0tfU0hFTExf RkVBVFVSRVNdLAorK1tBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3Rh bmRzIHNvbWUgWFNJIGNvbnN0cnVjdHNdKQorKyMgVHJ5IHNvbWUgWFNJIGZlYXR1cmVzCisreHNp X3NoZWxsPW5vCisrKCBfbHRfZHVtbXk9ImEvYi9jIgorKyAgdGVzdCAiJHtfbHRfZHVtbXkjIyov fSwke19sdF9kdW1teSUvKn0sIiR7X2x0X2R1bW15JSIkX2x0X2R1bW15In0sIFwKKysgICAgICA9 IGMsYS9iLCwgXAorKyAgICAmJiBldmFsICd0ZXN0ICQoKCAxICsgMSApKSAtZXEgMiBcCisrICAg ICYmIHRlc3QgIiR7I19sdF9kdW1teX0iIC1lcSA1JyApID4vZGV2L251bGwgMj4mMSBcCisrICAm JiB4c2lfc2hlbGw9eWVzCisrQUNfTVNHX1JFU1VMVChbJHhzaV9zaGVsbF0pCisrX0xUX0NPTkZJ R19MSUJUT09MX0lOSVQoW3hzaV9zaGVsbD0nJHhzaV9zaGVsbCddKQorKworK0FDX01TR19DSEVD S0lORyhbd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgIis9Il0pCisrbHRfc2hlbGxfYXBw ZW5kPW5vCisrKCBmb289YmFyOyBzZXQgZm9vIGJhejsgZXZhbCAiJFsxXSs9XCRbMl0iICYmIHRl c3QgIiRmb28iID0gYmFyYmF6ICkgXAorKyAgICA+L2Rldi9udWxsIDI+JjEgXAorKyAgJiYgbHRf c2hlbGxfYXBwZW5kPXllcworK0FDX01TR19SRVNVTFQoWyRsdF9zaGVsbF9hcHBlbmRdKQorK19M VF9DT05GSUdfTElCVE9PTF9JTklUKFtsdF9zaGVsbF9hcHBlbmQ9JyRsdF9zaGVsbF9hcHBlbmQn XSkKKysKKytpZiAoIChNQUlMPTYwOyB1bnNldCBNQUlMKSB8fCBleGl0KSA+L2Rldi9udWxsIDI+ JjE7IHRoZW4KKysgIGx0X3Vuc2V0PXVuc2V0CisrZWxzZQorKyAgbHRfdW5zZXQ9ZmFsc2UKKytm aQorK19MVF9ERUNMKFtdLCBbbHRfdW5zZXRdLCBbMF0sIFt3aGV0aGVyIHRoZSBzaGVsbCB1bmRl cnN0YW5kcyAidW5zZXQiXSlkbmwKKysKKysjIHRlc3QgRUJDRElDIG9yIEFTQ0lJCisrY2FzZSBg ZWNobyBYfHRyIFggJ1wxMDEnYCBpbgorKyBBKSAjIEFTQ0lJIGJhc2VkIHN5c3RlbQorKyAgICAj IFxuIGlzIG5vdCBpbnRlcnByZXRlZCBjb3JyZWN0bHkgYnkgU29sYXJpcyA4IC91c3IvdWNiL3Ry CisrICBsdF9TUDJOTD0ndHIgXDA0MCBcMDEyJworKyAgbHRfTkwyU1A9J3RyIFwwMTVcMDEyIFww NDBcMDQwJworKyAgOzsKKysgKikgIyBFQkNESUMgYmFzZWQgc3lzdGVtCisrICBsdF9TUDJOTD0n dHIgXDEwMCBcbicKKysgIGx0X05MMlNQPSd0ciBcclxuIFwxMDBcMTAwJworKyAgOzsKKytlc2Fj CisrX0xUX0RFQ0woW1NQMk5MXSwgW2x0X1NQMk5MXSwgWzFdLCBbdHVybiBzcGFjZXMgaW50byBu ZXdsaW5lc10pZG5sCisrX0xUX0RFQ0woW05MMlNQXSwgW2x0X05MMlNQXSwgWzFdLCBbdHVybiBu ZXdsaW5lcyBpbnRvIHNwYWNlc10pZG5sCisrXSkjIF9MVF9DSEVDS19TSEVMTF9GRUFUVVJFUwor KworKworKyMgX0xUX1BST0dfWFNJX1NIRUxMRk5TCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysjIEJvdXJuZSBhbmQgWFNJIGNvbXBhdGlibGUgdmFyaWFudHMgb2Ygc29tZSB1c2VmdWwgc2hl bGwgZnVuY3Rpb25zLgorK200X2RlZnVuKFtfTFRfUFJPR19YU0lfU0hFTExGTlNdLAorK1tjYXNl ICR4c2lfc2hlbGwgaW4KKysgIHllcykKKysgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmls ZSIKKysKKysjIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKKysj IENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRv IHRoZSByZXN1bHQsCisrIyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFDRU1F TlQuCisrZnVuY19kaXJuYW1lICgpCisreworKyAgY2FzZSAkezF9IGluCisrICAgICovKikgZnVu Y19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7CisrICAgICogICkgZnVuY19kaXJuYW1l X3Jlc3VsdD0iJHszfSIgOzsKKysgIGVzYWMKKyt9CisrCisrIyBmdW5jX2Jhc2VuYW1lIGZpbGUK KytmdW5jX2Jhc2VuYW1lICgpCisreworKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9IiR7MSMjKi99 IgorK30KKysKKysjIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgZmlsZSBhcHBlbmQgbm9uZGly X3JlcGxhY2VtZW50CisrIyBwZXJmb3JtIGZ1bmNfYmFzZW5hbWUgYW5kIGZ1bmNfZGlybmFtZSBp biBhIHNpbmdsZSBmdW5jdGlvbgorKyMgY2FsbDoKKysjICAgZGlybmFtZTogIENvbXB1dGUgdGhl IGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LAorKyMgICAgICAgICAgICAgYWRkIEFQUEVO RCB0byB0aGUgcmVzdWx0LCBvdGhlcndpc2Ugc2V0IHJlc3VsdAorKyMgICAgICAgICAgICAgdG8g Tk9ORElSX1JFUExBQ0VNRU5ULgorKyMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRm dW5jX2Rpcm5hbWVfcmVzdWx0IgorKyMgICBiYXNlbmFtZTogQ29tcHV0ZSBmaWxlbmFtZSBvZiBG SUxFLgorKyMgICAgICAgICAgICAgdmFsdWUgcmV0dW5lZCBpbiAiJGZ1bmNfYmFzZW5hbWVfcmVz dWx0IgorKyMgSW1wbGVtZW50YXRpb24gbXVzdCBiZSBrZXB0IHN5bmNocm9uaXplZCB3aXRoIGZ1 bmNfZGlybmFtZQorKyMgYW5kIGZ1bmNfYmFzZW5hbWUuIEZvciBlZmZpY2llbmN5LCB3ZSBkbyBu b3QgZGVsZWdhdGUgdG8KKysjIHRob3NlIGZ1bmN0aW9ucyBidXQgaW5zdGVhZCBkdXBsaWNhdGUg dGhlIGZ1bmN0aW9uYWxpdHkgaGVyZS4KKytmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgpCisr eworKyAgY2FzZSAkezF9IGluCisrICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8q fSR7Mn0iIDs7CisrICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKKysgIGVz YWMKKysgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyovfSIKKyt9CisrCisrIyBmdW5jX3N0 cmlwbmFtZSBwcmVmaXggc3VmZml4IG5hbWUKKysjIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9m ZiBvZiBOQU1FLgorKyMgUFJFRklYIGFuZCBTVUZGSVggbXVzdCBub3QgY29udGFpbiBnbG9iYmlu ZyBvciByZWdleCBzcGVjaWFsCisrIyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMs IGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFkaW5nCisrIyBkb3QgKGluIHdoaWNoIGNhc2Ug dGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgorK2Z1bmNfc3RyaXBuYW1lICgpCisreworKyAgIyBw ZGtzaCA1LjIuMTQgZG9lcyBub3QgZG8gJHtYJSRZfSBjb3JyZWN0bHkgaWYgYm90aCBYIGFuZCBZ IGFyZQorKyAgIyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsIHNvIGFzc2lnbiBvbmUgdG8gb3JkaW5h cnkgcGFyYW1ldGVyIGZpcnN0LgorKyAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7M30KKysgIGZ1 bmNfc3RyaXBuYW1lX3Jlc3VsdD0ke2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdCMiJHsxfSJ9CisrICBm dW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQlIiR7Mn0ifQorK30K KysKKysjIGZ1bmNfb3B0X3NwbGl0CisrZnVuY19vcHRfc3BsaXQgKCkKKyt7CisrICBmdW5jX29w dF9zcGxpdF9vcHQ9JHsxJSU9Kn0KKysgIGZ1bmNfb3B0X3NwbGl0X2FyZz0kezEjKj19CisrfQor KworKyMgZnVuY19sbzJvIG9iamVjdAorK2Z1bmNfbG8ybyAoKQorK3sKKysgIGNhc2UgJHsxfSBp bgorKyAgICAqLmxvKSBmdW5jX2xvMm9fcmVzdWx0PSR7MSUubG99LiR7b2JqZXh0fSA7OworKyAg ICAqKSAgICBmdW5jX2xvMm9fcmVzdWx0PSR7MX0gOzsKKysgIGVzYWMKKyt9CisrCisrIyBmdW5j X3hmb3JtIGxpYm9iai1vci1zb3VyY2UKKytmdW5jX3hmb3JtICgpCisreworKyAgZnVuY194Zm9y bV9yZXN1bHQ9JHsxJS4qfS5sbworK30KKysKKysjIGZ1bmNfYXJpdGggYXJpdGhtZXRpYy10ZXJt Li4uCisrZnVuY19hcml0aCAoKQorK3sKKysgIGZ1bmNfYXJpdGhfcmVzdWx0PSQoKCAkWypdICkp CisrfQorKworKyMgZnVuY19sZW4gc3RyaW5nCisrIyBTVFJJTkcgbWF5IG5vdCBzdGFydCB3aXRo IGEgaHlwaGVuLgorK2Z1bmNfbGVuICgpCisreworKyAgZnVuY19sZW5fcmVzdWx0PSR7IzF9Cisr fQorKworK19MVF9FT0YKKysgICAgOzsKKysgICopICMgQm91cm5lIGNvbXBhdGlibGUgZnVuY3Rp b25zLgorKyAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorKworKyMgZnVuY19kaXJu YW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNlbWVudAorKyMgQ29tcHV0ZSB0aGUgZGlybmFt ZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwKKysjIG90 aGVyd2lzZSBzZXQgcmVzdWx0IHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KKytmdW5jX2Rpcm5hbWUg KCkKKyt7CisrICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorKyAg ZnVuY19kaXJuYW1lX3Jlc3VsdD1gJEVDSE8gIiR7MX0iIHwgJFNFRCAiJGRpcm5hbWUiYAorKyAg aWYgdGVzdCAiWCRmdW5jX2Rpcm5hbWVfcmVzdWx0IiA9ICJYJHsxfSI7IHRoZW4KKysgICAgZnVu Y19kaXJuYW1lX3Jlc3VsdD0iJHszfSIKKysgIGVsc2UKKysgICAgZnVuY19kaXJuYW1lX3Jlc3Vs dD0iJGZ1bmNfZGlybmFtZV9yZXN1bHQkezJ9IgorKyAgZmkKKyt9CisrCisrIyBmdW5jX2Jhc2Vu YW1lIGZpbGUKKytmdW5jX2Jhc2VuYW1lICgpCisreworKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9 YCRFQ0hPICIkezF9IiB8ICRTRUQgIiRiYXNlbmFtZSJgCisrfQorKworK2RubCBmdW5jX2Rpcm5h bWVfYW5kX2Jhc2VuYW1lCisrZG5sIEEgcG9ydGFibGUgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9u IGlzIGFscmVhZHkgZGVmaW5lZCBpbiBnZW5lcmFsLm00c2gKKytkbmwgc28gdGhlcmUgaXMgbm8g bmVlZCBmb3IgaXQgaGVyZS4KKysKKysjIGZ1bmNfc3RyaXBuYW1lIHByZWZpeCBzdWZmaXggbmFt ZQorKyMgc3RyaXAgUFJFRklYIGFuZCBTVUZGSVggb2ZmIG9mIE5BTUUuCisrIyBQUkVGSVggYW5k IFNVRkZJWCBtdXN0IG5vdCBjb250YWluIGdsb2JiaW5nIG9yIHJlZ2V4IHNwZWNpYWwKKysjIGNo YXJhY3RlcnMsIGhhc2hlcywgcGVyY2VudCBzaWducywgYnV0IFNVRkZJWCBtYXkgY29udGFpbiBh IGxlYWRpbmcKKysjIGRvdCAoaW4gd2hpY2ggY2FzZSB0aGF0IG1hdGNoZXMgb25seSBhIGRvdCku CisrIyBmdW5jX3N0cmlwX3N1ZmZpeCBwcmVmaXggbmFtZQorK2Z1bmNfc3RyaXBuYW1lICgpCisr eworKyAgY2FzZSAkezJ9IGluCisrICAgIC4qKSBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9YCRFQ0hP ICIkezN9IiB8ICRTRUQgInMlXiR7MX0lJTsgcyVcXFxcJHsyfVwkJSUiYDs7CisrICAgICopICBm dW5jX3N0cmlwbmFtZV9yZXN1bHQ9YCRFQ0hPICIkezN9IiB8ICRTRUQgInMlXiR7MX0lJTsgcyUk ezJ9XCQlJSJgOzsKKysgIGVzYWMKKyt9CisrCisrIyBzZWQgc2NyaXB0czoKKytteV9zZWRfbG9u Z19vcHQ9JzFzL15cKC1bW149XV0qXCk9LiovXDEvO3EnCisrbXlfc2VkX2xvbmdfYXJnPScxcy9e LVtbXj1dXSo9Ly8nCisrCisrIyBmdW5jX29wdF9zcGxpdAorK2Z1bmNfb3B0X3NwbGl0ICgpCisr eworKyAgZnVuY19vcHRfc3BsaXRfb3B0PWAkRUNITyAiJHsxfSIgfCAkU0VEICIkbXlfc2VkX2xv bmdfb3B0ImAKKysgIGZ1bmNfb3B0X3NwbGl0X2FyZz1gJEVDSE8gIiR7MX0iIHwgJFNFRCAiJG15 X3NlZF9sb25nX2FyZyJgCisrfQorKworKyMgZnVuY19sbzJvIG9iamVjdAorK2Z1bmNfbG8ybyAo KQorK3sKKysgIGZ1bmNfbG8yb19yZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRTRUQgIiRsbzJvImAK Kyt9CisrCisrIyBmdW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKKytmdW5jX3hmb3JtICgpCisr eworKyAgZnVuY194Zm9ybV9yZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRTRUQgJ3MvXC5bW14uXV0q JC8ubG8vJ2AKKyt9CisrCisrIyBmdW5jX2FyaXRoIGFyaXRobWV0aWMtdGVybS4uLgorK2Z1bmNf YXJpdGggKCkKKyt7CisrICBmdW5jX2FyaXRoX3Jlc3VsdD1gZXhwciAiJFtAXSJgCisrfQorKwor KyMgZnVuY19sZW4gc3RyaW5nCisrIyBTVFJJTkcgbWF5IG5vdCBzdGFydCB3aXRoIGEgaHlwaGVu LgorK2Z1bmNfbGVuICgpCisreworKyAgZnVuY19sZW5fcmVzdWx0PWBleHByICIkWzFdIiA6ICIu KiIgMj4vZGV2L251bGwgfHwgZWNobyAkbWF4X2NtZF9sZW5gCisrfQorKworK19MVF9FT0YKKytl c2FjCisrCisrY2FzZSAkbHRfc2hlbGxfYXBwZW5kIGluCisrICB5ZXMpCisrICAgIGNhdCA8PCBc X0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisrCisrIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUKKysjIEFw cGVuZCBWQUxVRSB0byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KKytmdW5jX2FwcGVu ZCAoKQorK3sKKysgIGV2YWwgIiRbMV0rPVwkWzJdIgorK30KKytfTFRfRU9GCisrICAgIDs7Cisr ICAqKQorKyAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorKworKyMgZnVuY19hcHBl bmQgdmFyIHZhbHVlCisrIyBBcHBlbmQgVkFMVUUgdG8gdGhlIGVuZCBvZiBzaGVsbCB2YXJpYWJs ZSBWQVIuCisrZnVuY19hcHBlbmQgKCkKKyt7CisrICBldmFsICIkWzFdPVwkJFsxXVwkWzJdIgor K30KKysKKytfTFRfRU9GCisrICAgIDs7CisrICBlc2FjCisrXSkKK2RpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9jb25maWcvbHRtYWluLnNoIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHRt YWluLnNoCistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0bWFpbi5zaAkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcv bHRtYWluLnNoCTIwMTEtMDItMDggMjI6Mzk6NDQuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsx LDg3NDUgQEAKKysjIEdlbmVyYXRlZCBmcm9tIGx0bWFpbi5tNHNoLgorKworKyMgbGlidG9vbCAo R05VIGxpYnRvb2wpIDIuMi4xMAorKyMgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCA8Z29y ZEBnbnUuYWkubWl0LmVkdT4sIDE5OTYKKysKKysjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5Nywg MTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwKKysjIDIwMDcs IDIwMDgsIDIwMDksIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlz IGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMu ICBUaGVyZSBpcyBOTworKyMgd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrIyBHTlUgTGlidG9vbCBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cisr IyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisrIworKyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UsCisrIyBpZiB5b3UgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFy dCBvZiBhIHByb2dyYW0gb3IgbGlicmFyeSB0aGF0CisrIyBpcyBidWlsdCB1c2luZyBHTlUgTGli dG9vbCwgeW91IG1heSBpbmNsdWRlIHRoaXMgZmlsZSB1bmRlciB0aGUKKysjIHNhbWUgZGlzdHJp YnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgor KyMKKysjIEdOVSBMaWJ0b29sIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsIGJ1dAorKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysjIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCBH TlUgTGlidG9vbDsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIGEgY29weQorKyMgY2Fu IGJlIGRvd25sb2FkZWQgZnJvbSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWws CisrIyBvciBvYnRhaW5lZCBieSB3cml0aW5nIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4sCisrIyA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B IDAyMTEwLTEzMDEsIFVTQS4KKysKKysjIFVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gW01P REUtQVJHXS4uLgorKyMKKysjIFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGlicmFyeS1idWlsZGluZyBz dXBwb3J0IHNlcnZpY2VzLgorKyMKKysjICAgICAgIC0tY29uZmlnICAgICAgICAgICAgIHNob3cg YWxsIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzCisrIyAgICAgICAtLWRlYnVnICAgICAgICAgICAg ICBlbmFibGUgdmVyYm9zZSBzaGVsbCB0cmFjaW5nCisrIyAgIC1uLCAtLWRyeS1ydW4gICAgICAg ICAgICBkaXNwbGF5IGNvbW1hbmRzIHdpdGhvdXQgbW9kaWZ5aW5nIGFueSBmaWxlcworKyMgICAg ICAgLS1mZWF0dXJlcyAgICAgICAgICAgZGlzcGxheSBiYXNpYyBjb25maWd1cmF0aW9uIGluZm9y bWF0aW9uIGFuZCBleGl0CisrIyAgICAgICAtLW1vZGU9TU9ERSAgICAgICAgICB1c2Ugb3BlcmF0 aW9uIG1vZGUgTU9ERQorKyMgICAgICAgLS1wcmVzZXJ2ZS1kdXAtZGVwcyAgZG9uJ3QgcmVtb3Zl IGR1cGxpY2F0ZSBkZXBlbmRlbmN5IGxpYnJhcmllcworKyMgICAgICAgLS1xdWlldCwgLS1zaWxl bnQgICAgZG9uJ3QgcHJpbnQgaW5mb3JtYXRpb25hbCBtZXNzYWdlcworKyMgICAgICAgLS1uby1x dWlldCwgLS1uby1zaWxlbnQKKysjICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IGlu Zm9ybWF0aW9uYWwgbWVzc2FnZXMgKGRlZmF1bHQpCisrIyAgICAgICAtLXRhZz1UQUcgICAgICAg ICAgICB1c2UgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZnJvbSB0YWcgVEFHCisrIyAgIC12LCAt LXZlcmJvc2UgICAgICAgICAgICBwcmludCBtb3JlIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMgdGhh biBkZWZhdWx0CisrIyAgICAgICAtLW5vLXZlcmJvc2UgICAgICAgICBkb24ndCBwcmludCB0aGUg ZXh0cmEgaW5mb3JtYXRpb25hbCBtZXNzYWdlcworKyMgICAgICAgLS12ZXJzaW9uICAgICAgICAg ICAgcHJpbnQgdmVyc2lvbiBpbmZvcm1hdGlvbgorKyMgICAtaCwgLS1oZWxwLCAtLWhlbHAtYWxs ICAgcHJpbnQgc2hvcnQsIGxvbmcsIG9yIGRldGFpbGVkIGhlbHAgbWVzc2FnZQorKyMKKysjIE1P REUgbXVzdCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKKysjCisrIyAgICAgICAgIGNsZWFuICAg ICAgICAgICAgICByZW1vdmUgZmlsZXMgZnJvbSB0aGUgYnVpbGQgZGlyZWN0b3J5CisrIyAgICAg ICAgIGNvbXBpbGUgICAgICAgICAgICBjb21waWxlIGEgc291cmNlIGZpbGUgaW50byBhIGxpYnRv b2wgb2JqZWN0CisrIyAgICAgICAgIGV4ZWN1dGUgICAgICAgICAgICBhdXRvbWF0aWNhbGx5IHNl dCBsaWJyYXJ5IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3JhbQorKyMgICAgICAgICBmaW5pc2ggICAg ICAgICAgICAgY29tcGxldGUgdGhlIGluc3RhbGxhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcwor KyMgICAgICAgICBpbnN0YWxsICAgICAgICAgICAgaW5zdGFsbCBsaWJyYXJpZXMgb3IgZXhlY3V0 YWJsZXMKKysjICAgICAgICAgbGluayAgICAgICAgICAgICAgIGNyZWF0ZSBhIGxpYnJhcnkgb3Ig YW4gZXhlY3V0YWJsZQorKyMgICAgICAgICB1bmluc3RhbGwgICAgICAgICAgcmVtb3ZlIGxpYnJh cmllcyBmcm9tIGFuIGluc3RhbGxlZCBkaXJlY3RvcnkKKysjCisrIyBNT0RFLUFSR1MgdmFyeSBk ZXBlbmRpbmcgb24gdGhlIE1PREUuICBXaGVuIHBhc3NlZCBhcyBmaXJzdCBvcHRpb24sCisrIyBg LS1tb2RlPU1PREUnIG1heSBiZSBhYmJyZXZpYXRlZCBhcyBgTU9ERScgb3IgYSB1bmlxdWUgYWJi cmV2aWF0aW9uIG9mIHRoYXQuCisrIyBUcnkgYCRwcm9nbmFtZSAtLWhlbHAgLS1tb2RlPU1PREUn IGZvciBhIG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgTU9ERS4KKysjCisrIyBXaGVuIHJl cG9ydGluZyBhIGJ1ZywgcGxlYXNlIGRlc2NyaWJlIGEgdGVzdCBjYXNlIHRvIHJlcHJvZHVjZSBp dCBhbmQKKysjIGluY2x1ZGUgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoKKysjCisrIyAgICAg ICAgIGhvc3QtdHJpcGxldDoJJGhvc3QKKysjICAgICAgICAgc2hlbGw6CQkkU0hFTEwKKysjICAg ICAgICAgY29tcGlsZXI6CQkkTFRDQworKyMgICAgICAgICBjb21waWxlciBmbGFnczoJCSRMVENG TEFHUworKyMgICAgICAgICBsaW5rZXI6CQkkTEQgKGdudT8gJHdpdGhfZ251X2xkKQorKyMgICAg ICAgICAkcHJvZ25hbWU6CShHTlUgbGlidG9vbCkgMi4yLjEwCisrIyAgICAgICAgIGF1dG9tYWtl OgkkYXV0b21ha2VfdmVyc2lvbgorKyMgICAgICAgICBhdXRvY29uZjoJJGF1dG9jb25mX3ZlcnNp b24KKysjCisrIyBSZXBvcnQgYnVncyB0byA8YnVnLWxpYnRvb2xAZ251Lm9yZz4uCisrCisrUFJP R1JBTT1saWJ0b29sCisrUEFDS0FHRT1saWJ0b29sCisrVkVSU0lPTj0yLjIuMTAKKytUSU1FU1RB TVA9IiIKKytwYWNrYWdlX3JldmlzaW9uPTEuMzE3NQorKworKyMgQmUgQm91cm5lIGNvbXBhdGli bGUKKytpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rl di9udWxsIDI+JjE7IHRoZW4KKysgIGVtdWxhdGUgc2gKKysgIE5VTExDTUQ9OgorKyAgIyBac2gg My54IGFuZCA0LnggcGVyZm9ybXMgd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAor KyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KKysg IGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJworKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKytl bHNlCisrICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4gKnBvc2l4Kikgc2V0IC1vIHBv c2l4OzsgZXNhYworK2ZpCisrQklOX1NIPXhwZzQ7IGV4cG9ydCBCSU5fU0ggIyBmb3IgVHJ1NjQK KytEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCisrCisrIyBBIGZ1bmN0 aW9uIHRoYXQgaXMgdXNlZCB3aGVuIHRoZXJlIGlzIG5vIHByaW50IGJ1aWx0aW4gb3IgcHJpbnRm LgorK2Z1bmNfZmFsbGJhY2tfZWNobyAoKQorK3sKKysgIGV2YWwgJ2NhdCA8PF9MVEVDSE9fRU9G CisrJDEKKytfTFRFQ0hPX0VPRicKKyt9CisrCisrIyBOTFMgbnVpc2FuY2VzOiBXZSBzYXZlIHRo ZSBvbGQgdmFsdWVzIHRvIHJlc3RvcmUgZHVyaW5nIGV4ZWN1dGUgbW9kZS4KKytsdF91c2VyX2xv Y2FsZT0KKytsdF9zYWZlX2xvY2FsZT0KKytmb3IgbHRfdmFyIGluIExBTkcgTEFOR1VBR0UgTENf QUxMIExDX0NUWVBFIExDX0NPTExBVEUgTENfTUVTU0FHRVMKKytkbworKyAgZXZhbCAiaWYgdGVz dCBcIlwkeyRsdF92YXIrc2V0fVwiID0gc2V0OyB0aGVuCisrICAgICAgICAgIHNhdmVfJGx0X3Zh cj1cJCRsdF92YXIKKysgICAgICAgICAgJGx0X3Zhcj1DCisrCSAgZXhwb3J0ICRsdF92YXIKKysJ ICBsdF91c2VyX2xvY2FsZT1cIiRsdF92YXI9XFxcJHNhdmVfXCRsdF92YXI7IFwkbHRfdXNlcl9s b2NhbGVcIgorKwkgIGx0X3NhZmVfbG9jYWxlPVwiJGx0X3Zhcj1DOyBcJGx0X3NhZmVfbG9jYWxl XCIKKysJZmkiCisrZG9uZQorK0xDX0FMTD1DCisrTEFOR1VBR0U9QworK2V4cG9ydCBMQU5HVUFH RSBMQ19BTEwKKysKKyskbHRfdW5zZXQgQ0RQQVRICisrCisrCisrIyBXb3JrIGFyb3VuZCBiYWNr d2FyZCBjb21wYXRpYmlsaXR5IGlzc3VlIG9uIElSSVggNi41LiBPbiBJUklYIDYuNCssIHNoCisr IyBpcyBrc2ggYnV0IHdoZW4gdGhlIHNoZWxsIGlzIGludm9rZWQgYXMgInNoIiBhbmQgdGhlIGN1 cnJlbnQgdmFsdWUgb2YKKysjIHRoZSBfWFBHIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBl cXVhbCB0byAxIChvbmUpLCB0aGUgc3BlY2lhbAorKyMgcG9zaXRpb25hbCBwYXJhbWV0ZXIgJDAs IHdpdGhpbiBhIGZ1bmN0aW9uIGNhbGwsIGlzIHRoZSBuYW1lIG9mIHRoZQorKyMgZnVuY3Rpb24u CisrcHJvZ3BhdGg9IiQwIgorKworKworKworKzogJHtDUD0iY3AgLWYifQorK3Rlc3QgIiR7RUNI TytzZXR9IiA9IHNldCB8fCBFQ0hPPSR7YXNfZWNoby0ncHJpbnRmICVzXG4nfQorKzogJHtFR1JF UD0iL2Jpbi9ncmVwIC1FIn0KKys6ICR7RkdSRVA9Ii9iaW4vZ3JlcCAtRiJ9CisrOiAke0dSRVA9 Ii9iaW4vZ3JlcCJ9CisrOiAke0xOX1M9ImxuIC1zIn0KKys6ICR7TUFLRT0ibWFrZSJ9CisrOiAk e01LRElSPSJta2RpciJ9CisrOiAke01WPSJtdiAtZiJ9CisrOiAke1JNPSJybSAtZiJ9CisrOiAk e1NFRD0iL2Jpbi9zZWQifQorKzogJHtTSEVMTD0iJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0ifQor KzogJHtYc2VkPSIkU0VEIC1lIDFzL15YLy8ifQorKworKyMgR2xvYmFsIHZhcmlhYmxlczoKKytF WElUX1NVQ0NFU1M9MAorK0VYSVRfRkFJTFVSRT0xCisrRVhJVF9NSVNNQVRDSD02MyAgIyAkPyA9 IDYzIGlzIHVzZWQgdG8gaW5kaWNhdGUgdmVyc2lvbiBtaXNtYXRjaCB0byBtaXNzaW5nLgorK0VY SVRfU0tJUD03NwkgICMgJD8gPSA3NyBpcyB1c2VkIHRvIGluZGljYXRlIGEgc2tpcHBlZCB0ZXN0 IHRvIGF1dG9tYWtlLgorKworK2V4aXRfc3RhdHVzPSRFWElUX1NVQ0NFU1MKKysKKysjIE1ha2Ug c3VyZSBJRlMgaGFzIGEgc2Vuc2libGUgZGVmYXVsdAorK2x0X25sPScKKysnCisrSUZTPSIgCSRs dF9ubCIKKysKKytkaXJuYW1lPSJzLC9bXi9dKiQsLCIKKytiYXNlbmFtZT0icyxeLiovLCwiCisr CisrIyBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNl bWVudAorKyMgcGVyZm9ybSBmdW5jX2Jhc2VuYW1lIGFuZCBmdW5jX2Rpcm5hbWUgaW4gYSBzaW5n bGUgZnVuY3Rpb24KKysjIGNhbGw6CisrIyAgIGRpcm5hbWU6ICBDb21wdXRlIHRoZSBkaXJuYW1l IG9mIEZJTEUuICBJZiBub25lbXB0eSwKKysjICAgICAgICAgICAgIGFkZCBBUFBFTkQgdG8gdGhl IHJlc3VsdCwgb3RoZXJ3aXNlIHNldCByZXN1bHQKKysjICAgICAgICAgICAgIHRvIE5PTkRJUl9S RVBMQUNFTUVOVC4KKysjICAgICAgICAgICAgIHZhbHVlIHJldHVybmVkIGluICIkZnVuY19kaXJu YW1lX3Jlc3VsdCIKKysjICAgYmFzZW5hbWU6IENvbXB1dGUgZmlsZW5hbWUgb2YgRklMRS4KKysj ICAgICAgICAgICAgIHZhbHVlIHJldHVuZWQgaW4gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysj IEltcGxlbWVudGF0aW9uIG11c3QgYmUga2VwdCBzeW5jaHJvbml6ZWQgd2l0aCBmdW5jX2Rpcm5h bWUKKysjIGFuZCBmdW5jX2Jhc2VuYW1lLiBGb3IgZWZmaWNpZW5jeSwgd2UgZG8gbm90IGRlbGVn YXRlIHRvCisrIyB0aG9zZSBmdW5jdGlvbnMgYnV0IGluc3RlYWQgZHVwbGljYXRlIHRoZSBmdW5j dGlvbmFsaXR5IGhlcmUuCisrZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAoKQorK3sKKysgICMg RXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCisrICBmdW5jX2Rpcm5hbWVf cmVzdWx0PWAkRUNITyAiJHsxfSIgfCAkU0VEIC1lICIkZGlybmFtZSJgCisrICBpZiB0ZXN0ICJY JGZ1bmNfZGlybmFtZV9yZXN1bHQiID0gIlgkezF9IjsgdGhlbgorKyAgICBmdW5jX2Rpcm5hbWVf cmVzdWx0PSIkezN9IgorKyAgZWxzZQorKyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkZnVuY19k aXJuYW1lX3Jlc3VsdCR7Mn0iCisrICBmaQorKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9YCRFQ0hP ICIkezF9IiB8ICRTRUQgLWUgIiRiYXNlbmFtZSJgCisrfQorKworKyMgR2VuZXJhdGVkIHNoZWxs IGZ1bmN0aW9ucyBpbnNlcnRlZCBoZXJlLgorKworKyMgVGhlc2UgU0VEIHNjcmlwdHMgcHJlc3Vw cG9zZSBhbiBhYnNvbHV0ZSBwYXRoIHdpdGggYSB0cmFpbGluZyBzbGFzaC4KKytwYXRoY2FyPSdz LF4vXChbXi9dKlwpLiokLFwxLCcKKytwYXRoY2RyPSdzLF4vW14vXSosLCcKKytyZW1vdmVkb3Rw YXJ0cz0nOmRvdHNsCisrCQlzQC9cLi9AL0BnCisrCQl0IGRvdHNsCisrCQlzLC9cLiQsLywnCisr Y29sbGFwc2VzbGFzaGVzPSdzQC9cezEsXH1AL0BnJworK2ZpbmFsc2xhc2g9J3MsLyokLC8sJwor KworKyMgZnVuY19ub3JtYWxfYWJzcGF0aCBQQVRICisrIyBSZW1vdmUgZG91YmxlZC11cCBhbmQg dHJhaWxpbmcgc2xhc2hlcywgIi4iIHBhdGggY29tcG9uZW50cywKKysjIGFuZCBjYW5jZWwgb3V0 IGFueSAiLi4iIHBhdGggY29tcG9uZW50cyBpbiBQQVRIIGFmdGVyIG1ha2luZworKyMgaXQgYW4g YWJzb2x1dGUgcGF0aC4KKysjICAgICAgICAgICAgIHZhbHVlIHJldHVybmVkIGluICIkZnVuY19u b3JtYWxfYWJzcGF0aF9yZXN1bHQiCisrZnVuY19ub3JtYWxfYWJzcGF0aCAoKQorK3sKKysgICMg U3RhcnQgZnJvbSByb290IGRpciBhbmQgcmVhc3NlbWJsZSB0aGUgcGF0aC4KKysgIGZ1bmNfbm9y bWFsX2Fic3BhdGhfcmVzdWx0PQorKyAgZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aD0kMQorKyAg ZnVuY19ub3JtYWxfYWJzcGF0aF9hbHRuYW1lc3BhY2U9CisrICBjYXNlICRmdW5jX25vcm1hbF9h YnNwYXRoX3RwYXRoIGluCisrICAgICIiKQorKyAgICAgICMgRW1wdHkgcGF0aCwgdGhhdCBqdXN0 IG1lYW5zICRjd2QuCisrICAgICAgZnVuY19zdHJpcG5hbWUgJycgJy8nICJgcHdkYCIKKysgICAg ICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrICAg ICAgcmV0dXJuCisrICAgIDs7CisrICAgICMgVGhlIG5leHQgdGhyZWUgZW50cmllcyBhcmUgdXNl ZCB0byBzcG90IGEgcnVuIG9mIHByZWNpc2VseQorKyAgICAjIHR3byBsZWFkaW5nIHNsYXNoZXMg d2l0aG91dCB1c2luZyBuZWdhdGVkIGNoYXJhY3RlciBjbGFzc2VzOworKyAgICAjIHdlIHRha2Ug YWR2YW50YWdlIG9mIGNhc2UncyBmaXJzdC1tYXRjaCBiZWhhdmlvdXIuCisrICAgIC8vLyopCisr ICAgICAgIyBVbnVzdWFsIGZvcm0gb2YgYWJzb2x1dGUgcGF0aCwgZG8gbm90aGluZy4KKysgICAg OzsKKysgICAgLy8qKQorKyAgICAgICMgTm90IG5lY2Vzc2FyaWx5IGFuIG9yZGluYXJ5IHBhdGg7 IFBPU0lYIHJlc2VydmVzIGxlYWRpbmcgJy8vJworKyAgICAgICMgYW5kIGZvciBleGFtcGxlIEN5 Z3dpbiB1c2VzIGl0IHRvIGFjY2VzcyByZW1vdGUgZmlsZSBzaGFyZXMKKysgICAgICAjIG92ZXIg Q0lGUy9TTUIsIHNvIHdlIGNvbnNlcnZlIGEgbGVhZGluZyBkb3VibGUgc2xhc2ggaWYgZm91bmQu CisrICAgICAgZnVuY19ub3JtYWxfYWJzcGF0aF9hbHRuYW1lc3BhY2U9LworKyAgICA7OworKyAg ICAvKikKKysgICAgICAjIEFic29sdXRlIHBhdGgsIGRvIG5vdGhpbmcuCisrICAgIDs7CisrICAg ICopCisrICAgICAgIyBSZWxhdGl2ZSBwYXRoLCBwcmVwZW5kICRjd2QuCisrICAgICAgZnVuY19u b3JtYWxfYWJzcGF0aF90cGF0aD1gcHdkYC8kZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aAorKyAg ICA7OworKyAgZXNhYworKyAgIyBDYW5jZWwgb3V0IGFsbCB0aGUgc2ltcGxlIHN0dWZmIHRvIHNh dmUgaXRlcmF0aW9ucy4gIFdlIGFsc28gd2FudAorKyAgIyB0aGUgcGF0aCB0byBlbmQgd2l0aCBh IHNsYXNoIGZvciBlYXNlIG9mIHBhcnNpbmcsIHNvIG1ha2Ugc3VyZQorKyAgIyB0aGVyZSBpcyBv bmUgKGFuZCBvbmx5IG9uZSkgaGVyZS4KKysgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGg9YCRF Q0hPICIkZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aCIgfCAkU0VEIFwKKysgICAgICAgIC1lICIk cmVtb3ZlZG90cGFydHMiIC1lICIkY29sbGFwc2VzbGFzaGVzIiAtZSAiJGZpbmFsc2xhc2giYAor KyAgd2hpbGUgOjsgZG8KKysgICAgIyBQcm9jZXNzZWQgaXQgYWxsIHlldD8KKysgICAgaWYgdGVz dCAiJGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGgiID0gLyA7IHRoZW4KKysgICAgICAjIElmIHdl IGFzY2VuZGVkIHRvIHRoZSByb290IHVzaW5nICIuLiIgdGhlIHJlc3VsdCBtYXkgYmUgZW1wdHkg bm93LgorKyAgICAgIGlmIHRlc3QgLXogIiRmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdCIgOyB0 aGVuCisrICAgICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0vCisrICAgICAgZmkKKysg ICAgICBicmVhaworKyAgICBmaQorKyAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Rjb21wb25lbnQ9 YCRFQ0hPICIkZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aCIgfCAkU0VEIFwKKysgICAgICAgIC1l ICIkcGF0aGNhciJgCisrICAgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGg9YCRFQ0hPICIkZnVu Y19ub3JtYWxfYWJzcGF0aF90cGF0aCIgfCAkU0VEIFwKKysgICAgICAgIC1lICIkcGF0aGNkciJg CisrICAgICMgRmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggaXQKKysgICAgY2FzZSAkZnVuY19u b3JtYWxfYWJzcGF0aF90Y29tcG9uZW50IGluCisrICAgICAgIiIpCisrICAgICAgICAjIFRyYWls aW5nIGVtcHR5IHBhdGggY29tcG9uZW50LCBpZ25vcmUgaXQuCisrICAgICAgOzsKKysgICAgICAu LikKKysgICAgICAgICMgUGFyZW50IGRpcjsgc3RyaXAgbGFzdCBhc3NlbWJsZWQgY29tcG9uZW50 IGZyb20gcmVzdWx0LgorKyAgICAgICAgZnVuY19kaXJuYW1lICIkZnVuY19ub3JtYWxfYWJzcGF0 aF9yZXN1bHQiCisrICAgICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0kZnVuY19kaXJu YW1lX3Jlc3VsdAorKyAgICAgIDs7CisrICAgICAgKikKKysgICAgICAgICMgQWN0dWFsIHBhdGgg Y29tcG9uZW50LCBhcHBlbmQgaXQuCisrICAgICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3Vs dD0kZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQvJGZ1bmNfbm9ybWFsX2Fic3BhdGhfdGNvbXBv bmVudAorKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGRvbmUKKysgICMgUmVzdG9yZSBsZWFkaW5n IGRvdWJsZS1zbGFzaCBpZiBvbmUgd2FzIGZvdW5kIG9uIGVudHJ5LgorKyAgZnVuY19ub3JtYWxf YWJzcGF0aF9yZXN1bHQ9JGZ1bmNfbm9ybWFsX2Fic3BhdGhfYWx0bmFtZXNwYWNlJGZ1bmNfbm9y bWFsX2Fic3BhdGhfcmVzdWx0CisrfQorKworKyMgZnVuY19yZWxhdGl2ZV9wYXRoIFNSQ0RJUiBE U1RESVIKKysjIGdlbmVyYXRlcyBhIHJlbGF0aXZlIHBhdGggZnJvbSBTUkNESVIgdG8gRFNURElS LCB3aXRoIGEgdHJhaWxpbmcKKysjIHNsYXNoIGlmIG5vbi1lbXB0eSwgc3VpdGFibGUgZm9yIGlt bWVkaWF0ZWx5IGFwcGVuZGluZyBhIGZpbGVuYW1lCisrIyB3aXRob3V0IG5lZWRpbmcgdG8gYXBw ZW5kIGEgc2VwYXJhdG9yLgorKyMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5j X3JlbGF0aXZlX3BhdGhfcmVzdWx0IgorK2Z1bmNfcmVsYXRpdmVfcGF0aCAoKQorK3sKKysgIGZ1 bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQ9CisrICBmdW5jX25vcm1hbF9hYnNwYXRoICIkMSIKKysg IGZ1bmNfcmVsYXRpdmVfcGF0aF90bGliZGlyPSRmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdAor KyAgZnVuY19ub3JtYWxfYWJzcGF0aCAiJDIiCisrICBmdW5jX3JlbGF0aXZlX3BhdGhfdGJpbmRp cj0kZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQKKysKKysgICMgQXNjZW5kIHRoZSB0cmVlIHN0 YXJ0aW5nIGZyb20gbGliZGlyCisrICB3aGlsZSA6OyBkbworKyAgICAjIGNoZWNrIGlmIHdlIGhh dmUgZm91bmQgYSBwcmVmaXggb2YgYmluZGlyCisrICAgIGNhc2UgJGZ1bmNfcmVsYXRpdmVfcGF0 aF90YmluZGlyIGluCisrICAgICAgJGZ1bmNfcmVsYXRpdmVfcGF0aF90bGliZGlyKQorKyAgICAg ICAgIyBmb3VuZCBhbiBleGFjdCBtYXRjaAorKyAgICAgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3Rj YW5jZWxsZWQ9CisrICAgICAgICBicmVhaworKyAgICAgICAgOzsKKysgICAgICAkZnVuY19yZWxh dGl2ZV9wYXRoX3RsaWJkaXIqKQorKyAgICAgICAgIyBmb3VuZCBhIG1hdGNoaW5nIHByZWZpeAor KyAgICAgICAgZnVuY19zdHJpcG5hbWUgIiRmdW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRpciIgJycg IiRmdW5jX3JlbGF0aXZlX3BhdGhfdGJpbmRpciIKKysgICAgICAgIGZ1bmNfcmVsYXRpdmVfcGF0 aF90Y2FuY2VsbGVkPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysgICAgICAgIGlmIHRlc3QgLXog IiRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0IjsgdGhlbgorKyAgICAgICAgICBmdW5jX3JlbGF0 aXZlX3BhdGhfcmVzdWx0PS4KKysgICAgICAgIGZpCisrICAgICAgICBicmVhaworKyAgICAgICAg OzsKKysgICAgICAqKQorKyAgICAgICAgZnVuY19kaXJuYW1lICRmdW5jX3JlbGF0aXZlX3BhdGhf dGxpYmRpcgorKyAgICAgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3RsaWJkaXI9JHtmdW5jX2Rpcm5h bWVfcmVzdWx0fQorKyAgICAgICAgaWYgdGVzdCAieCRmdW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRp ciIgPSB4IDsgdGhlbgorKyAgICAgICAgICAjIEhhdmUgdG8gZGVzY2VuZCBhbGwgdGhlIHdheSB0 byB0aGUgcm9vdCEKKysgICAgICAgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0uLi8kZnVu Y19yZWxhdGl2ZV9wYXRoX3Jlc3VsdAorKyAgICAgICAgICBmdW5jX3JlbGF0aXZlX3BhdGhfdGNh bmNlbGxlZD0kZnVuY19yZWxhdGl2ZV9wYXRoX3RiaW5kaXIKKysgICAgICAgICAgYnJlYWsKKysg ICAgICAgIGZpCisrICAgICAgICBmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0PS4uLyRmdW5jX3Jl bGF0aXZlX3BhdGhfcmVzdWx0CisrICAgICAgICA7OworKyAgICBlc2FjCisrICBkb25lCisrCisr ICAjIE5vdyBjYWxjdWxhdGUgcGF0aDsgdGFrZSBjYXJlIHRvIGF2b2lkIGRvdWJsaW5nLXVwIHNs YXNoZXMuCisrICBmdW5jX3N0cmlwbmFtZSAnJyAnLycgIiRmdW5jX3JlbGF0aXZlX3BhdGhfcmVz dWx0IgorKyAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0 CisrICBmdW5jX3N0cmlwbmFtZSAnLycgJy8nICIkZnVuY19yZWxhdGl2ZV9wYXRoX3RjYW5jZWxs ZWQiCisrICBpZiB0ZXN0ICJ4JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIgIT0geCA7IHRoZW4KKysg ICAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0ke2Z1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHR9 LyR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0fQorKyAgZmkKKysKKysgICMgTm9ybWFsaXNhdGlvbi4g SWYgYmluZGlyIGlzIGxpYmRpciwgcmV0dXJuIGVtcHR5IHN0cmluZywKKysgICMgZWxzZSByZWxh dGl2ZSBwYXRoIGVuZGluZyB3aXRoIGEgc2xhc2g7IGVpdGhlciB3YXksIHRhcmdldAorKyAgIyBm aWxlIG5hbWUgY2FuIGJlIGRpcmVjdGx5IGFwcGVuZGVkLgorKyAgaWYgdGVzdCAhIC16ICIkZnVu Y19yZWxhdGl2ZV9wYXRoX3Jlc3VsdCI7IHRoZW4KKysgICAgZnVuY19zdHJpcG5hbWUgJy4vJyAn JyAiJGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQvIgorKyAgICBmdW5jX3JlbGF0aXZlX3BhdGhf cmVzdWx0PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysgIGZpCisrfQorKworKyMgVGhlIG5hbWUg b2YgdGhpcyBwcm9ncmFtOgorK2Z1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiRwcm9ncGF0aCIK Kytwcm9nbmFtZT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKKysKKysjIE1ha2Ugc3VyZSB3ZSBoYXZl IGFuIGFic29sdXRlIHBhdGggZm9yIHJlZXhlY3V0aW9uOgorK2Nhc2UgJHByb2dwYXRoIGluCisr ICBbXFwvXSp8W0EtWmEtel06XFwqKSA7OworKyAgKltcXC9dKikKKysgICAgIHByb2dkaXI9JGZ1 bmNfZGlybmFtZV9yZXN1bHQKKysgICAgIHByb2dkaXI9YGNkICIkcHJvZ2RpciIgJiYgcHdkYAor KyAgICAgcHJvZ3BhdGg9IiRwcm9nZGlyLyRwcm9nbmFtZSIKKysgICAgIDs7CisrICAqKQorKyAg ICAgc2F2ZV9JRlM9IiRJRlMiCisrICAgICBJRlM9OgorKyAgICAgZm9yIHByb2dkaXIgaW4gJFBB VEg7IGRvCisrICAgICAgIElGUz0iJHNhdmVfSUZTIgorKyAgICAgICB0ZXN0IC14ICIkcHJvZ2Rp ci8kcHJvZ25hbWUiICYmIGJyZWFrCisrICAgICBkb25lCisrICAgICBJRlM9IiRzYXZlX0lGUyIK KysgICAgIHRlc3QgLW4gIiRwcm9nZGlyIiB8fCBwcm9nZGlyPWBwd2RgCisrICAgICBwcm9ncGF0 aD0iJHByb2dkaXIvJHByb2duYW1lIgorKyAgICAgOzsKKytlc2FjCisrCisrIyBTZWQgc3Vic3Rp dHV0aW9uIHRoYXQgaGVscHMgdXMgZG8gcm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xhc2hpZmll cworKyMgbWV0YWNoYXJhY3RlcnMgdGhhdCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUt cXVvdGVkIHN0cmluZ3MuCisrWHNlZD0iJHtTRUR9IicgLWUgMXMvXlgvLycKKytzZWRfcXVvdGVf c3Vic3Q9J3MvXChbYCIkXFxdXCkvXFxcMS9nJworKworKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGRv IG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgorK2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9c KFsiYFxcXVwpL1xcXDEvZycKKysKKysjIFJlLWBcJyBwYXJhbWV0ZXIgZXhwYW5zaW9ucyBpbiBv dXRwdXQgb2YgZG91YmxlX3F1b3RlX3N1YnN0IHRoYXQgd2VyZQorKyMgYFwnLWVkIGluIGlucHV0 IHRvIHRoZSBzYW1lLiAgSWYgYW4gb2RkIG51bWJlciBvZiBgXCcgcHJlY2VkZWQgYSAnJCcKKysj IGluIGlucHV0IHRvIGRvdWJsZV9xdW90ZV9zdWJzdCwgdGhhdCAnJCcgd2FzIHByb3RlY3RlZCBm cm9tIGV4cGFuc2lvbi4KKysjIFNpbmNlIGVhY2ggaW5wdXQgYFwnIGlzIG5vdyB0d28gYFwncywg bG9vayBmb3IgYW55IG51bWJlciBvZiBydW5zIG9mCisrIyBmb3VyIGBcJ3MgZm9sbG93ZWQgYnkg dHdvIGBcJ3MgYW5kIHRoZW4gYSAnJCcuICBgXCcgdGhhdCAnJCcuCisrYnM9J1xcJworK2JzMj0n XFxcXCcKKyticzQ9J1xcXFxcXFxcJworK2RvbGxhcj0nXCQnCisrc2VkX2RvdWJsZV9iYWNrc2xh c2g9IlwKKysgIHMvJGJzNC8mXFwKKysvZworKyAgcy9eJGJzMiRkb2xsYXIvJGJzJi8KKysgIHMv XFwoW14kYnNdXFwpJGJzMiRkb2xsYXIvXFwxJGJzMiRicyRkb2xsYXIvZworKyAgcy9cbi8vZyIK KysKKysjIFN0YW5kYXJkIG9wdGlvbnM6Cisrb3B0X2RyeV9ydW49ZmFsc2UKKytvcHRfaGVscD1m YWxzZQorK29wdF9xdWlldD1mYWxzZQorK29wdF92ZXJib3NlPWZhbHNlCisrb3B0X3dhcm5pbmc9 OgorKworKyMgZnVuY19lY2hvIGFyZy4uLgorKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQg bWVzc2FnZSwgYWxvbmcgd2l0aCB0aGUgY3VycmVudCBtb2RlCisrIyBuYW1lIGlmIGl0IGhhcyBi ZWVuIHNldCB5ZXQuCisrZnVuY19lY2hvICgpCisreworKyAgICAkRUNITyAiJHByb2duYW1lJHtt b2RlKzogfSRtb2RlOiAkKiIKKyt9CisrCisrIyBmdW5jX3ZlcmJvc2UgYXJnLi4uCisrIyBFY2hv IHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIGluIHZlcmJvc2UgbW9kZSBvbmx5LgorK2Z1 bmNfdmVyYm9zZSAoKQorK3sKKysgICAgJG9wdF92ZXJib3NlICYmIGZ1bmNfZWNobyAkezErIiRA In0KKysKKysgICAgIyBBIGJ1ZyBpbiBiYXNoIGhhbHRzIHRoZSBzY3JpcHQgaWYgdGhlIGxhc3Qg bGluZSBvZiBhIGZ1bmN0aW9uCisrICAgICMgZmFpbHMgd2hlbiBzZXQgLWUgaXMgaW4gZm9yY2Us IHNvIHdlIG5lZWQgYW5vdGhlciBjb21tYW5kIHRvCisrICAgICMgd29yayBhcm91bmQgdGhhdDoK KysgICAgOgorK30KKysKKysjIGZ1bmNfZWNob19hbGwgYXJnLi4uCisrIyBJbnZva2UgJEVDSE8g d2l0aCBhbGwgYXJncywgc3BhY2Utc2VwYXJhdGVkLgorK2Z1bmNfZWNob19hbGwgKCkKKyt7Cisr ICAgICRFQ0hPICIkKiIKKyt9CisrCisrIyBmdW5jX2Vycm9yIGFyZy4uLgorKyMgRWNobyBwcm9n cmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvci4KKytmdW5jX2Vycm9y ICgpCisreworKyAgICAkRUNITyAiJHByb2duYW1lJHttb2RlKzogfSRtb2RlOiAiJHsxKyIkQCJ9 IDE+JjIKKyt9CisrCisrIyBmdW5jX3dhcm5pbmcgYXJnLi4uCisrIyBFY2hvIHByb2dyYW0gbmFt ZSBwcmVmaXhlZCB3YXJuaW5nIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IuCisrZnVuY193YXJu aW5nICgpCisreworKyAgICAkb3B0X3dhcm5pbmcgJiYgJEVDSE8gIiRwcm9nbmFtZSR7bW9kZSs6 IH0kbW9kZTogd2FybmluZzogIiR7MSsiJEAifSAxPiYyCisrCisrICAgICMgYmFzaCBidWcgYWdh aW46CisrICAgIDoKKyt9CisrCisrIyBmdW5jX2ZhdGFsX2Vycm9yIGFyZy4uLgorKyMgRWNobyBw cm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciwgYW5kIGV4aXQu CisrZnVuY19mYXRhbF9lcnJvciAoKQorK3sKKysgICAgZnVuY19lcnJvciAkezErIiRAIn0KKysg ICAgZXhpdCAkRVhJVF9GQUlMVVJFCisrfQorKworKyMgZnVuY19mYXRhbF9oZWxwIGFyZy4uLgor KyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciwg Zm9sbG93ZWQgYnkKKysjIGEgaGVscCBoaW50LCBhbmQgZXhpdC4KKytmdW5jX2ZhdGFsX2hlbHAg KCkKKyt7CisrICAgIGZ1bmNfZXJyb3IgJHsxKyIkQCJ9CisrICAgIGZ1bmNfZmF0YWxfZXJyb3Ig IiRoZWxwIgorK30KKytoZWxwPSJUcnkgXGAkcHJvZ25hbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZv cm1hdGlvbi4iICAjIyBkZWZhdWx0CisrCisrCisrIyBmdW5jX2dyZXAgZXhwcmVzc2lvbiBmaWxl bmFtZQorKyMgQ2hlY2sgd2hldGhlciBFWFBSRVNTSU9OIG1hdGNoZXMgYW55IGxpbmUgb2YgRklM RU5BTUUsIHdpdGhvdXQgb3V0cHV0LgorK2Z1bmNfZ3JlcCAoKQorK3sKKysgICAgJEdSRVAgIiQx IiAiJDIiID4vZGV2L251bGwgMj4mMQorK30KKysKKysKKysjIGZ1bmNfbWtkaXJfcCBkaXJlY3Rv cnktcGF0aAorKyMgTWFrZSBzdXJlIHRoZSBlbnRpcmUgcGF0aCB0byBESVJFQ1RPUlktUEFUSCBp cyBhdmFpbGFibGUuCisrZnVuY19ta2Rpcl9wICgpCisreworKyAgICBteV9kaXJlY3RvcnlfcGF0 aD0iJDEiCisrICAgIG15X2Rpcl9saXN0PQorKworKyAgICBpZiB0ZXN0IC1uICIkbXlfZGlyZWN0 b3J5X3BhdGgiICYmIHRlc3QgIiRvcHRfZHJ5X3J1biIgIT0gIjoiOyB0aGVuCisrCisrICAgICAg IyBQcm90ZWN0IGRpcmVjdG9yeSBuYW1lcyBzdGFydGluZyB3aXRoIGAtJworKyAgICAgIGNhc2Ug JG15X2RpcmVjdG9yeV9wYXRoIGluCisrICAgICAgICAtKikgbXlfZGlyZWN0b3J5X3BhdGg9Ii4v JG15X2RpcmVjdG9yeV9wYXRoIiA7OworKyAgICAgIGVzYWMKKysKKysgICAgICAjIFdoaWxlIHNv bWUgcG9ydGlvbiBvZiBESVIgZG9lcyBub3QgeWV0IGV4aXN0Li4uCisrICAgICAgd2hpbGUgdGVz dCAhIC1kICIkbXlfZGlyZWN0b3J5X3BhdGgiOyBkbworKyAgICAgICAgIyAuLi5tYWtlIGEgbGlz dCBpbiB0b3Btb3N0IGZpcnN0IG9yZGVyLiAgVXNlIGEgY29sb24gZGVsaW1pdGVkCisrCSMgbGlz dCBpbmNhc2Ugc29tZSBwb3J0aW9uIG9mIHBhdGggY29udGFpbnMgd2hpdGVzcGFjZS4KKysgICAg ICAgIG15X2Rpcl9saXN0PSIkbXlfZGlyZWN0b3J5X3BhdGg6JG15X2Rpcl9saXN0IgorKworKyAg ICAgICAgIyBJZiB0aGUgbGFzdCBwb3J0aW9uIGFkZGVkIGhhcyBubyBzbGFzaCBpbiBpdCwgdGhl IGxpc3QgaXMgZG9uZQorKyAgICAgICAgY2FzZSAkbXlfZGlyZWN0b3J5X3BhdGggaW4gKi8qKSA7 OyAqKSBicmVhayA7OyBlc2FjCisrCisrICAgICAgICAjIC4uLm90aGVyd2lzZSB0aHJvdyBhd2F5 IHRoZSBjaGlsZCBkaXJlY3RvcnkgYW5kIGxvb3AKKysgICAgICAgIG15X2RpcmVjdG9yeV9wYXRo PWAkRUNITyAiJG15X2RpcmVjdG9yeV9wYXRoIiB8ICRTRUQgLWUgIiRkaXJuYW1lImAKKysgICAg ICBkb25lCisrICAgICAgbXlfZGlyX2xpc3Q9YCRFQ0hPICIkbXlfZGlyX2xpc3QiIHwgJFNFRCAn cyw6KiQsLCdgCisrCisrICAgICAgc2F2ZV9ta2Rpcl9wX0lGUz0iJElGUyI7IElGUz0nOicKKysg ICAgICBmb3IgbXlfZGlyIGluICRteV9kaXJfbGlzdDsgZG8KKysJSUZTPSIkc2F2ZV9ta2Rpcl9w X0lGUyIKKysgICAgICAgICMgbWtkaXIgY2FuIGZhaWwgd2l0aCBhIGBGaWxlIGV4aXN0JyBlcnJv ciBpZiB0d28gcHJvY2Vzc2VzCisrICAgICAgICAjIHRyeSB0byBjcmVhdGUgb25lIG9mIHRoZSBk aXJlY3RvcmllcyBjb25jdXJyZW50bHkuICBEb24ndAorKyAgICAgICAgIyBzdG9wIGluIHRoYXQg Y2FzZSEKKysgICAgICAgICRNS0RJUiAiJG15X2RpciIgMj4vZGV2L251bGwgfHwgOgorKyAgICAg IGRvbmUKKysgICAgICBJRlM9IiRzYXZlX21rZGlyX3BfSUZTIgorKworKyAgICAgICMgQmFpbCBv dXQgaWYgd2UgKG9yIHNvbWUgb3RoZXIgcHJvY2VzcykgZmFpbGVkIHRvIGNyZWF0ZSBhIGRpcmVj dG9yeS4KKysgICAgICB0ZXN0IC1kICIkbXlfZGlyZWN0b3J5X3BhdGgiIHx8IFwKKysgICAgICAg IGZ1bmNfZmF0YWxfZXJyb3IgIkZhaWxlZCB0byBjcmVhdGUgXGAkMSciCisrICAgIGZpCisrfQor KworKworKyMgZnVuY19ta3RlbXBkaXIgW3N0cmluZ10KKysjIE1ha2UgYSB0ZW1wb3JhcnkgZGly ZWN0b3J5IHRoYXQgd29uJ3QgY2xhc2ggd2l0aCBvdGhlciBydW5uaW5nCisrIyBsaWJ0b29sIHBy b2Nlc3NlcywgYW5kIGF2b2lkcyByYWNlIGNvbmRpdGlvbnMgaWYgcG9zc2libGUuICBJZgorKyMg Z2l2ZW4sIFNUUklORyBpcyB0aGUgYmFzZW5hbWUgZm9yIHRoYXQgZGlyZWN0b3J5LgorK2Z1bmNf bWt0ZW1wZGlyICgpCisreworKyAgICBteV90ZW1wbGF0ZT0iJHtUTVBESVItL3RtcH0vJHsxLSRw cm9nbmFtZX0iCisrCisrICAgIGlmIHRlc3QgIiRvcHRfZHJ5X3J1biIgPSAiOiI7IHRoZW4KKysg ICAgICAjIFJldHVybiBhIGRpcmVjdG9yeSBuYW1lLCBidXQgZG9uJ3QgY3JlYXRlIGl0IGluIGRy eS1ydW4gbW9kZQorKyAgICAgIG15X3RtcGRpcj0iJHtteV90ZW1wbGF0ZX0tJCQiCisrICAgIGVs c2UKKysKKysgICAgICAjIElmIG1rdGVtcCB3b3JrcywgdXNlIHRoYXQgZmlyc3QgYW5kIGZvcmVt b3N0CisrICAgICAgbXlfdG1wZGlyPWBta3RlbXAgLWQgIiR7bXlfdGVtcGxhdGV9LVhYWFhYWFhY IiAyPi9kZXYvbnVsbGAKKysKKysgICAgICBpZiB0ZXN0ICEgLWQgIiRteV90bXBkaXIiOyB0aGVu CisrICAgICAgICAjIEZhaWxpbmcgdGhhdCwgYXQgbGVhc3QgdHJ5IGFuZCB1c2UgJFJBTkRPTSB0 byBhdm9pZCBhIHJhY2UKKysgICAgICAgIG15X3RtcGRpcj0iJHtteV90ZW1wbGF0ZX0tJHtSQU5E T00tMH0kJCIKKysKKysgICAgICAgIHNhdmVfbWt0ZW1wZGlyX3VtYXNrPWB1bWFza2AKKysgICAg ICAgIHVtYXNrIDAwNzcKKysgICAgICAgICRNS0RJUiAiJG15X3RtcGRpciIKKysgICAgICAgIHVt YXNrICRzYXZlX21rdGVtcGRpcl91bWFzaworKyAgICAgIGZpCisrCisrICAgICAgIyBJZiB3ZSdy ZSBub3QgaW4gZHJ5LXJ1biBtb2RlLCBib21iIG91dCBvbiBmYWlsdXJlCisrICAgICAgdGVzdCAt ZCAiJG15X3RtcGRpciIgfHwgXAorKyAgICAgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGNy ZWF0ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IFxgJG15X3RtcGRpciciCisrICAgIGZpCisrCisrICAg ICRFQ0hPICIkbXlfdG1wZGlyIgorK30KKysKKysKKysjIGZ1bmNfcXVvdGVfZm9yX2V2YWwgYXJn CisrIyBBZXN0aGV0aWNhbGx5IHF1b3RlIEFSRyB0byBiZSBldmFsZWQgbGF0ZXIuCisrIyBUaGlz IGZ1bmN0aW9uIHJldHVybnMgdHdvIHZhbHVlczogRlVOQ19RVU9URV9GT1JfRVZBTF9SRVNVTFQK KysjIGlzIGRvdWJsZS1xdW90ZWQsIHN1aXRhYmxlIGZvciBhIHN1YnNlcXVlbnQgZXZhbCwgd2hl cmVhcworKyMgRlVOQ19RVU9URV9GT1JfRVZBTF9VTlFVT1RFRF9SRVNVTFQgaGFzIG1lcmVseSBh bGwgY2hhcmFjdGVycworKyMgd2hpY2ggYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlIHF1 b3RlcyBiYWNrc2xhc2hpZmllZC4KKytmdW5jX3F1b3RlX2Zvcl9ldmFsICgpCisreworKyAgICBj YXNlICQxIGluCisrICAgICAgKltcXFxgXCJcJF0qKQorKwlmdW5jX3F1b3RlX2Zvcl9ldmFsX3Vu cXVvdGVkX3Jlc3VsdD1gJEVDSE8gIiQxIiB8ICRTRUQgIiRzZWRfcXVvdGVfc3Vic3QiYCA7Owor KyAgICAgICopCisrICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdD0i JDEiIDs7CisrICAgIGVzYWMKKysKKysgICAgY2FzZSAkZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1 b3RlZF9yZXN1bHQgaW4KKysgICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5pbmcgc2hl bGwgbWV0YWNoYXJhY3RlcnMgdG8gZGVsYXkKKysgICAgICAjIHdvcmQgc3BsaXR0aW5nLCBjb21t YW5kIHN1YnN0aXR1dGlvbiBhbmQgYW5kIHZhcmlhYmxlCisrICAgICAgIyBleHBhbnNpb24gZm9y IGEgc3Vic2VxdWVudCBldmFsLgorKyAgICAgICMgTWFueSBCb3VybmUgc2hlbGxzIGNhbm5vdCBo YW5kbGUgY2xvc2UgYnJhY2tldHMgY29ycmVjdGx5CisrICAgICAgIyBpbiBzY2FuIHNldHMsIHNv IHdlIHNwZWNpZnkgaXQgc2VwYXJhdGVseS4KKysgICAgICAqW1xbXH5cI1xeXCZcKlwoXClce1x9 XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKKysgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWxf cmVzdWx0PSJcIiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdFwiIgorKyAgICAg ICAgOzsKKysgICAgICAqKQorKyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQ9IiRm dW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdCIKKysgICAgZXNhYworK30KKysKKysK KysjIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCBhcmcKKysjIEFlc3RoZXRpY2FsbHkgcXVvdGUgQVJH IHRvIGJlIGV2YWxlZCBsYXRlcjsgc2FtZSBhcyBhYm92ZSwKKysjIGJ1dCBkbyBub3QgcXVvdGUg dmFyaWFibGUgcmVmZXJlbmNlcy4KKytmdW5jX3F1b3RlX2Zvcl9leHBhbmQgKCkKKyt7CisrICAg IGNhc2UgJDEgaW4KKysgICAgICAqW1xcXGBcIl0qKQorKwlteV9hcmc9YCRFQ0hPICIkMSIgfCAk U0VEIFwKKysJICAgIC1lICIkZG91YmxlX3F1b3RlX3N1YnN0IiAtZSAiJHNlZF9kb3VibGVfYmFj a3NsYXNoImAgOzsKKysgICAgICAqKQorKyAgICAgICAgbXlfYXJnPSIkMSIgOzsKKysgICAgZXNh YworKworKyAgICBjYXNlICRteV9hcmcgaW4KKysgICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNv bnRhaW5pbmcgc2hlbGwgbWV0YWNoYXJhY3RlcnMgdG8gZGVsYXkKKysgICAgICAjIHdvcmQgc3Bs aXR0aW5nIGFuZCBjb21tYW5kIHN1YnN0aXR1dGlvbiBmb3IgYSBzdWJzZXF1ZW50IGV2YWwuCisr ICAgICAgIyBNYW55IEJvdXJuZSBzaGVsbHMgY2Fubm90IGhhbmRsZSBjbG9zZSBicmFja2V0cyBj b3JyZWN0bHkKKysgICAgICAjIGluIHNjYW4gc2V0cywgc28gd2Ugc3BlY2lmeSBpdCBzZXBhcmF0 ZWx5LgorKyAgICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0q fCIiKQorKyAgICAgICAgbXlfYXJnPSJcIiRteV9hcmdcIiIKKysgICAgICAgIDs7CisrICAgIGVz YWMKKysKKysgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdD0iJG15X2FyZyIKKyt9Cisr CisrCisrIyBmdW5jX3Nob3dfZXZhbCBjbWQgW2ZhaWxfZXhwXQorKyMgVW5sZXNzIG9wdF9zaWxl bnQgaXMgdHJ1ZSwgdGhlbiBvdXRwdXQgQ01ELiAgVGhlbiwgaWYgb3B0X2RyeXJ1biBpcworKyMg bm90IHRydWUsIGV2YWx1YXRlIENNRC4gIElmIHRoZSBldmFsdWF0aW9uIG9mIENNRCBmYWlscywg YW5kIEZBSUxfRVhQCisrIyBpcyBnaXZlbiwgdGhlbiBldmFsdWF0ZSBpdC4KKytmdW5jX3Nob3df ZXZhbCAoKQorK3sKKysgICAgbXlfY21kPSIkMSIKKysgICAgbXlfZmFpbF9leHA9IiR7Mi06fSIK KysKKysgICAgJHtvcHRfc2lsZW50LWZhbHNlfSB8fCB7CisrICAgICAgZnVuY19xdW90ZV9mb3Jf ZXhwYW5kICIkbXlfY21kIgorKyAgICAgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3Jf ZXhwYW5kX3Jlc3VsdCIKKysgICAgfQorKworKyAgICBpZiAke29wdF9kcnlfcnVuLWZhbHNlfTsg dGhlbiA6OyBlbHNlCisrICAgICAgZXZhbCAiJG15X2NtZCIKKysgICAgICBteV9zdGF0dXM9JD8K KysgICAgICBpZiB0ZXN0ICIkbXlfc3RhdHVzIiAtZXEgMDsgdGhlbiA6OyBlbHNlCisrCWV2YWwg IihleGl0ICRteV9zdGF0dXMpOyAkbXlfZmFpbF9leHAiCisrICAgICAgZmkKKysgICAgZmkKKyt9 CisrCisrCisrIyBmdW5jX3Nob3dfZXZhbF9sb2NhbGUgY21kIFtmYWlsX2V4cF0KKysjIFVubGVz cyBvcHRfc2lsZW50IGlzIHRydWUsIHRoZW4gb3V0cHV0IENNRC4gIFRoZW4sIGlmIG9wdF9kcnly dW4gaXMKKysjIG5vdCB0cnVlLCBldmFsdWF0ZSBDTUQuICBJZiB0aGUgZXZhbHVhdGlvbiBvZiBD TUQgZmFpbHMsIGFuZCBGQUlMX0VYUAorKyMgaXMgZ2l2ZW4sIHRoZW4gZXZhbHVhdGUgaXQuICBV c2UgdGhlIHNhdmVkIGxvY2FsZSBmb3IgZXZhbHVhdGlvbi4KKytmdW5jX3Nob3dfZXZhbF9sb2Nh bGUgKCkKKyt7CisrICAgIG15X2NtZD0iJDEiCisrICAgIG15X2ZhaWxfZXhwPSIkezItOn0iCisr CisrICAgICR7b3B0X3NpbGVudC1mYWxzZX0gfHwgeworKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V4 cGFuZCAiJG15X2NtZCIKKysgICAgICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4 cGFuZF9yZXN1bHQiCisrICAgIH0KKysKKysgICAgaWYgJHtvcHRfZHJ5X3J1bi1mYWxzZX07IHRo ZW4gOjsgZWxzZQorKyAgICAgIGV2YWwgIiRsdF91c2VyX2xvY2FsZQorKwkgICAgJG15X2NtZCIK KysgICAgICBteV9zdGF0dXM9JD8KKysgICAgICBldmFsICIkbHRfc2FmZV9sb2NhbGUiCisrICAg ICAgaWYgdGVzdCAiJG15X3N0YXR1cyIgLWVxIDA7IHRoZW4gOjsgZWxzZQorKwlldmFsICIoZXhp dCAkbXlfc3RhdHVzKTsgJG15X2ZhaWxfZXhwIgorKyAgICAgIGZpCisrICAgIGZpCisrfQorKwor KworKyMgZnVuY192ZXJzaW9uCisrIyBFY2hvIHZlcnNpb24gbWVzc2FnZSB0byBzdGFuZGFyZCBv dXRwdXQgYW5kIGV4aXQuCisrZnVuY192ZXJzaW9uICgpCisreworKyAgICAkU0VEIC1uICcvKEMp LyFiIGdvCisrCTptb3JlCisrCS9cLi8heworKwkgIE4KKysJICBzL1xuIyAvIC8KKysJICBiIG1v cmUKKysJfQorKwk6Z28KKysJL14jICckUFJPR1JBTScgKEdOVSAvLC8jIHdhcnJhbnR5OyAvIHsK KysgICAgICAgIHMvXiMgLy8KKysJcy9eIyAqJC8vCisrICAgICAgICBzL1woKEMpXClbIDAtOSwt XSpcKCBbMS05XVswLTldKlwpL1wxXDIvCisrICAgICAgICBwCisrICAgICB9JyA8ICIkcHJvZ3Bh dGgiCisrICAgICBleGl0ICQ/CisrfQorKworKyMgZnVuY191c2FnZQorKyMgRWNobyBzaG9ydCBo ZWxwIG1lc3NhZ2UgdG8gc3RhbmRhcmQgb3V0cHV0IGFuZCBleGl0LgorK2Z1bmNfdXNhZ2UgKCkK Kyt7CisrICAgICRTRUQgLW4gJy9eIyBVc2FnZTovLC9eIyAgKi4qLS1oZWxwLyB7CisrICAgICAg ICBzL14jIC8vCisrCXMvXiMgKiQvLworKwlzL1wkcHJvZ25hbWUvJyRwcm9nbmFtZScvCisrCXAK KysgICAgfScgPCAiJHByb2dwYXRoIgorKyAgICBlY2hvCisrICAgICRFQ0hPICJydW4gXGAkcHJv Z25hbWUgLS1oZWxwIHwgbW9yZScgZm9yIGZ1bGwgdXNhZ2UiCisrICAgIGV4aXQgJD8KKyt9Cisr CisrIyBmdW5jX2hlbHAgW05PRVhJVF0KKysjIEVjaG8gbG9uZyBoZWxwIG1lc3NhZ2UgdG8gc3Rh bmRhcmQgb3V0cHV0IGFuZCBleGl0LAorKyMgdW5sZXNzICdub2V4aXQnIGlzIHBhc3NlZCBhcyBh cmd1bWVudC4KKytmdW5jX2hlbHAgKCkKKyt7CisrICAgICRTRUQgLW4gJy9eIyBVc2FnZTovLC8j IFJlcG9ydCBidWdzIHRvLyB7CisrICAgICAgICBzL14jIC8vCisrCXMvXiMgKiQvLworKwlzKlwk cHJvZ25hbWUqJyRwcm9nbmFtZScqCisrCXMqXCRob3N0KiciJGhvc3QiJyoKKysJcypcJFNIRUxM KiciJFNIRUxMIicqCisrCXMqXCRMVENDKiciJExUQ0MiJyoKKysJcypcJExUQ0ZMQUdTKiciJExU Q0ZMQUdTIicqCisrCXMqXCRMRConIiRMRCInKgorKwlzL1wkd2l0aF9nbnVfbGQvJyIkd2l0aF9n bnVfbGQiJy8KKysJcy9cJGF1dG9tYWtlX3ZlcnNpb24vJyJgKGF1dG9tYWtlIC0tdmVyc2lvbikg Mj4vZGV2L251bGwgfCRTRUQgMXFgIicvCisrCXMvXCRhdXRvY29uZl92ZXJzaW9uLyciYChhdXRv Y29uZiAtLXZlcnNpb24pIDI+L2Rldi9udWxsIHwkU0VEIDFxYCInLworKwlwCisrICAgICB9JyA8 ICIkcHJvZ3BhdGgiCisrICAgIHJldD0kPworKyAgICBpZiB0ZXN0IC16ICIkMSI7IHRoZW4KKysg ICAgICBleGl0ICRyZXQKKysgICAgZmkKKyt9CisrCisrIyBmdW5jX21pc3NpbmdfYXJnIGFyZ25h bWUKKysjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJy b3IgYW5kIHNldCBnbG9iYWwKKysjIGV4aXRfY21kLgorK2Z1bmNfbWlzc2luZ19hcmcgKCkKKyt7 CisrICAgIGZ1bmNfZXJyb3IgIm1pc3NpbmcgYXJndW1lbnQgZm9yICQxLiIKKysgICAgZXhpdF9j bWQ9ZXhpdAorK30KKysKKytleGl0X2NtZD06CisrCisrCisrCisrCisrCisrCisrbWFnaWM9IiUl JU1BR0lDIHZhcmlhYmxlJSUlIgorK21hZ2ljX2V4ZT0iJSUlTUFHSUMgRVhFIHZhcmlhYmxlJSUl IgorKworKyMgR2xvYmFsIHZhcmlhYmxlcy4KKysjICRtb2RlIGlzIHVuc2V0Cisrbm9ub3B0PQor K2V4ZWN1dGVfZGxmaWxlcz0KKytwcmVzZXJ2ZV9hcmdzPQorK2xvMm89InMvXFwubG9cJC8uJHtv YmpleHR9LyIKKytvMmxvPSJzL1xcLiR7b2JqZXh0fVwkLy5sby8iCisrZXh0cmFjdGVkX2FyY2hp dmVzPQorK2V4dHJhY3RlZF9zZXJpYWw9MAorKworK29wdF9kcnlfcnVuPWZhbHNlCisrb3B0X2R1 cGxpY2F0ZV9kZXBzPWZhbHNlCisrb3B0X3NpbGVudD1mYWxzZQorK29wdF9kZWJ1Zz06CisrCisr IyBJZiB0aGlzIHZhcmlhYmxlIGlzIHNldCBpbiBhbnkgb2YgdGhlIGFjdGlvbnMsIHRoZSBjb21t YW5kIGluIGl0CisrIyB3aWxsIGJlIGV4ZWNlZCBhdCB0aGUgZW5kLiAgVGhpcyBwcmV2ZW50cyBo ZXJlLWRvY3VtZW50cyBmcm9tIGJlaW5nCisrIyBsZWZ0IG92ZXIgYnkgc2hlbGxzLgorK2V4ZWNf Y21kPQorKworKyMgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uIGFyZy4uLgorKyMgRWNobyBwcm9n cmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciwgZm9sbG93ZWQgYnkK KysjIGEgY29uZmlndXJhdGlvbiBmYWlsdXJlIGhpbnQsIGFuZCBleGl0LgorK2Z1bmNfZmF0YWxf Y29uZmlndXJhdGlvbiAoKQorK3sKKysgICAgZnVuY19lcnJvciAkezErIiRAIn0KKysgICAgZnVu Y19lcnJvciAiU2VlIHRoZSAkUEFDS0FHRSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0 aW9uLiIKKysgICAgZnVuY19mYXRhbF9lcnJvciAiRmF0YWwgY29uZmlndXJhdGlvbiBlcnJvci4i CisrfQorKworKworKyMgZnVuY19jb25maWcKKysjIERpc3BsYXkgdGhlIGNvbmZpZ3VyYXRpb24g Zm9yIGFsbCB0aGUgdGFncyBpbiB0aGlzIHNjcmlwdC4KKytmdW5jX2NvbmZpZyAoKQorK3sKKysg ICAgcmVfYmVnaW5jZj0nXiMgIyMjIEJFR0lOIExJQlRPT0wnCisrICAgIHJlX2VuZGNmPSdeIyAj IyMgRU5EIExJQlRPT0wnCisrCisrICAgICMgRGVmYXVsdCBjb25maWd1cmF0aW9uLgorKyAgICAk U0VEICIxLC8kcmVfYmVnaW5jZiBDT05GSUcvZDsvJHJlX2VuZGNmIENPTkZJRy8sXCRkIiA8ICIk cHJvZ3BhdGgiCisrCisrICAgICMgTm93IHByaW50IHRoZSBjb25maWd1cmF0aW9ucyBmb3IgdGhl IHRhZ3MuCisrICAgIGZvciB0YWduYW1lIGluICR0YWdsaXN0OyBkbworKyAgICAgICRTRUQgLW4g Ii8kcmVfYmVnaW5jZiBUQUcgQ09ORklHOiAkdGFnbmFtZVwkLywvJHJlX2VuZGNmIFRBRyBDT05G SUc6ICR0YWduYW1lXCQvcCIgPCAiJHByb2dwYXRoIgorKyAgICBkb25lCisrCisrICAgIGV4aXQg JD8KKyt9CisrCisrIyBmdW5jX2ZlYXR1cmVzCisrIyBEaXNwbGF5IHRoZSBmZWF0dXJlcyBzdXBw b3J0ZWQgYnkgdGhpcyBzY3JpcHQuCisrZnVuY19mZWF0dXJlcyAoKQorK3sKKysgICAgZWNobyAi aG9zdDogJGhvc3QiCisrICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0 aGVuCisrICAgICAgZWNobyAiZW5hYmxlIHNoYXJlZCBsaWJyYXJpZXMiCisrICAgIGVsc2UKKysg ICAgICBlY2hvICJkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMiCisrICAgIGZpCisrICAgIGlmIHRl c3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KKysgICAgICBlY2hvICJlbmFibGUgc3Rh dGljIGxpYnJhcmllcyIKKysgICAgZWxzZQorKyAgICAgIGVjaG8gImRpc2FibGUgc3RhdGljIGxp YnJhcmllcyIKKysgICAgZmkKKysKKysgICAgZXhpdCAkPworK30KKysKKysjIGZ1bmNfZW5hYmxl X3RhZyB0YWduYW1lCisrIyBWZXJpZnkgdGhhdCBUQUdOQU1FIGlzIHZhbGlkLCBhbmQgZWl0aGVy IGZsYWcgYW4gZXJyb3IgYW5kIGV4aXQsIG9yCisrIyBlbmFibGUgdGhlIFRBR05BTUUgdGFnLiAg V2UgYWxzbyBhZGQgVEFHTkFNRSB0byB0aGUgZ2xvYmFsICR0YWdsaXN0CisrIyB2YXJpYWJsZSBo ZXJlLgorK2Z1bmNfZW5hYmxlX3RhZyAoKQorK3sKKysgICMgR2xvYmFsIHZhcmlhYmxlOgorKyAg dGFnbmFtZT0iJDEiCisrCisrICByZV9iZWdpbmNmPSJeIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcg Q09ORklHOiAkdGFnbmFtZVwkIgorKyAgcmVfZW5kY2Y9Il4jICMjIyBFTkQgTElCVE9PTCBUQUcg Q09ORklHOiAkdGFnbmFtZVwkIgorKyAgc2VkX2V4dHJhY3RjZj0iLyRyZV9iZWdpbmNmLywvJHJl X2VuZGNmL3AiCisrCisrICAjIFZhbGlkYXRlIHRhZ25hbWUuCisrICBjYXNlICR0YWduYW1lIGlu CisrICAgICpbIS1fQS1aYS16MC05LC9dKikKKysgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJpbnZh bGlkIHRhZyBuYW1lOiAkdGFnbmFtZSIKKysgICAgICA7OworKyAgZXNhYworKworKyAgIyBEb24n dCB0ZXN0IGZvciB0aGUgImRlZmF1bHQiIEMgdGFnLCBhcyB3ZSBrbm93IGl0J3MKKysgICMgdGhl cmUgYnV0IG5vdCBzcGVjaWFsbHkgbWFya2VkLgorKyAgY2FzZSAkdGFnbmFtZSBpbgorKyAgICBD QykgOzsKKysgICAgKikKKysgICAgICBpZiAkR1JFUCAiJHJlX2JlZ2luY2YiICIkcHJvZ3BhdGgi ID4vZGV2L251bGwgMj4mMTsgdGhlbgorKwl0YWdsaXN0PSIkdGFnbGlzdCAkdGFnbmFtZSIKKysK KysJIyBFdmFsdWF0ZSB0aGUgY29uZmlndXJhdGlvbi4gIEJlIGNhcmVmdWwgdG8gcXVvdGUgdGhl IHBhdGgKKysJIyBhbmQgdGhlIHNlZCBzY3JpcHQsIHRvIGF2b2lkIHNwbGl0dGluZyBvbiB3aGl0 ZXNwYWNlLCBidXQKKysJIyBhbHNvIGRvbid0IHVzZSBub24tcG9ydGFibGUgcXVvdGVzIHdpdGhp biBiYWNrcXVvdGVzIHdpdGhpbgorKwkjIHF1b3RlcyB3ZSBoYXZlIHRvIGRvIGl0IGluIDIgc3Rl cHM6CisrCWV4dHJhY3RlZGNmPWAkU0VEIC1uIC1lICIkc2VkX2V4dHJhY3RjZiIgPCAiJHByb2dw YXRoImAKKysJZXZhbCAiJGV4dHJhY3RlZGNmIgorKyAgICAgIGVsc2UKKysJZnVuY19lcnJvciAi aWdub3JpbmcgdW5rbm93biB0YWcgJHRhZ25hbWUiCisrICAgICAgZmkKKysgICAgICA7OworKyAg ZXNhYworK30KKysKKysjIFBhcnNlIG9wdGlvbnMgb25jZSwgdGhvcm91Z2hseS4gIFRoaXMgY29t ZXMgYXMgc29vbiBhcyBwb3NzaWJsZSBpbgorKyMgdGhlIHNjcmlwdCB0byBtYWtlIHRoaW5ncyBs aWtlIGBsaWJ0b29sIC0tdmVyc2lvbicgaGFwcGVuIHF1aWNrbHkuCisreworKworKyAgIyBTaG9y dGhhbmQgZm9yIC0tbW9kZT1mb28sIG9ubHkgdmFsaWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50Cisr ICBjYXNlICQxIGluCisrICBjbGVhbnxjbGVhfGNsZXxjbCkKKysgICAgc2hpZnQ7IHNldCBkdW1t eSAtLW1vZGUgY2xlYW4gJHsxKyIkQCJ9OyBzaGlmdAorKyAgICA7OworKyAgY29tcGlsZXxjb21w aWx8Y29tcGl8Y29tcHxjb218Y298YykKKysgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY29t cGlsZSAkezErIiRAIn07IHNoaWZ0CisrICAgIDs7CisrICBleGVjdXRlfGV4ZWN1dHxleGVjdXxl eGVjfGV4ZXxleHxlKQorKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBleGVjdXRlICR7MSsi JEAifTsgc2hpZnQKKysgICAgOzsKKysgIGZpbmlzaHxmaW5pc3xmaW5pfGZpbnxmaXxmKQorKyAg ICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBmaW5pc2ggJHsxKyIkQCJ9OyBzaGlmdAorKyAgICA7 OworKyAgaW5zdGFsbHxpbnN0YWx8aW5zdGF8aW5zdHxpbnN8aW58aSkKKysgICAgc2hpZnQ7IHNl dCBkdW1teSAtLW1vZGUgaW5zdGFsbCAkezErIiRAIn07IHNoaWZ0CisrICAgIDs7CisrICBsaW5r fGxpbnxsaXxsKQorKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBsaW5rICR7MSsiJEAifTsg c2hpZnQKKysgICAgOzsKKysgIHVuaW5zdGFsbHx1bmluc3RhbHx1bmluc3RhfHVuaW5zdHx1bmlu c3x1bmlufHVuaXx1bnx1KQorKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSB1bmluc3RhbGwg JHsxKyIkQCJ9OyBzaGlmdAorKyAgICA7OworKyAgZXNhYworKworKyAgIyBQYXJzZSBub24tbW9k ZSBzcGVjaWZpYyBhcmd1bWVudHM6CisrICB3aGlsZSB0ZXN0ICIkIyIgLWd0IDA7IGRvCisrICAg IG9wdD0iJDEiCisrICAgIHNoaWZ0CisrCisrICAgIGNhc2UgJG9wdCBpbgorKyAgICAgIC0tY29u ZmlnKQkJZnVuY19jb25maWcJCQkJCTs7CisrCisrICAgICAgLS1kZWJ1ZykJCXByZXNlcnZlX2Fy Z3M9IiRwcmVzZXJ2ZV9hcmdzICRvcHQiCisrCQkJZnVuY19lY2hvICJlbmFibGluZyBzaGVsbCB0 cmFjZSBtb2RlIgorKwkJCW9wdF9kZWJ1Zz0nc2V0IC14JworKwkJCSRvcHRfZGVidWcKKysJCQk7 OworKworKyAgICAgIC1kbG9wZW4pCQl0ZXN0ICIkIyIgLWVxIDAgJiYgZnVuY19taXNzaW5nX2Fy ZyAiJG9wdCIgJiYgYnJlYWsKKysJCQlleGVjdXRlX2RsZmlsZXM9IiRleGVjdXRlX2RsZmlsZXMg JDEiCisrCQkJc2hpZnQKKysJCQk7OworKworKyAgICAgIC0tZHJ5LXJ1biB8IC1uKQlvcHRfZHJ5 X3J1bj06CQkJCQk7OworKyAgICAgIC0tZmVhdHVyZXMpICAgICAgIGZ1bmNfZmVhdHVyZXMJCQkJ CTs7CisrICAgICAgLS1maW5pc2gpCQltb2RlPSJmaW5pc2giCQkJCQk7OworKworKyAgICAgIC0t bW9kZSkJCXRlc3QgIiQjIiAtZXEgMCAmJiBmdW5jX21pc3NpbmdfYXJnICIkb3B0IiAmJiBicmVh aworKwkJCWNhc2UgJDEgaW4KKysJCQkgICMgVmFsaWQgbW9kZSBhcmd1bWVudHM6CisrCQkJICBj bGVhbikJOzsKKysJCQkgIGNvbXBpbGUpCTs7CisrCQkJICBleGVjdXRlKQk7OworKwkJCSAgZmlu aXNoKQk7OworKwkJCSAgaW5zdGFsbCkJOzsKKysJCQkgIGxpbmspCQk7OworKwkJCSAgcmVsaW5r KQk7OworKwkJCSAgdW5pbnN0YWxsKQk7OworKworKwkJCSAgIyBDYXRjaCBhbnl0aGluZyBlbHNl IGFzIGFuIGVycm9yCisrCQkJICAqKSBmdW5jX2Vycm9yICJpbnZhbGlkIGFyZ3VtZW50IGZvciAk b3B0IgorKwkJCSAgICAgZXhpdF9jbWQ9ZXhpdAorKwkJCSAgICAgYnJlYWsKKysJCQkgICAgIDs7 CisrCQkgICAgICAgIGVzYWMKKysKKysJCQltb2RlPSIkMSIKKysJCQlzaGlmdAorKwkJCTs7Cisr CisrICAgICAgLS1wcmVzZXJ2ZS1kdXAtZGVwcykKKysJCQlvcHRfZHVwbGljYXRlX2RlcHM9OgkJ CQk7OworKworKyAgICAgIC0tcXVpZXR8LS1zaWxlbnQpCXByZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2 ZV9hcmdzICRvcHQiCisrCQkJb3B0X3NpbGVudD06CisrCQkJb3B0X3ZlcmJvc2U9ZmFsc2UKKysJ CQk7OworKworKyAgICAgIC0tbm8tcXVpZXR8LS1uby1zaWxlbnQpCisrCQkJcHJlc2VydmVfYXJn cz0iJHByZXNlcnZlX2FyZ3MgJG9wdCIKKysJCQlvcHRfc2lsZW50PWZhbHNlCisrCQkJOzsKKysK KysgICAgICAtLXZlcmJvc2V8IC12KQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0 IgorKwkJCW9wdF9zaWxlbnQ9ZmFsc2UKKysJCQlvcHRfdmVyYm9zZT06CisrCQkJOzsKKysKKysg ICAgICAtLW5vLXZlcmJvc2UpCXByZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2ZV9hcmdzICRvcHQiCisr CQkJb3B0X3ZlcmJvc2U9ZmFsc2UKKysJCQk7OworKworKyAgICAgIC0tdGFnKQkJdGVzdCAiJCMi IC1lcSAwICYmIGZ1bmNfbWlzc2luZ19hcmcgIiRvcHQiICYmIGJyZWFrCisrCQkJcHJlc2VydmVf YXJncz0iJHByZXNlcnZlX2FyZ3MgJG9wdCAkMSIKKysJCQlmdW5jX2VuYWJsZV90YWcgIiQxIgkj IHRhZ25hbWUgaXMgc2V0IGhlcmUKKysJCQlzaGlmdAorKwkJCTs7CisrCisrICAgICAgIyBTZXBh cmF0ZSBvcHRhcmdzIHRvIGxvbmcgb3B0aW9uczoKKysgICAgICAtZGxvcGVuPSp8LS1tb2RlPSp8 LS10YWc9KikKKysJCQlmdW5jX29wdF9zcGxpdCAiJG9wdCIKKysJCQlzZXQgZHVtbXkgIiRmdW5j X29wdF9zcGxpdF9vcHQiICIkZnVuY19vcHRfc3BsaXRfYXJnIiAkezErIiRAIn0KKysJCQlzaGlm dAorKwkJCTs7CisrCisrICAgICAgLVw/fC1oKQkJZnVuY191c2FnZQkJCQkJOzsKKysgICAgICAt LWhlbHApCQlvcHRfaGVscD06CQkJCQk7OworKyAgICAgIC0taGVscC1hbGwpCW9wdF9oZWxwPSc6 IGhlbHAtYWxsJwkJCQk7OworKyAgICAgIC0tdmVyc2lvbikJZnVuY192ZXJzaW9uCQkJCQk7Owor KworKyAgICAgIC0qKQkJZnVuY19mYXRhbF9oZWxwICJ1bnJlY29nbml6ZWQgb3B0aW9uIFxgJG9w dCciCTs7CisrCisrICAgICAgKikJCW5vbm9wdD0iJG9wdCIKKysJCQlicmVhaworKwkJCTs7Cisr ICAgIGVzYWMKKysgIGRvbmUKKysKKysKKysgIGNhc2UgJGhvc3QgaW4KKysgICAgKmN5Z3dpbiog fCAqbWluZ3cqIHwgKnB3MzIqIHwgKmNlZ2NjKikKKysgICAgICAjIGRvbid0IGVsaW1pbmF0ZSBk dXBsaWNhdGlvbnMgaW4gJHBvc3RkZXBzIGFuZCAkcHJlZGVwcworKyAgICAgIG9wdF9kdXBsaWNh dGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM9OgorKyAgICAgIDs7CisrICAgICopCisrICAgICAg b3B0X2R1cGxpY2F0ZV9jb21waWxlcl9nZW5lcmF0ZWRfZGVwcz0kb3B0X2R1cGxpY2F0ZV9kZXBz CisrICAgICAgOzsKKysgIGVzYWMKKysKKysgICMgSGF2aW5nIHdhcm5lZCBhYm91dCBhbGwgbWlz LXNwZWNpZmllZCBvcHRpb25zLCBiYWlsIG91dCBpZgorKyAgIyBhbnl0aGluZyB3YXMgd3Jvbmcu CisrICAkZXhpdF9jbWQgJEVYSVRfRkFJTFVSRQorK30KKysKKysjIGZ1bmNfY2hlY2tfdmVyc2lv bl9tYXRjaAorKyMgRW5zdXJlIHRoYXQgd2UgYXJlIHVzaW5nIG00IG1hY3JvcywgYW5kIGxpYnRv b2wgc2NyaXB0IGZyb20gdGhlIHNhbWUKKysjIHJlbGVhc2Ugb2YgbGlidG9vbC4KKytmdW5jX2No ZWNrX3ZlcnNpb25fbWF0Y2ggKCkKKyt7CisrICBpZiB0ZXN0ICIkcGFja2FnZV9yZXZpc2lvbiIg IT0gIiRtYWNyb19yZXZpc2lvbiI7IHRoZW4KKysgICAgaWYgdGVzdCAiJFZFUlNJT04iICE9ICIk bWFjcm9fdmVyc2lvbiI7IHRoZW4KKysgICAgICBpZiB0ZXN0IC16ICIkbWFjcm9fdmVyc2lvbiI7 IHRoZW4KKysgICAgICAgIGNhdCA+JjIgPDxfTFRfRU9GCisrJHByb2duYW1lOiBWZXJzaW9uIG1p c21hdGNoIGVycm9yLiAgVGhpcyBpcyAkUEFDS0FHRSAkVkVSU0lPTiwgYnV0IHRoZQorKyRwcm9n bmFtZTogZGVmaW5pdGlvbiBvZiB0aGlzIExUX0lOSVQgY29tZXMgZnJvbSBhbiBvbGRlciByZWxl YXNlLgorKyRwcm9nbmFtZTogWW91IHNob3VsZCByZWNyZWF0ZSBhY2xvY2FsLm00IHdpdGggbWFj cm9zIGZyb20gJFBBQ0tBR0UgJFZFUlNJT04KKyskcHJvZ25hbWU6IGFuZCBydW4gYXV0b2NvbmYg YWdhaW4uCisrX0xUX0VPRgorKyAgICAgIGVsc2UKKysgICAgICAgIGNhdCA+JjIgPDxfTFRfRU9G CisrJHByb2duYW1lOiBWZXJzaW9uIG1pc21hdGNoIGVycm9yLiAgVGhpcyBpcyAkUEFDS0FHRSAk VkVSU0lPTiwgYnV0IHRoZQorKyRwcm9nbmFtZTogZGVmaW5pdGlvbiBvZiB0aGlzIExUX0lOSVQg Y29tZXMgZnJvbSAkUEFDS0FHRSAkbWFjcm9fdmVyc2lvbi4KKyskcHJvZ25hbWU6IFlvdSBzaG91 bGQgcmVjcmVhdGUgYWNsb2NhbC5tNCB3aXRoIG1hY3JvcyBmcm9tICRQQUNLQUdFICRWRVJTSU9O CisrJHByb2duYW1lOiBhbmQgcnVuIGF1dG9jb25mIGFnYWluLgorK19MVF9FT0YKKysgICAgICBm aQorKyAgICBlbHNlCisrICAgICAgY2F0ID4mMiA8PF9MVF9FT0YKKyskcHJvZ25hbWU6IFZlcnNp b24gbWlzbWF0Y2ggZXJyb3IuICBUaGlzIGlzICRQQUNLQUdFICRWRVJTSU9OLCByZXZpc2lvbiAk cGFja2FnZV9yZXZpc2lvbiwKKyskcHJvZ25hbWU6IGJ1dCB0aGUgZGVmaW5pdGlvbiBvZiB0aGlz IExUX0lOSVQgY29tZXMgZnJvbSByZXZpc2lvbiAkbWFjcm9fcmV2aXNpb24uCisrJHByb2duYW1l OiBZb3Ugc2hvdWxkIHJlY3JlYXRlIGFjbG9jYWwubTQgd2l0aCBtYWNyb3MgZnJvbSByZXZpc2lv biAkcGFja2FnZV9yZXZpc2lvbgorKyRwcm9nbmFtZTogb2YgJFBBQ0tBR0UgJFZFUlNJT04gYW5k IHJ1biBhdXRvY29uZiBhZ2Fpbi4KKytfTFRfRU9GCisrICAgIGZpCisrCisrICAgIGV4aXQgJEVY SVRfTUlTTUFUQ0gKKysgIGZpCisrfQorKworKworKyMjIC0tLS0tLS0tLS0tICMjCisrIyMgICAg TWFpbi4gICAgIyMKKysjIyAtLS0tLS0tLS0tLSAjIworKworKyRvcHRfaGVscCB8fCB7CisrICAj IFNhbml0eSBjaGVja3MgZmlyc3Q6CisrICBmdW5jX2NoZWNrX3ZlcnNpb25fbWF0Y2gKKysKKysg IGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllcyAmJiB0ZXN0ICIkYnVpbGRfb2xk X2xpYnMiICE9IHllczsgdGhlbgorKyAgICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gIm5vdCBj b25maWd1cmVkIHRvIGJ1aWxkIGFueSBraW5kIG9mIGxpYnJhcnkiCisrICBmaQorKworKyAgdGVz dCAteiAiJG1vZGUiICYmIGZ1bmNfZmF0YWxfZXJyb3IgImVycm9yOiB5b3UgbXVzdCBzcGVjaWZ5 IGEgTU9ERS4iCisrCisrCisrICAjIERhcndpbiBzdWNrcworKyAgZXZhbCBzdGRfc2hyZXh0PVwi JHNocmV4dF9jbWRzXCIKKysKKysKKysgICMgT25seSBleGVjdXRlIG1vZGUgaXMgYWxsb3dlZCB0 byBoYXZlIC1kbG9wZW4gZmxhZ3MuCisrICBpZiB0ZXN0IC1uICIkZXhlY3V0ZV9kbGZpbGVzIiAm JiB0ZXN0ICIkbW9kZSIgIT0gZXhlY3V0ZTsgdGhlbgorKyAgICBmdW5jX2Vycm9yICJ1bnJlY29n bml6ZWQgb3B0aW9uIFxgLWRsb3BlbiciCisrICAgICRFQ0hPICIkaGVscCIgMT4mMgorKyAgICBl eGl0ICRFWElUX0ZBSUxVUkUKKysgIGZpCisrCisrICAjIENoYW5nZSB0aGUgaGVscCBtZXNzYWdl IHRvIGEgbW9kZS1zcGVjaWZpYyBvbmUuCisrICBnZW5lcmljX2hlbHA9IiRoZWxwIgorKyAgaGVs cD0iVHJ5IFxgJHByb2duYW1lIC0taGVscCAtLW1vZGU9JG1vZGUnIGZvciBtb3JlIGluZm9ybWF0 aW9uLiIKKyt9CisrCisrCisrIyBmdW5jX2xhbGliX3AgZmlsZQorKyMgVHJ1ZSBpZmYgRklMRSBp cyBhIGxpYnRvb2wgYC5sYScgbGlicmFyeSBvciBgLmxvJyBvYmplY3QgZmlsZS4KKysjIFRoaXMg ZnVuY3Rpb24gaXMgb25seSBhIGJhc2ljIHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1 c2ggb3V0CisrIyBkZXRlcm1pbmVkIGltcG9zdGVycy4KKytmdW5jX2xhbGliX3AgKCkKKyt7Cisr ICAgIHRlc3QgLWYgIiQxIiAmJgorKyAgICAgICRTRUQgLWUgNHEgIiQxIiAyPi9kZXYvbnVsbCBc CisrICAgICAgICB8ICRHUkVQICJeIyBHZW5lcmF0ZWQgYnkgLiokUEFDS0FHRSIgPiAvZGV2L251 bGwgMj4mMQorK30KKysKKysjIGZ1bmNfbGFsaWJfdW5zYWZlX3AgZmlsZQorKyMgVHJ1ZSBpZmYg RklMRSBpcyBhIGxpYnRvb2wgYC5sYScgbGlicmFyeSBvciBgLmxvJyBvYmplY3QgZmlsZS4KKysj IFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgc2FtZSBjaGVjayBhcyBmdW5jX2xhbGliX3Ag d2l0aG91dAorKyMgcmVzb3J0aW5nIHRvIGV4dGVybmFsIHByb2dyYW1zLiAgVG8gdGhpcyBlbmQs IGl0IHJlZGlyZWN0cyBzdGRpbiBhbmQKKysjIGNsb3NlcyBpdCBhZnRlcndhcmRzLCB3aXRob3V0 IHNhdmluZyB0aGUgb3JpZ2luYWwgZmlsZSBkZXNjcmlwdG9yLgorKyMgQXMgYSBzYWZldHkgbWVh c3VyZSwgdXNlIGl0IG9ubHkgd2hlcmUgYSBuZWdhdGl2ZSByZXN1bHQgd291bGQgYmUKKysjIGZh dGFsIGFueXdheS4gIFdvcmtzIGlmIGBmaWxlJyBkb2VzIG5vdCBleGlzdC4KKytmdW5jX2xhbGli X3Vuc2FmZV9wICgpCisreworKyAgICBsYWxpYl9wPW5vCisrICAgIGlmIHRlc3QgLWYgIiQxIiAm JiB0ZXN0IC1yICIkMSIgJiYgZXhlYyA1PCYwIDwiJDEiOyB0aGVuCisrCWZvciBsYWxpYl9wX2wg aW4gMSAyIDMgNAorKwlkbworKwkgICAgcmVhZCBsYWxpYl9wX2xpbmUKKysJICAgIGNhc2UgIiRs YWxpYl9wX2xpbmUiIGluCisrCQlcI1wgR2VuZXJhdGVkXCBieVwgKiRQQUNLQUdFKiApIGxhbGli X3A9eWVzOyBicmVhazs7CisrCSAgICBlc2FjCisrCWRvbmUKKysJZXhlYyAwPCY1IDU8Ji0KKysg ICAgZmkKKysgICAgdGVzdCAiJGxhbGliX3AiID0geWVzCisrfQorKworKyMgZnVuY19sdHdyYXBw ZXJfc2NyaXB0X3AgZmlsZQorKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgd3JhcHBlciBz Y3JpcHQKKysjIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhIGJhc2ljIHNhbml0eSBjaGVjazsgaXQg d2lsbCBoYXJkbHkgZmx1c2ggb3V0CisrIyBkZXRlcm1pbmVkIGltcG9zdGVycy4KKytmdW5jX2x0 d3JhcHBlcl9zY3JpcHRfcCAoKQorK3sKKysgICAgZnVuY19sYWxpYl9wICIkMSIKKyt9CisrCisr IyBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgZmlsZQorKyMgVHJ1ZSBpZmYgRklMRSBpcyBh IGxpYnRvb2wgd3JhcHBlciBleGVjdXRhYmxlCisrIyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYSBi YXNpYyBzYW5pdHkgY2hlY2s7IGl0IHdpbGwgaGFyZGx5IGZsdXNoIG91dAorKyMgZGV0ZXJtaW5l ZCBpbXBvc3RlcnMuCisrZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICgpCisreworKyAgICBm dW5jX2x0d3JhcHBlcl9leGVjX3N1ZmZpeD0KKysgICAgY2FzZSAkMSBpbgorKyAgICAqLmV4ZSkg OzsKKysgICAgKikgZnVuY19sdHdyYXBwZXJfZXhlY19zdWZmaXg9LmV4ZSA7OworKyAgICBlc2Fj CisrICAgICRHUkVQICIkbWFnaWNfZXhlIiAiJDEkZnVuY19sdHdyYXBwZXJfZXhlY19zdWZmaXgi ID4vZGV2L251bGwgMj4mMQorK30KKysKKysjIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgZmls ZQorKyMgQXNzdW1lcyBmaWxlIGlzIGFuIGx0d3JhcHBlcl9leGVjdXRhYmxlCisrIyB1c2VzICRm aWxlIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgZmlsZW5hbWUgZm9yIGEKKysjIHRlbXBv cmFyeSBsdHdyYXBwZXJfc2NyaXB0LgorK2Z1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgKCkKKyt7 CisrICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0PSIiCisrICAgIGlmIGZ1bmNf bHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJDEiOyB0aGVuCisrCWZ1bmNfZGlybmFtZV9hbmRfYmFz ZW5hbWUgIiQxIiAiIiAiLiIKKysJZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZnVuY19iYXNl bmFtZV9yZXN1bHQiCisrCWZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0PSIkZnVuY19k aXJuYW1lX3Jlc3VsdC8kb2JqZGlyLyR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0fV9sdHNod3JhcHBl ciIKKysgICAgZmkKKyt9CisrCisrIyBmdW5jX2x0d3JhcHBlcl9wIGZpbGUKKysjIFRydWUgaWZm IEZJTEUgaXMgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9yIHdyYXBwZXIgZXhlY3V0YWJsZQor KyMgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhh cmRseSBmbHVzaCBvdXQKKysjIGRldGVybWluZWQgaW1wb3N0ZXJzLgorK2Z1bmNfbHR3cmFwcGVy X3AgKCkKKyt7CisrICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkMSIgfHwgZnVuY19sdHdy YXBwZXJfZXhlY3V0YWJsZV9wICIkMSIKKyt9CisrCisrCisrIyBmdW5jX2V4ZWN1dGVfY21kcyBj b21tYW5kcyBmYWlsX2NtZAorKyMgRXhlY3V0ZSB0aWxkZS1kZWxpbWl0ZWQgQ09NTUFORFMuCisr IyBJZiBGQUlMX0NNRCBpcyBnaXZlbiwgZXZhbCB0aGF0IHVwb24gZmFpbHVyZS4KKysjIEZBSUxf Q01EIG1heSByZWFkLWFjY2VzcyB0aGUgY3VycmVudCBjb21tYW5kIGluIHZhcmlhYmxlIENNRCEK KytmdW5jX2V4ZWN1dGVfY21kcyAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBzYXZlX2lm cz0kSUZTOyBJRlM9J34nCisrICAgIGZvciBjbWQgaW4gJDE7IGRvCisrICAgICAgSUZTPSRzYXZl X2lmcworKyAgICAgIGV2YWwgY21kPVwiJGNtZFwiCisrICAgICAgZnVuY19zaG93X2V2YWwgIiRj bWQiICIkezItOn0iCisrICAgIGRvbmUKKysgICAgSUZTPSRzYXZlX2lmcworK30KKysKKysKKysj IGZ1bmNfc291cmNlIGZpbGUKKysjIFNvdXJjZSBGSUxFLCBhZGRpbmcgZGlyZWN0b3J5IGNvbXBv bmVudCBpZiBuZWNlc3NhcnkuCisrIyBOb3RlIHRoYXQgaXQgaXMgbm90IG5lY2Vzc2FyeSBvbiBj eWd3aW4vbWluZ3cgdG8gYXBwZW5kIGEgZG90IHRvCisrIyBGSUxFIGV2ZW4gaWYgYm90aCBGSUxF IGFuZCBGSUxFLmV4ZSBleGlzdDogYXV0b21hdGljLWFwcGVuZC0uZXhlCisrIyBiZWhhdmlvciBo YXBwZW5zIG9ubHkgZm9yIGV4ZWMoMyksIG5vdCBmb3Igb3BlbigyKSEgIEFsc28sIHNvdXJjaW5n CisrIyBgRklMRS4nIGRvZXMgbm90IHdvcmsgb24gY3lnd2luIG1hbmFnZWQgbW91bnRzLgorK2Z1 bmNfc291cmNlICgpCisreworKyAgICAkb3B0X2RlYnVnCisrICAgIGNhc2UgJDEgaW4KKysgICAg Ki8qIHwgKlxcKikJLiAiJDEiIDs7CisrICAgICopCQkuICIuLyQxIiA7OworKyAgICBlc2FjCisr fQorKworKworKyMgZnVuY19pbmZlcl90YWcgYXJnCisrIyBJbmZlciB0YWdnZWQgY29uZmlndXJh dGlvbiB0byB1c2UgaWYgYW55IGFyZSBhdmFpbGFibGUgYW5kCisrIyBpZiBvbmUgd2Fzbid0IGNo b3NlbiB2aWEgdGhlICItLXRhZyIgY29tbWFuZCBsaW5lIG9wdGlvbi4KKysjIE9ubHkgYXR0ZW1w dCB0aGlzIGlmIHRoZSBjb21waWxlciBpbiB0aGUgYmFzZSBjb21waWxlCisrIyBjb21tYW5kIGRv ZXNuJ3QgbWF0Y2ggdGhlIGRlZmF1bHQgY29tcGlsZXIuCisrIyBhcmcgaXMgdXN1YWxseSBvZiB0 aGUgZm9ybSAnZ2NjIC4uLicKKytmdW5jX2luZmVyX3RhZyAoKQorK3sKKysgICAgJG9wdF9kZWJ1 ZworKyAgICBpZiB0ZXN0IC1uICIkYXZhaWxhYmxlX3RhZ3MiICYmIHRlc3QgLXogIiR0YWduYW1l IjsgdGhlbgorKyAgICAgIENDX3F1b3RlZD0KKysgICAgICBmb3IgYXJnIGluICRDQzsgZG8KKysg ICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisrCUNDX3F1b3RlZD0iJENDX3F1b3Rl ZCAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrICAgICAgZG9uZQorKyAgICAgIENDX2V4 cGFuZGVkPWBmdW5jX2VjaG9fYWxsICRDQ2AKKysgICAgICBDQ19xdW90ZWRfZXhwYW5kZWQ9YGZ1 bmNfZWNob19hbGwgJENDX3F1b3RlZGAKKysgICAgICBjYXNlICRAIGluCisrICAgICAgIyBCbGFu a3MgaW4gdGhlIGNvbW1hbmQgbWF5IGhhdmUgYmVlbiBzdHJpcHBlZCBieSB0aGUgY2FsbGluZyBz aGVsbCwKKysgICAgICAjIGJ1dCBub3QgZnJvbSB0aGUgQ0MgZW52aXJvbm1lbnQgdmFyaWFibGUg d2hlbiBjb25maWd1cmUgd2FzIHJ1bi4KKysgICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiICRD Q19leHBhbmRlZCAiKiB8ICIkQ0NfZXhwYW5kZWQgIiogfCBcCisrICAgICAgIiAkQ0NfcXVvdGVk IiogfCAiJENDX3F1b3RlZCAiKiB8ICIgJENDX3F1b3RlZF9leHBhbmRlZCAiKiB8ICIkQ0NfcXVv dGVkX2V4cGFuZGVkICIqKSA7OworKyAgICAgICMgQmxhbmtzIGF0IHRoZSBzdGFydCBvZiAkYmFz ZV9jb21waWxlIHdpbGwgY2F1c2UgdGhpcyB0byBmYWlsCisrICAgICAgIyBpZiB3ZSBkb24ndCBj aGVjayBmb3IgdGhlbSBhcyB3ZWxsLgorKyAgICAgICopCisrCWZvciB6IGluICRhdmFpbGFibGVf dGFnczsgZG8KKysJICBpZiAkR1JFUCAiXiMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzog JHokIiA8ICIkcHJvZ3BhdGgiID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICAjIEV2YWx1YXRlIHRo ZSBjb25maWd1cmF0aW9uLgorKwkgICAgZXZhbCAiYCR7U0VEfSAtbiAtZSAnL14jICMjIyBCRUdJ TiBMSUJUT09MIFRBRyBDT05GSUc6ICckeickLywvXiMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05G SUc6ICckeickL3AnIDwgJHByb2dwYXRoYCIKKysJICAgIENDX3F1b3RlZD0KKysJICAgIGZvciBh cmcgaW4gJENDOyBkbworKwkgICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5pbmcgb3Ro ZXIgc2hlbGwgbWV0YWNoYXJhY3RlcnMuCisrCSAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRh cmciCisrCSAgICAgIENDX3F1b3RlZD0iJENDX3F1b3RlZCAkZnVuY19xdW90ZV9mb3JfZXZhbF9y ZXN1bHQiCisrCSAgICBkb25lCisrCSAgICBDQ19leHBhbmRlZD1gZnVuY19lY2hvX2FsbCAkQ0Ng CisrCSAgICBDQ19xdW90ZWRfZXhwYW5kZWQ9YGZ1bmNfZWNob19hbGwgJENDX3F1b3RlZGAKKysJ ICAgIGNhc2UgIiRAICIgaW4KKysJICAgICIgJENDICIqIHwgIiRDQyAiKiB8ICIgJENDX2V4cGFu ZGVkICIqIHwgIiRDQ19leHBhbmRlZCAiKiB8IFwKKysJICAgICIgJENDX3F1b3RlZCIqIHwgIiRD Q19xdW90ZWQgIiogfCAiICRDQ19xdW90ZWRfZXhwYW5kZWQgIiogfCAiJENDX3F1b3RlZF9leHBh bmRlZCAiKikKKysJICAgICAgIyBUaGUgY29tcGlsZXIgaW4gdGhlIGJhc2UgY29tcGlsZSBjb21t YW5kIG1hdGNoZXMKKysJICAgICAgIyB0aGUgb25lIGluIHRoZSB0YWdnZWQgY29uZmlndXJhdGlv bi4KKysJICAgICAgIyBBc3N1bWUgdGhpcyBpcyB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24gd2Ug d2FudC4KKysJICAgICAgdGFnbmFtZT0kegorKwkgICAgICBicmVhaworKwkgICAgICA7OworKwkg ICAgZXNhYworKwkgIGZpCisrCWRvbmUKKysJIyBJZiAkdGFnbmFtZSBzdGlsbCBpc24ndCBzZXQs IHRoZW4gbm8gdGFnZ2VkIGNvbmZpZ3VyYXRpb24KKysJIyB3YXMgZm91bmQgYW5kIGxldCB0aGUg dXNlciBrbm93IHRoYXQgdGhlICItLXRhZyIgY29tbWFuZAorKwkjIGxpbmUgb3B0aW9uIG11c3Qg YmUgdXNlZC4KKysJaWYgdGVzdCAteiAiJHRhZ25hbWUiOyB0aGVuCisrCSAgZnVuY19lY2hvICJ1 bmFibGUgdG8gaW5mZXIgdGFnZ2VkIGNvbmZpZ3VyYXRpb24iCisrCSAgZnVuY19mYXRhbF9lcnJv ciAic3BlY2lmeSBhIHRhZyB3aXRoIFxgLS10YWcnIgorKyMJZWxzZQorKyMJICBmdW5jX3ZlcmJv c2UgInVzaW5nICR0YWduYW1lIHRhZ2dlZCBjb25maWd1cmF0aW9uIgorKwlmaQorKwk7OworKyAg ICAgIGVzYWMKKysgICAgZmkKKyt9CisrCisrCisrCisrIyBmdW5jX3dyaXRlX2xpYnRvb2xfb2Jq ZWN0IG91dHB1dF9uYW1lIHBpY19uYW1lIG5vbnBpY19uYW1lCisrIyBDcmVhdGUgYSBsaWJ0b29s IG9iamVjdCBmaWxlIChhbmFsb2dvdXMgdG8gYSAiLmxhIiBmaWxlKSwKKysjIGJ1dCBkb24ndCBj cmVhdGUgaXQgaWYgd2UncmUgZG9pbmcgYSBkcnkgcnVuLgorK2Z1bmNfd3JpdGVfbGlidG9vbF9v YmplY3QgKCkKKyt7CisrICAgIHdyaXRlX2xpYm9iaj0kezF9CisrICAgIGlmIHRlc3QgIiRidWls ZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrICAgICAgd3JpdGVfbG9iaj1cJyR7Mn1cJwor KyAgICBlbHNlCisrICAgICAgd3JpdGVfbG9iaj1ub25lCisrICAgIGZpCisrCisrICAgIGlmIHRl c3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KKysgICAgICB3cml0ZV9vbGRvYmo9XCck ezN9XCcKKysgICAgZWxzZQorKyAgICAgIHdyaXRlX29sZG9iaj1ub25lCisrICAgIGZpCisrCisr ICAgICRvcHRfZHJ5X3J1biB8fCB7CisrICAgICAgY2F0ID4ke3dyaXRlX2xpYm9ian1UIDw8RU9G CisrIyAkd3JpdGVfbGlib2JqIC0gYSBsaWJ0b29sIG9iamVjdCBmaWxlCisrIyBHZW5lcmF0ZWQg YnkgJFBST0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCisrIworKyMgUGxl YXNlIERPIE5PVCBkZWxldGUgdGhpcyBmaWxlIQorKyMgSXQgaXMgbmVjZXNzYXJ5IGZvciBsaW5r aW5nIHRoZSBsaWJyYXJ5LgorKworKyMgTmFtZSBvZiB0aGUgUElDIG9iamVjdC4KKytwaWNfb2Jq ZWN0PSR3cml0ZV9sb2JqCisrCisrIyBOYW1lIG9mIHRoZSBub24tUElDIG9iamVjdAorK25vbl9w aWNfb2JqZWN0PSR3cml0ZV9vbGRvYmoKKysKKytFT0YKKysgICAgICAkTVYgIiR7d3JpdGVfbGli b2JqfVQiICIke3dyaXRlX2xpYm9ian0iCisrICAgIH0KKyt9CisrCisrIyBmdW5jX21vZGVfY29t cGlsZSBhcmcuLi4KKytmdW5jX21vZGVfY29tcGlsZSAoKQorK3sKKysgICAgJG9wdF9kZWJ1Zwor KyAgICAjIEdldCB0aGUgY29tcGlsYXRpb24gY29tbWFuZCBhbmQgdGhlIHNvdXJjZSBmaWxlLgor KyAgICBiYXNlX2NvbXBpbGU9CisrICAgIHNyY2ZpbGU9IiRub25vcHQiICAjICBhbHdheXMga2Vl cCBhIG5vbi1lbXB0eSB2YWx1ZSBpbiAic3JjZmlsZSIKKysgICAgc3VwcHJlc3Nfb3B0PXllcwor KyAgICBzdXBwcmVzc19vdXRwdXQ9CisrICAgIGFyZ19tb2RlPW5vcm1hbAorKyAgICBsaWJvYmo9 CisrICAgIGxhdGVyPQorKyAgICBwaWVfZmxhZz0KKysKKysgICAgZm9yIGFyZworKyAgICBkbwor KyAgICAgIGNhc2UgJGFyZ19tb2RlIGluCisrICAgICAgYXJnICApCisrCSMgZG8gbm90ICJjb250 aW51ZSIuICBJbnN0ZWFkLCBhZGQgdGhpcyB0byBiYXNlX2NvbXBpbGUKKysJbGFzdGFyZz0iJGFy ZyIKKysJYXJnX21vZGU9bm9ybWFsCisrCTs7CisrCisrICAgICAgdGFyZ2V0ICkKKysJbGlib2Jq PSIkYXJnIgorKwlhcmdfbW9kZT1ub3JtYWwKKysJY29udGludWUKKysJOzsKKysKKysgICAgICBu b3JtYWwgKQorKwkjIEFjY2VwdCBhbnkgY29tbWFuZC1saW5lIG9wdGlvbnMuCisrCWNhc2UgJGFy ZyBpbgorKwktbykKKysJICB0ZXN0IC1uICIkbGlib2JqIiAmJiBcCisrCSAgICBmdW5jX2ZhdGFs X2Vycm9yICJ5b3UgY2Fubm90IHNwZWNpZnkgXGAtbycgbW9yZSB0aGFuIG9uY2UiCisrCSAgYXJn X21vZGU9dGFyZ2V0CisrCSAgY29udGludWUKKysJICA7OworKworKwktcGllIHwgLWZwaWUgfCAt ZlBJRSkKKysgICAgICAgICAgcGllX2ZsYWc9IiRwaWVfZmxhZyAkYXJnIgorKwkgIGNvbnRpbnVl CisrCSAgOzsKKysKKysJLXNoYXJlZCB8IC1zdGF0aWMgfCAtcHJlZmVyLXBpYyB8IC1wcmVmZXIt bm9uLXBpYykKKysJICBsYXRlcj0iJGxhdGVyICRhcmciCisrCSAgY29udGludWUKKysJICA7Owor KworKwktbm8tc3VwcHJlc3MpCisrCSAgc3VwcHJlc3Nfb3B0PW5vCisrCSAgY29udGludWUKKysJ ICA7OworKworKwktWGNvbXBpbGVyKQorKwkgIGFyZ19tb2RlPWFyZyAgIyAgdGhlIG5leHQgb25l IGdvZXMgaW50byB0aGUgImJhc2VfY29tcGlsZSIgYXJnIGxpc3QKKysJICBjb250aW51ZSAgICAg ICMgIFRoZSBjdXJyZW50ICJzcmNmaWxlIiB3aWxsIGVpdGhlciBiZSByZXRhaW5lZCBvcgorKwkg IDs7ICAgICAgICAgICAgIyAgcmVwbGFjZWQgbGF0ZXIuICBJIHdvdWxkIGd1ZXNzIHRoYXQgd291 bGQgYmUgYSBidWcuCisrCisrCS1XYywqKQorKwkgIGZ1bmNfc3RyaXBuYW1lICctV2MsJyAnJyAi JGFyZyIKKysJICBhcmdzPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJICBsYXN0YXJnPQorKwkg IHNhdmVfaWZzPSIkSUZTIjsgSUZTPScsJworKwkgIGZvciBhcmcgaW4gJGFyZ3M7IGRvCisrCSAg ICBJRlM9IiRzYXZlX2lmcyIKKysJICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisrCSAg ICBsYXN0YXJnPSIkbGFzdGFyZyAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCSAgZG9u ZQorKwkgIElGUz0iJHNhdmVfaWZzIgorKwkgIGZ1bmNfc3RyaXBuYW1lICcgJyAnJyAiJGxhc3Rh cmciCisrCSAgbGFzdGFyZz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCisrCSAgIyBBZGQgdGhl IGFyZ3VtZW50cyB0byBiYXNlX2NvbXBpbGUuCisrCSAgYmFzZV9jb21waWxlPSIkYmFzZV9jb21w aWxlICRsYXN0YXJnIgorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysKKysJKikKKysJICAjIEFjY2Vw dCB0aGUgY3VycmVudCBhcmd1bWVudCBhcyB0aGUgc291cmNlIGZpbGUuCisrCSAgIyBUaGUgcHJl dmlvdXMgInNyY2ZpbGUiIGJlY29tZXMgdGhlIGN1cnJlbnQgYXJndW1lbnQuCisrCSAgIworKwkg IGxhc3Rhcmc9IiRzcmNmaWxlIgorKwkgIHNyY2ZpbGU9IiRhcmciCisrCSAgOzsKKysJZXNhYyAg IyAgY2FzZSAkYXJnCisrCTs7CisrICAgICAgZXNhYyAgICAjICBjYXNlICRhcmdfbW9kZQorKwor KyAgICAgICMgQWVzdGhldGljYWxseSBxdW90ZSB0aGUgcHJldmlvdXMgYXJndW1lbnQuCisrICAg ICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGxhc3RhcmciCisrICAgICAgYmFzZV9jb21waWxlPSIk YmFzZV9jb21waWxlICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysgICAgZG9uZSAjIGZv ciBhcmcKKysKKysgICAgY2FzZSAkYXJnX21vZGUgaW4KKysgICAgYXJnKQorKyAgICAgIGZ1bmNf ZmF0YWxfZXJyb3IgInlvdSBtdXN0IHNwZWNpZnkgYW4gYXJndW1lbnQgZm9yIC1YY29tcGlsZSIK KysgICAgICA7OworKyAgICB0YXJnZXQpCisrICAgICAgZnVuY19mYXRhbF9lcnJvciAieW91IG11 c3Qgc3BlY2lmeSBhIHRhcmdldCB3aXRoIFxgLW8nIgorKyAgICAgIDs7CisrICAgICopCisrICAg ICAgIyBHZXQgdGhlIG5hbWUgb2YgdGhlIGxpYnJhcnkgb2JqZWN0LgorKyAgICAgIHRlc3QgLXog IiRsaWJvYmoiICYmIHsKKysJZnVuY19iYXNlbmFtZSAiJHNyY2ZpbGUiCisrCWxpYm9iaj0iJGZ1 bmNfYmFzZW5hbWVfcmVzdWx0IgorKyAgICAgIH0KKysgICAgICA7OworKyAgICBlc2FjCisrCisr ICAgICMgUmVjb2duaXplIHNldmVyYWwgZGlmZmVyZW50IGZpbGUgc3VmZml4ZXMuCisrICAgICMg SWYgdGhlIHVzZXIgc3BlY2lmaWVzIC1vIGZpbGUubywgaXQgaXMgcmVwbGFjZWQgd2l0aCBmaWxl LmxvCisrICAgIGNhc2UgJGxpYm9iaiBpbgorKyAgICAqLltjQ0ZTaWZtc29dIHwgXAorKyAgICAq LmFkYSB8ICouYWRiIHwgKi5hZHMgfCAqLmFzbSB8IFwKKysgICAgKi5jKysgfCAqLmNjIHwgKi5p aSB8ICouY2xhc3MgfCAqLmNwcCB8ICouY3h4IHwgXAorKyAgICAqLltmRl1bMDldPyB8ICouZm9y IHwgKi5qYXZhIHwgKi5vYmogfCAqLnN4IHwgKi5jdSB8ICouY3VwKQorKyAgICAgIGZ1bmNfeGZv cm0gIiRsaWJvYmoiCisrICAgICAgbGlib2JqPSRmdW5jX3hmb3JtX3Jlc3VsdAorKyAgICAgIDs7 CisrICAgIGVzYWMKKysKKysgICAgY2FzZSAkbGlib2JqIGluCisrICAgICoubG8pIGZ1bmNfbG8y byAiJGxpYm9iaiI7IG9iaj0kZnVuY19sbzJvX3Jlc3VsdCA7OworKyAgICAqKQorKyAgICAgIGZ1 bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBkZXRlcm1pbmUgbmFtZSBvZiBsaWJyYXJ5IG9iamVjdCBm cm9tIFxgJGxpYm9iaiciCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBmdW5jX2luZmVy X3RhZyAkYmFzZV9jb21waWxlCisrCisrICAgIGZvciBhcmcgaW4gJGxhdGVyOyBkbworKyAgICAg IGNhc2UgJGFyZyBpbgorKyAgICAgIC1zaGFyZWQpCisrCXRlc3QgIiRidWlsZF9saWJ0b29sX2xp YnMiICE9IHllcyAmJiBcCisrCSAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJjYW4gbm90IGJ1 aWxkIGEgc2hhcmVkIGxpYnJhcnkiCisrCWJ1aWxkX29sZF9saWJzPW5vCisrCWNvbnRpbnVlCisr CTs7CisrCisrICAgICAgLXN0YXRpYykKKysJYnVpbGRfbGlidG9vbF9saWJzPW5vCisrCWJ1aWxk X29sZF9saWJzPXllcworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1wcmVmZXItcGljKQor KwlwaWNfbW9kZT15ZXMKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtcHJlZmVyLW5vbi1w aWMpCisrCXBpY19tb2RlPW5vCisrCWNvbnRpbnVlCisrCTs7CisrICAgICAgZXNhYworKyAgICBk b25lCisrCisrICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRsaWJvYmoiCisrICAgIHRlc3QgIlgk bGlib2JqIiAhPSAiWCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIgXAorKyAgICAgICYmICRF Q0hPICJYJGxpYm9iaiIgfCAkR1JFUCAnW11+I14qe307PD4/IiciJyInCSAmKCl8YCRbXScgXAor KyAgICAgICYmIGZ1bmNfd2FybmluZyAibGlib2JqIG5hbWUgXGAkbGlib2JqJyBtYXkgbm90IGNv bnRhaW4gc2hlbGwgc3BlY2lhbCBjaGFyYWN0ZXJzLiIKKysgICAgZnVuY19kaXJuYW1lX2FuZF9i YXNlbmFtZSAiJG9iaiIgIi8iICIiCisrICAgIG9iam5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3Vs dCIKKysgICAgeGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisrICAgIGxvYmo9JHt4ZGlyfSRv YmpkaXIvJG9iam5hbWUKKysKKysgICAgdGVzdCAteiAiJGJhc2VfY29tcGlsZSIgJiYgXAorKyAg ICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhIGNvbXBpbGF0aW9uIGNvbW1h bmQiCisrCisrICAgICMgRGVsZXRlIGFueSBsZWZ0b3ZlciBsaWJyYXJ5IG9iamVjdHMuCisrICAg IGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KKysgICAgICByZW1vdmVsaXN0 PSIkb2JqICRsb2JqICRsaWJvYmogJHtsaWJvYmp9VCIKKysgICAgZWxzZQorKyAgICAgIHJlbW92 ZWxpc3Q9IiRsb2JqICRsaWJvYmogJHtsaWJvYmp9VCIKKysgICAgZmkKKysKKysgICAgIyBPbiBD eWd3aW4gdGhlcmUncyBubyAicmVhbCIgUElDIGZsYWcgc28gd2UgbXVzdCBidWlsZCBib3RoIG9i amVjdCB0eXBlcworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGN5Z3dpbiogfCBtaW5ndyog fCBwdzMyKiB8IG9zMiogfCBjZWdjYyopCisrICAgICAgcGljX21vZGU9ZGVmYXVsdAorKyAgICAg IDs7CisrICAgIGVzYWMKKysgICAgaWYgdGVzdCAiJHBpY19tb2RlIiA9IG5vICYmIHRlc3QgIiRk ZXBsaWJzX2NoZWNrX21ldGhvZCIgIT0gcGFzc19hbGw7IHRoZW4KKysgICAgICAjIG5vbi1QSUMg Y29kZSBpbiBzaGFyZWQgbGlicmFyaWVzIGlzIG5vdCBzdXBwb3J0ZWQKKysgICAgICBwaWNfbW9k ZT1kZWZhdWx0CisrICAgIGZpCisrCisrICAgICMgQ2FsY3VsYXRlIHRoZSBmaWxlbmFtZSBvZiB0 aGUgb3V0cHV0IG9iamVjdCBpZiBjb21waWxlciBkb2VzCisrICAgICMgbm90IHN1cHBvcnQgLW8g d2l0aCAtYworKyAgICBpZiB0ZXN0ICIkY29tcGlsZXJfY19vIiA9IG5vOyB0aGVuCisrICAgICAg b3V0cHV0X29iaj1gJEVDSE8gIiRzcmNmaWxlIiB8ICRTRUQgJ3MlXi4qLyUlOyBzJVwuW14uXSok JSUnYC4ke29iamV4dH0KKysgICAgICBsb2NrZmlsZT0iJG91dHB1dF9vYmoubG9jayIKKysgICAg ZWxzZQorKyAgICAgIG91dHB1dF9vYmo9CisrICAgICAgbmVlZF9sb2Nrcz1ubworKyAgICAgIGxv Y2tmaWxlPQorKyAgICBmaQorKworKyAgICAjIExvY2sgdGhpcyBjcml0aWNhbCBzZWN0aW9uIGlm IGl0IGlzIG5lZWRlZAorKyAgICAjIFdlIHVzZSB0aGlzIHNjcmlwdCBmaWxlIHRvIG1ha2UgdGhl IGxpbmssIGl0IGF2b2lkcyBjcmVhdGluZyBhIG5ldyBmaWxlCisrICAgIGlmIHRlc3QgIiRuZWVk X2xvY2tzIiA9IHllczsgdGhlbgorKyAgICAgIHVudGlsICRvcHRfZHJ5X3J1biB8fCBsbiAiJHBy b2dwYXRoIiAiJGxvY2tmaWxlIiAyPi9kZXYvbnVsbDsgZG8KKysJZnVuY19lY2hvICJXYWl0aW5n IGZvciAkbG9ja2ZpbGUgdG8gYmUgcmVtb3ZlZCIKKysJc2xlZXAgMgorKyAgICAgIGRvbmUKKysg ICAgZWxpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB3YXJuOyB0aGVuCisrICAgICAgaWYgdGVzdCAt ZiAiJGxvY2tmaWxlIjsgdGhlbgorKwkkRUNITyAiXAorKyoqKiBFUlJPUiwgJGxvY2tmaWxlIGV4 aXN0cyBhbmQgY29udGFpbnM6CisrYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgCisrCisrVGhp cyBpbmRpY2F0ZXMgdGhhdCBhbm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5nIHRvIHVzZSB0aGUgc2Ft ZQorK3RlbXBvcmFyeSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJv dW5kIGl0IGJlY2F1c2UKKyt5b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBvcnQgXGAtYycgYW5k IFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91CisrcmVwZWF0IHRoaXMgY29tcGlsYXRpb24sIGl0IG1h eSBzdWNjZWVkLCBieSBjaGFuY2UsIGJ1dCB5b3UgaGFkIGJldHRlcgorK2F2b2lkIHBhcmFsbGVs IGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCisrY29t cGlsZXIuIgorKworKwkkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0CisrCWV4aXQgJEVY SVRfRkFJTFVSRQorKyAgICAgIGZpCisrICAgICAgcmVtb3ZlbGlzdD0iJHJlbW92ZWxpc3QgJG91 dHB1dF9vYmoiCisrICAgICAgJEVDSE8gIiRzcmNmaWxlIiA+ICIkbG9ja2ZpbGUiCisrICAgIGZp CisrCisrICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3QKKysgICAgcmVtb3ZlbGlz dD0iJHJlbW92ZWxpc3QgJGxvY2tmaWxlIgorKyAgICB0cmFwICckb3B0X2RyeV9ydW4gfHwgJFJN ICRyZW1vdmVsaXN0OyBleGl0ICRFWElUX0ZBSUxVUkUnIDEgMiAxNQorKworKyAgICBpZiB0ZXN0 IC1uICIkZml4X3NyY2ZpbGVfcGF0aCI7IHRoZW4KKysgICAgICBldmFsIHNyY2ZpbGU9XCIkZml4 X3NyY2ZpbGVfcGF0aFwiCisrICAgIGZpCisrICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRzcmNm aWxlIgorKyAgICBxc3JjZmlsZT0kZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQKKysKKysgICAg IyBPbmx5IGJ1aWxkIGEgUElDIG9iamVjdCBpZiB3ZSBhcmUgYnVpbGRpbmcgbGlidG9vbCBsaWJy YXJpZXMuCisrICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisr ICAgICAgIyBXaXRob3V0IHRoaXMgYXNzaWdubWVudCwgYmFzZV9jb21waWxlIGdldHMgZW1wdGll ZC4KKysgICAgICBmYnNkX2hpZGVvdXNfc2hfYnVnPSRiYXNlX2NvbXBpbGUKKysKKysgICAgICBp ZiB0ZXN0ICIkcGljX21vZGUiICE9IG5vOyB0aGVuCisrCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUg JHFzcmNmaWxlICRwaWNfZmxhZyIKKysgICAgICBlbHNlCisrCSMgRG9uJ3QgYnVpbGQgUElDIGNv ZGUKKysJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUiCisrICAgICAgZmkKKysKKysg ICAgICBmdW5jX21rZGlyX3AgIiR4ZGlyJG9iamRpciIKKysKKysgICAgICBpZiB0ZXN0IC16ICIk b3V0cHV0X29iaiI7IHRoZW4KKysJIyBQbGFjZSBQSUMgb2JqZWN0cyBpbiAkb2JqZGlyCisrCWNv bW1hbmQ9IiRjb21tYW5kIC1vICRsb2JqIgorKyAgICAgIGZpCisrCisrICAgICAgZnVuY19zaG93 X2V2YWxfbG9jYWxlICIkY29tbWFuZCIJXAorKyAgICAgICAgICAndGVzdCAtbiAiJG91dHB1dF9v YmoiICYmICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAkRVhJVF9GQUlMVVJFJworKworKyAgICAgIGlm IHRlc3QgIiRuZWVkX2xvY2tzIiA9IHdhcm4gJiYKKysJIHRlc3QgIlhgY2F0ICRsb2NrZmlsZSAy Pi9kZXYvbnVsbGAiICE9ICJYJHNyY2ZpbGUiOyB0aGVuCisrCSRFQ0hPICJcCisrKioqIEVSUk9S LCAkbG9ja2ZpbGUgY29udGFpbnM6CisrYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgCisrCisr YnV0IGl0IHNob3VsZCBjb250YWluOgorKyRzcmNmaWxlCisrCisrVGhpcyBpbmRpY2F0ZXMgdGhh dCBhbm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5nIHRvIHVzZSB0aGUgc2FtZQorK3RlbXBvcmFyeSBv YmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UK Kyt5b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBvcnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0aGVy LiAgSWYgeW91CisrcmVwZWF0IHRoaXMgY29tcGlsYXRpb24sIGl0IG1heSBzdWNjZWVkLCBieSBj aGFuY2UsIGJ1dCB5b3UgaGFkIGJldHRlcgorK2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAt aikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCisrY29tcGlsZXIuIgorKworKwkk b3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0CisrCWV4aXQgJEVYSVRfRkFJTFVSRQorKyAg ICAgIGZpCisrCisrICAgICAgIyBKdXN0IG1vdmUgdGhlIG9iamVjdCBpZiBuZWVkZWQsIHRoZW4g Z28gb24gdG8gY29tcGlsZSB0aGUgbmV4dCBvbmUKKysgICAgICBpZiB0ZXN0IC1uICIkb3V0cHV0 X29iaiIgJiYgdGVzdCAiWCRvdXRwdXRfb2JqIiAhPSAiWCRsb2JqIjsgdGhlbgorKwlmdW5jX3No b3dfZXZhbCAnJE1WICIkb3V0cHV0X29iaiIgIiRsb2JqIicgXAorKwkgICdlcnJvcj0kPzsgJG9w dF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAkZXJyb3InCisrICAgICAgZmkKKysK KysgICAgICAjIEFsbG93IGVycm9yIG1lc3NhZ2VzIG9ubHkgZnJvbSB0aGUgZmlyc3QgY29tcGls YXRpb24uCisrICAgICAgaWYgdGVzdCAiJHN1cHByZXNzX29wdCIgPSB5ZXM7IHRoZW4KKysJc3Vw cHJlc3Nfb3V0cHV0PScgPi9kZXYvbnVsbCAyPiYxJworKyAgICAgIGZpCisrICAgIGZpCisrCisr ICAgICMgT25seSBidWlsZCBhIHBvc2l0aW9uLWRlcGVuZGVudCBvYmplY3QgaWYgd2UgYnVpbGQg b2xkIGxpYnJhcmllcy4KKysgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhl bgorKyAgICAgIGlmIHRlc3QgIiRwaWNfbW9kZSIgIT0geWVzOyB0aGVuCisrCSMgRG9uJ3QgYnVp bGQgUElDIGNvZGUKKysJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUkcGllX2ZsYWci CisrICAgICAgZWxzZQorKwljb21tYW5kPSIkYmFzZV9jb21waWxlICRxc3JjZmlsZSAkcGljX2Zs YWciCisrICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIkY29tcGlsZXJfY19vIiA9IHllczsgdGhl bgorKwljb21tYW5kPSIkY29tbWFuZCAtbyAkb2JqIgorKyAgICAgIGZpCisrCisrICAgICAgIyBT dXBwcmVzcyBjb21waWxlciBvdXRwdXQgaWYgd2UgYWxyZWFkeSBkaWQgYSBQSUMgY29tcGlsYXRp b24uCisrICAgICAgY29tbWFuZD0iJGNvbW1hbmQkc3VwcHJlc3Nfb3V0cHV0IgorKyAgICAgIGZ1 bmNfc2hvd19ldmFsX2xvY2FsZSAiJGNvbW1hbmQiIFwKKysgICAgICAgICckb3B0X2RyeV9ydW4g fHwgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRFWElUX0ZBSUxVUkUnCisrCisrICAgICAgaWYgdGVz dCAiJG5lZWRfbG9ja3MiID0gd2FybiAmJgorKwkgdGVzdCAiWGBjYXQgJGxvY2tmaWxlIDI+L2Rl di9udWxsYCIgIT0gIlgkc3JjZmlsZSI7IHRoZW4KKysJJEVDSE8gIlwKKysqKiogRVJST1IsICRs b2NrZmlsZSBjb250YWluczoKKytgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAKKysKKytidXQg aXQgc2hvdWxkIGNvbnRhaW46CisrJHNyY2ZpbGUKKysKKytUaGlzIGluZGljYXRlcyB0aGF0IGFu b3RoZXIgcHJvY2VzcyBpcyB0cnlpbmcgdG8gdXNlIHRoZSBzYW1lCisrdGVtcG9yYXJ5IG9iamVj dCBmaWxlLCBhbmQgbGlidG9vbCBjb3VsZCBub3Qgd29yayBhcm91bmQgaXQgYmVjYXVzZQorK3lv dXIgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9nZXRoZXIuICBJ ZiB5b3UKKytyZXBlYXQgdGhpcyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5j ZSwgYnV0IHlvdSBoYWQgYmV0dGVyCisrYXZvaWQgcGFyYWxsZWwgYnVpbGRzIChtYWtlIC1qKSBp biB0aGlzIHBsYXRmb3JtLCBvciBnZXQgYSBiZXR0ZXIKKytjb21waWxlci4iCisrCisrCSRvcHRf ZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3QKKysJZXhpdCAkRVhJVF9GQUlMVVJFCisrICAgICAg ZmkKKysKKysgICAgICAjIEp1c3QgbW92ZSB0aGUgb2JqZWN0IGlmIG5lZWRlZAorKyAgICAgIGlm IHRlc3QgLW4gIiRvdXRwdXRfb2JqIiAmJiB0ZXN0ICJYJG91dHB1dF9vYmoiICE9ICJYJG9iaiI7 IHRoZW4KKysJZnVuY19zaG93X2V2YWwgJyRNViAiJG91dHB1dF9vYmoiICIkb2JqIicgXAorKwkg ICdlcnJvcj0kPzsgJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAkZXJyb3In CisrICAgICAgZmkKKysgICAgZmkKKysKKysgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysgICAgICBm dW5jX3dyaXRlX2xpYnRvb2xfb2JqZWN0ICIkbGlib2JqIiAiJG9iamRpci8kb2JqbmFtZSIgIiRv YmpuYW1lIgorKworKyAgICAgICMgVW5sb2NrIHRoZSBjcml0aWNhbCBzZWN0aW9uIGlmIGl0IHdh cyBsb2NrZWQKKysgICAgICBpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KKysJcmVt b3ZlbGlzdD0kbG9ja2ZpbGUKKysgICAgICAgICRSTSAiJGxvY2tmaWxlIgorKyAgICAgIGZpCisr ICAgIH0KKysKKysgICAgZXhpdCAkRVhJVF9TVUNDRVNTCisrfQorKworKyRvcHRfaGVscCB8fCB7 CisrICB0ZXN0ICIkbW9kZSIgPSBjb21waWxlICYmIGZ1bmNfbW9kZV9jb21waWxlICR7MSsiJEAi fQorK30KKysKKytmdW5jX21vZGVfaGVscCAoKQorK3sKKysgICAgIyBXZSBuZWVkIHRvIGRpc3Bs YXkgaGVscCBmb3IgZWFjaCBvZiB0aGUgbW9kZXMuCisrICAgIGNhc2UgJG1vZGUgaW4KKysgICAg ICAiIikKKysgICAgICAgICMgR2VuZXJpYyBoZWxwIGlzIGV4dHJhY3RlZCBmcm9tIHRoZSB1c2Fn ZSBjb21tZW50cworKyAgICAgICAgIyBhdCB0aGUgc3RhcnQgb2YgdGhpcyBmaWxlLgorKyAgICAg ICAgZnVuY19oZWxwCisrICAgICAgICA7OworKworKyAgICAgIGNsZWFuKQorKyAgICAgICAgJEVD SE8gXAorKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1jbGVhbiBSTSBbUk0t T1BUSU9OXS4uLiBGSUxFLi4uCisrCisrUmVtb3ZlIGZpbGVzIGZyb20gdGhlIGJ1aWxkIGRpcmVj dG9yeS4KKysKKytSTSBpcyB0aGUgbmFtZSBvZiB0aGUgcHJvZ3JhbSB0byB1c2UgdG8gZGVsZXRl IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIEZJTEUKKysodHlwaWNhbGx5IFxgL2Jpbi9ybScp LiAgUk0tT1BUSU9OUyBhcmUgb3B0aW9ucyAoc3VjaCBhcyBcYC1mJykgdG8gYmUgcGFzc2VkCisr dG8gUk0uCisrCisrSWYgRklMRSBpcyBhIGxpYnRvb2wgbGlicmFyeSwgb2JqZWN0IG9yIHByb2dy YW0sIGFsbCB0aGUgZmlsZXMgYXNzb2NpYXRlZAorK3dpdGggaXQgYXJlIGRlbGV0ZWQuIE90aGVy d2lzZSwgb25seSBGSUxFIGl0c2VsZiBpcyBkZWxldGVkIHVzaW5nIFJNLiIKKysgICAgICAgIDs7 CisrCisrICAgICAgY29tcGlsZSkKKysgICAgICAkRUNITyBcCisrIlVzYWdlOiAkcHJvZ25hbWUg W09QVElPTl0uLi4gLS1tb2RlPWNvbXBpbGUgQ09NUElMRS1DT01NQU5ELi4uIFNPVVJDRUZJTEUK KysKKytDb21waWxlIGEgc291cmNlIGZpbGUgaW50byBhIGxpYnRvb2wgbGlicmFyeSBvYmplY3Qu CisrCisrVGhpcyBtb2RlIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIG9wdGlvbnM6 CisrCisrICAtbyBPVVRQVVQtRklMRSAgICBzZXQgdGhlIG91dHB1dCBmaWxlIG5hbWUgdG8gT1VU UFVULUZJTEUKKysgIC1uby1zdXBwcmVzcyAgICAgIGRvIG5vdCBzdXBwcmVzcyBjb21waWxlciBv dXRwdXQgZm9yIG11bHRpcGxlIHBhc3NlcworKyAgLXByZWZlci1waWMgICAgICAgdHJ5IHRvIGJ1 aWxkIFBJQyBvYmplY3RzIG9ubHkKKysgIC1wcmVmZXItbm9uLXBpYyAgIHRyeSB0byBidWlsZCBu b24tUElDIG9iamVjdHMgb25seQorKyAgLXNoYXJlZCAgICAgICAgICAgZG8gbm90IGJ1aWxkIGEg XGAubycgZmlsZSBzdWl0YWJsZSBmb3Igc3RhdGljIGxpbmtpbmcKKysgIC1zdGF0aWMgICAgICAg ICAgIG9ubHkgYnVpbGQgYSBcYC5vJyBmaWxlIHN1aXRhYmxlIGZvciBzdGF0aWMgbGlua2luZwor KyAgLVdjLEZMQUcgICAgICAgICAgcGFzcyBGTEFHIGRpcmVjdGx5IHRvIHRoZSBjb21waWxlcgor KworK0NPTVBJTEUtQ09NTUFORCBpcyBhIGNvbW1hbmQgdG8gYmUgdXNlZCBpbiBjcmVhdGluZyBh IFxgc3RhbmRhcmQnIG9iamVjdCBmaWxlCisrZnJvbSB0aGUgZ2l2ZW4gU09VUkNFRklMRS4KKysK KytUaGUgb3V0cHV0IGZpbGUgbmFtZSBpcyBkZXRlcm1pbmVkIGJ5IHJlbW92aW5nIHRoZSBkaXJl Y3RvcnkgY29tcG9uZW50IGZyb20KKytTT1VSQ0VGSUxFLCB0aGVuIHN1YnN0aXR1dGluZyB0aGUg QyBzb3VyY2UgY29kZSBzdWZmaXggXGAuYycgd2l0aCB0aGUKKytsaWJyYXJ5IG9iamVjdCBzdWZm aXgsIFxgLmxvJy4iCisrICAgICAgICA7OworKworKyAgICAgIGV4ZWN1dGUpCisrICAgICAgICAk RUNITyBcCisrIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWV4ZWN1dGUgQ09N TUFORCBbQVJHU10uLi4KKysKKytBdXRvbWF0aWNhbGx5IHNldCBsaWJyYXJ5IHBhdGgsIHRoZW4g cnVuIGEgcHJvZ3JhbS4KKysKKytUaGlzIG1vZGUgYWNjZXB0cyB0aGUgZm9sbG93aW5nIGFkZGl0 aW9uYWwgb3B0aW9uczoKKysKKysgIC1kbG9wZW4gRklMRSAgICAgIGFkZCB0aGUgZGlyZWN0b3J5 IGNvbnRhaW5pbmcgRklMRSB0byB0aGUgbGlicmFyeSBwYXRoCisrCisrVGhpcyBtb2RlIHNldHMg dGhlIGxpYnJhcnkgcGF0aCBlbnZpcm9ubWVudCB2YXJpYWJsZSBhY2NvcmRpbmcgdG8gXGAtZGxv cGVuJworK2ZsYWdzLgorKworK0lmIGFueSBvZiB0aGUgQVJHUyBhcmUgbGlidG9vbCBleGVjdXRh YmxlIHdyYXBwZXJzLCB0aGVuIHRoZXkgYXJlIHRyYW5zbGF0ZWQKKytpbnRvIHRoZWlyIGNvcnJl c3BvbmRpbmcgdW5pbnN0YWxsZWQgYmluYXJ5LCBhbmQgYW55IG9mIHRoZWlyIHJlcXVpcmVkIGxp YnJhcnkKKytkaXJlY3RvcmllcyBhcmUgYWRkZWQgdG8gdGhlIGxpYnJhcnkgcGF0aC4KKysKKytU aGVuLCBDT01NQU5EIGlzIGV4ZWN1dGVkLCB3aXRoIEFSR1MgYXMgYXJndW1lbnRzLiIKKysgICAg ICAgIDs7CisrCisrICAgICAgZmluaXNoKQorKyAgICAgICAgJEVDSE8gXAorKyJVc2FnZTogJHBy b2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1maW5pc2ggW0xJQkRJUl0uLi4KKysKKytDb21wbGV0 ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzLgorKworK0VhY2ggTElCRElS IGlzIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgbGlidG9vbCBsaWJyYXJpZXMuCisrCisrVGhl IGNvbW1hbmRzIHRoYXQgdGhpcyBtb2RlIGV4ZWN1dGVzIG1heSByZXF1aXJlIHN1cGVydXNlciBw cml2aWxlZ2VzLiAgVXNlCisrdGhlIFxgLS1kcnktcnVuJyBvcHRpb24gaWYgeW91IGp1c3Qgd2Fu dCB0byBzZWUgd2hhdCB3b3VsZCBiZSBleGVjdXRlZC4iCisrICAgICAgICA7OworKworKyAgICAg IGluc3RhbGwpCisrICAgICAgICAkRUNITyBcCisrIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0u Li4gLS1tb2RlPWluc3RhbGwgSU5TVEFMTC1DT01NQU5ELi4uCisrCisrSW5zdGFsbCBleGVjdXRh YmxlcyBvciBsaWJyYXJpZXMuCisrCisrSU5TVEFMTC1DT01NQU5EIGlzIHRoZSBpbnN0YWxsYXRp b24gY29tbWFuZC4gIFRoZSBmaXJzdCBjb21wb25lbnQgc2hvdWxkIGJlCisrZWl0aGVyIHRoZSBc YGluc3RhbGwnIG9yIFxgY3AnIHByb2dyYW0uCisrCisrVGhlIGZvbGxvd2luZyBjb21wb25lbnRz IG9mIElOU1RBTEwtQ09NTUFORCBhcmUgdHJlYXRlZCBzcGVjaWFsbHk6CisrCisrICAtaW5zdC1w cmVmaXgtZGlyIFBSRUZJWC1ESVIgIFVzZSBQUkVGSVgtRElSIGFzIGEgc3RhZ2luZyBhcmVhIGZv ciBpbnN0YWxsYXRpb24KKysKKytUaGUgcmVzdCBvZiB0aGUgY29tcG9uZW50cyBhcmUgaW50ZXJw cmV0ZWQgYXMgYXJndW1lbnRzIHRvIHRoYXQgY29tbWFuZCAob25seQorK0JTRC1jb21wYXRpYmxl IGluc3RhbGwgb3B0aW9ucyBhcmUgcmVjb2duaXplZCkuIgorKyAgICAgICAgOzsKKysKKysgICAg ICBsaW5rKQorKyAgICAgICAgJEVDSE8gXAorKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4u IC0tbW9kZT1saW5rIExJTkstQ09NTUFORC4uLgorKworK0xpbmsgb2JqZWN0IGZpbGVzIG9yIGxp YnJhcmllcyB0b2dldGhlciB0byBmb3JtIGFub3RoZXIgbGlicmFyeSwgb3IgdG8KKytjcmVhdGUg YW4gZXhlY3V0YWJsZSBwcm9ncmFtLgorKworK0xJTkstQ09NTUFORCBpcyBhIGNvbW1hbmQgdXNp bmcgdGhlIEMgY29tcGlsZXIgdGhhdCB5b3Ugd291bGQgdXNlIHRvIGNyZWF0ZQorK2EgcHJvZ3Jh bSBmcm9tIHNldmVyYWwgb2JqZWN0IGZpbGVzLgorKworK1RoZSBmb2xsb3dpbmcgY29tcG9uZW50 cyBvZiBMSU5LLUNPTU1BTkQgYXJlIHRyZWF0ZWQgc3BlY2lhbGx5OgorKworKyAgLWFsbC1zdGF0 aWMgICAgICAgZG8gbm90IGRvIGFueSBkeW5hbWljIGxpbmtpbmcgYXQgYWxsCisrICAtYXZvaWQt dmVyc2lvbiAgICBkbyBub3QgYWRkIGEgdmVyc2lvbiBzdWZmaXggaWYgcG9zc2libGUKKysgIC1i aW5kaXIgQklORElSICAgIHNwZWNpZnkgcGF0aCB0byBiaW5hcmllcyBkaXJlY3RvcnkgKGZvciBz eXN0ZW1zIHdoZXJlCisrICAgICAgICAgICAgICAgICAgICBsaWJyYXJpZXMgbXVzdCBiZSBmb3Vu ZCBpbiB0aGUgUEFUSCBzZXR0aW5nIGF0IHJ1bnRpbWUpCisrICAtZGxvcGVuIEZJTEUgICAgICBc YC1kbHByZW9wZW4nIEZJTEUgaWYgaXQgY2Fubm90IGJlIGRsb3BlbmVkIGF0IHJ1bnRpbWUKKysg IC1kbHByZW9wZW4gRklMRSAgIGxpbmsgaW4gRklMRSBhbmQgYWRkIGl0cyBzeW1ib2xzIHRvIGx0 X3ByZWxvYWRlZF9zeW1ib2xzCisrICAtZXhwb3J0LWR5bmFtaWMgICBhbGxvdyBzeW1ib2xzIGZy b20gT1VUUFVULUZJTEUgdG8gYmUgcmVzb2x2ZWQgd2l0aCBkbHN5bSgzKQorKyAgLWV4cG9ydC1z eW1ib2xzIFNZTUZJTEUKKysgICAgICAgICAgICAgICAgICAgIHRyeSB0byBleHBvcnQgb25seSB0 aGUgc3ltYm9scyBsaXN0ZWQgaW4gU1lNRklMRQorKyAgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4IFJF R0VYCisrICAgICAgICAgICAgICAgICAgICB0cnkgdG8gZXhwb3J0IG9ubHkgdGhlIHN5bWJvbHMg bWF0Y2hpbmcgUkVHRVgKKysgIC1MTElCRElSICAgICAgICAgIHNlYXJjaCBMSUJESVIgZm9yIHJl cXVpcmVkIGluc3RhbGxlZCBsaWJyYXJpZXMKKysgIC1sTkFNRSAgICAgICAgICAgIE9VVFBVVC1G SUxFIHJlcXVpcmVzIHRoZSBpbnN0YWxsZWQgbGlicmFyeSBsaWJOQU1FCisrICAtbW9kdWxlICAg ICAgICAgICBidWlsZCBhIGxpYnJhcnkgdGhhdCBjYW4gZGxvcGVuZWQKKysgIC1uby1mYXN0LWlu c3RhbGwgIGRpc2FibGUgdGhlIGZhc3QtaW5zdGFsbCBtb2RlCisrICAtbm8taW5zdGFsbCAgICAg ICBsaW5rIGEgbm90LWluc3RhbGxhYmxlIGV4ZWN1dGFibGUKKysgIC1uby11bmRlZmluZWQgICAg IGRlY2xhcmUgdGhhdCBhIGxpYnJhcnkgZG9lcyBub3QgcmVmZXIgdG8gZXh0ZXJuYWwgc3ltYm9s cworKyAgLW8gT1VUUFVULUZJTEUgICAgY3JlYXRlIE9VVFBVVC1GSUxFIGZyb20gdGhlIHNwZWNp ZmllZCBvYmplY3RzCisrICAtb2JqZWN0bGlzdCBGSUxFICBVc2UgYSBsaXN0IG9mIG9iamVjdCBm aWxlcyBmb3VuZCBpbiBGSUxFIHRvIHNwZWNpZnkgb2JqZWN0cworKyAgLXByZWNpb3VzLWZpbGVz LXJlZ2V4IFJFR0VYCisrICAgICAgICAgICAgICAgICAgICBkb24ndCByZW1vdmUgb3V0cHV0IGZp bGVzIG1hdGNoaW5nIFJFR0VYCisrICAtcmVsZWFzZSBSRUxFQVNFICBzcGVjaWZ5IHBhY2thZ2Ug cmVsZWFzZSBpbmZvcm1hdGlvbgorKyAgLXJwYXRoIExJQkRJUiAgICAgdGhlIGNyZWF0ZWQgbGli cmFyeSB3aWxsIGV2ZW50dWFsbHkgYmUgaW5zdGFsbGVkIGluIExJQkRJUgorKyAgLVJbIF1MSUJE SVIgICAgICAgYWRkIExJQkRJUiB0byB0aGUgcnVudGltZSBwYXRoIG9mIHByb2dyYW1zIGFuZCBs aWJyYXJpZXMKKysgIC1zaGFyZWQgICAgICAgICAgIG9ubHkgZG8gZHluYW1pYyBsaW5raW5nIG9m IGxpYnRvb2wgbGlicmFyaWVzCisrICAtc2hyZXh0IFNVRkZJWCAgICBvdmVycmlkZSB0aGUgc3Rh bmRhcmQgc2hhcmVkIGxpYnJhcnkgZmlsZSBleHRlbnNpb24KKysgIC1zdGF0aWMgICAgICAgICAg IGRvIG5vdCBkbyBhbnkgZHluYW1pYyBsaW5raW5nIG9mIHVuaW5zdGFsbGVkIGxpYnRvb2wgbGli cmFyaWVzCisrICAtc3RhdGljLWxpYnRvb2wtbGlicworKyAgICAgICAgICAgICAgICAgICAgZG8g bm90IGRvIGFueSBkeW5hbWljIGxpbmtpbmcgb2YgbGlidG9vbCBsaWJyYXJpZXMKKysgIC12ZXJz aW9uLWluZm8gQ1VSUkVOVFs6UkVWSVNJT05bOkFHRV1dCisrICAgICAgICAgICAgICAgICAgICBz cGVjaWZ5IGxpYnJhcnkgdmVyc2lvbiBpbmZvIFtlYWNoIHZhcmlhYmxlIGRlZmF1bHRzIHRvIDBd CisrICAtd2VhayBMSUJOQU1FICAgICBkZWNsYXJlIHRoYXQgdGhlIHRhcmdldCBwcm92aWRlcyB0 aGUgTElCTkFNRSBpbnRlcmZhY2UKKysgIC1XYyxGTEFHCisrICAtWGNvbXBpbGVyIEZMQUcgICBw YXNzIGxpbmtlci1zcGVjaWZpYyBGTEFHIGRpcmVjdGx5IHRvIHRoZSBjb21waWxlcgorKyAgLVds LEZMQUcKKysgIC1YbGlua2VyIEZMQUcgICAgIHBhc3MgbGlua2VyLXNwZWNpZmljIEZMQUcgZGly ZWN0bHkgdG8gdGhlIGxpbmtlcgorKyAgLVhDQ2xpbmtlciBGTEFHICAgcGFzcyBsaW5rLXNwZWNp ZmljIEZMQUcgdG8gdGhlIGNvbXBpbGVyIGRyaXZlciAoQ0MpCisrCisrQWxsIG90aGVyIG9wdGlv bnMgKGFyZ3VtZW50cyBiZWdpbm5pbmcgd2l0aCBcYC0nKSBhcmUgaWdub3JlZC4KKysKKytFdmVy eSBvdGhlciBhcmd1bWVudCBpcyB0cmVhdGVkIGFzIGEgZmlsZW5hbWUuICBGaWxlcyBlbmRpbmcg aW4gXGAubGEnIGFyZQorK3RyZWF0ZWQgYXMgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMs IG90aGVyIGZpbGVzIGFyZSBzdGFuZGFyZCBvciBsaWJyYXJ5Cisrb2JqZWN0IGZpbGVzLgorKwor K0lmIHRoZSBPVVRQVVQtRklMRSBlbmRzIGluIFxgLmxhJywgdGhlbiBhIGxpYnRvb2wgbGlicmFy eSBpcyBjcmVhdGVkLAorK29ubHkgbGlicmFyeSBvYmplY3RzIChcYC5sbycgZmlsZXMpIG1heSBi ZSBzcGVjaWZpZWQsIGFuZCBcYC1ycGF0aCcgaXMKKytyZXF1aXJlZCwgZXhjZXB0IHdoZW4gY3Jl YXRpbmcgYSBjb252ZW5pZW5jZSBsaWJyYXJ5LgorKworK0lmIE9VVFBVVC1GSUxFIGVuZHMgaW4g XGAuYScgb3IgXGAubGliJywgdGhlbiBhIHN0YW5kYXJkIGxpYnJhcnkgaXMgY3JlYXRlZAorK3Vz aW5nIFxgYXInIGFuZCBcYHJhbmxpYicsIG9yIG9uIFdpbmRvd3MgdXNpbmcgXGBsaWInLgorKwor K0lmIE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAubG8nIG9yIFxgLiR7b2JqZXh0fScsIHRoZW4gYSBy ZWxvYWRhYmxlIG9iamVjdCBmaWxlCisraXMgY3JlYXRlZCwgb3RoZXJ3aXNlIGFuIGV4ZWN1dGFi bGUgcHJvZ3JhbSBpcyBjcmVhdGVkLiIKKysgICAgICAgIDs7CisrCisrICAgICAgdW5pbnN0YWxs KQorKyAgICAgICAgJEVDSE8gXAorKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9k ZT11bmluc3RhbGwgUk0gW1JNLU9QVElPTl0uLi4gRklMRS4uLgorKworK1JlbW92ZSBsaWJyYXJp ZXMgZnJvbSBhbiBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LgorKworK1JNIGlzIHRoZSBuYW1lIG9m IHRoZSBwcm9ncmFtIHRvIHVzZSB0byBkZWxldGUgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIGVhY2gg RklMRQorKyh0eXBpY2FsbHkgXGAvYmluL3JtJykuICBSTS1PUFRJT05TIGFyZSBvcHRpb25zIChz dWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKKyt0byBSTS4KKysKKytJZiBGSUxFIGlzIGEgbGli dG9vbCBsaWJyYXJ5LCBhbGwgdGhlIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBpdCBhcmUgZGVsZXRl ZC4KKytPdGhlcndpc2UsIG9ubHkgRklMRSBpdHNlbGYgaXMgZGVsZXRlZCB1c2luZyBSTS4iCisr ICAgICAgICA7OworKworKyAgICAgICopCisrICAgICAgICBmdW5jX2ZhdGFsX2hlbHAgImludmFs aWQgb3BlcmF0aW9uIG1vZGUgXGAkbW9kZSciCisrICAgICAgICA7OworKyAgICBlc2FjCisrCisr ICAgIGVjaG8KKysgICAgJEVDSE8gIlRyeSBcYCRwcm9nbmFtZSAtLWhlbHAnIGZvciBtb3JlIGlu Zm9ybWF0aW9uIGFib3V0IG90aGVyIG1vZGVzLiIKKyt9CisrCisrIyBOb3cgdGhhdCB3ZSd2ZSBj b2xsZWN0ZWQgYSBwb3NzaWJsZSAtLW1vZGUgYXJnLCBzaG93IGhlbHAgaWYgbmVjZXNzYXJ5Cisr aWYgJG9wdF9oZWxwOyB0aGVuCisrICBpZiB0ZXN0ICIkb3B0X2hlbHAiID0gOjsgdGhlbgorKyAg ICBmdW5jX21vZGVfaGVscAorKyAgZWxzZQorKyAgICB7CisrICAgICAgZnVuY19oZWxwIG5vZXhp dAorKyAgICAgIGZvciBtb2RlIGluIGNvbXBpbGUgbGluayBleGVjdXRlIGluc3RhbGwgZmluaXNo IHVuaW5zdGFsbCBjbGVhbjsgZG8KKysJZnVuY19tb2RlX2hlbHAKKysgICAgICBkb25lCisrICAg IH0gfCBzZWQgLW4gJzFwOyAyLCRzL15Vc2FnZTovICBvcjogL3AnCisrICAgIHsKKysgICAgICBm dW5jX2hlbHAgbm9leGl0CisrICAgICAgZm9yIG1vZGUgaW4gY29tcGlsZSBsaW5rIGV4ZWN1dGUg aW5zdGFsbCBmaW5pc2ggdW5pbnN0YWxsIGNsZWFuOyBkbworKwllY2hvCisrCWZ1bmNfbW9kZV9o ZWxwCisrICAgICAgZG9uZQorKyAgICB9IHwKKysgICAgc2VkICcxZAorKyAgICAgIC9eV2hlbiBy ZXBvcnRpbmcvLC9eUmVwb3J0L3sKKysJSAorKwlkCisrICAgICAgfQorKyAgICAgICR4CisrICAg ICAgL2luZm9ybWF0aW9uIGFib3V0IG90aGVyIG1vZGVzL2QKKysgICAgICAvbW9yZSBkZXRhaWxl ZCAuKk1PREUvZAorKyAgICAgIHMvXlVzYWdlOi4qLS1tb2RlPVwoW14gXSpcKSAuKi9EZXNjcmlw dGlvbiBvZiBcMSBtb2RlOi8nCisrICBmaQorKyAgZXhpdCAkPworK2ZpCisrCisrCisrIyBmdW5j X21vZGVfZXhlY3V0ZSBhcmcuLi4KKytmdW5jX21vZGVfZXhlY3V0ZSAoKQorK3sKKysgICAgJG9w dF9kZWJ1ZworKyAgICAjIFRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgY29tbWFuZCBuYW1lLgor KyAgICBjbWQ9IiRub25vcHQiCisrICAgIHRlc3QgLXogIiRjbWQiICYmIFwKKysgICAgICBmdW5j X2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYSBDT01NQU5EIgorKworKyAgICAjIEhhbmRs ZSAtZGxvcGVuIGZsYWdzIGltbWVkaWF0ZWx5LgorKyAgICBmb3IgZmlsZSBpbiAkZXhlY3V0ZV9k bGZpbGVzOyBkbworKyAgICAgIHRlc3QgLWYgIiRmaWxlIiBcCisrCXx8IGZ1bmNfZmF0YWxfaGVs cCAiXGAkZmlsZScgaXMgbm90IGEgZmlsZSIKKysKKysgICAgICBkaXI9CisrICAgICAgY2FzZSAk ZmlsZSBpbgorKyAgICAgICoubGEpCisrCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkg aXMgYSBsaWJ0b29sIGFyY2hpdmUuCisrCWZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRmaWxlIiBcCisr CSAgfHwgZnVuY19mYXRhbF9oZWxwICJcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJj aGl2ZSIKKysKKysJIyBSZWFkIHRoZSBsaWJ0b29sIGxpYnJhcnkuCisrCWRsbmFtZT0KKysJbGli cmFyeV9uYW1lcz0KKysJZnVuY19zb3VyY2UgIiRmaWxlIgorKworKwkjIFNraXAgdGhpcyBsaWJy YXJ5IGlmIGl0IGNhbm5vdCBiZSBkbG9wZW5lZC4KKysJaWYgdGVzdCAteiAiJGRsbmFtZSI7IHRo ZW4KKysJICAjIFdhcm4gaWYgaXQgd2FzIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgdGVzdCAtbiAi JGxpYnJhcnlfbmFtZXMiICYmIFwKKysJICAgIGZ1bmNfd2FybmluZyAiXGAkZmlsZScgd2FzIG5v dCBsaW5rZWQgd2l0aCBcYC1leHBvcnQtZHluYW1pYyciCisrCSAgY29udGludWUKKysJZmkKKysK KysJZnVuY19kaXJuYW1lICIkZmlsZSIgIiIgIi4iCisrCWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1 bHQiCisrCisrCWlmIHRlc3QgLWYgIiRkaXIvJG9iamRpci8kZGxuYW1lIjsgdGhlbgorKwkgIGRp cj0iJGRpci8kb2JqZGlyIgorKwllbHNlCisrCSAgaWYgdGVzdCAhIC1mICIkZGlyLyRkbG5hbWUi OyB0aGVuCisrCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCBcYCRkbG5hbWUnIGlu IFxgJGRpcicgb3IgXGAkZGlyLyRvYmpkaXInIgorKwkgIGZpCisrCWZpCisrCTs7CisrCisrICAg ICAgKi5sbykKKysJIyBKdXN0IGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIC5sbyBm aWxlLgorKwlmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiIiAiLiIKKysJZGlyPSIkZnVuY19kaXJuYW1l X3Jlc3VsdCIKKysJOzsKKysKKysgICAgICAqKQorKwlmdW5jX3dhcm5pbmcgIlxgLWRsb3Blbicg aXMgaWdub3JlZCBmb3Igbm9uLWxpYnRvb2wgbGlicmFyaWVzIGFuZCBvYmplY3RzIgorKwljb250 aW51ZQorKwk7OworKyAgICAgIGVzYWMKKysKKysgICAgICAjIEdldCB0aGUgYWJzb2x1dGUgcGF0 aG5hbWUuCisrICAgICAgYWJzZGlyPWBjZCAiJGRpciIgJiYgcHdkYAorKyAgICAgIHRlc3QgLW4g IiRhYnNkaXIiICYmIGRpcj0iJGFic2RpciIKKysKKysgICAgICAjIE5vdyBhZGQgdGhlIGRpcmVj dG9yeSB0byBzaGxpYnBhdGhfdmFyLgorKyAgICAgIGlmIGV2YWwgInRlc3QgLXogXCJcJCRzaGxp YnBhdGhfdmFyXCIiOyB0aGVuCisrCWV2YWwgIiRzaGxpYnBhdGhfdmFyPVwiXCRkaXJcIiIKKysg ICAgICBlbHNlCisrCWV2YWwgIiRzaGxpYnBhdGhfdmFyPVwiXCRkaXI6XCQkc2hsaWJwYXRoX3Zh clwiIgorKyAgICAgIGZpCisrICAgIGRvbmUKKysKKysgICAgIyBUaGlzIHZhcmlhYmxlIHRlbGxz IHdyYXBwZXIgc2NyaXB0cyBqdXN0IHRvIHNldCBzaGxpYnBhdGhfdmFyCisrICAgICMgcmF0aGVy IHRoYW4gcnVubmluZyB0aGVpciBwcm9ncmFtcy4KKysgICAgbGlidG9vbF9leGVjdXRlX21hZ2lj PSIkbWFnaWMiCisrCisrICAgICMgQ2hlY2sgaWYgYW55IG9mIHRoZSBhcmd1bWVudHMgaXMgYSB3 cmFwcGVyIHNjcmlwdC4KKysgICAgYXJncz0KKysgICAgZm9yIGZpbGUKKysgICAgZG8KKysgICAg ICBjYXNlICRmaWxlIGluCisrICAgICAgLSogfCAqLmxhIHwgKi5sbyApIDs7CisrICAgICAgKikK KysJIyBEbyBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgcmVhbGx5IGEgbGlidG9vbCBwcm9ncmFt LgorKwlpZiBmdW5jX2x0d3JhcHBlcl9zY3JpcHRfcCAiJGZpbGUiOyB0aGVuCisrCSAgZnVuY19z b3VyY2UgIiRmaWxlIgorKwkgICMgVHJhbnNmb3JtIGFyZyB0byB3cmFwcGVkIG5hbWUuCisrCSAg ZmlsZT0iJHByb2dkaXIvJHByb2dyYW0iCisrCWVsaWYgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJs ZV9wICIkZmlsZSI7IHRoZW4KKysJICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICIkZmlsZSIK KysJICBmdW5jX3NvdXJjZSAiJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0IgorKwkg ICMgVHJhbnNmb3JtIGFyZyB0byB3cmFwcGVkIG5hbWUuCisrCSAgZmlsZT0iJHByb2dkaXIvJHBy b2dyYW0iCisrCWZpCisrCTs7CisrICAgICAgZXNhYworKyAgICAgICMgUXVvdGUgYXJndW1lbnRz ICh0byBwcmVzZXJ2ZSBzaGVsbCBtZXRhY2hhcmFjdGVycykuCisrICAgICAgZnVuY19xdW90ZV9m b3JfZXZhbCAiJGZpbGUiCisrICAgICAgYXJncz0iJGFyZ3MgJGZ1bmNfcXVvdGVfZm9yX2V2YWxf cmVzdWx0IgorKyAgICBkb25lCisrCisrICAgIGlmIHRlc3QgIlgkb3B0X2RyeV9ydW4iID0gWGZh bHNlOyB0aGVuCisrICAgICAgaWYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiOyB0aGVuCisrCSMg RXhwb3J0IHRoZSBzaGxpYnBhdGhfdmFyLgorKwlldmFsICJleHBvcnQgJHNobGlicGF0aF92YXIi CisrICAgICAgZmkKKysKKysgICAgICAjIFJlc3RvcmUgc2F2ZWQgZW52aXJvbm1lbnQgdmFyaWFi bGVzCisrICAgICAgZm9yIGx0X3ZhciBpbiBMQU5HIExBTkdVQUdFIExDX0FMTCBMQ19DVFlQRSBM Q19DT0xMQVRFIExDX01FU1NBR0VTCisrICAgICAgZG8KKysJZXZhbCAiaWYgdGVzdCBcIlwke3Nh dmVfJGx0X3ZhcitzZXR9XCIgPSBzZXQ7IHRoZW4KKysgICAgICAgICAgICAgICAgJGx0X3Zhcj1c JHNhdmVfJGx0X3ZhcjsgZXhwb3J0ICRsdF92YXIKKysJICAgICAgZWxzZQorKwkJJGx0X3Vuc2V0 ICRsdF92YXIKKysJICAgICAgZmkiCisrICAgICAgZG9uZQorKworKyAgICAgICMgTm93IHByZXBh cmUgdG8gYWN0dWFsbHkgZXhlYyB0aGUgY29tbWFuZC4KKysgICAgICBleGVjX2NtZD0iXCRjbWQk YXJncyIKKysgICAgZWxzZQorKyAgICAgICMgRGlzcGxheSB3aGF0IHdvdWxkIGJlIGRvbmUuCisr ICAgICAgaWYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiOyB0aGVuCisrCWV2YWwgIlwkRUNITyBc Ilwkc2hsaWJwYXRoX3Zhcj1cJCRzaGxpYnBhdGhfdmFyXCIiCisrCWVjaG8gImV4cG9ydCAkc2hs aWJwYXRoX3ZhciIKKysgICAgICBmaQorKyAgICAgICRFQ0hPICIkY21kJGFyZ3MiCisrICAgICAg ZXhpdCAkRVhJVF9TVUNDRVNTCisrICAgIGZpCisrfQorKworK3Rlc3QgIiRtb2RlIiA9IGV4ZWN1 dGUgJiYgZnVuY19tb2RlX2V4ZWN1dGUgJHsxKyIkQCJ9CisrCisrCisrIyBmdW5jX21vZGVfZmlu aXNoIGFyZy4uLgorK2Z1bmNfbW9kZV9maW5pc2ggKCkKKyt7CisrICAgICRvcHRfZGVidWcKKysg ICAgbGliZGlycz0iJG5vbm9wdCIKKysgICAgYWRtaW5jbWRzPQorKworKyAgICBpZiB0ZXN0IC1u ICIkZmluaXNoX2NtZHMkZmluaXNoX2V2YWwiICYmIHRlc3QgLW4gIiRsaWJkaXJzIjsgdGhlbgor KyAgICAgIGZvciBkaXIKKysgICAgICBkbworKwlsaWJkaXJzPSIkbGliZGlycyAkZGlyIgorKyAg ICAgIGRvbmUKKysKKysgICAgICBmb3IgbGliZGlyIGluICRsaWJkaXJzOyBkbworKwlpZiB0ZXN0 IC1uICIkZmluaXNoX2NtZHMiOyB0aGVuCisrCSAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIGZp bmlzaCBjb21tYW5kcy4KKysJICBmdW5jX2V4ZWN1dGVfY21kcyAiJGZpbmlzaF9jbWRzIiAnYWRt aW5jbWRzPSIkYWRtaW5jbWRzCisrJyIkY21kIiciJworKwlmaQorKwlpZiB0ZXN0IC1uICIkZmlu aXNoX2V2YWwiOyB0aGVuCisrCSAgIyBEbyB0aGUgc2luZ2xlIGZpbmlzaF9ldmFsLgorKwkgIGV2 YWwgY21kcz1cIiRmaW5pc2hfZXZhbFwiCisrCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgIiRjbWRz IiB8fCBhZG1pbmNtZHM9IiRhZG1pbmNtZHMKKysgICAgICAgJGNtZHMiCisrCWZpCisrICAgICAg ZG9uZQorKyAgICBmaQorKworKyAgICAjIEV4aXQgaGVyZSBpZiB0aGV5IHdhbnRlZCBzaWxlbnQg bW9kZS4KKysgICAgJG9wdF9zaWxlbnQgJiYgZXhpdCAkRVhJVF9TVUNDRVNTCisrCisrICAgIGVj aG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0iCisrICAgIGVjaG8gIkxpYnJhcmllcyBoYXZlIGJlZW4gaW5zdGFs bGVkIGluOiIKKysgICAgZm9yIGxpYmRpciBpbiAkbGliZGlyczsgZG8KKysgICAgICAkRUNITyAi ICAgJGxpYmRpciIKKysgICAgZG9uZQorKyAgICBlY2hvCisrICAgIGVjaG8gIklmIHlvdSBldmVy IGhhcHBlbiB0byB3YW50IHRvIGxpbmsgYWdhaW5zdCBpbnN0YWxsZWQgbGlicmFyaWVzIgorKyAg ICBlY2hvICJpbiBhIGdpdmVuIGRpcmVjdG9yeSwgTElCRElSLCB5b3UgbXVzdCBlaXRoZXIgdXNl IGxpYnRvb2wsIGFuZCIKKysgICAgZWNobyAic3BlY2lmeSB0aGUgZnVsbCBwYXRobmFtZSBvZiB0 aGUgbGlicmFyeSwgb3IgdXNlIHRoZSBcYC1MTElCRElSJyIKKysgICAgZWNobyAiZmxhZyBkdXJp bmcgbGlua2luZyBhbmQgZG8gYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmc6IgorKyAgICBp ZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KKysgICAgICBlY2hvICIgICAtIGFkZCBM SUJESVIgdG8gdGhlIFxgJHNobGlicGF0aF92YXInIGVudmlyb25tZW50IHZhcmlhYmxlIgorKyAg ICAgIGVjaG8gIiAgICAgZHVyaW5nIGV4ZWN1dGlvbiIKKysgICAgZmkKKysgICAgaWYgdGVzdCAt biAiJHJ1bnBhdGhfdmFyIjsgdGhlbgorKyAgICAgIGVjaG8gIiAgIC0gYWRkIExJQkRJUiB0byB0 aGUgXGAkcnVucGF0aF92YXInIGVudmlyb25tZW50IHZhcmlhYmxlIgorKyAgICAgIGVjaG8gIiAg ICAgZHVyaW5nIGxpbmtpbmciCisrICAgIGZpCisrICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjIjsgdGhlbgorKyAgICAgIGxpYmRpcj1MSUJESVIKKysgICAgICBldmFs IGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrCisrICAgICAgJEVDSE8gIiAg IC0gdXNlIHRoZSBcYCRmbGFnJyBsaW5rZXIgZmxhZyIKKysgICAgZmkKKysgICAgaWYgdGVzdCAt biAiJGFkbWluY21kcyI7IHRoZW4KKysgICAgICAkRUNITyAiICAgLSBoYXZlIHlvdXIgc3lzdGVt IGFkbWluaXN0cmF0b3IgcnVuIHRoZXNlIGNvbW1hbmRzOiRhZG1pbmNtZHMiCisrICAgIGZpCisr ICAgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCisrICAgICAgZWNobyAiICAgLSBo YXZlIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgYWRkIExJQkRJUiB0byBcYC9ldGMvbGQuc28u Y29uZiciCisrICAgIGZpCisrICAgIGVjaG8KKysKKysgICAgZWNobyAiU2VlIGFueSBvcGVyYXRp bmcgc3lzdGVtIGRvY3VtZW50YXRpb24gYWJvdXQgc2hhcmVkIGxpYnJhcmllcyBmb3IiCisrICAg IGNhc2UgJGhvc3QgaW4KKysgICAgICBzb2xhcmlzMi5bNjc4OV18c29sYXJpczIuMVswLTldKQor KyAgICAgICAgZWNobyAibW9yZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgbGQoMSksIGNybGUo MSkgYW5kIGxkLnNvKDgpIG1hbnVhbCIKKysJZWNobyAicGFnZXMuIgorKwk7OworKyAgICAgICop CisrICAgICAgICBlY2hvICJtb3JlIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSBsZCgxKSBhbmQg bGQuc28oOCkgbWFudWFsIHBhZ2VzLiIKKysgICAgICAgIDs7CisrICAgIGVzYWMKKysgICAgZWNo byAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSIKKysgICAgZXhpdCAkRVhJVF9TVUNDRVNTCisrfQorKworK3Rlc3Qg IiRtb2RlIiA9IGZpbmlzaCAmJiBmdW5jX21vZGVfZmluaXNoICR7MSsiJEAifQorKworKworKyMg ZnVuY19tb2RlX2luc3RhbGwgYXJnLi4uCisrZnVuY19tb2RlX2luc3RhbGwgKCkKKyt7CisrICAg ICRvcHRfZGVidWcKKysgICAgIyBUaGVyZSBtYXkgYmUgYW4gb3B0aW9uYWwgc2goMSkgYXJndW1l bnQgYXQgdGhlIGJlZ2lubmluZyBvZgorKyAgICAjIGluc3RhbGxfcHJvZyAoZXNwZWNpYWxseSBv biBXaW5kb3dzIE5UKS4KKysgICAgaWYgdGVzdCAiJG5vbm9wdCIgPSAiJFNIRUxMIiB8fCB0ZXN0 ICIkbm9ub3B0IiA9IC9iaW4vc2ggfHwKKysgICAgICAgIyBBbGxvdyB0aGUgdXNlIG9mIEdOVSBz aHRvb2wncyBpbnN0YWxsIGNvbW1hbmQuCisrICAgICAgIGNhc2UgJG5vbm9wdCBpbiAqc2h0b29s KikgOjs7ICopIGZhbHNlOzsgZXNhYzsgdGhlbgorKyAgICAgICMgQWVzdGhldGljYWxseSBxdW90 ZSBpdC4KKysgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkbm9ub3B0IgorKyAgICAgIGluc3Rh bGxfcHJvZz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0ICIKKysgICAgICBhcmc9JDEKKysg ICAgICBzaGlmdAorKyAgICBlbHNlCisrICAgICAgaW5zdGFsbF9wcm9nPQorKyAgICAgIGFyZz0k bm9ub3B0CisrICAgIGZpCisrCisrICAgICMgVGhlIHJlYWwgZmlyc3QgYXJndW1lbnQgc2hvdWxk IGJlIHRoZSBuYW1lIG9mIHRoZSBpbnN0YWxsYXRpb24gcHJvZ3JhbS4KKysgICAgIyBBZXN0aGV0 aWNhbGx5IHF1b3RlIGl0LgorKyAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgorKyAgICBp bnN0YWxsX3Byb2c9IiRpbnN0YWxsX3Byb2ckZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisr ICAgIGluc3RhbGxfc2hhcmVkX3Byb2c9JGluc3RhbGxfcHJvZworKyAgICBjYXNlICIgJGluc3Rh bGxfcHJvZyAiIGluCisrICAgICAgKltcXFwgL11jcFwgKikgaW5zdGFsbF9jcD06IDs7CisrICAg ICAgKikgaW5zdGFsbF9jcD1mYWxzZSA7OworKyAgICBlc2FjCisrCisrICAgICMgV2UgbmVlZCB0 byBhY2NlcHQgYXQgbGVhc3QgYWxsIHRoZSBCU0QgaW5zdGFsbCBmbGFncy4KKysgICAgZGVzdD0K KysgICAgZmlsZXM9CisrICAgIG9wdHM9CisrICAgIHByZXY9CisrICAgIGluc3RhbGxfdHlwZT0K KysgICAgaXNkaXI9bm8KKysgICAgc3RyaXBtZT0KKysgICAgbm9fbW9kZT06CisrICAgIGZvciBh cmcKKysgICAgZG8KKysgICAgICBhcmcyPQorKyAgICAgIGlmIHRlc3QgLW4gIiRkZXN0IjsgdGhl bgorKwlmaWxlcz0iJGZpbGVzICRkZXN0IgorKwlkZXN0PSRhcmcKKysJY29udGludWUKKysgICAg ICBmaQorKworKyAgICAgIGNhc2UgJGFyZyBpbgorKyAgICAgIC1kKSBpc2Rpcj15ZXMgOzsKKysg ICAgICAtZikKKysJaWYgJGluc3RhbGxfY3A7IHRoZW4gOjsgZWxzZQorKwkgIHByZXY9JGFyZwor KwlmaQorKwk7OworKyAgICAgIC1nIHwgLW0gfCAtbykKKysJcHJldj0kYXJnCisrCTs7CisrICAg ICAgLXMpCisrCXN0cmlwbWU9IiAtcyIKKysJY29udGludWUKKysJOzsKKysgICAgICAtKikKKysJ OzsKKysgICAgICAqKQorKwkjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZGVkIGFuIGFyZ3Vt ZW50LCB0aGVuIHNraXAgaXQuCisrCWlmIHRlc3QgLW4gIiRwcmV2IjsgdGhlbgorKwkgIGlmIHRl c3QgIngkcHJldiIgPSB4LW0gJiYgdGVzdCAtbiAiJGluc3RhbGxfb3ZlcnJpZGVfbW9kZSI7IHRo ZW4KKysJICAgIGFyZzI9JGluc3RhbGxfb3ZlcnJpZGVfbW9kZQorKwkgICAgbm9fbW9kZT1mYWxz ZQorKwkgIGZpCisrCSAgcHJldj0KKysJZWxzZQorKwkgIGRlc3Q9JGFyZworKwkgIGNvbnRpbnVl CisrCWZpCisrCTs7CisrICAgICAgZXNhYworKworKyAgICAgICMgQWVzdGhldGljYWxseSBxdW90 ZSB0aGUgYXJndW1lbnQuCisrICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKysgICAg ICBpbnN0YWxsX3Byb2c9IiRpbnN0YWxsX3Byb2cgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0 IgorKyAgICAgIGlmIHRlc3QgLW4gIiRhcmcyIjsgdGhlbgorKwlmdW5jX3F1b3RlX2Zvcl9ldmFs ICIkYXJnMiIKKysgICAgICBmaQorKyAgICAgIGluc3RhbGxfc2hhcmVkX3Byb2c9IiRpbnN0YWxs X3NoYXJlZF9wcm9nICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysgICAgZG9uZQorKwor KyAgICB0ZXN0IC16ICIkaW5zdGFsbF9wcm9nIiAmJiBcCisrICAgICAgZnVuY19mYXRhbF9oZWxw ICJ5b3UgbXVzdCBzcGVjaWZ5IGFuIGluc3RhbGwgcHJvZ3JhbSIKKysKKysgICAgdGVzdCAtbiAi JHByZXYiICYmIFwKKysgICAgICBmdW5jX2ZhdGFsX2hlbHAgInRoZSBcYCRwcmV2JyBvcHRpb24g cmVxdWlyZXMgYW4gYXJndW1lbnQiCisrCisrICAgIGlmIHRlc3QgLW4gIiRpbnN0YWxsX292ZXJy aWRlX21vZGUiICYmICRub19tb2RlOyB0aGVuCisrICAgICAgaWYgJGluc3RhbGxfY3A7IHRoZW4g OjsgZWxzZQorKwlmdW5jX3F1b3RlX2Zvcl9ldmFsICIkaW5zdGFsbF9vdmVycmlkZV9tb2RlIgor KwlpbnN0YWxsX3NoYXJlZF9wcm9nPSIkaW5zdGFsbF9zaGFyZWRfcHJvZyAtbSAkZnVuY19xdW90 ZV9mb3JfZXZhbF9yZXN1bHQiCisrICAgICAgZmkKKysgICAgZmkKKysKKysgICAgaWYgdGVzdCAt eiAiJGZpbGVzIjsgdGhlbgorKyAgICAgIGlmIHRlc3QgLXogIiRkZXN0IjsgdGhlbgorKwlmdW5j X2ZhdGFsX2hlbHAgIm5vIGZpbGUgb3IgZGVzdGluYXRpb24gc3BlY2lmaWVkIgorKyAgICAgIGVs c2UKKysJZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGEgZGVzdGluYXRpb24iCisr ICAgICAgZmkKKysgICAgZmkKKysKKysgICAgIyBTdHJpcCBhbnkgdHJhaWxpbmcgc2xhc2ggZnJv bSB0aGUgZGVzdGluYXRpb24uCisrICAgIGZ1bmNfc3RyaXBuYW1lICcnICcvJyAiJGRlc3QiCisr ICAgIGRlc3Q9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKworKyAgICAjIENoZWNrIHRvIHNlZSB0 aGF0IHRoZSBkZXN0aW5hdGlvbiBpcyBhIGRpcmVjdG9yeS4KKysgICAgdGVzdCAtZCAiJGRlc3Qi ICYmIGlzZGlyPXllcworKyAgICBpZiB0ZXN0ICIkaXNkaXIiID0geWVzOyB0aGVuCisrICAgICAg ZGVzdGRpcj0iJGRlc3QiCisrICAgICAgZGVzdG5hbWU9CisrICAgIGVsc2UKKysgICAgICBmdW5j X2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICIkZGVzdCIgIiIgIi4iCisrICAgICAgZGVzdGRpcj0iJGZ1 bmNfZGlybmFtZV9yZXN1bHQiCisrICAgICAgZGVzdG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3Vs dCIKKysKKysgICAgICAjIE5vdCBhIGRpcmVjdG9yeSwgc28gY2hlY2sgdG8gc2VlIHRoYXQgdGhl cmUgaXMgb25seSBvbmUgZmlsZSBzcGVjaWZpZWQuCisrICAgICAgc2V0IGR1bW15ICRmaWxlczsg c2hpZnQKKysgICAgICB0ZXN0ICIkIyIgLWd0IDEgJiYgXAorKwlmdW5jX2ZhdGFsX2hlbHAgIlxg JGRlc3QnIGlzIG5vdCBhIGRpcmVjdG9yeSIKKysgICAgZmkKKysgICAgY2FzZSAkZGVzdGRpciBp bgorKyAgICBbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7CisrICAgICopCisrICAgICAgZm9y IGZpbGUgaW4gJGZpbGVzOyBkbworKwljYXNlICRmaWxlIGluCisrCSoubG8pIDs7CisrCSopCisr CSAgZnVuY19mYXRhbF9oZWxwICJcYCRkZXN0ZGlyJyBtdXN0IGJlIGFuIGFic29sdXRlIGRpcmVj dG9yeSBuYW1lIgorKwkgIDs7CisrCWVzYWMKKysgICAgICBkb25lCisrICAgICAgOzsKKysgICAg ZXNhYworKworKyAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3Qg dG8gc2V0IHZhcmlhYmxlcyByYXRoZXIKKysgICAgIyB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3Jh bXMuCisrICAgIGxpYnRvb2xfaW5zdGFsbF9tYWdpYz0iJG1hZ2ljIgorKworKyAgICBzdGF0aWNs aWJzPQorKyAgICBmdXR1cmVfbGliZGlycz0KKysgICAgY3VycmVudF9saWJkaXJzPQorKyAgICBm b3IgZmlsZSBpbiAkZmlsZXM7IGRvCisrCisrICAgICAgIyBEbyBlYWNoIGluc3RhbGxhdGlvbi4K KysgICAgICBjYXNlICRmaWxlIGluCisrICAgICAgKi4kbGliZXh0KQorKwkjIERvIHRoZSBzdGF0 aWMgbGlicmFyaWVzIGxhdGVyLgorKwlzdGF0aWNsaWJzPSIkc3RhdGljbGlicyAkZmlsZSIKKysJ OzsKKysKKysgICAgICAqLmxhKQorKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlz IGEgbGlidG9vbCBhcmNoaXZlLgorKwlmdW5jX2xhbGliX3Vuc2FmZV9wICIkZmlsZSIgXAorKwkg IHx8IGZ1bmNfZmF0YWxfaGVscCAiXGAkZmlsZScgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNo aXZlIgorKworKwlsaWJyYXJ5X25hbWVzPQorKwlvbGRfbGlicmFyeT0KKysJcmVsaW5rX2NvbW1h bmQ9CisrCWZ1bmNfc291cmNlICIkZmlsZSIKKysKKysJIyBBZGQgdGhlIGxpYmRpciB0byBjdXJy ZW50X2xpYmRpcnMgaWYgaXQgaXMgdGhlIGRlc3RpbmF0aW9uLgorKwlpZiB0ZXN0ICJYJGRlc3Rk aXIiID0gIlgkbGliZGlyIjsgdGhlbgorKwkgIGNhc2UgIiRjdXJyZW50X2xpYmRpcnMgIiBpbgor KwkgICoiICRsaWJkaXIgIiopIDs7CisrCSAgKikgY3VycmVudF9saWJkaXJzPSIkY3VycmVudF9s aWJkaXJzICRsaWJkaXIiIDs7CisrCSAgZXNhYworKwllbHNlCisrCSAgIyBOb3RlIHRoZSBsaWJk aXIgYXMgYSBmdXR1cmUgbGliZGlyLgorKwkgIGNhc2UgIiRmdXR1cmVfbGliZGlycyAiIGluCisr CSAgKiIgJGxpYmRpciAiKikgOzsKKysJICAqKSBmdXR1cmVfbGliZGlycz0iJGZ1dHVyZV9saWJk aXJzICRsaWJkaXIiIDs7CisrCSAgZXNhYworKwlmaQorKworKwlmdW5jX2Rpcm5hbWUgIiRmaWxl IiAiLyIgIiIKKysJZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysJZGlyPSIkZGlyJG9iamRp ciIKKysKKysJaWYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgorKwkgICMgRGV0ZXJt aW5lIHRoZSBwcmVmaXggdGhlIHVzZXIgaGFzIGFwcGxpZWQgdG8gb3VyIGZ1dHVyZSBkaXIuCisr CSAgaW5zdF9wcmVmaXhfZGlyPWAkRUNITyAiJGRlc3RkaXIiIHwgJFNFRCAtZSAicyUkbGliZGly XCQlJSJgCisrCisrCSAgIyBEb24ndCBhbGxvdyB0aGUgdXNlciB0byBwbGFjZSB1cyBvdXRzaWRl IG9mIG91ciBleHBlY3RlZAorKwkgICMgbG9jYXRpb24gYi9jIHRoaXMgcHJldmVudHMgZmluZGlu ZyBkZXBlbmRlbnQgbGlicmFyaWVzIHRoYXQKKysJICAjIGFyZSBpbnN0YWxsZWQgdG8gdGhlIHNh bWUgcHJlZml4LgorKwkgICMgQXQgcHJlc2VudCwgdGhpcyBjaGVjayBkb2Vzbid0IGFmZmVjdCB3 aW5kb3dzIC5kbGwncyB0aGF0CisrCSAgIyBhcmUgaW5zdGFsbGVkIGludG8gJGxpYmRpci8uLi9i aW4gKGN1cnJlbnRseSwgdGhhdCB3b3JrcyBmaW5lKQorKwkgICMgYnV0IGl0J3Mgc29tZXRoaW5n IHRvIGtlZXAgYW4gZXllIG9uLgorKwkgIHRlc3QgIiRpbnN0X3ByZWZpeF9kaXIiID0gIiRkZXN0 ZGlyIiAmJiBcCisrCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJlcnJvcjogY2Fubm90IGluc3RhbGwg XGAkZmlsZScgdG8gYSBkaXJlY3Rvcnkgbm90IGVuZGluZyBpbiAkbGliZGlyIgorKworKwkgIGlm IHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiOyB0aGVuCisrCSAgICAjIFN0aWNrIHRoZSBpbnN0 X3ByZWZpeF9kaXIgZGF0YSBpbnRvIHRoZSBsaW5rIGNvbW1hbmQuCisrCSAgICByZWxpbmtfY29t bWFuZD1gJEVDSE8gIiRyZWxpbmtfY29tbWFuZCIgfCAkU0VEICJzJUBpbnN0X3ByZWZpeF9kaXJA JS1pbnN0LXByZWZpeC1kaXIgJGluc3RfcHJlZml4X2RpciUiYAorKwkgIGVsc2UKKysJICAgIHJl bGlua19jb21tYW5kPWAkRUNITyAiJHJlbGlua19jb21tYW5kIiB8ICRTRUQgInMlQGluc3RfcHJl Zml4X2RpckAlJSJgCisrCSAgZmkKKysKKysJICBmdW5jX3dhcm5pbmcgInJlbGlua2luZyBcYCRm aWxlJyIKKysJICBmdW5jX3Nob3dfZXZhbCAiJHJlbGlua19jb21tYW5kIiBcCisrCSAgICAnZnVu Y19mYXRhbF9lcnJvciAiZXJyb3I6IHJlbGluayBcYCRmaWxlJ1wnJyB3aXRoIHRoZSBhYm92ZSBj b21tYW5kIGJlZm9yZSBpbnN0YWxsaW5nIGl0IicKKysJZmkKKysKKysJIyBTZWUgdGhlIG5hbWVz IG9mIHRoZSBzaGFyZWQgbGlicmFyeS4KKysJc2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzOyBzaGlm dAorKwlpZiB0ZXN0IC1uICIkMSI7IHRoZW4KKysJICByZWFsbmFtZT0iJDEiCisrCSAgc2hpZnQK KysKKysJICBzcmNuYW1lPSIkcmVhbG5hbWUiCisrCSAgdGVzdCAtbiAiJHJlbGlua19jb21tYW5k IiAmJiBzcmNuYW1lPSIkcmVhbG5hbWUiVAorKworKwkgICMgSW5zdGFsbCB0aGUgc2hhcmVkIGxp YnJhcnkgYW5kIGJ1aWxkIHRoZSBzeW1saW5rcy4KKysJICBmdW5jX3Nob3dfZXZhbCAiJGluc3Rh bGxfc2hhcmVkX3Byb2cgJGRpci8kc3JjbmFtZSAkZGVzdGRpci8kcmVhbG5hbWUiIFwKKysJICAg ICAgJ2V4aXQgJD8nCisrCSAgdHN0cmlwbWU9IiRzdHJpcG1lIgorKwkgIGNhc2UgJGhvc3Rfb3Mg aW4KKysJICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisrCSAgICBjYXNlICRy ZWFsbmFtZSBpbgorKwkgICAgKi5kbGwuYSkKKysJICAgICAgdHN0cmlwbWU9IiIKKysJICAgICAg OzsKKysJICAgIGVzYWMKKysJICAgIDs7CisrCSAgZXNhYworKwkgIGlmIHRlc3QgLW4gIiR0c3Ry aXBtZSIgJiYgdGVzdCAtbiAiJHN0cmlwbGliIjsgdGhlbgorKwkgICAgZnVuY19zaG93X2V2YWwg IiRzdHJpcGxpYiAkZGVzdGRpci8kcmVhbG5hbWUiICdleGl0ICQ/JworKwkgIGZpCisrCisrCSAg aWYgdGVzdCAiJCMiIC1ndCAwOyB0aGVuCisrCSAgICAjIERlbGV0ZSB0aGUgb2xkIHN5bWxpbmtz LCBhbmQgY3JlYXRlIG5ldyBvbmVzLgorKwkgICAgIyBUcnkgYGxuIC1zZicgZmlyc3QsIGJlY2F1 c2UgdGhlIGBsbicgYmluYXJ5IG1pZ2h0IGRlcGVuZCBvbgorKwkgICAgIyB0aGUgc3ltbGluayB3 ZSByZXBsYWNlISAgU29sYXJpcyAvYmluL2xuIGRvZXMgbm90IHVuZGVyc3RhbmQgLWYsCisrCSAg ICAjIHNvIHdlIGFsc28gbmVlZCB0byB0cnkgcm0gJiYgbG4gLXMuCisrCSAgICBmb3IgbGlua25h bWUKKysJICAgIGRvCisrCSAgICAgIHRlc3QgIiRsaW5rbmFtZSIgIT0gIiRyZWFsbmFtZSIgXAor KwkJJiYgZnVuY19zaG93X2V2YWwgIihjZCAkZGVzdGRpciAmJiB7ICRMTl9TIC1mICRyZWFsbmFt ZSAkbGlua25hbWUgfHwgeyAkUk0gJGxpbmtuYW1lICYmICRMTl9TICRyZWFsbmFtZSAkbGlua25h bWU7IH07IH0pIgorKwkgICAgZG9uZQorKwkgIGZpCisrCisrCSAgIyBEbyBlYWNoIGNvbW1hbmQg aW4gdGhlIHBvc3RpbnN0YWxsIGNvbW1hbmRzLgorKwkgIGxpYj0iJGRlc3RkaXIvJHJlYWxuYW1l IgorKwkgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkcG9zdGluc3RhbGxfY21kcyIgJ2V4aXQgJD8nCisr CWZpCisrCisrCSMgSW5zdGFsbCB0aGUgcHNldWRvLWxpYnJhcnkgZm9yIGluZm9ybWF0aW9uIHB1 cnBvc2VzLgorKwlmdW5jX2Jhc2VuYW1lICIkZmlsZSIKKysJbmFtZT0iJGZ1bmNfYmFzZW5hbWVf cmVzdWx0IgorKwlpbnN0bmFtZT0iJGRpci8kbmFtZSJpCisrCWZ1bmNfc2hvd19ldmFsICIkaW5z dGFsbF9wcm9nICRpbnN0bmFtZSAkZGVzdGRpci8kbmFtZSIgJ2V4aXQgJD8nCisrCisrCSMgTWF5 YmUgaW5zdGFsbCB0aGUgc3RhdGljIGxpYnJhcnksIHRvby4KKysJdGVzdCAtbiAiJG9sZF9saWJy YXJ5IiAmJiBzdGF0aWNsaWJzPSIkc3RhdGljbGlicyAkZGlyLyRvbGRfbGlicmFyeSIKKysJOzsK KysKKysgICAgICAqLmxvKQorKwkjIEluc3RhbGwgKGkuZS4gY29weSkgYSBsaWJ0b29sIG9iamVj dC4KKysKKysJIyBGaWd1cmUgb3V0IGRlc3RpbmF0aW9uIGZpbGUgbmFtZSwgaWYgaXQgd2Fzbid0 IGFscmVhZHkgc3BlY2lmaWVkLgorKwlpZiB0ZXN0IC1uICIkZGVzdG5hbWUiOyB0aGVuCisrCSAg ZGVzdGZpbGU9IiRkZXN0ZGlyLyRkZXN0bmFtZSIKKysJZWxzZQorKwkgIGZ1bmNfYmFzZW5hbWUg IiRmaWxlIgorKwkgIGRlc3RmaWxlPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCSAgZGVzdGZp bGU9IiRkZXN0ZGlyLyRkZXN0ZmlsZSIKKysJZmkKKysKKysJIyBEZWR1Y2UgdGhlIG5hbWUgb2Yg dGhlIGRlc3RpbmF0aW9uIG9sZC1zdHlsZSBvYmplY3QgZmlsZS4KKysJY2FzZSAkZGVzdGZpbGUg aW4KKysJKi5sbykKKysJICBmdW5jX2xvMm8gIiRkZXN0ZmlsZSIKKysJICBzdGF0aWNkZXN0PSRm dW5jX2xvMm9fcmVzdWx0CisrCSAgOzsKKysJKi4kb2JqZXh0KQorKwkgIHN0YXRpY2Rlc3Q9IiRk ZXN0ZmlsZSIKKysJICBkZXN0ZmlsZT0KKysJICA7OworKwkqKQorKwkgIGZ1bmNfZmF0YWxfaGVs cCAiY2Fubm90IGNvcHkgYSBsaWJ0b29sIG9iamVjdCB0byBcYCRkZXN0ZmlsZSciCisrCSAgOzsK KysJZXNhYworKworKwkjIEluc3RhbGwgdGhlIGxpYnRvb2wgb2JqZWN0IGlmIHJlcXVlc3RlZC4K KysJdGVzdCAtbiAiJGRlc3RmaWxlIiAmJiBcCisrCSAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxs X3Byb2cgJGZpbGUgJGRlc3RmaWxlIiAnZXhpdCAkPycKKysKKysJIyBJbnN0YWxsIHRoZSBvbGQg b2JqZWN0IGlmIGVuYWJsZWQuCisrCWlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRo ZW4KKysJICAjIERlZHVjZSB0aGUgbmFtZSBvZiB0aGUgb2xkLXN0eWxlIG9iamVjdCBmaWxlLgor KwkgIGZ1bmNfbG8ybyAiJGZpbGUiCisrCSAgc3RhdGljb2JqPSRmdW5jX2xvMm9fcmVzdWx0Cisr CSAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgXCRzdGF0aWNvYmogXCRzdGF0aWNkZXN0 IiAnZXhpdCAkPycKKysJZmkKKysJZXhpdCAkRVhJVF9TVUNDRVNTCisrCTs7CisrCisrICAgICAg KikKKysJIyBGaWd1cmUgb3V0IGRlc3RpbmF0aW9uIGZpbGUgbmFtZSwgaWYgaXQgd2Fzbid0IGFs cmVhZHkgc3BlY2lmaWVkLgorKwlpZiB0ZXN0IC1uICIkZGVzdG5hbWUiOyB0aGVuCisrCSAgZGVz dGZpbGU9IiRkZXN0ZGlyLyRkZXN0bmFtZSIKKysJZWxzZQorKwkgIGZ1bmNfYmFzZW5hbWUgIiRm aWxlIgorKwkgIGRlc3RmaWxlPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCSAgZGVzdGZpbGU9 IiRkZXN0ZGlyLyRkZXN0ZmlsZSIKKysJZmkKKysKKysJIyBJZiB0aGUgZmlsZSBpcyBtaXNzaW5n LCBhbmQgdGhlcmUgaXMgYSAuZXhlIG9uIHRoZSBlbmQsIHN0cmlwIGl0CisrCSMgYmVjYXVzZSBp dCBpcyBtb3N0IGxpa2VseSBhIGxpYnRvb2wgc2NyaXB0IHdlIGFjdHVhbGx5IHdhbnQgdG8KKysJ IyBpbnN0YWxsCisrCXN0cmlwcGVkX2V4dD0iIgorKwljYXNlICRmaWxlIGluCisrCSAgKi5leGUp CisrCSAgICBpZiB0ZXN0ICEgLWYgIiRmaWxlIjsgdGhlbgorKwkgICAgICBmdW5jX3N0cmlwbmFt ZSAnJyAnLmV4ZScgIiRmaWxlIgorKwkgICAgICBmaWxlPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQK KysJICAgICAgc3RyaXBwZWRfZXh0PSIuZXhlIgorKwkgICAgZmkKKysJICAgIDs7CisrCWVzYWMK KysKKysJIyBEbyBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgcmVhbGx5IGEgbGlidG9vbCBwcm9n cmFtLgorKwljYXNlICRob3N0IGluCisrCSpjeWd3aW4qIHwgKm1pbmd3KikKKysJICAgIGlmIGZ1 bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJGZpbGUiOyB0aGVuCisrCSAgICAgIGZ1bmNfbHR3 cmFwcGVyX3NjcmlwdG5hbWUgIiRmaWxlIgorKwkgICAgICB3cmFwcGVyPSRmdW5jX2x0d3JhcHBl cl9zY3JpcHRuYW1lX3Jlc3VsdAorKwkgICAgZWxzZQorKwkgICAgICBmdW5jX3N0cmlwbmFtZSAn JyAnLmV4ZScgIiRmaWxlIgorKwkgICAgICB3cmFwcGVyPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQK KysJICAgIGZpCisrCSAgICA7OworKwkqKQorKwkgICAgd3JhcHBlcj0kZmlsZQorKwkgICAgOzsK KysJZXNhYworKwlpZiBmdW5jX2x0d3JhcHBlcl9zY3JpcHRfcCAiJHdyYXBwZXIiOyB0aGVuCisr CSAgbm90aW5zdF9kZXBsaWJzPQorKwkgIHJlbGlua19jb21tYW5kPQorKworKwkgIGZ1bmNfc291 cmNlICIkd3JhcHBlciIKKysKKysJICAjIENoZWNrIHRoZSB2YXJpYWJsZXMgdGhhdCBzaG91bGQg aGF2ZSBiZWVuIHNldC4KKysJICB0ZXN0IC16ICIkZ2VuZXJhdGVkX2J5X2xpYnRvb2xfdmVyc2lv biIgJiYgXAorKwkgICAgZnVuY19mYXRhbF9lcnJvciAiaW52YWxpZCBsaWJ0b29sIHdyYXBwZXIg c2NyaXB0IFxgJHdyYXBwZXInIgorKworKwkgIGZpbmFsaXplPXllcworKwkgIGZvciBsaWIgaW4g JG5vdGluc3RfZGVwbGliczsgZG8KKysJICAgICMgQ2hlY2sgdG8gc2VlIHRoYXQgZWFjaCBsaWJy YXJ5IGlzIGluc3RhbGxlZC4KKysJICAgIGxpYmRpcj0KKysJICAgIGlmIHRlc3QgLWYgIiRsaWIi OyB0aGVuCisrCSAgICAgIGZ1bmNfc291cmNlICIkbGliIgorKwkgICAgZmkKKysJICAgIGxpYmZp bGU9IiRsaWJkaXIvImAkRUNITyAiJGxpYiIgfCAkU0VEICdzJV4uKi8lJWcnYCAjIyMgdGVzdHN1 aXRlOiBza2lwIG5lc3RlZCBxdW90aW5nIHRlc3QKKysJICAgIGlmIHRlc3QgLW4gIiRsaWJkaXIi ICYmIHRlc3QgISAtZiAiJGxpYmZpbGUiOyB0aGVuCisrCSAgICAgIGZ1bmNfd2FybmluZyAiXGAk bGliJyBoYXMgbm90IGJlZW4gaW5zdGFsbGVkIGluIFxgJGxpYmRpciciCisrCSAgICAgIGZpbmFs aXplPW5vCisrCSAgICBmaQorKwkgIGRvbmUKKysKKysJICByZWxpbmtfY29tbWFuZD0KKysJICBm dW5jX3NvdXJjZSAiJHdyYXBwZXIiCisrCisrCSAgb3V0cHV0bmFtZT0KKysJICBpZiB0ZXN0ICIk ZmFzdF9pbnN0YWxsIiA9IG5vICYmIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4KKysJ ICAgICRvcHRfZHJ5X3J1biB8fCB7CisrCSAgICAgIGlmIHRlc3QgIiRmaW5hbGl6ZSIgPSB5ZXM7 IHRoZW4KKysJICAgICAgICB0bXBkaXI9YGZ1bmNfbWt0ZW1wZGlyYAorKwkJZnVuY19iYXNlbmFt ZSAiJGZpbGUkc3RyaXBwZWRfZXh0IgorKwkJZmlsZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0Igor KwkgICAgICAgIG91dHB1dG5hbWU9IiR0bXBkaXIvJGZpbGUiCisrCSAgICAgICAgIyBSZXBsYWNl IHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgorKwkgICAgICAgIHJlbGlua19jb21tYW5k PWAkRUNITyAiJHJlbGlua19jb21tYW5kIiB8ICRTRUQgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0bmFt ZSInJWcnYAorKworKwkgICAgICAgICRvcHRfc2lsZW50IHx8IHsKKysJICAgICAgICAgIGZ1bmNf cXVvdGVfZm9yX2V4cGFuZCAiJHJlbGlua19jb21tYW5kIgorKwkJICBldmFsICJmdW5jX2VjaG8g JGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQiCisrCSAgICAgICAgfQorKwkgICAgICAgIGlm IGV2YWwgIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4gOgorKwkgICAgICAgICAgZWxzZQorKwkJICBm dW5jX2Vycm9yICJlcnJvcjogcmVsaW5rIFxgJGZpbGUnIHdpdGggdGhlIGFib3ZlIGNvbW1hbmQg YmVmb3JlIGluc3RhbGxpbmcgaXQiCisrCQkgICRvcHRfZHJ5X3J1biB8fCAke1JNfXIgIiR0bXBk aXIiCisrCQkgIGNvbnRpbnVlCisrCSAgICAgICAgZmkKKysJICAgICAgICBmaWxlPSIkb3V0cHV0 bmFtZSIKKysJICAgICAgZWxzZQorKwkgICAgICAgIGZ1bmNfd2FybmluZyAiY2Fubm90IHJlbGlu ayBcYCRmaWxlJyIKKysJICAgICAgZmkKKysJICAgIH0KKysJICBlbHNlCisrCSAgICAjIEluc3Rh bGwgdGhlIGJpbmFyeSB0aGF0IHdlIGNvbXBpbGVkIGVhcmxpZXIuCisrCSAgICBmaWxlPWAkRUNI TyAiJGZpbGUkc3RyaXBwZWRfZXh0IiB8ICRTRUQgInMlXChbXi9dKlwpJCUkb2JqZGlyL1wxJSJg CisrCSAgZmkKKysJZmkKKysKKysJIyByZW1vdmUgLmV4ZSBzaW5jZSBjeWd3aW4gL3Vzci9iaW4v aW5zdGFsbCB3aWxsIGFwcGVuZCBhbm90aGVyCisrCSMgb25lIGFueXdheQorKwljYXNlICRpbnN0 YWxsX3Byb2csJGhvc3QgaW4KKysJKi91c3IvYmluL2luc3RhbGwqLCpjeWd3aW4qKQorKwkgIGNh c2UgJGZpbGU6JGRlc3RmaWxlIGluCisrCSAgKi5leGU6Ki5leGUpCisrCSAgICAjIHRoaXMgaXMg b2sKKysJICAgIDs7CisrCSAgKi5leGU6KikKKysJICAgIGRlc3RmaWxlPSRkZXN0ZmlsZS5leGUK KysJICAgIDs7CisrCSAgKjoqLmV4ZSkKKysJICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAi JGRlc3RmaWxlIgorKwkgICAgZGVzdGZpbGU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgICAg OzsKKysJICBlc2FjCisrCSAgOzsKKysJZXNhYworKwlmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxf cHJvZ1wkc3RyaXBtZSBcJGZpbGUgXCRkZXN0ZmlsZSIgJ2V4aXQgJD8nCisrCSRvcHRfZHJ5X3J1 biB8fCBpZiB0ZXN0IC1uICIkb3V0cHV0bmFtZSI7IHRoZW4KKysJICAke1JNfXIgIiR0bXBkaXIi CisrCWZpCisrCTs7CisrICAgICAgZXNhYworKyAgICBkb25lCisrCisrICAgIGZvciBmaWxlIGlu ICRzdGF0aWNsaWJzOyBkbworKyAgICAgIGZ1bmNfYmFzZW5hbWUgIiRmaWxlIgorKyAgICAgIG5h bWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysKKysgICAgICAjIFNldCB1cCB0aGUgcmFubGli IHBhcmFtZXRlcnMuCisrICAgICAgb2xkbGliPSIkZGVzdGRpci8kbmFtZSIKKysKKysgICAgICBm dW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyBcJGZpbGUgXCRvbGRsaWIiICdleGl0ICQ/Jwor KworKyAgICAgIGlmIHRlc3QgLW4gIiRzdHJpcG1lIiAmJiB0ZXN0IC1uICIkb2xkX3N0cmlwbGli IjsgdGhlbgorKwlmdW5jX3Nob3dfZXZhbCAiJG9sZF9zdHJpcGxpYiAkb2xkbGliIiAnZXhpdCAk PycKKysgICAgICBmaQorKworKyAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0aW5z dGFsbCBjb21tYW5kcy4KKysgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJG9sZF9wb3N0aW5zdGFs bF9jbWRzIiAnZXhpdCAkPycKKysgICAgZG9uZQorKworKyAgICB0ZXN0IC1uICIkZnV0dXJlX2xp YmRpcnMiICYmIFwKKysgICAgICBmdW5jX3dhcm5pbmcgInJlbWVtYmVyIHRvIHJ1biBcYCRwcm9n bmFtZSAtLWZpbmlzaCRmdXR1cmVfbGliZGlycyciCisrCisrICAgIGlmIHRlc3QgLW4gIiRjdXJy ZW50X2xpYmRpcnMiOyB0aGVuCisrICAgICAgIyBNYXliZSBqdXN0IGRvIGEgZHJ5IHJ1bi4KKysg ICAgICAkb3B0X2RyeV9ydW4gJiYgY3VycmVudF9saWJkaXJzPSIgLW4kY3VycmVudF9saWJkaXJz IgorKyAgICAgIGV4ZWNfY21kPSckU0hFTEwgJHByb2dwYXRoICRwcmVzZXJ2ZV9hcmdzIC0tZmlu aXNoJGN1cnJlbnRfbGliZGlycycKKysgICAgZWxzZQorKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VT UworKyAgICBmaQorK30KKysKKyt0ZXN0ICIkbW9kZSIgPSBpbnN0YWxsICYmIGZ1bmNfbW9kZV9p bnN0YWxsICR7MSsiJEAifQorKworKworKyMgZnVuY19nZW5lcmF0ZV9kbHN5bXMgb3V0cHV0bmFt ZSBvcmlnaW5hdG9yIHBpY19wCisrIyBFeHRyYWN0IHN5bWJvbHMgZnJvbSBkbHByZWZpbGVzIGFu ZCBjcmVhdGUgJHtvdXRwdXRuYW1lfVMubyB3aXRoCisrIyBhIGRscHJlb3BlbiBzeW1ib2wgdGFi bGUuCisrZnVuY19nZW5lcmF0ZV9kbHN5bXMgKCkKKyt7CisrICAgICRvcHRfZGVidWcKKysgICAg bXlfb3V0cHV0bmFtZT0iJDEiCisrICAgIG15X29yaWdpbmF0b3I9IiQyIgorKyAgICBteV9waWNf cD0iJHszLW5vfSIKKysgICAgbXlfcHJlZml4PWAkRUNITyAiJG15X29yaWdpbmF0b3IiIHwgc2Vk ICdzJVteYS16QS1aMC05XSVfJWcnYAorKyAgICBteV9kbHN5bXM9CisrCisrICAgIGlmIHRlc3Qg LW4gIiRkbGZpbGVzJGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCisr ICAgICAgaWYgdGVzdCAtbiAiJE5NIiAmJiB0ZXN0IC1uICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsg dGhlbgorKwlteV9kbHN5bXM9IiR7bXlfb3V0cHV0bmFtZX1TLmMiCisrICAgICAgZWxzZQorKwlm dW5jX2Vycm9yICJub3QgY29uZmlndXJlZCB0byBleHRyYWN0IGdsb2JhbCBzeW1ib2xzIGZyb20g ZGxwcmVvcGVuZWQgZmlsZXMiCisrICAgICAgZmkKKysgICAgZmkKKysKKysgICAgaWYgdGVzdCAt biAiJG15X2Rsc3ltcyI7IHRoZW4KKysgICAgICBjYXNlICRteV9kbHN5bXMgaW4KKysgICAgICAi IikgOzsKKysgICAgICAqLmMpCisrCSMgRGlzY292ZXIgdGhlIG5saXN0IG9mIGVhY2ggb2YgdGhl IGRsZmlsZXMuCisrCW5saXN0PSIkb3V0cHV0X29iamRpci8ke215X291dHB1dG5hbWV9Lm5tIgor KworKwlmdW5jX3Nob3dfZXZhbCAiJFJNICRubGlzdCAke25saXN0fVMgJHtubGlzdH1UIgorKwor KwkjIFBhcnNlIHRoZSBuYW1lIGxpc3QgaW50byBhIHNvdXJjZSBmaWxlLgorKwlmdW5jX3ZlcmJv c2UgImNyZWF0aW5nICRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCisrCisrCSRvcHRfZHJ5X3J1 biB8fCAkRUNITyA+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAorKy8qICRteV9kbHN5 bXMgLSBzeW1ib2wgcmVzb2x1dGlvbiB0YWJsZSBmb3IgXGAkbXlfb3V0cHV0bmFtZScgZGxzeW0g ZW11bGF0aW9uLiAqLworKy8qIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJ TUVTVEFNUCkgJFZFUlNJT04gKi8KKysKKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gXCJD XCIgeworKyNlbmRpZgorKworKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoKChfX0dOVUNfXyA9 PSA0KSAmJiAoX19HTlVDX01JTk9SX18gPj0gNCkpIHx8IChfX0dOVUNfXyA+IDQpKQorKyNwcmFn bWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCBcIi1Xc3RyaWN0LXByb3RvdHlwZXNcIgorKyNlbmRp ZgorKworKy8qIEV4dGVybmFsIHN5bWJvbCBkZWNsYXJhdGlvbnMgZm9yIHRoZSBjb21waWxlci4g Ki9cCisrIgorKworKwlpZiB0ZXN0ICIkZGxzZWxmIiA9IHllczsgdGhlbgorKwkgIGZ1bmNfdmVy Ym9zZSAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAkb3V0cHV0JyIKKysKKysJICAkb3B0 X2RyeV9ydW4gfHwgZWNobyAnOiBAUFJPR1JBTUAgJyA+ICIkbmxpc3QiCisrCisrCSAgIyBBZGQg b3VyIG93biBwcm9ncmFtIG9iamVjdHMgdG8gdGhlIHN5bWJvbCBsaXN0LgorKwkgIHByb2dmaWxl cz1gJEVDSE8gIiRvYmpzJG9sZF9kZXBsaWJzIiB8ICRTUDJOTCB8ICRTRUQgIiRsbzJvIiB8ICRO TDJTUGAKKysJICBmb3IgcHJvZ2ZpbGUgaW4gJHByb2dmaWxlczsgZG8KKysJICAgIGZ1bmNfdmVy Ym9zZSAiZXh0cmFjdGluZyBnbG9iYWwgQyBzeW1ib2xzIGZyb20gXGAkcHJvZ2ZpbGUnIgorKwkg ICAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgIiROTSAkcHJvZ2ZpbGUgfCAkZ2xvYmFsX3N5bWJvbF9w aXBlID4+ICckbmxpc3QnIgorKwkgIGRvbmUKKysKKysJICBpZiB0ZXN0IC1uICIkZXhjbHVkZV9l eHBzeW1zIjsgdGhlbgorKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJICAgICAgZXZhbCAnJEVH UkVQIC12ICIgKCRleGNsdWRlX2V4cHN5bXMpJCIgIiRubGlzdCIgPiAiJG5saXN0IlQnCisrCSAg ICAgIGV2YWwgJyRNViAiJG5saXN0IlQgIiRubGlzdCInCisrCSAgICB9CisrCSAgZmkKKysKKysJ ICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCisrCSAgICAkb3B0X2Ry eV9ydW4gfHwgeworKwkgICAgICBldmFsICckRUdSRVAgLWUgIiRleHBvcnRfc3ltYm9sc19yZWdl eCIgIiRubGlzdCIgPiAiJG5saXN0IlQnCisrCSAgICAgIGV2YWwgJyRNViAiJG5saXN0IlQgIiRu bGlzdCInCisrCSAgICB9CisrCSAgZmkKKysKKysJICAjIFByZXBhcmUgdGhlIGxpc3Qgb2YgZXhw b3J0ZWQgc3ltYm9scworKwkgIGlmIHRlc3QgLXogIiRleHBvcnRfc3ltYm9scyI7IHRoZW4KKysJ ICAgIGV4cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5leHAiCisrCSAg ICAkb3B0X2RyeV9ydW4gfHwgeworKwkgICAgICAkUk0gJGV4cG9ydF9zeW1ib2xzCisrCSAgICAg IGV2YWwgIiR7U0VEfSAtbiAtZSAnL146IEBQUk9HUkFNQCAkL2QnIC1lICdzL14uKiBcKC4qXCkk L1wxL3AnICInPCAiJG5saXN0IiA+ICIkZXhwb3J0X3N5bWJvbHMiJworKwkgICAgICBjYXNlICRo b3N0IGluCisrCSAgICAgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQorKyAgICAgICAg ICAgICAgICBldmFsICJlY2hvIEVYUE9SVFMgIic+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFt ZS5kZWYiJworKyAgICAgICAgICAgICAgICBldmFsICdjYXQgIiRleHBvcnRfc3ltYm9scyIgPj4g IiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmRlZiInCisrCSAgICAgICAgOzsKKysJICAgICAg ZXNhYworKwkgICAgfQorKwkgIGVsc2UKKysJICAgICRvcHRfZHJ5X3J1biB8fCB7CisrCSAgICAg IGV2YWwgIiR7U0VEfSAtZSAncy9cKFtdLlsqXiRdXCkvXFxcXFwxL2cnIC1lICdzL14vIC8nIC1l ICdzLyQvJC8nIicgPCAiJGV4cG9ydF9zeW1ib2xzIiA+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0 bmFtZS5leHAiJworKwkgICAgICBldmFsICckR1JFUCAtZiAiJG91dHB1dF9vYmpkaXIvJG91dHB1 dG5hbWUuZXhwIiA8ICIkbmxpc3QiID4gIiRubGlzdCJUJworKwkgICAgICBldmFsICckTVYgIiRu bGlzdCJUICIkbmxpc3QiJworKwkgICAgICBjYXNlICRob3N0IGluCisrCSAgICAgICAgKmN5Z3dp biogfCAqbWluZ3cqIHwgKmNlZ2NjKiApCisrCSAgICAgICAgICBldmFsICJlY2hvIEVYUE9SVFMg Iic+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJworKwkgICAgICAgICAgZXZhbCAn Y2F0ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJworKwkgICAg ICAgICAgOzsKKysJICAgICAgZXNhYworKwkgICAgfQorKwkgIGZpCisrCWZpCisrCisrCWZvciBk bHByZWZpbGUgaW4gJGRscHJlZmlsZXM7IGRvCisrCSAgZnVuY192ZXJib3NlICJleHRyYWN0aW5n IGdsb2JhbCBDIHN5bWJvbHMgZnJvbSBcYCRkbHByZWZpbGUnIgorKwkgIGZ1bmNfYmFzZW5hbWUg IiRkbHByZWZpbGUiCisrCSAgbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKwkgICRvcHRf ZHJ5X3J1biB8fCB7CisrCSAgICBldmFsICckRUNITyAiOiAkbmFtZSAiID4+ICIkbmxpc3QiJwor KwkgICAgZXZhbCAiJE5NICRkbHByZWZpbGUgMj4vZGV2L251bGwgfCAkZ2xvYmFsX3N5bWJvbF9w aXBlID4+ICckbmxpc3QnIgorKwkgIH0KKysJZG9uZQorKworKwkkb3B0X2RyeV9ydW4gfHwgewor KwkgICMgTWFrZSBzdXJlIHdlIGhhdmUgYXQgbGVhc3QgYW4gZW1wdHkgZmlsZS4KKysJICB0ZXN0 IC1mICIkbmxpc3QiIHx8IDogPiAiJG5saXN0IgorKworKwkgIGlmIHRlc3QgLW4gIiRleGNsdWRl X2V4cHN5bXMiOyB0aGVuCisrCSAgICAkRUdSRVAgLXYgIiAoJGV4Y2x1ZGVfZXhwc3ltcykkIiAi JG5saXN0IiA+ICIkbmxpc3QiVAorKwkgICAgJE1WICIkbmxpc3QiVCAiJG5saXN0IgorKwkgIGZp CisrCisrCSAgIyBUcnkgc29ydGluZyBhbmQgdW5pcXVpZnlpbmcgdGhlIG91dHB1dC4KKysJICBp ZiAkR1JFUCAtdiAiXjogIiA8ICIkbmxpc3QiIHwKKysJICAgICAgaWYgc29ydCAtayAzIDwvZGV2 L251bGwgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCQlzb3J0IC1rIDMKKysJICAgICAgZWxzZQor KwkJc29ydCArMgorKwkgICAgICBmaSB8CisrCSAgICAgIHVuaXEgPiAiJG5saXN0IlM7IHRoZW4K KysJICAgIDoKKysJICBlbHNlCisrCSAgICAkR1JFUCAtdiAiXjogIiA8ICIkbmxpc3QiID4gIiRu bGlzdCJTCisrCSAgZmkKKysKKysJICBpZiB0ZXN0IC1mICIkbmxpc3QiUzsgdGhlbgorKwkgICAg ZXZhbCAiJGdsb2JhbF9zeW1ib2xfdG9fY2RlY2wiJyA8ICIkbmxpc3QiUyA+PiAiJG91dHB1dF9v YmpkaXIvJG15X2Rsc3ltcyInCisrCSAgZWxzZQorKwkgICAgZWNobyAnLyogTk9ORSAqLycgPj4g IiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCisrCSAgZmkKKysKKysJICBlY2hvID4+ICIkb3V0 cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAorKworKy8qIFRoZSBtYXBwaW5nIGJldHdlZW4gc3lt Ym9sIG5hbWVzIGFuZCBzeW1ib2xzLiAgKi8KKyt0eXBlZGVmIHN0cnVjdCB7CisrICBjb25zdCBj aGFyICpuYW1lOworKyAgdm9pZCAqYWRkcmVzczsKKyt9IGx0X2Rsc3ltbGlzdDsKKysiCisrCSAg Y2FzZSAkaG9zdCBpbgorKwkgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQorKwkgICAg ZWNobyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwKKysvKiBEQVRBIGltcG9ydHMg ZnJvbSBETExzIG9uIFdJTjMyIGNvbid0IGJlIGNvbnN0LCBiZWNhdXNlCisrICAgcnVudGltZSBy ZWxvY2F0aW9ucyBhcmUgcGVyZm9ybWVkIC0tIHNlZSBsZCdzIGRvY3VtZW50YXRpb24KKysgICBv biBwc2V1ZG8tcmVsb2NzLiAgKi8iCisrCSAgICBsdF9kbHN5bV9jb25zdD0gOzsKKysJICAqb3Nm NSopCisrCSAgICBlY2hvID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAorKy8qIFRo aXMgc3lzdGVtIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHJlbG9jYXRpb25zIGluIGNvbnN0IGRh dGEgKi8iCisrCSAgICBsdF9kbHN5bV9jb25zdD0gOzsKKysJICAqKQorKwkgICAgbHRfZGxzeW1f Y29uc3Q9Y29uc3QgOzsKKysJICBlc2FjCisrCisrCSAgZWNobyA+PiAiJG91dHB1dF9vYmpkaXIv JG15X2Rsc3ltcyIgIlwKKytleHRlcm4gJGx0X2Rsc3ltX2NvbnN0IGx0X2Rsc3ltbGlzdAorK2x0 XyR7bXlfcHJlZml4fV9MVFhfcHJlbG9hZGVkX3N5bWJvbHNbXTsKKyskbHRfZGxzeW1fY29uc3Qg bHRfZGxzeW1saXN0CisrbHRfJHtteV9wcmVmaXh9X0xUWF9wcmVsb2FkZWRfc3ltYm9sc1tdID0K Kyt7XAorKyAgeyBcIiRteV9vcmlnaW5hdG9yXCIsICh2b2lkICopIDAgfSwiCisrCisrCSAgY2Fz ZSAkbmVlZF9saWJfcHJlZml4IGluCisrCSAgbm8pCisrCSAgICBldmFsICIkZ2xvYmFsX3N5bWJv bF90b19jX25hbWVfYWRkcmVzcyIgPCAiJG5saXN0IiA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rs c3ltcyIKKysJICAgIDs7CisrCSAgKikKKysJICAgIGV2YWwgIiRnbG9iYWxfc3ltYm9sX3RvX2Nf bmFtZV9hZGRyZXNzX2xpYl9wcmVmaXgiIDwgIiRubGlzdCIgPj4gIiRvdXRwdXRfb2JqZGlyLyRt eV9kbHN5bXMiCisrCSAgICA7OworKwkgIGVzYWMKKysJICBlY2hvID4+ICIkb3V0cHV0X29iamRp ci8kbXlfZGxzeW1zIiAiXAorKyAgezAsICh2b2lkICopIDB9CisrfTsKKysKKysvKiBUaGlzIHdv cmtzIGFyb3VuZCBhIHByb2JsZW0gaW4gRnJlZUJTRCBsaW5rZXIgKi8KKysjaWZkZWYgRlJFRUJT RF9XT1JLQVJPVU5ECisrc3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgpIHsK KysgIHJldHVybiBsdF8ke215X3ByZWZpeH1fTFRYX3ByZWxvYWRlZF9zeW1ib2xzOworK30KKysj ZW5kaWYKKysKKysjaWZkZWYgX19jcGx1c3BsdXMKKyt9CisrI2VuZGlmXAorKyIKKysJfSAjICEk b3B0X2RyeV9ydW4KKysKKysJcGljX2ZsYWdfZm9yX3N5bXRhYmxlPQorKwljYXNlICIkY29tcGls ZV9jb21tYW5kICIgaW4KKysJKiIgLXN0YXRpYyAiKikgOzsKKysJKikKKysJICBjYXNlICRob3N0 IGluCisrCSAgIyBjb21waWxpbmcgdGhlIHN5bWJvbCB0YWJsZSBmaWxlIHdpdGggcGljX2ZsYWcg d29ya3MgYXJvdW5kCisrCSAgIyBhIEZyZWVCU0QgYnVnIHRoYXQgY2F1c2VzIHByb2dyYW1zIHRv IGNyYXNoIHdoZW4gLWxtIGlzCisrCSAgIyBsaW5rZWQgYmVmb3JlIGFueSBvdGhlciBQSUMgb2Jq ZWN0LiAgQnV0IHdlIG11c3Qgbm90IHVzZQorKwkgICMgcGljX2ZsYWcgd2hlbiBsaW5raW5nIHdp dGggLXN0YXRpYy4gIFRoZSBwcm9ibGVtIGV4aXN0cyBpbgorKwkgICMgRnJlZUJTRCAyLjIuNiBh bmQgaXMgZml4ZWQgaW4gRnJlZUJTRCAzLjEuCisrCSAgKi0qLWZyZWVic2QyKnwqLSotZnJlZWJz ZDMuMCp8Ki0qLWZyZWVic2RlbGYzLjAqKQorKwkgICAgcGljX2ZsYWdfZm9yX3N5bXRhYmxlPSIg JHBpY19mbGFnIC1ERlJFRUJTRF9XT1JLQVJPVU5EIiA7OworKwkgICotKi1ocHV4KikKKysJICAg IHBpY19mbGFnX2Zvcl9zeW10YWJsZT0iICRwaWNfZmxhZyIgIDs7CisrCSAgKikKKysJICAgIGlm IHRlc3QgIlgkbXlfcGljX3AiICE9IFhubzsgdGhlbgorKwkgICAgICBwaWNfZmxhZ19mb3Jfc3lt dGFibGU9IiAkcGljX2ZsYWciCisrCSAgICBmaQorKwkgICAgOzsKKysJICBlc2FjCisrCSAgOzsK KysJZXNhYworKwlzeW10YWJfY2ZsYWdzPQorKwlmb3IgYXJnIGluICRMVENGTEFHUzsgZG8KKysJ ICBjYXNlICRhcmcgaW4KKysJICAtcGllIHwgLWZwaWUgfCAtZlBJRSkgOzsKKysJICAqKSBzeW10 YWJfY2ZsYWdzPSIkc3ltdGFiX2NmbGFncyAkYXJnIiA7OworKwkgIGVzYWMKKysJZG9uZQorKwor KwkjIE5vdyBjb21waWxlIHRoZSBkeW5hbWljIHN5bWJvbCBmaWxlLgorKwlmdW5jX3Nob3dfZXZh bCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRMVENDJHN5bXRhYl9jZmxhZ3MgLWMkbm9fYnVpbHRp bl9mbGFnJHBpY19mbGFnX2Zvcl9zeW10YWJsZSAiJG15X2Rsc3ltcyIpJyAnZXhpdCAkPycKKysK KysJIyBDbGVhbiB1cCB0aGUgZ2VuZXJhdGVkIGZpbGVzLgorKwlmdW5jX3Nob3dfZXZhbCAnJFJN ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiJG5saXN0IiAiJHtubGlzdH1TIiAiJHtubGlz dH1UIicKKysKKysJIyBUcmFuc2Zvcm0gdGhlIHN5bWJvbCBmaWxlIGludG8gdGhlIGNvcnJlY3Qg bmFtZS4KKysJc3ltZmlsZW9iaj0iJG91dHB1dF9vYmpkaXIvJHtteV9vdXRwdXRuYW1lfVMuJG9i amV4dCIKKysJY2FzZSAkaG9zdCBpbgorKwkqY3lnd2luKiB8ICptaW5ndyogfCAqY2VnY2MqICkK KysJICBpZiB0ZXN0IC1mICIkb3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYiOyB0aGVu CisrCSAgICBjb21waWxlX2NvbW1hbmQ9YCRFQ0hPICIkY29tcGlsZV9jb21tYW5kIiB8ICRTRUQg InMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyRteV9vdXRwdXRuYW1lLmRlZiAkc3ltZmlsZW9i aiUiYAorKwkgICAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIiRmaW5hbGl6ZV9jb21tYW5kIiB8 ICRTRUQgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyRteV9vdXRwdXRuYW1lLmRlZiAkc3lt ZmlsZW9iaiUiYAorKwkgIGVsc2UKKysJICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIiRjb21w aWxlX2NvbW1hbmQiIHwgJFNFRCAicyVAU1lNRklMRUAlJHN5bWZpbGVvYmolImAKKysJICAgIGZp bmFsaXplX2NvbW1hbmQ9YCRFQ0hPICIkZmluYWxpemVfY29tbWFuZCIgfCAkU0VEICJzJUBTWU1G SUxFQCUkc3ltZmlsZW9iaiUiYAorKwkgIGZpCisrCSAgOzsKKysJKikKKysJICBjb21waWxlX2Nv bW1hbmQ9YCRFQ0hPICIkY29tcGlsZV9jb21tYW5kIiB8ICRTRUQgInMlQFNZTUZJTEVAJSRzeW1m aWxlb2JqJSJgCisrCSAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIiRmaW5hbGl6ZV9jb21tYW5k IiB8ICRTRUQgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCisrCSAgOzsKKysJZXNhYworKwk7 OworKyAgICAgICopCisrCWZ1bmNfZmF0YWxfZXJyb3IgInVua25vd24gc3VmZml4IGZvciBcYCRt eV9kbHN5bXMnIgorKwk7OworKyAgICAgIGVzYWMKKysgICAgZWxzZQorKyAgICAgICMgV2Uga2Vl cCBnb2luZyBqdXN0IGluIGNhc2UgdGhlIHVzZXIgZGlkbid0IHJlZmVyIHRvCisrICAgICAgIyBs dF9wcmVsb2FkZWRfc3ltYm9scy4gIFRoZSBsaW5rZXIgd2lsbCBmYWlsIGlmIGdsb2JhbF9zeW1i b2xfcGlwZQorKyAgICAgICMgcmVhbGx5IHdhcyByZXF1aXJlZC4KKysKKysgICAgICAjIE51bGxp ZnkgdGhlIHN5bWJvbCBmaWxlLgorKyAgICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIiRjb21w aWxlX2NvbW1hbmQiIHwgJFNFRCAicyUgQFNZTUZJTEVAJSUiYAorKyAgICAgIGZpbmFsaXplX2Nv bW1hbmQ9YCRFQ0hPICIkZmluYWxpemVfY29tbWFuZCIgfCAkU0VEICJzJSBAU1lNRklMRUAlJSJg CisrICAgIGZpCisrfQorKworKyMgZnVuY193aW4zMl9saWJpZCBhcmcKKysjIHJldHVybiB0aGUg bGlicmFyeSB0eXBlIG9mIGZpbGUgJ2FyZycKKysjCisrIyBOZWVkIGEgbG90IG9mIGdvbyB0byBo YW5kbGUgKmJvdGgqIERMTHMgYW5kIGltcG9ydCBsaWJzCisrIyBIYXMgdG8gYmUgYSBzaGVsbCBm dW5jdGlvbiBpbiBvcmRlciB0byAnZWF0JyB0aGUgYXJndW1lbnQKKysjIHRoYXQgaXMgc3VwcGxp ZWQgd2hlbiAkZmlsZV9tYWdpY19jb21tYW5kIGlzIGNhbGxlZC4KKysjIERlc3BpdGUgdGhlIG5h bWUsIGFsc28gZGVhbCB3aXRoIDY0IGJpdCBiaW5hcmllcy4KKytmdW5jX3dpbjMyX2xpYmlkICgp CisreworKyAgJG9wdF9kZWJ1ZworKyAgd2luMzJfbGliaWRfdHlwZT0idW5rbm93biIKKysgIHdp bjMyX2ZpbGVyZXM9YGZpbGUgLUwgJDEgMj4vZGV2L251bGxgCisrICBjYXNlICR3aW4zMl9maWxl cmVzIGluCisrICAqYXJcIGFyY2hpdmVcIGltcG9ydFwgbGlicmFyeSopICMgZGVmaW5pdGVseSBp bXBvcnQKKysgICAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgaW1wb3J0IgorKyAgICA7 OworKyAgKmFyXCBhcmNoaXZlKikgIyBjb3VsZCBiZSBhbiBpbXBvcnQsIG9yIHN0YXRpYworKyAg ICAjIEtlZXAgdGhlIGVncmVwIHBhdHRlcm4gaW4gc3luYyB3aXRoIHRoZSBvbmUgaW4gX0xUX0NI RUNLX01BR0lDX01FVEhPRC4KKysgICAgaWYgZXZhbCAkT0JKRFVNUCAtZiAkMSB8ICRTRUQgLWUg JzEwcScgMj4vZGV2L251bGwgfAorKyAgICAgICAkRUdSRVAgJ2ZpbGUgZm9ybWF0IChwZWkqLWkz ODYoLiphcmNoaXRlY3R1cmU6IGkzODYpP3xwZS1hcm0td2luY2V8cGUteDg2LTY0KScgPi9kZXYv bnVsbDsgdGhlbgorKyAgICAgIHdpbjMyX25tcmVzPWBldmFsICROTSAtZiBwb3NpeCAtQSAkMSB8 CisrCSRTRUQgLW4gLWUgJworKwkgICAgMSwxMDB7CisrCQkvIEkgL3sKKysJCSAgICBzLC4qLGlt cG9ydCwKKysJCSAgICBwCisrCQkgICAgcQorKwkJfQorKwkgICAgfSdgCisrICAgICAgY2FzZSAk d2luMzJfbm1yZXMgaW4KKysgICAgICBpbXBvcnQqKSAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFy Y2hpdmUgaW1wb3J0Ijs7CisrICAgICAgKikgICAgICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBh cmNoaXZlIHN0YXRpYyI7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysgICAgOzsKKysgICpETEwq KQorKyAgICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgRExMIgorKyAgICA7OworKyAgKmV4ZWN1dGFi bGUqKSAjIGJ1dCBzaGVsbCBzY3JpcHRzIGFyZSAiZXhlY3V0YWJsZSIgdG9vLi4uCisrICAgIGNh c2UgJHdpbjMyX2ZpbGVyZXMgaW4KKysgICAgKk1TXCBXaW5kb3dzXCBQRVwgSW50ZWwqKQorKyAg ICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBETEwiCisrICAgICAgOzsKKysgICAgZXNhYworKyAg ICA7OworKyAgZXNhYworKyAgJEVDSE8gIiR3aW4zMl9saWJpZF90eXBlIgorK30KKysKKysKKysK KysjIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlIGRpciBvbGRsaWIKKytmdW5jX2V4dHJhY3RfYW5f YXJjaGl2ZSAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBmX2V4X2FuX2FyX2Rpcj0iJDEi OyBzaGlmdAorKyAgICBmX2V4X2FuX2FyX29sZGxpYj0iJDEiCisrICAgIGlmIHRlc3QgIiRsb2Nr X29sZF9hcmNoaXZlX2V4dHJhY3Rpb24iID0geWVzOyB0aGVuCisrICAgICAgbG9ja2ZpbGU9JGZf ZXhfYW5fYXJfb2xkbGliLmxvY2sKKysgICAgICB1bnRpbCAkb3B0X2RyeV9ydW4gfHwgbG4gIiRw cm9ncGF0aCIgIiRsb2NrZmlsZSIgMj4vZGV2L251bGw7IGRvCisrCWZ1bmNfZWNobyAiV2FpdGlu ZyBmb3IgJGxvY2tmaWxlIHRvIGJlIHJlbW92ZWQiCisrCXNsZWVwIDIKKysgICAgICBkb25lCisr ICAgIGZpCisrICAgIGZ1bmNfc2hvd19ldmFsICIoY2QgXCRmX2V4X2FuX2FyX2RpciAmJiAkQVIg eCBcIlwkZl9leF9hbl9hcl9vbGRsaWJcIikiIFwKKysJCSAgICdzdGF0PSQ/OyBybSAtZiAiJGxv Y2tmaWxlIjsgZXhpdCAkc3RhdCcKKysgICAgaWYgdGVzdCAiJGxvY2tfb2xkX2FyY2hpdmVfZXh0 cmFjdGlvbiIgPSB5ZXM7IHRoZW4KKysgICAgICAkb3B0X2RyeV9ydW4gfHwgcm0gLWYgIiRsb2Nr ZmlsZSIKKysgICAgZmkKKysgICAgaWYgKCRBUiB0ICIkZl9leF9hbl9hcl9vbGRsaWIiIHwgc29y dCB8IHNvcnQgLXVjID4vZGV2L251bGwgMj4mMSk7IHRoZW4KKysgICAgIDoKKysgICAgZWxzZQor KyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm9iamVjdCBuYW1lIGNvbmZsaWN0cyBpbiBhcmNoaXZl OiAkZl9leF9hbl9hcl9kaXIvJGZfZXhfYW5fYXJfb2xkbGliIgorKyAgICBmaQorK30KKysKKysK KysjIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyBnZW50b3Agb2xkbGliIC4uLgorK2Z1bmNfZXh0cmFj dF9hcmNoaXZlcyAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBteV9nZW50b3A9IiQxIjsg c2hpZnQKKysgICAgbXlfb2xkbGlicz0kezErIiRAIn0KKysgICAgbXlfb2xkb2Jqcz0iIgorKyAg ICBteV94bGliPSIiCisrICAgIG15X3hhYnM9IiIKKysgICAgbXlfeGRpcj0iIgorKworKyAgICBm b3IgbXlfeGxpYiBpbiAkbXlfb2xkbGliczsgZG8KKysgICAgICAjIEV4dHJhY3QgdGhlIG9iamVj dHMuCisrICAgICAgY2FzZSAkbXlfeGxpYiBpbgorKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSop IG15X3hhYnM9IiRteV94bGliIiA7OworKwkqKSBteV94YWJzPWBwd2RgIi8kbXlfeGxpYiIgOzsK KysgICAgICBlc2FjCisrICAgICAgZnVuY19iYXNlbmFtZSAiJG15X3hsaWIiCisrICAgICAgbXlf eGxpYj0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKyAgICAgIG15X3hsaWJfdT0kbXlfeGxpYgor KyAgICAgIHdoaWxlIDo7IGRvCisrICAgICAgICBjYXNlICIgJGV4dHJhY3RlZF9hcmNoaXZlcyAi IGluCisrCSoiICRteV94bGliX3UgIiopCisrCSAgZnVuY19hcml0aCAkZXh0cmFjdGVkX3Nlcmlh bCArIDEKKysJICBleHRyYWN0ZWRfc2VyaWFsPSRmdW5jX2FyaXRoX3Jlc3VsdAorKwkgIG15X3hs aWJfdT1sdCRleHRyYWN0ZWRfc2VyaWFsLSRteV94bGliIDs7CisrCSopIGJyZWFrIDs7CisrCWVz YWMKKysgICAgICBkb25lCisrICAgICAgZXh0cmFjdGVkX2FyY2hpdmVzPSIkZXh0cmFjdGVkX2Fy Y2hpdmVzICRteV94bGliX3UiCisrICAgICAgbXlfeGRpcj0iJG15X2dlbnRvcC8kbXlfeGxpYl91 IgorKworKyAgICAgIGZ1bmNfbWtkaXJfcCAiJG15X3hkaXIiCisrCisrICAgICAgY2FzZSAkaG9z dCBpbgorKyAgICAgICotZGFyd2luKikKKysJZnVuY192ZXJib3NlICJFeHRyYWN0aW5nICRteV94 YWJzIgorKwkjIERvIG5vdCBib3RoZXIgZG9pbmcgYW55dGhpbmcgaWYganVzdCBhIGRyeSBydW4K KysJJG9wdF9kcnlfcnVuIHx8IHsKKysJICBkYXJ3aW5fb3JpZ19kaXI9YHB3ZGAKKysJICBjZCAk bXlfeGRpciB8fCBleGl0ICQ/CisrCSAgZGFyd2luX2FyY2hpdmU9JG15X3hhYnMKKysJICBkYXJ3 aW5fY3VyZGlyPWBwd2RgCisrCSAgZGFyd2luX2Jhc2VfYXJjaGl2ZT1gYmFzZW5hbWUgIiRkYXJ3 aW5fYXJjaGl2ZSJgCisrCSAgZGFyd2luX2FyY2hlcz1gJExJUE8gLWluZm8gIiRkYXJ3aW5fYXJj aGl2ZSIgMj4vZGV2L251bGwgfCAkR1JFUCBBcmNoaXRlY3R1cmVzIDI+L2Rldi9udWxsIHx8IHRy dWVgCisrCSAgaWYgdGVzdCAtbiAiJGRhcndpbl9hcmNoZXMiOyB0aGVuCisrCSAgICBkYXJ3aW5f YXJjaGVzPWAkRUNITyAiJGRhcndpbl9hcmNoZXMiIHwgJFNFRCAtZSAncy8uKmFyZTovLydgCisr CSAgICBkYXJ3aW5fYXJjaD0KKysJICAgIGZ1bmNfdmVyYm9zZSAiJGRhcndpbl9iYXNlX2FyY2hp dmUgaGFzIG11bHRpcGxlIGFyY2hpdGVjdHVyZXMgJGRhcndpbl9hcmNoZXMiCisrCSAgICBmb3Ig ZGFyd2luX2FyY2ggaW4gICRkYXJ3aW5fYXJjaGVzIDsgZG8KKysJICAgICAgZnVuY19ta2Rpcl9w ICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9IgorKwkgICAg ICAkTElQTyAtdGhpbiAkZGFyd2luX2FyY2ggLW91dHB1dCAidW5mYXQtJCQvJHtkYXJ3aW5fYmFz ZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9IiAiJHtkYXJ3 aW5fYXJjaGl2ZX0iCisrCSAgICAgIGNkICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9 LSR7ZGFyd2luX2FyY2h9IgorKwkgICAgICBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAiYHB3ZGAi ICIke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgorKwkgICAgICBjZCAiJGRhcndpbl9jdXJkaXIiCisr CSAgICAgICRSTSAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNo fS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgorKwkgICAgZG9uZSAjICRkYXJ3aW5fYXJjaGVzCisr ICAgICAgICAgICAgIyMgT2theSBub3cgd2UndmUgYSBidW5jaCBvZiB0aGluIG9iamVjdHMsIGdv dHRhIGZhdHRlbiB0aGVtIHVwIDopCisrCSAgICBkYXJ3aW5fZmlsZWxpc3Q9YGZpbmQgdW5mYXQt JCQgLXR5cGUgZiAtbmFtZSBcKi5vIC1wcmludCAtbyAtbmFtZSBcKi5sbyAtcHJpbnQgfCAkU0VE IC1lICIkYmFzZW5hbWUiIHwgc29ydCAtdWAKKysJICAgIGRhcndpbl9maWxlPQorKwkgICAgZGFy d2luX2ZpbGVzPQorKwkgICAgZm9yIGRhcndpbl9maWxlIGluICRkYXJ3aW5fZmlsZWxpc3Q7IGRv CisrCSAgICAgIGRhcndpbl9maWxlcz1gZmluZCB1bmZhdC0kJCAtbmFtZSAkZGFyd2luX2ZpbGUg LXByaW50IHwgc29ydCB8ICROTDJTUGAKKysJICAgICAgJExJUE8gLWNyZWF0ZSAtb3V0cHV0ICIk ZGFyd2luX2ZpbGUiICRkYXJ3aW5fZmlsZXMKKysJICAgIGRvbmUgIyAkZGFyd2luX2ZpbGVsaXN0 CisrCSAgICAkUk0gLXJmIHVuZmF0LSQkCisrCSAgICBjZCAiJGRhcndpbl9vcmlnX2RpciIKKysJ ICBlbHNlCisrCSAgICBjZCAkZGFyd2luX29yaWdfZGlyCisrCSAgICBmdW5jX2V4dHJhY3RfYW5f YXJjaGl2ZSAiJG15X3hkaXIiICIkbXlfeGFicyIKKysJICBmaSAjICRkYXJ3aW5fYXJjaGVzCisr CX0gIyAhJG9wdF9kcnlfcnVuCisrCTs7CisrICAgICAgKikKKysgICAgICAgIGZ1bmNfZXh0cmFj dF9hbl9hcmNoaXZlICIkbXlfeGRpciIgIiRteV94YWJzIgorKwk7OworKyAgICAgIGVzYWMKKysg ICAgICBteV9vbGRvYmpzPSIkbXlfb2xkb2JqcyAiYGZpbmQgJG15X3hkaXIgLW5hbWUgXCouJG9i amV4dCAtcHJpbnQgLW8gLW5hbWUgXCoubG8gLXByaW50IHwgc29ydCB8ICROTDJTUGAKKysgICAg ZG9uZQorKworKyAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0PSIkbXlfb2xkb2JqcyIK Kyt9CisrCisrCisrIyBmdW5jX2VtaXRfd3JhcHBlciBbYXJnPW5vXQorKyMKKysjIEVtaXQgYSBs aWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91dC4KKysjIERvbid0IGRpcmVjdGx5IG9wZW4g YSBmaWxlIGJlY2F1c2Ugd2UgbWF5IHdhbnQgdG8KKysjIGluY29ycG9yYXRlIHRoZSBzY3JpcHQg Y29udGVudHMgd2l0aGluIGEgY3lnd2luL21pbmd3CisrIyB3cmFwcGVyIGV4ZWN1dGFibGUuICBN dXN0IE9OTFkgYmUgY2FsbGVkIGZyb20gd2l0aGluCisrIyBmdW5jX21vZGVfbGluayBiZWNhdXNl IGl0IGRlcGVuZHMgb24gYSBudW1iZXIgb2YgdmFyaWFibGVzCisrIyBzZXQgdGhlcmVpbi4KKysj CisrIyBBUkcgaXMgdGhlIHZhbHVlIHRoYXQgdGhlIFdSQVBQRVJfU0NSSVBUX0JFTE9OR1NfSU5f T0JKRElSCisrIyB2YXJpYWJsZSB3aWxsIHRha2UuICBJZiAneWVzJywgdGhlbiB0aGUgZW1pdHRl ZCBzY3JpcHQKKysjIHdpbGwgYXNzdW1lIHRoYXQgdGhlIGRpcmVjdG9yeSBpbiB3aGljaCBpdCBp cyBzdG9yZWQgaXMKKysjIHRoZSAkb2JqZGlyIGRpcmVjdG9yeS4gIFRoaXMgaXMgYSBjeWd3aW4v bWluZ3ctc3BlY2lmaWMKKysjIGJlaGF2aW9yLgorK2Z1bmNfZW1pdF93cmFwcGVyICgpCisrewor KwlmdW5jX2VtaXRfd3JhcHBlcl9hcmcxPSR7MS1ub30KKysKKysJJEVDSE8gIlwKKysjISAkU0hF TEwKKysKKysjICRvdXRwdXQgLSB0ZW1wb3Jhcnkgd3JhcHBlciBzY3JpcHQgZm9yICRvYmpkaXIv JG91dHB1dG5hbWUKKysjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVT VEFNUCkgJFZFUlNJT04KKysjCisrIyBUaGUgJG91dHB1dCBwcm9ncmFtIGNhbm5vdCBiZSBkaXJl Y3RseSBleGVjdXRlZCB1bnRpbCBhbGwgdGhlIGxpYnRvb2wKKysjIGxpYnJhcmllcyB0aGF0IGl0 IGRlcGVuZHMgb24gYXJlIGluc3RhbGxlZC4KKysjCisrIyBUaGlzIHdyYXBwZXIgc2NyaXB0IHNo b3VsZCBuZXZlciBiZSBtb3ZlZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9yeS4KKysjIElmIGl0 IGlzLCBpdCB3aWxsIG5vdCBvcGVyYXRlIGNvcnJlY3RseS4KKysKKysjIFNlZCBzdWJzdGl0dXRp b24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCisr IyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90 ZWQgc3RyaW5ncy4KKytzZWRfcXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3QnCisrCisrIyBC ZSBCb3VybmUgY29tcGF0aWJsZQorK2lmIHRlc3QgLW4gXCJcJHtaU0hfVkVSU0lPTitzZXR9XCIg JiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgZW11bGF0ZSBzaAorKyAg TlVMTENNRD06CisrICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBv biBcJHsxK1wiXCRAXCJ9LCB3aGljaAorKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBE aXNhYmxlIHRoaXMgZmVhdHVyZS4KKysgIGFsaWFzIC1nICdcJHsxK1wiXCRAXCJ9Jz0nXCJcJEBc IicKKysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBcYChzZXQgLW8pIDI+ L2Rldi9udWxsXGAgaW4gKnBvc2l4Kikgc2V0IC1vIHBvc2l4OzsgZXNhYworK2ZpCisrQklOX1NI PXhwZzQ7IGV4cG9ydCBCSU5fU0ggIyBmb3IgVHJ1NjQKKytEVUFMQ0FTRT0xOyBleHBvcnQgRFVB TENBU0UgIyBmb3IgTUtTIHNoCisrCisrIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBw cmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQu CisrKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworK3Jl bGlua19jb21tYW5kPVwiJHJlbGlua19jb21tYW5kXCIKKysKKysjIFRoaXMgZW52aXJvbm1lbnQg dmFyaWFibGUgZGV0ZXJtaW5lcyBvdXIgb3BlcmF0aW9uIG1vZGUuCisraWYgdGVzdCBcIlwkbGli dG9vbF9pbnN0YWxsX21hZ2ljXCIgPSBcIiRtYWdpY1wiOyB0aGVuCisrICAjIGluc3RhbGwgbW9k ZSBuZWVkcyB0aGUgZm9sbG93aW5nIHZhcmlhYmxlczoKKysgIGdlbmVyYXRlZF9ieV9saWJ0b29s X3ZlcnNpb249JyRtYWNyb192ZXJzaW9uJworKyAgbm90aW5zdF9kZXBsaWJzPSckbm90aW5zdF9k ZXBsaWJzJworK2Vsc2UKKysgICMgV2hlbiB3ZSBhcmUgc291cmNlZCBpbiBleGVjdXRlIG1vZGUs IFwkZmlsZSBhbmQgXCRFQ0hPIGFyZSBhbHJlYWR5IHNldC4KKysgIGlmIHRlc3QgXCJcJGxpYnRv b2xfZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2ljXCI7IHRoZW4KKysgICAgZmlsZT1cIlwkMFwi IgorKworKyAgICBxRUNITz1gJEVDSE8gIiRFQ0hPIiB8ICRTRUQgIiRzZWRfcXVvdGVfc3Vic3Qi YAorKyAgICAkRUNITyAiXAorKworKyMgQSBmdW5jdGlvbiB0aGF0IGlzIHVzZWQgd2hlbiB0aGVy ZSBpcyBubyBwcmludCBidWlsdGluIG9yIHByaW50Zi4KKytmdW5jX2ZhbGxiYWNrX2VjaG8gKCkK Kyt7CisrICBldmFsICdjYXQgPDxfTFRFQ0hPX0VPRgorK1wkMQorK19MVEVDSE9fRU9GJworK30K KysgICAgRUNITz1cIiRxRUNIT1wiCisrICBmaQorKworKyMgVmVyeSBiYXNpYyBvcHRpb24gcGFy c2luZy4gVGhlc2Ugb3B0aW9ucyBhcmUgKGEpIHNwZWNpZmljIHRvCisrIyB0aGUgbGlidG9vbCB3 cmFwcGVyLCAoYikgYXJlIGlkZW50aWNhbCBiZXR3ZWVuIHRoZSB3cmFwcGVyCisrIyAvc2NyaXB0 LyBhbmQgdGhlIHdyYXBwZXIgL2V4ZWN1dGFibGUvIHdoaWNoIGlzIHVzZWQgb25seSBvbgorKyMg d2luZG93cyBwbGF0Zm9ybXMsIGFuZCAoYykgYWxsIGJlZ2luIHdpdGggdGhlIHN0cmluZyAiLS1s dC0iCisrIyAoYXBwbGljYXRpb24gcHJvZ3JhbXMgYXJlIHVubGlrZWx5IHRvIGhhdmUgb3B0aW9u cyB3aGljaCBtYXRjaAorKyMgdGhpcyBwYXR0ZXJuKS4KKysjCisrIyBUaGVyZSBhcmUgb25seSB0 d28gc3VwcG9ydGVkIG9wdGlvbnM6IC0tbHQtZGVidWcgYW5kCisrIyAtLWx0LWR1bXAtc2NyaXB0 LiBUaGVyZSBpcywgZGVsaWJlcmF0ZWx5LCBubyAtLWx0LWhlbHAuCisrIworKyMgVGhlIGZpcnN0 IGFyZ3VtZW50IHRvIHRoaXMgcGFyc2luZyBmdW5jdGlvbiBzaG91bGQgYmUgdGhlCisrIyBzY3Jp cHQncyAkMCB2YWx1ZSwgZm9sbG93ZWQgYnkgIiRAIi4KKytsdF9vcHRpb25fZGVidWc9CisrZnVu Y19wYXJzZV9sdF9vcHRpb25zICgpCisreworKyAgbHRfc2NyaXB0X2FyZzA9XCQwCisrICBzaGlm dAorKyAgZm9yIGx0X29wdAorKyAgZG8KKysgICAgY2FzZSBcIlwkbHRfb3B0XCIgaW4KKysgICAg LS1sdC1kZWJ1ZykgbHRfb3B0aW9uX2RlYnVnPTEgOzsKKysgICAgLS1sdC1kdW1wLXNjcmlwdCkK KysgICAgICAgIGx0X2R1bXBfRD1cYFwkRUNITyBcIlhcJGx0X3NjcmlwdF9hcmcwXCIgfCAkU0VE IC1lICdzL15YLy8nIC1lICdzJS9bXi9dKiQlJSdcYAorKyAgICAgICAgdGVzdCBcIlhcJGx0X2R1 bXBfRFwiID0gXCJYXCRsdF9zY3JpcHRfYXJnMFwiICYmIGx0X2R1bXBfRD0uCisrICAgICAgICBs dF9kdW1wX0Y9XGBcJEVDSE8gXCJYXCRsdF9zY3JpcHRfYXJnMFwiIHwgJFNFRCAtZSAncy9eWC8v JyAtZSAncyVeLiovJSUnXGAKKysgICAgICAgIGNhdCBcIlwkbHRfZHVtcF9EL1wkbHRfZHVtcF9G XCIKKysgICAgICAgIGV4aXQgMAorKyAgICAgIDs7CisrICAgIC0tbHQtKikKKysgICAgICAgIFwk RUNITyBcIlVucmVjb2duaXplZCAtLWx0LSBvcHRpb246ICdcJGx0X29wdCdcIiAxPiYyCisrICAg ICAgICBleGl0IDEKKysgICAgICA7OworKyAgICBlc2FjCisrICBkb25lCisrCisrICAjIFByaW50 IHRoZSBkZWJ1ZyBiYW5uZXIgaW1tZWRpYXRlbHk6CisrICBpZiB0ZXN0IC1uIFwiXCRsdF9vcHRp b25fZGVidWdcIjsgdGhlbgorKyAgICBlY2hvIFwiJHtvdXRwdXRuYW1lfToke291dHB1dH06XCR7 TElORU5PfTogbGlidG9vbCB3cmFwcGVyIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lP TlwiIDE+JjIKKysgIGZpCisrfQorKworKyMgVXNlZCB3aGVuIC0tbHQtZGVidWcuIFByaW50cyBp dHMgYXJndW1lbnRzIHRvIHN0ZG91dAorKyMgKHJlZGlyZWN0aW9uIGlzIHRoZSByZXNwb25zaWJp bGl0eSBvZiB0aGUgY2FsbGVyKQorK2Z1bmNfbHRfZHVtcF9hcmdzICgpCisreworKyAgbHRfZHVt cF9hcmdzX049MTsKKysgIGZvciBsdF9hcmcKKysgIGRvCisrICAgIFwkRUNITyBcIiR7b3V0cHV0 bmFtZX06JHtvdXRwdXR9Olwke0xJTkVOT306IG5ld2FyZ3ZbXCRsdF9kdW1wX2FyZ3NfTl06IFwk bHRfYXJnXCIKKysgICAgbHRfZHVtcF9hcmdzX049XGBleHByIFwkbHRfZHVtcF9hcmdzX04gKyAx XGAKKysgIGRvbmUKKyt9CisrCisrIyBDb3JlIGZ1bmN0aW9uIGZvciBsYXVuY2hpbmcgdGhlIHRh cmdldCBhcHBsaWNhdGlvbgorK2Z1bmNfZXhlY19wcm9ncmFtX2NvcmUgKCkKKyt7CisrIgorKyAg Y2FzZSAkaG9zdCBpbgorKyAgIyBCYWNrc2xhc2hlcyBzZXBhcmF0ZSBkaXJlY3RvcmllcyBvbiBw bGFpbiB3aW5kb3dzCisrICAqLSotbWluZ3cgfCAqLSotb3MyKiB8ICotY2VnY2MqKQorKyAgICAk RUNITyAiXAorKyAgICAgIGlmIHRlc3QgLW4gXCJcJGx0X29wdGlvbl9kZWJ1Z1wiOyB0aGVuCisr ICAgICAgICBcJEVDSE8gXCIke291dHB1dG5hbWV9OiR7b3V0cHV0fTpcJHtMSU5FTk99OiBuZXdh cmd2WzBdOiBcJHByb2dkaXJcXFxcXCRwcm9ncmFtXCIgMT4mMgorKyAgICAgICAgZnVuY19sdF9k dW1wX2FyZ3MgXCR7MStcIlwkQFwifSAxPiYyCisrICAgICAgZmkKKysgICAgICBleGVjIFwiXCRw cm9nZGlyXFxcXFwkcHJvZ3JhbVwiIFwkezErXCJcJEBcIn0KKysiCisrICAgIDs7CisrCisrICAq KQorKyAgICAkRUNITyAiXAorKyAgICAgIGlmIHRlc3QgLW4gXCJcJGx0X29wdGlvbl9kZWJ1Z1wi OyB0aGVuCisrICAgICAgICBcJEVDSE8gXCIke291dHB1dG5hbWV9OiR7b3V0cHV0fTpcJHtMSU5F Tk99OiBuZXdhcmd2WzBdOiBcJHByb2dkaXIvXCRwcm9ncmFtXCIgMT4mMgorKyAgICAgICAgZnVu Y19sdF9kdW1wX2FyZ3MgXCR7MStcIlwkQFwifSAxPiYyCisrICAgICAgZmkKKysgICAgICBleGVj IFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiIFwkezErXCJcJEBcIn0KKysiCisrICAgIDs7CisrICBl c2FjCisrICAkRUNITyAiXAorKyAgICAgIFwkRUNITyBcIlwkMDogY2Fubm90IGV4ZWMgXCRwcm9n cmFtIFwkKlwiIDE+JjIKKysgICAgICBleGl0IDEKKyt9CisrCisrIyBBIGZ1bmN0aW9uIHRvIGVu Y2Fwc3VsYXRlIGxhdW5jaGluZyB0aGUgdGFyZ2V0IGFwcGxpY2F0aW9uCisrIyBTdHJpcHMgb3B0 aW9ucyBpbiB0aGUgLS1sdC0qIG5hbWVzcGFjZSBmcm9tIFwkQCBhbmQKKysjIGxhdW5jaGVzIHRh cmdldCBhcHBsaWNhdGlvbiB3aXRoIHRoZSByZW1haW5pbmcgYXJndW1lbnRzLgorK2Z1bmNfZXhl Y19wcm9ncmFtICgpCisreworKyAgZm9yIGx0X3dyX2FyZworKyAgZG8KKysgICAgY2FzZSBcJGx0 X3dyX2FyZyBpbgorKyAgICAtLWx0LSopIDs7CisrICAgICopIHNldCB4IFwiXCRAXCIgXCJcJGx0 X3dyX2FyZ1wiOyBzaGlmdDs7CisrICAgIGVzYWMKKysgICAgc2hpZnQKKysgIGRvbmUKKysgIGZ1 bmNfZXhlY19wcm9ncmFtX2NvcmUgXCR7MStcIlwkQFwifQorK30KKysKKysgICMgUGFyc2Ugb3B0 aW9ucworKyAgZnVuY19wYXJzZV9sdF9vcHRpb25zIFwiXCQwXCIgXCR7MStcIlwkQFwifQorKwor KyAgIyBGaW5kIHRoZSBkaXJlY3RvcnkgdGhhdCB0aGlzIHNjcmlwdCBsaXZlcyBpbi4KKysgIHRo aXNkaXI9XGBcJEVDSE8gXCJcJGZpbGVcIiB8ICRTRUQgJ3MlL1teL10qJCUlJ1xgCisrICB0ZXN0 IFwieFwkdGhpc2RpclwiID0gXCJ4XCRmaWxlXCIgJiYgdGhpc2Rpcj0uCisrCisrICAjIEZvbGxv dyBzeW1ib2xpYyBsaW5rcyB1bnRpbCB3ZSBnZXQgdG8gdGhlIHJlYWwgdGhpc2Rpci4KKysgIGZp bGU9XGBscyAtbGQgXCJcJGZpbGVcIiB8ICRTRUQgLW4gJ3MvLiotPiAvL3AnXGAKKysgIHdoaWxl IHRlc3QgLW4gXCJcJGZpbGVcIjsgZG8KKysgICAgZGVzdGRpcj1cYFwkRUNITyBcIlwkZmlsZVwi IHwgJFNFRCAncyUvW14vXSpcJCUlJ1xgCisrCisrICAgICMgSWYgdGhlcmUgd2FzIGEgZGlyZWN0 b3J5IGNvbXBvbmVudCwgdGhlbiBjaGFuZ2UgdGhpc2Rpci4KKysgICAgaWYgdGVzdCBcInhcJGRl c3RkaXJcIiAhPSBcInhcJGZpbGVcIjsgdGhlbgorKyAgICAgIGNhc2UgXCJcJGRlc3RkaXJcIiBp bgorKyAgICAgIFtcXFxcL10qIHwgW0EtWmEtel06W1xcXFwvXSopIHRoaXNkaXI9XCJcJGRlc3Rk aXJcIiA7OworKyAgICAgICopIHRoaXNkaXI9XCJcJHRoaXNkaXIvXCRkZXN0ZGlyXCIgOzsKKysg ICAgICBlc2FjCisrICAgIGZpCisrCisrICAgIGZpbGU9XGBcJEVDSE8gXCJcJGZpbGVcIiB8ICRT RUQgJ3MlXi4qLyUlJ1xgCisrICAgIGZpbGU9XGBscyAtbGQgXCJcJHRoaXNkaXIvXCRmaWxlXCIg fCAkU0VEIC1uICdzLy4qLT4gLy9wJ1xgCisrICBkb25lCisrCisrICAjIFVzdWFsbHkgJ25vJywg ZXhjZXB0IG9uIGN5Z3dpbi9taW5ndyB3aGVuIGVtYmVkZGVkIGludG8KKysgICMgdGhlIGN3cmFw cGVyLgorKyAgV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVI9JGZ1bmNfZW1pdF93cmFw cGVyX2FyZzEKKysgIGlmIHRlc3QgXCJcJFdSQVBQRVJfU0NSSVBUX0JFTE9OR1NfSU5fT0JKRElS XCIgPSBcInllc1wiOyB0aGVuCisrICAgICMgc3BlY2lhbCBjYXNlIGZvciAnLicKKysgICAgaWYg dGVzdCBcIlwkdGhpc2RpclwiID0gXCIuXCI7IHRoZW4KKysgICAgICB0aGlzZGlyPVxgcHdkXGAK KysgICAgZmkKKysgICAgIyByZW1vdmUgLmxpYnMgZnJvbSB0aGlzZGlyCisrICAgIGNhc2UgXCJc JHRoaXNkaXJcIiBpbgorKyAgICAqW1xcXFwvXSRvYmpkaXIgKSB0aGlzZGlyPVxgXCRFQ0hPIFwi XCR0aGlzZGlyXCIgfCAkU0VEICdzJVtcXFxcL11bXlxcXFwvXSokJSUnXGAgOzsKKysgICAgJG9i amRpciApICAgdGhpc2Rpcj0uIDs7CisrICAgIGVzYWMKKysgIGZpCisrCisrICAjIFRyeSB0byBn ZXQgdGhlIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lLgorKyAgYWJzZGlyPVxgY2QgXCJcJHRoaXNk aXJcIiAmJiBwd2RcYAorKyAgdGVzdCAtbiBcIlwkYWJzZGlyXCIgJiYgdGhpc2Rpcj1cIlwkYWJz ZGlyXCIKKysiCisrCisrCWlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzOyB0aGVuCisrCSAg JEVDSE8gIlwKKysgIHByb2dyYW09bHQtJyRvdXRwdXRuYW1lJyRleGVleHQKKysgIHByb2dkaXI9 XCJcJHRoaXNkaXIvJG9iamRpclwiCisrCisrICBpZiB0ZXN0ICEgLWYgXCJcJHByb2dkaXIvXCRw cm9ncmFtXCIgfHwKKysgICAgIHsgZmlsZT1cYGxzIC0xZHQgXCJcJHByb2dkaXIvXCRwcm9ncmFt XCIgXCJcJHByb2dkaXIvLi4vXCRwcm9ncmFtXCIgMj4vZGV2L251bGwgfCAke1NFRH0gMXFcYDsg XFwKKysgICAgICAgdGVzdCBcIlhcJGZpbGVcIiAhPSBcIlhcJHByb2dkaXIvXCRwcm9ncmFtXCI7 IH07IHRoZW4KKysKKysgICAgZmlsZT1cIlwkXCQtXCRwcm9ncmFtXCIKKysKKysgICAgaWYgdGVz dCAhIC1kIFwiXCRwcm9nZGlyXCI7IHRoZW4KKysgICAgICAkTUtESVIgXCJcJHByb2dkaXJcIgor KyAgICBlbHNlCisrICAgICAgJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCisrICAgIGZpIgorKwor KwkgICRFQ0hPICJcCisrCisrICAgICMgcmVsaW5rIGV4ZWN1dGFibGUgaWYgbmVjZXNzYXJ5Cisr ICAgIGlmIHRlc3QgLW4gXCJcJHJlbGlua19jb21tYW5kXCI7IHRoZW4KKysgICAgICBpZiByZWxp bmtfY29tbWFuZF9vdXRwdXQ9XGBldmFsIFwkcmVsaW5rX2NvbW1hbmQgMj4mMVxgOyB0aGVuIDoK KysgICAgICBlbHNlCisrCSRFQ0hPIFwiXCRyZWxpbmtfY29tbWFuZF9vdXRwdXRcIiA+JjIKKysJ JFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCisrCWV4aXQgMQorKyAgICAgIGZpCisrICAgIGZpCisr CisrICAgICRNViBcIlwkcHJvZ2Rpci9cJGZpbGVcIiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiAy Pi9kZXYvbnVsbCB8fAorKyAgICB7ICRSTSBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIjsKKysgICAg ICAkTVYgXCJcJHByb2dkaXIvXCRmaWxlXCIgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCI7IH0KKysg ICAgJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCisrICBmaSIKKysJZWxzZQorKwkgICRFQ0hPICJc CisrICBwcm9ncmFtPSckb3V0cHV0bmFtZScKKysgIHByb2dkaXI9XCJcJHRoaXNkaXIvJG9iamRp clwiCisrIgorKwlmaQorKworKwkkRUNITyAiXAorKworKyAgaWYgdGVzdCAtZiBcIlwkcHJvZ2Rp ci9cJHByb2dyYW1cIjsgdGhlbiIKKysKKysJIyBFeHBvcnQgb3VyIHNobGlicGF0aF92YXIgaWYg d2UgaGF2ZSBvbmUuCisrCWlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0g eWVzICYmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIiAmJiB0ZXN0IC1uICIkdGVtcF9ycGF0aCI7 IHRoZW4KKysJICAkRUNITyAiXAorKyAgICAjIEFkZCBvdXIgb3duIGxpYnJhcnkgcGF0aCB0byAk c2hsaWJwYXRoX3ZhcgorKyAgICAkc2hsaWJwYXRoX3Zhcj1cIiR0ZW1wX3JwYXRoXCQkc2hsaWJw YXRoX3ZhclwiCisrCisrICAgICMgU29tZSBzeXN0ZW1zIGNhbm5vdCBjb3BlIHdpdGggY29sb24t dGVybWluYXRlZCAkc2hsaWJwYXRoX3ZhcgorKyAgICAjIFRoZSBzZWNvbmQgY29sb24gaXMgYSB3 b3JrYXJvdW5kIGZvciBhIGJ1ZyBpbiBCZU9TIFI0IHNlZAorKyAgICAkc2hsaWJwYXRoX3Zhcj1c YFwkRUNITyBcIlwkJHNobGlicGF0aF92YXJcIiB8ICRTRUQgJ3MvOjoqXCQvLydcYAorKworKyAg ICBleHBvcnQgJHNobGlicGF0aF92YXIKKysiCisrCWZpCisrCisrCSMgZml4dXAgdGhlIGRsbCBz ZWFyY2hwYXRoIGlmIHdlIG5lZWQgdG8uCisrCWlmIHRlc3QgLW4gIiRkbGxzZWFyY2hwYXRoIjsg dGhlbgorKwkgICRFQ0hPICJcCisrICAgICMgQWRkIHRoZSBkbGwgc2VhcmNoIHBhdGggY29tcG9u ZW50cyB0byB0aGUgZXhlY3V0YWJsZSBQQVRICisrICAgIFBBVEg9JGRsbHNlYXJjaHBhdGg6XCRQ QVRICisrIgorKwlmaQorKworKwkkRUNITyAiXAorKyAgICBpZiB0ZXN0IFwiXCRsaWJ0b29sX2V4 ZWN1dGVfbWFnaWNcIiAhPSBcIiRtYWdpY1wiOyB0aGVuCisrICAgICAgIyBSdW4gdGhlIGFjdHVh bCBwcm9ncmFtIHdpdGggb3VyIGFyZ3VtZW50cy4KKysgICAgICBmdW5jX2V4ZWNfcHJvZ3JhbSBc JHsxK1wiXCRAXCJ9CisrICAgIGZpCisrICBlbHNlCisrICAgICMgVGhlIHByb2dyYW0gZG9lc24n dCBleGlzdC4KKysgICAgXCRFQ0hPIFwiXCQwOiBlcnJvcjogXFxcYFwkcHJvZ2Rpci9cJHByb2dy YW0nIGRvZXMgbm90IGV4aXN0XCIgMT4mMgorKyAgICBcJEVDSE8gXCJUaGlzIHNjcmlwdCBpcyBq dXN0IGEgd3JhcHBlciBmb3IgXCRwcm9ncmFtLlwiIDE+JjIKKysgICAgXCRFQ0hPIFwiU2VlIHRo ZSAkUEFDS0FHRSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLlwiIDE+JjIKKysg ICAgZXhpdCAxCisrICBmaQorK2ZpXAorKyIKKyt9CisrCisrCisrIyBmdW5jX3RvX2hvc3RfcGF0 aCBhcmcKKysjCisrIyBDb252ZXJ0IHBhdGhzIHRvIGhvc3QgZm9ybWF0IHdoZW4gdXNlZCB3aXRo IGJ1aWxkIHRvb2xzLgorKyMgSW50ZW5kZWQgZm9yIHVzZSB3aXRoICJuYXRpdmUiIG1pbmd3ICh3 aGVyZSBsaWJ0b29sIGl0c2VsZgorKyMgaXMgcnVubmluZyB1bmRlciB0aGUgbXN5cyBzaGVsbCks IG9yIGluIHRoZSBmb2xsb3dpbmcgY3Jvc3MtCisrIyBidWlsZCBlbnZpcm9ubWVudHM6CisrIyAg ICAkYnVpbGQgICAgICAgICAgJGhvc3QKKysjICAgIG1pbmd3IChtc3lzKSAgICBtaW5ndyAgW2Uu Zy4gbmF0aXZlXQorKyMgICAgY3lnd2luICAgICAgICAgIG1pbmd3CisrIyAgICAqbml4ICsgd2lu ZSAgICAgbWluZ3cKKysjIHdoZXJlIHdpbmUgaXMgZXF1aXBwZWQgd2l0aCB0aGUgYHdpbmVwYXRo JyBleGVjdXRhYmxlLgorKyMgSW4gdGhlIG5hdGl2ZSBtaW5ndyBjYXNlLCB0aGUgKG1zeXMpIHNo ZWxsIGF1dG9tYXRpY2FsbHkKKysjIGNvbnZlcnRzIHBhdGhzIGZvciBhbnkgbm9uLW1zeXMgYXBw bGljYXRpb25zIGl0IGxhdW5jaGVzLAorKyMgYnV0IHRoYXQgZmFjaWxpdHkgaXNuJ3QgYXZhaWxh YmxlIGZyb20gaW5zaWRlIHRoZSBjd3JhcHBlci4KKysjIFNpbWlsYXIgYWNjb21tb2RhdGlvbnMg YXJlIG5lY2Vzc2FyeSBmb3IgJGhvc3QgbWluZ3cgYW5kCisrIyAkYnVpbGQgY3lnd2luLiAgQ2Fs bGluZyB0aGlzIGZ1bmN0aW9uIGRvZXMgbm8gaGFybSBmb3Igb3RoZXIKKysjICRob3N0LyRidWls ZCBjb21iaW5hdGlvbnMgbm90IGxpc3RlZCBhYm92ZS4KKysjCisrIyBBUkcgaXMgdGhlIHBhdGgg KG9uICRidWlsZCkgdGhhdCBzaG91bGQgYmUgY29udmVydGVkIHRvCisrIyB0aGUgcHJvcGVyIHJl cHJlc2VudGF0aW9uIGZvciAkaG9zdC4gVGhlIHJlc3VsdCBpcyBzdG9yZWQKKysjIGluICRmdW5j X3RvX2hvc3RfcGF0aF9yZXN1bHQuCisrZnVuY190b19ob3N0X3BhdGggKCkKKyt7CisrICBmdW5j X3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQxIgorKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCisrICAg IGNhc2UgJGhvc3QgaW4KKysgICAgICAqbWluZ3cqICkKKysgICAgICAgIGx0X3NlZF9uYWl2ZV9i YWNrc2xhc2hpZnk9J3N8XFxcXCp8XFx8ZztzfC98XFx8ZztzfFxcfFxcXFx8ZycKKysgICAgICAg IGNhc2UgJGJ1aWxkIGluCisrICAgICAgICAgICptaW5ndyogKSAjIGFjdHVhbGx5LCBtc3lzCisr ICAgICAgICAgICAgIyBhd2t3YXJkOiBjbWQgYXBwZW5kcyBzcGFjZXMgdG8gcmVzdWx0CisrICAg ICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PWAoIGNtZCAvL2MgZWNobyAiJDEiICkg Mj4vZGV2L251bGwgfAorKyAgICAgICAgICAgICAgJFNFRCAtZSAncy9bIF0qJC8vJyAtZSAiJGx0 X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAorKyAgICAgICAgICAgIDs7CisrICAgICAgICAgICpj eWd3aW4qICkKKysgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9YGN5Z3BhdGgg LXcgIiQxIiB8CisrCSAgICAgICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAK KysgICAgICAgICAgICA7OworKyAgICAgICAgICAqICkKKysgICAgICAgICAgICAjIFVuZm9ydHVu YXRlbHksIHdpbmVwYXRoIGRvZXMgbm90IGV4aXQgd2l0aCBhIG5vbi16ZXJvCisrICAgICAgICAg ICAgIyBlcnJvciBjb2RlLCBzbyB3ZSBhcmUgZm9yY2VkIHRvIGNoZWNrIHRoZSBjb250ZW50cyBv ZgorKyAgICAgICAgICAgICMgc3Rkb3V0LiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgdGhlIGNvbW1h bmQgaXMgbm90CisrICAgICAgICAgICAgIyBmb3VuZCwgdGhlIHNoZWxsIHdpbGwgc2V0IGFuIGV4 aXQgY29kZSBvZiAxMjcgYW5kIHByaW50CisrICAgICAgICAgICAgIyAqYW4gZXJyb3IgbWVzc2Fn ZSogdG8gc3Rkb3V0LiBTbyB3ZSBtdXN0IGNoZWNrIGZvciBib3RoCisrICAgICAgICAgICAgIyBl cnJvciBjb2RlIG9mIHplcm8gQU5EIG5vbi1lbXB0eSBzdGRvdXQsIHdoaWNoIGV4cGxhaW5zCisr ICAgICAgICAgICAgIyB0aGUgb2RkIGNvbnN0cnVjdGlvbjoKKysgICAgICAgICAgICBmdW5jX3Rv X2hvc3RfcGF0aF90bXAxPWB3aW5lcGF0aCAtdyAiJDEiIDI+L2Rldi9udWxsYAorKyAgICAgICAg ICAgIGlmIHRlc3QgIiQ/IiAtZXEgMCAmJiB0ZXN0IC1uICIke2Z1bmNfdG9faG9zdF9wYXRoX3Rt cDF9IjsgdGhlbgorKyAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PWAkRUNI TyAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiIHwKKysgICAgICAgICAgICAgICAgJFNFRCAtZSAi JGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAorKyAgICAgICAgICAgIGVsc2UKKysgICAgICAg ICAgICAgICMgQWxsb3cgd2FybmluZyBiZWxvdy4KKysgICAgICAgICAgICAgIGZ1bmNfdG9faG9z dF9wYXRoX3Jlc3VsdD0KKysgICAgICAgICAgICBmaQorKyAgICAgICAgICAgIDs7CisrICAgICAg ICBlc2FjCisrICAgICAgICBpZiB0ZXN0IC16ICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IiA7 IHRoZW4KKysgICAgICAgICAgZnVuY19lcnJvciAiQ291bGQgbm90IGRldGVybWluZSBob3N0IHBh dGggY29ycmVzcG9uZGluZyB0byIKKysgICAgICAgICAgZnVuY19lcnJvciAiICBcYCQxJyIKKysg ICAgICAgICAgZnVuY19lcnJvciAiQ29udGludWluZywgYnV0IHVuaW5zdGFsbGVkIGV4ZWN1dGFi bGVzIG1heSBub3Qgd29yay4iCisrICAgICAgICAgICMgRmFsbGJhY2s6CisrICAgICAgICAgIGZ1 bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCisrICAgICAgICBmaQorKyAgICAgICAgOzsKKysg ICAgZXNhYworKyAgZmkKKyt9CisrIyBlbmQ6IGZ1bmNfdG9faG9zdF9wYXRoCisrCisrIyBmdW5j X3RvX2hvc3RfcGF0aGxpc3QgYXJnCisrIworKyMgQ29udmVydCBwYXRobGlzdHMgdG8gaG9zdCBm b3JtYXQgd2hlbiB1c2VkIHdpdGggYnVpbGQgdG9vbHMuCisrIyBTZWUgZnVuY190b19ob3N0X3Bh dGgoKSwgYWJvdmUuIFRoaXMgZnVuY3Rpb24gc3VwcG9ydHMgdGhlCisrIyBmb2xsb3dpbmcgJGJ1 aWxkLyRob3N0IGNvbWJpbmF0aW9ucyAoYnV0IGRvZXMgbm8gaGFybSBmb3IKKysjIGNvbWJpbmF0 aW9ucyBub3QgbGlzdGVkIGhlcmUpOgorKyMgICAgJGJ1aWxkICAgICAgICAgICRob3N0CisrIyAg ICBtaW5ndyAobXN5cykgICAgbWluZ3cgIFtlLmcuIG5hdGl2ZV0KKysjICAgIGN5Z3dpbiAgICAg ICAgICBtaW5ndworKyMgICAgKm5peCArIHdpbmUgICAgIG1pbmd3CisrIworKyMgUGF0aCBzZXBh cmF0b3JzIGFyZSBhbHNvIGNvbnZlcnRlZCBmcm9tICRidWlsZCBmb3JtYXQgdG8KKysjICRob3N0 IGZvcm1hdC4gSWYgQVJHIGJlZ2lucyBvciBlbmRzIHdpdGggYSBwYXRoIHNlcGFyYXRvcgorKyMg Y2hhcmFjdGVyLCBpdCBpcyBwcmVzZXJ2ZWQgKGJ1dCBjb252ZXJ0ZWQgdG8gJGhvc3QgZm9ybWF0 KQorKyMgb24gb3V0cHV0LgorKyMKKysjIEFSRyBpcyBhIHBhdGhsaXN0IChvbiAkYnVpbGQpIHRo YXQgc2hvdWxkIGJlIGNvbnZlcnRlZCB0bworKyMgdGhlIHByb3BlciByZXByZXNlbnRhdGlvbiBv biAkaG9zdC4gVGhlIHJlc3VsdCBpcyBzdG9yZWQKKysjIGluICRmdW5jX3RvX2hvc3RfcGF0aGxp c3RfcmVzdWx0LgorK2Z1bmNfdG9faG9zdF9wYXRobGlzdCAoKQorK3sKKysgIGZ1bmNfdG9faG9z dF9wYXRobGlzdF9yZXN1bHQ9IiQxIgorKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCisrICAgIGNh c2UgJGhvc3QgaW4KKysgICAgICAqbWluZ3cqICkKKysgICAgICAgIGx0X3NlZF9uYWl2ZV9iYWNr c2xhc2hpZnk9J3N8XFxcXCp8XFx8ZztzfC98XFx8ZztzfFxcfFxcXFx8ZycKKysgICAgICAgICMg UmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlcnMgZnJv bQorKyAgICAgICAgIyBBUkcuIG1zeXMgYmVoYXZpb3IgaXMgaW5jb25zaXN0ZW50IGhlcmUsIGN5 Z3BhdGggdHVybnMgdGhlbQorKyAgICAgICAgIyBpbnRvICcuOycgYW5kICc7LicsIGFuZCB3aW5l cGF0aCBpZ25vcmVzIHRoZW0gY29tcGxldGVseS4KKysJZnVuY19zdHJpcG5hbWUgOiA6ICIkMSIK KysgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAxPSRmdW5jX3N0cmlwbmFtZV9yZXN1 bHQKKysgICAgICAgIGNhc2UgJGJ1aWxkIGluCisrICAgICAgICAgICptaW5ndyogKSAjIEFjdHVh bGx5LCBtc3lzLgorKyAgICAgICAgICAgICMgQXdrd2FyZDogY21kIGFwcGVuZHMgc3BhY2VzIHRv IHJlc3VsdC4KKysgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PWAKKysJ ICAgICAgKCBjbWQgLy9jIGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMSIgKSAyPi9k ZXYvbnVsbCB8CisrCSAgICAgICRTRUQgLWUgJ3MvWyBdKiQvLycgLWUgIiRsdF9zZWRfbmFpdmVf YmFja3NsYXNoaWZ5ImAKKysgICAgICAgICAgICA7OworKyAgICAgICAgICAqY3lnd2luKiApCisr ICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD1gY3lncGF0aCAtdyAtcCAi JGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAxIiB8CisrICAgICAgICAgICAgICAkU0VEIC1lICIk bHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCisrICAgICAgICAgICAgOzsKKysgICAgICAgICAg KiApCisrICAgICAgICAgICAgIyB1bmZvcnR1bmF0ZWx5LCB3aW5lcGF0aCBkb2Vzbid0IGNvbnZl cnQgcGF0aGxpc3RzCisrICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0i IgorKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9vbGRJRlM9JElGUworKyAgICAg ICAgICAgIElGUz06CisrICAgICAgICAgICAgZm9yIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9mIGlu ICRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMSA7IGRvCisrICAgICAgICAgICAgICBJRlM9JGZ1 bmNfdG9faG9zdF9wYXRobGlzdF9vbGRJRlMKKysgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRm dW5jX3RvX2hvc3RfcGF0aGxpc3RfZiIgOyB0aGVuCisrICAgICAgICAgICAgICAgIGZ1bmNfdG9f aG9zdF9wYXRoICIkZnVuY190b19ob3N0X3BhdGhsaXN0X2YiCisrICAgICAgICAgICAgICAgIGlm IHRlc3QgLW4gIiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiIDsgdGhlbgorKyAgICAgICAgICAg ICAgICAgIGlmIHRlc3QgLXogIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IiA7IHRoZW4K KysgICAgICAgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiRmdW5j X3RvX2hvc3RfcGF0aF9yZXN1bHQiCisrICAgICAgICAgICAgICAgICAgZWxzZQorKyAgICAgICAg ICAgICAgICAgICAgZnVuY19hcHBlbmQgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCAiOyRm dW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiCisrICAgICAgICAgICAgICAgICAgZmkKKysgICAgICAg ICAgICAgICAgZmkKKysgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgZG9uZQorKyAgICAg ICAgICAgIElGUz0kZnVuY190b19ob3N0X3BhdGhsaXN0X29sZElGUworKyAgICAgICAgICAgIDs7 CisrICAgICAgICBlc2FjCisrICAgICAgICBpZiB0ZXN0IC16ICIkZnVuY190b19ob3N0X3BhdGhs aXN0X3Jlc3VsdCI7IHRoZW4KKysgICAgICAgICAgZnVuY19lcnJvciAiQ291bGQgbm90IGRldGVy bWluZSB0aGUgaG9zdCBwYXRoKHMpIGNvcnJlc3BvbmRpbmcgdG8iCisrICAgICAgICAgIGZ1bmNf ZXJyb3IgIiAgXGAkMSciCisrICAgICAgICAgIGZ1bmNfZXJyb3IgIkNvbnRpbnVpbmcsIGJ1dCB1 bmluc3RhbGxlZCBleGVjdXRhYmxlcyBtYXkgbm90IHdvcmsuIgorKyAgICAgICAgICAjIEZhbGxi YWNrLiBUaGlzIG1heSBicmVhayBpZiAkMSBjb250YWlucyBET1Mtc3R5bGUgZHJpdmUKKysgICAg ICAgICAgIyBzcGVjaWZpY2F0aW9ucy4gVGhlIGZpeCBpcyBub3QgdG8gY29tcGxpY2F0ZSB0aGUg ZXhwcmVzc2lvbgorKyAgICAgICAgICAjIGJlbG93LCBidXQgZm9yIHRoZSB1c2VyIHRvIHByb3Zp ZGUgYSB3b3JraW5nIHdpbmUgaW5zdGFsbGF0aW9uCisrICAgICAgICAgICMgd2l0aCB3aW5lcGF0 aCBzbyB0aGF0IHBhdGggdHJhbnNsYXRpb24gaW4gdGhlIGNyb3NzLXRvLW1pbmd3CisrICAgICAg ICAgICMgY2FzZSB3b3JrcyBwcm9wZXJseS4KKysgICAgICAgICAgbHRfcmVwbGFjZV9wYXRoc2Vw X25peF90b19kb3M9InN8Onw7fGciCisrICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9y ZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMSIgfFwKKysgICAgICAgICAg ICAkU0VEIC1lICIkbHRfcmVwbGFjZV9wYXRoc2VwX25peF90b19kb3MiYAorKyAgICAgICAgZmkK KysgICAgICAgICMgTm93LCBhZGQgdGhlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHBhdGggc2VwYXJh dG9ycyBiYWNrCisrICAgICAgICBjYXNlICIkMSIgaW4KKysgICAgICAgICAgOiogKSBmdW5jX3Rv X2hvc3RfcGF0aGxpc3RfcmVzdWx0PSI7JGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiCisr ICAgICAgICAgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIGNhc2UgIiQxIiBpbgorKyAg ICAgICAgICAqOiApIGZ1bmNfYXBwZW5kIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQgIjsi CisrICAgICAgICAgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrICAgIGVzYWMK KysgIGZpCisrfQorKyMgZW5kOiBmdW5jX3RvX2hvc3RfcGF0aGxpc3QKKysKKysjIGZ1bmNfZW1p dF9jd3JhcHBlcmV4ZV9zcmMKKysjIGVtaXQgdGhlIHNvdXJjZSBjb2RlIGZvciBhIHdyYXBwZXIg ZXhlY3V0YWJsZSBvbiBzdGRvdXQKKysjIE11c3QgT05MWSBiZSBjYWxsZWQgZnJvbSB3aXRoaW4g ZnVuY19tb2RlX2xpbmsgYmVjYXVzZQorKyMgaXQgZGVwZW5kcyBvbiBhIG51bWJlciBvZiB2YXJp YWJsZSBzZXQgdGhlcmVpbi4KKytmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjICgpCisreworKwlj YXQgPDxFT0YKKysKKysvKiAkY3dyYXBwZXJzb3VyY2UgLSB0ZW1wb3Jhcnkgd3JhcHBlciBleGVj dXRhYmxlIGZvciAkb2JqZGlyLyRvdXRwdXRuYW1lCisrICAgR2VuZXJhdGVkIGJ5ICRQUk9HUkFN IChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgorKworKyAgIFRoZSAkb3V0cHV0IHBy b2dyYW0gY2Fubm90IGJlIGRpcmVjdGx5IGV4ZWN1dGVkIHVudGlsIGFsbCB0aGUgbGlidG9vbAor KyAgIGxpYnJhcmllcyB0aGF0IGl0IGRlcGVuZHMgb24gYXJlIGluc3RhbGxlZC4KKysKKysgICBU aGlzIHdyYXBwZXIgZXhlY3V0YWJsZSBzaG91bGQgbmV2ZXIgYmUgbW92ZWQgb3V0IG9mIHRoZSBi dWlsZCBkaXJlY3RvcnkuCisrICAgSWYgaXQgaXMsIGl0IHdpbGwgbm90IG9wZXJhdGUgY29ycmVj dGx5LgorKyovCisrRU9GCisrCSAgICBjYXQgPDwiRU9GIgorKyNpZmRlZiBfTVNDX1ZFUgorKyMg ZGVmaW5lIF9DUlRfU0VDVVJFX05PX0RFUFJFQ0FURSAxCisrI2VuZGlmCisrI2luY2x1ZGUgPHN0 ZGlvLmg+CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpZmRlZiBfTVNDX1ZFUgorKyMgaW5jbHVk ZSA8ZGlyZWN0Lmg+CisrIyBpbmNsdWRlIDxwcm9jZXNzLmg+CisrIyBpbmNsdWRlIDxpby5oPgor KyNlbHNlCisrIyBpbmNsdWRlIDx1bmlzdGQuaD4KKysjIGluY2x1ZGUgPHN0ZGludC5oPgorKyMg aWZkZWYgX19DWUdXSU5fXworKyMgIGluY2x1ZGUgPGlvLmg+CisrIyBlbmRpZgorKyNlbmRpZgor KyNpbmNsdWRlIDxtYWxsb2MuaD4KKysjaW5jbHVkZSA8c3RkYXJnLmg+CisrI2luY2x1ZGUgPGFz c2VydC5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysjaW5jbHVkZSA8Y3R5cGUuaD4KKysjaW5j bHVkZSA8ZXJybm8uaD4KKysjaW5jbHVkZSA8ZmNudGwuaD4KKysjaW5jbHVkZSA8c3lzL3N0YXQu aD4KKysKKysvKiBkZWNsYXJhdGlvbnMgb2Ygbm9uLUFOU0kgZnVuY3Rpb25zICovCisrI2lmIGRl ZmluZWQoX19NSU5HVzMyX18pCisrIyBpZmRlZiBfX1NUUklDVF9BTlNJX18KKytpbnQgX3B1dGVu diAoY29uc3QgY2hhciAqKTsKKysjIGVuZGlmCisrI2VsaWYgZGVmaW5lZChfX0NZR1dJTl9fKQor KyMgaWZkZWYgX19TVFJJQ1RfQU5TSV9fCisrY2hhciAqcmVhbHBhdGggKGNvbnN0IGNoYXIgKiwg Y2hhciAqKTsKKytpbnQgcHV0ZW52IChjaGFyICopOworK2ludCBzZXRlbnYgKGNvbnN0IGNoYXIg KiwgY29uc3QgY2hhciAqLCBpbnQpOworKyMgZW5kaWYKKysvKiAjZWxpZiBkZWZpbmVkIChvdGhl ciBwbGF0Zm9ybXMpIC4uLiAqLworKyNlbmRpZgorKworKy8qIHBvcnRhYmlsaXR5IGRlZmluZXMs IGV4Y2x1ZGluZyBwYXRoIGhhbmRsaW5nIG1hY3JvcyAqLworKyNpZiBkZWZpbmVkKF9NU0NfVkVS KQorKyMgZGVmaW5lIHNldG1vZGUgX3NldG1vZGUKKysjIGRlZmluZSBzdGF0ICAgIF9zdGF0Cisr IyBkZWZpbmUgY2htb2QgICBfY2htb2QKKysjIGRlZmluZSBnZXRjd2QgIF9nZXRjd2QKKysjIGRl ZmluZSBwdXRlbnYgIF9wdXRlbnYKKysjIGRlZmluZSBTX0lYVVNSIF9TX0lFWEVDCisrIyBpZm5k ZWYgX0lOVFBUUl9UX0RFRklORUQKKysjICBkZWZpbmUgX0lOVFBUUl9UX0RFRklORUQKKysjICBk ZWZpbmUgaW50cHRyX3QgaW50CisrIyBlbmRpZgorKyNlbGlmIGRlZmluZWQoX19NSU5HVzMyX18p CisrIyBkZWZpbmUgc2V0bW9kZSBfc2V0bW9kZQorKyMgZGVmaW5lIHN0YXQgICAgX3N0YXQKKysj IGRlZmluZSBjaG1vZCAgIF9jaG1vZAorKyMgZGVmaW5lIGdldGN3ZCAgX2dldGN3ZAorKyMgZGVm aW5lIHB1dGVudiAgX3B1dGVudgorKyNlbGlmIGRlZmluZWQoX19DWUdXSU5fXykKKysjIGRlZmlu ZSBIQVZFX1NFVEVOVgorKyMgZGVmaW5lIEZPUEVOX1dCICJ3YiIKKysvKiAjZWxpZiBkZWZpbmVk IChvdGhlciBwbGF0Zm9ybXMpIC4uLiAqLworKyNlbmRpZgorKworKyNpZiBkZWZpbmVkKFBBVEhf TUFYKQorKyMgZGVmaW5lIExUX1BBVEhNQVggUEFUSF9NQVgKKysjZWxpZiBkZWZpbmVkKE1BWFBB VEhMRU4pCisrIyBkZWZpbmUgTFRfUEFUSE1BWCBNQVhQQVRITEVOCisrI2Vsc2UKKysjIGRlZmlu ZSBMVF9QQVRITUFYIDEwMjQKKysjZW5kaWYKKysKKysjaWZuZGVmIFNfSVhPVEgKKysjIGRlZmlu ZSBTX0lYT1RIIDAKKysjZW5kaWYKKysjaWZuZGVmIFNfSVhHUlAKKysjIGRlZmluZSBTX0lYR1JQ IDAKKysjZW5kaWYKKysKKysvKiBwYXRoIGhhbmRsaW5nIHBvcnRhYmlsaXR5IG1hY3JvcyAqLwor KyNpZm5kZWYgRElSX1NFUEFSQVRPUgorKyMgZGVmaW5lIERJUl9TRVBBUkFUT1IgJy8nCisrIyBk ZWZpbmUgUEFUSF9TRVBBUkFUT1IgJzonCisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKF9XSU4z MikgfHwgZGVmaW5lZCAoX19NU0RPU19fKSB8fCBkZWZpbmVkIChfX0RKR1BQX18pIHx8IFwKKysg IGRlZmluZWQgKF9fT1MyX18pCisrIyBkZWZpbmUgSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0K KysjIGRlZmluZSBGT1BFTl9XQiAid2IiCisrIyBpZm5kZWYgRElSX1NFUEFSQVRPUl8yCisrIyAg ZGVmaW5lIERJUl9TRVBBUkFUT1JfMiAnXFwnCisrIyBlbmRpZgorKyMgaWZuZGVmIFBBVEhfU0VQ QVJBVE9SXzIKKysjICBkZWZpbmUgUEFUSF9TRVBBUkFUT1JfMiAnOycKKysjIGVuZGlmCisrI2Vu ZGlmCisrCisrI2lmbmRlZiBESVJfU0VQQVJBVE9SXzIKKysjIGRlZmluZSBJU19ESVJfU0VQQVJB VE9SKGNoKSAoKGNoKSA9PSBESVJfU0VQQVJBVE9SKQorKyNlbHNlIC8qIERJUl9TRVBBUkFUT1Jf MiAqLworKyMgZGVmaW5lIElTX0RJUl9TRVBBUkFUT1IoY2gpIFwKKysJKCgoY2gpID09IERJUl9T RVBBUkFUT1IpIHx8ICgoY2gpID09IERJUl9TRVBBUkFUT1JfMikpCisrI2VuZGlmIC8qIERJUl9T RVBBUkFUT1JfMiAqLworKworKyNpZm5kZWYgUEFUSF9TRVBBUkFUT1JfMgorKyMgZGVmaW5lIElT X1BBVEhfU0VQQVJBVE9SKGNoKSAoKGNoKSA9PSBQQVRIX1NFUEFSQVRPUikKKysjZWxzZSAvKiBQ QVRIX1NFUEFSQVRPUl8yICovCisrIyBkZWZpbmUgSVNfUEFUSF9TRVBBUkFUT1IoY2gpICgoY2gp ID09IFBBVEhfU0VQQVJBVE9SXzIpCisrI2VuZGlmIC8qIFBBVEhfU0VQQVJBVE9SXzIgKi8KKysK KysjaWZuZGVmIEZPUEVOX1dCCisrIyBkZWZpbmUgRk9QRU5fV0IgInciCisrI2VuZGlmCisrI2lm bmRlZiBfT19CSU5BUlkKKysjIGRlZmluZSBfT19CSU5BUlkgMAorKyNlbmRpZgorKworKyNkZWZp bmUgWE1BTExPQyh0eXBlLCBudW0pICAgICAgKCh0eXBlICopIHhtYWxsb2MgKChudW0pICogc2l6 ZW9mKHR5cGUpKSkKKysjZGVmaW5lIFhGUkVFKHN0YWxlKSBkbyB7IFwKKysgIGlmIChzdGFsZSkg eyBmcmVlICgodm9pZCAqKSBzdGFsZSk7IHN0YWxlID0gMDsgfSBcCisrfSB3aGlsZSAoMCkKKysK KysjaWYgZGVmaW5lZChMVF9ERUJVR1dSQVBQRVIpCisrc3RhdGljIGludCBsdF9kZWJ1ZyA9IDE7 CisrI2Vsc2UKKytzdGF0aWMgaW50IGx0X2RlYnVnID0gMDsKKysjZW5kaWYKKysKKytjb25zdCBj aGFyICpwcm9ncmFtX25hbWUgPSAibGlidG9vbC13cmFwcGVyIjsgLyogaW4gY2FzZSB4c3RyZHVw IGZhaWxzICovCisrCisrdm9pZCAqeG1hbGxvYyAoc2l6ZV90IG51bSk7CisrY2hhciAqeHN0cmR1 cCAoY29uc3QgY2hhciAqc3RyaW5nKTsKKytjb25zdCBjaGFyICpiYXNlX25hbWUgKGNvbnN0IGNo YXIgKm5hbWUpOworK2NoYXIgKmZpbmRfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqd3JhcHBlcik7 CisrY2hhciAqY2hhc2Vfc3ltbGlua3MgKGNvbnN0IGNoYXIgKnBhdGhzcGVjKTsKKytpbnQgbWFr ZV9leGVjdXRhYmxlIChjb25zdCBjaGFyICpwYXRoKTsKKytpbnQgY2hlY2tfZXhlY3V0YWJsZSAo Y29uc3QgY2hhciAqcGF0aCk7CisrY2hhciAqc3RyZW5kemFwIChjaGFyICpzdHIsIGNvbnN0IGNo YXIgKnBhdCk7Cisrdm9pZCBsdF9kZWJ1Z3ByaW50ZiAoY29uc3QgY2hhciAqZmlsZSwgaW50IGxp bmUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKKyt2b2lkIGx0X2ZhdGFsIChjb25zdCBjaGFyICpm aWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciAqbWVzc2FnZSwgLi4uKTsKKytzdGF0aWMgY29uc3Qg Y2hhciAqbm9ubnVsbCAoY29uc3QgY2hhciAqcyk7Cisrc3RhdGljIGNvbnN0IGNoYXIgKm5vbmVt cHR5IChjb25zdCBjaGFyICpzKTsKKyt2b2lkIGx0X3NldGVudiAoY29uc3QgY2hhciAqbmFtZSwg Y29uc3QgY2hhciAqdmFsdWUpOworK2NoYXIgKmx0X2V4dGVuZF9zdHIgKGNvbnN0IGNoYXIgKm9y aWdfdmFsdWUsIGNvbnN0IGNoYXIgKmFkZCwgaW50IHRvX2VuZCk7Cisrdm9pZCBsdF91cGRhdGVf ZXhlX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKTsKKyt2b2lkIGx0 X3VwZGF0ZV9saWJfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpOwor K2NoYXIgKipwcmVwYXJlX3NwYXduIChjaGFyICoqYXJndik7Cisrdm9pZCBsdF9kdW1wX3Njcmlw dCAoRklMRSAqZik7CisrRU9GCisrCisrCSAgICBjYXQgPDxFT0YKKytjb25zdCBjaGFyICogTUFH SUNfRVhFID0gIiRtYWdpY19leGUiOworK2NvbnN0IGNoYXIgKiBMSUJfUEFUSF9WQVJOQU1FID0g IiRzaGxpYnBhdGhfdmFyIjsKKytFT0YKKysKKysJICAgIGlmIHRlc3QgIiRzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGgiID0geWVzICYmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIiAmJiB0ZXN0 IC1uICIkdGVtcF9ycGF0aCI7IHRoZW4KKysgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRo bGlzdCAiJHRlbXBfcnBhdGgiCisrCSAgICAgIGNhdCA8PEVPRgorK2NvbnN0IGNoYXIgKiBMSUJf UEFUSF9WQUxVRSAgID0gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IjsKKytFT0YKKysJ ICAgIGVsc2UKKysJICAgICAgY2F0IDw8IkVPRiIKKytjb25zdCBjaGFyICogTElCX1BBVEhfVkFM VUUgICA9ICIiOworK0VPRgorKwkgICAgZmkKKysKKysJICAgIGlmIHRlc3QgLW4gIiRkbGxzZWFy Y2hwYXRoIjsgdGhlbgorKyAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0ICIkZGxs c2VhcmNocGF0aDoiCisrCSAgICAgIGNhdCA8PEVPRgorK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9W QVJOQU1FID0gIlBBVEgiOworK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQUxVRSAgID0gIiRmdW5j X3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IjsKKytFT0YKKysJICAgIGVsc2UKKysJICAgICAgY2F0 IDw8IkVPRiIKKytjb25zdCBjaGFyICogRVhFX1BBVEhfVkFSTkFNRSA9ICIiOworK2NvbnN0IGNo YXIgKiBFWEVfUEFUSF9WQUxVRSAgID0gIiI7CisrRU9GCisrCSAgICBmaQorKworKwkgICAgaWYg dGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5ZXM7IHRoZW4KKysJICAgICAgY2F0IDw8RU9GCisrY29u c3QgY2hhciAqIFRBUkdFVF9QUk9HUkFNX05BTUUgPSAibHQtJG91dHB1dG5hbWUiOyAvKiBob3Bl ZnVsbHksIG5vIC5leGUgKi8KKytFT0YKKysJICAgIGVsc2UKKysJICAgICAgY2F0IDw8RU9GCisr Y29uc3QgY2hhciAqIFRBUkdFVF9QUk9HUkFNX05BTUUgPSAiJG91dHB1dG5hbWUiOyAvKiBob3Bl ZnVsbHksIG5vIC5leGUgKi8KKytFT0YKKysJICAgIGZpCisrCisrCisrCSAgICBjYXQgPDwiRU9G IgorKworKyNkZWZpbmUgTFRXUkFQUEVSX09QVElPTl9QUkVGSVggICAgICAgICAiLS1sdC0iCisr Cisrc3RhdGljIGNvbnN0IGNoYXIgKmx0d3JhcHBlcl9vcHRpb25fcHJlZml4ID0gTFRXUkFQUEVS X09QVElPTl9QUkVGSVg7Cisrc3RhdGljIGNvbnN0IGNoYXIgKmR1bXBzY3JpcHRfb3B0ICAgICAg ID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVggImR1bXAtc2NyaXB0IjsKKytzdGF0aWMgY29uc3Qg Y2hhciAqZGVidWdfb3B0ICAgICAgICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZGVi dWciOworKworK2ludAorK21haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCisreworKyAgY2hh ciAqKm5ld2FyZ3o7CisrICBpbnQgIG5ld2FyZ2M7CisrICBjaGFyICp0bXBfcGF0aHNwZWM7Cisr ICBjaGFyICphY3R1YWxfY3dyYXBwZXJfcGF0aDsKKysgIGNoYXIgKmFjdHVhbF9jd3JhcHBlcl9u YW1lOworKyAgY2hhciAqdGFyZ2V0X25hbWU7CisrICBjaGFyICpsdF9hcmd2X3plcm87CisrICBp bnRwdHJfdCBydmFsID0gMTI3OworKworKyAgaW50IGk7CisrCisrICBwcm9ncmFtX25hbWUgPSAo Y2hhciAqKSB4c3RyZHVwIChiYXNlX25hbWUgKGFyZ3ZbMF0pKTsKKysgIG5ld2FyZ3ogPSBYTUFM TE9DIChjaGFyICosIGFyZ2MgKyAxKTsKKysKKysgIC8qIHZlcnkgc2ltcGxlIGFyZyBwYXJzaW5n OyBkb24ndCB3YW50IHRvIHJlbHkgb24gZ2V0b3B0CisrICAgKiBhbHNvLCBjb3B5IGFsbCBub24g Y3dyYXBwZXIgb3B0aW9ucyB0byBuZXdhcmd6LCBleGNlcHQKKysgICAqIGFyZ3pbMF0sIHdoaWNo IGlzIGhhbmRsZWQgZGlmZmVyZW50bHkKKysgICAqLworKyAgbmV3YXJnYz0wOworKyAgZm9yIChp ID0gMTsgaSA8IGFyZ2M7IGkrKykKKysgICAgeworKyAgICAgIGlmIChzdHJjbXAgKGFyZ3ZbaV0s IGR1bXBzY3JpcHRfb3B0KSA9PSAwKQorKwl7CisrRU9GCisrCSAgICBjYXNlICIkaG9zdCIgaW4K KysJICAgICAgKm1pbmd3KiB8ICpjeWd3aW4qICkKKysJCSMgbWFrZSBzdGRvdXQgdXNlICJ1bml4 IiBsaW5lIGVuZGluZ3MKKysJCWVjaG8gIiAgICAgICAgICBzZXRtb2RlKDEsX09fQklOQVJZKTsi CisrCQk7OworKwkgICAgICBlc2FjCisrCisrCSAgICBjYXQgPDwiRU9GIgorKwkgIGx0X2R1bXBf c2NyaXB0IChzdGRvdXQpOworKwkgIHJldHVybiAwOworKwl9CisrICAgICAgaWYgKHN0cmNtcCAo YXJndltpXSwgZGVidWdfb3B0KSA9PSAwKQorKwl7CisrICAgICAgICAgIGx0X2RlYnVnID0gMTsK KysgICAgICAgICAgY29udGludWU7CisrCX0KKysgICAgICBpZiAoc3RyY21wIChhcmd2W2ldLCBs dHdyYXBwZXJfb3B0aW9uX3ByZWZpeCkgPT0gMCkKKysgICAgICAgIHsKKysgICAgICAgICAgLyog aG93ZXZlciwgaWYgdGhlcmUgaXMgYW4gb3B0aW9uIGluIHRoZSBMVFdSQVBQRVJfT1BUSU9OX1BS RUZJWAorKyAgICAgICAgICAgICBuYW1lc3BhY2UsIGJ1dCBpdCBpcyBub3Qgb25lIG9mIHRoZSBv bmVzIHdlIGtub3cgYWJvdXQgYW5kCisrICAgICAgICAgICAgIGhhdmUgYWxyZWFkeSBkZWFsdCB3 aXRoLCBhYm92ZSAoaW5sdWRpbmcgZHVtcC1zY3JpcHQpLCB0aGVuCisrICAgICAgICAgICAgIHJl cG9ydCBhbiBlcnJvci4gT3RoZXJ3aXNlLCB0YXJnZXRzIG1pZ2h0IGJlZ2luIHRvIGJlbGlldmUK KysgICAgICAgICAgICAgdGhleSBhcmUgYWxsb3dlZCB0byB1c2Ugb3B0aW9ucyBpbiB0aGUgTFRX UkFQUEVSX09QVElPTl9QUkVGSVgKKysgICAgICAgICAgICAgbmFtZXNwYWNlLiBUaGUgZmlyc3Qg dGltZSBhbnkgdXNlciBjb21wbGFpbnMgYWJvdXQgdGhpcywgd2UnbGwKKysgICAgICAgICAgICAg bmVlZCB0byBtYWtlIExUV1JBUFBFUl9PUFRJT05fUFJFRklYIGEgY29uZmlndXJlLXRpbWUgb3B0 aW9uCisrICAgICAgICAgICAgIG9yIGEgY29uZmlndXJlLmFjLXNldHRhYmxlIHZhbHVlLgorKyAg ICAgICAgICAgKi8KKysgICAgICAgICAgbHRfZmF0YWwgKF9fRklMRV9fLCBfX0xJTkVfXywKKysJ CSAgICAidW5yZWNvZ25pemVkICVzIG9wdGlvbjogJyVzJyIsCisrICAgICAgICAgICAgICAgICAg ICBsdHdyYXBwZXJfb3B0aW9uX3ByZWZpeCwgYXJndltpXSk7CisrICAgICAgICB9CisrICAgICAg Lyogb3RoZXJ3aXNlIC4uLiAqLworKyAgICAgIG5ld2FyZ3pbKytuZXdhcmdjXSA9IHhzdHJkdXAg KGFyZ3ZbaV0pOworKyAgICB9CisrICBuZXdhcmd6WysrbmV3YXJnY10gPSBOVUxMOworKworK0VP RgorKwkgICAgY2F0IDw8RU9GCisrICAvKiBUaGUgR05VIGJhbm5lciBtdXN0IGJlIHRoZSBmaXJz dCBub24tZXJyb3IgZGVidWcgbWVzc2FnZSAqLworKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9f LCBfX0xJTkVfXywgImxpYnRvb2wgd3JhcHBlciAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZF UlNJT05cbiIpOworK0VPRgorKwkgICAgY2F0IDw8IkVPRiIKKysgIGx0X2RlYnVncHJpbnRmIChf X0ZJTEVfXywgX19MSU5FX18sICIobWFpbikgYXJndlswXTogJXNcbiIsIGFyZ3ZbMF0pOworKyAg bHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywgIihtYWluKSBwcm9ncmFtX25hbWU6 ICVzXG4iLCBwcm9ncmFtX25hbWUpOworKworKyAgdG1wX3BhdGhzcGVjID0gZmluZF9leGVjdXRh YmxlIChhcmd2WzBdKTsKKysgIGlmICh0bXBfcGF0aHNwZWMgPT0gTlVMTCkKKysgICAgbHRfZmF0 YWwgKF9fRklMRV9fLCBfX0xJTkVfXywgImNvdWxkbid0IGZpbmQgJXMiLCBhcmd2WzBdKTsKKysg IGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sCisrICAgICAgICAgICAgICAgICAg IihtYWluKSBmb3VuZCBleGUgKGJlZm9yZSBzeW1saW5rIGNoYXNlKSBhdDogJXNcbiIsCisrCQkg IHRtcF9wYXRoc3BlYyk7CisrCisrICBhY3R1YWxfY3dyYXBwZXJfcGF0aCA9IGNoYXNlX3N5bWxp bmtzICh0bXBfcGF0aHNwZWMpOworKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVf XywKKysgICAgICAgICAgICAgICAgICAiKG1haW4pIGZvdW5kIGV4ZSAoYWZ0ZXIgc3ltbGluayBj aGFzZSkgYXQ6ICVzXG4iLAorKwkJICBhY3R1YWxfY3dyYXBwZXJfcGF0aCk7CisrICBYRlJFRSAo dG1wX3BhdGhzcGVjKTsKKysKKysgIGFjdHVhbF9jd3JhcHBlcl9uYW1lID0geHN0cmR1cCAoYmFz ZV9uYW1lIChhY3R1YWxfY3dyYXBwZXJfcGF0aCkpOworKyAgc3RyZW5kemFwIChhY3R1YWxfY3dy YXBwZXJfcGF0aCwgYWN0dWFsX2N3cmFwcGVyX25hbWUpOworKworKyAgLyogd3JhcHBlciBuYW1l IHRyYW5zZm9ybXMgKi8KKysgIHN0cmVuZHphcCAoYWN0dWFsX2N3cmFwcGVyX25hbWUsICIuZXhl Iik7CisrICB0bXBfcGF0aHNwZWMgPSBsdF9leHRlbmRfc3RyIChhY3R1YWxfY3dyYXBwZXJfbmFt ZSwgIi5leGUiLCAxKTsKKysgIFhGUkVFIChhY3R1YWxfY3dyYXBwZXJfbmFtZSk7CisrICBhY3R1 YWxfY3dyYXBwZXJfbmFtZSA9IHRtcF9wYXRoc3BlYzsKKysgIHRtcF9wYXRoc3BlYyA9IDA7Cisr CisrICAvKiB0YXJnZXRfbmFtZSB0cmFuc2Zvcm1zIC0tIHVzZSBhY3R1YWwgdGFyZ2V0IHByb2dy YW0gbmFtZTsgbWlnaHQgaGF2ZSBsdC0gcHJlZml4ICovCisrICB0YXJnZXRfbmFtZSA9IHhzdHJk dXAgKGJhc2VfbmFtZSAoVEFSR0VUX1BST0dSQU1fTkFNRSkpOworKyAgc3RyZW5kemFwICh0YXJn ZXRfbmFtZSwgIi5leGUiKTsKKysgIHRtcF9wYXRoc3BlYyA9IGx0X2V4dGVuZF9zdHIgKHRhcmdl dF9uYW1lLCAiLmV4ZSIsIDEpOworKyAgWEZSRUUgKHRhcmdldF9uYW1lKTsKKysgIHRhcmdldF9u YW1lID0gdG1wX3BhdGhzcGVjOworKyAgdG1wX3BhdGhzcGVjID0gMDsKKysKKysgIGx0X2RlYnVn cHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sCisrCQkgICIobWFpbikgbGlidG9vbCB0YXJnZXQg bmFtZTogJXNcbiIsCisrCQkgIHRhcmdldF9uYW1lKTsKKytFT0YKKysKKysJICAgIGNhdCA8PEVP RgorKyAgbmV3YXJnelswXSA9CisrICAgIFhNQUxMT0MgKGNoYXIsIChzdHJsZW4gKGFjdHVhbF9j d3JhcHBlcl9wYXRoKSArCisrCQkgICAgc3RybGVuICgiJG9iamRpciIpICsgMSArIHN0cmxlbiAo YWN0dWFsX2N3cmFwcGVyX25hbWUpICsgMSkpOworKyAgc3RyY3B5IChuZXdhcmd6WzBdLCBhY3R1 YWxfY3dyYXBwZXJfcGF0aCk7CisrICBzdHJjYXQgKG5ld2FyZ3pbMF0sICIkb2JqZGlyIik7Cisr ICBzdHJjYXQgKG5ld2FyZ3pbMF0sICIvIik7CisrRU9GCisrCisrCSAgICBjYXQgPDwiRU9GIgor KyAgLyogc3RvcCBoZXJlLCBhbmQgY29weSBzbyB3ZSBkb24ndCBoYXZlIHRvIGRvIHRoaXMgdHdp Y2UgKi8KKysgIHRtcF9wYXRoc3BlYyA9IHhzdHJkdXAgKG5ld2FyZ3pbMF0pOworKworKyAgLyog ZG8gTk9UIHdhbnQgdGhlIGx0LSBwcmVmaXggaGVyZSwgc28gdXNlIGFjdHVhbF9jd3JhcHBlcl9u YW1lICovCisrICBzdHJjYXQgKG5ld2FyZ3pbMF0sIGFjdHVhbF9jd3JhcHBlcl9uYW1lKTsKKysK KysgIC8qIERPIHdhbnQgdGhlIGx0LSBwcmVmaXggaGVyZSBpZiBpdCBleGlzdHMsIHNvIHVzZSB0 YXJnZXRfbmFtZSAqLworKyAgbHRfYXJndl96ZXJvID0gbHRfZXh0ZW5kX3N0ciAodG1wX3BhdGhz cGVjLCB0YXJnZXRfbmFtZSwgMSk7CisrICBYRlJFRSAodG1wX3BhdGhzcGVjKTsKKysgIHRtcF9w YXRoc3BlYyA9IE5VTEw7CisrRU9GCisrCisrCSAgICBjYXNlICRob3N0X29zIGluCisrCSAgICAg IG1pbmd3KikKKysJICAgIGNhdCA8PCJFT0YiCisrICB7CisrICAgIGNoYXIqIHA7CisrICAgIHdo aWxlICgocCA9IHN0cmNociAobmV3YXJnelswXSwgJ1xcJykpICE9IE5VTEwpCisrICAgICAgewor KwkqcCA9ICcvJzsKKysgICAgICB9CisrICAgIHdoaWxlICgocCA9IHN0cmNociAobHRfYXJndl96 ZXJvLCAnXFwnKSkgIT0gTlVMTCkKKysgICAgICB7CisrCSpwID0gJy8nOworKyAgICAgIH0KKysg IH0KKytFT0YKKysJICAgIDs7CisrCSAgICBlc2FjCisrCisrCSAgICBjYXQgPDwiRU9GIgorKyAg WEZSRUUgKHRhcmdldF9uYW1lKTsKKysgIFhGUkVFIChhY3R1YWxfY3dyYXBwZXJfcGF0aCk7Cisr ICBYRlJFRSAoYWN0dWFsX2N3cmFwcGVyX25hbWUpOworKworKyAgbHRfc2V0ZW52ICgiQklOX1NI IiwgInhwZzQiKTsgLyogZm9yIFRydTY0ICovCisrICBsdF9zZXRlbnYgKCJEVUFMQ0FTRSIsICIx Iik7ICAvKiBmb3IgTVNLIHNoICovCisrICBsdF91cGRhdGVfbGliX3BhdGggKExJQl9QQVRIX1ZB Uk5BTUUsIExJQl9QQVRIX1ZBTFVFKTsKKysgIGx0X3VwZGF0ZV9leGVfcGF0aCAoRVhFX1BBVEhf VkFSTkFNRSwgRVhFX1BBVEhfVkFMVUUpOworKworKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9f LCBfX0xJTkVfXywgIihtYWluKSBsdF9hcmd2X3plcm86ICVzXG4iLAorKwkJICBub25udWxsIChs dF9hcmd2X3plcm8pKTsKKysgIGZvciAoaSA9IDA7IGkgPCBuZXdhcmdjOyBpKyspCisrICAgIHsK KysgICAgICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLCAiKG1haW4pIG5ld2Fy Z3pbJWRdOiAlc1xuIiwKKysJCSAgICAgIGksIG5vbm51bGwgKG5ld2FyZ3pbaV0pKTsKKysgICAg fQorKworK0VPRgorKworKwkgICAgY2FzZSAkaG9zdF9vcyBpbgorKwkgICAgICBtaW5ndyopCisr CQljYXQgPDwiRU9GIgorKyAgLyogZXhlY3YgZG9lc24ndCBhY3R1YWxseSB3b3JrIG9uIG1pbmd3 IGFzIGV4cGVjdGVkIG9uIHVuaXggKi8KKysgIG5ld2FyZ3ogPSBwcmVwYXJlX3NwYXduIChuZXdh cmd6KTsKKysgIHJ2YWwgPSBfc3Bhd252IChfUF9XQUlULCBsdF9hcmd2X3plcm8sIChjb25zdCBj aGFyICogY29uc3QgKikgbmV3YXJneik7CisrICBpZiAocnZhbCA9PSAtMSkKKysgICAgeworKyAg ICAgIC8qIGZhaWxlZCB0byBzdGFydCBwcm9jZXNzICovCisrICAgICAgbHRfZGVidWdwcmludGYg KF9fRklMRV9fLCBfX0xJTkVfXywKKysJCSAgICAgICIobWFpbikgZmFpbGVkIHRvIGxhdW5jaCB0 YXJnZXQgXCIlc1wiOiAlc1xuIiwKKysJCSAgICAgIGx0X2FyZ3ZfemVybywgbm9ubnVsbCAoc3Ry ZXJyb3IgKGVycm5vKSkpOworKyAgICAgIHJldHVybiAxMjc7CisrICAgIH0KKysgIHJldHVybiBy dmFsOworK0VPRgorKwkJOzsKKysJICAgICAgKikKKysJCWNhdCA8PCJFT0YiCisrICBleGVjdiAo bHRfYXJndl96ZXJvLCBuZXdhcmd6KTsKKysgIHJldHVybiBydmFsOyAvKiA9MTI3LCBidXQgYXZv aWRzIHVudXNlZCB2YXJpYWJsZSB3YXJuaW5nICovCisrRU9GCisrCQk7OworKwkgICAgZXNhYwor KworKwkgICAgY2F0IDw8IkVPRiIKKyt9CisrCisrdm9pZCAqCisreG1hbGxvYyAoc2l6ZV90IG51 bSkKKyt7CisrICB2b2lkICpwID0gKHZvaWQgKikgbWFsbG9jIChudW0pOworKyAgaWYgKCFwKQor KyAgICBsdF9mYXRhbCAoX19GSUxFX18sIF9fTElORV9fLCAibWVtb3J5IGV4aGF1c3RlZCIpOwor KworKyAgcmV0dXJuIHA7CisrfQorKworK2NoYXIgKgorK3hzdHJkdXAgKGNvbnN0IGNoYXIgKnN0 cmluZykKKyt7CisrICByZXR1cm4gc3RyaW5nID8gc3RyY3B5ICgoY2hhciAqKSB4bWFsbG9jIChz dHJsZW4gKHN0cmluZykgKyAxKSwKKysJCQkgIHN0cmluZykgOiBOVUxMOworK30KKysKKytjb25z dCBjaGFyICoKKytiYXNlX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCisreworKyAgY29uc3QgY2hh ciAqYmFzZTsKKysKKysjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0pCisr ICAvKiBTa2lwIG92ZXIgdGhlIGRpc2sgbmFtZSBpbiBNU0RPUyBwYXRobmFtZXMuICovCisrICBp ZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNoYXIpIG5hbWVbMF0pICYmIG5hbWVbMV0gPT0gJzonKQor KyAgICBuYW1lICs9IDI7CisrI2VuZGlmCisrCisrICBmb3IgKGJhc2UgPSBuYW1lOyAqbmFtZTsg bmFtZSsrKQorKyAgICBpZiAoSVNfRElSX1NFUEFSQVRPUiAoKm5hbWUpKQorKyAgICAgIGJhc2Ug PSBuYW1lICsgMTsKKysgIHJldHVybiBiYXNlOworK30KKysKKytpbnQKKytjaGVja19leGVjdXRh YmxlIChjb25zdCBjaGFyICpwYXRoKQorK3sKKysgIHN0cnVjdCBzdGF0IHN0OworKworKyAgbHRf ZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywgIihjaGVja19leGVjdXRhYmxlKTogJXNc biIsCisrICAgICAgICAgICAgICAgICAgbm9uZW1wdHkgKHBhdGgpKTsKKysgIGlmICgoIXBhdGgp IHx8ICghKnBhdGgpKQorKyAgICByZXR1cm4gMDsKKysKKysgIGlmICgoc3RhdCAocGF0aCwgJnN0 KSA+PSAwKQorKyAgICAgICYmIChzdC5zdF9tb2RlICYgKFNfSVhVU1IgfCBTX0lYR1JQIHwgU19J WE9USCkpKQorKyAgICByZXR1cm4gMTsKKysgIGVsc2UKKysgICAgcmV0dXJuIDA7CisrfQorKwor K2ludAorK21ha2VfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0aCkKKyt7CisrICBpbnQgcnZh bCA9IDA7CisrICBzdHJ1Y3Qgc3RhdCBzdDsKKysKKysgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVf XywgX19MSU5FX18sICIobWFrZV9leGVjdXRhYmxlKTogJXNcbiIsCisrICAgICAgICAgICAgICAg ICAgbm9uZW1wdHkgKHBhdGgpKTsKKysgIGlmICgoIXBhdGgpIHx8ICghKnBhdGgpKQorKyAgICBy ZXR1cm4gMDsKKysKKysgIGlmIChzdGF0IChwYXRoLCAmc3QpID49IDApCisrICAgIHsKKysgICAg ICBydmFsID0gY2htb2QgKHBhdGgsIHN0LnN0X21vZGUgfCBTX0lYT1RIIHwgU19JWEdSUCB8IFNf SVhVU1IpOworKyAgICB9CisrICByZXR1cm4gcnZhbDsKKyt9CisrCisrLyogU2VhcmNoZXMgZm9y IHRoZSBmdWxsIHBhdGggb2YgdGhlIHdyYXBwZXIuICBSZXR1cm5zCisrICAgbmV3bHkgYWxsb2Nh dGVkIGZ1bGwgcGF0aCBuYW1lIGlmIGZvdW5kLCBOVUxMIG90aGVyd2lzZQorKyAgIERvZXMgbm90 IGNoYXNlIHN5bWxpbmtzLCBldmVuIG9uIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQgdGhlbS4KKysq LworK2NoYXIgKgorK2ZpbmRfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqd3JhcHBlcikKKyt7Cisr ICBpbnQgaGFzX3NsYXNoID0gMDsKKysgIGNvbnN0IGNoYXIgKnA7CisrICBjb25zdCBjaGFyICpw X25leHQ7CisrICAvKiBzdGF0aWMgYnVmZmVyIGZvciBnZXRjd2QgKi8KKysgIGNoYXIgdG1wW0xU X1BBVEhNQVggKyAxXTsKKysgIGludCB0bXBfbGVuOworKyAgY2hhciAqY29uY2F0X25hbWU7Cisr CisrICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLCAiKGZpbmRfZXhlY3V0YWJs ZSk6ICVzXG4iLAorKyAgICAgICAgICAgICAgICAgIG5vbmVtcHR5ICh3cmFwcGVyKSk7CisrCisr ICBpZiAoKHdyYXBwZXIgPT0gTlVMTCkgfHwgKCp3cmFwcGVyID09ICdcMCcpKQorKyAgICByZXR1 cm4gTlVMTDsKKysKKysgIC8qIEFic29sdXRlIHBhdGg/ICovCisrI2lmIGRlZmluZWQgKEhBVkVf RE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQorKyAgaWYgKGlzYWxwaGEgKCh1bnNpZ25lZCBjaGFyKSB3 cmFwcGVyWzBdKSAmJiB3cmFwcGVyWzFdID09ICc6JykKKysgICAgeworKyAgICAgIGNvbmNhdF9u YW1lID0geHN0cmR1cCAod3JhcHBlcik7CisrICAgICAgaWYgKGNoZWNrX2V4ZWN1dGFibGUgKGNv bmNhdF9uYW1lKSkKKysJcmV0dXJuIGNvbmNhdF9uYW1lOworKyAgICAgIFhGUkVFIChjb25jYXRf bmFtZSk7CisrICAgIH0KKysgIGVsc2UKKysgICAgeworKyNlbmRpZgorKyAgICAgIGlmIChJU19E SVJfU0VQQVJBVE9SICh3cmFwcGVyWzBdKSkKKysJeworKwkgIGNvbmNhdF9uYW1lID0geHN0cmR1 cCAod3JhcHBlcik7CisrCSAgaWYgKGNoZWNrX2V4ZWN1dGFibGUgKGNvbmNhdF9uYW1lKSkKKysJ ICAgIHJldHVybiBjb25jYXRfbmFtZTsKKysJICBYRlJFRSAoY29uY2F0X25hbWUpOworKwl9Cisr I2lmIGRlZmluZWQgKEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQorKyAgICB9CisrI2VuZGlm CisrCisrICBmb3IgKHAgPSB3cmFwcGVyOyAqcDsgcCsrKQorKyAgICBpZiAoKnAgPT0gJy8nKQor KyAgICAgIHsKKysJaGFzX3NsYXNoID0gMTsKKysJYnJlYWs7CisrICAgICAgfQorKyAgaWYgKCFo YXNfc2xhc2gpCisrICAgIHsKKysgICAgICAvKiBubyBzbGFzaGVzOyBzZWFyY2ggUEFUSCAqLwor KyAgICAgIGNvbnN0IGNoYXIgKnBhdGggPSBnZXRlbnYgKCJQQVRIIik7CisrICAgICAgaWYgKHBh dGggIT0gTlVMTCkKKysJeworKwkgIGZvciAocCA9IHBhdGg7ICpwOyBwID0gcF9uZXh0KQorKwkg ICAgeworKwkgICAgICBjb25zdCBjaGFyICpxOworKwkgICAgICBzaXplX3QgcF9sZW47CisrCSAg ICAgIGZvciAocSA9IHA7ICpxOyBxKyspCisrCQlpZiAoSVNfUEFUSF9TRVBBUkFUT1IgKCpxKSkK KysJCSAgYnJlYWs7CisrCSAgICAgIHBfbGVuID0gcSAtIHA7CisrCSAgICAgIHBfbmV4dCA9ICgq cSA9PSAnXDAnID8gcSA6IHEgKyAxKTsKKysJICAgICAgaWYgKHBfbGVuID09IDApCisrCQl7Cisr CQkgIC8qIGVtcHR5IHBhdGg6IGN1cnJlbnQgZGlyZWN0b3J5ICovCisrCQkgIGlmIChnZXRjd2Qg KHRtcCwgTFRfUEFUSE1BWCkgPT0gTlVMTCkKKysJCSAgICBsdF9mYXRhbCAoX19GSUxFX18sIF9f TElORV9fLCAiZ2V0Y3dkIGZhaWxlZDogJXMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5vbm51bGwgKHN0cmVycm9yIChlcnJubykpKTsKKysJCSAgdG1wX2xlbiA9IHN0cmxlbiAo dG1wKTsKKysJCSAgY29uY2F0X25hbWUgPQorKwkJICAgIFhNQUxMT0MgKGNoYXIsIHRtcF9sZW4g KyAxICsgc3RybGVuICh3cmFwcGVyKSArIDEpOworKwkJICBtZW1jcHkgKGNvbmNhdF9uYW1lLCB0 bXAsIHRtcF9sZW4pOworKwkJICBjb25jYXRfbmFtZVt0bXBfbGVuXSA9ICcvJzsKKysJCSAgc3Ry Y3B5IChjb25jYXRfbmFtZSArIHRtcF9sZW4gKyAxLCB3cmFwcGVyKTsKKysJCX0KKysJICAgICAg ZWxzZQorKwkJeworKwkJICBjb25jYXRfbmFtZSA9CisrCQkgICAgWE1BTExPQyAoY2hhciwgcF9s ZW4gKyAxICsgc3RybGVuICh3cmFwcGVyKSArIDEpOworKwkJICBtZW1jcHkgKGNvbmNhdF9uYW1l LCBwLCBwX2xlbik7CisrCQkgIGNvbmNhdF9uYW1lW3BfbGVuXSA9ICcvJzsKKysJCSAgc3RyY3B5 IChjb25jYXRfbmFtZSArIHBfbGVuICsgMSwgd3JhcHBlcik7CisrCQl9CisrCSAgICAgIGlmIChj aGVja19leGVjdXRhYmxlIChjb25jYXRfbmFtZSkpCisrCQlyZXR1cm4gY29uY2F0X25hbWU7Cisr CSAgICAgIFhGUkVFIChjb25jYXRfbmFtZSk7CisrCSAgICB9CisrCX0KKysgICAgICAvKiBub3Qg Zm91bmQgaW4gUEFUSDsgYXNzdW1lIGN1cmRpciAqLworKyAgICB9CisrICAvKiBSZWxhdGl2ZSBw YXRoIHwgbm90IGZvdW5kIGluIHBhdGg6IHByZXBlbmQgY3dkICovCisrICBpZiAoZ2V0Y3dkICh0 bXAsIExUX1BBVEhNQVgpID09IE5VTEwpCisrICAgIGx0X2ZhdGFsIChfX0ZJTEVfXywgX19MSU5F X18sICJnZXRjd2QgZmFpbGVkOiAlcyIsCisrICAgICAgICAgICAgICBub25udWxsIChzdHJlcnJv ciAoZXJybm8pKSk7CisrICB0bXBfbGVuID0gc3RybGVuICh0bXApOworKyAgY29uY2F0X25hbWUg PSBYTUFMTE9DIChjaGFyLCB0bXBfbGVuICsgMSArIHN0cmxlbiAod3JhcHBlcikgKyAxKTsKKysg IG1lbWNweSAoY29uY2F0X25hbWUsIHRtcCwgdG1wX2xlbik7CisrICBjb25jYXRfbmFtZVt0bXBf bGVuXSA9ICcvJzsKKysgIHN0cmNweSAoY29uY2F0X25hbWUgKyB0bXBfbGVuICsgMSwgd3JhcHBl cik7CisrCisrICBpZiAoY2hlY2tfZXhlY3V0YWJsZSAoY29uY2F0X25hbWUpKQorKyAgICByZXR1 cm4gY29uY2F0X25hbWU7CisrICBYRlJFRSAoY29uY2F0X25hbWUpOworKyAgcmV0dXJuIE5VTEw7 CisrfQorKworK2NoYXIgKgorK2NoYXNlX3N5bWxpbmtzIChjb25zdCBjaGFyICpwYXRoc3BlYykK Kyt7CisrI2lmbmRlZiBTX0lTTE5LCisrICByZXR1cm4geHN0cmR1cCAocGF0aHNwZWMpOworKyNl bHNlCisrICBjaGFyIGJ1ZltMVF9QQVRITUFYXTsKKysgIHN0cnVjdCBzdGF0IHM7CisrICBjaGFy ICp0bXBfcGF0aHNwZWMgPSB4c3RyZHVwIChwYXRoc3BlYyk7CisrICBjaGFyICpwOworKyAgaW50 IGhhc19zeW1saW5rcyA9IDA7CisrICB3aGlsZSAoc3RybGVuICh0bXBfcGF0aHNwZWMpICYmICFo YXNfc3ltbGlua3MpCisrICAgIHsKKysgICAgICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9f TElORV9fLAorKwkJICAgICAgImNoZWNraW5nIHBhdGggY29tcG9uZW50IGZvciBzeW1saW5rczog JXNcbiIsCisrCQkgICAgICB0bXBfcGF0aHNwZWMpOworKyAgICAgIGlmIChsc3RhdCAodG1wX3Bh dGhzcGVjLCAmcykgPT0gMCkKKysJeworKwkgIGlmIChTX0lTTE5LIChzLnN0X21vZGUpICE9IDAp CisrCSAgICB7CisrCSAgICAgIGhhc19zeW1saW5rcyA9IDE7CisrCSAgICAgIGJyZWFrOworKwkg ICAgfQorKworKwkgIC8qIHNlYXJjaCBiYWNrd2FyZHMgZm9yIGxhc3QgRElSX1NFUEFSQVRPUiAq LworKwkgIHAgPSB0bXBfcGF0aHNwZWMgKyBzdHJsZW4gKHRtcF9wYXRoc3BlYykgLSAxOworKwkg IHdoaWxlICgocCA+IHRtcF9wYXRoc3BlYykgJiYgKCFJU19ESVJfU0VQQVJBVE9SICgqcCkpKQor KwkgICAgcC0tOworKwkgIGlmICgocCA9PSB0bXBfcGF0aHNwZWMpICYmICghSVNfRElSX1NFUEFS QVRPUiAoKnApKSkKKysJICAgIHsKKysJICAgICAgLyogbm8gbW9yZSBESVJfU0VQQVJBVE9SUyBs ZWZ0ICovCisrCSAgICAgIGJyZWFrOworKwkgICAgfQorKwkgICpwID0gJ1wwJzsKKysJfQorKyAg ICAgIGVsc2UKKysJeworKwkgIGx0X2ZhdGFsIChfX0ZJTEVfXywgX19MSU5FX18sCisrCQkgICAg ImVycm9yIGFjY2Vzc2luZyBmaWxlIFwiJXNcIjogJXMiLAorKwkJICAgIHRtcF9wYXRoc3BlYywg bm9ubnVsbCAoc3RyZXJyb3IgKGVycm5vKSkpOworKwl9CisrICAgIH0KKysgIFhGUkVFICh0bXBf cGF0aHNwZWMpOworKworKyAgaWYgKCFoYXNfc3ltbGlua3MpCisrICAgIHsKKysgICAgICByZXR1 cm4geHN0cmR1cCAocGF0aHNwZWMpOworKyAgICB9CisrCisrICB0bXBfcGF0aHNwZWMgPSByZWFs cGF0aCAocGF0aHNwZWMsIGJ1Zik7CisrICBpZiAodG1wX3BhdGhzcGVjID09IDApCisrICAgIHsK KysgICAgICBsdF9mYXRhbCAoX19GSUxFX18sIF9fTElORV9fLAorKwkJImNvdWxkIG5vdCBmb2xs b3cgc3ltbGlua3MgZm9yICVzIiwgcGF0aHNwZWMpOworKyAgICB9CisrICByZXR1cm4geHN0cmR1 cCAodG1wX3BhdGhzcGVjKTsKKysjZW5kaWYKKyt9CisrCisrY2hhciAqCisrc3RyZW5kemFwIChj aGFyICpzdHIsIGNvbnN0IGNoYXIgKnBhdCkKKyt7CisrICBzaXplX3QgbGVuLCBwYXRsZW47Cisr CisrICBhc3NlcnQgKHN0ciAhPSBOVUxMKTsKKysgIGFzc2VydCAocGF0ICE9IE5VTEwpOworKwor KyAgbGVuID0gc3RybGVuIChzdHIpOworKyAgcGF0bGVuID0gc3RybGVuIChwYXQpOworKworKyAg aWYgKHBhdGxlbiA8PSBsZW4pCisrICAgIHsKKysgICAgICBzdHIgKz0gbGVuIC0gcGF0bGVuOwor KyAgICAgIGlmIChzdHJjbXAgKHN0ciwgcGF0KSA9PSAwKQorKwkqc3RyID0gJ1wwJzsKKysgICAg fQorKyAgcmV0dXJuIHN0cjsKKyt9CisrCisrdm9pZAorK2x0X2RlYnVncHJpbnRmIChjb25zdCBj aGFyICpmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciAqZm10LCAuLi4pCisreworKyAgdmFfbGlz dCBhcmdzOworKyAgaWYgKGx0X2RlYnVnKQorKyAgICB7CisrICAgICAgKHZvaWQpIGZwcmludGYg KHN0ZGVyciwgIiVzOiVzOiVkOiAiLCBwcm9ncmFtX25hbWUsIGZpbGUsIGxpbmUpOworKyAgICAg IHZhX3N0YXJ0IChhcmdzLCBmbXQpOworKyAgICAgICh2b2lkKSB2ZnByaW50ZiAoc3RkZXJyLCBm bXQsIGFyZ3MpOworKyAgICAgIHZhX2VuZCAoYXJncyk7CisrICAgIH0KKyt9CisrCisrc3RhdGlj IHZvaWQKKytsdF9lcnJvcl9jb3JlIChpbnQgZXhpdF9zdGF0dXMsIGNvbnN0IGNoYXIgKmZpbGUs CisrCSAgICAgICBpbnQgbGluZSwgY29uc3QgY2hhciAqbW9kZSwKKysJICAgICAgIGNvbnN0IGNo YXIgKm1lc3NhZ2UsIHZhX2xpc3QgYXApCisreworKyAgZnByaW50ZiAoc3RkZXJyLCAiJXM6JXM6 JWQ6ICVzOiAiLCBwcm9ncmFtX25hbWUsIGZpbGUsIGxpbmUsIG1vZGUpOworKyAgdmZwcmludGYg KHN0ZGVyciwgbWVzc2FnZSwgYXApOworKyAgZnByaW50ZiAoc3RkZXJyLCAiLlxuIik7CisrCisr ICBpZiAoZXhpdF9zdGF0dXMgPj0gMCkKKysgICAgZXhpdCAoZXhpdF9zdGF0dXMpOworK30KKysK Kyt2b2lkCisrbHRfZmF0YWwgKGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFy ICptZXNzYWdlLCAuLi4pCisreworKyAgdmFfbGlzdCBhcDsKKysgIHZhX3N0YXJ0IChhcCwgbWVz c2FnZSk7CisrICBsdF9lcnJvcl9jb3JlIChFWElUX0ZBSUxVUkUsIGZpbGUsIGxpbmUsICJGQVRB TCIsIG1lc3NhZ2UsIGFwKTsKKysgIHZhX2VuZCAoYXApOworK30KKysKKytzdGF0aWMgY29uc3Qg Y2hhciAqCisrbm9ubnVsbCAoY29uc3QgY2hhciAqcykKKyt7CisrICByZXR1cm4gcyA/IHMgOiAi KG51bGwpIjsKKyt9CisrCisrc3RhdGljIGNvbnN0IGNoYXIgKgorK25vbmVtcHR5IChjb25zdCBj aGFyICpzKQorK3sKKysgIHJldHVybiAocyAmJiAhKnMpID8gIihlbXB0eSkiIDogbm9ubnVsbCAo cyk7CisrfQorKworK3ZvaWQKKytsdF9zZXRlbnYgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNo YXIgKnZhbHVlKQorK3sKKysgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sCisr CQkgICIobHRfc2V0ZW52KSBzZXR0aW5nICclcycgdG8gJyVzJ1xuIiwKKysgICAgICAgICAgICAg ICAgICBub25udWxsIChuYW1lKSwgbm9ubnVsbCAodmFsdWUpKTsKKysgIHsKKysjaWZkZWYgSEFW RV9TRVRFTlYKKysgICAgLyogYWx3YXlzIG1ha2UgYSBjb3B5LCBmb3IgY29uc2lzdGVuY3kgd2l0 aCAhSEFWRV9TRVRFTlYgKi8KKysgICAgY2hhciAqc3RyID0geHN0cmR1cCAodmFsdWUpOworKyAg ICBzZXRlbnYgKG5hbWUsIHN0ciwgMSk7CisrI2Vsc2UKKysgICAgaW50IGxlbiA9IHN0cmxlbiAo bmFtZSkgKyAxICsgc3RybGVuICh2YWx1ZSkgKyAxOworKyAgICBjaGFyICpzdHIgPSBYTUFMTE9D IChjaGFyLCBsZW4pOworKyAgICBzcHJpbnRmIChzdHIsICIlcz0lcyIsIG5hbWUsIHZhbHVlKTsK KysgICAgaWYgKHB1dGVudiAoc3RyKSAhPSBFWElUX1NVQ0NFU1MpCisrICAgICAgeworKyAgICAg ICAgWEZSRUUgKHN0cik7CisrICAgICAgfQorKyNlbmRpZgorKyAgfQorK30KKysKKytjaGFyICoK KytsdF9leHRlbmRfc3RyIChjb25zdCBjaGFyICpvcmlnX3ZhbHVlLCBjb25zdCBjaGFyICphZGQs IGludCB0b19lbmQpCisreworKyAgY2hhciAqbmV3X3ZhbHVlOworKyAgaWYgKG9yaWdfdmFsdWUg JiYgKm9yaWdfdmFsdWUpCisrICAgIHsKKysgICAgICBpbnQgb3JpZ192YWx1ZV9sZW4gPSBzdHJs ZW4gKG9yaWdfdmFsdWUpOworKyAgICAgIGludCBhZGRfbGVuID0gc3RybGVuIChhZGQpOworKyAg ICAgIG5ld192YWx1ZSA9IFhNQUxMT0MgKGNoYXIsIGFkZF9sZW4gKyBvcmlnX3ZhbHVlX2xlbiAr IDEpOworKyAgICAgIGlmICh0b19lbmQpCisrICAgICAgICB7CisrICAgICAgICAgIHN0cmNweSAo bmV3X3ZhbHVlLCBvcmlnX3ZhbHVlKTsKKysgICAgICAgICAgc3RyY3B5IChuZXdfdmFsdWUgKyBv cmlnX3ZhbHVlX2xlbiwgYWRkKTsKKysgICAgICAgIH0KKysgICAgICBlbHNlCisrICAgICAgICB7 CisrICAgICAgICAgIHN0cmNweSAobmV3X3ZhbHVlLCBhZGQpOworKyAgICAgICAgICBzdHJjcHkg KG5ld192YWx1ZSArIGFkZF9sZW4sIG9yaWdfdmFsdWUpOworKyAgICAgICAgfQorKyAgICB9Cisr ICBlbHNlCisrICAgIHsKKysgICAgICBuZXdfdmFsdWUgPSB4c3RyZHVwIChhZGQpOworKyAgICB9 CisrICByZXR1cm4gbmV3X3ZhbHVlOworK30KKysKKyt2b2lkCisrbHRfdXBkYXRlX2V4ZV9wYXRo IChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSkKKyt7CisrICBsdF9kZWJ1Z3By aW50ZiAoX19GSUxFX18sIF9fTElORV9fLAorKwkJICAiKGx0X3VwZGF0ZV9leGVfcGF0aCkgbW9k aWZ5aW5nICclcycgYnkgcHJlcGVuZGluZyAnJXMnXG4iLAorKyAgICAgICAgICAgICAgICAgIG5v bm51bGwgKG5hbWUpLCBub25udWxsICh2YWx1ZSkpOworKworKyAgaWYgKG5hbWUgJiYgKm5hbWUg JiYgdmFsdWUgJiYgKnZhbHVlKQorKyAgICB7CisrICAgICAgY2hhciAqbmV3X3ZhbHVlID0gbHRf ZXh0ZW5kX3N0ciAoZ2V0ZW52IChuYW1lKSwgdmFsdWUsIDApOworKyAgICAgIC8qIHNvbWUgc3lz dGVtcyBjYW4ndCBjb3BlIHdpdGggYSAnOictdGVybWluYXRlZCBwYXRoICMnICovCisrICAgICAg aW50IGxlbiA9IHN0cmxlbiAobmV3X3ZhbHVlKTsKKysgICAgICB3aGlsZSAoKChsZW4gPSBzdHJs ZW4gKG5ld192YWx1ZSkpID4gMCkgJiYgSVNfUEFUSF9TRVBBUkFUT1IgKG5ld192YWx1ZVtsZW4t MV0pKQorKyAgICAgICAgeworKyAgICAgICAgICBuZXdfdmFsdWVbbGVuLTFdID0gJ1wwJzsKKysg ICAgICAgIH0KKysgICAgICBsdF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7CisrICAgICAgWEZS RUUgKG5ld192YWx1ZSk7CisrICAgIH0KKyt9CisrCisrdm9pZAorK2x0X3VwZGF0ZV9saWJfcGF0 aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCisreworKyAgbHRfZGVidWdw cmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywKKysJCSAgIihsdF91cGRhdGVfbGliX3BhdGgpIG1v ZGlmeWluZyAnJXMnIGJ5IHByZXBlbmRpbmcgJyVzJ1xuIiwKKysgICAgICAgICAgICAgICAgICBu b25udWxsIChuYW1lKSwgbm9ubnVsbCAodmFsdWUpKTsKKysKKysgIGlmIChuYW1lICYmICpuYW1l ICYmIHZhbHVlICYmICp2YWx1ZSkKKysgICAgeworKyAgICAgIGNoYXIgKm5ld192YWx1ZSA9IGx0 X2V4dGVuZF9zdHIgKGdldGVudiAobmFtZSksIHZhbHVlLCAwKTsKKysgICAgICBsdF9zZXRlbnYg KG5hbWUsIG5ld192YWx1ZSk7CisrICAgICAgWEZSRUUgKG5ld192YWx1ZSk7CisrICAgIH0KKyt9 CisrCisrRU9GCisrCSAgICBjYXNlICRob3N0X29zIGluCisrCSAgICAgIG1pbmd3KikKKysJCWNh dCA8PCJFT0YiCisrCisrLyogUHJlcGFyZXMgYW4gYXJndW1lbnQgdmVjdG9yIGJlZm9yZSBjYWxs aW5nIHNwYXduKCkuCisrICAgTm90ZSB0aGF0IHNwYXduKCkgZG9lcyBub3QgYnkgaXRzZWxmIGNh bGwgdGhlIGNvbW1hbmQgaW50ZXJwcmV0ZXIKKysgICAgIChnZXRlbnYgKCJDT01TUEVDIikgIT0g TlVMTCA/IGdldGVudiAoIkNPTVNQRUMiKSA6CisrICAgICAgKHsgT1NWRVJTSU9OSU5GTyB2OyB2 LmR3T1NWZXJzaW9uSW5mb1NpemUgPSBzaXplb2YoT1NWRVJTSU9OSU5GTyk7CisrICAgICAgICAg R2V0VmVyc2lvbkV4KCZ2KTsKKysgICAgICAgICB2LmR3UGxhdGZvcm1JZCA9PSBWRVJfUExBVEZP Uk1fV0lOMzJfTlQ7CisrICAgICAgfSkgPyAiY21kLmV4ZSIgOiAiY29tbWFuZC5jb20iKS4KKysg ICBJbnN0ZWFkIGl0IHNpbXBseSBjb25jYXRlbmF0ZXMgdGhlIGFyZ3VtZW50cywgc2VwYXJhdGVk IGJ5ICcgJywgYW5kIGNhbGxzCisrICAgQ3JlYXRlUHJvY2VzcygpLiAgV2UgbXVzdCBxdW90ZSB0 aGUgYXJndW1lbnRzIHNpbmNlIFdpbjMyIENyZWF0ZVByb2Nlc3MoKQorKyAgIGludGVycHJldHMg Y2hhcmFjdGVycyBsaWtlICcgJywgJ1x0JywgJ1xcJywgJyInIChidXQgbm90ICc8JyBhbmQgJz4n KSBpbiBhCisrICAgc3BlY2lhbCB3YXk6CisrICAgLSBTcGFjZSBhbmQgdGFiIGFyZSBpbnRlcnBy ZXRlZCBhcyBkZWxpbWl0ZXJzLiBUaGV5IGFyZSBub3QgdHJlYXRlZCBhcworKyAgICAgZGVsaW1p dGVycyBpZiB0aGV5IGFyZSBzdXJyb3VuZGVkIGJ5IGRvdWJsZSBxdW90ZXM6ICIuLi4iLgorKyAg IC0gVW5lc2NhcGVkIGRvdWJsZSBxdW90ZXMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgaW5wdXQuIFRo ZWlyIG9ubHkgZWZmZWN0IGlzCisrICAgICB0aGF0IHdpdGhpbiBkb3VibGUgcXVvdGVzLCBzcGFj ZSBhbmQgdGFiIGFyZSB0cmVhdGVkIGxpa2Ugbm9ybWFsCisrICAgICBjaGFyYWN0ZXJzLgorKyAg IC0gQmFja3NsYXNoZXMgbm90IGZvbGxvd2VkIGJ5IGRvdWJsZSBxdW90ZXMgYXJlIG5vdCBzcGVj aWFsLgorKyAgIC0gQnV0IDIqbisxIGJhY2tzbGFzaGVzIGZvbGxvd2VkIGJ5IGEgZG91YmxlIHF1 b3RlIGJlY29tZQorKyAgICAgbiBiYWNrc2xhc2hlcyBmb2xsb3dlZCBieSBhIGRvdWJsZSBxdW90 ZSAobiA+PSAwKToKKysgICAgICAgXCIgLT4gIgorKyAgICAgICBcXFwiIC0+IFwiCisrICAgICAg IFxcXFxcIiAtPiBcXCIKKysgKi8KKysjZGVmaW5lIFNIRUxMX1NQRUNJQUxfQ0hBUlMgIlwiXFwg XDAwMVwwMDJcMDAzXDAwNFwwMDVcMDA2XDAwN1wwMTBcMDExXDAxMlwwMTNcMDE0XDAxNVwwMTZc MDE3XDAyMFwwMjFcMDIyXDAyM1wwMjRcMDI1XDAyNlwwMjdcMDMwXDAzMVwwMzJcMDMzXDAzNFww MzVcMDM2XDAzNyIKKysjZGVmaW5lIFNIRUxMX1NQQUNFX0NIQVJTICIgXDAwMVwwMDJcMDAzXDAw NFwwMDVcMDA2XDAwN1wwMTBcMDExXDAxMlwwMTNcMDE0XDAxNVwwMTZcMDE3XDAyMFwwMjFcMDIy XDAyM1wwMjRcMDI1XDAyNlwwMjdcMDMwXDAzMVwwMzJcMDMzXDAzNFwwMzVcMDM2XDAzNyIKKytj aGFyICoqCisrcHJlcGFyZV9zcGF3biAoY2hhciAqKmFyZ3YpCisreworKyAgc2l6ZV90IGFyZ2M7 CisrICBjaGFyICoqbmV3X2FyZ3Y7CisrICBzaXplX3QgaTsKKysKKysgIC8qIENvdW50IG51bWJl ciBvZiBhcmd1bWVudHMuICAqLworKyAgZm9yIChhcmdjID0gMDsgYXJndlthcmdjXSAhPSBOVUxM OyBhcmdjKyspCisrICAgIDsKKysKKysgIC8qIEFsbG9jYXRlIG5ldyBhcmd1bWVudCB2ZWN0b3Iu ICAqLworKyAgbmV3X2FyZ3YgPSBYTUFMTE9DIChjaGFyICosIGFyZ2MgKyAxKTsKKysKKysgIC8q IFB1dCBxdW90ZWQgYXJndW1lbnRzIGludG8gdGhlIG5ldyBhcmd1bWVudCB2ZWN0b3IuICAqLwor KyAgZm9yIChpID0gMDsgaSA8IGFyZ2M7IGkrKykKKysgICAgeworKyAgICAgIGNvbnN0IGNoYXIg KnN0cmluZyA9IGFyZ3ZbaV07CisrCisrICAgICAgaWYgKHN0cmluZ1swXSA9PSAnXDAnKQorKwlu ZXdfYXJndltpXSA9IHhzdHJkdXAgKCJcIlwiIik7CisrICAgICAgZWxzZSBpZiAoc3RycGJyayAo c3RyaW5nLCBTSEVMTF9TUEVDSUFMX0NIQVJTKSAhPSBOVUxMKQorKwl7CisrCSAgaW50IHF1b3Rl X2Fyb3VuZCA9IChzdHJwYnJrIChzdHJpbmcsIFNIRUxMX1NQQUNFX0NIQVJTKSAhPSBOVUxMKTsK KysJICBzaXplX3QgbGVuZ3RoOworKwkgIHVuc2lnbmVkIGludCBiYWNrc2xhc2hlczsKKysJICBj b25zdCBjaGFyICpzOworKwkgIGNoYXIgKnF1b3RlZF9zdHJpbmc7CisrCSAgY2hhciAqcDsKKysK KysJICBsZW5ndGggPSAwOworKwkgIGJhY2tzbGFzaGVzID0gMDsKKysJICBpZiAocXVvdGVfYXJv dW5kKQorKwkgICAgbGVuZ3RoKys7CisrCSAgZm9yIChzID0gc3RyaW5nOyAqcyAhPSAnXDAnOyBz KyspCisrCSAgICB7CisrCSAgICAgIGNoYXIgYyA9ICpzOworKwkgICAgICBpZiAoYyA9PSAnIicp CisrCQlsZW5ndGggKz0gYmFja3NsYXNoZXMgKyAxOworKwkgICAgICBsZW5ndGgrKzsKKysJICAg ICAgaWYgKGMgPT0gJ1xcJykKKysJCWJhY2tzbGFzaGVzKys7CisrCSAgICAgIGVsc2UKKysJCWJh Y2tzbGFzaGVzID0gMDsKKysJICAgIH0KKysJICBpZiAocXVvdGVfYXJvdW5kKQorKwkgICAgbGVu Z3RoICs9IGJhY2tzbGFzaGVzICsgMTsKKysKKysJICBxdW90ZWRfc3RyaW5nID0gWE1BTExPQyAo Y2hhciwgbGVuZ3RoICsgMSk7CisrCisrCSAgcCA9IHF1b3RlZF9zdHJpbmc7CisrCSAgYmFja3Ns YXNoZXMgPSAwOworKwkgIGlmIChxdW90ZV9hcm91bmQpCisrCSAgICAqcCsrID0gJyInOworKwkg IGZvciAocyA9IHN0cmluZzsgKnMgIT0gJ1wwJzsgcysrKQorKwkgICAgeworKwkgICAgICBjaGFy IGMgPSAqczsKKysJICAgICAgaWYgKGMgPT0gJyInKQorKwkJeworKwkJICB1bnNpZ25lZCBpbnQg ajsKKysJCSAgZm9yIChqID0gYmFja3NsYXNoZXMgKyAxOyBqID4gMDsgai0tKQorKwkJICAgICpw KysgPSAnXFwnOworKwkJfQorKwkgICAgICAqcCsrID0gYzsKKysJICAgICAgaWYgKGMgPT0gJ1xc JykKKysJCWJhY2tzbGFzaGVzKys7CisrCSAgICAgIGVsc2UKKysJCWJhY2tzbGFzaGVzID0gMDsK KysJICAgIH0KKysJICBpZiAocXVvdGVfYXJvdW5kKQorKwkgICAgeworKwkgICAgICB1bnNpZ25l ZCBpbnQgajsKKysJICAgICAgZm9yIChqID0gYmFja3NsYXNoZXM7IGogPiAwOyBqLS0pCisrCQkq cCsrID0gJ1xcJzsKKysJICAgICAgKnArKyA9ICciJzsKKysJICAgIH0KKysJICAqcCA9ICdcMCc7 CisrCisrCSAgbmV3X2FyZ3ZbaV0gPSBxdW90ZWRfc3RyaW5nOworKwl9CisrICAgICAgZWxzZQor KwluZXdfYXJndltpXSA9IChjaGFyICopIHN0cmluZzsKKysgICAgfQorKyAgbmV3X2FyZ3ZbYXJn Y10gPSBOVUxMOworKworKyAgcmV0dXJuIG5ld19hcmd2OworK30KKytFT0YKKysJCTs7CisrCSAg ICBlc2FjCisrCisrICAgICAgICAgICAgY2F0IDw8IkVPRiIKKyt2b2lkIGx0X2R1bXBfc2NyaXB0 IChGSUxFKiBmKQorK3sKKytFT0YKKysJICAgIGZ1bmNfZW1pdF93cmFwcGVyIHllcyB8CisrICAg ICAgICAgICAgICAkU0VEIC1lICdzL1woW1xcIl1cKS9cXFwxL2cnIFwKKysJICAgICAgICAgICAt ZSAncy9eLyAgZnB1dHMgKCIvJyAtZSAncy8kL1xcbiIsIGYpOy8nCisrCisrICAgICAgICAgICAg Y2F0IDw8IkVPRiIKKyt9CisrRU9GCisrfQorKyMgZW5kOiBmdW5jX2VtaXRfY3dyYXBwZXJleGVf c3JjCisrCisrIyBmdW5jX3dpbjMyX2ltcG9ydF9saWJfcCBBUkcKKysjIFRydWUgaWYgQVJHIGlz IGFuIGltcG9ydCBsaWIsIGFzIGluZGljYXRlZCBieSAkZmlsZV9tYWdpY19jbWQKKytmdW5jX3dp bjMyX2ltcG9ydF9saWJfcCAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBjYXNlIGBldmFs ICRmaWxlX21hZ2ljX2NtZCBcIlwkMVwiIDI+L2Rldi9udWxsIHwgJFNFRCAtZSAxMHFgIGluCisr ICAgICppbXBvcnQqKSA6IDs7CisrICAgICopIGZhbHNlIDs7CisrICAgIGVzYWMKKyt9CisrCisr IyBmdW5jX21vZGVfbGluayBhcmcuLi4KKytmdW5jX21vZGVfbGluayAoKQorK3sKKysgICAgJG9w dF9kZWJ1ZworKyAgICBjYXNlICRob3N0IGluCisrICAgICotKi1jeWd3aW4qIHwgKi0qLW1pbmd3 KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi1jZWdjYyopCisrICAgICAgIyBJdCBpcyBpbXBv c3NpYmxlIHRvIGxpbmsgYSBkbGwgd2l0aG91dCB0aGlzIHNldHRpbmcsIGFuZAorKyAgICAgICMg d2Ugc2hvdWxkbid0IGZvcmNlIHRoZSBtYWtlZmlsZSBtYWludGFpbmVyIHRvIGZpZ3VyZSBvdXQK KysgICAgICAjIHdoaWNoIHN5c3RlbSB3ZSBhcmUgY29tcGlsaW5nIGZvciBpbiBvcmRlciB0byBw YXNzIGFuIGV4dHJhCisrICAgICAgIyBmbGFnIGZvciBldmVyeSBsaWJ0b29sIGludm9jYXRpb24u CisrICAgICAgIyBhbGxvd191bmRlZmluZWQ9bm8KKysKKysgICAgICAjIEZJWE1FOiBVbmZvcnR1 bmF0ZWx5LCB0aGVyZSBhcmUgcHJvYmxlbXMgd2l0aCB0aGUgYWJvdmUgd2hlbiB0cnlpbmcKKysg ICAgICAjIHRvIG1ha2UgYSBkbGwgd2hpY2ggaGFzIHVuZGVmaW5lZCBzeW1ib2xzLCBpbiB3aGlj aCBjYXNlIG5vdAorKyAgICAgICMgZXZlbiBhIHN0YXRpYyBsaWJyYXJ5IGlzIGJ1aWx0LiAgRm9y IG5vdywgd2UgbmVlZCB0byBzcGVjaWZ5CisrICAgICAgIyAtbm8tdW5kZWZpbmVkIG9uIHRoZSBs aWJ0b29sIGxpbmsgbGluZSB3aGVuIHdlIGNhbiBiZSBjZXJ0YWluCisrICAgICAgIyB0aGF0IGFs bCBzeW1ib2xzIGFyZSBzYXRpc2ZpZWQsIG90aGVyd2lzZSB3ZSBnZXQgYSBzdGF0aWMgbGlicmFy eS4KKysgICAgICBhbGxvd191bmRlZmluZWQ9eWVzCisrICAgICAgOzsKKysgICAgKikKKysgICAg ICBhbGxvd191bmRlZmluZWQ9eWVzCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICBsaWJ0b29s X2FyZ3M9JG5vbm9wdAorKyAgICBiYXNlX2NvbXBpbGU9IiRub25vcHQgJEAiCisrICAgIGNvbXBp bGVfY29tbWFuZD0kbm9ub3B0CisrICAgIGZpbmFsaXplX2NvbW1hbmQ9JG5vbm9wdAorKworKyAg ICBjb21waWxlX3JwYXRoPQorKyAgICBmaW5hbGl6ZV9ycGF0aD0KKysgICAgY29tcGlsZV9zaGxp YnBhdGg9CisrICAgIGZpbmFsaXplX3NobGlicGF0aD0KKysgICAgY29udmVuaWVuY2U9CisrICAg IG9sZF9jb252ZW5pZW5jZT0KKysgICAgZGVwbGlicz0KKysgICAgb2xkX2RlcGxpYnM9CisrICAg IGNvbXBpbGVyX2ZsYWdzPQorKyAgICBsaW5rZXJfZmxhZ3M9CisrICAgIGRsbHNlYXJjaHBhdGg9 CisrICAgIGxpYl9zZWFyY2hfcGF0aD1gcHdkYAorKyAgICBpbnN0X3ByZWZpeF9kaXI9CisrICAg IG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPQorKworKyAgICBhdm9pZF92ZXJzaW9uPW5vCisr ICAgIGJpbmRpcj0KKysgICAgZGxmaWxlcz0KKysgICAgZGxwcmVmaWxlcz0KKysgICAgZGxzZWxm PW5vCisrICAgIGV4cG9ydF9keW5hbWljPW5vCisrICAgIGV4cG9ydF9zeW1ib2xzPQorKyAgICBl eHBvcnRfc3ltYm9sc19yZWdleD0KKysgICAgZ2VuZXJhdGVkPQorKyAgICBsaWJvYmpzPQorKyAg ICBsdGxpYnM9CisrICAgIG1vZHVsZT1ubworKyAgICBub19pbnN0YWxsPW5vCisrICAgIG9ianM9 CisrICAgIG5vbl9waWNfb2JqZWN0cz0KKysgICAgcHJlY2lvdXNfZmlsZXNfcmVnZXg9CisrICAg IHByZWZlcl9zdGF0aWNfbGlicz1ubworKyAgICBwcmVsb2FkPW5vCisrICAgIHByZXY9CisrICAg IHByZXZhcmc9CisrICAgIHJlbGVhc2U9CisrICAgIHJwYXRoPQorKyAgICB4cnBhdGg9CisrICAg IHBlcm1fcnBhdGg9CisrICAgIHRlbXBfcnBhdGg9CisrICAgIHRocmVhZF9zYWZlPW5vCisrICAg IHZpbmZvPQorKyAgICB2aW5mb19udW1iZXI9bm8KKysgICAgd2Vha19saWJzPQorKyAgICBzaW5n bGVfbW9kdWxlPSIke3dsfS1zaW5nbGVfbW9kdWxlIgorKyAgICBmdW5jX2luZmVyX3RhZyAkYmFz ZV9jb21waWxlCisrCisrICAgICMgV2UgbmVlZCB0byBrbm93IC1zdGF0aWMsIHRvIGdldCB0aGUg cmlnaHQgb3V0cHV0IGZpbGVuYW1lcy4KKysgICAgZm9yIGFyZworKyAgICBkbworKyAgICAgIGNh c2UgJGFyZyBpbgorKyAgICAgIC1zaGFyZWQpCisrCXRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMi ICE9IHllcyAmJiBcCisrCSAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJjYW4gbm90IGJ1aWxk IGEgc2hhcmVkIGxpYnJhcnkiCisrCWJ1aWxkX29sZF9saWJzPW5vCisrCWJyZWFrCisrCTs7Cisr ICAgICAgLWFsbC1zdGF0aWMgfCAtc3RhdGljIHwgLXN0YXRpYy1saWJ0b29sLWxpYnMpCisrCWNh c2UgJGFyZyBpbgorKwktYWxsLXN0YXRpYykKKysJICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9s aWJzIiA9IHllcyAmJiB0ZXN0IC16ICIkbGlua19zdGF0aWNfZmxhZyI7IHRoZW4KKysJICAgIGZ1 bmNfd2FybmluZyAiY29tcGxldGUgc3RhdGljIGxpbmtpbmcgaXMgaW1wb3NzaWJsZSBpbiB0aGlz IGNvbmZpZ3VyYXRpb24iCisrCSAgZmkKKysJICBpZiB0ZXN0IC1uICIkbGlua19zdGF0aWNfZmxh ZyI7IHRoZW4KKysJICAgIGRsb3Blbl9zZWxmPSRkbG9wZW5fc2VsZl9zdGF0aWMKKysJICBmaQor KwkgIHByZWZlcl9zdGF0aWNfbGlicz15ZXMKKysJICA7OworKwktc3RhdGljKQorKwkgIGlmIHRl c3QgLXogIiRwaWNfZmxhZyIgJiYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCisr CSAgICBkbG9wZW5fc2VsZj0kZGxvcGVuX3NlbGZfc3RhdGljCisrCSAgZmkKKysJICBwcmVmZXJf c3RhdGljX2xpYnM9YnVpbHQKKysJICA7OworKwktc3RhdGljLWxpYnRvb2wtbGlicykKKysJICBp ZiB0ZXN0IC16ICIkcGljX2ZsYWciICYmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhl bgorKwkgICAgZGxvcGVuX3NlbGY9JGRsb3Blbl9zZWxmX3N0YXRpYworKwkgIGZpCisrCSAgcHJl ZmVyX3N0YXRpY19saWJzPXllcworKwkgIDs7CisrCWVzYWMKKysJYnVpbGRfbGlidG9vbF9saWJz PW5vCisrCWJ1aWxkX29sZF9saWJzPXllcworKwlicmVhaworKwk7OworKyAgICAgIGVzYWMKKysg ICAgZG9uZQorKworKyAgICAjIFNlZSBpZiBvdXIgc2hhcmVkIGFyY2hpdmVzIGRlcGVuZCBvbiBz dGF0aWMgYXJjaGl2ZXMuCisrICAgIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRz IiAmJiBidWlsZF9vbGRfbGlicz15ZXMKKysKKysgICAgIyBHbyB0aHJvdWdoIHRoZSBhcmd1bWVu dHMsIHRyYW5zZm9ybWluZyB0aGVtIG9uIHRoZSB3YXkuCisrICAgIHdoaWxlIHRlc3QgIiQjIiAt Z3QgMDsgZG8KKysgICAgICBhcmc9IiQxIgorKyAgICAgIHNoaWZ0CisrICAgICAgZnVuY19xdW90 ZV9mb3JfZXZhbCAiJGFyZyIKKysgICAgICBxYXJnPSRmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVv dGVkX3Jlc3VsdAorKyAgICAgIGZ1bmNfYXBwZW5kIGxpYnRvb2xfYXJncyAiICRmdW5jX3F1b3Rl X2Zvcl9ldmFsX3Jlc3VsdCIKKysKKysgICAgICAjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVl ZHMgYW4gYXJndW1lbnQsIGFzc2lnbiBpdC4KKysgICAgICBpZiB0ZXN0IC1uICIkcHJldiI7IHRo ZW4KKysJY2FzZSAkcHJldiBpbgorKwlvdXRwdXQpCisrCSAgZnVuY19hcHBlbmQgY29tcGlsZV9j b21tYW5kICIgQE9VVFBVVEAiCisrCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiIEBP VVRQVVRAIgorKwkgIDs7CisrCWVzYWMKKysKKysJY2FzZSAkcHJldiBpbgorKwliaW5kaXIpCisr CSAgYmluZGlyPSIkYXJnIgorKwkgIHByZXY9CisrCSAgY29udGludWUKKysJICA7OworKwlkbGZp bGVzfGRscHJlZmlsZXMpCisrCSAgaWYgdGVzdCAiJHByZWxvYWQiID0gbm87IHRoZW4KKysJICAg ICMgQWRkIHRoZSBzeW1ib2wgb2JqZWN0IGludG8gdGhlIGxpbmtpbmcgY29tbWFuZHMuCisrCSAg ICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiBAU1lNRklMRUAiCisrCSAgICBmdW5jX2Fw cGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgQFNZTUZJTEVAIgorKwkgICAgcHJlbG9hZD15ZXMKKysJ ICBmaQorKwkgIGNhc2UgJGFyZyBpbgorKwkgICoubGEgfCAqLmxvKSA7OyAgIyBXZSBoYW5kbGUg dGhlc2UgY2FzZXMgYmVsb3cuCisrCSAgZm9yY2UpCisrCSAgICBpZiB0ZXN0ICIkZGxzZWxmIiA9 IG5vOyB0aGVuCisrCSAgICAgIGRsc2VsZj1uZWVkbGVzcworKwkgICAgICBleHBvcnRfZHluYW1p Yz15ZXMKKysJICAgIGZpCisrCSAgICBwcmV2PQorKwkgICAgY29udGludWUKKysJICAgIDs7Cisr CSAgc2VsZikKKysJICAgIGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KKysJICAg ICAgZGxzZWxmPXllcworKwkgICAgZWxpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzICYmIHRlc3Qg IiRkbG9wZW5fc2VsZiIgIT0geWVzOyB0aGVuCisrCSAgICAgIGRsc2VsZj15ZXMKKysJICAgIGVs c2UKKysJICAgICAgZGxzZWxmPW5lZWRsZXNzCisrCSAgICAgIGV4cG9ydF9keW5hbWljPXllcwor KwkgICAgZmkKKysJICAgIHByZXY9CisrCSAgICBjb250aW51ZQorKwkgICAgOzsKKysJICAqKQor KwkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgorKwkgICAgICBkbGZpbGVzPSIk ZGxmaWxlcyAkYXJnIgorKwkgICAgZWxzZQorKwkgICAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxl cyAkYXJnIgorKwkgICAgZmkKKysJICAgIHByZXY9CisrCSAgICBjb250aW51ZQorKwkgICAgOzsK KysJICBlc2FjCisrCSAgOzsKKysJZXhwc3ltcykKKysJICBleHBvcnRfc3ltYm9scz0iJGFyZyIK KysJICB0ZXN0IC1mICIkYXJnIiBcCisrCSAgICB8fCBmdW5jX2ZhdGFsX2Vycm9yICJzeW1ib2wg ZmlsZSBcYCRhcmcnIGRvZXMgbm90IGV4aXN0IgorKwkgIHByZXY9CisrCSAgY29udGludWUKKysJ ICA7OworKwlleHBzeW1zX3JlZ2V4KQorKwkgIGV4cG9ydF9zeW1ib2xzX3JlZ2V4PSIkYXJnIgor KwkgIHByZXY9CisrCSAgY29udGludWUKKysJICA7OworKwlmcmFtZXdvcmspCisrCSAgY2FzZSAk aG9zdCBpbgorKwkgICAgKi0qLWRhcndpbiopCisrCSAgICAgIGNhc2UgIiRkZXBsaWJzICIgaW4K KysJCSoiICRxYXJnLmx0ZnJhbWV3b3JrICIqKSA7OworKwkJKikgZGVwbGlicz0iJGRlcGxpYnMg JHFhcmcubHRmcmFtZXdvcmsiICMgdGhpcyBpcyBmaXhlZCBsYXRlcgorKwkJICAgOzsKKysJICAg ICAgZXNhYworKwkgICAgICA7OworKwkgIGVzYWMKKysJICBwcmV2PQorKwkgIGNvbnRpbnVlCisr CSAgOzsKKysJaW5zdF9wcmVmaXgpCisrCSAgaW5zdF9wcmVmaXhfZGlyPSIkYXJnIgorKwkgIHBy ZXY9CisrCSAgY29udGludWUKKysJICA7OworKwlvYmplY3RsaXN0KQorKwkgIGlmIHRlc3QgLWYg IiRhcmciOyB0aGVuCisrCSAgICBzYXZlX2FyZz0kYXJnCisrCSAgICBtb3JlYXJncz0KKysJICAg IGZvciBmaWwgaW4gYGNhdCAiJHNhdmVfYXJnImAKKysJICAgIGRvCisrIwkgICAgICBtb3JlYXJn cz0iJG1vcmVhcmdzICRmaWwiCisrCSAgICAgIGFyZz0kZmlsCisrCSAgICAgICMgQSBsaWJ0b29s LWNvbnRyb2xsZWQgb2JqZWN0LgorKworKwkgICAgICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMg cmVhbGx5IGlzIGEgbGlidG9vbCBvYmplY3QuCisrCSAgICAgIGlmIGZ1bmNfbGFsaWJfdW5zYWZl X3AgIiRhcmciOyB0aGVuCisrCQlwaWNfb2JqZWN0PQorKwkJbm9uX3BpY19vYmplY3Q9CisrCisr CQkjIFJlYWQgdGhlIC5sbyBmaWxlCisrCQlmdW5jX3NvdXJjZSAiJGFyZyIKKysKKysJCWlmIHRl c3QgLXogIiRwaWNfb2JqZWN0IiB8fAorKwkJICAgdGVzdCAteiAiJG5vbl9waWNfb2JqZWN0IiB8 fAorKwkJICAgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSAmJgorKwkJICAgdGVzdCAiJG5vbl9w aWNfb2JqZWN0IiA9IG5vbmU7IHRoZW4KKysJCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZp bmQgbmFtZSBvZiBvYmplY3QgZm9yIFxgJGFyZyciCisrCQlmaQorKworKwkJIyBFeHRyYWN0IHN1 YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KKysJCWZ1bmNfZGlybmFtZSAiJGFyZyIgIi8i ICIiCisrCQl4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysKKysJCWlmIHRlc3QgIiRwaWNf b2JqZWN0IiAhPSBub25lOyB0aGVuCisrCQkgICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRo ZSBvYmplY3QgaXMgZm91bmQgaW4uCisrCQkgIHBpY19vYmplY3Q9IiR4ZGlyJHBpY19vYmplY3Qi CisrCisrCQkgIGlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KKysJCSAgICBpZiB0ZXN0 ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllcyAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0g eWVzOyB0aGVuCisrCQkgICAgICBkbGZpbGVzPSIkZGxmaWxlcyAkcGljX29iamVjdCIKKysJCSAg ICAgIHByZXY9CisrCQkgICAgICBjb250aW51ZQorKwkJICAgIGVsc2UKKysJCSAgICAgICMgSWYg bGlidG9vbCBvYmplY3RzIGFyZSB1bnN1cHBvcnRlZCwgdGhlbiB3ZSBuZWVkIHRvIHByZWxvYWQu CisrCQkgICAgICBwcmV2PWRscHJlZmlsZXMKKysJCSAgICBmaQorKwkJICBmaQorKworKwkJICAj IENIRUNLIE1FOiAgSSB0aGluayBJIGJ1c3RlZCB0aGlzLiAgLU9zc2FtYQorKwkJICBpZiB0ZXN0 ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCisrCQkgICAgIyBQcmVsb2FkIHRoZSBvbGQtc3R5 bGUgb2JqZWN0LgorKwkJICAgIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRwaWNfb2JqZWN0Igor KwkJICAgIHByZXY9CisrCQkgIGZpCisrCisrCQkgICMgQSBQSUMgb2JqZWN0LgorKwkJICBmdW5j X2FwcGVuZCBsaWJvYmpzICIgJHBpY19vYmplY3QiCisrCQkgIGFyZz0iJHBpY19vYmplY3QiCisr CQlmaQorKworKwkJIyBOb24tUElDIG9iamVjdC4KKysJCWlmIHRlc3QgIiRub25fcGljX29iamVj dCIgIT0gbm9uZTsgdGhlbgorKwkJICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUgb2Jq ZWN0IGlzIGZvdW5kIGluLgorKwkJICBub25fcGljX29iamVjdD0iJHhkaXIkbm9uX3BpY19vYmpl Y3QiCisrCisrCQkgICMgQSBzdGFuZGFyZCBub24tUElDIG9iamVjdAorKwkJICBmdW5jX2FwcGVu ZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCisrCQkgIGlmIHRlc3QgLXogIiRw aWNfb2JqZWN0IiB8fCB0ZXN0ICIkcGljX29iamVjdCIgPSBub25lIDsgdGhlbgorKwkJICAgIGFy Zz0iJG5vbl9waWNfb2JqZWN0IgorKwkJICBmaQorKwkJZWxzZQorKwkJICAjIElmIHRoZSBQSUMg b2JqZWN0IGV4aXN0cywgdXNlIGl0IGluc3RlYWQuCisrCQkgICMgJHhkaXIgd2FzIHByZXBlbmRl ZCB0byAkcGljX29iamVjdCBhYm92ZS4KKysJCSAgbm9uX3BpY19vYmplY3Q9IiRwaWNfb2JqZWN0 IgorKwkJICBmdW5jX2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCisr CQlmaQorKwkgICAgICBlbHNlCisrCQkjIE9ubHkgYW4gZXJyb3IgaWYgbm90IGRvaW5nIGEgZHJ5 LXJ1bi4KKysJCWlmICRvcHRfZHJ5X3J1bjsgdGhlbgorKwkJICAjIEV4dHJhY3Qgc3ViZGlyZWN0 b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorKwkJICBmdW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgor KwkJICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysKKysJCSAgZnVuY19sbzJvICIkYXJn IgorKwkJICBwaWNfb2JqZWN0PSR4ZGlyJG9iamRpci8kZnVuY19sbzJvX3Jlc3VsdAorKwkJICBu b25fcGljX29iamVjdD0keGRpciRmdW5jX2xvMm9fcmVzdWx0CisrCQkgIGZ1bmNfYXBwZW5kIGxp Ym9ianMgIiAkcGljX29iamVjdCIKKysJCSAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIg JG5vbl9waWNfb2JqZWN0IgorKwkgICAgICAgIGVsc2UKKysJCSAgZnVuY19mYXRhbF9lcnJvciAi XGAkYXJnJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIG9iamVjdCIKKysJCWZpCisrCSAgICAgIGZp CisrCSAgICBkb25lCisrCSAgZWxzZQorKwkgICAgZnVuY19mYXRhbF9lcnJvciAibGluayBpbnB1 dCBmaWxlIFxgJGFyZycgZG9lcyBub3QgZXhpc3QiCisrCSAgZmkKKysJICBhcmc9JHNhdmVfYXJn CisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCXByZWNpb3VzX3JlZ2V4KQorKwkg IHByZWNpb3VzX2ZpbGVzX3JlZ2V4PSIkYXJnIgorKwkgIHByZXY9CisrCSAgY29udGludWUKKysJ ICA7OworKwlyZWxlYXNlKQorKwkgIHJlbGVhc2U9Ii0kYXJnIgorKwkgIHByZXY9CisrCSAgY29u dGludWUKKysJICA7OworKwlycGF0aCB8IHhycGF0aCkKKysJICAjIFdlIG5lZWQgYW4gYWJzb2x1 dGUgcGF0aC4KKysJICBjYXNlICRhcmcgaW4KKysJICBbXFwvXSogfCBbQS1aYS16XTpbXFwvXSop IDs7CisrCSAgKikKKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm9ubHkgYWJzb2x1dGUgcnVuLXBh dGhzIGFyZSBhbGxvd2VkIgorKwkgICAgOzsKKysJICBlc2FjCisrCSAgaWYgdGVzdCAiJHByZXYi ID0gcnBhdGg7IHRoZW4KKysJICAgIGNhc2UgIiRycGF0aCAiIGluCisrCSAgICAqIiAkYXJnICIq KSA7OworKwkgICAgKikgcnBhdGg9IiRycGF0aCAkYXJnIiA7OworKwkgICAgZXNhYworKwkgIGVs c2UKKysJICAgIGNhc2UgIiR4cnBhdGggIiBpbgorKwkgICAgKiIgJGFyZyAiKikgOzsKKysJICAg ICopIHhycGF0aD0iJHhycGF0aCAkYXJnIiA7OworKwkgICAgZXNhYworKwkgIGZpCisrCSAgcHJl dj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCXNocmV4dCkKKysJICBzaHJleHRfY21kcz0iJGFy ZyIKKysJICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJd2VhaykKKysJICB3ZWFrX2xp YnM9IiR3ZWFrX2xpYnMgJGFyZyIKKysJICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJ eGNjbGlua2VyKQorKwkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkcWFyZyIKKysJICBj b21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRxYXJnIgorKwkgIHByZXY9CisrCSAgZnVu Y19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJHFhcmciCisrCSAgZnVuY19hcHBlbmQgZmluYWxp emVfY29tbWFuZCAiICRxYXJnIgorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJeGNvbXBpbGVyKQor KwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHFhcmciCisrCSAgcHJldj0KKysJ ICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkcWFyZyIKKysJICBmdW5jX2FwcGVuZCBm aW5hbGl6ZV9jb21tYW5kICIgJHFhcmciCisrCSAgY29udGludWUKKysJICA7OworKwl4bGlua2Vy KQorKwkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkcWFyZyIKKysJICBjb21waWxlcl9m bGFncz0iJGNvbXBpbGVyX2ZsYWdzICR3bCRxYXJnIgorKwkgIHByZXY9CisrCSAgZnVuY19hcHBl bmQgY29tcGlsZV9jb21tYW5kICIgJHdsJHFhcmciCisrCSAgZnVuY19hcHBlbmQgZmluYWxpemVf Y29tbWFuZCAiICR3bCRxYXJnIgorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJKikKKysJICBldmFs ICIkcHJldj1cIlwkYXJnXCIiCisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCWVz YWMKKysgICAgICBmaSAjIHRlc3QgLW4gIiRwcmV2IgorKworKyAgICAgIHByZXZhcmc9IiRhcmci CisrCisrICAgICAgY2FzZSAkYXJnIGluCisrICAgICAgLWFsbC1zdGF0aWMpCisrCWlmIHRlc3Qg LW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgorKwkgICMgU2VlIGNvbW1lbnQgZm9yIC1zdGF0 aWMgZmxhZyBiZWxvdywgZm9yIG1vcmUgZGV0YWlscy4KKysJICBmdW5jX2FwcGVuZCBjb21waWxl X2NvbW1hbmQgIiAkbGlua19zdGF0aWNfZmxhZyIKKysJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9j b21tYW5kICIgJGxpbmtfc3RhdGljX2ZsYWciCisrCWZpCisrCWNvbnRpbnVlCisrCTs7CisrCisr ICAgICAgLWFsbG93LXVuZGVmaW5lZCkKKysJIyBGSVhNRTogcmVtb3ZlIHRoaXMgZmxhZyBzb21l dGltZSBpbiB0aGUgZnV0dXJlLgorKwlmdW5jX2ZhdGFsX2Vycm9yICJcYC1hbGxvdy11bmRlZmlu ZWQnIG11c3Qgbm90IGJlIHVzZWQgYmVjYXVzZSBpdCBpcyB0aGUgZGVmYXVsdCIKKysJOzsKKysK KysgICAgICAtYXZvaWQtdmVyc2lvbikKKysJYXZvaWRfdmVyc2lvbj15ZXMKKysJY29udGludWUK KysJOzsKKysKKysgICAgICAtYmluZGlyKQorKwlwcmV2PWJpbmRpcgorKwljb250aW51ZQorKwk7 OworKworKyAgICAgIC1kbG9wZW4pCisrCXByZXY9ZGxmaWxlcworKwljb250aW51ZQorKwk7Owor KworKyAgICAgIC1kbHByZW9wZW4pCisrCXByZXY9ZGxwcmVmaWxlcworKwljb250aW51ZQorKwk7 OworKworKyAgICAgIC1leHBvcnQtZHluYW1pYykKKysJZXhwb3J0X2R5bmFtaWM9eWVzCisrCWNv bnRpbnVlCisrCTs7CisrCisrICAgICAgLWV4cG9ydC1zeW1ib2xzIHwgLWV4cG9ydC1zeW1ib2xz LXJlZ2V4KQorKwlpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiIHx8IHRlc3QgLW4gIiRleHBv cnRfc3ltYm9sc19yZWdleCI7IHRoZW4KKysJICBmdW5jX2ZhdGFsX2Vycm9yICJtb3JlIHRoYW4g b25lIC1leHBvcnRlZC1zeW1ib2xzIGFyZ3VtZW50IGlzIG5vdCBhbGxvd2VkIgorKwlmaQorKwlp ZiB0ZXN0ICJYJGFyZyIgPSAiWC1leHBvcnQtc3ltYm9scyI7IHRoZW4KKysJICBwcmV2PWV4cHN5 bXMKKysJZWxzZQorKwkgIHByZXY9ZXhwc3ltc19yZWdleAorKwlmaQorKwljb250aW51ZQorKwk7 OworKworKyAgICAgIC1mcmFtZXdvcmspCisrCXByZXY9ZnJhbWV3b3JrCisrCWNvbnRpbnVlCisr CTs7CisrCisrICAgICAgLWluc3QtcHJlZml4LWRpcikKKysJcHJldj1pbnN0X3ByZWZpeAorKwlj b250aW51ZQorKwk7OworKworKyAgICAgICMgVGhlIG5hdGl2ZSBJUklYIGxpbmtlciB1bmRlcnN0 YW5kcyAtTEFORzoqLCAtTElTVDoqIGFuZCAtTE5POioKKysgICAgICAjIHNvLCBpZiB3ZSBzZWUg dGhlc2UgZmxhZ3MgYmUgY2FyZWZ1bCBub3QgdG8gdHJlYXQgdGhlbSBsaWtlIC1MCisrICAgICAg LUxbQS1aXVtBLVpdKjoqKQorKwljYXNlICR3aXRoX2djYy8kaG9zdCBpbgorKwluby8qLSotaXJp eCogfCAvKi0qLWlyaXgqKQorKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmci CisrCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRhcmciCisrCSAgOzsKKysJZXNh YworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1MKikKKysJZnVuY19zdHJpcG5hbWUgJy1M JyAnJyAiJGFyZyIKKysJZGlyPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJaWYgdGVzdCAteiAi JGRpciI7IHRoZW4KKysJICBpZiB0ZXN0ICIkIyIgLWd0IDA7IHRoZW4KKysJICAgIGZ1bmNfZmF0 YWxfZXJyb3IgInJlcXVpcmUgbm8gc3BhY2UgYmV0d2VlbiBcYC1MJyBhbmQgXGAkMSciCisrCSAg ZWxzZQorKwkgICAgZnVuY19mYXRhbF9lcnJvciAibmVlZCBwYXRoIGZvciBcYC1MJyBvcHRpb24i CisrCSAgZmkKKysJZmkKKysJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCisrCWNhc2UgJGRp ciBpbgorKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7CisrCSopCisrCSAgYWJzZGlyPWBj ZCAiJGRpciIgJiYgcHdkYAorKwkgIHRlc3QgLXogIiRhYnNkaXIiICYmIFwKKysJICAgIGZ1bmNf ZmF0YWxfZXJyb3IgImNhbm5vdCBkZXRlcm1pbmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgb2Yg XGAkZGlyJyIKKysJICBkaXI9IiRhYnNkaXIiCisrCSAgOzsKKysJZXNhYworKwljYXNlICIkZGVw bGlicyAiIGluCisrCSoiIC1MJGRpciAiKikgOzsKKysJKikKKysJICBkZXBsaWJzPSIkZGVwbGli cyAtTCRkaXIiCisrCSAgbGliX3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRoICRkaXIiCisr CSAgOzsKKysJZXNhYworKwljYXNlICRob3N0IGluCisrCSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3 KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi1jZWdjYyopCisrCSAgdGVzdGJpbmRpcj1gJEVD SE8gIiRkaXIiIHwgJFNFRCAncyovbGliJCovYmluKidgCisrCSAgY2FzZSA6JGRsbHNlYXJjaHBh dGg6IGluCisrCSAgKiI6JGRpcjoiKikgOzsKKysJICA6OikgZGxsc2VhcmNocGF0aD0kZGlyOzsK KysJICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDokZGlyIjs7CisrCSAgZXNhYwor KwkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgorKwkgICoiOiR0ZXN0YmluZGlyOiIqKSA7Owor KwkgIDo6KSBkbGxzZWFyY2hwYXRoPSR0ZXN0YmluZGlyOzsKKysJICAqKSBkbGxzZWFyY2hwYXRo PSIkZGxsc2VhcmNocGF0aDokdGVzdGJpbmRpciI7OworKwkgIGVzYWMKKysJICA7OworKwllc2Fj CisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLWwqKQorKwlpZiB0ZXN0ICJYJGFyZyIgPSAi WC1sYyIgfHwgdGVzdCAiWCRhcmciID0gIlgtbG0iOyB0aGVuCisrCSAgY2FzZSAkaG9zdCBpbgor KwkgICotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1iZW9zKiB8ICot Y2VnY2MqIHwgKi0qLWhhaWt1KikKKysJICAgICMgVGhlc2Ugc3lzdGVtcyBkb24ndCBhY3R1YWxs eSBoYXZlIGEgQyBvciBtYXRoIGxpYnJhcnkgKGFzIHN1Y2gpCisrCSAgICBjb250aW51ZQorKwkg ICAgOzsKKysJICAqLSotb3MyKikKKysJICAgICMgVGhlc2Ugc3lzdGVtcyBkb24ndCBhY3R1YWxs eSBoYXZlIGEgQyBsaWJyYXJ5IChhcyBzdWNoKQorKwkgICAgdGVzdCAiWCRhcmciID0gIlgtbGMi ICYmIGNvbnRpbnVlCisrCSAgICA7OworKwkgICotKi1vcGVuYnNkKiB8ICotKi1mcmVlYnNkKiB8 ICotKi1kcmFnb25mbHkqKQorKwkgICAgIyBEbyBub3QgaW5jbHVkZSBsaWJjIGR1ZSB0byB1cyBo YXZpbmcgbGliYy9saWJjX3IuCisrCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGlu dWUKKysJICAgIDs7CisrCSAgKi0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQorKwkg ICAgIyBSaGFwc29keSBDIGFuZCBtYXRoIGxpYnJhcmllcyBhcmUgaW4gdGhlIFN5c3RlbSBmcmFt ZXdvcmsKKysJICAgIGRlcGxpYnM9IiRkZXBsaWJzIFN5c3RlbS5sdGZyYW1ld29yayIKKysJICAg IGNvbnRpbnVlCisrCSAgICA7OworKwkgICotKi1zY28zLjJ2NSogfCAqLSotc2NvNXY2KikKKysJ ICAgICMgQ2F1c2VzIHByb2JsZW1zIHdpdGggX19jdHlwZQorKwkgICAgdGVzdCAiWCRhcmciID0g IlgtbGMiICYmIGNvbnRpbnVlCisrCSAgICA7OworKwkgICotKi1zeXN2NC4ydXcyKiB8ICotKi1z eXN2NSogfCAqLSotdW5peHdhcmUqIHwgKi0qLU9wZW5VTklYKikKKysJICAgICMgQ29tcGlsZXIg aW5zZXJ0cyBsaWJjIGluIHRoZSBjb3JyZWN0IHBsYWNlIGZvciB0aHJlYWRzIHRvIHdvcmsKKysJ ICAgIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQorKwkgICAgOzsKKysJICBlc2Fj CisrCWVsaWYgdGVzdCAiWCRhcmciID0gIlgtbGNfciI7IHRoZW4KKysJIGNhc2UgJGhvc3QgaW4K KysJICotKi1vcGVuYnNkKiB8ICotKi1mcmVlYnNkKiB8ICotKi1kcmFnb25mbHkqKQorKwkgICAj IERvIG5vdCBpbmNsdWRlIGxpYmNfciBkaXJlY3RseSwgdXNlIC1wdGhyZWFkIGZsYWcuCisrCSAg IGNvbnRpbnVlCisrCSAgIDs7CisrCSBlc2FjCisrCWZpCisrCWRlcGxpYnM9IiRkZXBsaWJzICRh cmciCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLW1vZHVsZSkKKysJbW9kdWxlPXllcwor Kwljb250aW51ZQorKwk7OworKworKyAgICAgICMgVHJ1NjQgVU5JWCB1c2VzIC1tb2RlbCBbYXJn XSB0byBkZXRlcm1pbmUgdGhlIGxheW91dCBvZiBDKysKKysgICAgICAjIGNsYXNzZXMsIG5hbWUg bWFuZ2xpbmcsIGFuZCBleGNlcHRpb24gaGFuZGxpbmcuCisrICAgICAgIyBEYXJ3aW4gdXNlcyB0 aGUgLWFyY2ggZmxhZyB0byBkZXRlcm1pbmUgb3V0cHV0IGFyY2hpdGVjdHVyZS4KKysgICAgICAt bW9kZWx8LWFyY2h8LWlzeXNyb290KQorKwljb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdz ICRhcmciCisrCWZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCisrCWZ1bmNfYXBw ZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgorKwlwcmV2PXhjb21waWxlcgorKwljb250aW51 ZQorKwk7OworKworKyAgICAgIC1tdHwtbXRocmVhZHN8LWt0aHJlYWR8LUt0aHJlYWR8LXB0aHJl YWR8LXB0aHJlYWRzfC0tdGhyZWFkLXNhZmV8LXRocmVhZHMpCisrCWNvbXBpbGVyX2ZsYWdzPSIk Y29tcGlsZXJfZmxhZ3MgJGFyZyIKKysJZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGFy ZyIKKysJZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRhcmciCisrCWNhc2UgIiRuZXdf aW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCisrCSAgICAqIiAkYXJnICIqKSA7OworKwkgICAg KiApIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxh Z3MgJGFyZyIgOzsKKysJZXNhYworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1tdWx0aV9t b2R1bGUpCisrCXNpbmdsZV9tb2R1bGU9IiR7d2x9LW11bHRpX21vZHVsZSIKKysJY29udGludWUK KysJOzsKKysKKysgICAgICAtbm8tZmFzdC1pbnN0YWxsKQorKwlmYXN0X2luc3RhbGw9bm8KKysJ Y29udGludWUKKysJOzsKKysKKysgICAgICAtbm8taW5zdGFsbCkKKysJY2FzZSAkaG9zdCBpbgor KwkqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKiB8ICotKi1k YXJ3aW4qIHwgKi1jZWdjYyopCisrCSAgIyBUaGUgUEFUSCBoYWNrZXJ5IGluIHdyYXBwZXIgc2Ny aXB0cyBpcyByZXF1aXJlZCBvbiBXaW5kb3dzCisrCSAgIyBhbmQgRGFyd2luIGluIG9yZGVyIGZv ciB0aGUgbG9hZGVyIHRvIGZpbmQgYW55IGRsbHMgaXQgbmVlZHMuCisrCSAgZnVuY193YXJuaW5n ICJcYC1uby1pbnN0YWxsJyBpcyBpZ25vcmVkIGZvciAkaG9zdCIKKysJICBmdW5jX3dhcm5pbmcg ImFzc3VtaW5nIFxgLW5vLWZhc3QtaW5zdGFsbCcgaW5zdGVhZCIKKysJICBmYXN0X2luc3RhbGw9 bm8KKysJICA7OworKwkqKSBub19pbnN0YWxsPXllcyA7OworKwllc2FjCisrCWNvbnRpbnVlCisr CTs7CisrCisrICAgICAgLW5vLXVuZGVmaW5lZCkKKysJYWxsb3dfdW5kZWZpbmVkPW5vCisrCWNv bnRpbnVlCisrCTs7CisrCisrICAgICAgLW9iamVjdGxpc3QpCisrCXByZXY9b2JqZWN0bGlzdAor Kwljb250aW51ZQorKwk7OworKworKyAgICAgIC1vKSBwcmV2PW91dHB1dCA7OworKworKyAgICAg IC1wcmVjaW91cy1maWxlcy1yZWdleCkKKysJcHJldj1wcmVjaW91c19yZWdleAorKwljb250aW51 ZQorKwk7OworKworKyAgICAgIC1yZWxlYXNlKQorKwlwcmV2PXJlbGVhc2UKKysJY29udGludWUK KysJOzsKKysKKysgICAgICAtcnBhdGgpCisrCXByZXY9cnBhdGgKKysJY29udGludWUKKysJOzsK KysKKysgICAgICAtUikKKysJcHJldj14cnBhdGgKKysJY29udGludWUKKysJOzsKKysKKysgICAg ICAtUiopCisrCWZ1bmNfc3RyaXBuYW1lICctUicgJycgIiRhcmciCisrCWRpcj0kZnVuY19zdHJp cG5hbWVfcmVzdWx0CisrCSMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgorKwljYXNlICRkaXIg aW4KKysJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7OworKwkqKQorKwkgIGZ1bmNfZmF0YWxf ZXJyb3IgIm9ubHkgYWJzb2x1dGUgcnVuLXBhdGhzIGFyZSBhbGxvd2VkIgorKwkgIDs7CisrCWVz YWMKKysJY2FzZSAiJHhycGF0aCAiIGluCisrCSoiICRkaXIgIiopIDs7CisrCSopIHhycGF0aD0i JHhycGF0aCAkZGlyIiA7OworKwllc2FjCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXNo YXJlZCkKKysJIyBUaGUgZWZmZWN0cyBvZiAtc2hhcmVkIGFyZSBkZWZpbmVkIGluIGEgcHJldmlv dXMgbG9vcC4KKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtc2hyZXh0KQorKwlwcmV2PXNo cmV4dAorKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1zdGF0aWMgfCAtc3RhdGljLWxpYnRv b2wtbGlicykKKysJIyBUaGUgZWZmZWN0cyBvZiAtc3RhdGljIGFyZSBkZWZpbmVkIGluIGEgcHJl dmlvdXMgbG9vcC4KKysJIyBXZSB1c2VkIHRvIGRvIHRoZSBzYW1lIGFzIC1hbGwtc3RhdGljIG9u IHBsYXRmb3JtcyB0aGF0CisrCSMgZGlkbid0IGhhdmUgYSBQSUMgZmxhZywgYnV0IHRoZSBhc3N1 bXB0aW9uIHRoYXQgdGhlIGVmZmVjdHMKKysJIyB3b3VsZCBiZSBlcXVpdmFsZW50IHdhcyB3cm9u Zy4gIEl0IHdvdWxkIGJyZWFrIG9uIGF0IGxlYXN0CisrCSMgRGlnaXRhbCBVbml4IGFuZCBBSVgu CisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXRocmVhZC1zYWZlKQorKwl0aHJlYWRfc2Fm ZT15ZXMKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtdmVyc2lvbi1pbmZvKQorKwlwcmV2 PXZpbmZvCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXZlcnNpb24tbnVtYmVyKQorKwlw cmV2PXZpbmZvCisrCXZpbmZvX251bWJlcj15ZXMKKysJY29udGludWUKKysJOzsKKysKKysgICAg ICAtd2VhaykKKysgICAgICAgIHByZXY9d2VhaworKwljb250aW51ZQorKwk7OworKworKyAgICAg IC1XYywqKQorKwlmdW5jX3N0cmlwbmFtZSAnLVdjLCcgJycgIiRhcmciCisrCWFyZ3M9JGZ1bmNf c3RyaXBuYW1lX3Jlc3VsdAorKwlhcmc9CisrCXNhdmVfaWZzPSIkSUZTIjsgSUZTPScsJworKwlm b3IgZmxhZyBpbiAkYXJnczsgZG8KKysJICBJRlM9IiRzYXZlX2lmcyIKKysgICAgICAgICAgZnVu Y19xdW90ZV9mb3JfZXZhbCAiJGZsYWciCisrCSAgYXJnPSIkYXJnICRmdW5jX3F1b3RlX2Zvcl9l dmFsX3Jlc3VsdCIKKysJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRmdW5jX3F1 b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysJZG9uZQorKwlJRlM9IiRzYXZlX2lmcyIKKysJZnVuY19z dHJpcG5hbWUgJyAnICcnICIkYXJnIgorKwlhcmc9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwk7 OworKworKyAgICAgIC1XbCwqKQorKwlmdW5jX3N0cmlwbmFtZSAnLVdsLCcgJycgIiRhcmciCisr CWFyZ3M9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwlhcmc9CisrCXNhdmVfaWZzPSIkSUZTIjsg SUZTPScsJworKwlmb3IgZmxhZyBpbiAkYXJnczsgZG8KKysJICBJRlM9IiRzYXZlX2lmcyIKKysg ICAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGZsYWciCisrCSAgYXJnPSIkYXJnICR3bCRm dW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVy X2ZsYWdzICR3bCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysJICBsaW5rZXJfZmxhZ3M9 IiRsaW5rZXJfZmxhZ3MgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorKwlkb25lCisrCUlG Uz0iJHNhdmVfaWZzIgorKwlmdW5jX3N0cmlwbmFtZSAnICcgJycgIiRhcmciCisrCWFyZz0kZnVu Y19zdHJpcG5hbWVfcmVzdWx0CisrCTs7CisrCisrICAgICAgLVhjb21waWxlcikKKysJcHJldj14 Y29tcGlsZXIKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtWGxpbmtlcikKKysJcHJldj14 bGlua2VyCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLVhDQ2xpbmtlcikKKysJcHJldj14 Y2NsaW5rZXIKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAjIC1tc2dfKiBmb3Igb3NmIGNj CisrICAgICAgLW1zZ18qKQorKwlmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgorKwlhcmc9IiRm dW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysJOzsKKysKKysgICAgICAjIEZsYWdzIHRvIGJl IHBhc3NlZCB0aHJvdWdoIHVuY2hhbmdlZCwgd2l0aCByYXRpb25hbGU6CisrICAgICAgIyAtNjQs IC1taXBzWzAtOV0gICAgICBlbmFibGUgNjQtYml0IG1vZGUgZm9yIHRoZSBTR0kgY29tcGlsZXIK KysgICAgICAjIC1yWzAtOV1bMC05XSogICAgICAgIHNwZWNpZnkgcHJvY2Vzc29yIGZvciB0aGUg U0dJIGNvbXBpbGVyCisrICAgICAgIyAteGFyY2g9KiwgLXh0YXJnZXQ9KiBlbmFibGUgNjQtYml0 IG1vZGUgZm9yIHRoZSBTdW4gY29tcGlsZXIKKysgICAgICAjICtEQSosICtERCogICAgICAgICAg IGVuYWJsZSA2NC1iaXQgbW9kZSBmb3IgdGhlIEhQIGNvbXBpbGVyCisrICAgICAgIyAtcSogICAg ICAgICAgICAgICAgICBjb21waWxlciBhcmdzIGZvciB0aGUgSUJNIGNvbXBpbGVyCisrICAgICAg IyAtbSosIC10WzQ1XSosIC10eHNjYWxlKiBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgZmxhZ3MgZm9y IEdDQworKyAgICAgICMgLUYvcGF0aCAgICAgICAgICAgICAgcGF0aCB0byB1bmluc3RhbGxlZCBm cmFtZXdvcmtzLCBnY2Mgb24gZGFyd2luCisrICAgICAgIyAtcCwgLXBnLCAtLWNvdmVyYWdlLCAt ZnByb2ZpbGUtKiAgcHJvZmlsaW5nIGZsYWdzIGZvciBHQ0MKKysgICAgICAjIEBmaWxlICAgICAg ICAgICAgICAgIEdDQyByZXNwb25zZSBmaWxlcworKyAgICAgICMgLXRwPSogICAgICAgICAgICAg ICAgUG9ydGxhbmQgcGdjYyB0YXJnZXQgcHJvY2Vzc29yIHNlbGVjdGlvbgorKyAgICAgIC02NHwt bWlwc1swLTldfC1yWzAtOV1bMC05XSp8LXhhcmNoPSp8LXh0YXJnZXQ9KnwrREEqfCtERCp8LXEq fC1tKnwgXAorKyAgICAgIC10WzQ1XSp8LXR4c2NhbGUqfC1wfC1wZ3wtLWNvdmVyYWdlfC1mcHJv ZmlsZS0qfC1GKnxAKnwtdHA9KikKKysgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmci CisrCWFyZz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorKyAgICAgICAgZnVuY19hcHBl bmQgY29tcGlsZV9jb21tYW5kICIgJGFyZyIKKysgICAgICAgIGZ1bmNfYXBwZW5kIGZpbmFsaXpl X2NvbW1hbmQgIiAkYXJnIgorKyAgICAgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFn cyAkYXJnIgorKyAgICAgICAgY29udGludWUKKysgICAgICAgIDs7CisrCisrICAgICAgIyBTb21l IG90aGVyIGNvbXBpbGVyIGZsYWcuCisrICAgICAgLSogfCArKikKKysgICAgICAgIGZ1bmNfcXVv dGVfZm9yX2V2YWwgIiRhcmciCisrCWFyZz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0Igor Kwk7OworKworKyAgICAgICouJG9iamV4dCkKKysJIyBBIHN0YW5kYXJkIG9iamVjdC4KKysJb2Jq cz0iJG9ianMgJGFyZyIKKysJOzsKKysKKysgICAgICAqLmxvKQorKwkjIEEgbGlidG9vbC1jb250 cm9sbGVkIG9iamVjdC4KKysKKysJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBh IGxpYnRvb2wgb2JqZWN0LgorKwlpZiBmdW5jX2xhbGliX3Vuc2FmZV9wICIkYXJnIjsgdGhlbgor KwkgIHBpY19vYmplY3Q9CisrCSAgbm9uX3BpY19vYmplY3Q9CisrCisrCSAgIyBSZWFkIHRoZSAu bG8gZmlsZQorKwkgIGZ1bmNfc291cmNlICIkYXJnIgorKworKwkgIGlmIHRlc3QgLXogIiRwaWNf b2JqZWN0IiB8fAorKwkgICAgIHRlc3QgLXogIiRub25fcGljX29iamVjdCIgfHwKKysJICAgICB0 ZXN0ICIkcGljX29iamVjdCIgPSBub25lICYmCisrCSAgICAgdGVzdCAiJG5vbl9waWNfb2JqZWN0 IiA9IG5vbmU7IHRoZW4KKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUg b2Ygb2JqZWN0IGZvciBcYCRhcmcnIgorKwkgIGZpCisrCisrCSAgIyBFeHRyYWN0IHN1YmRpcmVj dG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KKysJICBmdW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgor KwkgIHhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKworKwkgIGlmIHRlc3QgIiRwaWNfb2Jq ZWN0IiAhPSBub25lOyB0aGVuCisrCSAgICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUg b2JqZWN0IGlzIGZvdW5kIGluLgorKwkgICAgcGljX29iamVjdD0iJHhkaXIkcGljX29iamVjdCIK KysKKysJICAgIGlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KKysJICAgICAgaWYgdGVz dCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiA9 IHllczsgdGhlbgorKwkJZGxmaWxlcz0iJGRsZmlsZXMgJHBpY19vYmplY3QiCisrCQlwcmV2PQor KwkJY29udGludWUKKysJICAgICAgZWxzZQorKwkJIyBJZiBsaWJ0b29sIG9iamVjdHMgYXJlIHVu c3VwcG9ydGVkLCB0aGVuIHdlIG5lZWQgdG8gcHJlbG9hZC4KKysJCXByZXY9ZGxwcmVmaWxlcwor KwkgICAgICBmaQorKwkgICAgZmkKKysKKysJICAgICMgQ0hFQ0sgTUU6ICBJIHRoaW5rIEkgYnVz dGVkIHRoaXMuICAtT3NzYW1hCisrCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0 aGVuCisrCSAgICAgICMgUHJlbG9hZCB0aGUgb2xkLXN0eWxlIG9iamVjdC4KKysJICAgICAgZGxw cmVmaWxlcz0iJGRscHJlZmlsZXMgJHBpY19vYmplY3QiCisrCSAgICAgIHByZXY9CisrCSAgICBm aQorKworKwkgICAgIyBBIFBJQyBvYmplY3QuCisrCSAgICBmdW5jX2FwcGVuZCBsaWJvYmpzICIg JHBpY19vYmplY3QiCisrCSAgICBhcmc9IiRwaWNfb2JqZWN0IgorKwkgIGZpCisrCisrCSAgIyBO b24tUElDIG9iamVjdC4KKysJICBpZiB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7IHRo ZW4KKysJICAgICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQg aW4uCisrCSAgICBub25fcGljX29iamVjdD0iJHhkaXIkbm9uX3BpY19vYmplY3QiCisrCisrCSAg ICAjIEEgc3RhbmRhcmQgbm9uLVBJQyBvYmplY3QKKysJICAgIGZ1bmNfYXBwZW5kIG5vbl9waWNf b2JqZWN0cyAiICRub25fcGljX29iamVjdCIKKysJICAgIGlmIHRlc3QgLXogIiRwaWNfb2JqZWN0 IiB8fCB0ZXN0ICIkcGljX29iamVjdCIgPSBub25lIDsgdGhlbgorKwkgICAgICBhcmc9IiRub25f cGljX29iamVjdCIKKysJICAgIGZpCisrCSAgZWxzZQorKwkgICAgIyBJZiB0aGUgUElDIG9iamVj dCBleGlzdHMsIHVzZSBpdCBpbnN0ZWFkLgorKwkgICAgIyAkeGRpciB3YXMgcHJlcGVuZGVkIHRv ICRwaWNfb2JqZWN0IGFib3ZlLgorKwkgICAgbm9uX3BpY19vYmplY3Q9IiRwaWNfb2JqZWN0Igor KwkgICAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5vbl9waWNfb2JqZWN0IgorKwkg IGZpCisrCWVsc2UKKysJICAjIE9ubHkgYW4gZXJyb3IgaWYgbm90IGRvaW5nIGEgZHJ5LXJ1bi4K KysJICBpZiAkb3B0X2RyeV9ydW47IHRoZW4KKysJICAgICMgRXh0cmFjdCBzdWJkaXJlY3Rvcnkg ZnJvbSB0aGUgYXJndW1lbnQuCisrCSAgICBmdW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgorKwkg ICAgeGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisrCisrCSAgICBmdW5jX2xvMm8gIiRhcmci CisrCSAgICBwaWNfb2JqZWN0PSR4ZGlyJG9iamRpci8kZnVuY19sbzJvX3Jlc3VsdAorKwkgICAg bm9uX3BpY19vYmplY3Q9JHhkaXIkZnVuY19sbzJvX3Jlc3VsdAorKwkgICAgZnVuY19hcHBlbmQg bGlib2JqcyAiICRwaWNfb2JqZWN0IgorKwkgICAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3Rz ICIgJG5vbl9waWNfb2JqZWN0IgorKwkgIGVsc2UKKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIlxg JGFyZycgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBvYmplY3QiCisrCSAgZmkKKysJZmkKKysJOzsK KysKKysgICAgICAqLiRsaWJleHQpCisrCSMgQW4gYXJjaGl2ZS4KKysJZGVwbGlicz0iJGRlcGxp YnMgJGFyZyIKKysJb2xkX2RlcGxpYnM9IiRvbGRfZGVwbGlicyAkYXJnIgorKwljb250aW51ZQor Kwk7OworKworKyAgICAgICoubGEpCisrCSMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgbGlicmFyeS4K KysKKysJaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgorKwkgICMgVGhpcyBsaWJyYXJ5 IHdhcyBzcGVjaWZpZWQgd2l0aCAtZGxvcGVuLgorKwkgIGRsZmlsZXM9IiRkbGZpbGVzICRhcmci CisrCSAgcHJldj0KKysJZWxpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCisrCSAg IyBUaGUgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRscHJlb3Blbi4KKysJICBkbHByZWZp bGVzPSIkZGxwcmVmaWxlcyAkYXJnIgorKwkgIHByZXY9CisrCWVsc2UKKysJICBkZXBsaWJzPSIk ZGVwbGlicyAkYXJnIgorKwlmaQorKwljb250aW51ZQorKwk7OworKworKyAgICAgICMgU29tZSBv dGhlciBjb21waWxlciBhcmd1bWVudC4KKysgICAgICAqKQorKwkjIFVua25vd24gYXJndW1lbnRz IGluIGJvdGggZmluYWxpemVfY29tbWFuZCBhbmQgY29tcGlsZV9jb21tYW5kIG5lZWQKKysJIyB0 byBiZSBhZXN0aGV0aWNhbGx5IHF1b3RlZCBiZWNhdXNlIHRoZXkgYXJlIGV2YWxlZCBsYXRlci4K KysJZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKysJYXJnPSIkZnVuY19xdW90ZV9mb3JfZXZh bF9yZXN1bHQiCisrCTs7CisrICAgICAgZXNhYyAjIGFyZworKworKyAgICAgICMgTm93IGFjdHVh bGx5IHN1YnN0aXR1dGUgdGhlIGFyZ3VtZW50IGludG8gdGhlIGNvbW1hbmRzLgorKyAgICAgIGlm IHRlc3QgLW4gIiRhcmciOyB0aGVuCisrCWZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRh cmciCisrCWZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgorKyAgICAgIGZpCisr ICAgIGRvbmUgIyBhcmd1bWVudCBwYXJzaW5nIGxvb3AKKysKKysgICAgdGVzdCAtbiAiJHByZXYi ICYmIFwKKysgICAgICBmdW5jX2ZhdGFsX2hlbHAgInRoZSBcYCRwcmV2YXJnJyBvcHRpb24gcmVx dWlyZXMgYW4gYXJndW1lbnQiCisrCisrICAgIGlmIHRlc3QgIiRleHBvcnRfZHluYW1pYyIgPSB5 ZXMgJiYgdGVzdCAtbiAiJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyI7IHRoZW4KKysgICAgICBl dmFsIGFyZz1cIiRleHBvcnRfZHluYW1pY19mbGFnX3NwZWNcIgorKyAgICAgIGZ1bmNfYXBwZW5k IGNvbXBpbGVfY29tbWFuZCAiICRhcmciCisrICAgICAgZnVuY19hcHBlbmQgZmluYWxpemVfY29t bWFuZCAiICRhcmciCisrICAgIGZpCisrCisrICAgIG9sZGxpYnM9CisrICAgICMgY2FsY3VsYXRl IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCB3aXRob3V0IGl0cyBkaXJlY3RvcnkKKysgICAgZnVuY19i YXNlbmFtZSAiJG91dHB1dCIKKysgICAgb3V0cHV0bmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0 IgorKyAgICBsaWJvYmpzX3NhdmU9IiRsaWJvYmpzIgorKworKyAgICBpZiB0ZXN0IC1uICIkc2hs aWJwYXRoX3ZhciI7IHRoZW4KKysgICAgICAjIGdldCB0aGUgZGlyZWN0b3JpZXMgbGlzdGVkIGlu ICRzaGxpYnBhdGhfdmFyCisrICAgICAgZXZhbCBzaGxpYl9zZWFyY2hfcGF0aD1cYFwkRUNITyBc IlwkeyRzaGxpYnBhdGhfdmFyfVwiIFx8IFwkU0VEIFwncy86LyAvZ1wnXGAKKysgICAgZWxzZQor KyAgICAgIHNobGliX3NlYXJjaF9wYXRoPQorKyAgICBmaQorKyAgICBldmFsIHN5c19saWJfc2Vh cmNoX3BhdGg9XCIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjXCIKKysgICAgZXZhbCBzeXNfbGli X2Rsc2VhcmNoX3BhdGg9XCIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWNcIgorKworKyAgICBm dW5jX2Rpcm5hbWUgIiRvdXRwdXQiICIvIiAiIgorKyAgICBvdXRwdXRfb2JqZGlyPSIkZnVuY19k aXJuYW1lX3Jlc3VsdCRvYmpkaXIiCisrICAgICMgQ3JlYXRlIHRoZSBvYmplY3QgZGlyZWN0b3J5 LgorKyAgICBmdW5jX21rZGlyX3AgIiRvdXRwdXRfb2JqZGlyIgorKworKyAgICAjIERldGVybWlu ZSB0aGUgdHlwZSBvZiBvdXRwdXQKKysgICAgY2FzZSAkb3V0cHV0IGluCisrICAgICIiKQorKyAg ICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSIKKysg ICAgICA7OworKyAgICAqLiRsaWJleHQpIGxpbmttb2RlPW9sZGxpYiA7OworKyAgICAqLmxvIHwg Ki4kb2JqZXh0KSBsaW5rbW9kZT1vYmogOzsKKysgICAgKi5sYSkgbGlua21vZGU9bGliIDs7Cisr ICAgICopIGxpbmttb2RlPXByb2cgOzsgIyBBbnl0aGluZyBlbHNlIHNob3VsZCBiZSBhIHByb2dy YW0uCisrICAgIGVzYWMKKysKKysgICAgc3BlY2lhbGRlcGxpYnM9CisrCisrICAgIGxpYnM9Cisr ICAgICMgRmluZCBhbGwgaW50ZXJkZXBlbmRlbnQgZGVwbGlicyBieSBzZWFyY2hpbmcgZm9yIGxp YnJhcmllcworKyAgICAjIHRoYXQgYXJlIGxpbmtlZCBtb3JlIHRoYW4gb25jZSAoZS5nLiAtbGEg LWxiIC1sYSkKKysgICAgZm9yIGRlcGxpYiBpbiAkZGVwbGliczsgZG8KKysgICAgICBpZiAkb3B0 X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorKwljYXNlICIkbGlicyAiIGluCisrCSoiICRkZXBsaWIg IiopIHNwZWNpYWxkZXBsaWJzPSIkc3BlY2lhbGRlcGxpYnMgJGRlcGxpYiIgOzsKKysJZXNhYwor KyAgICAgIGZpCisrICAgICAgbGlicz0iJGxpYnMgJGRlcGxpYiIKKysgICAgZG9uZQorKworKyAg ICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCisrICAgICAgbGlicz0iJHByZWRlcHMg JGxpYnMgJGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCAkcG9zdGRlcHMiCisrCisrICAgICAgIyBD b21wdXRlIGxpYnJhcmllcyB0aGF0IGFyZSBsaXN0ZWQgbW9yZSB0aGFuIG9uY2UgaW4gJHByZWRl cHMKKysgICAgICAjICRwb3N0ZGVwcyBhbmQgbWFyayB0aGVtIGFzIHNwZWNpYWwgKGkuZS4sIHdo b3NlIGR1cGxpY2F0ZXMgYXJlCisrICAgICAgIyBub3QgdG8gYmUgZWxpbWluYXRlZCkuCisrICAg ICAgcHJlX3Bvc3RfZGVwcz0KKysgICAgICBpZiAkb3B0X2R1cGxpY2F0ZV9jb21waWxlcl9nZW5l cmF0ZWRfZGVwczsgdGhlbgorKwlmb3IgcHJlX3Bvc3RfZGVwIGluICRwcmVkZXBzICRwb3N0ZGVw czsgZG8KKysJICBjYXNlICIkcHJlX3Bvc3RfZGVwcyAiIGluCisrCSAgKiIgJHByZV9wb3N0X2Rl cCAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkcHJlX3Bvc3RfZGVwcyIgOzsK KysJICBlc2FjCisrCSAgcHJlX3Bvc3RfZGVwcz0iJHByZV9wb3N0X2RlcHMgJHByZV9wb3N0X2Rl cCIKKysJZG9uZQorKyAgICAgIGZpCisrICAgICAgcHJlX3Bvc3RfZGVwcz0KKysgICAgZmkKKysK KysgICAgZGVwbGlicz0KKysgICAgbmV3ZGVwZW5kZW5jeV9saWJzPQorKyAgICBuZXdsaWJfc2Vh cmNoX3BhdGg9CisrICAgIG5lZWRfcmVsaW5rPW5vICMgd2hldGhlciB3ZSdyZSBsaW5raW5nIGFu eSB1bmluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcworKyAgICBub3RpbnN0X2RlcGxpYnM9ICMg bm90LWluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcworKyAgICBub3RpbnN0X3BhdGg9ICMgcGF0 aHMgdGhhdCBjb250YWluIG5vdC1pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKKysKKysgICAg Y2FzZSAkbGlua21vZGUgaW4KKysgICAgbGliKQorKwlwYXNzZXM9ImNvbnYgZGxwcmVvcGVuIGxp bmsiCisrCWZvciBmaWxlIGluICRkbGZpbGVzICRkbHByZWZpbGVzOyBkbworKwkgIGNhc2UgJGZp bGUgaW4KKysJICAqLmxhKSA7OworKwkgICopCisrCSAgICBmdW5jX2ZhdGFsX2hlbHAgImxpYnJh cmllcyBjYW4gXGAtZGxvcGVuJyBvbmx5IGxpYnRvb2wgbGlicmFyaWVzOiAkZmlsZSIKKysJICAg IDs7CisrCSAgZXNhYworKwlkb25lCisrCTs7CisrICAgIHByb2cpCisrCWNvbXBpbGVfZGVwbGli cz0KKysJZmluYWxpemVfZGVwbGlicz0KKysJYWxsZGVwbGlicz1ubworKwluZXdkbGZpbGVzPQor KwluZXdkbHByZWZpbGVzPQorKwlwYXNzZXM9ImNvbnYgc2NhbiBkbG9wZW4gZGxwcmVvcGVuIGxp bmsiCisrCTs7CisrICAgICopICBwYXNzZXM9ImNvbnYiCisrCTs7CisrICAgIGVzYWMKKysKKysg ICAgZm9yIHBhc3MgaW4gJHBhc3NlczsgZG8KKysgICAgICAjIFRoZSBwcmVvcGVuIHBhc3MgaW4g bGliIG1vZGUgcmV2ZXJzZXMgJGRlcGxpYnM7IHB1dCBpdCBiYWNrIGhlcmUKKysgICAgICAjIHNv IHRoYXQgLUwgY29tZXMgYmVmb3JlIGxpYnMgdGhhdCBuZWVkIGl0IGZvciBpbnN0YW5jZS4uLgor KyAgICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAibGliLGxpbmsiOyB0aGVuCisrCSMj IEZJWE1FOiBGaW5kIHRoZSBwbGFjZSB3aGVyZSB0aGUgbGlzdCBpcyByZWJ1aWx0IGluIHRoZSB3 cm9uZworKwkjIyAgICAgICAgb3JkZXIsIGFuZCBmaXggaXQgdGhlcmUgcHJvcGVybHkKKysgICAg ICAgIHRtcF9kZXBsaWJzPQorKwlmb3IgZGVwbGliIGluICRkZXBsaWJzOyBkbworKwkgIHRtcF9k ZXBsaWJzPSIkZGVwbGliICR0bXBfZGVwbGlicyIKKysJZG9uZQorKwlkZXBsaWJzPSIkdG1wX2Rl cGxpYnMiCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0g ImxpYixsaW5rIiB8fAorKwkgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLHNjYW4iOyB0 aGVuCisrCWxpYnM9IiRkZXBsaWJzIgorKwlkZXBsaWJzPQorKyAgICAgIGZpCisrICAgICAgaWYg dGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KKysJY2FzZSAkcGFzcyBpbgorKwlkbG9wZW4p IGxpYnM9IiRkbGZpbGVzIiA7OworKwlkbHByZW9wZW4pIGxpYnM9IiRkbHByZWZpbGVzIiA7Owor KwlsaW5rKSBsaWJzPSIkZGVwbGlicyAlREVQTElCUyUgJGRlcGVuZGVuY3lfbGlicyIgOzsKKysJ ZXNhYworKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIs ZGxwcmVvcGVuIjsgdGhlbgorKwkjIENvbGxlY3QgYW5kIGZvcndhcmQgZGVwbGlicyBvZiBwcmVv cGVuZWQgbGlidG9vbCBsaWJzCisrCWZvciBsaWIgaW4gJGRscHJlZmlsZXM7IGRvCisrCSAgIyBJ Z25vcmUgbm9uLWxpYnRvb2wtbGlicworKwkgIGRlcGVuZGVuY3lfbGlicz0KKysJICBjYXNlICRs aWIgaW4KKysJICAqLmxhKQlmdW5jX3NvdXJjZSAiJGxpYiIgOzsKKysJICBlc2FjCisrCisrCSAg IyBDb2xsZWN0IHByZW9wZW5lZCBsaWJ0b29sIGRlcGxpYnMsIGV4Y2VwdCBhbnkgdGhpcyBsaWJy YXJ5CisrCSAgIyBoYXMgZGVjbGFyZWQgYXMgd2VhayBsaWJzCisrCSAgZm9yIGRlcGxpYiBpbiAk ZGVwZW5kZW5jeV9saWJzOyBkbworKwkgICAgZnVuY19iYXNlbmFtZSAiJGRlcGxpYiIKKysgICAg ICAgICAgICBkZXBsaWJfYmFzZT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKKysJICAgIGNhc2UgIiAk d2Vha19saWJzICIgaW4KKysJICAgICoiICRkZXBsaWJfYmFzZSAiKikgOzsKKysJICAgICopIGRl cGxpYnM9IiRkZXBsaWJzICRkZXBsaWIiIDs7CisrCSAgICBlc2FjCisrCSAgZG9uZQorKwlkb25l CisrCWxpYnM9IiRkbHByZWZpbGVzIgorKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAiJHBhc3Mi ID0gZGxvcGVuOyB0aGVuCisrCSMgQ29sbGVjdCBkbHByZW9wZW5lZCBsaWJyYXJpZXMKKysJc2F2 ZV9kZXBsaWJzPSIkZGVwbGlicyIKKysJZGVwbGlicz0KKysgICAgICBmaQorKworKyAgICAgIGZv ciBkZXBsaWIgaW4gJGxpYnM7IGRvCisrCWxpYj0KKysJZm91bmQ9bm8KKysJY2FzZSAkZGVwbGli IGluCisrCS1tdHwtbXRocmVhZHN8LWt0aHJlYWR8LUt0aHJlYWR8LXB0aHJlYWR8LXB0aHJlYWRz fC0tdGhyZWFkLXNhZmV8LXRocmVhZHMpCisrCSAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9 ICJwcm9nLGxpbmsiOyB0aGVuCisrCSAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBp bGVfZGVwbGlicyIKKysJICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2Rl cGxpYnMiCisrCSAgZWxzZQorKwkgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAk ZGVwbGliIgorKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiA7IHRoZW4KKysJCWNhc2Ug IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCisrCQkgICAgKiIgJGRlcGxpYiAiKikg OzsKKysJCSAgICAqICkgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9IiRuZXdfaW5oZXJpdGVk X2xpbmtlcl9mbGFncyAkZGVwbGliIiA7OworKwkJZXNhYworKwkgICAgZmkKKysJICBmaQorKwkg IGNvbnRpbnVlCisrCSAgOzsKKysJLWwqKQorKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgIT0gbGli ICYmIHRlc3QgIiRsaW5rbW9kZSIgIT0gcHJvZzsgdGhlbgorKwkgICAgZnVuY193YXJuaW5nICJc YC1sJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcy9vYmplY3RzIgorKwkgICAgY29udGludWUKKysJ ICBmaQorKwkgIGZ1bmNfc3RyaXBuYW1lICctbCcgJycgIiRkZXBsaWIiCisrCSAgbmFtZT0kZnVu Y19zdHJpcG5hbWVfcmVzdWx0CisrCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgor KwkgICAgc2VhcmNoZGlycz0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkbGliX3NlYXJjaF9wYXRoICRj b21waWxlcl9saWJfc2VhcmNoX2RpcnMgJHN5c19saWJfc2VhcmNoX3BhdGggJHNobGliX3NlYXJj aF9wYXRoIgorKwkgIGVsc2UKKysJICAgIHNlYXJjaGRpcnM9IiRuZXdsaWJfc2VhcmNoX3BhdGgg JGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGgi CisrCSAgZmkKKysJICBmb3Igc2VhcmNoZGlyIGluICRzZWFyY2hkaXJzOyBkbworKwkgICAgZm9y IHNlYXJjaF9leHQgaW4gLmxhICRzdGRfc2hyZXh0IC5zbyAuYTsgZG8KKysJICAgICAgIyBTZWFy Y2ggdGhlIGxpYnRvb2wgbGlicmFyeQorKwkgICAgICBsaWI9IiRzZWFyY2hkaXIvbGliJHtuYW1l fSR7c2VhcmNoX2V4dH0iCisrCSAgICAgIGlmIHRlc3QgLWYgIiRsaWIiOyB0aGVuCisrCQlpZiB0 ZXN0ICIkc2VhcmNoX2V4dCIgPSAiLmxhIjsgdGhlbgorKwkJICBmb3VuZD15ZXMKKysJCWVsc2UK KysJCSAgZm91bmQ9bm8KKysJCWZpCisrCQlicmVhayAyCisrCSAgICAgIGZpCisrCSAgICBkb25l CisrCSAgZG9uZQorKwkgIGlmIHRlc3QgIiRmb3VuZCIgIT0geWVzOyB0aGVuCisrCSAgICAjIGRl cGxpYiBkb2Vzbid0IHNlZW0gdG8gYmUgYSBsaWJ0b29sIGxpYnJhcnkKKysJICAgIGlmIHRlc3Qg IiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgorKwkgICAgICBjb21waWxlX2Rl cGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKKysJICAgICAgZmluYWxpemVfZGVwbGli cz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICAgIGVsc2UKKysJICAgICAgZGVwbGli cz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAgICAgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiAmJiBu ZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKKysJICAgIGZp CisrCSAgICBjb250aW51ZQorKwkgIGVsc2UgIyBkZXBsaWIgaXMgYSBsaWJ0b29sIGxpYnJhcnkK KysJICAgICMgSWYgJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyAmJiAk ZGVwbGliIGlzIGEgc3RkbGliLAorKwkgICAgIyBXZSBuZWVkIHRvIGRvIHNvbWUgc3BlY2lhbCB0 aGluZ3MgaGVyZSwgYW5kIG5vdCBsYXRlci4KKysJICAgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9v bF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KKysJICAgICAgY2Fz ZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCisrCSAgICAgICoiICRkZXBsaWIgIiopCisrCQlp ZiBmdW5jX2xhbGliX3AgIiRsaWIiOyB0aGVuCisrCQkgIGxpYnJhcnlfbmFtZXM9CisrCQkgIG9s ZF9saWJyYXJ5PQorKwkJICBmdW5jX3NvdXJjZSAiJGxpYiIKKysJCSAgZm9yIGwgaW4gJG9sZF9s aWJyYXJ5ICRsaWJyYXJ5X25hbWVzOyBkbworKwkJICAgIGxsPSIkbCIKKysJCSAgZG9uZQorKwkJ ICBpZiB0ZXN0ICJYJGxsIiA9ICJYJG9sZF9saWJyYXJ5IiA7IHRoZW4gIyBvbmx5IHN0YXRpYyB2 ZXJzaW9uIGF2YWlsYWJsZQorKwkJICAgIGZvdW5kPW5vCisrCQkgICAgZnVuY19kaXJuYW1lICIk bGliIiAiIiAiLiIKKysJCSAgICBsYWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisrCQkgICAg bGliPSRsYWRpci8kb2xkX2xpYnJhcnkKKysJCSAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3Mi ID0gInByb2csbGluayI7IHRoZW4KKysJCSAgICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAk Y29tcGlsZV9kZXBsaWJzIgorKwkJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmlu YWxpemVfZGVwbGlicyIKKysJCSAgICBlbHNlCisrCQkgICAgICBkZXBsaWJzPSIkZGVwbGliICRk ZXBsaWJzIgorKwkJICAgICAgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiAmJiBuZXdkZXBlbmRlbmN5 X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKKysJCSAgICBmaQorKwkJICAgIGNv bnRpbnVlCisrCQkgIGZpCisrCQlmaQorKwkJOzsKKysJICAgICAgKikgOzsKKysJICAgICAgZXNh YworKwkgICAgZmkKKysJICBmaQorKwkgIDs7ICMgLWwKKysJKi5sdGZyYW1ld29yaykKKysJICBp ZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KKysJICAgIGNvbXBp bGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgZmluYWxpemVfZGVw bGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICBlbHNlCisrCSAgICBkZXBsaWJz PSIkZGVwbGliICRkZXBsaWJzIgorKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiA7IHRo ZW4KKysJCWNhc2UgIiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCisrCQkgICAgKiIg JGRlcGxpYiAiKikgOzsKKysJCSAgICAqICkgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9IiRu ZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkZGVwbGliIiA7OworKwkJZXNhYworKwkgICAgZmkK KysJICBmaQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJLUwqKQorKwkgIGNhc2UgJGxpbmttb2Rl IGluCisrCSAgbGliKQorKwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAgIHRl c3QgIiRwYXNzIiA9IGNvbnYgJiYgY29udGludWUKKysJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0i JGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgorKwkgICAgZnVuY19zdHJpcG5hbWUgJy1MJyAn JyAiJGRlcGxpYiIKKysJICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0 aCAkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorKwkgICAgOzsKKysJICBwcm9nKQorKwkgICAgaWYg dGVzdCAiJHBhc3MiID0gY29udjsgdGhlbgorKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBs aWJzIgorKwkgICAgICBjb250aW51ZQorKwkgICAgZmkKKysJICAgIGlmIHRlc3QgIiRwYXNzIiA9 IHNjYW47IHRoZW4KKysJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAgIGVs c2UKKysJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCisr CSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCisrCSAg ICBmaQorKwkgICAgZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGRlcGxpYiIKKysJICAgIG5ld2xp Yl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkZnVuY19zdHJpcG5hbWVfcmVzdWx0 IgorKwkgICAgOzsKKysJICAqKQorKwkgICAgZnVuY193YXJuaW5nICJcYC1MJyBpcyBpZ25vcmVk IGZvciBhcmNoaXZlcy9vYmplY3RzIgorKwkgICAgOzsKKysJICBlc2FjICMgbGlua21vZGUKKysJ ICBjb250aW51ZQorKwkgIDs7ICMgLUwKKysJLVIqKQorKwkgIGlmIHRlc3QgIiRwYXNzIiA9IGxp bms7IHRoZW4KKysJICAgIGZ1bmNfc3RyaXBuYW1lICctUicgJycgIiRkZXBsaWIiCisrCSAgICBk aXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgICAgIyBNYWtlIHN1cmUgdGhlIHhycGF0aCBj b250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KKysJICAgIGNhc2UgIiR4cnBhdGggIiBp bgorKwkgICAgKiIgJGRpciAiKikgOzsKKysJICAgICopIHhycGF0aD0iJHhycGF0aCAkZGlyIiA7 OworKwkgICAgZXNhYworKwkgIGZpCisrCSAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJ ICBjb250aW51ZQorKwkgIDs7CisrCSoubGEpIGxpYj0iJGRlcGxpYiIgOzsKKysJKi4kbGliZXh0 KQorKwkgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KKysJICAgIGRlcGxpYnM9IiRkZXBs aWIgJGRlcGxpYnMiCisrCSAgICBjb250aW51ZQorKwkgIGZpCisrCSAgY2FzZSAkbGlua21vZGUg aW4KKysJICBsaWIpCisrCSAgICAjIExpbmtpbmcgY29udmVuaWVuY2UgbW9kdWxlcyBpbnRvIHNo YXJlZCBsaWJyYXJpZXMgaXMgYWxsb3dlZCwKKysJICAgICMgYnV0IGxpbmtpbmcgb3RoZXIgc3Rh dGljIGxpYnJhcmllcyBpcyBub24tcG9ydGFibGUuCisrCSAgICBjYXNlICIgJGRscHJlY29udmVu aWVuY2VsaWJzICIgaW4KKysJICAgICoiICRkZXBsaWIgIiopIDs7CisrCSAgICAqKQorKwkgICAg ICB2YWxpZF9hX2xpYj1ubworKwkgICAgICBjYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgor KwkJbWF0Y2hfcGF0dGVybiopCisrCQkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRob2Q7 IHNoaWZ0CisrCQkgIG1hdGNoX3BhdHRlcm5fcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21l dGhvZCIgOiAiJDEgXCguKlwpImAKKysJCSAgaWYgZXZhbCAiXCRFQ0hPIFwiJGRlcGxpYlwiIiAy Pi9kZXYvbnVsbCB8ICRTRUQgMTBxIFwKKysJCSAgICB8ICRFR1JFUCAiJG1hdGNoX3BhdHRlcm5f cmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCisrCQkgICAgdmFsaWRfYV9saWI9eWVzCisrCQkgIGZp CisrCQk7OworKwkJcGFzc19hbGwpCisrCQkgIHZhbGlkX2FfbGliPXllcworKwkJOzsKKysJICAg ICAgZXNhYworKwkgICAgICBpZiB0ZXN0ICIkdmFsaWRfYV9saWIiICE9IHllczsgdGhlbgorKwkJ ZWNobworKwkJJEVDSE8gIioqKiBXYXJuaW5nOiBUcnlpbmcgdG8gbGluayB3aXRoIHN0YXRpYyBs aWIgYXJjaGl2ZSAkZGVwbGliLiIKKysJCWVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkg dG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCisrCQllY2hv ICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBp ZiB5b3UgaGF2ZSBhIgorKwkJZWNobyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5 LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgorKwkJZWNobyAiKioqIGJlY2F1c2Ug dGhlIGZpbGUgZXh0ZW5zaW9ucyAuJGxpYmV4dCBvZiB0aGlzIGFyZ3VtZW50IG1ha2VzIG1lIGJl bGlldmUiCisrCQllY2hvICIqKiogdGhhdCBpdCBpcyBqdXN0IGEgc3RhdGljIGFyY2hpdmUgdGhh dCBJIHNob3VsZCBub3QgdXNlIGhlcmUuIgorKwkgICAgICBlbHNlCisrCQllY2hvCisrCQkkRUNI TyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIHNoYXJlZCBsaWJyYXJ5ICRvdXRwdXQgYWdhaW5z dCB0aGUiCisrCQkkRUNITyAiKioqIHN0YXRpYyBsaWJyYXJ5ICRkZXBsaWIgaXMgbm90IHBvcnRh YmxlISIKKysJCWRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICAgIGZpCisrCSAgICAg IDs7CisrCSAgICBlc2FjCisrCSAgICBjb250aW51ZQorKwkgICAgOzsKKysJICBwcm9nKQorKwkg ICAgaWYgdGVzdCAiJHBhc3MiICE9IGxpbms7IHRoZW4KKysJICAgICAgZGVwbGlicz0iJGRlcGxp YiAkZGVwbGlicyIKKysJICAgIGVsc2UKKysJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGli ICRjb21waWxlX2RlcGxpYnMiCisrCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZp bmFsaXplX2RlcGxpYnMiCisrCSAgICBmaQorKwkgICAgY29udGludWUKKysJICAgIDs7CisrCSAg ZXNhYyAjIGxpbmttb2RlCisrCSAgOzsgIyAqLiRsaWJleHQKKysJKi5sbyB8ICouJG9iamV4dCkK KysJICBpZiB0ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCisrCSAgICBkZXBsaWJzPSIkZGVwbGli ICRkZXBsaWJzIgorKwkgIGVsaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KKysJICAg IGlmIHRlc3QgIiRwYXNzIiA9IGRscHJlb3BlbiB8fCB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiICE9 IHllcyB8fCB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG5vOyB0aGVuCisrCSAgICAgICMg SWYgdGhlcmUgaXMgbm8gZGxvcGVuIHN1cHBvcnQgb3Igd2UncmUgbGlua2luZyBzdGF0aWNhbGx5 LAorKwkgICAgICAjIHdlIG5lZWQgdG8gcHJlbG9hZC4KKysJICAgICAgbmV3ZGxwcmVmaWxlcz0i JG5ld2RscHJlZmlsZXMgJGRlcGxpYiIKKysJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGli ICRjb21waWxlX2RlcGxpYnMiCisrCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZp bmFsaXplX2RlcGxpYnMiCisrCSAgICBlbHNlCisrCSAgICAgIG5ld2RsZmlsZXM9IiRuZXdkbGZp bGVzICRkZXBsaWIiCisrCSAgICBmaQorKwkgIGZpCisrCSAgY29udGludWUKKysJICA7OworKwkl REVQTElCUyUpCisrCSAgYWxsZGVwbGlicz15ZXMKKysJICBjb250aW51ZQorKwkgIDs7CisrCWVz YWMgIyBjYXNlICRkZXBsaWIKKysKKysJaWYgdGVzdCAiJGZvdW5kIiA9IHllcyB8fCB0ZXN0IC1m ICIkbGliIjsgdGhlbiA6CisrCWVsc2UKKysJICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmlu ZCB0aGUgbGlicmFyeSBcYCRsaWInIG9yIHVuaGFuZGxlZCBhcmd1bWVudCBcYCRkZXBsaWInIgor KwlmaQorKworKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBh cmNoaXZlLgorKwlmdW5jX2xhbGliX3Vuc2FmZV9wICIkbGliIiBcCisrCSAgfHwgZnVuY19mYXRh bF9lcnJvciAiXGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCisrCisrCWZ1 bmNfZGlybmFtZSAiJGxpYiIgIiIgIi4iCisrCWxhZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIK KysKKysJZGxuYW1lPQorKwlkbG9wZW49CisrCWRscHJlb3Blbj0KKysJbGliZGlyPQorKwlsaWJy YXJ5X25hbWVzPQorKwlvbGRfbGlicmFyeT0KKysJaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0KKysJ IyBJZiB0aGUgbGlicmFyeSB3YXMgaW5zdGFsbGVkIHdpdGggYW4gb2xkIHJlbGVhc2Ugb2YgbGli dG9vbCwKKysJIyBpdCB3aWxsIG5vdCByZWRlZmluZSB2YXJpYWJsZXMgaW5zdGFsbGVkLCBvciBz aG91bGRub3RsaW5rCisrCWluc3RhbGxlZD15ZXMKKysJc2hvdWxkbm90bGluaz1ubworKwlhdm9p ZHRlbXBycGF0aD0KKysKKysKKysJIyBSZWFkIHRoZSAubGEgZmlsZQorKwlmdW5jX3NvdXJjZSAi JGxpYiIKKysKKysJIyBDb252ZXJ0ICItZnJhbWV3b3JrIGZvbyIgdG8gImZvby5sdGZyYW1ld29y ayIKKysJaWYgdGVzdCAtbiAiJGluaGVyaXRlZF9saW5rZXJfZmxhZ3MiOyB0aGVuCisrCSAgdG1w X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9YCRFQ0hPICIkaW5oZXJpdGVkX2xpbmtlcl9mbGFncyIg fCAkU0VEICdzLy1mcmFtZXdvcmsgXChbXiAkXSpcKS9cMS5sdGZyYW1ld29yay9nJ2AKKysJICBm b3IgdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZyBpbiAkdG1wX2luaGVyaXRlZF9saW5rZXJfZmxh Z3M7IGRvCisrCSAgICBjYXNlICIgJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgaW4KKysJ ICAgICAgKiIgJHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWcgIiopIDs7CisrCSAgICAgICopIG5l d19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJHRt cF9pbmhlcml0ZWRfbGlua2VyX2ZsYWciOzsKKysJICAgIGVzYWMKKysJICBkb25lCisrCWZpCisr CWRlcGVuZGVuY3lfbGlicz1gJEVDSE8gIiAkZGVwZW5kZW5jeV9saWJzIiB8ICRTRUQgJ3MlIFwo W14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisrCWlmIHRlc3QgIiRsaW5r bW9kZSwkcGFzcyIgPSAibGliLGxpbmsiIHx8CisrCSAgIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIg PSAicHJvZyxzY2FuIiB8fAorKwkgICB7IHRlc3QgIiRsaW5rbW9kZSIgIT0gcHJvZyAmJiB0ZXN0 ICIkbGlua21vZGUiICE9IGxpYjsgfTsgdGhlbgorKwkgIHRlc3QgLW4gIiRkbG9wZW4iICYmIGRs ZmlsZXM9IiRkbGZpbGVzICRkbG9wZW4iCisrCSAgdGVzdCAtbiAiJGRscHJlb3BlbiIgJiYgZGxw cmVmaWxlcz0iJGRscHJlZmlsZXMgJGRscHJlb3BlbiIKKysJZmkKKysKKysJaWYgdGVzdCAiJHBh c3MiID0gY29udjsgdGhlbgorKwkgICMgT25seSBjaGVjayBmb3IgY29udmVuaWVuY2UgbGlicmFy aWVzCisrCSAgZGVwbGlicz0iJGxpYiAkZGVwbGlicyIKKysJICBpZiB0ZXN0IC16ICIkbGliZGly IjsgdGhlbgorKwkgICAgaWYgdGVzdCAteiAiJG9sZF9saWJyYXJ5IjsgdGhlbgorKwkgICAgICBm dW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCBuYW1lIG9mIGxpbmsgbGlicmFyeSBmb3IgXGAk bGliJyIKKysJICAgIGZpCisrCSAgICAjIEl0IGlzIGEgbGlidG9vbCBjb252ZW5pZW5jZSBsaWJy YXJ5LCBzbyBhZGQgaW4gaXRzIG9iamVjdHMuCisrCSAgICBjb252ZW5pZW5jZT0iJGNvbnZlbmll bmNlICRsYWRpci8kb2JqZGlyLyRvbGRfbGlicmFyeSIKKysJICAgIG9sZF9jb252ZW5pZW5jZT0i JG9sZF9jb252ZW5pZW5jZSAkbGFkaXIvJG9iamRpci8kb2xkX2xpYnJhcnkiCisrCSAgZWxpZiB0 ZXN0ICIkbGlua21vZGUiICE9IHByb2cgJiYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWI7IHRoZW4K KysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgY29udmVuaWVuY2UgbGli cmFyeSIKKysJICBmaQorKwkgIHRtcF9saWJzPQorKwkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVu Y3lfbGliczsgZG8KKysJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICBpZiAk b3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgor KwkgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRk ZXBsaWIiIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCSAgICB0bXBfbGlicz0iJHRtcF9s aWJzICRkZXBsaWIiCisrCSAgZG9uZQorKwkgIGNvbnRpbnVlCisrCWZpICMgJHBhc3MgPSBjb252 CisrCisrCisrCSMgR2V0IHRoZSBuYW1lIG9mIHRoZSBsaWJyYXJ5IHdlIGxpbmsgYWdhaW5zdC4K KysJbGlua2xpYj0KKysJZm9yIGwgaW4gJG9sZF9saWJyYXJ5ICRsaWJyYXJ5X25hbWVzOyBkbwor KwkgIGxpbmtsaWI9IiRsIgorKwlkb25lCisrCWlmIHRlc3QgLXogIiRsaW5rbGliIjsgdGhlbgor KwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2YgbGluayBsaWJyYXJ5IGZv ciBcYCRsaWInIgorKwlmaQorKworKwkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGgg LWRsb3Blbi4KKysJaWYgdGVzdCAiJHBhc3MiID0gZGxvcGVuOyB0aGVuCisrCSAgaWYgdGVzdCAt eiAiJGxpYmRpciI7IHRoZW4KKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCAtZGxvcGVu IGEgY29udmVuaWVuY2UgbGlicmFyeTogXGAkbGliJyIKKysJICBmaQorKwkgIGlmIHRlc3QgLXog IiRkbG5hbWUiIHx8CisrCSAgICAgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiAhPSB5ZXMgfHwKKysJ ICAgICB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG5vOyB0aGVuCisrCSAgICAjIElmIHRo ZXJlIGlzIG5vIGRsbmFtZSwgbm8gZGxvcGVuIHN1cHBvcnQgb3Igd2UncmUgbGlua2luZworKwkg ICAgIyBzdGF0aWNhbGx5LCB3ZSBuZWVkIHRvIHByZWxvYWQuICBXZSBhbHNvIG5lZWQgdG8gcHJl bG9hZCBhbnkKKysJICAgICMgZGVwZW5kZW50IGxpYnJhcmllcyBzbyBsaWJsdGRsJ3MgZGVwbGli IHByZWxvYWRlciBkb2Vzbid0CisrCSAgICAjIGJvbWIgb3V0IGluIHRoZSBsb2FkIGRlcGxpYnMg cGhhc2UuCisrCSAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkbGliICRkZXBlbmRlbmN5X2xp YnMiCisrCSAgZWxzZQorKwkgICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGxpYiIKKysJICBm aQorKwkgIGNvbnRpbnVlCisrCWZpICMgJHBhc3MgPSBkbG9wZW4KKysKKysJIyBXZSBuZWVkIGFu IGFic29sdXRlIHBhdGguCisrCWNhc2UgJGxhZGlyIGluCisrCVtcXC9dKiB8IFtBLVphLXpdOltc XC9dKikgYWJzX2xhZGlyPSIkbGFkaXIiIDs7CisrCSopCisrCSAgYWJzX2xhZGlyPWBjZCAiJGxh ZGlyIiAmJiBwd2RgCisrCSAgaWYgdGVzdCAteiAiJGFic19sYWRpciI7IHRoZW4KKysJICAgIGZ1 bmNfd2FybmluZyAiY2Fubm90IGRldGVybWluZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBvZiBc YCRsYWRpciciCisrCSAgICBmdW5jX3dhcm5pbmcgInBhc3NpbmcgaXQgbGl0ZXJhbGx5IHRvIHRo ZSBsaW5rZXIsIGFsdGhvdWdoIGl0IG1pZ2h0IGZhaWwiCisrCSAgICBhYnNfbGFkaXI9IiRsYWRp ciIKKysJICBmaQorKwkgIDs7CisrCWVzYWMKKysJZnVuY19iYXNlbmFtZSAiJGxpYiIKKysJbGFu YW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCisrCSMgRmluZCB0aGUgcmVsZXZhbnQgb2Jq ZWN0IGRpcmVjdG9yeSBhbmQgbGlicmFyeSBuYW1lLgorKwlpZiB0ZXN0ICJYJGluc3RhbGxlZCIg PSBYeWVzOyB0aGVuCisrCSAgaWYgdGVzdCAhIC1mICIkbGliZGlyLyRsaW5rbGliIiAmJiB0ZXN0 IC1mICIkYWJzX2xhZGlyLyRsaW5rbGliIjsgdGhlbgorKwkgICAgZnVuY193YXJuaW5nICJsaWJy YXJ5IFxgJGxpYicgd2FzIG1vdmVkLiIKKysJICAgIGRpcj0iJGxhZGlyIgorKwkgICAgYWJzZGly PSIkYWJzX2xhZGlyIgorKwkgICAgbGliZGlyPSIkYWJzX2xhZGlyIgorKwkgIGVsc2UKKysJICAg IGRpcj0iJGxpYmRpciIKKysJICAgIGFic2Rpcj0iJGxpYmRpciIKKysJICBmaQorKwkgIHRlc3Qg IlgkaGFyZGNvZGVfYXV0b21hdGljIiA9IFh5ZXMgJiYgYXZvaWR0ZW1wcnBhdGg9eWVzCisrCWVs c2UKKysJICBpZiB0ZXN0ICEgLWYgIiRsYWRpci8kb2JqZGlyLyRsaW5rbGliIiAmJiB0ZXN0IC1m ICIkYWJzX2xhZGlyLyRsaW5rbGliIjsgdGhlbgorKwkgICAgZGlyPSIkbGFkaXIiCisrCSAgICBh YnNkaXI9IiRhYnNfbGFkaXIiCisrCSAgICAjIFJlbW92ZSB0aGlzIHNlYXJjaCBwYXRoIGxhdGVy CisrCSAgICBub3RpbnN0X3BhdGg9IiRub3RpbnN0X3BhdGggJGFic19sYWRpciIKKysJICBlbHNl CisrCSAgICBkaXI9IiRsYWRpci8kb2JqZGlyIgorKwkgICAgYWJzZGlyPSIkYWJzX2xhZGlyLyRv YmpkaXIiCisrCSAgICAjIFJlbW92ZSB0aGlzIHNlYXJjaCBwYXRoIGxhdGVyCisrCSAgICBub3Rp bnN0X3BhdGg9IiRub3RpbnN0X3BhdGggJGFic19sYWRpciIKKysJICBmaQorKwlmaSAjICRpbnN0 YWxsZWQgPSB5ZXMKKysJZnVuY19zdHJpcG5hbWUgJ2xpYicgJy5sYScgIiRsYW5hbWUiCisrCW5h bWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKworKwkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lm aWVkIHdpdGggLWRscHJlb3Blbi4KKysJaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0aGVu CisrCSAgaWYgdGVzdCAteiAiJGxpYmRpciIgJiYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRo ZW4KKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm9ubHkgbGlicmFyaWVzIG1heSAtZGxwcmVvcGVu IGEgY29udmVuaWVuY2UgbGlicmFyeTogXGAkbGliJyIKKysJICBmaQorKwkgICMgUHJlZmVyIHVz aW5nIGEgc3RhdGljIGxpYnJhcnkgKHNvIHRoYXQgbm8gc2lsbHkgX0RZTkFNSUMgc3ltYm9scwor KwkgICMgYXJlIHJlcXVpcmVkIHRvIGxpbmspLgorKwkgIGlmIHRlc3QgLW4gIiRvbGRfbGlicmFy eSI7IHRoZW4KKysJICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRkaXIvJG9sZF9s aWJyYXJ5IgorKwkgICAgIyBLZWVwIGEgbGlzdCBvZiBwcmVvcGVuZWQgY29udmVuaWVuY2UgbGli cmFyaWVzIHRvIGNoZWNrCisrCSAgICAjIHRoYXQgdGhleSBhcmUgYmVpbmcgdXNlZCBjb3JyZWN0 bHkgaW4gdGhlIGxpbmsgcGFzcy4KKysJICAgIHRlc3QgLXogIiRsaWJkaXIiICYmIFwKKysJCWRs cHJlY29udmVuaWVuY2VsaWJzPSIkZGxwcmVjb252ZW5pZW5jZWxpYnMgJGRpci8kb2xkX2xpYnJh cnkiCisrCSAgIyBPdGhlcndpc2UsIHVzZSB0aGUgZGxuYW1lLCBzbyB0aGF0IGx0X2Rsb3BlbiBm aW5kcyBpdC4KKysJICBlbGlmIHRlc3QgLW4gIiRkbG5hbWUiOyB0aGVuCisrCSAgICBuZXdkbHBy ZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGlyLyRkbG5hbWUiCisrCSAgZWxzZQorKwkgICAgbmV3 ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRpci8kbGlua2xpYiIKKysJICBmaQorKwlmaSAj ICRwYXNzID0gZGxwcmVvcGVuCisrCisrCWlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCisrCSAg IyBMaW5rIHRoZSBjb252ZW5pZW5jZSBsaWJyYXJ5CisrCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9 IGxpYjsgdGhlbgorKwkgICAgZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGRlcGxpYnMiCisr CSAgZWxpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KKysJICAg IGNvbXBpbGVfZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGNvbXBpbGVfZGVwbGlicyIKKysJ ICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkaXIvJG9sZF9saWJyYXJ5ICRmaW5hbGl6ZV9kZXBsaWJz IgorKwkgIGVsc2UKKysJICAgIGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiICMgdXNlZCBmb3IgcHJv ZyxzY2FuIHBhc3MKKysJICBmaQorKwkgIGNvbnRpbnVlCisrCWZpCisrCisrCisrCWlmIHRlc3Qg IiRsaW5rbW9kZSIgPSBwcm9nICYmIHRlc3QgIiRwYXNzIiAhPSBsaW5rOyB0aGVuCisrCSAgbmV3 bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRsYWRpciIKKysJICBkZXBsaWJz PSIkbGliICRkZXBsaWJzIgorKworKwkgIGxpbmthbGxkZXBsaWJzPW5vCisrCSAgaWYgdGVzdCAi JGxpbmtfYWxsX2RlcGxpYnMiICE9IG5vIHx8IHRlc3QgLXogIiRsaWJyYXJ5X25hbWVzIiB8fAor KwkgICAgIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KKysJICAgIGxpbmth bGxkZXBsaWJzPXllcworKwkgIGZpCisrCisrCSAgdG1wX2xpYnM9CisrCSAgZm9yIGRlcGxpYiBp biAkZGVwZW5kZW5jeV9saWJzOyBkbworKwkgICAgY2FzZSAkZGVwbGliIGluCisrCSAgICAtTCop IGZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRkZXBsaWIiCisrCSAgICAgICAgIG5ld2xpYl9zZWFy Y2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorKwkJ IDs7CisrCSAgICBlc2FjCisrCSAgICAjIE5lZWQgdG8gbGluayBhZ2FpbnN0IGFsbCBkZXBlbmRl bmN5X2xpYnM/CisrCSAgICBpZiB0ZXN0ICIkbGlua2FsbGRlcGxpYnMiID0geWVzOyB0aGVuCisr CSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICBlbHNlCisrCSAgICAgICMg TmVlZCB0byBoYXJkY29kZSBzaGFyZWQgbGlicmFyeSBwYXRocworKwkgICAgICAjIG9yL2FuZCBs aW5rIGFnYWluc3Qgc3RhdGljIGxpYnJhcmllcworKwkgICAgICBuZXdkZXBlbmRlbmN5X2xpYnM9 IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKKysJICAgIGZpCisrCSAgICBpZiAkb3B0X2R1 cGxpY2F0ZV9kZXBzIDsgdGhlbgorKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgorKwkgICAg ICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIi IDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRk ZXBsaWIiCisrCSAgZG9uZSAjIGZvciBkZXBsaWIKKysJICBjb250aW51ZQorKwlmaSAjICRsaW5r bW9kZSA9IHByb2cuLi4KKysKKysJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxp bmsiOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYmCisrCSAgICAgeyB7 IHRlc3QgIiRwcmVmZXJfc3RhdGljX2xpYnMiID0gbm8gfHwKKysJICAgICAgICAgdGVzdCAiJHBy ZWZlcl9zdGF0aWNfbGlicywkaW5zdGFsbGVkIiA9ICJidWlsdCx5ZXMiOyB9IHx8CisrCSAgICAg ICB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiOyB9OyB0aGVuCisrCSAgICAjIFdlIG5lZWQgdG8gaGFy ZGNvZGUgdGhlIGxpYnJhcnkgcGF0aAorKwkgICAgaWYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIi ICYmIHRlc3QgLXogIiRhdm9pZHRlbXBycGF0aCIgOyB0aGVuCisrCSAgICAgICMgTWFrZSBzdXJl IHRoZSBycGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KKysJICAgICAgY2Fz ZSAiJHRlbXBfcnBhdGg6IiBpbgorKwkgICAgICAqIiRhYnNkaXI6IiopIDs7CisrCSAgICAgICop IHRlbXBfcnBhdGg9IiR0ZW1wX3JwYXRoJGFic2RpcjoiIDs7CisrCSAgICAgIGVzYWMKKysJICAg IGZpCisrCisrCSAgICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGguCisrCSAgICAjIFNraXAg ZGlyZWN0b3JpZXMgdGhhdCBhcmUgaW4gdGhlIHN5c3RlbSBkZWZhdWx0IHJ1bi10aW1lCisrCSAg ICAjIHNlYXJjaCBwYXRoLgorKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBp bgorKwkgICAgKiIgJGFic2RpciAiKikgOzsKKysJICAgICopCisrCSAgICAgIGNhc2UgIiRjb21w aWxlX3JwYXRoICIgaW4KKysJICAgICAgKiIgJGFic2RpciAiKikgOzsKKysJICAgICAgKikgY29t cGlsZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGggJGFic2RpciIKKysJICAgICAgZXNhYworKwkgICAg ICA7OworKwkgICAgZXNhYworKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBp bgorKwkgICAgKiIgJGxpYmRpciAiKikgOzsKKysJICAgICopCisrCSAgICAgIGNhc2UgIiRmaW5h bGl6ZV9ycGF0aCAiIGluCisrCSAgICAgICoiICRsaWJkaXIgIiopIDs7CisrCSAgICAgICopIGZp bmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIKKysJICAgICAgZXNhYworKwkg ICAgICA7OworKwkgICAgZXNhYworKwkgIGZpICMgJGxpbmttb2RlLCRwYXNzID0gcHJvZyxsaW5r Li4uCisrCisrCSAgaWYgdGVzdCAiJGFsbGRlcGxpYnMiID0geWVzICYmCisrCSAgICAgeyB0ZXN0 ICIkZGVwbGlic19jaGVja19tZXRob2QiID0gcGFzc19hbGwgfHwKKysJICAgICAgIHsgdGVzdCAi JGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYKKysJCSB0ZXN0IC1uICIkbGlicmFyeV9uYW1l cyI7IH07IH07IHRoZW4KKysJICAgICMgV2Ugb25seSBuZWVkIHRvIHNlYXJjaCBmb3Igc3RhdGlj IGxpYnJhcmllcworKwkgICAgY29udGludWUKKysJICBmaQorKwlmaQorKworKwlsaW5rX3N0YXRp Yz1ubyAjIFdoZXRoZXIgdGhlIGRlcGxpYiB3aWxsIGJlIGxpbmtlZCBzdGF0aWNhbGx5CisrCXVz ZV9zdGF0aWNfbGlicz0kcHJlZmVyX3N0YXRpY19saWJzCisrCWlmIHRlc3QgIiR1c2Vfc3RhdGlj X2xpYnMiID0gYnVpbHQgJiYgdGVzdCAiJGluc3RhbGxlZCIgPSB5ZXM7IHRoZW4KKysJICB1c2Vf c3RhdGljX2xpYnM9bm8KKysJZmkKKysJaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYmCisr CSAgIHsgdGVzdCAiJHVzZV9zdGF0aWNfbGlicyIgPSBubyB8fCB0ZXN0IC16ICIkb2xkX2xpYnJh cnkiOyB9OyB0aGVuCisrCSAgY2FzZSAkaG9zdCBpbgorKwkgICpjeWd3aW4qIHwgKm1pbmd3KiB8 ICpjZWdjYyopCisrCSAgICAgICMgTm8gcG9pbnQgaW4gcmVsaW5raW5nIERMTHMgYmVjYXVzZSBw YXRocyBhcmUgbm90IGVuY29kZWQKKysJICAgICAgbm90aW5zdF9kZXBsaWJzPSIkbm90aW5zdF9k ZXBsaWJzICRsaWIiCisrCSAgICAgIG5lZWRfcmVsaW5rPW5vCisrCSAgICA7OworKwkgICopCisr CSAgICBpZiB0ZXN0ICIkaW5zdGFsbGVkIiA9IG5vOyB0aGVuCisrCSAgICAgIG5vdGluc3RfZGVw bGlicz0iJG5vdGluc3RfZGVwbGlicyAkbGliIgorKwkgICAgICBuZWVkX3JlbGluaz15ZXMKKysJ ICAgIGZpCisrCSAgICA7OworKwkgIGVzYWMKKysJICAjIFRoaXMgaXMgYSBzaGFyZWQgbGlicmFy eQorKworKwkgICMgV2FybiBhYm91dCBwb3J0YWJpbGl0eSwgY2FuJ3QgbGluayBhZ2FpbnN0IC1t b2R1bGUncyBvbiBzb21lCisrCSAgIyBzeXN0ZW1zIChkYXJ3aW4pLiAgRG9uJ3QgYmxlYXQgYWJv dXQgZGxvcGVuZWQgbW9kdWxlcyB0aG91Z2ghCisrCSAgZGxvcGVubW9kdWxlPSIiCisrCSAgZm9y IGRscHJlbW9kdWxldGVzdCBpbiAkZGxwcmVmaWxlczsgZG8KKysJICAgIGlmIHRlc3QgIlgkZGxw cmVtb2R1bGV0ZXN0IiA9ICJYJGxpYiI7IHRoZW4KKysJICAgICAgZGxvcGVubW9kdWxlPSIkZGxw cmVtb2R1bGV0ZXN0IgorKwkgICAgICBicmVhaworKwkgICAgZmkKKysJICBkb25lCisrCSAgaWYg dGVzdCAteiAiJGRsb3Blbm1vZHVsZSIgJiYgdGVzdCAiJHNob3VsZG5vdGxpbmsiID0geWVzICYm IHRlc3QgIiRwYXNzIiA9IGxpbms7IHRoZW4KKysJICAgIGVjaG8KKysJICAgIGlmIHRlc3QgIiRs aW5rbW9kZSIgPSBwcm9nOyB0aGVuCisrCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogTGlua2lu ZyB0aGUgZXhlY3V0YWJsZSAkb3V0cHV0IGFnYWluc3QgdGhlIGxvYWRhYmxlIG1vZHVsZSIKKysJ ICAgIGVsc2UKKysJICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBzaGFyZWQg bGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIGxvYWRhYmxlIG1vZHVsZSIKKysJICAgIGZpCisr CSAgICAkRUNITyAiKioqICRsaW5rbGliIGlzIG5vdCBwb3J0YWJsZSEiCisrCSAgZmkKKysJICBp ZiB0ZXN0ICIkbGlua21vZGUiID0gbGliICYmCisrCSAgICAgdGVzdCAiJGhhcmRjb2RlX2ludG9f bGlicyIgPSB5ZXM7IHRoZW4KKysJICAgICMgSGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aC4KKysJ ICAgICMgU2tpcCBkaXJlY3RvcmllcyB0aGF0IGFyZSBpbiB0aGUgc3lzdGVtIGRlZmF1bHQgcnVu LXRpbWUKKysJICAgICMgc2VhcmNoIHBhdGguCisrCSAgICBjYXNlICIgJHN5c19saWJfZGxzZWFy Y2hfcGF0aCAiIGluCisrCSAgICAqIiAkYWJzZGlyICIqKSA7OworKwkgICAgKikKKysJICAgICAg Y2FzZSAiJGNvbXBpbGVfcnBhdGggIiBpbgorKwkgICAgICAqIiAkYWJzZGlyICIqKSA7OworKwkg ICAgICAqKSBjb21waWxlX3JwYXRoPSIkY29tcGlsZV9ycGF0aCAkYWJzZGlyIgorKwkgICAgICBl c2FjCisrCSAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgICBjYXNlICIgJHN5c19saWJfZGxzZWFy Y2hfcGF0aCAiIGluCisrCSAgICAqIiAkbGliZGlyICIqKSA7OworKwkgICAgKikKKysJICAgICAg Y2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KKysJICAgICAgKiIgJGxpYmRpciAiKikgOzsKKysJ ICAgICAgKikgZmluYWxpemVfcnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCAkbGliZGlyIgorKwkgICAg ICBlc2FjCisrCSAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgZmkKKysKKysJICBpZiB0ZXN0IC1u ICIkb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMiOyB0aGVuCisrCSAgICAjIGZpZ3VyZSBv dXQgdGhlIHNvbmFtZQorKwkgICAgc2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzCisrCSAgICBzaGlm dAorKwkgICAgcmVhbG5hbWU9IiQxIgorKwkgICAgc2hpZnQKKysJICAgIGxpYm5hbWU9YGV2YWwg IlxcJEVDSE8gXCIkbGlibmFtZV9zcGVjXCIiYAorKwkgICAgIyB1c2UgZGxuYW1lIGlmIHdlIGdv dCBpdC4gaXQncyBwZXJmZWN0bHkgZ29vZCwgbm8/CisrCSAgICBpZiB0ZXN0IC1uICIkZGxuYW1l IjsgdGhlbgorKwkgICAgICBzb25hbWU9IiRkbG5hbWUiCisrCSAgICBlbGlmIHRlc3QgLW4gIiRz b25hbWVfc3BlYyI7IHRoZW4KKysJICAgICAgIyBibGVoIHdpbmRvd3MKKysJICAgICAgY2FzZSAk aG9zdCBpbgorKwkgICAgICAqY3lnd2luKiB8IG1pbmd3KiB8ICpjZWdjYyopCisrCSAgICAgICAg ZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKKysJCW1ham9yPSRmdW5jX2FyaXRoX3Jlc3VsdAor KwkJdmVyc3VmZml4PSItJG1ham9yIgorKwkJOzsKKysJICAgICAgZXNhYworKwkgICAgICBldmFs IHNvbmFtZT1cIiRzb25hbWVfc3BlY1wiCisrCSAgICBlbHNlCisrCSAgICAgIHNvbmFtZT0iJHJl YWxuYW1lIgorKwkgICAgZmkKKysKKysJICAgICMgTWFrZSBhIG5ldyBuYW1lIGZvciB0aGUgZXh0 cmFjdF9leHBzeW1zX2NtZHMgdG8gdXNlCisrCSAgICBzb3Jvb3Q9IiRzb25hbWUiCisrCSAgICBm dW5jX2Jhc2VuYW1lICIkc29yb290IgorKwkgICAgc29uYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1 bHQiCisrCSAgICBmdW5jX3N0cmlwbmFtZSAnbGliJyAnLmRsbCcgIiRzb25hbWUiCisrCSAgICBu ZXdsaWI9bGliaW1wLSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQuYQorKworKwkgICAgIyBJZiB0aGUg bGlicmFyeSBoYXMgbm8gZXhwb3J0IGxpc3QsIHRoZW4gY3JlYXRlIG9uZSBub3cKKysJICAgIGlm IHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRzb25hbWUtZGVmIjsgdGhlbiA6CisrCSAgICBlbHNl CisrCSAgICAgIGZ1bmNfdmVyYm9zZSAiZXh0cmFjdGluZyBleHBvcnRlZCBzeW1ib2wgbGlzdCBm cm9tIFxgJHNvbmFtZSciCisrCSAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkZXh0cmFjdF9leHBz eW1zX2NtZHMiICdleGl0ICQ/JworKwkgICAgZmkKKysKKysJICAgICMgQ3JlYXRlICRuZXdsaWIK KysJICAgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRuZXdsaWIiOyB0aGVuIDo7IGVsc2UK KysJICAgICAgZnVuY192ZXJib3NlICJnZW5lcmF0aW5nIGltcG9ydCBsaWJyYXJ5IGZvciBcYCRz b25hbWUnIgorKwkgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJG9sZF9hcmNoaXZlX2Zyb21fZXhw c3ltc19jbWRzIiAnZXhpdCAkPycKKysJICAgIGZpCisrCSAgICAjIG1ha2Ugc3VyZSB0aGUgbGli cmFyeSB2YXJpYWJsZXMgYXJlIHBvaW50aW5nIHRvIHRoZSBuZXcgbGlicmFyeQorKwkgICAgZGly PSRvdXRwdXRfb2JqZGlyCisrCSAgICBsaW5rbGliPSRuZXdsaWIKKysJICBmaSAjIHRlc3QgLW4g IiRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyIKKysKKysJICBpZiB0ZXN0ICIkbGlua21v ZGUiID0gcHJvZyB8fCB0ZXN0ICIkbW9kZSIgIT0gcmVsaW5rOyB0aGVuCisrCSAgICBhZGRfc2hs aWJwYXRoPQorKwkgICAgYWRkX2Rpcj0KKysJICAgIGFkZD0KKysJICAgIGxpYl9saW5rZWQ9eWVz CisrCSAgICBjYXNlICRoYXJkY29kZV9hY3Rpb24gaW4KKysJICAgIGltbWVkaWF0ZSB8IHVuc3Vw cG9ydGVkKQorKwkgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IG5vOyB0aGVuCisr CQlhZGQ9IiRkaXIvJGxpbmtsaWIiCisrCQljYXNlICRob3N0IGluCisrCQkgICotKi1zY28zLjJ2 NS4wLlswMjRdKikgYWRkX2Rpcj0iLUwkZGlyIiA7OworKwkJICAqLSotc3lzdjQqdXcyKikgYWRk X2Rpcj0iLUwkZGlyIiA7OworKwkJICAqLSotc3lzdjVPcGVuVU5JWCogfCAqLSotc3lzdjVVbml4 V2FyZTcuWzAxXS5bMTBdKiB8IFwKKysJCSAgICAqLSotdW5peHdhcmU3KikgYWRkX2Rpcj0iLUwk ZGlyIiA7OworKwkJICAqLSotZGFyd2luKiApCisrCQkgICAgIyBpZiB0aGUgbGliIGlzIGEgKG5v bi1kbG9wZW5lZCkgbW9kdWxlIHRoZW4gd2UgY2FuIG5vdAorKwkJICAgICMgbGluayBhZ2FpbnN0 IGl0LCBzb21lb25lIGlzIGlnbm9yaW5nIHRoZSBlYXJsaWVyIHdhcm5pbmdzCisrCQkgICAgaWYg L3Vzci9iaW4vZmlsZSAtTCAkYWRkIDI+IC9kZXYvbnVsbCB8CisrCQkJICRHUkVQICI6IFteOl0q IGJ1bmRsZSIgPi9kZXYvbnVsbCA7IHRoZW4KKysJCSAgICAgIGlmIHRlc3QgIlgkZGxvcGVubW9k dWxlIiAhPSAiWCRsaWIiOyB0aGVuCisrCQkJJEVDSE8gIioqKiBXYXJuaW5nOiBsaWIgJGxpbmts aWIgaXMgYSBtb2R1bGUsIG5vdCBhIHNoYXJlZCBsaWJyYXJ5IgorKwkJCWlmIHRlc3QgLXogIiRv bGRfbGlicmFyeSIgOyB0aGVuCisrCQkJICBlY2hvCisrCQkJICBlY2hvICIqKiogQW5kIHRoZXJl IGRvZXNuJ3Qgc2VlbSB0byBiZSBhIHN0YXRpYyBhcmNoaXZlIGF2YWlsYWJsZSIKKysJCQkgIGVj aG8gIioqKiBUaGUgbGluayB3aWxsIHByb2JhYmx5IGZhaWwsIHNvcnJ5IgorKwkJCWVsc2UKKysJ CQkgIGFkZD0iJGRpci8kb2xkX2xpYnJhcnkiCisrCQkJZmkKKysJCSAgICAgIGVsaWYgdGVzdCAt biAiJG9sZF9saWJyYXJ5IjsgdGhlbgorKwkJCWFkZD0iJGRpci8kb2xkX2xpYnJhcnkiCisrCQkg ICAgICBmaQorKwkJICAgIGZpCisrCQllc2FjCisrCSAgICAgIGVsaWYgdGVzdCAiJGhhcmRjb2Rl X21pbnVzX0wiID0gbm87IHRoZW4KKysJCWNhc2UgJGhvc3QgaW4KKysJCSotKi1zdW5vcyopIGFk ZF9zaGxpYnBhdGg9IiRkaXIiIDs7CisrCQllc2FjCisrCQlhZGRfZGlyPSItTCRkaXIiCisrCQlh ZGQ9Ii1sJG5hbWUiCisrCSAgICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIi ID0gbm87IHRoZW4KKysJCWFkZF9zaGxpYnBhdGg9IiRkaXIiCisrCQlhZGQ9Ii1sJG5hbWUiCisr CSAgICAgIGVsc2UKKysJCWxpYl9saW5rZWQ9bm8KKysJICAgICAgZmkKKysJICAgICAgOzsKKysJ ICAgIHJlbGluaykKKysJICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSB5ZXMgJiYK KysJICAgICAgICAgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSIgPSBubzsgdGhlbgor KwkJYWRkPSIkZGlyLyRsaW5rbGliIgorKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9taW51 c19MIiA9IHllczsgdGhlbgorKwkJYWRkX2Rpcj0iLUwkZGlyIgorKwkJIyBUcnkgbG9va2luZyBm aXJzdCBpbiB0aGUgbG9jYXRpb24gd2UncmUgYmVpbmcgaW5zdGFsbGVkIHRvLgorKwkJaWYgdGVz dCAtbiAiJGluc3RfcHJlZml4X2RpciI7IHRoZW4KKysJCSAgY2FzZSAkbGliZGlyIGluCisrCQkg ICAgW1xcL10qKQorKwkJICAgICAgYWRkX2Rpcj0iJGFkZF9kaXIgLUwkaW5zdF9wcmVmaXhfZGly JGxpYmRpciIKKysJCSAgICAgIDs7CisrCQkgIGVzYWMKKysJCWZpCisrCQlhZGQ9Ii1sJG5hbWUi CisrCSAgICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0geWVzOyB0aGVu CisrCQlhZGRfc2hsaWJwYXRoPSIkZGlyIgorKwkJYWRkPSItbCRuYW1lIgorKwkgICAgICBlbHNl CisrCQlsaWJfbGlua2VkPW5vCisrCSAgICAgIGZpCisrCSAgICAgIDs7CisrCSAgICAqKSBsaWJf bGlua2VkPW5vIDs7CisrCSAgICBlc2FjCisrCisrCSAgICBpZiB0ZXN0ICIkbGliX2xpbmtlZCIg IT0geWVzOyB0aGVuCisrCSAgICAgIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAidW5zdXBwb3J0 ZWQgaGFyZGNvZGUgcHJvcGVydGllcyIKKysJICAgIGZpCisrCisrCSAgICBpZiB0ZXN0IC1uICIk YWRkX3NobGlicGF0aCI7IHRoZW4KKysJICAgICAgY2FzZSA6JGNvbXBpbGVfc2hsaWJwYXRoOiBp bgorKwkgICAgICAqIjokYWRkX3NobGlicGF0aDoiKikgOzsKKysJICAgICAgKikgY29tcGlsZV9z aGxpYnBhdGg9IiRjb21waWxlX3NobGlicGF0aCRhZGRfc2hsaWJwYXRoOiIgOzsKKysJICAgICAg ZXNhYworKwkgICAgZmkKKysJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCisr CSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBjb21waWxlX2RlcGxpYnM9IiRhZGRfZGlyICRj b21waWxlX2RlcGxpYnMiCisrCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGNvbXBpbGVfZGVwbGli cz0iJGFkZCAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgZWxzZQorKwkgICAgICB0ZXN0IC1uICIk YWRkX2RpciIgJiYgZGVwbGlicz0iJGFkZF9kaXIgJGRlcGxpYnMiCisrCSAgICAgIHRlc3QgLW4g IiRhZGQiICYmIGRlcGxpYnM9IiRhZGQgJGRlcGxpYnMiCisrCSAgICAgIGlmIHRlc3QgIiRoYXJk Y29kZV9kaXJlY3QiICE9IHllcyAmJgorKwkJIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiAhPSB5 ZXMgJiYKKysJCSB0ZXN0ICIkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgPSB5ZXM7IHRoZW4KKysJ CWNhc2UgOiRmaW5hbGl6ZV9zaGxpYnBhdGg6IGluCisrCQkqIjokbGliZGlyOiIqKSA7OworKwkJ KikgZmluYWxpemVfc2hsaWJwYXRoPSIkZmluYWxpemVfc2hsaWJwYXRoJGxpYmRpcjoiIDs7Cisr CQllc2FjCisrCSAgICAgIGZpCisrCSAgICBmaQorKwkgIGZpCisrCisrCSAgaWYgdGVzdCAiJGxp bmttb2RlIiA9IHByb2cgfHwgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisrCSAgICBhZGRf c2hsaWJwYXRoPQorKwkgICAgYWRkX2Rpcj0KKysJICAgIGFkZD0KKysJICAgICMgRmluYWxpemUg Y29tbWFuZCBmb3IgYm90aCBpcyBzaW1wbGU6IGp1c3QgaGFyZGNvZGUgaXQuCisrCSAgICBpZiB0 ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IHllcyAmJgorKwkgICAgICAgdGVzdCAiJGhhcmRjb2Rl X2RpcmVjdF9hYnNvbHV0ZSIgPSBubzsgdGhlbgorKwkgICAgICBhZGQ9IiRsaWJkaXIvJGxpbmts aWIiCisrCSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiA9IHllczsgdGhlbgorKwkg ICAgICBhZGRfZGlyPSItTCRsaWJkaXIiCisrCSAgICAgIGFkZD0iLWwkbmFtZSIKKysJICAgIGVs aWYgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0geWVzOyB0aGVuCisrCSAgICAgIGNh c2UgOiRmaW5hbGl6ZV9zaGxpYnBhdGg6IGluCisrCSAgICAgICoiOiRsaWJkaXI6IiopIDs7Cisr CSAgICAgICopIGZpbmFsaXplX3NobGlicGF0aD0iJGZpbmFsaXplX3NobGlicGF0aCRsaWJkaXI6 IiA7OworKwkgICAgICBlc2FjCisrCSAgICAgIGFkZD0iLWwkbmFtZSIKKysJICAgIGVsaWYgdGVz dCAiJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSB5ZXM7IHRoZW4KKysJICAgICAgaWYgdGVzdCAtbiAi JGluc3RfcHJlZml4X2RpciIgJiYKKysJCSB0ZXN0IC1mICIkaW5zdF9wcmVmaXhfZGlyJGxpYmRp ci8kbGlua2xpYiIgOyB0aGVuCisrCQlhZGQ9IiRpbnN0X3ByZWZpeF9kaXIkbGliZGlyLyRsaW5r bGliIgorKwkgICAgICBlbHNlCisrCQlhZGQ9IiRsaWJkaXIvJGxpbmtsaWIiCisrCSAgICAgIGZp CisrCSAgICBlbHNlCisrCSAgICAgICMgV2UgY2Fubm90IHNlZW0gdG8gaGFyZGNvZGUgaXQsIGd1 ZXNzIHdlJ2xsIGZha2UgaXQuCisrCSAgICAgIGFkZF9kaXI9Ii1MJGxpYmRpciIKKysJICAgICAg IyBUcnkgbG9va2luZyBmaXJzdCBpbiB0aGUgbG9jYXRpb24gd2UncmUgYmVpbmcgaW5zdGFsbGVk IHRvLgorKwkgICAgICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsgdGhlbgorKwkJY2Fz ZSAkbGliZGlyIGluCisrCQkgIFtcXC9dKikKKysJCSAgICBhZGRfZGlyPSIkYWRkX2RpciAtTCRp bnN0X3ByZWZpeF9kaXIkbGliZGlyIgorKwkJICAgIDs7CisrCQllc2FjCisrCSAgICAgIGZpCisr CSAgICAgIGFkZD0iLWwkbmFtZSIKKysJICAgIGZpCisrCisrCSAgICBpZiB0ZXN0ICIkbGlua21v ZGUiID0gcHJvZzsgdGhlbgorKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgZmluYWxpemVf ZGVwbGlicz0iJGFkZF9kaXIgJGZpbmFsaXplX2RlcGxpYnMiCisrCSAgICAgIHRlc3QgLW4gIiRh ZGQiICYmIGZpbmFsaXplX2RlcGxpYnM9IiRhZGQgJGZpbmFsaXplX2RlcGxpYnMiCisrCSAgICBl bHNlCisrCSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBkZXBsaWJzPSIkYWRkX2RpciAkZGVw bGlicyIKKysJICAgICAgdGVzdCAtbiAiJGFkZCIgJiYgZGVwbGlicz0iJGFkZCAkZGVwbGlicyIK KysJICAgIGZpCisrCSAgZmkKKysJZWxpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgor KwkgICMgSGVyZSB3ZSBhc3N1bWUgdGhhdCBvbmUgb2YgaGFyZGNvZGVfZGlyZWN0IG9yIGhhcmRj b2RlX21pbnVzX0wKKysJICAjIGlzIG5vdCB1bnN1cHBvcnRlZC4gIFRoaXMgaXMgdmFsaWQgb24g YWxsIGtub3duIHN0YXRpYyBhbmQKKysJICAjIHNoYXJlZCBwbGF0Zm9ybXMuCisrCSAgaWYgdGVz dCAiJGhhcmRjb2RlX2RpcmVjdCIgIT0gdW5zdXBwb3J0ZWQ7IHRoZW4KKysJICAgIHRlc3QgLW4g IiRvbGRfbGlicmFyeSIgJiYgbGlua2xpYj0iJG9sZF9saWJyYXJ5IgorKwkgICAgY29tcGlsZV9k ZXBsaWJzPSIkZGlyLyRsaW5rbGliICRjb21waWxlX2RlcGxpYnMiCisrCSAgICBmaW5hbGl6ZV9k ZXBsaWJzPSIkZGlyLyRsaW5rbGliICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgIGVsc2UKKysJICAg IGNvbXBpbGVfZGVwbGlicz0iLWwkbmFtZSAtTCRkaXIgJGNvbXBpbGVfZGVwbGlicyIKKysJICAg IGZpbmFsaXplX2RlcGxpYnM9Ii1sJG5hbWUgLUwkZGlyICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkg IGZpCisrCWVsaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KKysJICAj IE5vdCBhIHNoYXJlZCBsaWJyYXJ5CisrCSAgaWYgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9k IiAhPSBwYXNzX2FsbDsgdGhlbgorKwkgICAgIyBXZSdyZSB0cnlpbmcgbGluayBhIHNoYXJlZCBs aWJyYXJ5IGFnYWluc3QgYSBzdGF0aWMgb25lCisrCSAgICAjIGJ1dCB0aGUgc3lzdGVtIGRvZXNu J3Qgc3VwcG9ydCBpdC4KKysKKysJICAgICMgSnVzdCBwcmludCBhIHdhcm5pbmcgYW5kIGFkZCB0 aGUgbGlicmFyeSB0byBkZXBlbmRlbmN5X2xpYnMgc28KKysJICAgICMgdGhhdCB0aGUgcHJvZ3Jh bSBjYW4gYmUgbGlua2VkIGFnYWluc3QgdGhlIHN0YXRpYyBsaWJyYXJ5LgorKwkgICAgZWNobwor KwkgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBUaGlzIHN5c3RlbSBjYW4gbm90IGxpbmsgdG8gc3Rh dGljIGxpYiBhcmNoaXZlICRsaWIuIgorKwkgICAgZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJp bGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKysJ ICAgIGVjaG8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBk byB0aGlzIGlmIHlvdSBoYXZlIGEiCisrCSAgICBlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2Yg dGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUuIgorKwkgICAgaWYg dGVzdCAiJG1vZHVsZSIgPSB5ZXM7IHRoZW4KKysJICAgICAgZWNobyAiKioqIEJ1dCBhcyB5b3Ug dHJ5IHRvIGJ1aWxkIGEgbW9kdWxlIGxpYnJhcnksIGxpYnRvb2wgd2lsbCBzdGlsbCBjcmVhdGUg IgorKwkgICAgICBlY2hvICIqKiogYSBzdGF0aWMgbW9kdWxlLCB0aGF0IHNob3VsZCB3b3JrIGFz IGxvbmcgYXMgdGhlIGRsb3BlbmluZyBhcHBsaWNhdGlvbiIKKysJICAgICAgZWNobyAiKioqIGlz IGxpbmtlZCB3aXRoIHRoZSAtZGxvcGVuIGZsYWcgdG8gcmVzb2x2ZSBzeW1ib2xzIGF0IHJ1bnRp bWUuIgorKwkgICAgICBpZiB0ZXN0IC16ICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgorKwkJ ZWNobworKwkJZWNobyAiKioqIEhvd2V2ZXIsIHRoaXMgd291bGQgb25seSB3b3JrIGlmIGxpYnRv b2wgd2FzIGFibGUgdG8gZXh0cmFjdCBzeW1ib2wiCisrCQllY2hvICIqKiogbGlzdHMgZnJvbSBh IHByb2dyYW0sIHVzaW5nIFxgbm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgor KwkJZWNobyAiKioqIG5vdCBmaW5kIHN1Y2ggYSBwcm9ncmFtLiAgU28sIHRoaXMgbW9kdWxlIGlz IHByb2JhYmx5IHVzZWxlc3MuIgorKwkJZWNobyAiKioqIFxgbm0nIGZyb20gR05VIGJpbnV0aWxz IGFuZCBhIGZ1bGwgcmVidWlsZCBtYXkgaGVscC4iCisrCSAgICAgIGZpCisrCSAgICAgIGlmIHRl c3QgIiRidWlsZF9vbGRfbGlicyIgPSBubzsgdGhlbgorKwkJYnVpbGRfbGlidG9vbF9saWJzPW1v ZHVsZQorKwkJYnVpbGRfb2xkX2xpYnM9eWVzCisrCSAgICAgIGVsc2UKKysJCWJ1aWxkX2xpYnRv b2xfbGlicz1ubworKwkgICAgICBmaQorKwkgICAgZmkKKysJICBlbHNlCisrCSAgICBkZXBsaWJz PSIkZGlyLyRvbGRfbGlicmFyeSAkZGVwbGlicyIKKysJICAgIGxpbmtfc3RhdGljPXllcworKwkg IGZpCisrCWZpICMgbGluayBzaGFyZWQvc3RhdGljIGxpYnJhcnk/CisrCisrCWlmIHRlc3QgIiRs aW5rbW9kZSIgPSBsaWI7IHRoZW4KKysJICBpZiB0ZXN0IC1uICIkZGVwZW5kZW5jeV9saWJzIiAm JgorKwkgICAgIHsgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIgIT0geWVzIHx8CisrCSAgICAg ICB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzIHx8CisrCSAgICAgICB0ZXN0ICIkbGlua19z dGF0aWMiID0geWVzOyB9OyB0aGVuCisrCSAgICAjIEV4dHJhY3QgLVIgZnJvbSBkZXBlbmRlbmN5 X2xpYnMKKysJICAgIHRlbXBfZGVwbGlicz0KKysJICAgIGZvciBsaWJkaXIgaW4gJGRlcGVuZGVu Y3lfbGliczsgZG8KKysJICAgICAgY2FzZSAkbGliZGlyIGluCisrCSAgICAgIC1SKikgZnVuY19z dHJpcG5hbWUgJy1SJyAnJyAiJGxpYmRpciIKKysJICAgICAgICAgICB0ZW1wX3hycGF0aD0kZnVu Y19zdHJpcG5hbWVfcmVzdWx0CisrCQkgICBjYXNlICIgJHhycGF0aCAiIGluCisrCQkgICAqIiAk dGVtcF94cnBhdGggIiopIDs7CisrCQkgICAqKSB4cnBhdGg9IiR4cnBhdGggJHRlbXBfeHJwYXRo Ijs7CisrCQkgICBlc2FjOzsKKysJICAgICAgKikgdGVtcF9kZXBsaWJzPSIkdGVtcF9kZXBsaWJz ICRsaWJkaXIiOzsKKysJICAgICAgZXNhYworKwkgICAgZG9uZQorKwkgICAgZGVwZW5kZW5jeV9s aWJzPSIkdGVtcF9kZXBsaWJzIgorKwkgIGZpCisrCisrCSAgbmV3bGliX3NlYXJjaF9wYXRoPSIk bmV3bGliX3NlYXJjaF9wYXRoICRhYnNkaXIiCisrCSAgIyBMaW5rIGFnYWluc3QgdGhpcyBsaWJy YXJ5CisrCSAgdGVzdCAiJGxpbmtfc3RhdGljIiA9IG5vICYmIG5ld2RlcGVuZGVuY3lfbGlicz0i JGFic19sYWRpci8kbGFuYW1lICRuZXdkZXBlbmRlbmN5X2xpYnMiCisrCSAgIyAuLi4gYW5kIGl0 cyBkZXBlbmRlbmN5X2xpYnMKKysJICB0bXBfbGlicz0KKysJICBmb3IgZGVwbGliIGluICRkZXBl bmRlbmN5X2xpYnM7IGRvCisrCSAgICBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2Rl cGVuZGVuY3lfbGlicyIKKysJICAgIGlmICRvcHRfZHVwbGljYXRlX2RlcHMgOyB0aGVuCisrCSAg ICAgIGNhc2UgIiR0bXBfbGlicyAiIGluCisrCSAgICAgICoiICRkZXBsaWIgIiopIHNwZWNpYWxk ZXBsaWJzPSIkc3BlY2lhbGRlcGxpYnMgJGRlcGxpYiIgOzsKKysJICAgICAgZXNhYworKwkgICAg ZmkKKysJICAgIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIKKysJICBkb25lCisrCisrCSAg aWYgdGVzdCAiJGxpbmtfYWxsX2RlcGxpYnMiICE9IG5vOyB0aGVuCisrCSAgICAjIEFkZCB0aGUg c2VhcmNoIHBhdGhzIG9mIGFsbCBkZXBlbmRlbmN5IGxpYnJhcmllcworKwkgICAgZm9yIGRlcGxp YiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworKwkgICAgICBwYXRoPQorKwkgICAgICBjYXNlICRk ZXBsaWIgaW4KKysJICAgICAgLUwqKSBwYXRoPSIkZGVwbGliIiA7OworKwkgICAgICAqLmxhKQor KwkgICAgICAgIGZ1bmNfZGlybmFtZSAiJGRlcGxpYiIgIiIgIi4iCisrCQlkaXI9IiRmdW5jX2Rp cm5hbWVfcmVzdWx0IgorKwkJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCisrCQljYXNlICRk aXIgaW4KKysJCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgYWJzZGlyPSIkZGlyIiA7OworKwkJ KikKKysJCSAgYWJzZGlyPWBjZCAiJGRpciIgJiYgcHdkYAorKwkJICBpZiB0ZXN0IC16ICIkYWJz ZGlyIjsgdGhlbgorKwkJICAgIGZ1bmNfd2FybmluZyAiY2Fubm90IGRldGVybWluZSBhYnNvbHV0 ZSBkaXJlY3RvcnkgbmFtZSBvZiBcYCRkaXInIgorKwkJICAgIGFic2Rpcj0iJGRpciIKKysJCSAg ZmkKKysJCSAgOzsKKysJCWVzYWMKKysJCWlmICRHUkVQICJeaW5zdGFsbGVkPW5vIiAkZGVwbGli ID4gL2Rldi9udWxsOyB0aGVuCisrCQljYXNlICRob3N0IGluCisrCQkqLSotZGFyd2luKikKKysJ CSAgZGVwZGVwbD0KKysJCSAgZXZhbCBkZXBsaWJyYXJ5X25hbWVzPWAke1NFRH0gLW4gLWUgJ3Mv XmxpYnJhcnlfbmFtZXM9XCguKlwpJC9cMS9wJyAkZGVwbGliYAorKwkJICBpZiB0ZXN0IC1uICIk ZGVwbGlicmFyeV9uYW1lcyIgOyB0aGVuCisrCQkgICAgZm9yIHRtcCBpbiAkZGVwbGlicmFyeV9u YW1lcyA7IGRvCisrCQkgICAgICBkZXBkZXBsPSR0bXAKKysJCSAgICBkb25lCisrCQkgICAgaWYg dGVzdCAtZiAiJGFic2Rpci8kb2JqZGlyLyRkZXBkZXBsIiA7IHRoZW4KKysJCSAgICAgIGRlcGRl cGw9IiRhYnNkaXIvJG9iamRpci8kZGVwZGVwbCIKKysJCSAgICAgIGRhcndpbl9pbnN0YWxsX25h bWU9YCR7T1RPT0x9IC1MICRkZXBkZXBsIHwgYXdrICd7aWYgKE5SID09IDIpIHtwcmludCAkMTtl eGl0fX0nYAorKyAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkZGFyd2luX2luc3Rh bGxfbmFtZSI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgICAgIGRhcndpbl9pbnN0YWxs X25hbWU9YCR7T1RPT0w2NH0gLUwgJGRlcGRlcGwgIHwgYXdrICd7aWYgKE5SID09IDIpIHtwcmlu dCAkMTtleGl0fX0nYAorKyAgICAgICAgICAgICAgICAgICAgICBmaQorKwkJICAgICAgY29tcGls ZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAke3dsfS1keWxpYl9maWxlICR7d2x9JHtkYXJ3aW5f aW5zdGFsbF9uYW1lfToke2RlcGRlcGx9IgorKwkJICAgICAgbGlua2VyX2ZsYWdzPSIkbGlua2Vy X2ZsYWdzIC1keWxpYl9maWxlICR7ZGFyd2luX2luc3RhbGxfbmFtZX06JHtkZXBkZXBsfSIKKysJ CSAgICAgIHBhdGg9CisrCQkgICAgZmkKKysJCSAgZmkKKysJCSAgOzsKKysJCSopCisrCQkgIHBh dGg9Ii1MJGFic2Rpci8kb2JqZGlyIgorKwkJICA7OworKwkJZXNhYworKwkJZWxzZQorKwkJICBl dmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAkZGVwbGli YAorKwkJICB0ZXN0IC16ICIkbGliZGlyIiAmJiBcCisrCQkgICAgZnVuY19mYXRhbF9lcnJvciAi XGAkZGVwbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCisrCQkgIHRlc3QgIiRh YnNkaXIiICE9ICIkbGliZGlyIiAmJiBcCisrCQkgICAgZnVuY193YXJuaW5nICJcYCRkZXBsaWIn IHNlZW1zIHRvIGJlIG1vdmVkIgorKworKwkJICBwYXRoPSItTCRhYnNkaXIiCisrCQlmaQorKwkJ OzsKKysJICAgICAgZXNhYworKwkgICAgICBjYXNlICIgJGRlcGxpYnMgIiBpbgorKwkgICAgICAq IiAkcGF0aCAiKikgOzsKKysJICAgICAgKikgZGVwbGlicz0iJHBhdGggJGRlcGxpYnMiIDs7Cisr CSAgICAgIGVzYWMKKysJICAgIGRvbmUKKysJICBmaSAjIGxpbmtfYWxsX2RlcGxpYnMgIT0gbm8K KysJZmkgIyBsaW5rbW9kZSA9IGxpYgorKyAgICAgIGRvbmUgIyBmb3IgZGVwbGliIGluICRsaWJz CisrICAgICAgaWYgdGVzdCAiJHBhc3MiID0gbGluazsgdGhlbgorKwlpZiB0ZXN0ICIkbGlua21v ZGUiID0gInByb2ciOyB0aGVuCisrCSAgY29tcGlsZV9kZXBsaWJzPSIkbmV3X2luaGVyaXRlZF9s aW5rZXJfZmxhZ3MgJGNvbXBpbGVfZGVwbGlicyIKKysJICBmaW5hbGl6ZV9kZXBsaWJzPSIkbmV3 X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGZpbmFsaXplX2RlcGxpYnMiCisrCWVsc2UKKysJICBj b21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICJgJEVDSE8gIiAkbmV3X2luaGVyaXRlZF9s aW5rZXJfZmxhZ3MiIHwgJFNFRCAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29y ayBcMSVnJ2AKKysJZmkKKysgICAgICBmaQorKyAgICAgIGRlcGVuZGVuY3lfbGlicz0iJG5ld2Rl cGVuZGVuY3lfbGlicyIKKysgICAgICBpZiB0ZXN0ICIkcGFzcyIgPSBkbHByZW9wZW47IHRoZW4K KysJIyBMaW5rIHRoZSBkbHByZW9wZW5lZCBsaWJyYXJpZXMgYmVmb3JlIG90aGVyIGxpYnJhcmll cworKwlmb3IgZGVwbGliIGluICRzYXZlX2RlcGxpYnM7IGRvCisrCSAgZGVwbGlicz0iJGRlcGxp YiAkZGVwbGlicyIKKysJZG9uZQorKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAiJHBhc3MiICE9 IGRsb3BlbjsgdGhlbgorKwlpZiB0ZXN0ICIkcGFzcyIgIT0gY29udjsgdGhlbgorKwkgICMgTWFr ZSBzdXJlIGxpYl9zZWFyY2hfcGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4K KysJICBsaWJfc2VhcmNoX3BhdGg9CisrCSAgZm9yIGRpciBpbiAkbmV3bGliX3NlYXJjaF9wYXRo OyBkbworKwkgICAgY2FzZSAiJGxpYl9zZWFyY2hfcGF0aCAiIGluCisrCSAgICAqIiAkZGlyICIq KSA7OworKwkgICAgKikgbGliX3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRoICRkaXIiIDs7 CisrCSAgICBlc2FjCisrCSAgZG9uZQorKwkgIG5ld2xpYl9zZWFyY2hfcGF0aD0KKysJZmkKKysK KysJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiAhPSAicHJvZyxsaW5rIjsgdGhlbgorKwkgIHZh cnM9ImRlcGxpYnMiCisrCWVsc2UKKysJICB2YXJzPSJjb21waWxlX2RlcGxpYnMgZmluYWxpemVf ZGVwbGlicyIKKysJZmkKKysJZm9yIHZhciBpbiAkdmFycyBkZXBlbmRlbmN5X2xpYnM7IGRvCisr CSAgIyBBZGQgbGlicmFyaWVzIHRvICR2YXIgaW4gcmV2ZXJzZSBvcmRlcgorKwkgIGV2YWwgdG1w X2xpYnM9XCJcJCR2YXJcIgorKwkgIG5ld19saWJzPQorKwkgIGZvciBkZXBsaWIgaW4gJHRtcF9s aWJzOyBkbworKwkgICAgIyBGSVhNRTogUGVkYW50aWNhbGx5LCB0aGlzIGlzIHRoZSByaWdodCB0 aGluZyB0byBkbywgc28KKysJICAgICMgICAgICAgIHRoYXQgc29tZSBuYXN0eSBkZXBlbmRlbmN5 IGxvb3AgaXNuJ3QgYWNjaWRlbnRhbGx5CisrCSAgICAjICAgICAgICBicm9rZW46CisrCSAgICAj bmV3X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIgorKwkgICAgIyBQcmFnbWF0aWNhbGx5LCB0aGlz IHNlZW1zIHRvIGNhdXNlIHZlcnkgZmV3IHByb2JsZW1zIGluCisrCSAgICAjIHByYWN0aWNlOgor KwkgICAgY2FzZSAkZGVwbGliIGluCisrCSAgICAtTCopIG5ld19saWJzPSIkZGVwbGliICRuZXdf bGlicyIgOzsKKysJICAgIC1SKikgOzsKKysJICAgICopCisrCSAgICAgICMgQW5kIGhlcmUgaXMg dGhlIHJlYXNvbjogd2hlbiBhIGxpYnJhcnkgYXBwZWFycyBtb3JlCisrCSAgICAgICMgdGhhbiBv bmNlIGFzIGFuIGV4cGxpY2l0IGRlcGVuZGVuY2Ugb2YgYSBsaWJyYXJ5LCBvcgorKwkgICAgICAj IGlzIGltcGxpY2l0bHkgbGlua2VkIGluIG1vcmUgdGhhbiBvbmNlIGJ5IHRoZQorKwkgICAgICAj IGNvbXBpbGVyLCBpdCBpcyBjb25zaWRlcmVkIHNwZWNpYWwsIGFuZCBtdWx0aXBsZQorKwkgICAg ICAjIG9jY3VycmVuY2VzIHRoZXJlb2YgYXJlIG5vdCByZW1vdmVkLiAgQ29tcGFyZSB0aGlzCisr CSAgICAgICMgd2l0aCBoYXZpbmcgdGhlIHNhbWUgbGlicmFyeSBiZWluZyBsaXN0ZWQgYXMgYQor KwkgICAgICAjIGRlcGVuZGVuY3kgb2YgbXVsdGlwbGUgb3RoZXIgbGlicmFyaWVzOiBpbiB0aGlz IGNhc2UsCisrCSAgICAgICMgd2Uga25vdyAocGVkYW50aWNhbGx5LCB3ZSBhc3N1bWUpIHRoZSBs aWJyYXJ5IGRvZXMgbm90CisrCSAgICAgICMgbmVlZCB0byBiZSBsaXN0ZWQgbW9yZSB0aGFuIG9u Y2UsIHNvIHdlIGtlZXAgb25seSB0aGUKKysJICAgICAgIyBsYXN0IGNvcHkuICBUaGlzIGlzIG5v dCBhbHdheXMgcmlnaHQsIGJ1dCBpdCBpcyByYXJlCisrCSAgICAgICMgZW5vdWdoIHRoYXQgd2Ug cmVxdWlyZSB1c2VycyB0aGF0IHJlYWxseSBtZWFuIHRvIHBsYXkKKysJICAgICAgIyBzdWNoIHVu cG9ydGFibGUgbGlua2luZyB0cmlja3MgdG8gbGluayB0aGUgbGlicmFyeQorKwkgICAgICAjIHVz aW5nIC1XbCwtbG5hbWUsIHNvIHRoYXQgbGlidG9vbCBkb2VzIG5vdCBjb25zaWRlciBpdAorKwkg ICAgICAjIGZvciBkdXBsaWNhdGUgcmVtb3ZhbC4KKysJICAgICAgY2FzZSAiICRzcGVjaWFsZGVw bGlicyAiIGluCisrCSAgICAgICoiICRkZXBsaWIgIiopIG5ld19saWJzPSIkZGVwbGliICRuZXdf bGlicyIgOzsKKysJICAgICAgKikKKysJCWNhc2UgIiAkbmV3X2xpYnMgIiBpbgorKwkJKiIgJGRl cGxpYiAiKikgOzsKKysJCSopIG5ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIgOzsKKysJCWVz YWMKKysJCTs7CisrCSAgICAgIGVzYWMKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICBkb25l CisrCSAgdG1wX2xpYnM9CisrCSAgZm9yIGRlcGxpYiBpbiAkbmV3X2xpYnM7IGRvCisrCSAgICBj YXNlICRkZXBsaWIgaW4KKysJICAgIC1MKikKKysJICAgICAgY2FzZSAiICR0bXBfbGlicyAiIGlu CisrCSAgICAgICoiICRkZXBsaWIgIiopIDs7CisrCSAgICAgICopIHRtcF9saWJzPSIkdG1wX2xp YnMgJGRlcGxpYiIgOzsKKysJICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAgKikgdG1wX2xp YnM9IiR0bXBfbGlicyAkZGVwbGliIiA7OworKwkgICAgZXNhYworKwkgIGRvbmUKKysJICBldmFs ICR2YXI9XCIkdG1wX2xpYnNcIgorKwlkb25lICMgZm9yIHZhcgorKyAgICAgIGZpCisrICAgICAg IyBMYXN0IHN0ZXA6IHJlbW92ZSBydW50aW1lIGxpYnMgZnJvbSBkZXBlbmRlbmN5X2xpYnMKKysg ICAgICAjICh0aGV5IHN0YXkgaW4gZGVwbGlicykKKysgICAgICB0bXBfbGlicz0KKysgICAgICBm b3IgaSBpbiAkZGVwZW5kZW5jeV9saWJzIDsgZG8KKysJY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVw cyAkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoICIgaW4KKysJKiIgJGkgIiopCisrCSAgaT0iIgor KwkgIDs7CisrCWVzYWMKKysJaWYgdGVzdCAtbiAiJGkiIDsgdGhlbgorKwkgIHRtcF9saWJzPSIk dG1wX2xpYnMgJGkiCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIGRlcGVuZGVuY3lfbGlicz0k dG1wX2xpYnMKKysgICAgZG9uZSAjIGZvciBwYXNzCisrICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIg PSBwcm9nOyB0aGVuCisrICAgICAgZGxmaWxlcz0iJG5ld2RsZmlsZXMiCisrICAgIGZpCisrICAg IGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRo ZW4KKysgICAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIKKysgICAgZmkKKysKKysgICAg Y2FzZSAkbGlua21vZGUgaW4KKysgICAgb2xkbGliKQorKyAgICAgIGlmIHRlc3QgLW4gIiRkbGZp bGVzJGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCisrCWZ1bmNfd2Fy bmluZyAiXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKysgICAgICBmaQorKwor KyAgICAgIGNhc2UgIiAkZGVwbGlicyIgaW4KKysgICAgICAqXCAtbCogfCAqXCAtTCopCisrCWZ1 bmNfd2FybmluZyAiXGAtbCcgYW5kIFxgLUwnIGFyZSBpZ25vcmVkIGZvciBhcmNoaXZlcyIgOzsK KysgICAgICBlc2FjCisrCisrICAgICAgdGVzdCAtbiAiJHJwYXRoIiAmJiBcCisrCWZ1bmNfd2Fy bmluZyAiXGAtcnBhdGgnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgorKworKyAgICAgIHRlc3Qg LW4gIiR4cnBhdGgiICYmIFwKKysJZnVuY193YXJuaW5nICJcYC1SJyBpcyBpZ25vcmVkIGZvciBh cmNoaXZlcyIKKysKKysgICAgICB0ZXN0IC1uICIkdmluZm8iICYmIFwKKysJZnVuY193YXJuaW5n ICJcYC12ZXJzaW9uLWluZm8vLXZlcnNpb24tbnVtYmVyJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZl cyIKKysKKysgICAgICB0ZXN0IC1uICIkcmVsZWFzZSIgJiYgXAorKwlmdW5jX3dhcm5pbmcgIlxg LXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgorKworKyAgICAgIHRlc3QgLW4gIiRl eHBvcnRfc3ltYm9scyRleHBvcnRfc3ltYm9sc19yZWdleCIgJiYgXAorKwlmdW5jX3dhcm5pbmcg IlxgLWV4cG9ydC1zeW1ib2xzJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKysKKysgICAgICAj IE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxpYnJhcmllcy4KKysgICAg ICBidWlsZF9saWJ0b29sX2xpYnM9bm8KKysgICAgICBvbGRsaWJzPSIkb3V0cHV0IgorKyAgICAg IG9ianM9IiRvYmpzJG9sZF9kZXBsaWJzIgorKyAgICAgIDs7CisrCisrICAgIGxpYikKKysgICAg ICAjIE1ha2Ugc3VyZSB3ZSBvbmx5IGdlbmVyYXRlIGxpYnJhcmllcyBvZiB0aGUgZm9ybSBgbGli TkFNRS5sYScuCisrICAgICAgY2FzZSAkb3V0cHV0bmFtZSBpbgorKyAgICAgIGxpYiopCisrCWZ1 bmNfc3RyaXBuYW1lICdsaWInICcubGEnICIkb3V0cHV0bmFtZSIKKysJbmFtZT0kZnVuY19zdHJp cG5hbWVfcmVzdWx0CisrCWV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wiCisrCWV2YWwg bGlibmFtZT1cIiRsaWJuYW1lX3NwZWNcIgorKwk7OworKyAgICAgICopCisrCXRlc3QgIiRtb2R1 bGUiID0gbm8gJiYgXAorKwkgIGZ1bmNfZmF0YWxfaGVscCAibGlidG9vbCBsaWJyYXJ5IFxgJG91 dHB1dCcgbXVzdCBiZWdpbiB3aXRoIFxgbGliJyIKKysKKysJaWYgdGVzdCAiJG5lZWRfbGliX3By ZWZpeCIgIT0gbm87IHRoZW4KKysJICAjIEFkZCB0aGUgImxpYiIgcHJlZml4IGZvciBtb2R1bGVz IGlmIHJlcXVpcmVkCisrCSAgZnVuY19zdHJpcG5hbWUgJycgJy5sYScgIiRvdXRwdXRuYW1lIgor KwkgIG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgIGV2YWwgc2hhcmVkX2V4dD1cIiRz aHJleHRfY21kc1wiCisrCSAgZXZhbCBsaWJuYW1lPVwiJGxpYm5hbWVfc3BlY1wiCisrCWVsc2UK KysJICBmdW5jX3N0cmlwbmFtZSAnJyAnLmxhJyAiJG91dHB1dG5hbWUiCisrCSAgbGlibmFtZT0k ZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCWZpCisrCTs7CisrICAgICAgZXNhYworKworKyAgICAg IGlmIHRlc3QgLW4gIiRvYmpzIjsgdGhlbgorKwlpZiB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRo b2QiICE9IHBhc3NfYWxsOyB0aGVuCisrCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGJ1aWxk IGxpYnRvb2wgbGlicmFyeSBcYCRvdXRwdXQnIGZyb20gbm9uLWxpYnRvb2wgb2JqZWN0cyBvbiB0 aGlzIGhvc3Q6JG9ianMiCisrCWVsc2UKKysJICBlY2hvCisrCSAgJEVDSE8gIioqKiBXYXJuaW5n OiBMaW5raW5nIHRoZSBzaGFyZWQgbGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIG5vbi1saWJ0 b29sIgorKwkgICRFQ0hPICIqKiogb2JqZWN0cyAkb2JqcyBpcyBub3QgcG9ydGFibGUhIgorKwkg IGxpYm9ianM9IiRsaWJvYmpzICRvYmpzIgorKwlmaQorKyAgICAgIGZpCisrCisrICAgICAgdGVz dCAiJGRsc2VsZiIgIT0gbm8gJiYgXAorKwlmdW5jX3dhcm5pbmcgIlxgLWRsb3BlbiBzZWxmJyBp cyBpZ25vcmVkIGZvciBsaWJ0b29sIGxpYnJhcmllcyIKKysKKysgICAgICBzZXQgZHVtbXkgJHJw YXRoCisrICAgICAgc2hpZnQKKysgICAgICB0ZXN0ICIkIyIgLWd0IDEgJiYgXAorKwlmdW5jX3dh cm5pbmcgImlnbm9yaW5nIG11bHRpcGxlIFxgLXJwYXRoJ3MgZm9yIGEgbGlidG9vbCBsaWJyYXJ5 IgorKworKyAgICAgIGluc3RhbGxfbGliZGlyPSIkMSIKKysKKysgICAgICBvbGRsaWJzPQorKyAg ICAgIGlmIHRlc3QgLXogIiRycGF0aCI7IHRoZW4KKysJaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xf bGlicyIgPSB5ZXM7IHRoZW4KKysJICAjIEJ1aWxkaW5nIGEgbGlidG9vbCBjb252ZW5pZW5jZSBs aWJyYXJ5LgorKwkgICMgU29tZSBjb21waWxlcnMgaGF2ZSBwcm9ibGVtcyB3aXRoIGEgYC5hbCcg ZXh0ZW5zaW9uIHNvCisrCSAgIyBjb252ZW5pZW5jZSBsaWJyYXJpZXMgc2hvdWxkIGhhdmUgdGhl IHNhbWUgZXh0ZW5zaW9uIGFuCisrCSAgIyBhcmNoaXZlIG5vcm1hbGx5IHdvdWxkLgorKwkgIG9s ZGxpYnM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLiRsaWJleHQgJG9sZGxpYnMiCisrCSAgYnVp bGRfbGlidG9vbF9saWJzPWNvbnZlbmllbmNlCisrCSAgYnVpbGRfb2xkX2xpYnM9eWVzCisrCWZp CisrCisrCXRlc3QgLW4gIiR2aW5mbyIgJiYgXAorKwkgIGZ1bmNfd2FybmluZyAiXGAtdmVyc2lv bi1pbmZvLy12ZXJzaW9uLW51bWJlcicgaXMgaWdub3JlZCBmb3IgY29udmVuaWVuY2UgbGlicmFy aWVzIgorKworKwl0ZXN0IC1uICIkcmVsZWFzZSIgJiYgXAorKwkgIGZ1bmNfd2FybmluZyAiXGAt cmVsZWFzZScgaXMgaWdub3JlZCBmb3IgY29udmVuaWVuY2UgbGlicmFyaWVzIgorKyAgICAgIGVs c2UKKysKKysJIyBQYXJzZSB0aGUgdmVyc2lvbiBpbmZvcm1hdGlvbiBhcmd1bWVudC4KKysJc2F2 ZV9pZnM9IiRJRlMiOyBJRlM9JzonCisrCXNldCBkdW1teSAkdmluZm8gMCAwIDAKKysJc2hpZnQK KysJSUZTPSIkc2F2ZV9pZnMiCisrCisrCXRlc3QgLW4gIiQ3IiAmJiBcCisrCSAgZnVuY19mYXRh bF9oZWxwICJ0b28gbWFueSBwYXJhbWV0ZXJzIHRvIFxgLXZlcnNpb24taW5mbyciCisrCisrCSMg Y29udmVydCBhYnNvbHV0ZSB2ZXJzaW9uIG51bWJlcnMgdG8gbGlidG9vbCBhZ2VzCisrCSMgdGhp cyByZXRhaW5zIGNvbXBhdGliaWxpdHkgd2l0aCAubGEgZmlsZXMgYW5kIGF0dGVtcHRzCisrCSMg dG8gbWFrZSB0aGUgY29kZSBiZWxvdyBhIGJpdCBtb3JlIGNvbXByZWhlbnNpYmxlCisrCisrCWNh c2UgJHZpbmZvX251bWJlciBpbgorKwl5ZXMpCisrCSAgbnVtYmVyX21ham9yPSIkMSIKKysJICBu dW1iZXJfbWlub3I9IiQyIgorKwkgIG51bWJlcl9yZXZpc2lvbj0iJDMiCisrCSAgIworKwkgICMg VGhlcmUgYXJlIHJlYWxseSBvbmx5IHR3byBraW5kcyAtLSB0aG9zZSB0aGF0CisrCSAgIyB1c2Ug dGhlIGN1cnJlbnQgcmV2aXNpb24gYXMgdGhlIG1ham9yIHZlcnNpb24KKysJICAjIGFuZCB0aG9z ZSB0aGF0IHN1YnRyYWN0IGFnZSBhbmQgdXNlIGFnZSBhcworKwkgICMgYSBtaW5vciB2ZXJzaW9u LiAgQnV0LCB0aGVuIHRoZXJlIGlzIGlyaXgKKysJICAjIHdoaWNoIGhhcyBhbiBleHRyYSAxIGFk ZGVkIGp1c3QgZm9yIGZ1bgorKwkgICMKKysJICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KKysJICBk YXJ3aW58bGludXh8b3NmfHdpbmRvd3N8bm9uZSkKKysJICAgIGZ1bmNfYXJpdGggJG51bWJlcl9t YWpvciArICRudW1iZXJfbWlub3IKKysJICAgIGN1cnJlbnQ9JGZ1bmNfYXJpdGhfcmVzdWx0Cisr CSAgICBhZ2U9IiRudW1iZXJfbWlub3IiCisrCSAgICByZXZpc2lvbj0iJG51bWJlcl9yZXZpc2lv biIKKysJICAgIDs7CisrCSAgZnJlZWJzZC1hb3V0fGZyZWVic2QtZWxmfHFueHxzdW5vcykKKysJ ICAgIGN1cnJlbnQ9IiRudW1iZXJfbWFqb3IiCisrCSAgICByZXZpc2lvbj0iJG51bWJlcl9taW5v ciIKKysJICAgIGFnZT0iMCIKKysJICAgIDs7CisrCSAgaXJpeHxub25zdG9wdXgpCisrCSAgICBm dW5jX2FyaXRoICRudW1iZXJfbWFqb3IgKyAkbnVtYmVyX21pbm9yCisrCSAgICBjdXJyZW50PSRm dW5jX2FyaXRoX3Jlc3VsdAorKwkgICAgYWdlPSIkbnVtYmVyX21pbm9yIgorKwkgICAgcmV2aXNp b249IiRudW1iZXJfbWlub3IiCisrCSAgICBsdF9pcml4X2luY3JlbWVudD1ubworKwkgICAgOzsK KysJICBlc2FjCisrCSAgOzsKKysJbm8pCisrCSAgY3VycmVudD0iJDEiCisrCSAgcmV2aXNpb249 IiQyIgorKwkgIGFnZT0iJDMiCisrCSAgOzsKKysJZXNhYworKworKwkjIENoZWNrIHRoYXQgZWFj aCBvZiB0aGUgdGhpbmdzIGFyZSB2YWxpZCBudW1iZXJzLgorKwljYXNlICRjdXJyZW50IGluCisr CTB8WzEtOV18WzEtOV1bMC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18 WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkgOzsKKysJKikKKysJICBmdW5jX2Vycm9yICJDVVJS RU5UIFxgJGN1cnJlbnQnIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIgorKwkgIGZ1bmNf ZmF0YWxfZXJyb3IgIlxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlvbiIK KysJICA7OworKwllc2FjCisrCisrCWNhc2UgJHJldmlzaW9uIGluCisrCTB8WzEtOV18WzEtOV1b MC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTld WzAtOV1bMC05XSkgOzsKKysJKikKKysJICBmdW5jX2Vycm9yICJSRVZJU0lPTiBcYCRyZXZpc2lv bicgbXVzdCBiZSBhIG5vbm5lZ2F0aXZlIGludGVnZXIiCisrCSAgZnVuY19mYXRhbF9lcnJvciAi XGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIgorKwkgIDs7CisrCWVz YWMKKysKKysJY2FzZSAkYWdlIGluCisrCTB8WzEtOV18WzEtOV1bMC05XXxbMS05XVswLTldWzAt OV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkgOzsKKysJ KikKKysJICBmdW5jX2Vycm9yICJBR0UgXGAkYWdlJyBtdXN0IGJlIGEgbm9ubmVnYXRpdmUgaW50 ZWdlciIKKysJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCR2aW5mbycgaXMgbm90IHZhbGlkIHZlcnNp b24gaW5mb3JtYXRpb24iCisrCSAgOzsKKysJZXNhYworKworKwlpZiB0ZXN0ICIkYWdlIiAtZ3Qg IiRjdXJyZW50IjsgdGhlbgorKwkgIGZ1bmNfZXJyb3IgIkFHRSBcYCRhZ2UnIGlzIGdyZWF0ZXIg dGhhbiB0aGUgY3VycmVudCBpbnRlcmZhY2UgbnVtYmVyIFxgJGN1cnJlbnQnIgorKwkgIGZ1bmNf ZmF0YWxfZXJyb3IgIlxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlvbiIK KysJZmkKKysKKysJIyBDYWxjdWxhdGUgdGhlIHZlcnNpb24gdmFyaWFibGVzLgorKwltYWpvcj0K KysJdmVyc3VmZml4PQorKwl2ZXJzdHJpbmc9CisrCWNhc2UgJHZlcnNpb25fdHlwZSBpbgorKwlu b25lKSA7OworKworKwlkYXJ3aW4pCisrCSAgIyBMaWtlIExpbnV4LCBidXQgd2l0aCB0aGUgY3Vy cmVudCB2ZXJzaW9uIGF2YWlsYWJsZSBpbgorKwkgICMgdmVyc3RyaW5nIGZvciBjb2RpbmcgaXQg aW50byB0aGUgbGlicmFyeSBoZWFkZXIKKysJICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQor KwkgIG1ham9yPS4kZnVuY19hcml0aF9yZXN1bHQKKysJICB2ZXJzdWZmaXg9IiRtYWpvci4kYWdl LiRyZXZpc2lvbiIKKysJICAjIERhcndpbiBsZCBkb2Vzbid0IGxpa2UgMCBmb3IgdGhlc2Ugb3B0 aW9ucy4uLgorKwkgIGZ1bmNfYXJpdGggJGN1cnJlbnQgKyAxCisrCSAgbWlub3JfY3VycmVudD0k ZnVuY19hcml0aF9yZXN1bHQKKysJICB4bGN2ZXJzdHJpbmc9IiR7d2x9LWNvbXBhdGliaWxpdHlf dmVyc2lvbiAke3dsfSRtaW5vcl9jdXJyZW50ICR7d2x9LWN1cnJlbnRfdmVyc2lvbiAke3dsfSRt aW5vcl9jdXJyZW50LiRyZXZpc2lvbiIKKysJICB2ZXJzdHJpbmc9Ii1jb21wYXRpYmlsaXR5X3Zl cnNpb24gJG1pbm9yX2N1cnJlbnQgLWN1cnJlbnRfdmVyc2lvbiAkbWlub3JfY3VycmVudC4kcmV2 aXNpb24iCisrCSAgOzsKKysKKysJZnJlZWJzZC1hb3V0KQorKwkgIG1ham9yPSIuJGN1cnJlbnQi CisrCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQuJHJldmlzaW9uIjsKKysJICA7OworKworKwlmcmVl YnNkLWVsZikKKysJICBtYWpvcj0iLiRjdXJyZW50IgorKwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50 IgorKwkgIDs7CisrCisrCWlyaXggfCBub25zdG9wdXgpCisrCSAgaWYgdGVzdCAiWCRsdF9pcml4 X2luY3JlbWVudCIgPSAiWG5vIjsgdGhlbgorKwkgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRh Z2UKKysJICBlbHNlCisrCSAgICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZSArIDEKKysJICBm aQorKwkgIG1ham9yPSRmdW5jX2FyaXRoX3Jlc3VsdAorKworKwkgIGNhc2UgJHZlcnNpb25fdHlw ZSBpbgorKwkgICAgbm9uc3RvcHV4KSB2ZXJzdHJpbmdfcHJlZml4PW5vbnN0b3B1eCA7OworKwkg ICAgKikgICAgICAgICB2ZXJzdHJpbmdfcHJlZml4PXNnaSA7OworKwkgIGVzYWMKKysJICB2ZXJz dHJpbmc9IiR2ZXJzdHJpbmdfcHJlZml4JG1ham9yLiRyZXZpc2lvbiIKKysKKysJICAjIEFkZCBp biBhbGwgdGhlIGludGVyZmFjZXMgdGhhdCB3ZSBhcmUgY29tcGF0aWJsZSB3aXRoLgorKwkgIGxv b3A9JHJldmlzaW9uCisrCSAgd2hpbGUgdGVzdCAiJGxvb3AiIC1uZSAwOyBkbworKwkgICAgZnVu Y19hcml0aCAkcmV2aXNpb24gLSAkbG9vcAorKwkgICAgaWZhY2U9JGZ1bmNfYXJpdGhfcmVzdWx0 CisrCSAgICBmdW5jX2FyaXRoICRsb29wIC0gMQorKwkgICAgbG9vcD0kZnVuY19hcml0aF9yZXN1 bHQKKysJICAgIHZlcnN0cmluZz0iJHZlcnN0cmluZ19wcmVmaXgkbWFqb3IuJGlmYWNlOiR2ZXJz dHJpbmciCisrCSAgZG9uZQorKworKwkgICMgQmVmb3JlIHRoaXMgcG9pbnQsICRtYWpvciBtdXN0 IG5vdCBjb250YWluIGAuJy4KKysJICBtYWpvcj0uJG1ham9yCisrCSAgdmVyc3VmZml4PSIkbWFq b3IuJHJldmlzaW9uIgorKwkgIDs7CisrCisrCWxpbnV4KQorKwkgIGZ1bmNfYXJpdGggJGN1cnJl bnQgLSAkYWdlCisrCSAgbWFqb3I9LiRmdW5jX2FyaXRoX3Jlc3VsdAorKwkgIHZlcnN1ZmZpeD0i JG1ham9yLiRhZ2UuJHJldmlzaW9uIgorKwkgIDs7CisrCisrCW9zZikKKysJICBmdW5jX2FyaXRo ICRjdXJyZW50IC0gJGFnZQorKwkgIG1ham9yPS4kZnVuY19hcml0aF9yZXN1bHQKKysJICB2ZXJz dWZmaXg9Ii4kY3VycmVudC4kYWdlLiRyZXZpc2lvbiIKKysJICB2ZXJzdHJpbmc9IiRjdXJyZW50 LiRhZ2UuJHJldmlzaW9uIgorKworKwkgICMgQWRkIGluIGFsbCB0aGUgaW50ZXJmYWNlcyB0aGF0 IHdlIGFyZSBjb21wYXRpYmxlIHdpdGguCisrCSAgbG9vcD0kYWdlCisrCSAgd2hpbGUgdGVzdCAi JGxvb3AiIC1uZSAwOyBkbworKwkgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRsb29wCisrCSAg ICBpZmFjZT0kZnVuY19hcml0aF9yZXN1bHQKKysJICAgIGZ1bmNfYXJpdGggJGxvb3AgLSAxCisr CSAgICBsb29wPSRmdW5jX2FyaXRoX3Jlc3VsdAorKwkgICAgdmVyc3RyaW5nPSIkdmVyc3RyaW5n OiR7aWZhY2V9LjAiCisrCSAgZG9uZQorKworKwkgICMgTWFrZSBleGVjdXRhYmxlcyBkZXBlbmQg b24gb3VyIGN1cnJlbnQgdmVyc2lvbi4KKysJICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmc6JHtjdXJy ZW50fS4wIgorKwkgIDs7CisrCisrCXFueCkKKysJICBtYWpvcj0iLiRjdXJyZW50IgorKwkgIHZl cnN1ZmZpeD0iLiRjdXJyZW50IgorKwkgIDs7CisrCisrCXN1bm9zKQorKwkgIG1ham9yPSIuJGN1 cnJlbnQiCisrCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQuJHJldmlzaW9uIgorKwkgIDs7CisrCisr CXdpbmRvd3MpCisrCSAgIyBVc2UgJy0nIHJhdGhlciB0aGFuICcuJywgc2luY2Ugd2Ugb25seSB3 YW50IG9uZQorKwkgICMgZXh0ZW5zaW9uIG9uIERPUyA4LjMgZmlsZXN5c3RlbXMuCisrCSAgZnVu Y19hcml0aCAkY3VycmVudCAtICRhZ2UKKysJICBtYWpvcj0kZnVuY19hcml0aF9yZXN1bHQKKysJ ICB2ZXJzdWZmaXg9Ii0kbWFqb3IiCisrCSAgOzsKKysKKysJKikKKysJICBmdW5jX2ZhdGFsX2Nv bmZpZ3VyYXRpb24gInVua25vd24gbGlicmFyeSB2ZXJzaW9uIHR5cGUgXGAkdmVyc2lvbl90eXBl JyIKKysJICA7OworKwllc2FjCisrCisrCSMgQ2xlYXIgdGhlIHZlcnNpb24gaW5mbyBpZiB3ZSBk ZWZhdWx0ZWQsIGFuZCB0aGV5IHNwZWNpZmllZCBhIHJlbGVhc2UuCisrCWlmIHRlc3QgLXogIiR2 aW5mbyIgJiYgdGVzdCAtbiAiJHJlbGVhc2UiOyB0aGVuCisrCSAgbWFqb3I9CisrCSAgY2FzZSAk dmVyc2lvbl90eXBlIGluCisrCSAgZGFyd2luKQorKwkgICAgIyB3ZSBjYW4ndCBjaGVjayBmb3Ig IjAuMCIgaW4gYXJjaGl2ZV9jbWRzIGR1ZSB0byBxdW90aW5nCisrCSAgICAjIHByb2JsZW1zLCBz byB3ZSByZXNldCBpdCBjb21wbGV0ZWx5CisrCSAgICB2ZXJzdHJpbmc9CisrCSAgICA7OworKwkg ICopCisrCSAgICB2ZXJzdHJpbmc9IjAuMCIKKysJICAgIDs7CisrCSAgZXNhYworKwkgIGlmIHRl c3QgIiRuZWVkX3ZlcnNpb24iID0gbm87IHRoZW4KKysJICAgIHZlcnN1ZmZpeD0KKysJICBlbHNl CisrCSAgICB2ZXJzdWZmaXg9Ii4wLjAiCisrCSAgZmkKKysJZmkKKysKKysJIyBSZW1vdmUgdmVy c2lvbiBpbmZvIGZyb20gbmFtZSBpZiB2ZXJzaW9uaW5nIHNob3VsZCBiZSBhdm9pZGVkCisrCWlm IHRlc3QgIiRhdm9pZF92ZXJzaW9uIiA9IHllcyAmJiB0ZXN0ICIkbmVlZF92ZXJzaW9uIiA9IG5v OyB0aGVuCisrCSAgbWFqb3I9CisrCSAgdmVyc3VmZml4PQorKwkgIHZlcnN0cmluZz0iIgorKwlm aQorKworKwkjIENoZWNrIHRvIHNlZSBpZiB0aGUgYXJjaGl2ZSB3aWxsIGhhdmUgdW5kZWZpbmVk IHN5bWJvbHMuCisrCWlmIHRlc3QgIiRhbGxvd191bmRlZmluZWQiID0geWVzOyB0aGVuCisrCSAg aWYgdGVzdCAiJGFsbG93X3VuZGVmaW5lZF9mbGFnIiA9IHVuc3VwcG9ydGVkOyB0aGVuCisrCSAg ICBmdW5jX3dhcm5pbmcgInVuZGVmaW5lZCBzeW1ib2xzIG5vdCBhbGxvd2VkIGluICRob3N0IHNo YXJlZCBsaWJyYXJpZXMiCisrCSAgICBidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJICAgIGJ1aWxk X29sZF9saWJzPXllcworKwkgIGZpCisrCWVsc2UKKysJICAjIERvbid0IGFsbG93IHVuZGVmaW5l ZCBzeW1ib2xzLgorKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSIkbm9fdW5kZWZpbmVkX2ZsYWci CisrCWZpCisrCisrICAgICAgZmkKKysKKysgICAgICBmdW5jX2dlbmVyYXRlX2Rsc3ltcyAiJGxp Ym5hbWUiICIkbGlibmFtZSIgInllcyIKKysgICAgICBsaWJvYmpzPSIkbGlib2JqcyAkc3ltZmls ZW9iaiIKKysgICAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQorKworKyAg ICAgIGlmIHRlc3QgIiRtb2RlIiAhPSByZWxpbms7IHRoZW4KKysJIyBSZW1vdmUgb3VyIG91dHB1 dHMsIGJ1dCBkb24ndCByZW1vdmUgb2JqZWN0IGZpbGVzIHNpbmNlIHRoZXkKKysJIyBtYXkgaGF2 ZSBiZWVuIGNyZWF0ZWQgd2hlbiBjb21waWxpbmcgUElDIG9iamVjdHMuCisrCXJlbW92ZWxpc3Q9 CisrCXRlbXByZW1vdmVsaXN0PWAkRUNITyAiJG91dHB1dF9vYmpkaXIvKiJgCisrCWZvciBwIGlu ICR0ZW1wcmVtb3ZlbGlzdDsgZG8KKysJICBjYXNlICRwIGluCisrCSAgICAqLiRvYmpleHQgfCAq Lmdjbm8pCisrCSAgICAgICA7OworKwkgICAgJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUgfCAk b3V0cHV0X29iamRpci8kbGlibmFtZS4qIHwgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfSR7cmVs ZWFzZX0uKikKKysJICAgICAgIGlmIHRlc3QgIlgkcHJlY2lvdXNfZmlsZXNfcmVnZXgiICE9ICJY IjsgdGhlbgorKwkJIGlmICRFQ0hPICIkcCIgfCAkRUdSRVAgLWUgIiRwcmVjaW91c19maWxlc19y ZWdleCIgPi9kZXYvbnVsbCAyPiYxCisrCQkgdGhlbgorKwkJICAgY29udGludWUKKysJCSBmaQor KwkgICAgICAgZmkKKysJICAgICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRwIgorKwkgICAg ICAgOzsKKysJICAgICopIDs7CisrCSAgZXNhYworKwlkb25lCisrCXRlc3QgLW4gIiRyZW1vdmVs aXN0IiAmJiBcCisrCSAgZnVuY19zaG93X2V2YWwgIiR7Uk19ciBcJHJlbW92ZWxpc3QiCisrICAg ICAgZmkKKysKKysgICAgICAjIE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xk IGxpYnJhcmllcy4KKysgICAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzICYmIHRl c3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IGNvbnZlbmllbmNlIDsgdGhlbgorKwlvbGRsaWJz PSIkb2xkbGlicyAkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0IgorKworKwkjIFRyYW5z Zm9ybSAubG8gZmlsZXMgdG8gLm8gZmlsZXMuCisrCW9sZG9ianM9IiRvYmpzICJgJEVDSE8gIiRs aWJvYmpzIiB8ICRTUDJOTCB8ICRTRUQgIi9cLiR7bGliZXh0fSQvZDsgJGxvMm8iIHwgJE5MMlNQ YAorKyAgICAgIGZpCisrCisrICAgICAgIyBFbGltaW5hdGUgYWxsIHRlbXBvcmFyeSBkaXJlY3Rv cmllcy4KKysgICAgICAjZm9yIHBhdGggaW4gJG5vdGluc3RfcGF0aDsgZG8KKysgICAgICAjCWxp Yl9zZWFyY2hfcGF0aD1gJEVDSE8gIiRsaWJfc2VhcmNoX3BhdGggIiB8ICRTRUQgInMlICRwYXRo ICUgJWciYAorKyAgICAgICMJZGVwbGlicz1gJEVDSE8gIiRkZXBsaWJzICIgfCAkU0VEICJzJSAt TCRwYXRoICUgJWciYAorKyAgICAgICMJZGVwZW5kZW5jeV9saWJzPWAkRUNITyAiJGRlcGVuZGVu Y3lfbGlicyAiIHwgJFNFRCAicyUgLUwkcGF0aCAlICVnImAKKysgICAgICAjZG9uZQorKworKyAg ICAgIGlmIHRlc3QgLW4gIiR4cnBhdGgiOyB0aGVuCisrCSMgSWYgdGhlIHVzZXIgc3BlY2lmaWVk IGFueSBycGF0aCBmbGFncywgdGhlbiBhZGQgdGhlbS4KKysJdGVtcF94cnBhdGg9CisrCWZvciBs aWJkaXIgaW4gJHhycGF0aDsgZG8KKysJICB0ZW1wX3hycGF0aD0iJHRlbXBfeHJwYXRoIC1SJGxp YmRpciIKKysJICBjYXNlICIkZmluYWxpemVfcnBhdGggIiBpbgorKwkgICoiICRsaWJkaXIgIiop IDs7CisrCSAgKikgZmluYWxpemVfcnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCAkbGliZGlyIiA7Owor KwkgIGVzYWMKKysJZG9uZQorKwlpZiB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiAhPSB5ZXMg fHwgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgorKwkgIGRlcGVuZGVuY3lfbGli cz0iJHRlbXBfeHJwYXRoICRkZXBlbmRlbmN5X2xpYnMiCisrCWZpCisrICAgICAgZmkKKysKKysg ICAgICAjIE1ha2Ugc3VyZSBkbGZpbGVzIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGZpbGVzIHRoYXQg d29uJ3QgYmUgZGxwcmVvcGVuZWQKKysgICAgICBvbGRfZGxmaWxlcz0iJGRsZmlsZXMiCisrICAg ICAgZGxmaWxlcz0KKysgICAgICBmb3IgbGliIGluICRvbGRfZGxmaWxlczsgZG8KKysJY2FzZSAi ICRkbHByZWZpbGVzICRkbGZpbGVzICIgaW4KKysJKiIgJGxpYiAiKikgOzsKKysJKikgZGxmaWxl cz0iJGRsZmlsZXMgJGxpYiIgOzsKKysJZXNhYworKyAgICAgIGRvbmUKKysKKysgICAgICAjIE1h a2Ugc3VyZSBkbHByZWZpbGVzIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGZpbGVzCisrICAgICAgb2xk X2RscHJlZmlsZXM9IiRkbHByZWZpbGVzIgorKyAgICAgIGRscHJlZmlsZXM9CisrICAgICAgZm9y IGxpYiBpbiAkb2xkX2RscHJlZmlsZXM7IGRvCisrCWNhc2UgIiRkbHByZWZpbGVzICIgaW4KKysJ KiIgJGxpYiAiKikgOzsKKysJKikgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJGxpYiIgOzsKKysJ ZXNhYworKyAgICAgIGRvbmUKKysKKysgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJz IiA9IHllczsgdGhlbgorKwlpZiB0ZXN0IC1uICIkcnBhdGgiOyB0aGVuCisrCSAgY2FzZSAkaG9z dCBpbgorKwkgICotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIq IHwgKi0qLWJlb3MqIHwgKi1jZWdjYyogfCAqLSotaGFpa3UqKQorKwkgICAgIyB0aGVzZSBzeXN0 ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBjIGxpYnJhcnkgKGFzIHN1Y2gpIQorKwkgICAgOzsK KysJICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCisrCSAgICAjIFJoYXBzb2R5 IEMgbGlicmFyeSBpcyBpbiB0aGUgU3lzdGVtIGZyYW1ld29yaworKwkgICAgZGVwbGlicz0iJGRl cGxpYnMgU3lzdGVtLmx0ZnJhbWV3b3JrIgorKwkgICAgOzsKKysJICAqLSotbmV0YnNkKikKKysJ ICAgICMgRG9uJ3QgbGluayB3aXRoIGxpYmMgdW50aWwgdGhlIGEub3V0IGxkLnNvIGlzIGZpeGVk LgorKwkgICAgOzsKKysJICAqLSotb3BlbmJzZCogfCAqLSotZnJlZWJzZCogfCAqLSotZHJhZ29u Zmx5KikKKysJICAgICMgRG8gbm90IGluY2x1ZGUgbGliYyBkdWUgdG8gdXMgaGF2aW5nIGxpYmMv bGliY19yLgorKwkgICAgOzsKKysJICAqLSotc2NvMy4ydjUqIHwgKi0qLXNjbzV2NiopCisrCSAg ICAjIENhdXNlcyBwcm9ibGVtcyB3aXRoIF9fY3R5cGUKKysJICAgIDs7CisrCSAgKi0qLXN5c3Y0 LjJ1dzIqIHwgKi0qLXN5c3Y1KiB8ICotKi11bml4d2FyZSogfCAqLSotT3BlblVOSVgqKQorKwkg ICAgIyBDb21waWxlciBpbnNlcnRzIGxpYmMgaW4gdGhlIGNvcnJlY3QgcGxhY2UgZm9yIHRocmVh ZHMgdG8gd29yaworKwkgICAgOzsKKysJICAqKQorKwkgICAgIyBBZGQgbGliYyB0byBkZXBsaWJz IG9uIGFsbCBvdGhlciBzeXN0ZW1zIGlmIG5lY2Vzc2FyeS4KKysJICAgIGlmIHRlc3QgIiRidWls ZF9saWJ0b29sX25lZWRfbGMiID0gInllcyI7IHRoZW4KKysJICAgICAgZGVwbGlicz0iJGRlcGxp YnMgLWxjIgorKwkgICAgZmkKKysJICAgIDs7CisrCSAgZXNhYworKwlmaQorKworKwkjIFRyYW5z Zm9ybSBkZXBsaWJzIGludG8gb25seSBkZXBsaWJzIHRoYXQgY2FuIGJlIGxpbmtlZCBpbiBzaGFy ZWQuCisrCW5hbWVfc2F2ZT0kbmFtZQorKwlsaWJuYW1lX3NhdmU9JGxpYm5hbWUKKysJcmVsZWFz ZV9zYXZlPSRyZWxlYXNlCisrCXZlcnN1ZmZpeF9zYXZlPSR2ZXJzdWZmaXgKKysJbWFqb3Jfc2F2 ZT0kbWFqb3IKKysJIyBJJ20gbm90IHN1cmUgaWYgSSdtIHRyZWF0aW5nIHRoZSByZWxlYXNlIGNv cnJlY3RseS4gIEkgdGhpbmsKKysJIyByZWxlYXNlIHNob3VsZCBzaG93IHVwIGluIHRoZSAtbCAo aWUgLWxnbXA1KSBzbyB3ZSBkb24ndCB3YW50IHRvCisrCSMgYWRkIGl0IGluIHR3aWNlLiAgSXMg dGhhdCBjb3JyZWN0PworKwlyZWxlYXNlPSIiCisrCXZlcnN1ZmZpeD0iIgorKwltYWpvcj0iIgor KwluZXdkZXBsaWJzPQorKwlkcm9wcGVkZGVwcz1ubworKwljYXNlICRkZXBsaWJzX2NoZWNrX21l dGhvZCBpbgorKwlwYXNzX2FsbCkKKysJICAjIERvbid0IGNoZWNrIGZvciBzaGFyZWQvc3RhdGlj LiAgRXZlcnl0aGluZyB3b3Jrcy4KKysJICAjIFRoaXMgbWlnaHQgYmUgYSBsaXR0bGUgbmFpdmUu ICBXZSBtaWdodCB3YW50IHRvIGNoZWNrCisrCSAgIyB3aGV0aGVyIHRoZSBsaWJyYXJ5IGV4aXN0 cyBvciBub3QuICBCdXQgdGhpcyBpcyBvbgorKwkgICMgb3NmMyAmIG9zZjQgYW5kIEknbSBub3Qg cmVhbGx5IHN1cmUuLi4gSnVzdAorKwkgICMgaW1wbGVtZW50aW5nIHdoYXQgd2FzIGFscmVhZHkg dGhlIGJlaGF2aW9yLgorKwkgIG5ld2RlcGxpYnM9JGRlcGxpYnMKKysJICA7OworKwl0ZXN0X2Nv bXBpbGUpCisrCSAgIyBUaGlzIGNvZGUgc3RyZXNzZXMgdGhlICJsaWJyYXJpZXMgYXJlIHByb2dy YW1zIiBwYXJhZGlnbSB0byBpdHMKKysJICAjIGxpbWl0cy4gTWF5YmUgZXZlbiBicmVha3MgaXQu ICBXZSBjb21waWxlIGEgcHJvZ3JhbSwgbGlua2luZyBpdAorKwkgICMgYWdhaW5zdCB0aGUgZGVw bGlicyBhcyBhIHByb3h5IGZvciB0aGUgbGlicmFyeS4gIFRoZW4gd2UgY2FuIGNoZWNrCisrCSAg IyB3aGV0aGVyIHRoZXkgbGlua2VkIGluIHN0YXRpY2FsbHkgb3IgZHluYW1pY2FsbHkgd2l0aCBs ZGQuCisrCSAgJG9wdF9kcnlfcnVuIHx8ICRSTSBjb25mdGVzdC5jCisrCSAgY2F0ID4gY29uZnRl c3QuYyA8PEVPRgorKwkgIGludCBtYWluKCkgeyByZXR1cm4gMDsgfQorK0VPRgorKwkgICRvcHRf ZHJ5X3J1biB8fCAkUk0gY29uZnRlc3QKKysJICBpZiAkTFRDQyAkTFRDRkxBR1MgLW8gY29uZnRl c3QgY29uZnRlc3QuYyAkZGVwbGliczsgdGhlbgorKwkgICAgbGRkX291dHB1dD1gbGRkIGNvbmZ0 ZXN0YAorKwkgICAgZm9yIGkgaW4gJGRlcGxpYnM7IGRvCisrCSAgICAgIGNhc2UgJGkgaW4KKysJ ICAgICAgLWwqKQorKwkJZnVuY19zdHJpcG5hbWUgLWwgJycgIiRpIgorKwkJbmFtZT0kZnVuY19z dHJpcG5hbWVfcmVzdWx0CisrCQlpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0 YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisrCQkgIGNhc2UgIiAkcHJlZGVwcyAkcG9z dGRlcHMgIiBpbgorKwkJICAqIiAkaSAiKikKKysJCSAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGli cyAkaSIKKysJCSAgICBpPSIiCisrCQkgICAgOzsKKysJCSAgZXNhYworKwkJZmkKKysJCWlmIHRl c3QgLW4gIiRpIiA7IHRoZW4KKysJCSAgbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1l X3NwZWNcIiJgCisrCQkgIGRlcGxpYl9tYXRjaGVzPWBldmFsICJcXCRFQ0hPIFwiJGxpYnJhcnlf bmFtZXNfc3BlY1wiImAKKysJCSAgc2V0IGR1bW15ICRkZXBsaWJfbWF0Y2hlczsgc2hpZnQKKysJ CSAgZGVwbGliX21hdGNoPSQxCisrCQkgIGlmIHRlc3QgYGV4cHIgIiRsZGRfb3V0cHV0IiA6ICIu KiRkZXBsaWJfbWF0Y2giYCAtbmUgMCA7IHRoZW4KKysJCSAgICBuZXdkZXBsaWJzPSIkbmV3ZGVw bGlicyAkaSIKKysJCSAgZWxzZQorKwkJICAgIGRyb3BwZWRkZXBzPXllcworKwkJICAgIGVjaG8K KysJCSAgICAkRUNITyAiKioqIFdhcm5pbmc6IGR5bmFtaWMgbGlua2VyIGRvZXMgbm90IGFjY2Vw dCBuZWVkZWQgbGlicmFyeSAkaS4iCisrCQkgICAgZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJp bGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKysJ CSAgICBlY2hvICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkg ZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgorKwkJICAgIGVjaG8gIioqKiBzaGFyZWQgdmVyc2lvbiBv ZiB0aGUgbGlicmFyeSwgd2hpY2ggSSBiZWxpZXZlIHlvdSBkbyBub3QgaGF2ZSIKKysJCSAgICBl Y2hvICIqKiogYmVjYXVzZSBhIHRlc3RfY29tcGlsZSBkaWQgcmV2ZWFsIHRoYXQgdGhlIGxpbmtl ciBkaWQgbm90IHVzZSBpdCBmb3IiCisrCQkgICAgZWNobyAiKioqIGl0cyBkeW5hbWljIGRlcGVu ZGVuY3kgbGlzdCB0aGF0IHByb2dyYW1zIGdldCByZXNvbHZlZCB3aXRoIGF0IHJ1bnRpbWUuIgor KwkJICBmaQorKwkJZmkKKysJCTs7CisrCSAgICAgICopCisrCQluZXdkZXBsaWJzPSIkbmV3ZGVw bGlicyAkaSIKKysJCTs7CisrCSAgICAgIGVzYWMKKysJICAgIGRvbmUKKysJICBlbHNlCisrCSAg ICAjIEVycm9yIG9jY3VycmVkIGluIHRoZSBmaXJzdCBjb21waWxlLiAgTGV0J3MgdHJ5IHRvIHNh bHZhZ2UKKysJICAgICMgdGhlIHNpdHVhdGlvbjogQ29tcGlsZSBhIHNlcGFyYXRlIHByb2dyYW0g Zm9yIGVhY2ggbGlicmFyeS4KKysJICAgIGZvciBpIGluICRkZXBsaWJzOyBkbworKwkgICAgICBj YXNlICRpIGluCisrCSAgICAgIC1sKikKKysJCWZ1bmNfc3RyaXBuYW1lIC1sICcnICIkaSIKKysJ CW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkJJG9wdF9kcnlfcnVuIHx8ICRSTSBjb25m dGVzdAorKwkJaWYgJExUQ0MgJExUQ0ZMQUdTIC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgJGk7IHRo ZW4KKysJCSAgbGRkX291dHB1dD1gbGRkIGNvbmZ0ZXN0YAorKwkJICBpZiB0ZXN0ICJYJGFsbG93 X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisrCQkg ICAgY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCisrCQkgICAgKiIgJGkgIiopCisrCQkg ICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKKysJCSAgICAgIGk9IiIKKysJCSAgICAg IDs7CisrCQkgICAgZXNhYworKwkJICBmaQorKwkJICBpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCisr CQkgICAgbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCisrCQkgICAg ZGVwbGliX21hdGNoZXM9YGV2YWwgIlxcJEVDSE8gXCIkbGlicmFyeV9uYW1lc19zcGVjXCIiYAor KwkJICAgIHNldCBkdW1teSAkZGVwbGliX21hdGNoZXM7IHNoaWZ0CisrCQkgICAgZGVwbGliX21h dGNoPSQxCisrCQkgICAgaWYgdGVzdCBgZXhwciAiJGxkZF9vdXRwdXQiIDogIi4qJGRlcGxpYl9t YXRjaCJgIC1uZSAwIDsgdGhlbgorKwkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGki CisrCQkgICAgZWxzZQorKwkJICAgICAgZHJvcHBlZGRlcHM9eWVzCisrCQkgICAgICBlY2hvCisr CQkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6IGR5bmFtaWMgbGlua2VyIGRvZXMgbm90IGFjY2Vw dCBuZWVkZWQgbGlicmFyeSAkaS4iCisrCQkgICAgICBlY2hvICIqKiogSSBoYXZlIHRoZSBjYXBh YmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgor KwkJICAgICAgZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBv bmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKysJCSAgICAgIGVjaG8gIioqKiBzaGFyZWQgdmVy c2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKKysJ CSAgICAgIGVjaG8gIioqKiBiZWNhdXNlIGEgdGVzdF9jb21waWxlIGRpZCByZXZlYWwgdGhhdCB0 aGUgbGlua2VyIGRpZCBub3QgdXNlIHRoaXMgb25lIgorKwkJICAgICAgZWNobyAiKioqIGFzIGEg ZHluYW1pYyBkZXBlbmRlbmN5IHRoYXQgcHJvZ3JhbXMgY2FuIGdldCByZXNvbHZlZCB3aXRoIGF0 IHJ1bnRpbWUuIgorKwkJICAgIGZpCisrCQkgIGZpCisrCQllbHNlCisrCQkgIGRyb3BwZWRkZXBz PXllcworKwkJICBlY2hvCisrCQkgICRFQ0hPICIqKiogV2FybmluZyEgIExpYnJhcnkgJGkgaXMg bmVlZGVkIGJ5IHRoaXMgbGlicmFyeSBidXQgSSB3YXMgbm90IGFibGUgdG8iCisrCQkgIGVjaG8g IioqKiBtYWtlIGl0IGxpbmsgaW4hICBZb3Ugd2lsbCBwcm9iYWJseSBuZWVkIHRvIGluc3RhbGwg aXQgb3Igc29tZSIKKysJCSAgZWNobyAiKioqIGxpYnJhcnkgdGhhdCBpdCBkZXBlbmRzIG9uIGJl Zm9yZSB0aGlzIGxpYnJhcnkgd2lsbCBiZSBmdWxseSIKKysJCSAgZWNobyAiKioqIGZ1bmN0aW9u YWwuICBJbnN0YWxsaW5nIGl0IGJlZm9yZSBjb250aW51aW5nIHdvdWxkIGJlIGV2ZW4gYmV0dGVy LiIKKysJCWZpCisrCQk7OworKwkgICAgICAqKQorKwkJbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMg JGkiCisrCQk7OworKwkgICAgICBlc2FjCisrCSAgICBkb25lCisrCSAgZmkKKysJICA7OworKwlm aWxlX21hZ2ljKikKKysJICBzZXQgZHVtbXkgJGRlcGxpYnNfY2hlY2tfbWV0aG9kOyBzaGlmdAor KwkgIGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiJDEg XCguKlwpImAKKysJICBmb3IgYV9kZXBsaWIgaW4gJGRlcGxpYnM7IGRvCisrCSAgICBjYXNlICRh X2RlcGxpYiBpbgorKwkgICAgLWwqKQorKwkgICAgICBmdW5jX3N0cmlwbmFtZSAtbCAnJyAiJGFf ZGVwbGliIgorKwkgICAgICBuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJICAgICAgaWYg dGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMi IDsgdGhlbgorKwkJY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCisrCQkqIiAkYV9kZXBs aWIgIiopCisrCQkgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKKysJCSAgYV9k ZXBsaWI9IiIKKysJCSAgOzsKKysJCWVzYWMKKysJICAgICAgZmkKKysJICAgICAgaWYgdGVzdCAt biAiJGFfZGVwbGliIiA7IHRoZW4KKysJCWxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGlibmFt ZV9zcGVjXCIiYAorKwkJZm9yIGkgaW4gJGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hf cGF0aCAkc2hsaWJfc2VhcmNoX3BhdGg7IGRvCisrCQkgIHBvdGVudGlhbF9saWJzPWBscyAkaS8k bGlibmFtZVsuLV0qIDI+L2Rldi9udWxsYAorKwkJICBmb3IgcG90ZW50X2xpYiBpbiAkcG90ZW50 aWFsX2xpYnM7IGRvCisrCQkgICAgICAjIEZvbGxvdyBzb2Z0IGxpbmtzLgorKwkJICAgICAgaWYg bHMgLWxMZCAiJHBvdGVudF9saWIiIDI+L2Rldi9udWxsIHwKKysJCQkgJEdSRVAgIiAtPiAiID4v ZGV2L251bGw7IHRoZW4KKysJCQljb250aW51ZQorKwkJICAgICAgZmkKKysJCSAgICAgICMgVGhl IHN0YXRlbWVudCBhYm92ZSB0cmllcyB0byBhdm9pZCBlbnRlcmluZyBhbgorKwkJICAgICAgIyBl bmRsZXNzIGxvb3AgYmVsb3csIGluIGNhc2Ugb2YgY3ljbGljIGxpbmtzLgorKwkJICAgICAgIyBX ZSBtaWdodCBzdGlsbCBlbnRlciBhbiBlbmRsZXNzIGxvb3AsIHNpbmNlIGEgbGluaworKwkJICAg ICAgIyBsb29wIGNhbiBiZSBjbG9zZWQgd2hpbGUgd2UgZm9sbG93IGxpbmtzLAorKwkJICAgICAg IyBidXQgc28gd2hhdD8KKysJCSAgICAgIHBvdGxpYj0iJHBvdGVudF9saWIiCisrCQkgICAgICB3 aGlsZSB0ZXN0IC1oICIkcG90bGliIiAyPi9kZXYvbnVsbDsgZG8KKysJCQlwb3RsaWJsaW5rPWBs cyAtbGQgJHBvdGxpYiB8ICR7U0VEfSAncy8uKiAtPiAvLydgCisrCQkJY2FzZSAkcG90bGlibGlu ayBpbgorKwkJCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgcG90bGliPSIkcG90bGlibGluayI7 OworKwkJCSopIHBvdGxpYj1gJEVDSE8gIiRwb3RsaWIiIHwgJFNFRCAncyxbXi9dKiQsLCdgIiRw b3RsaWJsaW5rIjs7CisrCQkJZXNhYworKwkJICAgICAgZG9uZQorKwkJICAgICAgaWYgZXZhbCAk ZmlsZV9tYWdpY19jbWQgXCJcJHBvdGxpYlwiIDI+L2Rldi9udWxsIHwKKysJCQkgJFNFRCAtZSAx MHEgfAorKwkJCSAkRUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgor KwkJCW5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKKysJCQlhX2RlcGxpYj0iIgor KwkJCWJyZWFrIDIKKysJCSAgICAgIGZpCisrCQkgIGRvbmUKKysJCWRvbmUKKysJICAgICAgZmkK KysJICAgICAgaWYgdGVzdCAtbiAiJGFfZGVwbGliIiA7IHRoZW4KKysJCWRyb3BwZWRkZXBzPXll cworKwkJZWNobworKwkJJEVDSE8gIioqKiBXYXJuaW5nOiBsaW5rZXIgcGF0aCBkb2VzIG5vdCBo YXZlIHJlYWwgZmlsZSBmb3IgbGlicmFyeSAkYV9kZXBsaWIuIgorKwkJZWNobyAiKioqIEkgaGF2 ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsg aW4gd2hlbiIKKysJCWVjaG8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBj YW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCisrCQllY2hvICIqKiogc2hhcmVkIHZlcnNp b24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCisrCQll Y2hvICIqKiogYmVjYXVzZSBJIGRpZCBjaGVjayB0aGUgbGlua2VyIHBhdGggbG9va2luZyBmb3Ig YSBmaWxlIHN0YXJ0aW5nIgorKwkJaWYgdGVzdCAteiAiJHBvdGxpYiIgOyB0aGVuCisrCQkgICRF Q0hPICIqKiogd2l0aCAkbGlibmFtZSBidXQgbm8gY2FuZGlkYXRlcyB3ZXJlIGZvdW5kLiAoLi4u Zm9yIGZpbGUgbWFnaWMgdGVzdCkiCisrCQllbHNlCisrCQkgICRFQ0hPICIqKiogd2l0aCAkbGli bmFtZSBhbmQgbm9uZSBvZiB0aGUgY2FuZGlkYXRlcyBwYXNzZWQgYSBmaWxlIGZvcm1hdCB0ZXN0 IgorKwkJICAkRUNITyAiKioqIHVzaW5nIGEgZmlsZSBtYWdpYy4gTGFzdCBmaWxlIGNoZWNrZWQ6 ICRwb3RsaWIiCisrCQlmaQorKwkgICAgICBmaQorKwkgICAgICA7OworKwkgICAgKikKKysJICAg ICAgIyBBZGQgYSAtTCBhcmd1bWVudC4KKysJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMg JGFfZGVwbGliIgorKwkgICAgICA7OworKwkgICAgZXNhYworKwkgIGRvbmUgIyBHb25lIHRocm91 Z2ggYWxsIGRlcGxpYnMuCisrCSAgOzsKKysJbWF0Y2hfcGF0dGVybiopCisrCSAgc2V0IGR1bW15 ICRkZXBsaWJzX2NoZWNrX21ldGhvZDsgc2hpZnQKKysJICBtYXRjaF9wYXR0ZXJuX3JlZ2V4PWBl eHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogIiQxIFwoLipcKSJgCisrCSAgZm9yIGFfZGVw bGliIGluICRkZXBsaWJzOyBkbworKwkgICAgY2FzZSAkYV9kZXBsaWIgaW4KKysJICAgIC1sKikK KysJICAgICAgZnVuY19zdHJpcG5hbWUgLWwgJycgIiRhX2RlcGxpYiIKKysJICAgICAgbmFtZT0k ZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCSAgICAgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9s aWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KKysJCWNhc2UgIiAkcHJl ZGVwcyAkcG9zdGRlcHMgIiBpbgorKwkJKiIgJGFfZGVwbGliICIqKQorKwkJICBuZXdkZXBsaWJz PSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisrCQkgIGFfZGVwbGliPSIiCisrCQkgIDs7CisrCQll c2FjCisrCSAgICAgIGZpCisrCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCisr CQlsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKKysJCWZvciBpIGlu ICRsaWJfc2VhcmNoX3BhdGggJHN5c19saWJfc2VhcmNoX3BhdGggJHNobGliX3NlYXJjaF9wYXRo OyBkbworKwkJICBwb3RlbnRpYWxfbGlicz1gbHMgJGkvJGxpYm5hbWVbLi1dKiAyPi9kZXYvbnVs bGAKKysJCSAgZm9yIHBvdGVudF9saWIgaW4gJHBvdGVudGlhbF9saWJzOyBkbworKwkJICAgIHBv dGxpYj0iJHBvdGVudF9saWIiICMgc2VlIHN5bWxpbmstY2hlY2sgYWJvdmUgaW4gZmlsZV9tYWdp YyB0ZXN0CisrCQkgICAgaWYgZXZhbCAiXCRFQ0hPIFwiJHBvdGVudF9saWJcIiIgMj4vZGV2L251 bGwgfCAkU0VEIDEwcSB8IFwKKysJCSAgICAgICAkRUdSRVAgIiRtYXRjaF9wYXR0ZXJuX3JlZ2V4 IiA+IC9kZXYvbnVsbDsgdGhlbgorKwkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFf ZGVwbGliIgorKwkJICAgICAgYV9kZXBsaWI9IiIKKysJCSAgICAgIGJyZWFrIDIKKysJCSAgICBm aQorKwkJICBkb25lCisrCQlkb25lCisrCSAgICAgIGZpCisrCSAgICAgIGlmIHRlc3QgLW4gIiRh X2RlcGxpYiIgOyB0aGVuCisrCQlkcm9wcGVkZGVwcz15ZXMKKysJCWVjaG8KKysJCSRFQ0hPICIq KiogV2FybmluZzogbGlua2VyIHBhdGggZG9lcyBub3QgaGF2ZSByZWFsIGZpbGUgZm9yIGxpYnJh cnkgJGFfZGVwbGliLiIKKysJCWVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFr ZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCisrCQllY2hvICIqKiog eW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3Ug aGF2ZSBhIgorKwkJZWNobyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGlj aCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgorKwkJZWNobyAiKioqIGJlY2F1c2UgSSBkaWQg Y2hlY2sgdGhlIGxpbmtlciBwYXRoIGxvb2tpbmcgZm9yIGEgZmlsZSBzdGFydGluZyIKKysJCWlm IHRlc3QgLXogIiRwb3RsaWIiIDsgdGhlbgorKwkJICAkRUNITyAiKioqIHdpdGggJGxpYm5hbWUg YnV0IG5vIGNhbmRpZGF0ZXMgd2VyZSBmb3VuZC4gKC4uLmZvciByZWdleCBwYXR0ZXJuIHRlc3Qp IgorKwkJZWxzZQorKwkJICAkRUNITyAiKioqIHdpdGggJGxpYm5hbWUgYW5kIG5vbmUgb2YgdGhl IGNhbmRpZGF0ZXMgcGFzc2VkIGEgZmlsZSBmb3JtYXQgdGVzdCIKKysJCSAgJEVDSE8gIioqKiB1 c2luZyBhIHJlZ2V4IHBhdHRlcm4uIExhc3QgZmlsZSBjaGVja2VkOiAkcG90bGliIgorKwkJZmkK KysJICAgICAgZmkKKysJICAgICAgOzsKKysJICAgICopCisrCSAgICAgICMgQWRkIGEgLUwgYXJn dW1lbnQuCisrCSAgICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKKysJICAg ICAgOzsKKysJICAgIGVzYWMKKysJICBkb25lICMgR29uZSB0aHJvdWdoIGFsbCBkZXBsaWJzLgor KwkgIDs7CisrCW5vbmUgfCB1bmtub3duIHwgKikKKysJICBuZXdkZXBsaWJzPSIiCisrCSAgdG1w X2RlcGxpYnM9YCRFQ0hPICIgJGRlcGxpYnMiIHwgJFNFRCAncy8gLWxjJC8vOyBzLyAtW0xSXVte IF0qLy9nJ2AKKysJICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19y dW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisrCSAgICBmb3IgaSBpbiAkcHJlZGVwcyAkcG9zdGRl cHMgOyBkbworKwkgICAgICAjIGNhbid0IHVzZSBYc2VkIGJlbG93LCBiZWNhdXNlICRpIG1pZ2h0 IGNvbnRhaW4gJy8nCisrCSAgICAgIHRtcF9kZXBsaWJzPWAkRUNITyAiICR0bXBfZGVwbGlicyIg fCAkU0VEICJzLCRpLCwiYAorKwkgICAgZG9uZQorKwkgIGZpCisrCSAgY2FzZSAkdG1wX2RlcGxp YnMgaW4KKysJICAqWyFcCVwgXSopCisrCSAgICBlY2hvCisrCSAgICBpZiB0ZXN0ICJYJGRlcGxp YnNfY2hlY2tfbWV0aG9kIiA9ICJYbm9uZSI7IHRoZW4KKysJICAgICAgZWNobyAiKioqIFdhcm5p bmc6IGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoaXMg cGxhdGZvcm0uIgorKwkgICAgZWxzZQorKwkgICAgICBlY2hvICIqKiogV2FybmluZzogaW50ZXIt bGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIG5vdCBrbm93biB0byBiZSBzdXBwb3J0ZWQuIgorKwkg ICAgZmkKKysJICAgIGVjaG8gIioqKiBBbGwgZGVjbGFyZWQgaW50ZXItbGlicmFyeSBkZXBlbmRl bmNpZXMgYXJlIGJlaW5nIGRyb3BwZWQuIgorKwkgICAgZHJvcHBlZGRlcHM9eWVzCisrCSAgICA7 OworKwkgIGVzYWMKKysJICA7OworKwllc2FjCisrCXZlcnN1ZmZpeD0kdmVyc3VmZml4X3NhdmUK KysJbWFqb3I9JG1ham9yX3NhdmUKKysJcmVsZWFzZT0kcmVsZWFzZV9zYXZlCisrCWxpYm5hbWU9 JGxpYm5hbWVfc2F2ZQorKwluYW1lPSRuYW1lX3NhdmUKKysKKysJY2FzZSAkaG9zdCBpbgorKwkq LSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCisrCSAgIyBPbiBSaGFwc29keSByZXBs YWNlIHRoZSBDIGxpYnJhcnkgd2l0aCB0aGUgU3lzdGVtIGZyYW1ld29yaworKwkgIG5ld2RlcGxp YnM9YCRFQ0hPICIgJG5ld2RlcGxpYnMiIHwgJFNFRCAncy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3 b3JrIC8nYAorKwkgIDs7CisrCWVzYWMKKysKKysJaWYgdGVzdCAiJGRyb3BwZWRkZXBzIiA9IHll czsgdGhlbgorKwkgIGlmIHRlc3QgIiRtb2R1bGUiID0geWVzOyB0aGVuCisrCSAgICBlY2hvCisr CSAgICBlY2hvICIqKiogV2FybmluZzogbGlidG9vbCBjb3VsZCBub3Qgc2F0aXNmeSBhbGwgZGVj bGFyZWQgaW50ZXItbGlicmFyeSIKKysJICAgICRFQ0hPICIqKiogZGVwZW5kZW5jaWVzIG9mIG1v ZHVsZSAkbGlibmFtZS4gIFRoZXJlZm9yZSwgbGlidG9vbCB3aWxsIGNyZWF0ZSIKKysJICAgIGVj aG8gIioqKiBhIHN0YXRpYyBtb2R1bGUsIHRoYXQgc2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0aGUg ZGxvcGVuaW5nIgorKwkgICAgZWNobyAiKioqIGFwcGxpY2F0aW9uIGlzIGxpbmtlZCB3aXRoIHRo ZSAtZGxvcGVuIGZsYWcuIgorKwkgICAgaWYgdGVzdCAteiAiJGdsb2JhbF9zeW1ib2xfcGlwZSI7 IHRoZW4KKysJICAgICAgZWNobworKwkgICAgICBlY2hvICIqKiogSG93ZXZlciwgdGhpcyB3b3Vs ZCBvbmx5IHdvcmsgaWYgbGlidG9vbCB3YXMgYWJsZSB0byBleHRyYWN0IHN5bWJvbCIKKysJICAg ICAgZWNobyAiKioqIGxpc3RzIGZyb20gYSBwcm9ncmFtLCB1c2luZyBcYG5tJyBvciBlcXVpdmFs ZW50LCBidXQgbGlidG9vbCBjb3VsZCIKKysJICAgICAgZWNobyAiKioqIG5vdCBmaW5kIHN1Y2gg YSBwcm9ncmFtLiAgU28sIHRoaXMgbW9kdWxlIGlzIHByb2JhYmx5IHVzZWxlc3MuIgorKwkgICAg ICBlY2hvICIqKiogXGBubScgZnJvbSBHTlUgYmludXRpbHMgYW5kIGEgZnVsbCByZWJ1aWxkIG1h eSBoZWxwLiIKKysJICAgIGZpCisrCSAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0gbm87 IHRoZW4KKysJICAgICAgb2xkbGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIK KysJICAgICAgYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQorKwkgICAgICBidWlsZF9vbGRfbGli cz15ZXMKKysJICAgIGVsc2UKKysJICAgICAgYnVpbGRfbGlidG9vbF9saWJzPW5vCisrCSAgICBm aQorKwkgIGVsc2UKKysJICAgIGVjaG8gIioqKiBUaGUgaW50ZXItbGlicmFyeSBkZXBlbmRlbmNp ZXMgdGhhdCBoYXZlIGJlZW4gZHJvcHBlZCBoZXJlIHdpbGwgYmUiCisrCSAgICBlY2hvICIqKiog YXV0b21hdGljYWxseSBhZGRlZCB3aGVuZXZlciBhIHByb2dyYW0gaXMgbGlua2VkIHdpdGggdGhp cyBsaWJyYXJ5IgorKwkgICAgZWNobyAiKioqIG9yIGlzIGRlY2xhcmVkIHRvIC1kbG9wZW4gaXQu IgorKworKwkgICAgaWYgdGVzdCAiJGFsbG93X3VuZGVmaW5lZCIgPSBubzsgdGhlbgorKwkgICAg ICBlY2hvCisrCSAgICAgIGVjaG8gIioqKiBTaW5jZSB0aGlzIGxpYnJhcnkgbXVzdCBub3QgY29u dGFpbiB1bmRlZmluZWQgc3ltYm9scywiCisrCSAgICAgIGVjaG8gIioqKiBiZWNhdXNlIGVpdGhl ciB0aGUgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGVtIG9yIgorKwkgICAgICBlY2hvICIq KiogaXQgd2FzIGV4cGxpY2l0bHkgcmVxdWVzdGVkIHdpdGggLW5vLXVuZGVmaW5lZCwiCisrCSAg ICAgIGVjaG8gIioqKiBsaWJ0b29sIHdpbGwgb25seSBjcmVhdGUgYSBzdGF0aWMgdmVyc2lvbiBv ZiBpdC4iCisrCSAgICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSBubzsgdGhlbgorKwkJ b2xkbGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKKysJCWJ1aWxkX2xpYnRv b2xfbGlicz1tb2R1bGUKKysJCWJ1aWxkX29sZF9saWJzPXllcworKwkgICAgICBlbHNlCisrCQli dWlsZF9saWJ0b29sX2xpYnM9bm8KKysJICAgICAgZmkKKysJICAgIGZpCisrCSAgZmkKKysJZmkK KysJIyBEb25lIGNoZWNraW5nIGRlcGxpYnMhCisrCWRlcGxpYnM9JG5ld2RlcGxpYnMKKysgICAg ICBmaQorKyAgICAgICMgVGltZSB0byBjaGFuZ2UgYWxsIG91ciAiZm9vLmx0ZnJhbWV3b3JrIiBz dHVmZiBiYWNrIHRvICItZnJhbWV3b3JrIGZvbyIKKysgICAgICBjYXNlICRob3N0IGluCisrCSot Ki1kYXJ3aW4qKQorKwkgIG5ld2RlcGxpYnM9YCRFQ0hPICIgJG5ld2RlcGxpYnMiIHwgJFNFRCAn cyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKysJICBuZXdfaW5o ZXJpdGVkX2xpbmtlcl9mbGFncz1gJEVDSE8gIiAkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3Mi IHwgJFNFRCAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKysJ ICBkZXBsaWJzPWAkRUNITyAiICRkZXBsaWJzIiB8ICRTRUQgJ3MlIFwoW14gJF0qXCkubHRmcmFt ZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisrCSAgOzsKKysgICAgICBlc2FjCisrCisrICAgICAg IyBtb3ZlIGxpYnJhcnkgc2VhcmNoIHBhdGhzIHRoYXQgY29pbmNpZGUgd2l0aCBwYXRocyB0byBu b3QgeWV0CisrICAgICAgIyBpbnN0YWxsZWQgbGlicmFyaWVzIHRvIHRoZSBiZWdpbm5pbmcgb2Yg dGhlIGxpYnJhcnkgc2VhcmNoIGxpc3QKKysgICAgICBuZXdfbGlicz0KKysgICAgICBmb3IgcGF0 aCBpbiAkbm90aW5zdF9wYXRoOyBkbworKwljYXNlICIgJG5ld19saWJzICIgaW4KKysJKiIgLUwk cGF0aC8kb2JqZGlyICIqKSA7OworKwkqKQorKwkgIGNhc2UgIiAkZGVwbGlicyAiIGluCisrCSAg KiIgLUwkcGF0aC8kb2JqZGlyICIqKQorKwkgICAgbmV3X2xpYnM9IiRuZXdfbGlicyAtTCRwYXRo LyRvYmpkaXIiIDs7CisrCSAgZXNhYworKwkgIDs7CisrCWVzYWMKKysgICAgICBkb25lCisrICAg ICAgZm9yIGRlcGxpYiBpbiAkZGVwbGliczsgZG8KKysJY2FzZSAkZGVwbGliIGluCisrCS1MKikK KysJICBjYXNlICIgJG5ld19saWJzICIgaW4KKysJICAqIiAkZGVwbGliICIqKSA7OworKwkgICop IG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKKysJICBlc2FjCisrCSAgOzsKKysJKikg bmV3X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OworKwllc2FjCisrICAgICAgZG9uZQorKyAg ICAgIGRlcGxpYnM9IiRuZXdfbGlicyIKKysKKysgICAgICAjIEFsbCB0aGUgbGlicmFyeS1zcGVj aWZpYyB2YXJpYWJsZXMgKGluc3RhbGxfbGliZGlyIGlzIHNldCBhYm92ZSkuCisrICAgICAgbGli cmFyeV9uYW1lcz0KKysgICAgICBvbGRfbGlicmFyeT0KKysgICAgICBkbG5hbWU9CisrCisrICAg ICAgIyBUZXN0IGFnYWluLCB3ZSBtYXkgaGF2ZSBkZWNpZGVkIG5vdCB0byBidWlsZCBpdCBhbnkg bW9yZQorKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisr CWlmIHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiID0geWVzOyB0aGVuCisrCSAgIyBIYXJkY29k ZSB0aGUgbGlicmFyeSBwYXRocworKwkgIGhhcmRjb2RlX2xpYmRpcnM9CisrCSAgZGVwX3JwYXRo PQorKwkgIHJwYXRoPSIkZmluYWxpemVfcnBhdGgiCisrCSAgdGVzdCAiJG1vZGUiICE9IHJlbGlu ayAmJiBycGF0aD0iJGNvbXBpbGVfcnBhdGgkcnBhdGgiCisrCSAgZm9yIGxpYmRpciBpbiAkcnBh dGg7IGRvCisrCSAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRo ZW4KKysJICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVu CisrCQlpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJCSAgaGFyZGNvZGVf bGliZGlycz0iJGxpYmRpciIKKysJCWVsc2UKKysJCSAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVu aXF1ZSBsaWJkaXJzLgorKwkJICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRj b2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgorKwkJICAqIiRoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCisr CQkgICAgOzsKKysJCSAgKikKKysJCSAgICBoYXJkY29kZV9saWJkaXJzPSIkaGFyZGNvZGVfbGli ZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciIKKysJCSAgICA7OworKwkJICBl c2FjCisrCQlmaQorKwkgICAgICBlbHNlCisrCQlldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY1wiCisrCQlkZXBfcnBhdGg9IiRkZXBfcnBhdGggJGZsYWciCisrCSAgICAgIGZp CisrCSAgICBlbGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KKysJICAgICAgY2FzZSAi JHBlcm1fcnBhdGggIiBpbgorKwkgICAgICAqIiAkbGliZGlyICIqKSA7OworKwkgICAgICAqKSBw ZXJtX3JwYXRoPSIkcGVybV9ycGF0aCAkbGliZGlyIiA7OworKwkgICAgICBlc2FjCisrCSAgICBm aQorKwkgIGRvbmUKKysJICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8g dGhlIHJwYXRoLgorKwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAm JgorKwkgICAgIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgorKwkgICAgbGliZGly PSIkaGFyZGNvZGVfbGliZGlycyIKKysJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX2xkIjsgdGhlbgorKwkgICAgICBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX2xkXCIKKysJICAgIGVsc2UKKysJICAgICAgZXZhbCBkZXBfcnBhdGg9 XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrCSAgICBmaQorKwkgIGZpCisrCSAgaWYg dGVzdCAtbiAiJHJ1bnBhdGhfdmFyIiAmJiB0ZXN0IC1uICIkcGVybV9ycGF0aCI7IHRoZW4KKysJ ICAgICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCisrCSAgICBycGF0aD0KKysJICAg IGZvciBkaXIgaW4gJHBlcm1fcnBhdGg7IGRvCisrCSAgICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIK KysJICAgIGRvbmUKKysJICAgIGV2YWwgIiRydW5wYXRoX3Zhcj0nJHJwYXRoXCQkcnVucGF0aF92 YXInOyBleHBvcnQgJHJ1bnBhdGhfdmFyIgorKwkgIGZpCisrCSAgdGVzdCAtbiAiJGRlcF9ycGF0 aCIgJiYgZGVwbGlicz0iJGRlcF9ycGF0aCAkZGVwbGlicyIKKysJZmkKKysKKysJc2hsaWJwYXRo PSIkZmluYWxpemVfc2hsaWJwYXRoIgorKwl0ZXN0ICIkbW9kZSIgIT0gcmVsaW5rICYmIHNobGli cGF0aD0iJGNvbXBpbGVfc2hsaWJwYXRoJHNobGlicGF0aCIKKysJaWYgdGVzdCAtbiAiJHNobGli cGF0aCI7IHRoZW4KKysJICBldmFsICIkc2hsaWJwYXRoX3Zhcj0nJHNobGlicGF0aFwkJHNobGli cGF0aF92YXInOyBleHBvcnQgJHNobGlicGF0aF92YXIiCisrCWZpCisrCisrCSMgR2V0IHRoZSBy ZWFsIGFuZCBsaW5rIG5hbWVzIG9mIHRoZSBsaWJyYXJ5LgorKwlldmFsIHNoYXJlZF9leHQ9XCIk c2hyZXh0X2NtZHNcIgorKwlldmFsIGxpYnJhcnlfbmFtZXM9XCIkbGlicmFyeV9uYW1lc19zcGVj XCIKKysJc2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzCisrCXNoaWZ0CisrCXJlYWxuYW1lPSIkMSIK KysJc2hpZnQKKysKKysJaWYgdGVzdCAtbiAiJHNvbmFtZV9zcGVjIjsgdGhlbgorKwkgIGV2YWwg c29uYW1lPVwiJHNvbmFtZV9zcGVjXCIKKysJZWxzZQorKwkgIHNvbmFtZT0iJHJlYWxuYW1lIgor KwlmaQorKwlpZiB0ZXN0IC16ICIkZGxuYW1lIjsgdGhlbgorKwkgIGRsbmFtZT0kc29uYW1lCisr CWZpCisrCisrCWxpYj0iJG91dHB1dF9vYmpkaXIvJHJlYWxuYW1lIgorKwlsaW5rbmFtZXM9Cisr CWZvciBsaW5rCisrCWRvCisrCSAgbGlua25hbWVzPSIkbGlua25hbWVzICRsaW5rIgorKwlkb25l CisrCisrCSMgVXNlIHN0YW5kYXJkIG9iamVjdHMgaWYgdGhleSBhcmUgcGljCisrCXRlc3QgLXog IiRwaWNfZmxhZyIgJiYgbGlib2Jqcz1gJEVDSE8gIiRsaWJvYmpzIiB8ICRTUDJOTCB8ICRTRUQg IiRsbzJvIiB8ICROTDJTUGAKKysJdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0K KysKKysJZGVsZmlsZXM9CisrCWlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAt biAiJGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4KKysJICAkb3B0X2RyeV9ydW4gfHwgY3AgIiRleHBv cnRfc3ltYm9scyIgIiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnVleHAiCisrCSAgZXhwb3J0X3N5 bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnVleHAiCisrCSAgZGVsZmlsZXM9IiRkZWxm aWxlcyAkZXhwb3J0X3N5bWJvbHMiCisrCWZpCisrCisrCW9yaWdfZXhwb3J0X3N5bWJvbHM9Cisr CWNhc2UgJGhvc3Rfb3MgaW4KKysJY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKKysJICBpZiB0 ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLXogIiRleHBvcnRfc3ltYm9sc19yZWdl eCI7IHRoZW4KKysJICAgICMgZXhwb3J0aW5nIHVzaW5nIHVzZXIgc3VwcGxpZWQgc3ltZmlsZQor KwkgICAgaWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiICE9IHhFWFBPUlRTOyB0 aGVuCisrCSAgICAgICMgYW5kIGl0J3MgTk9UIGFscmVhZHkgYSAuZGVmIGZpbGUuIE11c3QgZmln dXJlIG91dAorKwkgICAgICAjIHdoaWNoIG9mIHRoZSBnaXZlbiBzeW1ib2xzIGFyZSBkYXRhIHN5 bWJvbHMgYW5kIHRhZworKwkgICAgICAjIHRoZW0gYXMgc3VjaC4gU28sIHRyaWdnZXIgdXNlIG9m IGV4cG9ydF9zeW1ib2xzX2NtZHMuCisrCSAgICAgICMgZXhwb3J0X3N5bWJvbHMgZ2V0cyByZWFz c2lnbmVkIGluc2lkZSB0aGUgInByZXBhcmUKKysJICAgICAgIyB0aGUgbGlzdCBvZiBleHBvcnRl ZCBzeW1ib2xzIiBpZiBzdGF0ZW1lbnQsIHNvIHRoZQorKwkgICAgICAjIGluY2x1ZGVfZXhwc3lt cyBsb2dpYyBzdGlsbCB3b3Jrcy4KKysJICAgICAgb3JpZ19leHBvcnRfc3ltYm9scz0iJGV4cG9y dF9zeW1ib2xzIgorKwkgICAgICBleHBvcnRfc3ltYm9scz0KKysJICAgICAgYWx3YXlzX2V4cG9y dF9zeW1ib2xzPXllcworKwkgICAgZmkKKysJICBmaQorKwkgIDs7CisrCWVzYWMKKysKKysJIyBQ cmVwYXJlIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMKKysJaWYgdGVzdCAteiAiJGV4cG9y dF9zeW1ib2xzIjsgdGhlbgorKwkgIGlmIHRlc3QgIiRhbHdheXNfZXhwb3J0X3N5bWJvbHMiID0g eWVzIHx8IHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCI7IHRoZW4KKysJICAgIGZ1bmNf dmVyYm9zZSAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYSciCisrCSAg ICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZXhwIgorKwkgICAgJG9w dF9kcnlfcnVuIHx8ICRSTSAkZXhwb3J0X3N5bWJvbHMKKysJICAgIGNtZHM9JGV4cG9ydF9zeW1i b2xzX2NtZHMKKysJICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JworKwkgICAgZm9yIGNtZCBp biAkY21kczsgZG8KKysJICAgICAgSUZTPSIkc2F2ZV9pZnMiCisrCSAgICAgIGV2YWwgY21kPVwi JGNtZFwiCisrCSAgICAgIGZ1bmNfbGVuICIgJGNtZCIKKysJICAgICAgbGVuPSRmdW5jX2xlbl9y ZXN1bHQKKysJICAgICAgaWYgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iIHx8IHRlc3Qg IiRtYXhfY21kX2xlbiIgLWxlIC0xOyB0aGVuCisrCQlmdW5jX3Nob3dfZXZhbCAiJGNtZCIgJ2V4 aXQgJD8nCisrCQlza2lwcGVkX2V4cG9ydD1mYWxzZQorKwkgICAgICBlbHNlCisrCQkjIFRoZSBj b21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gZXhlY3V0ZSBpbiBvbmUgc3RlcC4KKysJCWZ1bmNf dmVyYm9zZSAidXNpbmcgcmVsb2FkYWJsZSBvYmplY3QgZmlsZSBmb3IgZXhwb3J0IGxpc3QuLi4i CisrCQlza2lwcGVkX2V4cG9ydD06CisrCQkjIEJyZWFrIG91dCBlYXJseSwgb3RoZXJ3aXNlIHNr aXBwZWRfZXhwb3J0IG1heSBiZQorKwkJIyBzZXQgdG8gZmFsc2UgYnkgYSBsYXRlciBidXQgc2hv cnRlciBjbWQuCisrCQlicmVhaworKwkgICAgICBmaQorKwkgICAgZG9uZQorKwkgICAgSUZTPSIk c2F2ZV9pZnMiCisrCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICYmIHRl c3QgIlgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiI7IHRoZW4KKysJICAgICAgZnVuY19zaG93X2V2 YWwgJyRFR1JFUCAtZSAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IiAiJGV4cG9ydF9zeW1ib2xzIiA+ ICIke2V4cG9ydF9zeW1ib2xzfVQiJworKwkgICAgICBmdW5jX3Nob3dfZXZhbCAnJE1WICIke2V4 cG9ydF9zeW1ib2xzfVQiICIkZXhwb3J0X3N5bWJvbHMiJworKwkgICAgZmkKKysJICBmaQorKwlm aQorKworKwlpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRpbmNsdWRl X2V4cHN5bXMiOyB0aGVuCisrCSAgdG1wX2V4cG9ydF9zeW1ib2xzPSIkZXhwb3J0X3N5bWJvbHMi CisrCSAgdGVzdCAtbiAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiICYmIHRtcF9leHBvcnRfc3ltYm9s cz0iJG9yaWdfZXhwb3J0X3N5bWJvbHMiCisrCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyRFQ0hP ICIkaW5jbHVkZV9leHBzeW1zIiB8ICRTUDJOTCA+PiAiJHRtcF9leHBvcnRfc3ltYm9scyInCisr CWZpCisrCisrCWlmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYgdGVzdCAtbiAi JG9yaWdfZXhwb3J0X3N5bWJvbHMiOyB0aGVuCisrCSAgIyBUaGUgZ2l2ZW4gZXhwb3J0c19zeW1i b2xzIGZpbGUgaGFzIHRvIGJlIGZpbHRlcmVkLCBzbyBmaWx0ZXIgaXQuCisrCSAgZnVuY192ZXJi b3NlICJmaWx0ZXIgc3ltYm9sIGxpc3QgZm9yIFxgJGxpYm5hbWUubGEnIHRvIHRhZyBEQVRBIGV4 cG9ydHMiCisrCSAgIyBGSVhNRTogJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIHBvdGVu dGlhbGx5IGNvbnRhaW5zIGxvdHMgb2YKKysJICAjICdzJyBjb21tYW5kcyB3aGljaCBub3QgYWxs IHNlZHMgY2FuIGhhbmRsZS4gR05VIHNlZCBzaG91bGQgYmUgZmluZQorKwkgICMgdGhvdWdoLiBB bHNvLCB0aGUgZmlsdGVyIHNjYWxlcyBzdXBlcmxpbmVhcmx5IHdpdGggdGhlIG51bWJlciBvZgor KwkgICMgZ2xvYmFsIHZhcmlhYmxlcy4gam9pbigxKSB3b3VsZCBiZSBuaWNlIGhlcmUsIGJ1dCB1 bmZvcnR1bmF0ZWx5CisrCSAgIyBpc24ndCBhIGJsZXNzZWQgdG9vbC4KKysJICAkb3B0X2RyeV9y dW4gfHwgJFNFRCAtZSAnL1sgLF1EQVRBLyFkO3MsXCguKlwpXChbIFwsXS4qXCksc3xeXDEkfFwx XDJ8LCcgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIK KysJICBkZWxmaWxlcz0iJGRlbGZpbGVzICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8k bGlibmFtZS5maWx0ZXIiCisrCSAgZXhwb3J0X3N5bWJvbHM9JG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuZGVmCisrCSAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWYgJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuZmlsdGVyIDwgJG9yaWdfZXhwb3J0X3N5bWJvbHMgPiAkZXhwb3J0X3N5bWJvbHMKKysJZmkK KysKKysJdG1wX2RlcGxpYnM9CisrCWZvciB0ZXN0X2RlcGxpYiBpbiAkZGVwbGliczsgZG8KKysJ ICBjYXNlICIgJGNvbnZlbmllbmNlICIgaW4KKysJICAqIiAkdGVzdF9kZXBsaWIgIiopIDs7Cisr CSAgKikKKysJICAgIHRtcF9kZXBsaWJzPSIkdG1wX2RlcGxpYnMgJHRlc3RfZGVwbGliIgorKwkg ICAgOzsKKysJICBlc2FjCisrCWRvbmUKKysJZGVwbGlicz0iJHRtcF9kZXBsaWJzIgorKworKwlp ZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjIiAmJgorKwkgICAgdGVzdCAiJGNvbXBpbGVyX25lZWRzX29iamVjdCIg PSB5ZXMgJiYKKysJICAgIHRlc3QgLXogIiRsaWJvYmpzIjsgdGhlbgorKwkgICAgIyBleHRyYWN0 IHRoZSBhcmNoaXZlcywgc28gd2UgaGF2ZSBvYmplY3RzIHRvIGxpc3QuCisrCSAgICAjIFRPRE86 IGNvdWxkIG9wdGltaXplIHRoaXMgdG8ganVzdCBleHRyYWN0IG9uZSBhcmNoaXZlLgorKwkgICAg d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9CisrCSAgZmkKKysJICBpZiB0ZXN0IC1uICIkd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCisrCSAgICBzYXZlX2xpYm9ianM9JGxpYm9ianMKKysJ ICAgIGV2YWwgbGlib2Jqcz1cIlwkbGlib2JqcyAkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNcIgor KwkgICAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KKysJICBlbHNlCisrCSAg ICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgorKwkgICAgZ2VuZXJhdGVk PSIkZ2VuZXJhdGVkICRnZW50b3AiCisrCisrCSAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdl bnRvcCAkY29udmVuaWVuY2UKKysJICAgIGxpYm9ianM9IiRsaWJvYmpzICRmdW5jX2V4dHJhY3Rf YXJjaGl2ZXNfcmVzdWx0IgorKwkgICAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jq cz0KKysJICBmaQorKwlmaQorKworKwlpZiB0ZXN0ICIkdGhyZWFkX3NhZmUiID0geWVzICYmIHRl c3QgLW4gIiR0aHJlYWRfc2FmZV9mbGFnX3NwZWMiOyB0aGVuCisrCSAgZXZhbCBmbGFnPVwiJHRo cmVhZF9zYWZlX2ZsYWdfc3BlY1wiCisrCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRm bGFnIgorKwlmaQorKworKwkjIE1ha2UgYSBiYWNrdXAgb2YgdGhlIHVuaW5zdGFsbGVkIGxpYnJh cnkgd2hlbiByZWxpbmtpbmcKKysJaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisrCSAg JG9wdF9kcnlfcnVuIHx8IGV2YWwgJyhjZCAkb3V0cHV0X29iamRpciAmJiAkUk0gJHtyZWFsbmFt ZX1VICYmICRNViAkcmVhbG5hbWUgJHtyZWFsbmFtZX1VKScgfHwgZXhpdCAkPworKwlmaQorKwor KwkjIERvIGVhY2ggb2YgdGhlIGFyY2hpdmUgY29tbWFuZHMuCisrCWlmIHRlc3QgIiRtb2R1bGUi ID0geWVzICYmIHRlc3QgLW4gIiRtb2R1bGVfY21kcyIgOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAi JGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkbW9kdWxlX2V4cHN5bV9jbWRzIjsgdGhlbgor KwkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkbW9kdWxlX2V4cHN5bV9jbWRzXCIKKysJICAgIGNtZHM9 JG1vZHVsZV9leHBzeW1fY21kcworKwkgIGVsc2UKKysJICAgIGV2YWwgdGVzdF9jbWRzPVwiJG1v ZHVsZV9jbWRzXCIKKysJICAgIGNtZHM9JG1vZHVsZV9jbWRzCisrCSAgZmkKKysJZWxzZQorKwkg IGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGFyY2hpdmVfZXhwc3lt X2NtZHMiOyB0aGVuCisrCSAgICBldmFsIHRlc3RfY21kcz1cIiRhcmNoaXZlX2V4cHN5bV9jbWRz XCIKKysJICAgIGNtZHM9JGFyY2hpdmVfZXhwc3ltX2NtZHMKKysJICBlbHNlCisrCSAgICBldmFs IHRlc3RfY21kcz1cIiRhcmNoaXZlX2NtZHNcIgorKwkgICAgY21kcz0kYXJjaGl2ZV9jbWRzCisr CSAgZmkKKysJZmkKKysKKysJaWYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IiAmJgor KwkgICBmdW5jX2xlbiAiICR0ZXN0X2NtZHMiICYmCisrCSAgIGxlbj0kZnVuY19sZW5fcmVzdWx0 ICYmCisrCSAgIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIiB8fCB0ZXN0ICIkbWF4X2Nt ZF9sZW4iIC1sZSAtMTsgdGhlbgorKwkgIDoKKysJZWxzZQorKwkgICMgVGhlIGNvbW1hbmQgbGlu ZSBpcyB0b28gbG9uZyB0byBsaW5rIGluIG9uZSBzdGVwLCBsaW5rIHBpZWNld2lzZQorKwkgICMg b3IsIGlmIHVzaW5nIEdOVSBsZCBhbmQgc2tpcHBlZF9leHBvcnQgaXMgbm90IDosIHVzZSBhIGxp bmtlcgorKwkgICMgc2NyaXB0LgorKworKwkgICMgU2F2ZSB0aGUgdmFsdWUgb2YgJG91dHB1dCBh bmQgJGxpYm9ianMgYmVjYXVzZSB3ZSB3YW50IHRvCisrCSAgIyB1c2UgdGhlbSBsYXRlci4gIElm IHdlIGhhdmUgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsIHdlCisrCSAgIyB3YW50IHRvIHVzZSBz YXZlX2xpYm9ianMgYXMgaXQgd2FzIGJlZm9yZQorKwkgICMgd2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWMgd2FzIGV4cGFuZGVkLCBiZWNhdXNlIHdlIGNhbid0CisrCSAgIyBhc3N1bWUgdGhlIGxpbmtl ciB1bmRlcnN0YW5kcyB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYy4KKysJICAjIFRoaXMgbWF5IGhh dmUgdG8gYmUgcmV2aXNpdGVkLCBpbiBjYXNlIHRvbyBtYW55CisrCSAgIyBjb252ZW5pZW5jZSBs aWJyYXJpZXMgZ2V0IGxpbmtlZCBpbiBhbmQgZW5kIHVwIGV4Y2VlZGluZworKwkgICMgdGhlIHNw ZWMuCisrCSAgaWYgdGVzdCAteiAiJGNvbnZlbmllbmNlIiB8fCB0ZXN0IC16ICIkd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMiOyB0aGVuCisrCSAgICBzYXZlX2xpYm9ianM9JGxpYm9ianMKKysJICBm aQorKwkgIHNhdmVfb3V0cHV0PSRvdXRwdXQKKysJICBmdW5jX2Jhc2VuYW1lICIkb3V0cHV0Igor KwkgIG91dHB1dF9sYT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKKysKKysJICAjIENsZWFyIHRoZSBy ZWxvYWRhYmxlIG9iamVjdCBjcmVhdGlvbiBjb21tYW5kIHF1ZXVlIGFuZAorKwkgICMgaW5pdGlh bGl6ZSBrIHRvIG9uZS4KKysJICB0ZXN0X2NtZHM9CisrCSAgY29uY2F0X2NtZHM9CisrCSAgb2Jq bGlzdD0KKysJICBsYXN0X3JvYmo9CisrCSAgaz0xCisrCisrCSAgaWYgdGVzdCAtbiAiJHNhdmVf bGlib2JqcyIgJiYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IiAmJiB0ZXN0ICIkd2l0 aF9nbnVfbGQiID0geWVzOyB0aGVuCisrCSAgICBvdXRwdXQ9JHtvdXRwdXRfb2JqZGlyfS8ke291 dHB1dF9sYX0ubG5rc2NyaXB0CisrCSAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nIEdOVSBsZCBz Y3JpcHQ6ICRvdXRwdXQiCisrCSAgICBlY2hvICdJTlBVVCAoJyA+ICRvdXRwdXQKKysJICAgIGZv ciBvYmogaW4gJHNhdmVfbGlib2JqcworKwkgICAgZG8KKysJICAgICAgJEVDSE8gIiRvYmoiID4+ ICRvdXRwdXQKKysJICAgIGRvbmUKKysJICAgIGVjaG8gJyknID4+ICRvdXRwdXQKKysJICAgIGRl bGZpbGVzPSIkZGVsZmlsZXMgJG91dHB1dCIKKysJICBlbGlmIHRlc3QgLW4gIiRzYXZlX2xpYm9i anMiICYmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYgdGVzdCAiWCRmaWxlX2xp c3Rfc3BlYyIgIT0gWDsgdGhlbgorKwkgICAgb3V0cHV0PSR7b3V0cHV0X29iamRpcn0vJHtvdXRw dXRfbGF9LmxuaworKwkgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyBsaW5rZXIgaW5wdXQgZmls ZSBsaXN0OiAkb3V0cHV0IgorKwkgICAgOiA+ICRvdXRwdXQKKysJICAgIHNldCB4ICRzYXZlX2xp Ym9ianMKKysJICAgIHNoaWZ0CisrCSAgICBmaXJzdG9iaj0KKysJICAgIGlmIHRlc3QgIiRjb21w aWxlcl9uZWVkc19vYmplY3QiID0geWVzOyB0aGVuCisrCSAgICAgIGZpcnN0b2JqPSIkMSAiCisr CSAgICAgIHNoaWZ0CisrCSAgICBmaQorKwkgICAgZm9yIG9iagorKwkgICAgZG8KKysJICAgICAg JEVDSE8gIiRvYmoiID4+ICRvdXRwdXQKKysJICAgIGRvbmUKKysJICAgIGRlbGZpbGVzPSIkZGVs ZmlsZXMgJG91dHB1dCIKKysJICAgIG91dHB1dD0kZmlyc3RvYmpcIiRmaWxlX2xpc3Rfc3BlYyRv dXRwdXRcIgorKwkgIGVsc2UKKysJICAgIGlmIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMiOyB0aGVu CisrCSAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMu Li4iCisrCSAgICAgIG91dHB1dD0kb3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4 dAorKwkgICAgICBldmFsIHRlc3RfY21kcz1cIiRyZWxvYWRfY21kc1wiCisrCSAgICAgIGZ1bmNf bGVuICIgJHRlc3RfY21kcyIKKysJICAgICAgbGVuMD0kZnVuY19sZW5fcmVzdWx0CisrCSAgICAg IGxlbj0kbGVuMAorKworKwkgICAgICAjIExvb3Agb3ZlciB0aGUgbGlzdCBvZiBvYmplY3RzIHRv IGJlIGxpbmtlZC4KKysJICAgICAgZm9yIG9iaiBpbiAkc2F2ZV9saWJvYmpzCisrCSAgICAgIGRv CisrCQlmdW5jX2xlbiAiICRvYmoiCisrCQlmdW5jX2FyaXRoICRsZW4gKyAkZnVuY19sZW5fcmVz dWx0CisrCQlsZW49JGZ1bmNfYXJpdGhfcmVzdWx0CisrCQlpZiB0ZXN0ICJYJG9iamxpc3QiID0g WCB8fAorKwkJICAgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iOyB0aGVuCisrCQkgIGZ1 bmNfYXBwZW5kIG9iamxpc3QgIiAkb2JqIgorKwkJZWxzZQorKwkJICAjIFRoZSBjb21tYW5kICR0 ZXN0X2NtZHMgaXMgYWxtb3N0IHRvbyBsb25nLCBhZGQgYQorKwkJICAjIGNvbW1hbmQgdG8gdGhl IHF1ZXVlLgorKwkJICBpZiB0ZXN0ICIkayIgLWVxIDEgOyB0aGVuCisrCQkgICAgIyBUaGUgZmly c3QgZmlsZSBkb2Vzbid0IGhhdmUgYSBwcmV2aW91cyBjb21tYW5kIHRvIGFkZC4KKysJCSAgICBy ZWxvYWRfb2Jqcz0kb2JqbGlzdAorKwkJICAgIGV2YWwgY29uY2F0X2NtZHM9XCIkcmVsb2FkX2Nt ZHNcIgorKwkJICBlbHNlCisrCQkgICAgIyBBbGwgc3Vic2VxdWVudCByZWxvYWRhYmxlIG9iamVj dCBmaWxlcyB3aWxsIGxpbmsgaW4KKysJCSAgICAjIHRoZSBsYXN0IG9uZSBjcmVhdGVkLgorKwkJ ICAgIHJlbG9hZF9vYmpzPSIkb2JqbGlzdCAkbGFzdF9yb2JqIgorKwkJICAgIGV2YWwgY29uY2F0 X2NtZHM9XCJcJGNvbmNhdF9jbWRzfiRyZWxvYWRfY21kc35cJFJNICRsYXN0X3JvYmpcIgorKwkJ ICBmaQorKwkJICBsYXN0X3JvYmo9JG91dHB1dF9vYmpkaXIvJG91dHB1dF9sYS0ke2t9LiRvYmpl eHQKKysJCSAgZnVuY19hcml0aCAkayArIDEKKysJCSAgaz0kZnVuY19hcml0aF9yZXN1bHQKKysJ CSAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0CisrCQkgIG9i amxpc3Q9IiAkb2JqIgorKwkJICBmdW5jX2xlbiAiICRsYXN0X3JvYmoiCisrCQkgIGZ1bmNfYXJp dGggJGxlbjAgKyAkZnVuY19sZW5fcmVzdWx0CisrCQkgIGxlbj0kZnVuY19hcml0aF9yZXN1bHQK KysJCWZpCisrCSAgICAgIGRvbmUKKysJICAgICAgIyBIYW5kbGUgdGhlIHJlbWFpbmluZyBvYmpl Y3RzIGJ5IGNyZWF0aW5nIG9uZSBsYXN0CisrCSAgICAgICMgcmVsb2FkYWJsZSBvYmplY3QgZmls ZS4gIEFsbCBzdWJzZXF1ZW50IHJlbG9hZGFibGUgb2JqZWN0CisrCSAgICAgICMgZmlsZXMgd2ls bCBsaW5rIGluIHRoZSBsYXN0IG9uZSBjcmVhdGVkLgorKwkgICAgICB0ZXN0IC16ICIkY29uY2F0 X2NtZHMiIHx8IGNvbmNhdF9jbWRzPSRjb25jYXRfY21kc34KKysJICAgICAgcmVsb2FkX29ianM9 IiRvYmpsaXN0ICRsYXN0X3JvYmoiCisrCSAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJHtjb25j YXRfY21kc30kcmVsb2FkX2NtZHNcIgorKwkgICAgICBpZiB0ZXN0IC1uICIkbGFzdF9yb2JqIjsg dGhlbgorKwkgICAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJHtjb25jYXRfY21kc31+XCRSTSAk bGFzdF9yb2JqXCIKKysJICAgICAgZmkKKysJICAgICAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkb3V0 cHV0IgorKworKwkgICAgZWxzZQorKwkgICAgICBvdXRwdXQ9CisrCSAgICBmaQorKworKwkgICAg aWYgJHtza2lwcGVkX2V4cG9ydC1mYWxzZX07IHRoZW4KKysJICAgICAgZnVuY192ZXJib3NlICJn ZW5lcmF0aW5nIHN5bWJvbCBsaXN0IGZvciBcYCRsaWJuYW1lLmxhJyIKKysJICAgICAgZXhwb3J0 X3N5bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmV4cCIKKysJICAgICAgJG9wdF9kcnlf cnVuIHx8ICRSTSAkZXhwb3J0X3N5bWJvbHMKKysJICAgICAgbGlib2Jqcz0kb3V0cHV0CisrCSAg ICAgICMgQXBwZW5kIHRoZSBjb21tYW5kIHRvIGNyZWF0ZSB0aGUgZXhwb3J0IGZpbGUuCisrCSAg ICAgIHRlc3QgLXogIiRjb25jYXRfY21kcyIgfHwgY29uY2F0X2NtZHM9JGNvbmNhdF9jbWRzfgor KwkgICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCRjb25jYXRfY21kcyRleHBvcnRfc3ltYm9sc19j bWRzXCIKKysJICAgICAgaWYgdGVzdCAtbiAiJGxhc3Rfcm9iaiI7IHRoZW4KKysJCWV2YWwgY29u Y2F0X2NtZHM9XCJcJGNvbmNhdF9jbWRzflwkUk0gJGxhc3Rfcm9ialwiCisrCSAgICAgIGZpCisr CSAgICBmaQorKworKwkgICAgdGVzdCAtbiAiJHNhdmVfbGlib2JqcyIgJiYKKysJICAgICAgZnVu Y192ZXJib3NlICJjcmVhdGluZyBhIHRlbXBvcmFyeSByZWxvYWRhYmxlIG9iamVjdCBmaWxlOiAk b3V0cHV0IgorKworKwkgICAgIyBMb29wIHRocm91Z2ggdGhlIGNvbW1hbmRzIGdlbmVyYXRlZCBh Ym92ZSBhbmQgZXhlY3V0ZSB0aGVtLgorKwkgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCisr CSAgICBmb3IgY21kIGluICRjb25jYXRfY21kczsgZG8KKysJICAgICAgSUZTPSIkc2F2ZV9pZnMi CisrCSAgICAgICRvcHRfc2lsZW50IHx8IHsKKysJCSAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIk Y21kIgorKwkJICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQi CisrCSAgICAgIH0KKysJICAgICAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgIiRjbWQiIHx8IHsKKysJ CWx0X2V4aXQ9JD8KKysKKysJCSMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQg ZXhpdAorKwkJaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisrCQkgICggY2QgIiRvdXRw dXRfb2JqZGlyIiAmJiBcCisrCQkgICAgJFJNICIke3JlYWxuYW1lfVQiICYmIFwKKysJCSAgICAk TVYgIiR7cmVhbG5hbWV9VSIgIiRyZWFsbmFtZSIgKQorKwkJZmkKKysKKysJCWV4aXQgJGx0X2V4 aXQKKysJICAgICAgfQorKwkgICAgZG9uZQorKwkgICAgSUZTPSIkc2F2ZV9pZnMiCisrCisrCSAg ICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICYmICR7c2tpcHBlZF9leHBvcnQt ZmFsc2V9OyB0aGVuCisrCSAgICAgIGZ1bmNfc2hvd19ldmFsICckRUdSRVAgLWUgIiRleHBvcnRf c3ltYm9sc19yZWdleCIgIiRleHBvcnRfc3ltYm9scyIgPiAiJHtleHBvcnRfc3ltYm9sc31UIicK KysJICAgICAgZnVuY19zaG93X2V2YWwgJyRNViAiJHtleHBvcnRfc3ltYm9sc31UIiAiJGV4cG9y dF9zeW1ib2xzIicKKysJICAgIGZpCisrCSAgZmkKKysKKysgICAgICAgICAgaWYgJHtza2lwcGVk X2V4cG9ydC1mYWxzZX07IHRoZW4KKysJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIg JiYgdGVzdCAtbiAiJGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4KKysJICAgICAgdG1wX2V4cG9ydF9z eW1ib2xzPSIkZXhwb3J0X3N5bWJvbHMiCisrCSAgICAgIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9z eW1ib2xzIiAmJiB0bXBfZXhwb3J0X3N5bWJvbHM9IiRvcmlnX2V4cG9ydF9zeW1ib2xzIgorKwkg ICAgICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnJEVDSE8gIiRpbmNsdWRlX2V4cHN5bXMiIHwgJFNQ Mk5MID4+ICIkdG1wX2V4cG9ydF9zeW1ib2xzIicKKysJICAgIGZpCisrCisrCSAgICBpZiB0ZXN0 IC1uICIkb3JpZ19leHBvcnRfc3ltYm9scyI7IHRoZW4KKysJICAgICAgIyBUaGUgZ2l2ZW4gZXhw b3J0c19zeW1ib2xzIGZpbGUgaGFzIHRvIGJlIGZpbHRlcmVkLCBzbyBmaWx0ZXIgaXQuCisrCSAg ICAgIGZ1bmNfdmVyYm9zZSAiZmlsdGVyIHN5bWJvbCBsaXN0IGZvciBcYCRsaWJuYW1lLmxhJyB0 byB0YWcgREFUQSBleHBvcnRzIgorKwkgICAgICAjIEZJWE1FOiAkb3V0cHV0X29iamRpci8kbGli bmFtZS5maWx0ZXIgcG90ZW50aWFsbHkgY29udGFpbnMgbG90cyBvZgorKwkgICAgICAjICdzJyBj b21tYW5kcyB3aGljaCBub3QgYWxsIHNlZHMgY2FuIGhhbmRsZS4gR05VIHNlZCBzaG91bGQgYmUg ZmluZQorKwkgICAgICAjIHRob3VnaC4gQWxzbywgdGhlIGZpbHRlciBzY2FsZXMgc3VwZXJsaW5l YXJseSB3aXRoIHRoZSBudW1iZXIgb2YKKysJICAgICAgIyBnbG9iYWwgdmFyaWFibGVzLiBqb2lu KDEpIHdvdWxkIGJlIG5pY2UgaGVyZSwgYnV0IHVuZm9ydHVuYXRlbHkKKysJICAgICAgIyBpc24n dCBhIGJsZXNzZWQgdG9vbC4KKysJICAgICAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWUgJy9bICxd REFUQS8hZDtzLFwoLipcKVwoWyBcLF0uKlwpLHN8XlwxJHxcMVwyfCwnIDwgJGV4cG9ydF9zeW1i b2xzID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyCisrCSAgICAgIGRlbGZpbGVzPSIk ZGVsZmlsZXMgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciIK KysJICAgICAgZXhwb3J0X3N5bWJvbHM9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmCisrCSAg ICAgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1mICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRl ciA8ICRvcmlnX2V4cG9ydF9zeW1ib2xzID4gJGV4cG9ydF9zeW1ib2xzCisrCSAgICBmaQorKwkg IGZpCisrCisrCSAgbGlib2Jqcz0kb3V0cHV0CisrCSAgIyBSZXN0b3JlIHRoZSB2YWx1ZSBvZiBv dXRwdXQuCisrCSAgb3V0cHV0PSRzYXZlX291dHB1dAorKworKwkgIGlmIHRlc3QgLW4gIiRjb252 ZW5pZW5jZSIgJiYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgorKwkg ICAgZXZhbCBsaWJvYmpzPVwiXCRsaWJvYmpzICR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCisr CSAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQorKwkgIGZpCisrCSAgIyBF eHBhbmQgdGhlIGxpYnJhcnkgbGlua2luZyBjb21tYW5kcyBhZ2FpbiB0byByZXNldCB0aGUKKysJ ICAjIHZhbHVlIG9mICRsaWJvYmpzIGZvciBwaWVjZXdpc2UgbGlua2luZy4KKysKKysJICAjIERv IGVhY2ggb2YgdGhlIGFyY2hpdmUgY29tbWFuZHMuCisrCSAgaWYgdGVzdCAiJG1vZHVsZSIgPSB5 ZXMgJiYgdGVzdCAtbiAiJG1vZHVsZV9jbWRzIiA7IHRoZW4KKysJICAgIGlmIHRlc3QgLW4gIiRl eHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJG1vZHVsZV9leHBzeW1fY21kcyI7IHRoZW4KKysJ ICAgICAgY21kcz0kbW9kdWxlX2V4cHN5bV9jbWRzCisrCSAgICBlbHNlCisrCSAgICAgIGNtZHM9 JG1vZHVsZV9jbWRzCisrCSAgICBmaQorKwkgIGVsc2UKKysJICAgIGlmIHRlc3QgLW4gIiRleHBv cnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGFyY2hpdmVfZXhwc3ltX2NtZHMiOyB0aGVuCisrCSAg ICAgIGNtZHM9JGFyY2hpdmVfZXhwc3ltX2NtZHMKKysJICAgIGVsc2UKKysJICAgICAgY21kcz0k YXJjaGl2ZV9jbWRzCisrCSAgICBmaQorKwkgIGZpCisrCWZpCisrCisrCWlmIHRlc3QgLW4gIiRk ZWxmaWxlcyI7IHRoZW4KKysJICAjIEFwcGVuZCB0aGUgY29tbWFuZCB0byByZW1vdmUgdGVtcG9y YXJ5IGZpbGVzIHRvICRjbWRzLgorKwkgIGV2YWwgY21kcz1cIlwkY21kc35cJFJNICRkZWxmaWxl c1wiCisrCWZpCisrCisrCSMgQWRkIGFueSBvYmplY3RzIGZyb20gcHJlbG9hZGVkIGNvbnZlbmll bmNlIGxpYnJhcmllcworKwlpZiB0ZXN0IC1uICIkZGxwcmVmaWxlcyI7IHRoZW4KKysJICBnZW50 b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgorKwkgIGdlbmVyYXRlZD0iJGdlbmVy YXRlZCAkZ2VudG9wIgorKworKwkgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRkbHBy ZWZpbGVzCisrCSAgbGlib2Jqcz0iJGxpYm9ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1 bHQiCisrCSAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KKysJZmkKKysKKysJ c2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCisrCWZvciBjbWQgaW4gJGNtZHM7IGRvCisrCSAgSUZT PSIkc2F2ZV9pZnMiCisrCSAgZXZhbCBjbWQ9XCIkY21kXCIKKysJICAkb3B0X3NpbGVudCB8fCB7 CisrCSAgICBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRjbWQiCisrCSAgICBldmFsICJmdW5jX2Vj aG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQiCisrCSAgfQorKwkgICRvcHRfZHJ5X3J1 biB8fCBldmFsICIkY21kIiB8fCB7CisrCSAgICBsdF9leGl0PSQ/CisrCisrCSAgICAjIFJlc3Rv cmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgYW5kIGV4aXQKKysJICAgIGlmIHRlc3QgIiRtb2Rl IiA9IHJlbGluazsgdGhlbgorKwkgICAgICAoIGNkICIkb3V0cHV0X29iamRpciIgJiYgXAorKwkg ICAgICAgICRSTSAiJHtyZWFsbmFtZX1UIiAmJiBcCisrCQkkTVYgIiR7cmVhbG5hbWV9VSIgIiRy ZWFsbmFtZSIgKQorKwkgICAgZmkKKysKKysJICAgIGV4aXQgJGx0X2V4aXQKKysJICB9CisrCWRv bmUKKysJSUZTPSIkc2F2ZV9pZnMiCisrCisrCSMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGli cmFyeSBhbmQgZXhpdAorKwlpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKysJICAkb3B0 X2RyeV9ydW4gfHwgZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRSTSAke3JlYWxuYW1lfVQg JiYgJE1WICRyZWFsbmFtZSAke3JlYWxuYW1lfVQgJiYgJE1WICR7cmVhbG5hbWV9VSAkcmVhbG5h bWUpJyB8fCBleGl0ICQ/CisrCisrCSAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgor KwkgICAgaWYgdGVzdCAteiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgorKwkgICAg ICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKKysJICAgIGZpCisrCSAgZmkKKysK KysJICBleGl0ICRFWElUX1NVQ0NFU1MKKysJZmkKKysKKysJIyBDcmVhdGUgbGlua3MgdG8gdGhl IHJlYWwgbGlicmFyeS4KKysJZm9yIGxpbmtuYW1lIGluICRsaW5rbmFtZXM7IGRvCisrCSAgaWYg dGVzdCAiJHJlYWxuYW1lIiAhPSAiJGxpbmtuYW1lIjsgdGhlbgorKwkgICAgZnVuY19zaG93X2V2 YWwgJyhjZCAiJG91dHB1dF9vYmpkaXIiICYmICRSTSAiJGxpbmtuYW1lIiAmJiAkTE5fUyAiJHJl YWxuYW1lIiAiJGxpbmtuYW1lIiknICdleGl0ICQ/JworKwkgIGZpCisrCWRvbmUKKysKKysJIyBJ ZiAtbW9kdWxlIG9yIC1leHBvcnQtZHluYW1pYyB3YXMgc3BlY2lmaWVkLCBzZXQgdGhlIGRsbmFt ZS4KKysJaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXMgfHwgdGVzdCAiJGV4cG9ydF9keW5hbWljIiA9 IHllczsgdGhlbgorKwkgICMgT24gYWxsIGtub3duIG9wZXJhdGluZyBzeXN0ZW1zLCB0aGVzZSBh cmUgaWRlbnRpY2FsLgorKwkgIGRsbmFtZT0iJHNvbmFtZSIKKysJZmkKKysgICAgICBmaQorKyAg ICAgIDs7CisrCisrICAgIG9iaikKKysgICAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZp bGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAhPSBubzsgdGhlbgorKwlmdW5jX3dhcm5pbmcgIlxgLWRs b3BlbicgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKKysgICAgICBmaQorKworKyAgICAgIGNhc2Ug IiAkZGVwbGlicyIgaW4KKysgICAgICAqXCAtbCogfCAqXCAtTCopCisrCWZ1bmNfd2FybmluZyAi XGAtbCcgYW5kIFxgLUwnIGFyZSBpZ25vcmVkIGZvciBvYmplY3RzIiA7OworKyAgICAgIGVzYWMK KysKKysgICAgICB0ZXN0IC1uICIkcnBhdGgiICYmIFwKKysJZnVuY193YXJuaW5nICJcYC1ycGF0 aCcgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKKysKKysgICAgICB0ZXN0IC1uICIkeHJwYXRoIiAm JiBcCisrCWZ1bmNfd2FybmluZyAiXGAtUicgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKKysKKysg ICAgICB0ZXN0IC1uICIkdmluZm8iICYmIFwKKysJZnVuY193YXJuaW5nICJcYC12ZXJzaW9uLWlu Zm8nIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCisrCisrICAgICAgdGVzdCAtbiAiJHJlbGVhc2Ui ICYmIFwKKysJZnVuY193YXJuaW5nICJcYC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZvciBvYmplY3Rz IgorKworKyAgICAgIGNhc2UgJG91dHB1dCBpbgorKyAgICAgICoubG8pCisrCXRlc3QgLW4gIiRv YmpzJG9sZF9kZXBsaWJzIiAmJiBcCisrCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGJ1aWxk IGxpYnJhcnkgb2JqZWN0IFxgJG91dHB1dCcgZnJvbSBub24tbGlidG9vbCBvYmplY3RzIgorKwor KwlsaWJvYmo9JG91dHB1dAorKwlmdW5jX2xvMm8gIiRsaWJvYmoiCisrCW9iaj0kZnVuY19sbzJv X3Jlc3VsdAorKwk7OworKyAgICAgICopCisrCWxpYm9iaj0KKysJb2JqPSIkb3V0cHV0IgorKwk7 OworKyAgICAgIGVzYWMKKysKKysgICAgICAjIERlbGV0ZSB0aGUgb2xkIG9iamVjdHMuCisrICAg ICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkb2JqICRsaWJvYmoKKysKKysgICAgICAjIE9iamVjdHMg ZnJvbSBjb252ZW5pZW5jZSBsaWJyYXJpZXMuICBUaGlzIGFzc3VtZXMKKysgICAgICAjIHNpbmds ZS12ZXJzaW9uIGNvbnZlbmllbmNlIGxpYnJhcmllcy4gIFdoZW5ldmVyIHdlIGNyZWF0ZQorKyAg ICAgICMgZGlmZmVyZW50IG9uZXMgZm9yIFBJQy9ub24tUElDLCB0aGlzIHdlJ2xsIGhhdmUgdG8g ZHVwbGljYXRlCisrICAgICAgIyB0aGUgZXh0cmFjdGlvbi4KKysgICAgICByZWxvYWRfY29udl9v YmpzPQorKyAgICAgIGdlbnRvcD0KKysgICAgICAjIHJlbG9hZF9jbWRzIHJ1bnMgJExEIGRpcmVj dGx5LCBzbyBsZXQgdXMgZ2V0IHJpZCBvZgorKyAgICAgICMgLVdsIGZyb20gd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWMgYW5kIGhvcGUgd2UgY2FuIGdldCBieSB3aXRoCisrICAgICAgIyB0dXJuaW5n IGNvbW1hIGludG8gc3BhY2UuLgorKyAgICAgIHdsPQorKworKyAgICAgIGlmIHRlc3QgLW4gIiRj b252ZW5pZW5jZSI7IHRoZW4KKysJaWYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj IjsgdGhlbgorKwkgIGV2YWwgdG1wX3dob2xlX2FyY2hpdmVfZmxhZ3M9XCIkd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWNcIgorKwkgIHJlbG9hZF9jb252X29ianM9JHJlbG9hZF9vYmpzXCBgJEVDSE8g IiR0bXBfd2hvbGVfYXJjaGl2ZV9mbGFncyIgfCAkU0VEICdzfCx8IHxnJ2AKKysJZWxzZQorKwkg IGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvYmp9eCIKKysJICBnZW5lcmF0ZWQ9IiRnZW5lcmF0 ZWQgJGdlbnRvcCIKKysKKysJICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkY29udmVu aWVuY2UKKysJICByZWxvYWRfY29udl9vYmpzPSIkcmVsb2FkX29ianMgJGZ1bmNfZXh0cmFjdF9h cmNoaXZlc19yZXN1bHQiCisrCWZpCisrICAgICAgZmkKKysKKysgICAgICAjIENyZWF0ZSB0aGUg b2xkLXN0eWxlIG9iamVjdC4KKysgICAgICByZWxvYWRfb2Jqcz0iJG9ianMkb2xkX2RlcGxpYnMg ImAkRUNITyAiJGxpYm9ianMiIHwgJFNQMk5MIHwgJFNFRCAiL1wuJHtsaWJleHR9JC9kOyAvXC5s aWIkL2Q7ICRsbzJvIiB8ICROTDJTUGAiICRyZWxvYWRfY29udl9vYmpzIiAjIyMgdGVzdHN1aXRl OiBza2lwIG5lc3RlZCBxdW90aW5nIHRlc3QKKysKKysgICAgICBvdXRwdXQ9IiRvYmoiCisrICAg ICAgZnVuY19leGVjdXRlX2NtZHMgIiRyZWxvYWRfY21kcyIgJ2V4aXQgJD8nCisrCisrICAgICAg IyBFeGl0IGlmIHdlIGFyZW4ndCBkb2luZyBhIGxpYnJhcnkgb2JqZWN0IGZpbGUuCisrICAgICAg aWYgdGVzdCAteiAiJGxpYm9iaiI7IHRoZW4KKysJaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4K KysJICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKKysJZmkKKysKKysJZXhpdCAk RVhJVF9TVUNDRVNTCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9v bF9saWJzIiAhPSB5ZXM7IHRoZW4KKysJaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KKysJICBm dW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKKysJZmkKKysKKysJIyBDcmVhdGUgYW4g aW52YWxpZCBsaWJ0b29sIG9iamVjdCBpZiBubyBQSUMsIHNvIHRoYXQgd2UgZG9uJ3QKKysJIyBh Y2NpZGVudGFsbHkgbGluayBpdCBpbnRvIGEgcHJvZ3JhbS4KKysJIyAkc2hvdyAiZWNobyB0aW1l c3RhbXAgPiAkbGlib2JqIgorKwkjICRvcHRfZHJ5X3J1biB8fCBldmFsICJlY2hvIHRpbWVzdGFt cCA+ICRsaWJvYmoiIHx8IGV4aXQgJD8KKysJZXhpdCAkRVhJVF9TVUNDRVNTCisrICAgICAgZmkK KysKKysgICAgICBpZiB0ZXN0IC1uICIkcGljX2ZsYWciIHx8IHRlc3QgIiRwaWNfbW9kZSIgIT0g ZGVmYXVsdDsgdGhlbgorKwkjIE9ubHkgZG8gY29tbWFuZHMgaWYgd2UgcmVhbGx5IGhhdmUgZGlm ZmVyZW50IFBJQyBvYmplY3RzLgorKwlyZWxvYWRfb2Jqcz0iJGxpYm9ianMgJHJlbG9hZF9jb252 X29ianMiCisrCW91dHB1dD0iJGxpYm9iaiIKKysJZnVuY19leGVjdXRlX2NtZHMgIiRyZWxvYWRf Y21kcyIgJ2V4aXQgJD8nCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkZ2VudG9w IjsgdGhlbgorKwlmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKKysgICAgICBmaQor KworKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUworKyAgICAgIDs7CisrCisrICAgIHByb2cpCisr ICAgICAgY2FzZSAkaG9zdCBpbgorKwkqY3lnd2luKikgZnVuY19zdHJpcG5hbWUgJycgJy5leGUn ICIkb3V0cHV0IgorKwkgICAgICAgICAgb3V0cHV0PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQuZXhl OzsKKysgICAgICBlc2FjCisrICAgICAgdGVzdCAtbiAiJHZpbmZvIiAmJiBcCisrCWZ1bmNfd2Fy bmluZyAiXGAtdmVyc2lvbi1pbmZvJyBpcyBpZ25vcmVkIGZvciBwcm9ncmFtcyIKKysKKysgICAg ICB0ZXN0IC1uICIkcmVsZWFzZSIgJiYgXAorKwlmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2UnIGlz IGlnbm9yZWQgZm9yIHByb2dyYW1zIgorKworKyAgICAgIHRlc3QgIiRwcmVsb2FkIiA9IHllcyBc CisrICAgICAgICAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0gdW5rbm93biBcCisrCSYmIHRl c3QgIiRkbG9wZW5fc2VsZiIgPSB1bmtub3duIFwKKysJJiYgdGVzdCAiJGRsb3Blbl9zZWxmX3N0 YXRpYyIgPSB1bmtub3duICYmIFwKKysJICBmdW5jX3dhcm5pbmcgIlxgTFRfSU5JVChbZGxvcGVu XSknIG5vdCB1c2VkLiBBc3N1bWluZyBubyBkbG9wZW4gc3VwcG9ydC4iCisrCisrICAgICAgY2Fz ZSAkaG9zdCBpbgorKyAgICAgICotKi1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKKysJ IyBPbiBSaGFwc29keSByZXBsYWNlIHRoZSBDIGxpYnJhcnkgaXMgdGhlIFN5c3RlbSBmcmFtZXdv cmsKKysJY29tcGlsZV9kZXBsaWJzPWAkRUNITyAiICRjb21waWxlX2RlcGxpYnMiIHwgJFNFRCAn cy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAorKwlmaW5hbGl6ZV9kZXBsaWJzPWAkRUNI TyAiICRmaW5hbGl6ZV9kZXBsaWJzIiB8ICRTRUQgJ3MvIC1sYyAvIFN5c3RlbS5sdGZyYW1ld29y ayAvJ2AKKysJOzsKKysgICAgICBlc2FjCisrCisrICAgICAgY2FzZSAkaG9zdCBpbgorKyAgICAg ICotKi1kYXJ3aW4qKQorKwkjIERvbid0IGFsbG93IGxhenkgbGlua2luZywgaXQgYnJlYWtzIEMr KyBnbG9iYWwgY29uc3RydWN0b3JzCisrCSMgQnV0IGlzIHN1cHBvc2VkbHkgZml4ZWQgb24gMTAu NCBvciBsYXRlciAoeWF5ISkuCisrCWlmIHRlc3QgIiR0YWduYW1lIiA9IENYWCA7IHRoZW4KKysJ ICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VULTEwLjB9IGluCisrCSAgICAxMC5bMDEy M10pCisrCSAgICAgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAke3dsfS1iaW5k X2F0X2xvYWQiCisrCSAgICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICR7 d2x9LWJpbmRfYXRfbG9hZCIKKysJICAgIDs7CisrCSAgZXNhYworKwlmaQorKwkjIFRpbWUgdG8g Y2hhbmdlIGFsbCBvdXIgImZvby5sdGZyYW1ld29yayIgc3R1ZmYgYmFjayB0byAiLWZyYW1ld29y ayBmb28iCisrCWNvbXBpbGVfZGVwbGlicz1gJEVDSE8gIiAkY29tcGlsZV9kZXBsaWJzIiB8ICRT RUQgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisrCWZpbmFs aXplX2RlcGxpYnM9YCRFQ0hPICIgJGZpbmFsaXplX2RlcGxpYnMiIHwgJFNFRCAncyUgXChbXiAk XSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKysJOzsKKysgICAgICBlc2FjCisr CisrCisrICAgICAgIyBtb3ZlIGxpYnJhcnkgc2VhcmNoIHBhdGhzIHRoYXQgY29pbmNpZGUgd2l0 aCBwYXRocyB0byBub3QgeWV0CisrICAgICAgIyBpbnN0YWxsZWQgbGlicmFyaWVzIHRvIHRoZSBi ZWdpbm5pbmcgb2YgdGhlIGxpYnJhcnkgc2VhcmNoIGxpc3QKKysgICAgICBuZXdfbGlicz0KKysg ICAgICBmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRoOyBkbworKwljYXNlICIgJG5ld19saWJzICIg aW4KKysJKiIgLUwkcGF0aC8kb2JqZGlyICIqKSA7OworKwkqKQorKwkgIGNhc2UgIiAkY29tcGls ZV9kZXBsaWJzICIgaW4KKysJICAqIiAtTCRwYXRoLyRvYmpkaXIgIiopCisrCSAgICBuZXdfbGli cz0iJG5ld19saWJzIC1MJHBhdGgvJG9iamRpciIgOzsKKysJICBlc2FjCisrCSAgOzsKKysJZXNh YworKyAgICAgIGRvbmUKKysgICAgICBmb3IgZGVwbGliIGluICRjb21waWxlX2RlcGxpYnM7IGRv CisrCWNhc2UgJGRlcGxpYiBpbgorKwktTCopCisrCSAgY2FzZSAiICRuZXdfbGlicyAiIGluCisr CSAgKiIgJGRlcGxpYiAiKikgOzsKKysJICAqKSBuZXdfbGlicz0iJG5ld19saWJzICRkZXBsaWIi IDs7CisrCSAgZXNhYworKwkgIDs7CisrCSopIG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIg OzsKKysJZXNhYworKyAgICAgIGRvbmUKKysgICAgICBjb21waWxlX2RlcGxpYnM9IiRuZXdfbGli cyIKKysKKysKKysgICAgICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGNvbXBp bGVfZGVwbGlicyIKKysgICAgICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAk ZmluYWxpemVfZGVwbGlicyIKKysKKysgICAgICBpZiB0ZXN0IC1uICIkcnBhdGgkeHJwYXRoIjsg dGhlbgorKwkjIElmIHRoZSB1c2VyIHNwZWNpZmllZCBhbnkgcnBhdGggZmxhZ3MsIHRoZW4gYWRk IHRoZW0uCisrCWZvciBsaWJkaXIgaW4gJHJwYXRoICR4cnBhdGg7IGRvCisrCSAgIyBUaGlzIGlz IHRoZSBtYWdpYyB0byB1c2UgLXJwYXRoLgorKwkgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGlu CisrCSAgKiIgJGxpYmRpciAiKikgOzsKKysJICAqKSBmaW5hbGl6ZV9ycGF0aD0iJGZpbmFsaXpl X3JwYXRoICRsaWJkaXIiIDs7CisrCSAgZXNhYworKwlkb25lCisrICAgICAgZmkKKysKKysgICAg ICAjIE5vdyBoYXJkY29kZSB0aGUgbGlicmFyeSBwYXRocworKyAgICAgIHJwYXRoPQorKyAgICAg IGhhcmRjb2RlX2xpYmRpcnM9CisrICAgICAgZm9yIGxpYmRpciBpbiAkY29tcGlsZV9ycGF0aCAk ZmluYWxpemVfcnBhdGg7IGRvCisrCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjIjsgdGhlbgorKwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsg dGhlbgorKwkgICAgaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCisrCSAgICAg IGhhcmRjb2RlX2xpYmRpcnM9IiRsaWJkaXIiCisrCSAgICBlbHNlCisrCSAgICAgICMgSnVzdCBh Y2N1bXVsYXRlIHRoZSB1bmlxdWUgbGliZGlycy4KKysJICAgICAgY2FzZSAkaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Ig aW4KKysJICAgICAgKiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciIqKQorKwkJOzsKKysJICAgICAgKikKKysJCWhhcmRjb2RlX2xpYmRp cnM9IiRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgor KwkJOzsKKysJICAgICAgZXNhYworKwkgICAgZmkKKysJICBlbHNlCisrCSAgICBldmFsIGZsYWc9 XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrCSAgICBycGF0aD0iJHJwYXRoICRmbGFn IgorKwkgIGZpCisrCWVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgorKwkgIGNhc2Ug IiRwZXJtX3JwYXRoICIgaW4KKysJICAqIiAkbGliZGlyICIqKSA7OworKwkgICopIHBlcm1fcnBh dGg9IiRwZXJtX3JwYXRoICRsaWJkaXIiIDs7CisrCSAgZXNhYworKwlmaQorKwljYXNlICRob3N0 IGluCisrCSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwg Ki1jZWdjYyopCisrCSAgdGVzdGJpbmRpcj1gJHtFQ0hPfSAiJGxpYmRpciIgfCAke1NFRH0gLWUg J3MqL2xpYiQqL2JpbionYAorKwkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgorKwkgICoiOiRs aWJkaXI6IiopIDs7CisrCSAgOjopIGRsbHNlYXJjaHBhdGg9JGxpYmRpcjs7CisrCSAgKikgZGxs c2VhcmNocGF0aD0iJGRsbHNlYXJjaHBhdGg6JGxpYmRpciI7OworKwkgIGVzYWMKKysJICBjYXNl IDokZGxsc2VhcmNocGF0aDogaW4KKysJICAqIjokdGVzdGJpbmRpcjoiKikgOzsKKysJICA6Oikg ZGxsc2VhcmNocGF0aD0kdGVzdGJpbmRpcjs7CisrCSAgKikgZGxsc2VhcmNocGF0aD0iJGRsbHNl YXJjaHBhdGg6JHRlc3RiaW5kaXIiOzsKKysJICBlc2FjCisrCSAgOzsKKysJZXNhYworKyAgICAg IGRvbmUKKysgICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhl IHJwYXRoLgorKyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAm JgorKwkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCisrCWxpYmRpcj0iJGhhcmRj b2RlX2xpYmRpcnMiCisrCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNc IgorKyAgICAgIGZpCisrICAgICAgY29tcGlsZV9ycGF0aD0iJHJwYXRoIgorKworKyAgICAgIHJw YXRoPQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcnM9CisrICAgICAgZm9yIGxpYmRpciBpbiAkZmlu YWxpemVfcnBhdGg7IGRvCisrCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj IjsgdGhlbgorKwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhl bgorKwkgICAgaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCisrCSAgICAgIGhh cmRjb2RlX2xpYmRpcnM9IiRsaWJkaXIiCisrCSAgICBlbHNlCisrCSAgICAgICMgSnVzdCBhY2N1 bXVsYXRlIHRoZSB1bmlxdWUgbGliZGlycy4KKysJICAgICAgY2FzZSAkaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvciRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IgaW4K KysJICAgICAgKiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciIqKQorKwkJOzsKKysJICAgICAgKikKKysJCWhhcmRjb2RlX2xpYmRpcnM9 IiRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgorKwkJ OzsKKysJICAgICAgZXNhYworKwkgICAgZmkKKysJICBlbHNlCisrCSAgICBldmFsIGZsYWc9XCIk aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrCSAgICBycGF0aD0iJHJwYXRoICRmbGFnIgor KwkgIGZpCisrCWVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgorKwkgIGNhc2UgIiRm aW5hbGl6ZV9wZXJtX3JwYXRoICIgaW4KKysJICAqIiAkbGliZGlyICIqKSA7OworKwkgICopIGZp bmFsaXplX3Blcm1fcnBhdGg9IiRmaW5hbGl6ZV9wZXJtX3JwYXRoICRsaWJkaXIiIDs7CisrCSAg ZXNhYworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2Rl ZCBsaWJkaXJzIGludG8gdGhlIHJwYXRoLgorKyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yIiAmJgorKwkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVu CisrCWxpYmRpcj0iJGhhcmRjb2RlX2xpYmRpcnMiCisrCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNcIgorKyAgICAgIGZpCisrICAgICAgZmluYWxpemVfcnBhdGg9IiRy cGF0aCIKKysKKysgICAgICBpZiB0ZXN0IC1uICIkbGlib2JqcyIgJiYgdGVzdCAiJGJ1aWxkX29s ZF9saWJzIiA9IHllczsgdGhlbgorKwkjIFRyYW5zZm9ybSBhbGwgdGhlIGxpYnJhcnkgb2JqZWN0 cyBpbnRvIHN0YW5kYXJkIG9iamVjdHMuCisrCWNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIiRjb21w aWxlX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFNFRCAiJGxvMm8iIHwgJE5MMlNQYAorKwlmaW5hbGl6 ZV9jb21tYW5kPWAkRUNITyAiJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFNFRCAiJGxv Mm8iIHwgJE5MMlNQYAorKyAgICAgIGZpCisrCisrICAgICAgZnVuY19nZW5lcmF0ZV9kbHN5bXMg IiRvdXRwdXRuYW1lIiAiQFBST0dSQU1AIiAibm8iCisrCisrICAgICAgIyB0ZW1wbGF0ZSBwcmVs aW5raW5nIHN0ZXAKKysgICAgICBpZiB0ZXN0IC1uICIkcHJlbGlua19jbWRzIjsgdGhlbgorKwlm dW5jX2V4ZWN1dGVfY21kcyAiJHByZWxpbmtfY21kcyIgJ2V4aXQgJD8nCisrICAgICAgZmkKKysK KysgICAgICB3cmFwcGVyc19yZXF1aXJlZD15ZXMKKysgICAgICBjYXNlICRob3N0IGluCisrICAg ICAgKmNlZ2NjKiB8ICptaW5ndzMyY2UqKQorKyAgICAgICAgIyBEaXNhYmxlIHdyYXBwZXJzIGZv ciBjZWdjYyBhbmQgbWluZ3czMmNlIGhvc3RzLCB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nIGFueXdh eS4KKysgICAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPW5vCisrICAgICAgICA7OworKyAgICAgICpj eWd3aW4qIHwgKm1pbmd3KiApCisrICAgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJz IiAhPSB5ZXM7IHRoZW4KKysgICAgICAgICAgd3JhcHBlcnNfcmVxdWlyZWQ9bm8KKysgICAgICAg IGZpCisrICAgICAgICA7OworKyAgICAgICopCisrICAgICAgICBpZiB0ZXN0ICIkbmVlZF9yZWxp bmsiID0gbm8gfHwgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzOyB0aGVuCisrICAg ICAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPW5vCisrICAgICAgICBmaQorKyAgICAgICAgOzsKKysg ICAgICBlc2FjCisrICAgICAgaWYgdGVzdCAiJHdyYXBwZXJzX3JlcXVpcmVkIiA9IG5vOyB0aGVu CisrCSMgUmVwbGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KKysJY29tcGlsZV9j b21tYW5kPWAkRUNITyAiJGNvbXBpbGVfY29tbWFuZCIgfCAkU0VEICdzJUBPVVRQVVRAJSciJG91 dHB1dCInJWcnYAorKwlsaW5rX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0 aCIKKysKKysJIyBXZSBoYXZlIG5vIHVuaW5zdGFsbGVkIGxpYnJhcnkgZGVwZW5kZW5jaWVzLCBz byBmaW5hbGl6ZSByaWdodCBub3cuCisrCWV4aXRfc3RhdHVzPTAKKysJZnVuY19zaG93X2V2YWwg IiRsaW5rX2NvbW1hbmQiICdleGl0X3N0YXR1cz0kPycKKysKKysJIyBEZWxldGUgdGhlIGdlbmVy YXRlZCBmaWxlcy4KKysJaWYgdGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfVMu JHtvYmpleHR9IjsgdGhlbgorKwkgIGZ1bmNfc2hvd19ldmFsICckUk0gIiRvdXRwdXRfb2JqZGly LyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSInCisrCWZpCisrCisrCWV4aXQgJGV4aXRfc3RhdHVz CisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkY29tcGlsZV9zaGxpYnBhdGgkZmlu YWxpemVfc2hsaWJwYXRoIjsgdGhlbgorKwljb21waWxlX2NvbW1hbmQ9IiRzaGxpYnBhdGhfdmFy PVwiJGNvbXBpbGVfc2hsaWJwYXRoJGZpbmFsaXplX3NobGlicGF0aFwkJHNobGlicGF0aF92YXJc IiAkY29tcGlsZV9jb21tYW5kIgorKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAtbiAiJGZpbmFs aXplX3NobGlicGF0aCI7IHRoZW4KKysJZmluYWxpemVfY29tbWFuZD0iJHNobGlicGF0aF92YXI9 XCIkZmluYWxpemVfc2hsaWJwYXRoXCQkc2hsaWJwYXRoX3ZhclwiICRmaW5hbGl6ZV9jb21tYW5k IgorKyAgICAgIGZpCisrCisrICAgICAgY29tcGlsZV92YXI9CisrICAgICAgZmluYWxpemVfdmFy PQorKyAgICAgIGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KKysJaWYgdGVzdCAtbiAi JHBlcm1fcnBhdGgiOyB0aGVuCisrCSAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4K KysJICBycGF0aD0KKysJICBmb3IgZGlyIGluICRwZXJtX3JwYXRoOyBkbworKwkgICAgcnBhdGg9 IiRycGF0aCRkaXI6IgorKwkgIGRvbmUKKysJICBjb21waWxlX3Zhcj0iJHJ1bnBhdGhfdmFyPVwi JHJwYXRoXCQkcnVucGF0aF92YXJcIiAiCisrCWZpCisrCWlmIHRlc3QgLW4gIiRmaW5hbGl6ZV9w ZXJtX3JwYXRoIjsgdGhlbgorKwkgICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCisr CSAgcnBhdGg9CisrCSAgZm9yIGRpciBpbiAkZmluYWxpemVfcGVybV9ycGF0aDsgZG8KKysJICAg IHJwYXRoPSIkcnBhdGgkZGlyOiIKKysJICBkb25lCisrCSAgZmluYWxpemVfdmFyPSIkcnVucGF0 aF92YXI9XCIkcnBhdGhcJCRydW5wYXRoX3ZhclwiICIKKysJZmkKKysgICAgICBmaQorKworKyAg ICAgIGlmIHRlc3QgIiRub19pbnN0YWxsIiA9IHllczsgdGhlbgorKwkjIFdlIGRvbid0IG5lZWQg dG8gY3JlYXRlIGEgd3JhcHBlciBzY3JpcHQuCisrCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFy JGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgorKwkjIFJlcGxhY2UgdGhlIG91dHB1dCBm aWxlIHNwZWNpZmljYXRpb24uCisrCWxpbmtfY29tbWFuZD1gJEVDSE8gIiRsaW5rX2NvbW1hbmQi IHwgJFNFRCAncyVAT1VUUFVUQCUnIiRvdXRwdXQiJyVnJ2AKKysJIyBEZWxldGUgdGhlIG9sZCBv dXRwdXQgZmlsZS4KKysJJG9wdF9kcnlfcnVuIHx8ICRSTSAkb3V0cHV0CisrCSMgTGluayB0aGUg ZXhlY3V0YWJsZSBhbmQgZXhpdAorKwlmdW5jX3Nob3dfZXZhbCAiJGxpbmtfY29tbWFuZCIgJ2V4 aXQgJD8nCisrCWV4aXQgJEVYSVRfU1VDQ0VTUworKyAgICAgIGZpCisrCisrICAgICAgaWYgdGVz dCAiJGhhcmRjb2RlX2FjdGlvbiIgPSByZWxpbms7IHRoZW4KKysJIyBGYXN0IGluc3RhbGxhdGlv biBpcyBub3Qgc3VwcG9ydGVkCisrCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVf Y29tbWFuZCRjb21waWxlX3JwYXRoIgorKwlyZWxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRm aW5hbGl6ZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgorKworKwlmdW5jX3dhcm5pbmcgInRoaXMg cGxhdGZvcm0gZG9lcyBub3QgbGlrZSB1bmluc3RhbGxlZCBzaGFyZWQgbGlicmFyaWVzIgorKwlm dW5jX3dhcm5pbmcgIlxgJG91dHB1dCcgd2lsbCBiZSByZWxpbmtlZCBkdXJpbmcgaW5zdGFsbGF0 aW9uIgorKyAgICAgIGVsc2UKKysJaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgIT0gbm87IHRoZW4K KysJICBsaW5rX2NvbW1hbmQ9IiRmaW5hbGl6ZV92YXIkY29tcGlsZV9jb21tYW5kJGZpbmFsaXpl X3JwYXRoIgorKwkgIGlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzOyB0aGVuCisrCSAgICBy ZWxpbmtfY29tbWFuZD1gJEVDSE8gIiRjb21waWxlX3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGls ZV9ycGF0aCIgfCAkU0VEICdzJUBPVVRQVVRAJVwkcHJvZ2Rpci9cJGZpbGUlZydgCisrCSAgZWxz ZQorKwkgICAgIyBmYXN0X2luc3RhbGwgaXMgc2V0IHRvIG5lZWRsZXNzCisrCSAgICByZWxpbmtf Y29tbWFuZD0KKysJICBmaQorKwllbHNlCisrCSAgbGlua19jb21tYW5kPSIkY29tcGlsZV92YXIk Y29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCisrCSAgcmVsaW5rX2NvbW1hbmQ9IiRmaW5h bGl6ZV92YXIkZmluYWxpemVfY29tbWFuZCRmaW5hbGl6ZV9ycGF0aCIKKysJZmkKKysgICAgICBm aQorKworKyAgICAgICMgUmVwbGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KKysg ICAgICBsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkbGlua19jb21tYW5kIiB8ICRTRUQgJ3MlQE9VVFBV VEAlJyIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSInJWcnYAorKworKyAgICAgICMgRGVsZXRl IHRoZSBvbGQgb3V0cHV0IGZpbGVzLgorKyAgICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJG91dHB1 dCAkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSAkb3V0cHV0X29iamRpci9sdC0kb3V0cHV0bmFt ZQorKworKyAgICAgIGZ1bmNfc2hvd19ldmFsICIkbGlua19jb21tYW5kIiAnZXhpdCAkPycKKysK KysgICAgICAjIE5vdyBjcmVhdGUgdGhlIHdyYXBwZXIgc2NyaXB0LgorKyAgICAgIGZ1bmNfdmVy Ym9zZSAiY3JlYXRpbmcgJG91dHB1dCIKKysKKysgICAgICAjIFF1b3RlIHRoZSByZWxpbmsgY29t bWFuZCBmb3Igc2hpcHBpbmcuCisrICAgICAgaWYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsg dGhlbgorKwkjIFByZXNlcnZlIGFueSB2YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVy IGJlaGF2aW9yCisrCWZvciB2YXIgaW4gJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rOyBkbwor KwkgIGlmIGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCisrCSAgICByZWxpbmtf Y29tbWFuZD0ieyB0ZXN0IC16IFwiXCR7JHZhcitzZXR9XCIgfHwgJGx0X3Vuc2V0ICR2YXIgfHwg eyAkdmFyPTsgZXhwb3J0ICR2YXI7IH07IH07ICRyZWxpbmtfY29tbWFuZCIKKysJICBlbGlmIGV2 YWwgdmFyX3ZhbHVlPVwkJHZhcjsgdGVzdCAteiAiJHZhcl92YWx1ZSI7IHRoZW4KKysJICAgIHJl bGlua19jb21tYW5kPSIkdmFyPTsgZXhwb3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIKKysJICBl bHNlCisrCSAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkdmFyX3ZhbHVlIgorKwkgICAgcmVsaW5r X2NvbW1hbmQ9IiR2YXI9JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0OyBleHBvcnQgJHZhcjsg JHJlbGlua19jb21tYW5kIgorKwkgIGZpCisrCWRvbmUKKysJcmVsaW5rX2NvbW1hbmQ9IihjZCBg cHdkYDsgJHJlbGlua19jb21tYW5kKSIKKysJcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkcmVsaW5r X2NvbW1hbmQiIHwgJFNFRCAiJHNlZF9xdW90ZV9zdWJzdCJgCisrICAgICAgZmkKKysKKysgICAg ICAjIE9ubHkgYWN0dWFsbHkgZG8gdGhpbmdzIGlmIG5vdCBpbiBkcnkgcnVuIG1vZGUuCisrICAg ICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJIyB3aW4zMiB3aWxsIHRoaW5rIHRoZSBzY3JpcHQgaXMg YSBiaW5hcnkgaWYgaXQgaGFzCisrCSMgYSAuZXhlIHN1ZmZpeCwgc28gd2Ugc3RyaXAgaXQgb2Zm IGhlcmUuCisrCWNhc2UgJG91dHB1dCBpbgorKwkgICouZXhlKSBmdW5jX3N0cmlwbmFtZSAnJyAn LmV4ZScgIiRvdXRwdXQiCisrCSAgICAgICAgIG91dHB1dD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0 IDs7CisrCWVzYWMKKysJIyB0ZXN0IGZvciBjeWd3aW4gYmVjYXVzZSBtdiBmYWlscyB3L28gLmV4 ZSBleHRlbnNpb25zCisrCWNhc2UgJGhvc3QgaW4KKysJICAqY3lnd2luKikKKysJICAgIGV4ZWV4 dD0uZXhlCisrCSAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRvdXRwdXRuYW1lIgorKwkg ICAgb3V0cHV0bmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0IDs7CisrCSAgKikgZXhlZXh0PSA7 OworKwllc2FjCisrCWNhc2UgJGhvc3QgaW4KKysJICAqY3lnd2luKiB8ICptaW5ndyogKQorKwkg ICAgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJG91dHB1dCIgIiIgIi4iCisrCSAgICBvdXRw dXRfbmFtZT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKKysJICAgIG91dHB1dF9wYXRoPSRmdW5jX2Rp cm5hbWVfcmVzdWx0CisrCSAgICBjd3JhcHBlcnNvdXJjZT0iJG91dHB1dF9wYXRoLyRvYmpkaXIv bHQtJG91dHB1dF9uYW1lLmMiCisrCSAgICBjd3JhcHBlcj0iJG91dHB1dF9wYXRoLyRvdXRwdXRf bmFtZS5leGUiCisrCSAgICAkUk0gJGN3cmFwcGVyc291cmNlICRjd3JhcHBlcgorKwkgICAgdHJh cCAiJFJNICRjd3JhcHBlcnNvdXJjZSAkY3dyYXBwZXI7IGV4aXQgJEVYSVRfRkFJTFVSRSIgMSAy IDE1CisrCisrCSAgICBmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjID4gJGN3cmFwcGVyc291cmNl CisrCisrCSAgICAjIFRoZSB3cmFwcGVyIGV4ZWN1dGFibGUgaXMgYnVpbHQgdXNpbmcgdGhlICRo b3N0IGNvbXBpbGVyLAorKwkgICAgIyBiZWNhdXNlIGl0IGNvbnRhaW5zICRob3N0IHBhdGhzIGFu ZCBmaWxlcy4gSWYgY3Jvc3MtCisrCSAgICAjIGNvbXBpbGluZywgaXQsIGxpa2UgdGhlIHRhcmdl dCBleGVjdXRhYmxlLCBtdXN0IGJlCisrCSAgICAjIGV4ZWN1dGVkIG9uIHRoZSAkaG9zdCBvciB1 bmRlciBhbiBlbXVsYXRpb24gZW52aXJvbm1lbnQuCisrCSAgICAkb3B0X2RyeV9ydW4gfHwgewor KwkgICAgICAkTFRDQyAkTFRDRkxBR1MgLW8gJGN3cmFwcGVyICRjd3JhcHBlcnNvdXJjZQorKwkg ICAgICAkU1RSSVAgJGN3cmFwcGVyCisrCSAgICB9CisrCisrCSAgICAjIE5vdywgY3JlYXRlIHRo ZSB3cmFwcGVyIHNjcmlwdCBmb3IgZnVuY19zb3VyY2UgdXNlOgorKwkgICAgZnVuY19sdHdyYXBw ZXJfc2NyaXB0bmFtZSAkY3dyYXBwZXIKKysJICAgICRSTSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0 bmFtZV9yZXN1bHQKKysJICAgIHRyYXAgIiRSTSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9y ZXN1bHQ7IGV4aXQgJEVYSVRfRkFJTFVSRSIgMSAyIDE1CisrCSAgICAkb3B0X2RyeV9ydW4gfHwg eworKwkgICAgICAjIG5vdGU6IHRoaXMgc2NyaXB0IHdpbGwgbm90IGJlIGV4ZWN1dGVkLCBzbyBk byBub3QgY2htb2QuCisrCSAgICAgIGlmIHRlc3QgIngkYnVpbGQiID0gIngkaG9zdCIgOyB0aGVu CisrCQkkY3dyYXBwZXIgLS1sdC1kdW1wLXNjcmlwdCA+ICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRu YW1lX3Jlc3VsdAorKwkgICAgICBlbHNlCisrCQlmdW5jX2VtaXRfd3JhcHBlciBubyA+ICRmdW5j X2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAorKwkgICAgICBmaQorKwkgICAgfQorKwkgIDs7 CisrCSAgKiApCisrCSAgICAkUk0gJG91dHB1dAorKwkgICAgdHJhcCAiJFJNICRvdXRwdXQ7IGV4 aXQgJEVYSVRfRkFJTFVSRSIgMSAyIDE1CisrCisrCSAgICBmdW5jX2VtaXRfd3JhcHBlciBubyA+ ICRvdXRwdXQKKysJICAgIGNobW9kICt4ICRvdXRwdXQKKysJICA7OworKwllc2FjCisrICAgICAg fQorKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUworKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysg ICAgIyBTZWUgaWYgd2UgbmVlZCB0byBidWlsZCBhbiBvbGQtZmFzaGlvbmVkIGFyY2hpdmUuCisr ICAgIGZvciBvbGRsaWIgaW4gJG9sZGxpYnM7IGRvCisrCisrICAgICAgaWYgdGVzdCAiJGJ1aWxk X2xpYnRvb2xfbGlicyIgPSBjb252ZW5pZW5jZTsgdGhlbgorKwlvbGRvYmpzPSIkbGlib2Jqc19z YXZlICRzeW1maWxlb2JqIgorKwlhZGRsaWJzPSIkY29udmVuaWVuY2UiCisrCWJ1aWxkX2xpYnRv b2xfbGlicz1ubworKyAgICAgIGVsc2UKKysJaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIg PSBtb2R1bGU7IHRoZW4KKysJICBvbGRvYmpzPSIkbGlib2Jqc19zYXZlIgorKwkgIGJ1aWxkX2xp YnRvb2xfbGlicz1ubworKwllbHNlCisrCSAgb2xkb2Jqcz0iJG9sZF9kZXBsaWJzICRub25fcGlj X29iamVjdHMiCisrCSAgaWYgdGVzdCAiJHByZWxvYWQiID0geWVzICYmIHRlc3QgLWYgIiRzeW1m aWxlb2JqIjsgdGhlbgorKwkgICAgb2xkb2Jqcz0iJG9sZG9ianMgJHN5bWZpbGVvYmoiCisrCSAg ZmkKKysJZmkKKysJYWRkbGlicz0iJG9sZF9jb252ZW5pZW5jZSIKKysgICAgICBmaQorKworKyAg ICAgIGlmIHRlc3QgLW4gIiRhZGRsaWJzIjsgdGhlbgorKwlnZW50b3A9IiRvdXRwdXRfb2JqZGly LyR7b3V0cHV0bmFtZX14IgorKwlnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKysKKysJ ZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGFkZGxpYnMKKysJb2xkb2Jqcz0iJG9sZG9i anMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisrICAgICAgZmkKKysKKysgICAgICAj IERvIGVhY2ggY29tbWFuZCBpbiB0aGUgYXJjaGl2ZSBjb21tYW5kcy4KKysgICAgICBpZiB0ZXN0 IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcyIgJiYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xf bGlicyIgPSB5ZXM7IHRoZW4KKysJY21kcz0kb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcworKyAg ICAgIGVsc2UKKysKKysJIyBBZGQgYW55IG9iamVjdHMgZnJvbSBwcmVsb2FkZWQgY29udmVuaWVu Y2UgbGlicmFyaWVzCisrCWlmIHRlc3QgLW4gIiRkbHByZWZpbGVzIjsgdGhlbgorKwkgIGdlbnRv cD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCisrCSAgZ2VuZXJhdGVkPSIkZ2VuZXJh dGVkICRnZW50b3AiCisrCisrCSAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGRscHJl ZmlsZXMKKysJICBvbGRvYmpzPSIkb2xkb2JqcyAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3Vs dCIKKysJZmkKKysKKysJIyBQT1NJWCBkZW1hbmRzIG5vIHBhdGhzIHRvIGJlIGVuY29kZWQgaW4g YXJjaGl2ZXMuICBXZSBoYXZlCisrCSMgdG8gYXZvaWQgY3JlYXRpbmcgYXJjaGl2ZXMgd2l0aCBk dXBsaWNhdGUgYmFzZW5hbWVzIGlmIHdlCisrCSMgbWlnaHQgaGF2ZSB0byBleHRyYWN0IHRoZW0g YWZ0ZXJ3YXJkcywgZS5nLiwgd2hlbiBjcmVhdGluZyBhCisrCSMgc3RhdGljIGFyY2hpdmUgb3V0 IG9mIGEgY29udmVuaWVuY2UgbGlicmFyeSwgb3Igd2hlbiBsaW5raW5nCisrCSMgdGhlIGVudGly ZXR5IG9mIGEgbGlidG9vbCBhcmNoaXZlIGludG8gYW5vdGhlciAoY3VycmVudGx5CisrCSMgbm90 IHN1cHBvcnRlZCBieSBsaWJ0b29sKS4KKysJaWYgKGZvciBvYmogaW4gJG9sZG9ianMKKysJICAg IGRvCisrCSAgICAgIGZ1bmNfYmFzZW5hbWUgIiRvYmoiCisrCSAgICAgICRFQ0hPICIkZnVuY19i YXNlbmFtZV9yZXN1bHQiCisrCSAgICBkb25lIHwgc29ydCB8IHNvcnQgLXVjID4vZGV2L251bGwg Mj4mMSk7IHRoZW4KKysJICA6CisrCWVsc2UKKysJICBlY2hvICJjb3B5aW5nIHNlbGVjdGVkIG9i amVjdCBmaWxlcyB0byBhdm9pZCBiYXNlbmFtZSBjb25mbGljdHMuLi4iCisrCSAgZ2VudG9wPSIk b3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKKysJICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQg JGdlbnRvcCIKKysJICBmdW5jX21rZGlyX3AgIiRnZW50b3AiCisrCSAgc2F2ZV9vbGRvYmpzPSRv bGRvYmpzCisrCSAgb2xkb2Jqcz0KKysJICBjb3VudGVyPTEKKysJICBmb3Igb2JqIGluICRzYXZl X29sZG9ianMKKysJICBkbworKwkgICAgZnVuY19iYXNlbmFtZSAiJG9iaiIKKysJICAgIG9iamJh c2U9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysJICAgIGNhc2UgIiAkb2xkb2JqcyAiIGluCisr CSAgICAiICIpIG9sZG9ianM9JG9iaiA7OworKwkgICAgKltcIC9dIiRvYmpiYXNlICIqKQorKwkg ICAgICB3aGlsZSA6OyBkbworKwkJIyBNYWtlIHN1cmUgd2UgZG9uJ3QgcGljayBhbiBhbHRlcm5h dGUgbmFtZSB0aGF0IGFsc28KKysJCSMgb3ZlcmxhcHMuCisrCQluZXdvYmo9bHQkY291bnRlci0k b2JqYmFzZQorKwkJZnVuY19hcml0aCAkY291bnRlciArIDEKKysJCWNvdW50ZXI9JGZ1bmNfYXJp dGhfcmVzdWx0CisrCQljYXNlICIgJG9sZG9ianMgIiBpbgorKwkJKltcIC9dIiRuZXdvYmogIiop IDs7CisrCQkqKSBpZiB0ZXN0ICEgLWYgIiRnZW50b3AvJG5ld29iaiI7IHRoZW4gYnJlYWs7IGZp IDs7CisrCQllc2FjCisrCSAgICAgIGRvbmUKKysJICAgICAgZnVuY19zaG93X2V2YWwgImxuICRv YmogJGdlbnRvcC8kbmV3b2JqIHx8IGNwICRvYmogJGdlbnRvcC8kbmV3b2JqIgorKwkgICAgICBv bGRvYmpzPSIkb2xkb2JqcyAkZ2VudG9wLyRuZXdvYmoiCisrCSAgICAgIDs7CisrCSAgICAqKSBv bGRvYmpzPSIkb2xkb2JqcyAkb2JqIiA7OworKwkgICAgZXNhYworKwkgIGRvbmUKKysJZmkKKysJ ZXZhbCBjbWRzPVwiJG9sZF9hcmNoaXZlX2NtZHNcIgorKworKwlmdW5jX2xlbiAiICRjbWRzIgor KwlsZW49JGZ1bmNfbGVuX3Jlc3VsdAorKwlpZiB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xl biIgfHwgdGVzdCAiJG1heF9jbWRfbGVuIiAtbGUgLTE7IHRoZW4KKysJICBjbWRzPSRvbGRfYXJj aGl2ZV9jbWRzCisrCWVsc2UKKysJICAjIHRoZSBjb21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8g bGluayBpbiBvbmUgc3RlcCwgbGluayBpbiBwYXJ0cworKwkgIGZ1bmNfdmVyYm9zZSAidXNpbmcg cGllY2V3aXNlIGFyY2hpdmUgbGlua2luZy4uLiIKKysJICBzYXZlX1JBTkxJQj0kUkFOTElCCisr CSAgUkFOTElCPToKKysJICBvYmpsaXN0PQorKwkgIGNvbmNhdF9jbWRzPQorKwkgIHNhdmVfb2xk b2Jqcz0kb2xkb2JqcworKwkgIG9sZG9ianM9CisrCSAgIyBJcyB0aGVyZSBhIGJldHRlciB3YXkg b2YgZmluZGluZyB0aGUgbGFzdCBvYmplY3QgaW4gdGhlIGxpc3Q/CisrCSAgZm9yIG9iaiBpbiAk c2F2ZV9vbGRvYmpzCisrCSAgZG8KKysJICAgIGxhc3Rfb2xkb2JqPSRvYmoKKysJICBkb25lCisr CSAgZXZhbCB0ZXN0X2NtZHM9XCIkb2xkX2FyY2hpdmVfY21kc1wiCisrCSAgZnVuY19sZW4gIiAk dGVzdF9jbWRzIgorKwkgIGxlbjA9JGZ1bmNfbGVuX3Jlc3VsdAorKwkgIGxlbj0kbGVuMAorKwkg IGZvciBvYmogaW4gJHNhdmVfb2xkb2JqcworKwkgIGRvCisrCSAgICBmdW5jX2xlbiAiICRvYmoi CisrCSAgICBmdW5jX2FyaXRoICRsZW4gKyAkZnVuY19sZW5fcmVzdWx0CisrCSAgICBsZW49JGZ1 bmNfYXJpdGhfcmVzdWx0CisrCSAgICBmdW5jX2FwcGVuZCBvYmpsaXN0ICIgJG9iaiIKKysJICAg IGlmIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIjsgdGhlbgorKwkgICAgICA6CisrCSAg ICBlbHNlCisrCSAgICAgICMgdGhlIGFib3ZlIGNvbW1hbmQgc2hvdWxkIGJlIHVzZWQgYmVmb3Jl IGl0IGdldHMgdG9vIGxvbmcKKysJICAgICAgb2xkb2Jqcz0kb2JqbGlzdAorKwkgICAgICBpZiB0 ZXN0ICIkb2JqIiA9ICIkbGFzdF9vbGRvYmoiIDsgdGhlbgorKwkJUkFOTElCPSRzYXZlX1JBTkxJ QgorKwkgICAgICBmaQorKwkgICAgICB0ZXN0IC16ICIkY29uY2F0X2NtZHMiIHx8IGNvbmNhdF9j bWRzPSRjb25jYXRfY21kc34KKysJICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwke2NvbmNhdF9j bWRzfSRvbGRfYXJjaGl2ZV9jbWRzXCIKKysJICAgICAgb2JqbGlzdD0KKysJICAgICAgbGVuPSRs ZW4wCisrCSAgICBmaQorKwkgIGRvbmUKKysJICBSQU5MSUI9JHNhdmVfUkFOTElCCisrCSAgb2xk b2Jqcz0kb2JqbGlzdAorKwkgIGlmIHRlc3QgIlgkb2xkb2JqcyIgPSAiWCIgOyB0aGVuCisrCSAg ICBldmFsIGNtZHM9XCJcJGNvbmNhdF9jbWRzXCIKKysJICBlbHNlCisrCSAgICBldmFsIGNtZHM9 XCJcJGNvbmNhdF9jbWRzflwkb2xkX2FyY2hpdmVfY21kc1wiCisrCSAgZmkKKysJZmkKKysgICAg ICBmaQorKyAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkY21kcyIgJ2V4aXQgJD8nCisrICAgIGRv bmUKKysKKysgICAgdGVzdCAtbiAiJGdlbmVyYXRlZCIgJiYgXAorKyAgICAgIGZ1bmNfc2hvd19l dmFsICIke1JNfXIkZ2VuZXJhdGVkIgorKworKyAgICAjIE5vdyBjcmVhdGUgdGhlIGxpYnRvb2wg YXJjaGl2ZS4KKysgICAgY2FzZSAkb3V0cHV0IGluCisrICAgICoubGEpCisrICAgICAgb2xkX2xp YnJhcnk9CisrICAgICAgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllcyAmJiBvbGRfbGlicmFy eT0iJGxpYm5hbWUuJGxpYmV4dCIKKysgICAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nICRvdXRw dXQiCisrCisrICAgICAgIyBQcmVzZXJ2ZSBhbnkgdmFyaWFibGVzIHRoYXQgbWF5IGFmZmVjdCBj b21waWxlciBiZWhhdmlvcgorKyAgICAgIGZvciB2YXIgaW4gJHZhcmlhYmxlc19zYXZlZF9mb3Jf cmVsaW5rOyBkbworKwlpZiBldmFsIHRlc3QgLXogXCJcJHskdmFyK3NldH1cIjsgdGhlbgorKwkg IHJlbGlua19jb21tYW5kPSJ7IHRlc3QgLXogXCJcJHskdmFyK3NldH1cIiB8fCAkbHRfdW5zZXQg JHZhciB8fCB7ICR2YXI9OyBleHBvcnQgJHZhcjsgfTsgfTsgJHJlbGlua19jb21tYW5kIgorKwll bGlmIGV2YWwgdmFyX3ZhbHVlPVwkJHZhcjsgdGVzdCAteiAiJHZhcl92YWx1ZSI7IHRoZW4KKysJ ICByZWxpbmtfY29tbWFuZD0iJHZhcj07IGV4cG9ydCAkdmFyOyAkcmVsaW5rX2NvbW1hbmQiCisr CWVsc2UKKysJICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkdmFyX3ZhbHVlIgorKwkgIHJlbGlua19j b21tYW5kPSIkdmFyPSRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdDsgZXhwb3J0ICR2YXI7ICRy ZWxpbmtfY29tbWFuZCIKKysJZmkKKysgICAgICBkb25lCisrICAgICAgIyBRdW90ZSB0aGUgbGlu ayBjb21tYW5kIGZvciBzaGlwcGluZy4KKysgICAgICByZWxpbmtfY29tbWFuZD0iKGNkIGBwd2Rg OyAkU0hFTEwgJHByb2dwYXRoICRwcmVzZXJ2ZV9hcmdzIC0tbW9kZT1yZWxpbmsgJGxpYnRvb2xf YXJncyBAaW5zdF9wcmVmaXhfZGlyQCkiCisrICAgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICIk cmVsaW5rX2NvbW1hbmQiIHwgJFNFRCAiJHNlZF9xdW90ZV9zdWJzdCJgCisrICAgICAgaWYgdGVz dCAiJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSB5ZXMgOyB0aGVuCisrCXJlbGlua19jb21tYW5kPQor KyAgICAgIGZpCisrCisrICAgICAgIyBPbmx5IGNyZWF0ZSB0aGUgb3V0cHV0IGlmIG5vdCBhIGRy eSBydW4uCisrICAgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJZm9yIGluc3RhbGxlZCBpbiBubyB5 ZXM7IGRvCisrCSAgaWYgdGVzdCAiJGluc3RhbGxlZCIgPSB5ZXM7IHRoZW4KKysJICAgIGlmIHRl c3QgLXogIiRpbnN0YWxsX2xpYmRpciI7IHRoZW4KKysJICAgICAgYnJlYWsKKysJICAgIGZpCisr CSAgICBvdXRwdXQ9IiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lImkKKysJICAgICMgUmVwbGFj ZSBhbGwgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMgd2l0aCB0aGUgaW5zdGFsbGVkIG9u ZXMKKysJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0KKysJICAgIGZvciBkZXBsaWIgaW4gJGRlcGVu ZGVuY3lfbGliczsgZG8KKysJICAgICAgY2FzZSAkZGVwbGliIGluCisrCSAgICAgICoubGEpCisr CQlmdW5jX2Jhc2VuYW1lICIkZGVwbGliIgorKwkJbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0 IgorKwkJZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcg JGRlcGxpYmAKKysJCXRlc3QgLXogIiRsaWJkaXIiICYmIFwKKysJCSAgZnVuY19mYXRhbF9lcnJv ciAiXGAkZGVwbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCisrCQluZXdkZXBl bmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMgJGxpYmRpci8kbmFtZSIKKysJCTs7Cisr CSAgICAgICopIG5ld2RlcGVuZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyAkZGVwbGli IiA7OworKwkgICAgICBlc2FjCisrCSAgICBkb25lCisrCSAgICBkZXBlbmRlbmN5X2xpYnM9IiRu ZXdkZXBlbmRlbmN5X2xpYnMiCisrCSAgICBuZXdkbGZpbGVzPQorKworKwkgICAgZm9yIGxpYiBp biAkZGxmaWxlczsgZG8KKysJICAgICAgY2FzZSAkbGliIGluCisrCSAgICAgICoubGEpCisrCSAg ICAgICAgZnVuY19iYXNlbmFtZSAiJGxpYiIKKysJCW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3Vs dCIKKysJCWV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3An ICRsaWJgCisrCQl0ZXN0IC16ICIkbGliZGlyIiAmJiBcCisrCQkgIGZ1bmNfZmF0YWxfZXJyb3Ig IlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorKwkJbmV3ZGxmaWxlcz0i JG5ld2RsZmlsZXMgJGxpYmRpci8kbmFtZSIKKysJCTs7CisrCSAgICAgICopIG5ld2RsZmlsZXM9 IiRuZXdkbGZpbGVzICRsaWIiIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGRvbmUKKysJICAgIGRs ZmlsZXM9IiRuZXdkbGZpbGVzIgorKwkgICAgbmV3ZGxwcmVmaWxlcz0KKysJICAgIGZvciBsaWIg aW4gJGRscHJlZmlsZXM7IGRvCisrCSAgICAgIGNhc2UgJGxpYiBpbgorKwkgICAgICAqLmxhKQor KwkJIyBPbmx5IHBhc3MgcHJlb3BlbmVkIGZpbGVzIHRvIHRoZSBwc2V1ZG8tYXJjaGl2ZSAoZm9y CisrCQkjIGV2ZW50dWFsIGxpbmtpbmcgd2l0aCB0aGUgYXBwLiB0aGF0IGxpbmtzIGl0KSBpZiB3 ZQorKwkJIyBkaWRuJ3QgYWxyZWFkeSBsaW5rIHRoZSBwcmVvcGVuZWQgb2JqZWN0cyBkaXJlY3Rs eSBpbnRvCisrCQkjIHRoZSBsaWJyYXJ5OgorKwkJZnVuY19iYXNlbmFtZSAiJGxpYiIKKysJCW5h bWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysJCWV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUg J3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRsaWJgCisrCQl0ZXN0IC16ICIkbGliZGlyIiAmJiBc CisrCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBh cmNoaXZlIgorKwkJbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGxpYmRpci8kbmFtZSIK KysJCTs7CisrCSAgICAgIGVzYWMKKysJICAgIGRvbmUKKysJICAgIGRscHJlZmlsZXM9IiRuZXdk bHByZWZpbGVzIgorKwkgIGVsc2UKKysJICAgIG5ld2RsZmlsZXM9CisrCSAgICBmb3IgbGliIGlu ICRkbGZpbGVzOyBkbworKwkgICAgICBjYXNlICRsaWIgaW4KKysJCVtcXC9dKiB8IFtBLVphLXpd OltcXC9dKikgYWJzPSIkbGliIiA7OworKwkJKikgYWJzPWBwd2RgIi8kbGliIiA7OworKwkgICAg ICBlc2FjCisrCSAgICAgIG5ld2RsZmlsZXM9IiRuZXdkbGZpbGVzICRhYnMiCisrCSAgICBkb25l CisrCSAgICBkbGZpbGVzPSIkbmV3ZGxmaWxlcyIKKysJICAgIG5ld2RscHJlZmlsZXM9CisrCSAg ICBmb3IgbGliIGluICRkbHByZWZpbGVzOyBkbworKwkgICAgICBjYXNlICRsaWIgaW4KKysJCVtc XC9dKiB8IFtBLVphLXpdOltcXC9dKikgYWJzPSIkbGliIiA7OworKwkJKikgYWJzPWBwd2RgIi8k bGliIiA7OworKwkgICAgICBlc2FjCisrCSAgICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZp bGVzICRhYnMiCisrCSAgICBkb25lCisrCSAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIK KysJICBmaQorKwkgICRSTSAkb3V0cHV0CisrCSAgIyBwbGFjZSBkbG5hbWUgaW4gY29ycmVjdCBw b3NpdGlvbiBmb3IgY3lnd2luCisrCSAgIyBJbiBmYWN0LCBpdCB3b3VsZCBiZSBuaWNlIGlmIHdl IGNvdWxkIHVzZSB0aGlzIGNvZGUgZm9yIGFsbCB0YXJnZXQKKysJICAjIHN5c3RlbXMgdGhhdCBj YW4ndCBoYXJkLWNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHRoZWlyIGV4ZWN1dGFibGVzCisrCSAg IyBhbmQgdGhhdCBoYXZlIG5vIHNoYXJlZCBsaWJyYXJ5IHBhdGggdmFyaWFibGUgaW5kZXBlbmRl bnQgb2YgUEFUSCwKKysJICAjIGJ1dCBpdCB0dXJucyBvdXQgd2UgY2FuJ3QgZWFzaWx5IGRldGVy bWluZSB0aGF0IGZyb20gaW5zcGVjdGluZworKwkgICMgbGlidG9vbCB2YXJpYWJsZXMsIHNvIHdl IGhhdmUgdG8gaGFyZC1jb2RlIHRoZSBPU3MgdG8gd2hpY2ggaXQKKysJICAjIGFwcGxpZXMgaGVy ZTsgYXQgdGhlIG1vbWVudCwgdGhhdCBtZWFucyBwbGF0Zm9ybXMgdGhhdCB1c2UgdGhlIFBFCisr CSAgIyBvYmplY3QgZm9ybWF0IHdpdGggRExMIGZpbGVzLiAgU2VlIHRoZSBsb25nIGNvbW1lbnQg YXQgdGhlIHRvcCBvZgorKwkgICMgdGVzdHMvYmluZGlyLmF0IGZvciBmdWxsIGRldGFpbHMuCisr CSAgdGRsbmFtZT0kZGxuYW1lCisrCSAgY2FzZSAkaG9zdCwkb3V0cHV0LCRpbnN0YWxsZWQsJG1v ZHVsZSwkZGxuYW1lIGluCisrCSAgICAqY3lnd2luKiwqbGFpLHllcyxubywqLmRsbCB8ICptaW5n dyosKmxhaSx5ZXMsbm8sKi5kbGwgfCAqY2VnY2MqLCpsYWkseWVzLG5vLCouZGxsKQorKwkgICAg ICAjIElmIGEgLWJpbmRpciBhcmd1bWVudCB3YXMgc3VwcGxpZWQsIHBsYWNlIHRoZSBkbGwgdGhl cmUuCisrCSAgICAgIGlmIHRlc3QgIngkYmluZGlyIiAhPSB4IDsKKysJICAgICAgdGhlbgorKwkJ ZnVuY19yZWxhdGl2ZV9wYXRoICIkaW5zdGFsbF9saWJkaXIiICIkYmluZGlyIgorKwkJdGRsbmFt ZT0kZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdCRkbG5hbWUKKysJICAgICAgZWxzZQorKwkJIyBP dGhlcndpc2UgZmFsbCBiYWNrIG9uIGhldXJpc3RpYy4KKysJCXRkbG5hbWU9Li4vYmluLyRkbG5h bWUKKysJICAgICAgZmkKKysJICAgICAgOzsKKysJICBlc2FjCisrCSAgJEVDSE8gPiAkb3V0cHV0 ICJcCisrIyAkb3V0cHV0bmFtZSAtIGEgbGlidG9vbCBsaWJyYXJ5IGZpbGUKKysjIEdlbmVyYXRl ZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KKysjCisrIyBQ bGVhc2UgRE8gTk9UIGRlbGV0ZSB0aGlzIGZpbGUhCisrIyBJdCBpcyBuZWNlc3NhcnkgZm9yIGxp bmtpbmcgdGhlIGxpYnJhcnkuCisrCisrIyBUaGUgbmFtZSB0aGF0IHdlIGNhbiBkbG9wZW4oMyku CisrZGxuYW1lPSckdGRsbmFtZScKKysKKysjIE5hbWVzIG9mIHRoaXMgbGlicmFyeS4KKytsaWJy YXJ5X25hbWVzPSckbGlicmFyeV9uYW1lcycKKysKKysjIFRoZSBuYW1lIG9mIHRoZSBzdGF0aWMg YXJjaGl2ZS4KKytvbGRfbGlicmFyeT0nJG9sZF9saWJyYXJ5JworKworKyMgTGlua2VyIGZsYWdz IHRoYXQgY2FuIG5vdCBnbyBpbiBkZXBlbmRlbmN5X2xpYnMuCisraW5oZXJpdGVkX2xpbmtlcl9m bGFncz0nJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzJworKworKyMgTGlicmFyaWVzIHRoYXQg dGhpcyBvbmUgZGVwZW5kcyB1cG9uLgorK2RlcGVuZGVuY3lfbGlicz0nJGRlcGVuZGVuY3lfbGli cycKKysKKysjIE5hbWVzIG9mIGFkZGl0aW9uYWwgd2VhayBsaWJyYXJpZXMgcHJvdmlkZWQgYnkg dGhpcyBsaWJyYXJ5Cisrd2Vha19saWJyYXJ5X25hbWVzPSckd2Vha19saWJzJworKworKyMgVmVy c2lvbiBpbmZvcm1hdGlvbiBmb3IgJGxpYm5hbWUuCisrY3VycmVudD0kY3VycmVudAorK2FnZT0k YWdlCisrcmV2aXNpb249JHJldmlzaW9uCisrCisrIyBJcyB0aGlzIGFuIGFscmVhZHkgaW5zdGFs bGVkIGxpYnJhcnk/CisraW5zdGFsbGVkPSRpbnN0YWxsZWQKKysKKysjIFNob3VsZCB3ZSB3YXJu IGFib3V0IHBvcnRhYmlsaXR5IHdoZW4gbGlua2luZyBhZ2FpbnN0IC1tb2R1bGVzPworK3Nob3Vs ZG5vdGxpbms9JG1vZHVsZQorKworKyMgRmlsZXMgdG8gZGxvcGVuL2RscHJlb3BlbgorK2Rsb3Bl bj0nJGRsZmlsZXMnCisrZGxwcmVvcGVuPSckZGxwcmVmaWxlcycKKysKKysjIERpcmVjdG9yeSB0 aGF0IHRoaXMgbGlicmFyeSBuZWVkcyB0byBiZSBpbnN0YWxsZWQgaW46CisrbGliZGlyPSckaW5z dGFsbF9saWJkaXInIgorKwkgIGlmIHRlc3QgIiRpbnN0YWxsZWQiID0gbm8gJiYgdGVzdCAiJG5l ZWRfcmVsaW5rIiA9IHllczsgdGhlbgorKwkgICAgJEVDSE8gPj4gJG91dHB1dCAiXAorK3JlbGlu a19jb21tYW5kPVwiJHJlbGlua19jb21tYW5kXCIiCisrCSAgZmkKKysJZG9uZQorKyAgICAgIH0K KysKKysgICAgICAjIERvIGEgc3ltYm9saWMgbGluayBzbyB0aGF0IHRoZSBsaWJ0b29sIGFyY2hp dmUgY2FuIGJlIGZvdW5kIGluCisrICAgICAgIyBMRF9MSUJSQVJZX1BBVEggYmVmb3JlIHRoZSBw cm9ncmFtIGlzIGluc3RhbGxlZC4KKysgICAgICBmdW5jX3Nob3dfZXZhbCAnKCBjZCAiJG91dHB1 dF9vYmpkaXIiICYmICRSTSAiJG91dHB1dG5hbWUiICYmICRMTl9TICIuLi8kb3V0cHV0bmFtZSIg IiRvdXRwdXRuYW1lIiApJyAnZXhpdCAkPycKKysgICAgICA7OworKyAgICBlc2FjCisrICAgIGV4 aXQgJEVYSVRfU1VDQ0VTUworK30KKysKKyt7IHRlc3QgIiRtb2RlIiA9IGxpbmsgfHwgdGVzdCAi JG1vZGUiID0gcmVsaW5rOyB9ICYmCisrICAgIGZ1bmNfbW9kZV9saW5rICR7MSsiJEAifQorKwor KworKyMgZnVuY19tb2RlX3VuaW5zdGFsbCBhcmcuLi4KKytmdW5jX21vZGVfdW5pbnN0YWxsICgp CisreworKyAgICAkb3B0X2RlYnVnCisrICAgIFJNPSIkbm9ub3B0IgorKyAgICBmaWxlcz0KKysg ICAgcm1mb3JjZT0KKysgICAgZXhpdF9zdGF0dXM9MAorKworKyAgICAjIFRoaXMgdmFyaWFibGUg dGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHZhcmlhYmxlcyByYXRoZXIKKysgICAg IyB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCisrICAgIGxpYnRvb2xfaW5zdGFsbF9tYWdp Yz0iJG1hZ2ljIgorKworKyAgICBmb3IgYXJnCisrICAgIGRvCisrICAgICAgY2FzZSAkYXJnIGlu CisrICAgICAgLWYpIFJNPSIkUk0gJGFyZyI7IHJtZm9yY2U9eWVzIDs7CisrICAgICAgLSopIFJN PSIkUk0gJGFyZyIgOzsKKysgICAgICAqKSBmaWxlcz0iJGZpbGVzICRhcmciIDs7CisrICAgICAg ZXNhYworKyAgICBkb25lCisrCisrICAgIHRlc3QgLXogIiRSTSIgJiYgXAorKyAgICAgIGZ1bmNf ZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhbiBSTSBwcm9ncmFtIgorKworKyAgICBybWRp cnM9CisrCisrICAgIG9yaWdvYmpkaXI9IiRvYmpkaXIiCisrICAgIGZvciBmaWxlIGluICRmaWxl czsgZG8KKysgICAgICBmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiIiAiLiIKKysgICAgICBkaXI9IiRm dW5jX2Rpcm5hbWVfcmVzdWx0IgorKyAgICAgIGlmIHRlc3QgIlgkZGlyIiA9IFguOyB0aGVuCisr CW9iamRpcj0iJG9yaWdvYmpkaXIiCisrICAgICAgZWxzZQorKwlvYmpkaXI9IiRkaXIvJG9yaWdv YmpkaXIiCisrICAgICAgZmkKKysgICAgICBmdW5jX2Jhc2VuYW1lICIkZmlsZSIKKysgICAgICBu YW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrICAgICAgdGVzdCAiJG1vZGUiID0gdW5pbnN0 YWxsICYmIG9iamRpcj0iJGRpciIKKysKKysgICAgICAjIFJlbWVtYmVyIG9iamRpciBmb3IgcmVt b3ZhbCBsYXRlciwgYmVpbmcgY2FyZWZ1bCB0byBhdm9pZCBkdXBsaWNhdGVzCisrICAgICAgaWYg dGVzdCAiJG1vZGUiID0gY2xlYW47IHRoZW4KKysJY2FzZSAiICRybWRpcnMgIiBpbgorKwkgICoi ICRvYmpkaXIgIiopIDs7CisrCSAgKikgcm1kaXJzPSIkcm1kaXJzICRvYmpkaXIiIDs7CisrCWVz YWMKKysgICAgICBmaQorKworKyAgICAgICMgRG9uJ3QgZXJyb3IgaWYgdGhlIGZpbGUgZG9lc24n dCBleGlzdCBhbmQgcm0gLWYgd2FzIHVzZWQuCisrICAgICAgaWYgeyB0ZXN0IC1MICIkZmlsZSI7 IH0gPi9kZXYvbnVsbCAyPiYxIHx8CisrCSB7IHRlc3QgLWggIiRmaWxlIjsgfSA+L2Rldi9udWxs IDI+JjEgfHwKKysJIHRlc3QgLWYgIiRmaWxlIjsgdGhlbgorKwk6CisrICAgICAgZWxpZiB0ZXN0 IC1kICIkZmlsZSI7IHRoZW4KKysJZXhpdF9zdGF0dXM9MQorKwljb250aW51ZQorKyAgICAgIGVs aWYgdGVzdCAiJHJtZm9yY2UiID0geWVzOyB0aGVuCisrCWNvbnRpbnVlCisrICAgICAgZmkKKysK KysgICAgICBybWZpbGVzPSIkZmlsZSIKKysKKysgICAgICBjYXNlICRuYW1lIGluCisrICAgICAg Ki5sYSkKKysJIyBQb3NzaWJseSBhIGxpYnRvb2wgYXJjaGl2ZSwgc28gdmVyaWZ5IGl0LgorKwlp ZiBmdW5jX2xhbGliX3AgIiRmaWxlIjsgdGhlbgorKwkgIGZ1bmNfc291cmNlICRkaXIvJG5hbWUK KysKKysJICAjIERlbGV0ZSB0aGUgbGlidG9vbCBsaWJyYXJpZXMgYW5kIHN5bWxpbmtzLgorKwkg IGZvciBuIGluICRsaWJyYXJ5X25hbWVzOyBkbworKwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9i amRpci8kbiIKKysJICBkb25lCisrCSAgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IiAmJiBybWZpbGVz PSIkcm1maWxlcyAkb2JqZGlyLyRvbGRfbGlicmFyeSIKKysKKysJICBjYXNlICIkbW9kZSIgaW4K KysJICBjbGVhbikKKysJICAgIGNhc2UgIiAgJGxpYnJhcnlfbmFtZXMgIiBpbgorKwkgICAgIyAi ICAiIGluIHRoZSBiZWdpbm5pbmcgY2F0Y2hlcyBlbXB0eSAkZGxuYW1lCisrCSAgICAqIiAkZGxu YW1lICIqKSA7OworKwkgICAgKikgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kZGxuYW1lIiA7 OworKwkgICAgZXNhYworKwkgICAgdGVzdCAtbiAiJGxpYmRpciIgJiYgcm1maWxlcz0iJHJtZmls ZXMgJG9iamRpci8kbmFtZSAkb2JqZGlyLyR7bmFtZX1pIgorKwkgICAgOzsKKysJICB1bmluc3Rh bGwpCisrCSAgICBpZiB0ZXN0IC1uICIkbGlicmFyeV9uYW1lcyI7IHRoZW4KKysJICAgICAgIyBE byBlYWNoIGNvbW1hbmQgaW4gdGhlIHBvc3R1bmluc3RhbGwgY29tbWFuZHMuCisrCSAgICAgIGZ1 bmNfZXhlY3V0ZV9jbWRzICIkcG9zdHVuaW5zdGFsbF9jbWRzIiAndGVzdCAiJHJtZm9yY2UiID0g eWVzIHx8IGV4aXRfc3RhdHVzPTEnCisrCSAgICBmaQorKworKwkgICAgaWYgdGVzdCAtbiAiJG9s ZF9saWJyYXJ5IjsgdGhlbgorKwkgICAgICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgb2xkX3Bv c3R1bmluc3RhbGwgY29tbWFuZHMuCisrCSAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkb2xkX3Bv c3R1bmluc3RhbGxfY21kcyIgJ3Rlc3QgIiRybWZvcmNlIiA9IHllcyB8fCBleGl0X3N0YXR1cz0x JworKwkgICAgZmkKKysJICAgICMgRklYTUU6IHNob3VsZCByZWluc3RhbGwgdGhlIGJlc3QgcmVt YWluaW5nIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgOzsKKysJICBlc2FjCisrCWZpCisrCTs7Cisr CisrICAgICAgKi5sbykKKysJIyBQb3NzaWJseSBhIGxpYnRvb2wgb2JqZWN0LCBzbyB2ZXJpZnkg aXQuCisrCWlmIGZ1bmNfbGFsaWJfcCAiJGZpbGUiOyB0aGVuCisrCisrCSAgIyBSZWFkIHRoZSAu bG8gZmlsZQorKwkgIGZ1bmNfc291cmNlICRkaXIvJG5hbWUKKysKKysJICAjIEFkZCBQSUMgb2Jq ZWN0IHRvIHRoZSBsaXN0IG9mIGZpbGVzIHRvIHJlbW92ZS4KKysJICBpZiB0ZXN0IC1uICIkcGlj X29iamVjdCIgJiYKKysJICAgICB0ZXN0ICIkcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgorKwkg ICAgcm1maWxlcz0iJHJtZmlsZXMgJGRpci8kcGljX29iamVjdCIKKysJICBmaQorKworKwkgICMg QWRkIG5vbi1QSUMgb2JqZWN0IHRvIHRoZSBsaXN0IG9mIGZpbGVzIHRvIHJlbW92ZS4KKysJICBp ZiB0ZXN0IC1uICIkbm9uX3BpY19vYmplY3QiICYmCisrCSAgICAgdGVzdCAiJG5vbl9waWNfb2Jq ZWN0IiAhPSBub25lOyB0aGVuCisrCSAgICBybWZpbGVzPSIkcm1maWxlcyAkZGlyLyRub25fcGlj X29iamVjdCIKKysJICBmaQorKwlmaQorKwk7OworKworKyAgICAgICopCisrCWlmIHRlc3QgIiRt b2RlIiA9IGNsZWFuIDsgdGhlbgorKwkgIG5vZXhlbmFtZT0kbmFtZQorKwkgIGNhc2UgJGZpbGUg aW4KKysJICAqLmV4ZSkKKysJICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZpbGUiCisr CSAgICBmaWxlPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJICAgIGZ1bmNfc3RyaXBuYW1lICcn ICcuZXhlJyAiJG5hbWUiCisrCSAgICBub2V4ZW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAor KwkgICAgIyAkZmlsZSB3aXRoIC5leGUgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCB0byBybWZpbGVz LAorKwkgICAgIyBhZGQgJGZpbGUgd2l0aG91dCAuZXhlCisrCSAgICBybWZpbGVzPSIkcm1maWxl cyAkZmlsZSIKKysJICAgIDs7CisrCSAgZXNhYworKwkgICMgRG8gYSB0ZXN0IHRvIHNlZSBpZiB0 aGlzIGlzIGEgbGlidG9vbCBwcm9ncmFtLgorKwkgIGlmIGZ1bmNfbHR3cmFwcGVyX3AgIiRmaWxl IjsgdGhlbgorKwkgICAgaWYgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkZmlsZSI7IHRo ZW4KKysJICAgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSAiJGZpbGUiCisrCSAgICAgIHJl bGlua19jb21tYW5kPQorKwkgICAgICBmdW5jX3NvdXJjZSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0 bmFtZV9yZXN1bHQKKysJICAgICAgcm1maWxlcz0iJHJtZmlsZXMgJGZ1bmNfbHR3cmFwcGVyX3Nj cmlwdG5hbWVfcmVzdWx0IgorKwkgICAgZWxzZQorKwkgICAgICByZWxpbmtfY29tbWFuZD0KKysJ ICAgICAgZnVuY19zb3VyY2UgJGRpci8kbm9leGVuYW1lCisrCSAgICBmaQorKworKwkgICAgIyBu b3RlICRuYW1lIHN0aWxsIGNvbnRhaW5zIC5leGUgaWYgaXQgd2FzIGluICRmaWxlIG9yaWdpbmFs bHkKKysJICAgICMgYXMgZG9lcyB0aGUgdmVyc2lvbiBvZiAkZmlsZSB0aGF0IHdhcyBhZGRlZCBp bnRvICRybWZpbGVzCisrCSAgICBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRuYW1lICRvYmpk aXIvJHtuYW1lfVMuJHtvYmpleHR9IgorKwkgICAgaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5 ZXMgJiYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgorKwkgICAgICBybWZpbGVzPSIk cm1maWxlcyAkb2JqZGlyL2x0LSRuYW1lIgorKwkgICAgZmkKKysJICAgIGlmIHRlc3QgIlgkbm9l eGVuYW1lIiAhPSAiWCRuYW1lIiA7IHRoZW4KKysJICAgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9i amRpci9sdC0ke25vZXhlbmFtZX0uYyIKKysJICAgIGZpCisrCSAgZmkKKysJZmkKKysJOzsKKysg ICAgICBlc2FjCisrICAgICAgZnVuY19zaG93X2V2YWwgIiRSTSAkcm1maWxlcyIgJ2V4aXRfc3Rh dHVzPTEnCisrICAgIGRvbmUKKysgICAgb2JqZGlyPSIkb3JpZ29iamRpciIKKysKKysgICAgIyBU cnkgdG8gcmVtb3ZlIHRoZSAke29iamRpcn1zIGluIHRoZSBkaXJlY3RvcmllcyB3aGVyZSB3ZSBk ZWxldGVkIGZpbGVzCisrICAgIGZvciBkaXIgaW4gJHJtZGlyczsgZG8KKysgICAgICBpZiB0ZXN0 IC1kICIkZGlyIjsgdGhlbgorKwlmdW5jX3Nob3dfZXZhbCAicm1kaXIgJGRpciA+L2Rldi9udWxs IDI+JjEiCisrICAgICAgZmkKKysgICAgZG9uZQorKworKyAgICBleGl0ICRleGl0X3N0YXR1cwor K30KKysKKyt7IHRlc3QgIiRtb2RlIiA9IHVuaW5zdGFsbCB8fCB0ZXN0ICIkbW9kZSIgPSBjbGVh bjsgfSAmJgorKyAgICBmdW5jX21vZGVfdW5pbnN0YWxsICR7MSsiJEAifQorKworK3Rlc3QgLXog IiRtb2RlIiAmJiB7CisrICBoZWxwPSIkZ2VuZXJpY19oZWxwIgorKyAgZnVuY19mYXRhbF9oZWxw ICJ5b3UgbXVzdCBzcGVjaWZ5IGEgTU9ERSIKKyt9CisrCisrdGVzdCAteiAiJGV4ZWNfY21kIiAm JiBcCisrICBmdW5jX2ZhdGFsX2hlbHAgImludmFsaWQgb3BlcmF0aW9uIG1vZGUgXGAkbW9kZSci CisrCisraWYgdGVzdCAtbiAiJGV4ZWNfY21kIjsgdGhlbgorKyAgZXZhbCBleGVjICIkZXhlY19j bWQiCisrICBleGl0ICRFWElUX0ZBSUxVUkUKKytmaQorKworK2V4aXQgJGV4aXRfc3RhdHVzCisr CisrCisrIyBUaGUgVEFHcyBiZWxvdyBhcmUgZGVmaW5lZCBzdWNoIHRoYXQgd2UgbmV2ZXIgZ2V0 IGludG8gYSBzaXR1YXRpb24KKysjIGluIHdoaWNoIHdlIGRpc2FibGUgYm90aCBraW5kcyBvZiBs aWJyYXJpZXMuICBHaXZlbiBjb25mbGljdGluZworKyMgY2hvaWNlcywgd2UgZ28gZm9yIGEgc3Rh dGljIGxpYnJhcnksIHRoYXQgaXMgdGhlIG1vc3QgcG9ydGFibGUsCisrIyBzaW5jZSB3ZSBjYW4n dCB0ZWxsIHdoZXRoZXIgc2hhcmVkIGxpYnJhcmllcyB3ZXJlIGRpc2FibGVkIGJlY2F1c2UKKysj IHRoZSB1c2VyIGFza2VkIGZvciB0aGF0IG9yIGJlY2F1c2UgdGhlIHBsYXRmb3JtIGRvZXNuJ3Qg c3VwcG9ydAorKyMgdGhlbS4gIFRoaXMgaXMgcGFydGljdWxhcmx5IGltcG9ydGFudCBvbiBBSVgs IGJlY2F1c2Ugd2UgZG9uJ3QKKysjIHN1cHBvcnQgaGF2aW5nIGJvdGggc3RhdGljIGFuZCBzaGFy ZWQgbGlicmFyaWVzIGVuYWJsZWQgYXQgdGhlIHNhbWUKKysjIHRpbWUgb24gdGhhdCBwbGF0Zm9y bSwgc28gd2UgZGVmYXVsdCB0byBhIHNoYXJlZC1vbmx5IGNvbmZpZ3VyYXRpb24uCisrIyBJZiBh IGRpc2FibGUtc2hhcmVkIHRhZyBpcyBnaXZlbiwgd2UnbGwgZmFsbGJhY2sgdG8gYSBzdGF0aWMt b25seQorKyMgY29uZmlndXJhdGlvbi4gIEJ1dCB3ZSdsbCBuZXZlciBnbyBmcm9tIHN0YXRpYy1v bmx5IHRvIHNoYXJlZC1vbmx5LgorKworKyMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzog ZGlzYWJsZS1zaGFyZWQKKytidWlsZF9saWJ0b29sX2xpYnM9bm8KKytidWlsZF9vbGRfbGlicz15 ZXMKKysjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXNoYXJlZAorKworKyMg IyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zdGF0aWMKKytidWlsZF9vbGRf bGlicz1gY2FzZSAkYnVpbGRfbGlidG9vbF9saWJzIGluIHllcykgZWNobyBubzs7ICopIGVjaG8g eWVzOzsgZXNhY2AKKysjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXN0YXRp YworKworKyMgTG9jYWwgVmFyaWFibGVzOgorKyMgbW9kZTpzaGVsbC1zY3JpcHQKKysjIHNoLWlu ZGVudGF0aW9uOjIKKysjIEVuZDoKKysjIHZpOnN3PTIKKysKK2RpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9jb25maWcvbHR+b2Jzb2xldGUubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9s dH5vYnNvbGV0ZS5tNAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdH5vYnNvbGV0ZS5t NAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9jb25maWcvbHR+b2Jzb2xldGUubTQJMjAxMS0wMi0wOCAyMjozOTo0NC4wMDAwMDAwMDAg KzAxMDAKK0BAIC0wLDAgKzEsOTggQEAKKysjIGx0fm9ic29sZXRlLm00IC0tIGFjbG9jYWwgc2F0 aXNmeWluZyBvYnNvbGV0ZSBkZWZpbml0aW9ucy4gICAgLSotQXV0b2NvbmYtKi0KKysjCisrIyAg IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNywgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKysjICAgV3JpdHRlbiBieSBTY290dCBKYW1lcyBSZW1uYW50LCAyMDA0Lgor KyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uIGdpdmVzCisrIyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0 cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKKysjIG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMg dGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDUgbHR+b2Jzb2xldGUubTQK KysKKysjIFRoZXNlIGV4aXN0IGVudGlyZWx5IHRvIGZvb2wgYWNsb2NhbCB3aGVuIGJvb3RzdHJh cHBpbmcgbGlidG9vbC4KKysjCisrIyBJbiB0aGUgcGFzdCBsaWJ0b29sLm00IGhhcyBwcm92aWRl ZCBtYWNyb3MgdmlhIEFDX0RFRlVOIChvciBBVV9ERUZVTikKKysjIHdoaWNoIGhhdmUgbGF0ZXIg YmVlbiBjaGFuZ2VkIHRvIG00X2RlZmluZSBhcyB0aGV5IGFyZW4ndCBwYXJ0IG9mIHRoZQorKyMg ZXhwb3J0ZWQgQVBJLCBvciBtb3ZlZCB0byBBdXRvY29uZiBvciBBdXRvbWFrZSB3aGVyZSB0aGV5 IGJlbG9uZy4KKysjCisrIyBUaGUgdHJvdWJsZSBpcywgYWNsb2NhbCBpcyBhIGJpdCB0aGljay4g IEl0J2xsIHNlZSB0aGUgb2xkIEFDX0RFRlVOCisrIyBpbiAvdXNyL3NoYXJlL2FjbG9jYWwvbGli dG9vbC5tNCBhbmQgcmVtZW1iZXIgaXQsIHRoZW4gd2hlbiBpdCBzZWVzIHVzCisrIyB1c2luZyBh IG1hY3JvIHdpdGggdGhlIHNhbWUgbmFtZSBpbiBvdXIgbG9jYWwgbTQvbGlidG9vbC5tNCBpdCds bAorKyMgcHVsbCB0aGUgb2xkIGxpYnRvb2wubTQgaW4gKGl0IGRvZXNuJ3Qgc2VlIG91ciBzaGlu eSBuZXcgbTRfZGVmaW5lCisrIyBhbmQgZG9lc24ndCBrbm93IGFib3V0IEF1dG9jb25mIG1hY3Jv cyBhdCBhbGwuKQorKyMKKysjIFNvIHdlIHByb3ZpZGUgdGhpcyBmaWxlLCB3aGljaCBoYXMgYSBz aWxseSBmaWxlbmFtZSBzbyBpdCdzIGFsd2F5cworKyMgaW5jbHVkZWQgYWZ0ZXIgZXZlcnl0aGlu ZyBlbHNlLiAgVGhpcyBwcm92aWRlcyBhY2xvY2FsIHdpdGggdGhlCisrIyBBQ19ERUZVTnMgaXQg d2FudHMsIGJ1dCB3aGVuIG00IHByb2Nlc3NlcyBpdCwgaXQgZG9lc24ndCBkbyBhbnl0aGluZwor KyMgYmVjYXVzZSB0aG9zZSBtYWNyb3MgYWxyZWFkeSBleGlzdCwgb3Igd2lsbCBiZSBvdmVyd3Jp dHRlbiBsYXRlci4KKysjIFdlIHVzZSBBQ19ERUZVTiBvdmVyIEFVX0RFRlVOIGZvciBjb21wYXRp YmlsaXR5IHdpdGggYWNsb2NhbC0xLjYuIAorKyMKKysjIEFueXRpbWUgd2Ugd2l0aGRyYXcgYW4g QUNfREVGVU4gb3IgQVVfREVGVU4sIHJlbWVtYmVyIHRvIGFkZCBpdCBoZXJlLgorKyMgWWVzLCB0 aGF0IG1lYW5zIGV2ZXJ5IG5hbWUgb25jZSB0YWtlbiB3aWxsIG5lZWQgdG8gcmVtYWluIGhlcmUg dW50aWwKKysjIHdlIGdpdmUgdXAgY29tcGF0aWJpbGl0eSB3aXRoIHZlcnNpb25zIGJlZm9yZSAx LjcsIGF0IHdoaWNoIHBvaW50CisrIyB3ZSBuZWVkIHRvIGtlZXAgb25seSB0aG9zZSBuYW1lcyB3 aGljaCB3ZSBzdGlsbCByZWZlciB0by4KKysKKysjIFRoaXMgaXMgdG8gaGVscCBhY2xvY2FsIGZp bmQgdGhlc2UgbWFjcm9zLCBhcyBpdCBjYW4ndCBzZWUgbTRfZGVmaW5lLgorK0FDX0RFRlVOKFtM VE9CU09MRVRFX1ZFUlNJT05dLCBbbTRfaWYoWzFdKV0pCisrCisrbTRfaWZuZGVmKFtBQ19MSUJU T09MX0xJTktFUl9PUFRJT05dLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0p XSkKKyttNF9pZm5kZWYoW0FDX1BST0dfRUdSRVBdLAkJW0FDX0RFRlVOKFtBQ19QUk9HX0VHUkVQ XSldKQorK200X2lmbmRlZihbX0xUX0FDX1BST0dfRUNIT19CQUNLU0xBU0hdLAlbQUNfREVGVU4o W19MVF9BQ19QUk9HX0VDSE9fQkFDS1NMQVNIXSldKQorK200X2lmbmRlZihbX0xUX0FDX1NIRUxM X0lOSVRdLAkJW0FDX0RFRlVOKFtfTFRfQUNfU0hFTExfSU5JVF0pXSkKKyttNF9pZm5kZWYoW19M VF9BQ19TWVNfTElCUEFUSF9BSVhdLAlbQUNfREVGVU4oW19MVF9BQ19TWVNfTElCUEFUSF9BSVhd KV0pCisrbTRfaWZuZGVmKFtfTFRfUFJPR19MVE1BSU5dLAkJW0FDX0RFRlVOKFtfTFRfUFJPR19M VE1BSU5dKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfVEFHVkFSXSwJCVtBQ19ERUZVTihbX0xUX0FD X1RBR1ZBUl0pXSkKKyttNF9pZm5kZWYoW0FDX0xURExfRU5BQkxFX0lOU1RBTExdLAlbQUNfREVG VU4oW0FDX0xURExfRU5BQkxFX0lOU1RBTExdKV0pCisrbTRfaWZuZGVmKFtBQ19MVERMX1BSRU9Q RU5dLAkJW0FDX0RFRlVOKFtBQ19MVERMX1BSRU9QRU5dKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNf U1lTX0NPTVBJTEVSXSwJW0FDX0RFRlVOKFtfTFRfQUNfU1lTX0NPTVBJTEVSXSldKQorK200X2lm bmRlZihbX0xUX0FDX0xPQ0tdLAkJW0FDX0RFRlVOKFtfTFRfQUNfTE9DS10pXSkKKyttNF9pZm5k ZWYoW0FDX0xJQlRPT0xfU1lTX09MRF9BUkNISVZFXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZ U19PTERfQVJDSElWRV0pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19UUllfRExPUEVOX1NFTEZdLAlb QUNfREVGVU4oW19MVF9BQ19UUllfRExPUEVOX1NFTEZdKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJU T09MX1BST0dfQ0NfQ19PXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfQ0NfQ19PXSldKQor K200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNfSEFSRF9MSU5LX0xPQ0tTXSwgW0FDX0RFRlVOKFtB Q19MSUJUT09MX1NZU19IQVJEX0xJTktfTE9DS1NdKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09M X09CSkRJUl0sCQlbQUNfREVGVU4oW0FDX0xJQlRPT0xfT0JKRElSXSldKQorK200X2lmbmRlZihb QUNfTFRETF9PQkpESVJdLAkJW0FDX0RFRlVOKFtBQ19MVERMX09CSkRJUl0pXSkKKyttNF9pZm5k ZWYoW0FDX0xJQlRPT0xfUFJPR19MRF9IQVJEQ09ERV9MSUJQQVRIXSwgW0FDX0RFRlVOKFtBQ19M SUJUT09MX1BST0dfTERfSEFSRENPREVfTElCUEFUSF0pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRP T0xfU1lTX0xJQl9TVFJJUF0sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfTElCX1NUUklQXSld KQorK200X2lmbmRlZihbQUNfUEFUSF9NQUdJQ10sCQlbQUNfREVGVU4oW0FDX1BBVEhfTUFHSUNd KV0pCisrbTRfaWZuZGVmKFtBQ19QUk9HX0xEX0dOVV0sCQlbQUNfREVGVU4oW0FDX1BST0dfTERf R05VXSldKQorK200X2lmbmRlZihbQUNfUFJPR19MRF9SRUxPQURfRkxBR10sCVtBQ19ERUZVTihb QUNfUFJPR19MRF9SRUxPQURfRkxBR10pXSkKKyttNF9pZm5kZWYoW0FDX0RFUExJQlNfQ0hFQ0tf TUVUSE9EXSwJW0FDX0RFRlVOKFtBQ19ERVBMSUJTX0NIRUNLX01FVEhPRF0pXSkKKyttNF9pZm5k ZWYoW0FDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9OT19SVFRJXSwgW0FDX0RFRlVOKFtBQ19MSUJU T09MX1BST0dfQ09NUElMRVJfTk9fUlRUSV0pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfU1lT X0dMT0JBTF9TWU1CT0xfUElQRV0sIFtBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfR0xPQkFMX1NZ TUJPTF9QSVBFXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX1BJQ10s IFtBQ19ERUZVTihbQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX1BJQ10pXSkKKyttNF9pZm5kZWYo W0FDX0xJQlRPT0xfUFJPR19MRF9TSExJQlNdLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19M RF9TSExJQlNdKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BPU1RERVBfUFJFREVQXSwJW0FD X0RFRlVOKFtBQ19MSUJUT09MX1BPU1RERVBfUFJFREVQXSldKQorK200X2lmbmRlZihbTFRfQUNf UFJPR19FR1JFUF0sCQlbQUNfREVGVU4oW0xUX0FDX1BST0dfRUdSRVBdKV0pCisrbTRfaWZuZGVm KFtMVF9BQ19QUk9HX1NFRF0sCQlbQUNfREVGVU4oW0xUX0FDX1BST0dfU0VEXSldKQorK200X2lm bmRlZihbX0xUX0NDX0JBU0VOQU1FXSwJCVtBQ19ERUZVTihbX0xUX0NDX0JBU0VOQU1FXSldKQor K200X2lmbmRlZihbX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFXSwJW0FDX0RFRlVOKFtfTFRfQ09N UElMRVJfQk9JTEVSUExBVEVdKV0pCisrbTRfaWZuZGVmKFtfTFRfTElOS0VSX0JPSUxFUlBMQVRF XSwJW0FDX0RFRlVOKFtfTFRfTElOS0VSX0JPSUxFUlBMQVRFXSldKQorK200X2lmbmRlZihbX0FD X1BST0dfTElCVE9PTF0sCQlbQUNfREVGVU4oW19BQ19QUk9HX0xJQlRPT0xdKV0pCisrbTRfaWZu ZGVmKFtBQ19MSUJUT09MX1NFVFVQXSwJCVtBQ19ERUZVTihbQUNfTElCVE9PTF9TRVRVUF0pXSkK KyttNF9pZm5kZWYoW19MVF9BQ19DSEVDS19ETEZDTl0sCQlbQUNfREVGVU4oW19MVF9BQ19DSEVD S19ETEZDTl0pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfU1lTX0RZTkFNSUNfTElOS0VSXSwJ W0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19EWU5BTUlDX0xJTktFUl0pXSkKKyttNF9pZm5kZWYo W19MVF9BQ19UQUdDT05GSUddLAkJW0FDX0RFRlVOKFtfTFRfQUNfVEFHQ09ORklHXSldKQorK200 X2lmbmRlZihbQUNfRElTQUJMRV9GQVNUX0lOU1RBTExdLAlbQUNfREVGVU4oW0FDX0RJU0FCTEVf RkFTVF9JTlNUQUxMXSldKQorK200X2lmbmRlZihbX0xUX0FDX0xBTkdfQ1hYXSwJCVtBQ19ERUZV TihbX0xUX0FDX0xBTkdfQ1hYXSldKQorK200X2lmbmRlZihbX0xUX0FDX0xBTkdfRjc3XSwJCVtB Q19ERUZVTihbX0xUX0FDX0xBTkdfRjc3XSldKQorK200X2lmbmRlZihbX0xUX0FDX0xBTkdfR0NK XSwJCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfR0NKXSldKQorK200X2lmbmRlZihbQUNfTElCVE9P TF9MQU5HX0NfQ09ORklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfQ19DT05GSUddKV0p CisrbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19DX0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xB TkdfQ19DT05GSUddKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09MX0xBTkdfQ1hYX0NPTkZJR10s CVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX0NYWF9DT05GSUddKV0pCisrbTRfaWZuZGVmKFtf TFRfQUNfTEFOR19DWFhfQ09ORklHXSwJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19DWFhfQ09ORklH XSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX0Y3N19DT05GSUddLAlbQUNfREVGVU4o W0FDX0xJQlRPT0xfTEFOR19GNzdfQ09ORklHXSldKQorK200X2lmbmRlZihbX0xUX0FDX0xBTkdf Rjc3X0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfRjc3X0NPTkZJR10pXSkKKyttNF9p Zm5kZWYoW0FDX0xJQlRPT0xfTEFOR19HQ0pfQ09ORklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09M X0xBTkdfR0NKX0NPTkZJR10pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19MQU5HX0dDSl9DT05GSUdd LAlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0dDSl9DT05GSUddKV0pCisrbTRfaWZuZGVmKFtBQ19M SUJUT09MX0xBTkdfUkNfQ09ORklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfUkNfQ09O RklHXSldKQorK200X2lmbmRlZihbX0xUX0FDX0xBTkdfUkNfQ09ORklHXSwJW0FDX0RFRlVOKFtf TFRfQUNfTEFOR19SQ19DT05GSUddKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09MX0NPTkZJR10s CQlbQUNfREVGVU4oW0FDX0xJQlRPT0xfQ09ORklHXSldKQorK200X2lmbmRlZihbX0xUX0FDX0ZJ TEVfTFRETExfQ10sCVtBQ19ERUZVTihbX0xUX0FDX0ZJTEVfTFRETExfQ10pXSkKKyttNF9pZm5k ZWYoW19MVF9SRVFVSVJFRF9EQVJXSU5fQ0hFQ0tTXSwJW0FDX0RFRlVOKFtfTFRfUkVRVUlSRURf REFSV0lOX0NIRUNLU10pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19QUk9HX0NYWENQUF0sCQlbQUNf REVGVU4oW19MVF9BQ19QUk9HX0NYWENQUF0pXSkKKyttNF9pZm5kZWYoW19MVF9QUkVQQVJFX1NF RF9RVU9URV9WQVJTXSwJW0FDX0RFRlVOKFtfTFRfUFJFUEFSRV9TRURfUVVPVEVfVkFSU10pXSkK KyttNF9pZm5kZWYoW19MVF9QUk9HX0VDSE9fQkFDS1NMQVNIXSwJW0FDX0RFRlVOKFtfTFRfUFJP R19FQ0hPX0JBQ0tTTEFTSF0pXSkKKyttNF9pZm5kZWYoW19MVF9QUk9HX0Y3N10sCQlbQUNfREVG VU4oW19MVF9QUk9HX0Y3N10pXSkKKyttNF9pZm5kZWYoW19MVF9QUk9HX0ZDXSwJCVtBQ19ERUZV TihbX0xUX1BST0dfRkNdKV0pCisrbTRfaWZuZGVmKFtfTFRfUFJPR19DWFhdLAkJW0FDX0RFRlVO KFtfTFRfUFJPR19DWFhdKV0pCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0 b3B0aW9ucy5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0b3B0aW9ucy5tNAorLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdG9wdGlvbnMubTQJMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0b3B0aW9ucy5t NAkyMDExLTAyLTA4IDIyOjM5OjQ0LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSwzNjkgQEAK KysjIEhlbHBlciBmdW5jdGlvbnMgZm9yIG9wdGlvbiBoYW5kbGluZy4gICAgICAgICAgICAgICAg ICAgIC0qLSBBdXRvY29uZiAtKi0KKysjCisrIyAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwg MjAwNywgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyAgIEluYy4KKysj ICAgV3JpdHRlbiBieSBHYXJ5IFYuIFZhdWdoYW4sIDIwMDQKKysjCisrIyBUaGlzIGZpbGUgaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcworKyMgdW5s aW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3 aXRob3V0CisrIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNl cnZlZC4KKysKKysjIHNlcmlhbCA3IGx0b3B0aW9ucy5tNAorKworKyMgVGhpcyBpcyB0byBoZWxw IGFjbG9jYWwgZmluZCB0aGVzZSBtYWNyb3MsIGFzIGl0IGNhbid0IHNlZSBtNF9kZWZpbmUuCisr QUNfREVGVU4oW0xUT1BUSU9OU19WRVJTSU9OXSwgW200X2lmKFsxXSldKQorKworKworKyMgX0xU X01BTkdMRV9PUFRJT04oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUpCisrIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW19MVF9NQU5HTEVfT1BU SU9OXSwKKytbW19MVF9PUFRJT05fXW00X2JwYXRzdWJzdCgkMV9fJDIsIFtbXmEtekEtWjAtOV9d XSwgW19dKV0pCisrCisrCisrIyBfTFRfU0VUX09QVElPTihNQUNSTy1OQU1FLCBPUFRJT04tTkFN RSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU2V0IG9w dGlvbiBPUFRJT04tTkFNRSBmb3IgbWFjcm8gTUFDUk8tTkFNRSwgYW5kIGlmIHRoZXJlIGlzIGEK KysjIG1hdGNoaW5nIGhhbmRsZXIgZGVmaW5lZCwgZGlzcGF0Y2ggdG8gaXQuICBPdGhlciBPUFRJ T04tTkFNRXMgYXJlCisrIyBzYXZlZCBhcyBhIGZsYWcuCisrbTRfZGVmaW5lKFtfTFRfU0VUX09Q VElPTl0sCisrW200X2RlZmluZShfTFRfTUFOR0xFX09QVElPTihbJDFdLCBbJDJdKSlkbmwKKytt NF9pZmRlZihfTFRfTUFOR0xFX0RFRlVOKFskMV0sIFskMl0pLAorKyAgICAgICAgX0xUX01BTkdM RV9ERUZVTihbJDFdLCBbJDJdKSwKKysgICAgW200X3dhcm5pbmcoW1Vua25vd24gJDEgb3B0aW9u IGAkMiddKV0pW11kbmwKKytdKQorKworKworKyMgX0xUX0lGX09QVElPTihNQUNSTy1OQU1FLCBP UFRJT04tTkFNRSwgSUYtU0VULCBbSUYtTk9ULVNFVF0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEV4ZWN1dGUgSUYt U0VUIGlmIE9QVElPTiBpcyBzZXQsIElGLU5PVC1TRVQgb3RoZXJ3aXNlLgorK200X2RlZmluZShb X0xUX0lGX09QVElPTl0sCisrW200X2lmZGVmKF9MVF9NQU5HTEVfT1BUSU9OKFskMV0sIFskMl0p LCBbJDNdLCBbJDRdKV0pCisrCisrCisrIyBfTFRfVU5MRVNTX09QVElPTlMoTUFDUk8tTkFNRSwg T1BUSU9OLUxJU1QsIElGLU5PVC1TRVQpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFeGVjdXRlIElGLU5PVC1TRVQgdW5sZXNz IGFsbCBvcHRpb25zIGluIE9QVElPTi1MSVNUIGZvciBNQUNSTy1OQU1FCisrIyBhcmUgc2V0Lgor K200X2RlZmluZShbX0xUX1VOTEVTU19PUFRJT05TXSwKKytbbTRfZm9yZWFjaChbX0xUX09wdGlv bl0sIG00X3NwbGl0KG00X25vcm1hbGl6ZShbJDJdKSksCisrCSAgICBbbTRfaWZkZWYoX0xUX01B TkdMRV9PUFRJT04oWyQxXSwgX0xUX09wdGlvbiksCisrCQkgICAgICBbbTRfZGVmaW5lKFskMF9m b3VuZF0pXSldKVtdZG5sCisrbTRfaWZkZWYoWyQwX2ZvdW5kXSwgW200X3VuZGVmaW5lKFskMF9m b3VuZF0pXSwgWyQzCisrXSlbXWRubAorK10pCisrCisrCisrIyBfTFRfU0VUX09QVElPTlMoTUFD Uk8tTkFNRSwgT1BUSU9OLUxJU1QpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBPUFRJT04tTElTVCBpcyBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIExp YnRvb2wgb3B0aW9ucyBhc3NvY2lhdGVkCisrIyB3aXRoIE1BQ1JPLU5BTUUuICBJZiBhbnkgT1BU SU9OIGhhcyBhIG1hdGNoaW5nIGhhbmRsZXIgZGVjbGFyZWQgd2l0aAorKyMgTFRfT1BUSU9OX0RF RklORSwgZGlzcGF0Y2ggdG8gdGhhdCBtYWNybzsgb3RoZXJ3aXNlIGNvbXBsYWluIGFib3V0Cisr IyB0aGUgdW5rbm93biBvcHRpb24gYW5kIGV4aXQuCisrbTRfZGVmdW4oW19MVF9TRVRfT1BUSU9O U10sCisrWyMgU2V0IG9wdGlvbnMKKyttNF9mb3JlYWNoKFtfTFRfT3B0aW9uXSwgbTRfc3BsaXQo bTRfbm9ybWFsaXplKFskMl0pKSwKKysgICAgW19MVF9TRVRfT1BUSU9OKFskMV0sIF9MVF9PcHRp b24pXSkKKysKKyttNF9pZihbJDFdLFtMVF9JTklUXSxbCisrICBkbmwKKysgIGRubCBTaW1wbHkg c2V0IHNvbWUgZGVmYXVsdCB2YWx1ZXMgKGkuZSBvZmYpIGlmIGJvb2xlYW4gb3B0aW9ucyB3ZXJl IG5vdAorKyAgZG5sIHNwZWNpZmllZDoKKysgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0s IFtkbG9wZW5dLCBbZW5hYmxlX2Rsb3Blbj1ubworKyAgXSkKKysgIF9MVF9VTkxFU1NfT1BUSU9O UyhbTFRfSU5JVF0sIFt3aW4zMi1kbGxdLCBbZW5hYmxlX3dpbjMyX2RsbD1ubworKyAgXSkKKysg IGRubAorKyAgZG5sIElmIG5vIHJlZmVyZW5jZSB3YXMgbWFkZSB0byB2YXJpb3VzIHBhaXJzIG9m IG9wcG9zaW5nIG9wdGlvbnMsIHRoZW4KKysgIGRubCB3ZSBydW4gdGhlIGRlZmF1bHQgbW9kZSBo YW5kbGVyIGZvciB0aGUgcGFpci4gIEZvciBleGFtcGxlLCBpZiBuZWl0aGVyCisrICBkbmwgYHNo YXJlZCcgbm9yIGBkaXNhYmxlLXNoYXJlZCcgd2FzIHBhc3NlZCwgd2UgZW5hYmxlIGJ1aWxkaW5n IG9mIHNoYXJlZAorKyAgZG5sIGFyY2hpdmVzIGJ5IGRlZmF1bHQ6CisrICBfTFRfVU5MRVNTX09Q VElPTlMoW0xUX0lOSVRdLCBbc2hhcmVkIGRpc2FibGUtc2hhcmVkXSwgW19MVF9FTkFCTEVfU0hB UkVEXSkKKysgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFtzdGF0aWMgZGlzYWJsZS1z dGF0aWNdLCBbX0xUX0VOQUJMRV9TVEFUSUNdKQorKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9J TklUXSwgW3BpYy1vbmx5IG5vLXBpY10sIFtfTFRfV0lUSF9QSUNdKQorKyAgX0xUX1VOTEVTU19P UFRJT05TKFtMVF9JTklUXSwgW2Zhc3QtaW5zdGFsbCBkaXNhYmxlLWZhc3QtaW5zdGFsbF0sCisr ICAJCSAgIFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTF0pCisrICBdKQorK10pIyBfTFRfU0VUX09Q VElPTlMKKysKKysKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysj IyBNYWNyb3MgdG8gaGFuZGxlIExUX0lOSVQgb3B0aW9ucy4gIyMKKysjIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysKKysjIF9MVF9NQU5HTEVfREVGVU4oTUFDUk8tTkFN RSwgT1BUSU9OLU5BTUUpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorK200X2RlZmluZShbX0xUX01BTkdMRV9ERUZVTl0sCisrW1tfTFRfT1BUSU9OX0RFRlVO X11tNF9icGF0c3Vic3QobTRfdG91cHBlcihbJDFfXyQyXSksIFtbXkEtWjAtOV9dXSwgW19dKV0p CisrCisrCisrIyBMVF9PUFRJT05fREVGSU5FKE1BQ1JPLU5BTUUsIE9QVElPTi1OQU1FLCBDT0RF KQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytt NF9kZWZpbmUoW0xUX09QVElPTl9ERUZJTkVdLAorK1ttNF9kZWZpbmUoX0xUX01BTkdMRV9ERUZV TihbJDFdLCBbJDJdKSwgWyQzXSlbXWRubAorK10pIyBMVF9PUFRJT05fREVGSU5FCisrCisrCisr IyBkbG9wZW4KKysjIC0tLS0tLQorK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGxvcGVu XSwgW2VuYWJsZV9kbG9wZW49eWVzCisrXSkKKysKKytBVV9ERUZVTihbQUNfTElCVE9PTF9ETE9Q RU5dLAorK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFtkbG9wZW5dKQorK0FDX0RJQUdOT1NF KFtvYnNvbGV0ZV0sCisrWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBf TFRfU0VUX09QVElPTiB3aGVuIHlvdQorK3B1dCB0aGUgYGRsb3Blbicgb3B0aW9uIGludG8gTFRf SU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQorK10pCisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3 YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9ETE9QRU5dLCBb XSkKKysKKysKKysjIHdpbjMyLWRsbAorKyMgLS0tLS0tLS0tCisrIyBEZWNsYXJlIHBhY2thZ2Ug c3VwcG9ydCBmb3IgYnVpbGRpbmcgd2luMzIgZGxsJ3MuCisrTFRfT1BUSU9OX0RFRklORShbTFRf SU5JVF0sIFt3aW4zMi1kbGxdLAorK1tlbmFibGVfd2luMzJfZGxsPXllcworKworK2Nhc2UgJGhv c3QgaW4KKysqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotY2VnY2Mq KQorKyAgQUNfQ0hFQ0tfVE9PTChBUywgYXMsIGZhbHNlKQorKyAgQUNfQ0hFQ0tfVE9PTChETExU T09MLCBkbGx0b29sLCBmYWxzZSkKKysgIEFDX0NIRUNLX1RPT0woT0JKRFVNUCwgb2JqZHVtcCwg ZmFsc2UpCisrICA7OworK2VzYWMKKysKKyt0ZXN0IC16ICIkQVMiICYmIEFTPWFzCisrX0xUX0RF Q0woW10sIFtBU10sICAgICAgWzFdLCBbQXNzZW1ibGVyIHByb2dyYW1dKWRubAorKworK3Rlc3Qg LXogIiRETExUT09MIiAmJiBETExUT09MPWRsbHRvb2wKKytfTFRfREVDTChbXSwgW0RMTFRPT0xd LCBbMV0sIFtETEwgY3JlYXRpb24gcHJvZ3JhbV0pZG5sCisrCisrdGVzdCAteiAiJE9CSkRVTVAi ICYmIE9CSkRVTVA9b2JqZHVtcAorK19MVF9ERUNMKFtdLCBbT0JKRFVNUF0sIFsxXSwgW09iamVj dCBkdW1wZXIgcHJvZ3JhbV0pZG5sCisrXSkjIHdpbjMyLWRsbAorKworK0FVX0RFRlVOKFtBQ19M SUJUT09MX1dJTjMyX0RMTF0sCisrW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwK KytfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFt3aW4zMi1kbGxdKQorK0FDX0RJQUdOT1NFKFtv YnNvbGV0ZV0sCisrWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRf U0VUX09QVElPTiB3aGVuIHlvdQorK3B1dCB0aGUgYHdpbjMyLWRsbCcgb3B0aW9uIGludG8gTFRf SU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQorK10pCisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3 YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9XSU4zMl9ETExd LCBbXSkKKysKKysKKysjIF9MVF9FTkFCTEVfU0hBUkVEKFtERUZBVUxUXSkKKysjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIGltcGxlbWVudCB0aGUgLS1lbmFibGUtc2hhcmVkIGZs YWcsIGFuZCBzdXBwb3J0cyB0aGUgYHNoYXJlZCcgYW5kCisrIyBgZGlzYWJsZS1zaGFyZWQnIExU X0lOSVQgb3B0aW9ucy4KKysjIERFRkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJZiBv bWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVzJy4KKyttNF9kZWZpbmUoW19MVF9FTkFCTEVfU0hB UkVEXSwKKytbbTRfZGVmaW5lKFtfTFRfRU5BQkxFX1NIQVJFRF9ERUZBVUxUXSwgW200X2lmKCQx LCBubywgbm8sIHllcyldKWRubAorK0FDX0FSR19FTkFCTEUoW3NoYXJlZF0sCisrICAgIFtBU19I RUxQX1NUUklORyhbLS1lbmFibGUtc2hhcmVkQDw6QD1QS0dTQDo+QF0sCisrCVtidWlsZCBzaGFy ZWQgbGlicmFyaWVzIEA8OkBkZWZhdWx0PV1fTFRfRU5BQkxFX1NIQVJFRF9ERUZBVUxUW0A6PkBd KV0sCisrICAgIFtwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2YWwgaW4K KysgICAgeWVzKSBlbmFibGVfc2hhcmVkPXllcyA7OworKyAgICBubykgZW5hYmxlX3NoYXJlZD1u byA7OworKyAgICAqKQorKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KKysgICAgICAjIExvb2sgYXQg dGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRv cnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRP UiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworKwlJRlM9IiRsdF9zYXZlX2lm cyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKysJICBlbmFibGVfc2hhcmVkPXll cworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICA7 OworKyAgICBlc2FjXSwKKysgICAgW2VuYWJsZV9zaGFyZWQ9XV9MVF9FTkFCTEVfU0hBUkVEX0RF RkFVTFQpCisrCisrICAgIF9MVF9ERUNMKFtidWlsZF9saWJ0b29sX2xpYnNdLCBbZW5hYmxlX3No YXJlZF0sIFswXSwKKysJW1doZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNd KQorK10pIyBfTFRfRU5BQkxFX1NIQVJFRAorKworK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRd LCBbc2hhcmVkXSwgW19MVF9FTkFCTEVfU0hBUkVEKFt5ZXNdKV0pCisrTFRfT1BUSU9OX0RFRklO RShbTFRfSU5JVF0sIFtkaXNhYmxlLXNoYXJlZF0sIFtfTFRfRU5BQkxFX1NIQVJFRChbbm9dKV0p CisrCisrIyBPbGQgbmFtZXM6CisrQUNfREVGVU4oW0FDX0VOQUJMRV9TSEFSRURdLAorK1tfTFRf U0VUX09QVElPTihbTFRfSU5JVF0sIG00X2lmKFskMV0sIFtub10sIFtkaXNhYmxlLV0pW3NoYXJl ZF0pCisrXSkKKysKKytBQ19ERUZVTihbQUNfRElTQUJMRV9TSEFSRURdLAorK1tfTFRfU0VUX09Q VElPTihbTFRfSU5JVF0sIFtkaXNhYmxlLXNoYXJlZF0pCisrXSkKKysKKytBVV9ERUZVTihbQU1f RU5BQkxFX1NIQVJFRF0sIFtBQ19FTkFCTEVfU0hBUkVEKCRAKV0pCisrQVVfREVGVU4oW0FNX0RJ U0FCTEVfU0hBUkVEXSwgW0FDX0RJU0FCTEVfU0hBUkVEKCRAKV0pCisrCisrZG5sIGFjbG9jYWwt MS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQU1fRU5BQkxFX1NI QVJFRF0sIFtdKQorK2RubCBBQ19ERUZVTihbQU1fRElTQUJMRV9TSEFSRURdLCBbXSkKKysKKysK KysKKysjIF9MVF9FTkFCTEVfU1RBVElDKFtERUZBVUxUXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysjIGltcGxlbWVudCB0aGUgLS1lbmFibGUtc3RhdGljIGZsYWcsIGFuZCBz dXBwb3J0IHRoZSBgc3RhdGljJyBhbmQKKysjIGBkaXNhYmxlLXN0YXRpYycgTFRfSU5JVCBvcHRp b25zLgorKyMgREVGQVVMVCBpcyBlaXRoZXIgYHllcycgb3IgYG5vJy4gIElmIG9taXR0ZWQsIGl0 IGRlZmF1bHRzIHRvIGB5ZXMnLgorK200X2RlZmluZShbX0xUX0VOQUJMRV9TVEFUSUNdLAorK1tt NF9kZWZpbmUoW19MVF9FTkFCTEVfU1RBVElDX0RFRkFVTFRdLCBbbTRfaWYoJDEsIG5vLCBubywg eWVzKV0pZG5sCisrQUNfQVJHX0VOQUJMRShbc3RhdGljXSwKKysgICAgW0FTX0hFTFBfU1RSSU5H KFstLWVuYWJsZS1zdGF0aWNAPDpAPVBLR1NAOj5AXSwKKysJW2J1aWxkIHN0YXRpYyBsaWJyYXJp ZXMgQDw6QGRlZmF1bHQ9XV9MVF9FTkFCTEVfU1RBVElDX0RFRkFVTFRbQDo+QF0pXSwKKysgICAg W3A9JHtQQUNLQUdFLWRlZmF1bHR9CisrICAgIGNhc2UgJGVuYWJsZXZhbCBpbgorKyAgICB5ZXMp IGVuYWJsZV9zdGF0aWM9eWVzIDs7CisrICAgIG5vKSBlbmFibGVfc3RhdGljPW5vIDs7CisrICAg ICopCisrICAgICBlbmFibGVfc3RhdGljPW5vCisrICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVu dCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgorKyAgICAg IGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgorKyAgICAg IGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KKysJSUZTPSIkbHRfc2F2ZV9pZnMiCisrCWlmIHRl c3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCisrCSAgZW5hYmxlX3N0YXRpYz15ZXMKKysJZmkKKysg ICAgICBkb25lCisrICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgICAgOzsKKysgICAgZXNh Y10sCisrICAgIFtlbmFibGVfc3RhdGljPV1fTFRfRU5BQkxFX1NUQVRJQ19ERUZBVUxUKQorKwor KyAgICBfTFRfREVDTChbYnVpbGRfb2xkX2xpYnNdLCBbZW5hYmxlX3N0YXRpY10sIFswXSwKKysJ W1doZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXNdKQorK10pIyBfTFRfRU5B QkxFX1NUQVRJQworKworK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbc3RhdGljXSwgW19M VF9FTkFCTEVfU1RBVElDKFt5ZXNdKV0pCisrTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtk aXNhYmxlLXN0YXRpY10sIFtfTFRfRU5BQkxFX1NUQVRJQyhbbm9dKV0pCisrCisrIyBPbGQgbmFt ZXM6CisrQUNfREVGVU4oW0FDX0VOQUJMRV9TVEFUSUNdLAorK1tfTFRfU0VUX09QVElPTihbTFRf SU5JVF0sIG00X2lmKFskMV0sIFtub10sIFtkaXNhYmxlLV0pW3N0YXRpY10pCisrXSkKKysKKytB Q19ERUZVTihbQUNfRElTQUJMRV9TVEFUSUNdLAorK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0s IFtkaXNhYmxlLXN0YXRpY10pCisrXSkKKysKKytBVV9ERUZVTihbQU1fRU5BQkxFX1NUQVRJQ10s IFtBQ19FTkFCTEVfU1RBVElDKCRAKV0pCisrQVVfREVGVU4oW0FNX0RJU0FCTEVfU1RBVElDXSwg W0FDX0RJU0FCTEVfU1RBVElDKCRAKV0pCisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBj b21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQU1fRU5BQkxFX1NUQVRJQ10sIFtdKQorK2Ru bCBBQ19ERUZVTihbQU1fRElTQUJMRV9TVEFUSUNdLCBbXSkKKysKKysKKysKKysjIF9MVF9FTkFC TEVfRkFTVF9JTlNUQUxMKFtERUZBVUxUXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysjIGltcGxlbWVudCB0aGUgLS1lbmFibGUtZmFzdC1pbnN0YWxsIGZsYWcsIGFu ZCBzdXBwb3J0IHRoZSBgZmFzdC1pbnN0YWxsJworKyMgYW5kIGBkaXNhYmxlLWZhc3QtaW5zdGFs bCcgTFRfSU5JVCBvcHRpb25zLgorKyMgREVGQVVMVCBpcyBlaXRoZXIgYHllcycgb3IgYG5vJy4g IElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIGB5ZXMnLgorK200X2RlZmluZShbX0xUX0VOQUJM RV9GQVNUX0lOU1RBTExdLAorK1ttNF9kZWZpbmUoW19MVF9FTkFCTEVfRkFTVF9JTlNUQUxMX0RF RkFVTFRdLCBbbTRfaWYoJDEsIG5vLCBubywgeWVzKV0pZG5sCisrQUNfQVJHX0VOQUJMRShbZmFz dC1pbnN0YWxsXSwKKysgICAgW0FTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1mYXN0LWluc3RhbGxA PDpAPVBLR1NAOj5AXSwKKysgICAgW29wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbiBAPDpA ZGVmYXVsdD1dX0xUX0VOQUJMRV9GQVNUX0lOU1RBTExfREVGQVVMVFtAOj5AXSldLAorKyAgICBb cD0ke1BBQ0tBR0UtZGVmYXVsdH0KKysgICAgY2FzZSAkZW5hYmxldmFsIGluCisrICAgIHllcykg ZW5hYmxlX2Zhc3RfaW5zdGFsbD15ZXMgOzsKKysgICAgbm8pIGVuYWJsZV9mYXN0X2luc3RhbGw9 bm8gOzsKKysgICAgKikKKysgICAgICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCisrICAgICAgIyBM b29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBz ZXBhcmF0b3JzLgorKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9T RVBBUkFUT1IsIgorKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KKysJSUZTPSIkbHRf c2F2ZV9pZnMiCisrCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCisrCSAgZW5hYmxlX2Zh c3RfaW5zdGFsbD15ZXMKKysJZmkKKysgICAgICBkb25lCisrICAgICAgSUZTPSIkbHRfc2F2ZV9p ZnMiCisrICAgICAgOzsKKysgICAgZXNhY10sCisrICAgIFtlbmFibGVfZmFzdF9pbnN0YWxsPV1f TFRfRU5BQkxFX0ZBU1RfSU5TVEFMTF9ERUZBVUxUKQorKworK19MVF9ERUNMKFtmYXN0X2luc3Rh bGxdLCBbZW5hYmxlX2Zhc3RfaW5zdGFsbF0sIFswXSwKKysJIFtXaGV0aGVyIG9yIG5vdCB0byBv cHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb25dKWRubAorK10pIyBfTFRfRU5BQkxFX0ZBU1Rf SU5TVEFMTAorKworK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZmFzdC1pbnN0YWxsXSwg W19MVF9FTkFCTEVfRkFTVF9JTlNUQUxMKFt5ZXNdKV0pCisrTFRfT1BUSU9OX0RFRklORShbTFRf SU5JVF0sIFtkaXNhYmxlLWZhc3QtaW5zdGFsbF0sIFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTChb bm9dKV0pCisrCisrIyBPbGQgbmFtZXM6CisrQVVfREVGVU4oW0FDX0VOQUJMRV9GQVNUX0lOU1RB TExdLAorK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIG00X2lmKFskMV0sIFtub10sIFtkaXNh YmxlLV0pW2Zhc3QtaW5zdGFsbF0pCisrQUNfRElBR05PU0UoW29ic29sZXRlXSwKKytbJDA6IFJl bW92ZSB0aGlzIHdhcm5pbmcgYW5kIHRoZSBjYWxsIHRvIF9MVF9TRVRfT1BUSU9OIHdoZW4geW91 IHB1dAorK3RoZSBgZmFzdC1pbnN0YWxsJyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFy YW1ldGVyLl0pCisrXSkKKysKKytBVV9ERUZVTihbQUNfRElTQUJMRV9GQVNUX0lOU1RBTExdLAor K1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFtkaXNhYmxlLWZhc3QtaW5zdGFsbF0pCisrQUNf RElBR05PU0UoW29ic29sZXRlXSwKKytbJDA6IFJlbW92ZSB0aGlzIHdhcm5pbmcgYW5kIHRoZSBj YWxsIHRvIF9MVF9TRVRfT1BUSU9OIHdoZW4geW91IHB1dAorK3RoZSBgZGlzYWJsZS1mYXN0LWlu c3RhbGwnIG9wdGlvbiBpbnRvIExUX0lOSVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkKKytdKQorKwor K2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4o W0FDX0VOQUJMRV9GQVNUX0lOU1RBTExdLCBbXSkKKytkbmwgQUNfREVGVU4oW0FNX0RJU0FCTEVf RkFTVF9JTlNUQUxMXSwgW10pCisrCisrCisrIyBfTFRfV0lUSF9QSUMoW01PREVdKQorKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysjIGltcGxlbWVudCB0aGUgLS13aXRoLXBpYyBmbGFnLCBhbmQg c3VwcG9ydCB0aGUgYHBpYy1vbmx5JyBhbmQgYG5vLXBpYycKKysjIExUX0lOSVQgb3B0aW9ucy4K KysjIE1PREUgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0 cyB0byBgYm90aCcuCisrbTRfZGVmaW5lKFtfTFRfV0lUSF9QSUNdLAorK1tBQ19BUkdfV0lUSChb cGljXSwKKysgICAgW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtcGljXSwKKysJW3RyeSB0byB1c2Ug b25seSBQSUMvbm9uLVBJQyBvYmplY3RzIEA8OkBkZWZhdWx0PXVzZSBib3RoQDo+QF0pXSwKKysg ICAgW3BpY19tb2RlPSIkd2l0aHZhbCJdLAorKyAgICBbcGljX21vZGU9ZGVmYXVsdF0pCisrCisr dGVzdCAteiAiJHBpY19tb2RlIiAmJiBwaWNfbW9kZT1tNF9kZWZhdWx0KFskMV0sIFtkZWZhdWx0 XSkKKysKKytfTFRfREVDTChbXSwgW3BpY19tb2RlXSwgWzBdLCBbV2hhdCB0eXBlIG9mIG9iamVj dHMgdG8gYnVpbGRdKWRubAorK10pIyBfTFRfV0lUSF9QSUMKKysKKytMVF9PUFRJT05fREVGSU5F KFtMVF9JTklUXSwgW3BpYy1vbmx5XSwgW19MVF9XSVRIX1BJQyhbeWVzXSldKQorK0xUX09QVElP Tl9ERUZJTkUoW0xUX0lOSVRdLCBbbm8tcGljXSwgW19MVF9XSVRIX1BJQyhbbm9dKV0pCisrCisr IyBPbGQgbmFtZToKKytBVV9ERUZVTihbQUNfTElCVE9PTF9QSUNNT0RFXSwKKytbX0xUX1NFVF9P UFRJT04oW0xUX0lOSVRdLCBbcGljLW9ubHldKQorK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCisr WyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3 aGVuIHlvdQorK3B1dCB0aGUgYHBpYy1vbmx5JyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3Qg cGFyYW1ldGVyLl0pCisrXSkKKysKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGli aWxpdHk6CisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX1BJQ01PREVdLCBbXSkKKysKKysjIyAt LS0tLS0tLS0tLS0tLS0tLSAjIworKyMjIExURExfSU5JVCBPcHRpb25zICMjCisrIyMgLS0tLS0t LS0tLS0tLS0tLS0gIyMKKysKKyttNF9kZWZpbmUoW19MVERMX01PREVdLCBbXSkKKytMVF9PUFRJ T05fREVGSU5FKFtMVERMX0lOSVRdLCBbbm9ucmVjdXJzaXZlXSwKKysJCSBbbTRfZGVmaW5lKFtf TFRETF9NT0RFXSwgW25vbnJlY3Vyc2l2ZV0pXSkKKytMVF9PUFRJT05fREVGSU5FKFtMVERMX0lO SVRdLCBbcmVjdXJzaXZlXSwKKysJCSBbbTRfZGVmaW5lKFtfTFRETF9NT0RFXSwgW3JlY3Vyc2l2 ZV0pXSkKKytMVF9PUFRJT05fREVGSU5FKFtMVERMX0lOSVRdLCBbc3VicHJvamVjdF0sCisrCQkg W200X2RlZmluZShbX0xURExfTU9ERV0sIFtzdWJwcm9qZWN0XSldKQorKworK200X2RlZmluZShb X0xURExfVFlQRV0sIFtdKQorK0xUX09QVElPTl9ERUZJTkUoW0xURExfSU5JVF0sIFtpbnN0YWxs YWJsZV0sCisrCQkgW200X2RlZmluZShbX0xURExfVFlQRV0sIFtpbnN0YWxsYWJsZV0pXSkKKytM VF9PUFRJT05fREVGSU5FKFtMVERMX0lOSVRdLCBbY29udmVuaWVuY2VdLAorKwkJIFttNF9kZWZp bmUoW19MVERMX1RZUEVdLCBbY29udmVuaWVuY2VdKV0pCitkaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svY29uZmlnL2x0c3VnYXIubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdHN1Z2Fy Lm00CistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0c3VnYXIubTQJMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0 c3VnYXIubTQJMjAxMS0wMi0wOCAyMjozOTo0NC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEs MTIzIEBACisrIyBsdHN1Z2FyLm00IC0tIGxpYnRvb2wgbTQgYmFzZSBsYXllci4gICAgICAgICAg ICAgICAgICAgICAgICAgLSotQXV0b2NvbmYtKi0KKysjCisrIyBDb3B5cmlnaHQgKEMpIDIwMDQs IDIwMDUsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBXcml0 dGVuIGJ5IEdhcnkgVi4gVmF1Z2hhbiwgMjAwNAorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCisrIyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQK KysjIG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgor KworKyMgc2VyaWFsIDYgbHRzdWdhci5tNAorKworKyMgVGhpcyBpcyB0byBoZWxwIGFjbG9jYWwg ZmluZCB0aGVzZSBtYWNyb3MsIGFzIGl0IGNhbid0IHNlZSBtNF9kZWZpbmUuCisrQUNfREVGVU4o W0xUU1VHQVJfVkVSU0lPTl0sIFttNF9pZihbMC4xXSldKQorKworKworKyMgbHRfam9pbihTRVAs IEFSRzEsIFtBUkcyLi4uXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBQ cm9kdWNlIEFSRzFTRVBBUkcyLi4uU0VQQVJHbiwgb21pdHRpbmcgW10gYXJndW1lbnRzIGFuZCB0 aGVpcgorKyMgYXNzb2NpYXRlZCBzZXBhcmF0b3IuCisrIyBOZWVkZWQgdW50aWwgd2UgY2FuIHJl bHkgb24gbTRfam9pbiBmcm9tIEF1dG9jb25mIDIuNjIsIHNpbmNlIGFsbCBlYXJsaWVyCisrIyB2 ZXJzaW9ucyBpbiBtNHN1Z2FyIGhhZCBidWdzLgorK200X2RlZmluZShbbHRfam9pbl0sCisrW200 X2lmKFskI10sIFsxXSwgW10sCisrICAgICAgIFskI10sIFsyXSwgW1skMl1dLAorKyAgICAgICBb bTRfaWYoWyQyXSwgW10sIFtdLCBbWyQyXV9dKSQwKFskMV0sIG00X3NoaWZ0KG00X3NoaWZ0KCRA KSkpXSldKQorK200X2RlZmluZShbX2x0X2pvaW5dLAorK1ttNF9pZihbJCMkMl0sIFsyXSwgW10s CisrICAgICAgIFttNF9pZihbJDJdLCBbXSwgW10sIFtbJDEkMl1dKSQwKFskMV0sIG00X3NoaWZ0 KG00X3NoaWZ0KCRAKSkpXSldKQorKworKworKyMgbHRfY2FyKExJU1QpCisrIyBsdF9jZHIoTElT VCkKKysjIC0tLS0tLS0tLS0tLQorKyMgTWFuaXB1bGF0ZSBtNCBsaXN0cy4KKysjIFRoZXNlIG1h Y3JvcyBhcmUgbmVjZXNzYXJ5IGFzIGxvbmcgYXMgd2lsbCBzdGlsbCBuZWVkIHRvIHN1cHBvcnQK KysjIEF1dG9jb25mLTIuNTkgd2hpY2ggcXVvdGVzIGRpZmZlcmVudGx5LgorK200X2RlZmluZShb bHRfY2FyXSwgW1skMV1dKQorK200X2RlZmluZShbbHRfY2RyXSwKKytbbTRfaWYoWyQjXSwgMCwg W200X2ZhdGFsKFskMDogY2Fubm90IGJlIGNhbGxlZCB3aXRob3V0IGFyZ3VtZW50c10pXSwKKysg ICAgICAgWyQjXSwgMSwgW10sCisrICAgICAgIFttNF9kcXVvdGUobTRfc2hpZnQoJEApKV0pXSkK KyttNF9kZWZpbmUoW2x0X3VucXVvdGVdLCAkMSkKKysKKysKKysjIGx0X2FwcGVuZChNQUNSTy1O QU1FLCBTVFJJTkcsIFtTRVBBUkFUT1JdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBSZWRlZmluZSBNQUNSTy1OQU1FIHRvIGhvbGQgaXRzIGZvcm1l ciBjb250ZW50IHBsdXMgYFNFUEFSQVRPUidgU1RSSU5HJy4KKysjIE5vdGUgdGhhdCBuZWl0aGVy IFNFUEFSQVRPUiBub3IgU1RSSU5HIGFyZSBleHBhbmRlZDsgdGhleSBhcmUgYXBwZW5kZWQKKysj IHRvIE1BQ1JPLU5BTUUgYXMgaXMgKGxlYXZpbmcgdGhlIGV4cGFuc2lvbiBmb3Igd2hlbiBNQUNS Ty1OQU1FIGlzIGludm9rZWQpLgorKyMgTm8gU0VQQVJBVE9SIGlzIG91dHB1dCBpZiBNQUNSTy1O QU1FIHdhcyBwcmV2aW91c2x5IHVuZGVmaW5lZCAoZGlmZmVyZW50CisrIyB0aGFuIGRlZmluZWQg YW5kIGVtcHR5KS4KKysjCisrIyBUaGlzIG1hY3JvIGlzIG5lZWRlZCB1bnRpbCB3ZSBjYW4gcmVs eSBvbiBBdXRvY29uZiAyLjYyLCBzaW5jZSBlYXJsaWVyCisrIyB2ZXJzaW9ucyBvZiBtNHN1Z2Fy IG1pc3Rha2VubHkgZXhwYW5kZWQgU0VQQVJBVE9SIGJ1dCBub3QgU1RSSU5HLgorK200X2RlZmlu ZShbbHRfYXBwZW5kXSwKKytbbTRfZGVmaW5lKFskMV0sCisrCSAgIG00X2lmZGVmKFskMV0sIFtt NF9kZWZuKFskMV0pWyQzXV0pWyQyXSldKQorKworKworKworKyMgbHRfY29tYmluZShTRVAsIFBS RUZJWC1MSVNULCBJTkZJWCwgU1VGRklYMSwgW1NVRkZJWDIuLi5dKQorKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUHJvZHVj ZSBhIFNFUCBkZWxpbWl0ZWQgbGlzdCBvZiBhbGwgcGFpcmVkIGNvbWJpbmF0aW9ucyBvZiBlbGVt ZW50cyBvZgorKyMgUFJFRklYLUxJU1Qgd2l0aCBTVUZGSVgxIHRocm91Z2ggU1VGRklYbi4gIEVh Y2ggZWxlbWVudCBvZiB0aGUgbGlzdAorKyMgaGFzIHRoZSBmb3JtIFBSRUZJWG1JTkZJWFNVRkZJ WG4uCisrIyBOZWVkZWQgdW50aWwgd2UgY2FuIHJlbHkgb24gbTRfY29tYmluZSBhZGRlZCBpbiBB dXRvY29uZiAyLjYyLgorK200X2RlZmluZShbbHRfY29tYmluZV0sCisrW200X2lmKG00X2V2YWwo WyQjID4gM10pLCBbMV0sCisrICAgICAgIFttNF9wdXNoZGVmKFtfTHRfc2VwXSwgW200X2RlZmlu ZShbX0x0X3NlcF0sIG00X2RlZm4oW2x0X2Nhcl0pKV0pXV1kbmwKKytbW200X2ZvcmVhY2goW19M dF9wcmVmaXhdLCBbJDJdLAorKwkgICAgIFttNF9mb3JlYWNoKFtfTHRfc3VmZml4XSwKKysJCV1t NF9kcXVvdGUobTRfZHF1b3RlKG00X3NoaWZ0KG00X3NoaWZ0KG00X3NoaWZ0KCRAKSkpKSlbLAor KwlbX0x0X3NlcChbJDFdKVtdbTRfZGVmbihbX0x0X3ByZWZpeF0pWyQzXW00X2RlZm4oW19MdF9z dWZmaXhdKV0pXSldKV0pCisrCisrCisrIyBsdF9pZl9hcHBlbmRfdW5pcShNQUNSTy1OQU1FLCBW QVJOQU1FLCBbU0VQQVJBVE9SXSwgW1VOSVFdLCBbTk9ULVVOSVFdKQorKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysjIElmZiBNQUNSTy1OQU1FIGRvZXMgbm90IHlldCBjb250YWluIFZBUk5BTUUsIHRoZW4g YXBwZW5kIGl0IChkZWxpbWl0ZWQKKysjIGJ5IFNFUEFSQVRPUiBpZiBzdXBwbGllZCkgYW5kIGV4 cGFuZCBVTklRLCBlbHNlIE5PVC1VTklRLgorK200X2RlZmluZShbbHRfaWZfYXBwZW5kX3VuaXFd LAorK1ttNF9pZmRlZihbJDFdLAorKwkgIFttNF9pZihtNF9pbmRleChbJDNdbTRfZGVmbihbJDFd KVskM10sIFskMyQyJDNdKSwgWy0xXSwKKysJCSBbbHRfYXBwZW5kKFskMV0sIFskMl0sIFskM10p JDRdLAorKwkJIFskNV0pXSwKKysJICBbbHRfYXBwZW5kKFskMV0sIFskMl0sIFskM10pJDRdKV0p CisrCisrCisrIyBsdF9kaWN0X2FkZChESUNULCBLRVksIFZBTFVFKQorKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW2x0X2RpY3RfYWRkXSwKKytbbTRfZGVmaW5l KFskMSgkMildLCBbJDNdKV0pCisrCisrCisrIyBsdF9kaWN0X2FkZF9zdWJrZXkoRElDVCwgS0VZ LCBTVUJLRVksIFZBTFVFKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyttNF9kZWZpbmUoW2x0X2RpY3RfYWRkX3N1YmtleV0sCisrW200X2RlZmluZShb JDEoJDI6JDMpXSwgWyQ0XSldKQorKworKworKyMgbHRfZGljdF9mZXRjaChESUNULCBLRVksIFtT VUJLRVldKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZmlu ZShbbHRfZGljdF9mZXRjaF0sCisrW200X2lmdmFsKFskM10sCisrCW00X2lmZGVmKFskMSgkMjok MyldLCBbbTRfZGVmbihbJDEoJDI6JDMpXSldKSwKKysgICAgbTRfaWZkZWYoWyQxKCQyKV0sIFtt NF9kZWZuKFskMSgkMildKV0pKV0pCisrCisrCisrIyBsdF9pZl9kaWN0X2ZldGNoKERJQ1QsIEtF WSwgW1NVQktFWV0sIFZBTFVFLCBJRi1UUlVFLCBbSUYtRkFMU0VdKQorKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytt NF9kZWZpbmUoW2x0X2lmX2RpY3RfZmV0Y2hdLAorK1ttNF9pZihsdF9kaWN0X2ZldGNoKFskMV0s IFskMl0sIFskM10pLCBbJDRdLAorKwlbJDVdLAorKyAgICBbJDZdKV0pCisrCisrCisrIyBsdF9k aWN0X2ZpbHRlcihESUNULCBbU1VCS0VZXSwgVkFMVUUsIFtTRVBBUkFUT1JdLCBLRVksIFsuLi5d KQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW2x0X2RpY3RfZmlsdGVyXSwKKytbbTRfaWYoWyQ1XSwg W10sIFtdLAorKyAgW2x0X2pvaW4obTRfcXVvdGUobTRfZGVmYXVsdChbJDRdLCBbWywgXV0pKSwK KysgICAgICAgICAgIGx0X3VucXVvdGUobTRfc3BsaXQobTRfbm9ybWFsaXplKG00X2ZvcmVhY2go X0x0X2tleSwgbHRfY2FyKFttNF9zaGlmdG4oNCwgJEApXSksCisrCQkgICAgICBbbHRfaWZfZGlj dF9mZXRjaChbJDFdLCBfTHRfa2V5LCBbJDJdLCBbJDNdLCBbX0x0X2tleSBdKV0pKSkpKV0pW11k bmwKKytdKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdHZlcnNpb24ubTQg c29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdHZlcnNpb24ubTQKKy0tLSBzb2NpLTMuMC4wXzQt cGFjay9jb25maWcvbHR2ZXJzaW9uLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdHZlcnNpb24ubTQJMjAxMS0wMi0w OCAyMjozOTo0NC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsMjMgQEAKKysjIGx0dmVyc2lv bi5tNCAtLSB2ZXJzaW9uIG51bWJlcnMJCQktKi0gQXV0b2NvbmYgLSotCisrIworKyMgICBDb3B5 cmlnaHQgKEMpIDIwMDQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyAgIFdyaXR0 ZW4gYnkgU2NvdHQgSmFtZXMgUmVtbmFudCwgMjAwNAorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVl IHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCisrIyB1bmxpbWl0 ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhv dXQKKysjIG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVk LgorKworKyMgR2VuZXJhdGVkIGZyb20gbHR2ZXJzaW9uLmluLgorKworKyMgc2VyaWFsIDMxNzUg bHR2ZXJzaW9uLm00CisrIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgTGlidG9vbAorKworK200 X2RlZmluZShbTFRfUEFDS0FHRV9WRVJTSU9OXSwgWzIuMi4xMF0pCisrbTRfZGVmaW5lKFtMVF9Q QUNLQUdFX1JFVklTSU9OXSwgWzEuMzE3NV0pCisrCisrQUNfREVGVU4oW0xUVkVSU0lPTl9WRVJT SU9OXSwKKytbbWFjcm9fdmVyc2lvbj0nMi4yLjEwJworK21hY3JvX3JldmlzaW9uPScxLjMxNzUn CisrX0xUX0RFQ0woLCBtYWNyb192ZXJzaW9uLCAwLCBbV2hpY2ggcmVsZWFzZSBvZiBsaWJ0b29s Lm00IHdhcyB1c2VkP10pCisrX0xUX0RFQ0woLCBtYWNyb19yZXZpc2lvbiwgMCkKKytdKQorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9taXNzaW5nIHNvY2ktMy4wLjBfdHJlcDMw MC9jb25maWcvbWlzc2luZworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9taXNzaW5nCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAw L2NvbmZpZy9taXNzaW5nCTIwMTEtMDItMDggMjI6Mzk6NTUuMDAwMDAwMDAwICswMTAwCitAQCAt MCwwICsxLDM3NiBAQAorKyMhIC9iaW4vc2gKKysjIENvbW1vbiBzdHViIGZvciBhIGZldyBtaXNz aW5nIEdOVSBwcm9ncmFtcyB3aGlsZSBpbnN0YWxsaW5nLgorKworK3NjcmlwdHZlcnNpb249MjAw OS0wNC0yOC4yMTsgIyBVVEMKKysKKysjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OSwg MjAwMCwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwKKysjIDIwMDgsIDIwMDkgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBPcmlnaW5hbGx5IGJ5IEZyYW4sY29pcyBQaW5h cmQgPHBpbmFyZEBpcm8udW1vbnRyZWFsLmNhPiwgMTk5Ni4KKysKKysjIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cisr IyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQorKyMgYW55IGxhdGVyIHZlcnNpb24uCisrCisr IyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKwor KyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UsIGlmIHlvdQorKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0g dGhhdCBjb250YWlucyBhCisrIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0 b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgorKyMgdGhlIHNhbWUgZGlzdHJpYnV0aW9u IHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorKworK2lm IHRlc3QgJCMgLWVxIDA7IHRoZW4KKysgIGVjaG8gMT4mMiAiVHJ5IFxgJDAgLS1oZWxwJyBmb3Ig bW9yZSBpbmZvcm1hdGlvbiIKKysgIGV4aXQgMQorK2ZpCisrCisrcnVuPToKKytzZWRfb3V0cHV0 PSdzLy4qIC0tb3V0cHV0WyA9XVwoW14gXSpcKS4qL1wxL3AnCisrc2VkX21pbnVzbz0ncy8uKiAt byBcKFteIF0qXCkuKi9cMS9wJworKworKyMgSW4gdGhlIGNhc2VzIHdoZXJlIHRoaXMgbWF0dGVy cywgYG1pc3NpbmcnIGlzIGJlaW5nIHJ1biBpbiB0aGUKKysjIHNyY2RpciBhbHJlYWR5LgorK2lm IHRlc3QgLWYgY29uZmlndXJlLmFjOyB0aGVuCisrICBjb25maWd1cmVfYWM9Y29uZmlndXJlLmFj CisrZWxzZQorKyAgY29uZmlndXJlX2FjPWNvbmZpZ3VyZS5pbgorK2ZpCisrCisrbXNnPSJtaXNz aW5nIG9uIHlvdXIgc3lzdGVtIgorKworK2Nhc2UgJDEgaW4KKystLXJ1bikKKysgICMgVHJ5IHRv IHJ1biByZXF1ZXN0ZWQgcHJvZ3JhbSwgYW5kIGp1c3QgZXhpdCBpZiBpdCBzdWNjZWVkcy4KKysg IHJ1bj0KKysgIHNoaWZ0CisrICAiJEAiICYmIGV4aXQgMAorKyAgIyBFeGl0IGNvZGUgNjMgbWVh bnMgdmVyc2lvbiBtaXNtYXRjaC4gIFRoaXMgb2Z0ZW4gaGFwcGVucworKyAgIyB3aGVuIHRoZSB1 c2VyIHRyeSB0byB1c2UgYW4gYW5jaWVudCB2ZXJzaW9uIG9mIGEgdG9vbCBvbgorKyAgIyBhIGZp bGUgdGhhdCByZXF1aXJlcyBhIG1pbmltdW0gdmVyc2lvbi4gIEluIHRoaXMgY2FzZSB3ZQorKyAg IyB3ZSBzaG91bGQgcHJvY2VlZCBoYXMgaWYgdGhlIHByb2dyYW0gaGFkIGJlZW4gYWJzZW50LCBv cgorKyAgIyBpZiAtLXJ1biBoYWRuJ3QgYmVlbiBwYXNzZWQuCisrICBpZiB0ZXN0ICQ/ID0gNjM7 IHRoZW4KKysgICAgcnVuPToKKysgICAgbXNnPSJwcm9iYWJseSB0b28gb2xkIgorKyAgZmkKKysg IDs7CisrCisrICAtaHwtLWh8LS1oZXwtLWhlbHwtLWhlbHApCisrICAgIGVjaG8gIlwKKyskMCBb T1BUSU9OXS4uLiBQUk9HUkFNIFtBUkdVTUVOVF0uLi4KKysKKytIYW5kbGUgXGBQUk9HUkFNIFtB UkdVTUVOVF0uLi4nIGZvciB3aGVuIFBST0dSQU0gaXMgbWlzc2luZywgb3IgcmV0dXJuIGFuCisr ZXJyb3Igc3RhdHVzIGlmIHRoZXJlIGlzIG5vIGtub3duIGhhbmRsaW5nIGZvciBQUk9HUkFNLgor KworK09wdGlvbnM6CisrICAtaCwgLS1oZWxwICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4 aXQKKysgIC12LCAtLXZlcnNpb24gICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhp dAorKyAgLS1ydW4gICAgICAgICAgIHRyeSB0byBydW4gdGhlIGdpdmVuIGNvbW1hbmQsIGFuZCBl bXVsYXRlIGl0IGlmIGl0IGZhaWxzCisrCisrU3VwcG9ydGVkIFBST0dSQU0gdmFsdWVzOgorKyAg YWNsb2NhbCAgICAgIHRvdWNoIGZpbGUgXGBhY2xvY2FsLm00JworKyAgYXV0b2NvbmYgICAgIHRv dWNoIGZpbGUgXGBjb25maWd1cmUnCisrICBhdXRvaGVhZGVyICAgdG91Y2ggZmlsZSBcYGNvbmZp Zy5oLmluJworKyAgYXV0b200dGUgICAgIHRvdWNoIHRoZSBvdXRwdXQgZmlsZSwgb3IgY3JlYXRl IGEgc3R1YiBvbmUKKysgIGF1dG9tYWtlICAgICB0b3VjaCBhbGwgXGBNYWtlZmlsZS5pbicgZmls ZXMKKysgIGJpc29uICAgICAgICBjcmVhdGUgXGB5LnRhYi5bY2hdJywgaWYgcG9zc2libGUsIGZy b20gZXhpc3RpbmcgLltjaF0KKysgIGZsZXggICAgICAgICBjcmVhdGUgXGBsZXgueXkuYycsIGlm IHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5jCisrICBoZWxwMm1hbiAgICAgdG91Y2ggdGhlIG91 dHB1dCBmaWxlCisrICBsZXggICAgICAgICAgY3JlYXRlIFxgbGV4Lnl5LmMnLCBpZiBwb3NzaWJs ZSwgZnJvbSBleGlzdGluZyAuYworKyAgbWFrZWluZm8gICAgIHRvdWNoIHRoZSBvdXRwdXQgZmls ZQorKyAgdGFyICAgICAgICAgIHRyeSB0YXIsIGdudXRhciwgZ3RhciwgdGhlbiB0YXIgd2l0aG91 dCBub24tcG9ydGFibGUgZmxhZ3MKKysgIHlhY2MgICAgICAgICBjcmVhdGUgXGB5LnRhYi5bY2hd JywgaWYgcG9zc2libGUsIGZyb20gZXhpc3RpbmcgLltjaF0KKysKKytWZXJzaW9uIHN1ZmZpeGVz IHRvIFBST0dSQU0gYXMgd2VsbCBhcyB0aGUgcHJlZml4ZXMgXGBnbnUtJywgXGBnbnUnLCBhbmQK KytcYGcnIGFyZSBpZ25vcmVkIHdoZW4gY2hlY2tpbmcgdGhlIG5hbWUuCisrCisrU2VuZCBidWcg cmVwb3J0cyB0byA8YnVnLWF1dG9tYWtlQGdudS5vcmc+LiIKKysgICAgZXhpdCAkPworKyAgICA7 OworKworKyAgLXZ8LS12fC0tdmV8LS12ZXJ8LS12ZXJzfC0tdmVyc2l8LS12ZXJzaW98LS12ZXJz aW9uKQorKyAgICBlY2hvICJtaXNzaW5nICRzY3JpcHR2ZXJzaW9uIChHTlUgQXV0b21ha2UpIgor KyAgICBleGl0ICQ/CisrICAgIDs7CisrCisrICAtKikKKysgICAgZWNobyAxPiYyICIkMDogVW5r bm93biBcYCQxJyBvcHRpb24iCisrICAgIGVjaG8gMT4mMiAiVHJ5IFxgJDAgLS1oZWxwJyBmb3Ig bW9yZSBpbmZvcm1hdGlvbiIKKysgICAgZXhpdCAxCisrICAgIDs7CisrCisrZXNhYworKworKyMg bm9ybWFsaXplIHByb2dyYW0gbmFtZSB0byBjaGVjayBmb3IuCisrcHJvZ3JhbT1gZWNobyAiJDEi IHwgc2VkICcKKysgIHMvXmdudS0vLzsgdAorKyAgcy9eZ251Ly87IHQKKysgIHMvXmcvLzsgdCdg CisrCisrIyBOb3cgZXhpdCBpZiB3ZSBoYXZlIGl0LCBidXQgaXQgZmFpbGVkLiAgQWxzbyBleGl0 IG5vdyBpZiB3ZQorKyMgZG9uJ3QgaGF2ZSBpdCBhbmQgLS12ZXJzaW9uIHdhcyBwYXNzZWQgKG1v c3QgbGlrZWx5IHRvIGRldGVjdAorKyMgdGhlIHByb2dyYW0pLiAgVGhpcyBpcyBhYm91dCBub24t R05VIHByb2dyYW1zLCBzbyB1c2UgJDEgbm90CisrIyAkcHJvZ3JhbS4KKytjYXNlICQxIGluCisr ICBsZXgqfHlhY2MqKQorKyAgICAjIE5vdCBHTlUgcHJvZ3JhbXMsIHRoZXkgZG9uJ3QgaGF2ZSAt LXZlcnNpb24uCisrICAgIDs7CisrCisrICB0YXIqKQorKyAgICBpZiB0ZXN0IC1uICIkcnVuIjsg dGhlbgorKyAgICAgICBlY2hvIDE+JjIgIkVSUk9SOiBcYHRhcicgcmVxdWlyZXMgLS1ydW4iCisr ICAgICAgIGV4aXQgMQorKyAgICBlbGlmIHRlc3QgIngkMiIgPSAieC0tdmVyc2lvbiIgfHwgdGVz dCAieCQyIiA9ICJ4LS1oZWxwIjsgdGhlbgorKyAgICAgICBleGl0IDEKKysgICAgZmkKKysgICAg OzsKKysKKysgICopCisrICAgIGlmIHRlc3QgLXogIiRydW4iICYmICgkMSAtLXZlcnNpb24pID4g L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAgICAgIyBXZSBoYXZlIGl0LCBidXQgaXQgZmFpbGVk LgorKyAgICAgICBleGl0IDEKKysgICAgZWxpZiB0ZXN0ICJ4JDIiID0gIngtLXZlcnNpb24iIHx8 IHRlc3QgIngkMiIgPSAieC0taGVscCI7IHRoZW4KKysgICAgICAgIyBDb3VsZCBub3QgcnVuIC0t dmVyc2lvbiBvciAtLWhlbHAuICBUaGlzIGlzIHByb2JhYmx5IHNvbWVvbmUKKysgICAgICAgIyBy dW5uaW5nIGAkVE9PTCAtLXZlcnNpb24nIG9yIGAkVE9PTCAtLWhlbHAnIHRvIGNoZWNrIHdoZXRo ZXIKKysgICAgICAgIyAkVE9PTCBleGlzdHMgYW5kIG5vdCBrbm93aW5nICRUT09MIHVzZXMgbWlz c2luZy4KKysgICAgICAgZXhpdCAxCisrICAgIGZpCisrICAgIDs7CisrZXNhYworKworKyMgSWYg aXQgZG9lcyBub3QgZXhpc3QsIG9yIGZhaWxzIHRvIHJ1biAocG9zc2libHkgYW4gb3V0ZGF0ZWQg dmVyc2lvbiksCisrIyB0cnkgdG8gZW11bGF0ZSBpdC4KKytjYXNlICRwcm9ncmFtIGluCisrICBh Y2xvY2FsKikKKysgICAgZWNobyAxPiYyICJcCisrV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlv dSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisrICAgICAgICAgeW91IG1vZGlmaWVkIFxgYWNpbmNs dWRlLm00JyBvciBcYCR7Y29uZmlndXJlX2FjfScuICBZb3UgbWlnaHQgd2FudAorKyAgICAgICAg IHRvIGluc3RhbGwgdGhlIFxgQXV0b21ha2UnIGFuZCBcYFBlcmwnIHBhY2thZ2VzLiAgR3JhYiB0 aGVtIGZyb20KKysgICAgICAgICBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisrICAgIHRvdWNoIGFj bG9jYWwubTQKKysgICAgOzsKKysKKysgIGF1dG9jb25mKikKKysgICAgZWNobyAxPiYyICJcCisr V0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisrICAg ICAgICAgeW91IG1vZGlmaWVkIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3YW50IHRv IGluc3RhbGwgdGhlCisrICAgICAgICAgXGBBdXRvY29uZicgYW5kIFxgR05VIG00JyBwYWNrYWdl cy4gIEdyYWIgdGhlbSBmcm9tIGFueSBHTlUKKysgICAgICAgICBhcmNoaXZlIHNpdGUuIgorKyAg ICB0b3VjaCBjb25maWd1cmUKKysgICAgOzsKKysKKysgIGF1dG9oZWFkZXIqKQorKyAgICBlY2hv IDE+JjIgIlwKKytXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQg aXQgaWYKKysgICAgICAgICB5b3UgbW9kaWZpZWQgXGBhY2NvbmZpZy5oJyBvciBcYCR7Y29uZmln dXJlX2FjfScuICBZb3UgbWlnaHQgd2FudAorKyAgICAgICAgIHRvIGluc3RhbGwgdGhlIFxgQXV0 b2NvbmYnIGFuZCBcYEdOVSBtNCcgcGFja2FnZXMuICBHcmFiIHRoZW0KKysgICAgICAgICBmcm9t IGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKysgICAgZmlsZXM9YHNlZCAtbiAncy9eWyBdKkFbQ01d X0NPTkZJR19IRUFERVIoXChbXildKlwpKS4qL1wxL3AnICR7Y29uZmlndXJlX2FjfWAKKysgICAg dGVzdCAteiAiJGZpbGVzIiAmJiBmaWxlcz0iY29uZmlnLmgiCisrICAgIHRvdWNoX2ZpbGVzPQor KyAgICBmb3IgZiBpbiAkZmlsZXM7IGRvCisrICAgICAgY2FzZSAkZiBpbgorKyAgICAgICo6Kikg dG91Y2hfZmlsZXM9IiR0b3VjaF9maWxlcyAiYGVjaG8gIiRmIiB8CisrCQkJCSAgICAgICBzZWQg LWUgJ3MvXlteOl0qOi8vJyAtZSAncy86LiovLydgOzsKKysgICAgICAqKSB0b3VjaF9maWxlcz0i JHRvdWNoX2ZpbGVzICRmLmluIjs7CisrICAgICAgZXNhYworKyAgICBkb25lCisrICAgIHRvdWNo ICR0b3VjaF9maWxlcworKyAgICA7OworKworKyAgYXV0b21ha2UqKQorKyAgICBlY2hvIDE+JjIg IlwKKytXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYK KysgICAgICAgICB5b3UgbW9kaWZpZWQgXGBNYWtlZmlsZS5hbScsIFxgYWNpbmNsdWRlLm00JyBv ciBcYCR7Y29uZmlndXJlX2FjfScuCisrICAgICAgICAgWW91IG1pZ2h0IHdhbnQgdG8gaW5zdGFs bCB0aGUgXGBBdXRvbWFrZScgYW5kIFxgUGVybCcgcGFja2FnZXMuCisrICAgICAgICAgR3JhYiB0 aGVtIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgorKyAgICBmaW5kIC4gLXR5cGUgZiAtbmFt ZSBNYWtlZmlsZS5hbSAtcHJpbnQgfAorKwkgICBzZWQgJ3MvXC5hbSQvLmluLycgfAorKwkgICB3 aGlsZSByZWFkIGY7IGRvIHRvdWNoICIkZiI7IGRvbmUKKysgICAgOzsKKysKKysgIGF1dG9tNHRl KikKKysgICAgZWNobyAxPiYyICJcCisrV0FSTklORzogXGAkMScgaXMgbmVlZGVkLCBidXQgaXMg JG1zZy4KKysgICAgICAgICBZb3UgbWlnaHQgaGF2ZSBtb2RpZmllZCBzb21lIGZpbGVzIHdpdGhv dXQgaGF2aW5nIHRoZQorKyAgICAgICAgIHByb3BlciB0b29scyBmb3IgZnVydGhlciBoYW5kbGlu ZyB0aGVtLgorKyAgICAgICAgIFlvdSBjYW4gZ2V0IFxgJDEnIGFzIHBhcnQgb2YgXGBBdXRvY29u ZicgZnJvbSBhbnkgR05VCisrICAgICAgICAgYXJjaGl2ZSBzaXRlLiIKKysKKysgICAgZmlsZT1g ZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX291dHB1dCJgCisrICAgIHRlc3QgLXogIiRmaWxlIiAm JiBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfbWludXNvImAKKysgICAgaWYgdGVzdCAt ZiAiJGZpbGUiOyB0aGVuCisrCXRvdWNoICRmaWxlCisrICAgIGVsc2UKKysJdGVzdCAteiAiJGZp bGUiIHx8IGV4ZWMgPiRmaWxlCisrCWVjaG8gIiMhIC9iaW4vc2giCisrCWVjaG8gIiMgQ3JlYXRl ZCBieSBHTlUgQXV0b21ha2UgbWlzc2luZyBhcyBhIHJlcGxhY2VtZW50IG9mIgorKwllY2hvICIj ICAkICRAIgorKwllY2hvICJleGl0IDAiCisrCWNobW9kICt4ICRmaWxlCisrCWV4aXQgMQorKyAg ICBmaQorKyAgICA7OworKworKyAgYmlzb24qfHlhY2MqKQorKyAgICBlY2hvIDE+JjIgIlwKKytX QVJOSU5HOiBcYCQxJyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKysgICAgICAg ICB5b3UgbW9kaWZpZWQgYSBcYC55JyBmaWxlLiAgWW91IG1heSBuZWVkIHRoZSBcYEJpc29uJyBw YWNrYWdlCisrICAgICAgICAgaW4gb3JkZXIgZm9yIHRob3NlIG1vZGlmaWNhdGlvbnMgdG8gdGFr ZSBlZmZlY3QuICBZb3UgY2FuIGdldAorKyAgICAgICAgIFxgQmlzb24nIGZyb20gYW55IEdOVSBh cmNoaXZlIHNpdGUuIgorKyAgICBybSAtZiB5LnRhYi5jIHkudGFiLmgKKysgICAgaWYgdGVzdCAk IyAtbmUgMTsgdGhlbgorKyAgICAgICAgZXZhbCBMQVNUQVJHPSJcJHskI30iCisrCWNhc2UgJExB U1RBUkcgaW4KKysJKi55KQorKwkgICAgU1JDRklMRT1gZWNobyAiJExBU1RBUkciIHwgc2VkICdz L3kkL2MvJ2AKKysJICAgIGlmIHRlc3QgLWYgIiRTUkNGSUxFIjsgdGhlbgorKwkgICAgICAgICBj cCAiJFNSQ0ZJTEUiIHkudGFiLmMKKysJICAgIGZpCisrCSAgICBTUkNGSUxFPWBlY2hvICIkTEFT VEFSRyIgfCBzZWQgJ3MveSQvaC8nYAorKwkgICAgaWYgdGVzdCAtZiAiJFNSQ0ZJTEUiOyB0aGVu CisrCSAgICAgICAgIGNwICIkU1JDRklMRSIgeS50YWIuaAorKwkgICAgZmkKKysJICA7OworKwll c2FjCisrICAgIGZpCisrICAgIGlmIHRlc3QgISAtZiB5LnRhYi5oOyB0aGVuCisrCWVjaG8gPnku dGFiLmgKKysgICAgZmkKKysgICAgaWYgdGVzdCAhIC1mIHkudGFiLmM7IHRoZW4KKysJZWNobyAn bWFpbigpIHsgcmV0dXJuIDA7IH0nID55LnRhYi5jCisrICAgIGZpCisrICAgIDs7CisrCisrICBs ZXgqfGZsZXgqKQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAg WW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKysgICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC5s JyBmaWxlLiAgWW91IG1heSBuZWVkIHRoZSBcYEZsZXgnIHBhY2thZ2UKKysgICAgICAgICBpbiBv cmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlIGVmZmVjdC4gIFlvdSBjYW4gZ2V0 CisrICAgICAgICAgXGBGbGV4JyBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKysgICAgcm0g LWYgbGV4Lnl5LmMKKysgICAgaWYgdGVzdCAkIyAtbmUgMTsgdGhlbgorKyAgICAgICAgZXZhbCBM QVNUQVJHPSJcJHskI30iCisrCWNhc2UgJExBU1RBUkcgaW4KKysJKi5sKQorKwkgICAgU1JDRklM RT1gZWNobyAiJExBU1RBUkciIHwgc2VkICdzL2wkL2MvJ2AKKysJICAgIGlmIHRlc3QgLWYgIiRT UkNGSUxFIjsgdGhlbgorKwkgICAgICAgICBjcCAiJFNSQ0ZJTEUiIGxleC55eS5jCisrCSAgICBm aQorKwkgIDs7CisrCWVzYWMKKysgICAgZmkKKysgICAgaWYgdGVzdCAhIC1mIGxleC55eS5jOyB0 aGVuCisrCWVjaG8gJ21haW4oKSB7IHJldHVybiAwOyB9JyA+bGV4Lnl5LmMKKysgICAgZmkKKysg ICAgOzsKKysKKysgIGhlbHAybWFuKikKKysgICAgZWNobyAxPiYyICJcCisrV0FSTklORzogXGAk MScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisrCSB5b3UgbW9kaWZpZWQg YSBkZXBlbmRlbmN5IG9mIGEgbWFudWFsIHBhZ2UuICBZb3UgbWF5IG5lZWQgdGhlCisrCSBcYEhl bHAybWFuJyBwYWNrYWdlIGluIG9yZGVyIGZvciB0aG9zZSBtb2RpZmljYXRpb25zIHRvIHRha2UK KysJIGVmZmVjdC4gIFlvdSBjYW4gZ2V0IFxgSGVscDJtYW4nIGZyb20gYW55IEdOVSBhcmNoaXZl IHNpdGUuIgorKworKyAgICBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfb3V0cHV0ImAK KysgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9t aW51c28iYAorKyAgICBpZiB0ZXN0IC1mICIkZmlsZSI7IHRoZW4KKysJdG91Y2ggJGZpbGUKKysg ICAgZWxzZQorKwl0ZXN0IC16ICIkZmlsZSIgfHwgZXhlYyA+JGZpbGUKKysJZWNobyAiLmFiIGhl bHAybWFuIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoaXMgcGFnZSIKKysJZXhpdCAkPworKyAg ICBmaQorKyAgICA7OworKworKyAgbWFrZWluZm8qKQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJO SU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKysgICAgICAg ICB5b3UgbW9kaWZpZWQgYSBcYC50ZXhpJyBvciBcYC50ZXhpbmZvJyBmaWxlLCBvciBhbnkgb3Ro ZXIgZmlsZQorKyAgICAgICAgIGluZGlyZWN0bHkgYWZmZWN0aW5nIHRoZSBhc3BlY3Qgb2YgdGhl IG1hbnVhbC4gIFRoZSBzcHVyaW91cworKyAgICAgICAgIGNhbGwgbWlnaHQgYWxzbyBiZSB0aGUg Y29uc2VxdWVuY2Ugb2YgdXNpbmcgYSBidWdneSBcYG1ha2UnIChBSVgsCisrICAgICAgICAgRFUs IElSSVgpLiAgWW91IG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCB0aGUgXGBUZXhpbmZvJyBwYWNrYWdl IG9yCisrICAgICAgICAgdGhlIFxgR05VIG1ha2UnIHBhY2thZ2UuICBHcmFiIGVpdGhlciBmcm9t IGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKysgICAgIyBUaGUgZmlsZSB0byB0b3VjaCBpcyB0aGF0 IHNwZWNpZmllZCB3aXRoIC1vIC4uLgorKyAgICBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRz ZWRfb3V0cHV0ImAKKysgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiQqIiB8IHNl ZCAtbiAiJHNlZF9taW51c28iYAorKyAgICBpZiB0ZXN0IC16ICIkZmlsZSI7IHRoZW4KKysgICAg ICAjIC4uLiBvciBpdCBpcyB0aGUgb25lIHNwZWNpZmllZCB3aXRoIEBzZXRmaWxlbmFtZSAuLi4K KysgICAgICBpbmZpbGU9YGVjaG8gIiQqIiB8IHNlZCAncy8uKiBcKFteIF0qXCkgKiQvXDEvJ2AK KysgICAgICBmaWxlPWBzZWQgLW4gJworKwkvXkBzZXRmaWxlbmFtZS97CisrCSAgcy8uKiBcKFte IF0qXCkgKiQvXDEvCisrCSAgcAorKwkgIHEKKysJfScgJGluZmlsZWAKKysgICAgICAjIC4uLiBv ciBpdCBpcyBkZXJpdmVkIGZyb20gdGhlIHNvdXJjZSBuYW1lIChkaXIvZi50ZXhpIGJlY29tZXMg Zi5pbmZvKQorKyAgICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkaW5maWxlIiB8 IHNlZCAncywuKi8sLDtzLC5bXi5dKiQsLCdgLmluZm8KKysgICAgZmkKKysgICAgIyBJZiB0aGUg ZmlsZSBkb2VzIG5vdCBleGlzdCwgdGhlIHVzZXIgcmVhbGx5IG5lZWRzIG1ha2VpbmZvOworKyAg ICAjIGxldCdzIGZhaWwgd2l0aG91dCB0b3VjaGluZyBhbnl0aGluZy4KKysgICAgdGVzdCAtZiAk ZmlsZSB8fCBleGl0IDEKKysgICAgdG91Y2ggJGZpbGUKKysgICAgOzsKKysKKysgIHRhciopCisr ICAgIHNoaWZ0CisrCisrICAgICMgV2UgaGF2ZSBhbHJlYWR5IHRyaWVkIHRhciBpbiB0aGUgZ2Vu ZXJpYyBwYXJ0LgorKyAgICAjIExvb2sgZm9yIGdudXRhci9ndGFyIGJlZm9yZSBpbnZvY2F0aW9u IHRvIGF2b2lkIHVnbHkgZXJyb3IKKysgICAgIyBtZXNzYWdlcy4KKysgICAgaWYgKGdudXRhciAt LXZlcnNpb24gPiAvZGV2L251bGwgMj4mMSk7IHRoZW4KKysgICAgICAgZ251dGFyICIkQCIgJiYg ZXhpdCAwCisrICAgIGZpCisrICAgIGlmIChndGFyIC0tdmVyc2lvbiA+IC9kZXYvbnVsbCAyPiYx KTsgdGhlbgorKyAgICAgICBndGFyICIkQCIgJiYgZXhpdCAwCisrICAgIGZpCisrICAgIGZpcnN0 YXJnPSIkMSIKKysgICAgaWYgc2hpZnQ7IHRoZW4KKysJY2FzZSAkZmlyc3RhcmcgaW4KKysJKm8q KQorKwkgICAgZmlyc3Rhcmc9YGVjaG8gIiRmaXJzdGFyZyIgfCBzZWQgcy9vLy9gCisrCSAgICB0 YXIgIiRmaXJzdGFyZyIgIiRAIiAmJiBleGl0IDAKKysJICAgIDs7CisrCWVzYWMKKysJY2FzZSAk Zmlyc3RhcmcgaW4KKysJKmgqKQorKwkgICAgZmlyc3Rhcmc9YGVjaG8gIiRmaXJzdGFyZyIgfCBz ZWQgcy9oLy9gCisrCSAgICB0YXIgIiRmaXJzdGFyZyIgIiRAIiAmJiBleGl0IDAKKysJICAgIDs7 CisrCWVzYWMKKysgICAgZmkKKysKKysgICAgZWNobyAxPiYyICJcCisrV0FSTklORzogSSBjYW4n dCBzZWVtIHRvIGJlIGFibGUgdG8gcnVuIFxgdGFyJyB3aXRoIHRoZSBnaXZlbiBhcmd1bWVudHMu CisrICAgICAgICAgWW91IG1heSB3YW50IHRvIGluc3RhbGwgR05VIHRhciBvciBGcmVlIHBheHV0 aWxzLCBvciBjaGVjayB0aGUKKysgICAgICAgICBjb21tYW5kIGxpbmUgYXJndW1lbnRzLiIKKysg ICAgZXhpdCAxCisrICAgIDs7CisrCisrICAqKQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5H OiBcYCQxJyBpcyBuZWVkZWQsIGFuZCBpcyAkbXNnLgorKyAgICAgICAgIFlvdSBtaWdodCBoYXZl IG1vZGlmaWVkIHNvbWUgZmlsZXMgd2l0aG91dCBoYXZpbmcgdGhlCisrICAgICAgICAgcHJvcGVy IHRvb2xzIGZvciBmdXJ0aGVyIGhhbmRsaW5nIHRoZW0uICBDaGVjayB0aGUgXGBSRUFETUUnIGZp bGUsCisrICAgICAgICAgaXQgb2Z0ZW4gdGVsbHMgeW91IGFib3V0IHRoZSBuZWVkZWQgcHJlcmVx dWlzaXRlcyBmb3IgaW5zdGFsbGluZworKyAgICAgICAgIHRoaXMgcGFja2FnZS4gIFlvdSBtYXkg YWxzbyBwZWVrIGF0IGFueSBHTlUgYXJjaGl2ZSBzaXRlLCBpbiBjYXNlCisrICAgICAgICAgc29t ZSBvdGhlciBwYWNrYWdlIHdvdWxkIGNvbnRhaW4gdGhpcyBtaXNzaW5nIFxgJDEnIHByb2dyYW0u IgorKyAgICBleGl0IDEKKysgICAgOzsKKytlc2FjCisrCisrZXhpdCAwCisrCisrIyBMb2NhbCB2 YXJpYWJsZXM6CisrIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3Rh bXApCisrIyB0aW1lLXN0YW1wLXN0YXJ0OiAic2NyaXB0dmVyc2lvbj0iCisrIyB0aW1lLXN0YW1w LWZvcm1hdDogIiU6eS0lMDJtLSUwMmQuJTAySCIKKysjIHRpbWUtc3RhbXAtdGltZS16b25lOiAi VVRDIgorKyMgdGltZS1zdGFtcC1lbmQ6ICI7ICMgVVRDIgorKyMgRW5kOgorZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL2NvbmZpZ3VyZSBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlndXJlCist LS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlndXJlCTIwMTEtMDItMDkgMDA6MzA6MzIuNjAwOTE2 MzkyICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZ3VyZQkyMDExLTAyLTA4IDIy OjM5OjUyLjAwMDAwMDAwMCArMDEwMAorQEAgLTEsNzIgKzEsMjA0NzIgQEAKKy0jIS9iaW4vc2gK KysjISAvYmluL3NoCisrIyBHdWVzcyB2YWx1ZXMgZm9yIHN5c3RlbS1kZXBlbmRlbnQgdmFyaWFi bGVzIGFuZCBjcmVhdGUgTWFrZWZpbGVzLgorKyMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAy LjY2IGZvciBTT0NJIDMuMC4wLgorKyMKKysjIFJlcG9ydCBidWdzIHRvIDxtc29iY3pha0B1c2Vy cy5zb3VyY2Vmb3JnZS5uZXQ+LgorKyMKKysjIENvcHlyaWdodCAoQykgMjAwNC0yMDExIE1hY2ll aiBTb2JjemFrIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisrIworKyMKKysjIENv cHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OCwgMTk5OSwgMjAw MCwgMjAwMSwKKysjIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIw MDksIDIwMTAgRnJlZSBTb2Z0d2FyZQorKyMgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjCisrIyBU aGlzIGNvbmZpZ3VyZSBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJp YnV0ZSBhbmQgbW9kaWZ5IGl0LgorKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrIyMgTTRz aCBJbml0aWFsaXphdGlvbi4gIyMKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworIAorLWlm IFsgJCMgLWd0IDAgXQorKyMgQmUgbW9yZSBCb3VybmUgY29tcGF0aWJsZQorK0RVQUxDQVNFPTE7 IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKKytpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9O K3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOgorKyAgZW11bGF0 ZSBzaAorKyAgTlVMTENNRD06CisrICAjIFByZS00LjIgdmVyc2lvbnMgb2YgWnNoIGRvIHdvcmQg c3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKKysgICMgaXMgY29udHJhcnkgdG8gb3VyIHVz YWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCisrICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRA IicKKysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBgKHNldCAtbykgMj4v ZGV2L251bGxgIGluICMoCisrICAqcG9zaXgqKSA6CisrICAgIHNldCAtbyBwb3NpeCA7OyAjKAor KyAgKikgOgorKyAgICAgOzsKKytlc2FjCisrZmkKKysKKysKKythc19ubD0nCisrJworK2V4cG9y dCBhc19ubAorKyMgUHJpbnRpbmcgYSBsb25nIHN0cmluZyBjcmFzaGVzIFNvbGFyaXMgNyAvdXNy L2Jpbi9wcmludGYuCisrYXNfZWNobz0nXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXCcKKythc19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hv JGFzX2VjaG8KKythc19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2Vj aG8kYXNfZWNobworKyMgUHJlZmVyIGEga3NoIHNoZWxsIGJ1aWx0aW4gb3ZlciBhbiBleHRlcm5h bCBwcmludGYgcHJvZ3JhbSBvbiBTb2xhcmlzLAorKyMgYnV0IHdpdGhvdXQgd2FzdGluZyBmb3Jr cyBmb3IgYmFzaCBvciB6c2guCisraWYgdGVzdCAteiAiJEJBU0hfVkVSU0lPTiRaU0hfVkVSU0lP TiIgXAorKyAgICAmJiAodGVzdCAiWGBwcmludCAtciAtLSAkYXNfZWNob2AiID0gIlgkYXNfZWNo byIpIDI+L2Rldi9udWxsOyB0aGVuCisrICBhc19lY2hvPSdwcmludCAtciAtLScKKysgIGFzX2Vj aG9fbj0ncHJpbnQgLXJuIC0tJworK2VsaWYgKHRlc3QgIlhgcHJpbnRmICVzICRhc19lY2hvYCIg PSAiWCRhc19lY2hvIikgMj4vZGV2L251bGw7IHRoZW4KKysgIGFzX2VjaG89J3ByaW50ZiAlc1xu JworKyAgYXNfZWNob19uPSdwcmludGYgJXMnCisrZWxzZQorKyAgaWYgdGVzdCAiWGAoL3Vzci91 Y2IvZWNobyAtbiAtbiAkYXNfZWNobykgMj4vZGV2L251bGxgIiA9ICJYLW4gJGFzX2VjaG8iOyB0 aGVuCisrICAgIGFzX2VjaG9fYm9keT0nZXZhbCAvdXNyL3VjYi9lY2hvIC1uICIkMSRhc19ubCIn CisrICAgIGFzX2VjaG9fbj0nL3Vzci91Y2IvZWNobyAtbicKKysgIGVsc2UKKysgICAgYXNfZWNo b19ib2R5PSdldmFsIGV4cHIgIlgkMSIgOiAiWFxcKC4qXFwpIicKKysgICAgYXNfZWNob19uX2Jv ZHk9J2V2YWwKKysgICAgICBhcmc9JDE7CisrICAgICAgY2FzZSAkYXJnIGluICMoCisrICAgICAg KiIkYXNfbmwiKikKKysJZXhwciAiWCRhcmciIDogIlhcXCguKlxcKSRhc19ubCI7CisrCWFyZz1g ZXhwciAiWCRhcmciIDogIi4qJGFzX25sXFwoLipcXCkiYDs7CisrICAgICAgZXNhYzsKKysgICAg ICBleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpIiB8IHRyIC1kICIkYXNfbmwiCisrICAgICcKKysg ICAgZXhwb3J0IGFzX2VjaG9fbl9ib2R5CisrICAgIGFzX2VjaG9fbj0nc2ggLWMgJGFzX2VjaG9f bl9ib2R5IGFzX2VjaG8nCisrICBmaQorKyAgZXhwb3J0IGFzX2VjaG9fYm9keQorKyAgYXNfZWNo bz0nc2ggLWMgJGFzX2VjaG9fYm9keSBhc19lY2hvJworK2ZpCisrCisrIyBUaGUgdXNlciBpcyBh bHdheXMgcmlnaHQuCisraWYgdGVzdCAiJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAhPSBzZXQ7IHRo ZW4KKysgIFBBVEhfU0VQQVJBVE9SPToKKysgIChQQVRIPScvYmluOy9iaW4nOyBGUEFUSD0kUEFU SDsgc2ggLWMgOikgPi9kZXYvbnVsbCAyPiYxICYmIHsKKysgICAgKFBBVEg9Jy9iaW46L2Jpbic7 IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+JjEgfHwKKysgICAgICBQQVRIX1NF UEFSQVRPUj0nOycKKysgIH0KKytmaQorKworKworKyMgSUZTCisrIyBXZSBuZWVkIHNwYWNlLCB0 YWIgYW5kIG5ldyBsaW5lLCBpbiBwcmVjaXNlbHkgdGhhdCBvcmRlci4gIFF1b3RpbmcgaXMKKysj IHRoZXJlIHRvIHByZXZlbnQgZWRpdG9ycyBmcm9tIGNvbXBsYWluaW5nIGFib3V0IHNwYWNlLXRh Yi4KKysjIChJZiBfQVNfUEFUSF9XQUxLIHdlcmUgY2FsbGVkIHdpdGggSUZTIHVuc2V0LCBpdCB3 b3VsZCBkaXNhYmxlIHdvcmQKKysjIHNwbGl0dGluZyBieSBzZXR0aW5nIElGUyB0byBlbXB0eSB2 YWx1ZS4pCisrSUZTPSIgIiIJJGFzX25sIgorKworKyMgRmluZCB3aG8gd2UgYXJlLiAgTG9vayBp biB0aGUgcGF0aCBpZiB3ZSBjb250YWluIG5vIGRpcmVjdG9yeSBzZXBhcmF0b3IuCisrY2FzZSAk MCBpbiAjKCgKKysgICpbXFwvXSogKSBhc19teXNlbGY9JDAgOzsKKysgICopIGFzX3NhdmVfSUZT PSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysg IElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAg IHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFrCisr ICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgICAgOzsKKytlc2FjCisrIyBXZSBkaWQg bm90IGZpbmQgb3Vyc2VsdmVzLCBtb3N0IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBDT01N QU5EJworKyMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRo LgorK2lmIHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRoZW4KKysgIGFzX215c2VsZj0kMAorK2Zp CisraWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhlbgorKyAgJGFzX2VjaG8gIiRhc19teXNl bGY6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgZmls ZSBuYW1lIiA+JjIKKysgIGV4aXQgMQorK2ZpCisrCisrIyBVbnNldCB2YXJpYWJsZXMgdGhhdCB3 ZSBkbyBub3QgbmVlZCBhbmQgd2hpY2ggY2F1c2UgYnVncyAoZS5nLiBpbgorKyMgcHJlLTMuMCBV V0lOIGtzaCkuICBCdXQgZG8gbm90IGNhdXNlIGJ1Z3MgaW4gYmFzaCAyLjAxOyB0aGUgInx8IGV4 aXQgMSIKKysjIHN1cHByZXNzZXMgYW55ICJTZWdtZW50YXRpb24gZmF1bHQiIG1lc3NhZ2UgdGhl cmUuICAnKCgnIGNvdWxkCisrIyB0cmlnZ2VyIGEgYnVnIGluIHBka3NoIDUuMi4xNC4KKytmb3Ig YXNfdmFyIGluIEJBU0hfRU5WIEVOViBNQUlMIE1BSUxQQVRICisrZG8gZXZhbCB0ZXN0IHhcJHsk YXNfdmFyK3NldH0gPSB4c2V0IFwKKysgICYmICggKHVuc2V0ICRhc192YXIpIHx8IGV4aXQgMSkg Pi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0ICRhc192YXIgfHwgOgorK2RvbmUKKytQUzE9JyQgJwor K1BTMj0nPiAnCisrUFM0PScrICcKKysKKysjIE5MUyBudWlzYW5jZXMuCisrTENfQUxMPUMKKytl eHBvcnQgTENfQUxMCisrTEFOR1VBR0U9QworK2V4cG9ydCBMQU5HVUFHRQorKworKyMgQ0RQQVRI LgorKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKKysKKytp ZiB0ZXN0ICJ4JENPTkZJR19TSEVMTCIgPSB4OyB0aGVuCisrICBhc19ib3VybmVfY29tcGF0aWJs ZT0iaWYgdGVzdCAtbiBcIlwke1pTSF9WRVJTSU9OK3NldH1cIiAmJiAoZW11bGF0ZSBzaCkgPi9k ZXYvbnVsbCAyPiYxOyB0aGVuIDoKKysgIGVtdWxhdGUgc2gKKysgIE5VTExDTUQ9OgorKyAgIyBQ cmUtNC4yIHZlcnNpb25zIG9mIFpzaCBkbyB3b3JkIHNwbGl0dGluZyBvbiBcJHsxK1wiXCRAXCJ9 LCB3aGljaAorKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVh dHVyZS4KKysgIGFsaWFzIC1nICdcJHsxK1wiXCRAXCJ9Jz0nXCJcJEBcIicKKysgIHNldG9wdCBO T19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBcYChzZXQgLW8pIDI+L2Rldi9udWxsXGAgaW4g IygKKysgICpwb3NpeCopIDoKKysgICAgc2V0IC1vIHBvc2l4IDs7ICMoCisrICAqKSA6CisrICAg ICA7OworK2VzYWMKKytmaQorKyIKKysgIGFzX3JlcXVpcmVkPSJhc19mbl9yZXR1cm4gKCkgeyAo ZXhpdCBcJDEpOyB9CisrYXNfZm5fc3VjY2VzcyAoKSB7IGFzX2ZuX3JldHVybiAwOyB9CisrYXNf Zm5fZmFpbHVyZSAoKSB7IGFzX2ZuX3JldHVybiAxOyB9CisrYXNfZm5fcmV0X3N1Y2Nlc3MgKCkg eyByZXR1cm4gMDsgfQorK2FzX2ZuX3JldF9mYWlsdXJlICgpIHsgcmV0dXJuIDE7IH0KKysKKytl eGl0Y29kZT0wCisrYXNfZm5fc3VjY2VzcyB8fCB7IGV4aXRjb2RlPTE7IGVjaG8gYXNfZm5fc3Vj Y2VzcyBmYWlsZWQuOyB9CisrYXNfZm5fZmFpbHVyZSAmJiB7IGV4aXRjb2RlPTE7IGVjaG8gYXNf Zm5fZmFpbHVyZSBzdWNjZWVkZWQuOyB9CisrYXNfZm5fcmV0X3N1Y2Nlc3MgfHwgeyBleGl0Y29k ZT0xOyBlY2hvIGFzX2ZuX3JldF9zdWNjZXNzIGZhaWxlZC47IH0KKythc19mbl9yZXRfZmFpbHVy ZSAmJiB7IGV4aXRjb2RlPTE7IGVjaG8gYXNfZm5fcmV0X2ZhaWx1cmUgc3VjY2VlZGVkLjsgfQor K2lmICggc2V0IHg7IGFzX2ZuX3JldF9zdWNjZXNzIHkgJiYgdGVzdCB4ID0gXCJcJDFcIiApOyB0 aGVuIDoKKysKKytlbHNlCisrICBleGl0Y29kZT0xOyBlY2hvIHBvc2l0aW9uYWwgcGFyYW1ldGVy cyB3ZXJlIG5vdCBzYXZlZC4KKytmaQorK3Rlc3QgeFwkZXhpdGNvZGUgPSB4MCB8fCBleGl0IDEi CisrICBhc19zdWdnZXN0ZWQ9IiAgYXNfbGluZW5vXzE9Ijthc19zdWdnZXN0ZWQ9JGFzX3N1Z2dl c3RlZCRMSU5FTk87YXNfc3VnZ2VzdGVkPSRhc19zdWdnZXN0ZWQiIGFzX2xpbmVub18xYT1cJExJ TkVOTworKyAgYXNfbGluZW5vXzI9Ijthc19zdWdnZXN0ZWQ9JGFzX3N1Z2dlc3RlZCRMSU5FTk87 YXNfc3VnZ2VzdGVkPSRhc19zdWdnZXN0ZWQiIGFzX2xpbmVub18yYT1cJExJTkVOTworKyAgZXZh bCAndGVzdCBcInhcJGFzX2xpbmVub18xJ1wkYXNfcnVuJ1wiICE9IFwieFwkYXNfbGluZW5vXzIn XCRhc19ydW4nXCIgJiYKKysgIHRlc3QgXCJ4XGBleHByIFwkYXNfbGluZW5vXzEnXCRhc19ydW4n ICsgMVxgXCIgPSBcInhcJGFzX2xpbmVub18yJ1wkYXNfcnVuJ1wiJyB8fCBleGl0IDEKKysKKysg IHRlc3QgLW4gXCJcJHtaU0hfVkVSU0lPTitzZXR9XCR7QkFTSF9WRVJTSU9OK3NldH1cIiB8fCAo CisrICAgIEVDSE89J1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcJworKyAgICBF Q0hPPVwkRUNIT1wkRUNIT1wkRUNIT1wkRUNIT1wkRUNITworKyAgICBFQ0hPPVwkRUNIT1wkRUNI T1wkRUNIT1wkRUNIT1wkRUNIT1wkRUNITworKyAgICBQQVRIPS9lbXB0eSBGUEFUSD0vZW1wdHk7 IGV4cG9ydCBQQVRIIEZQQVRICisrICAgIHRlc3QgXCJYXGBwcmludGYgJXMgXCRFQ0hPXGBcIiA9 IFwiWFwkRUNIT1wiIFxcCisrICAgICAgfHwgdGVzdCBcIlhcYHByaW50IC1yIC0tIFwkRUNIT1xg XCIgPSBcIlhcJEVDSE9cIiApIHx8IGV4aXQgMQorK3Rlc3QgXCQoKCAxICsgMSApKSA9IDIgfHwg ZXhpdCAxIgorKyAgaWYgKGV2YWwgIiRhc19yZXF1aXJlZCIpIDI+L2Rldi9udWxsOyB0aGVuIDoK KysgIGFzX2hhdmVfcmVxdWlyZWQ9eWVzCisrZWxzZQorKyAgYXNfaGF2ZV9yZXF1aXJlZD1ubwor K2ZpCisrICBpZiB0ZXN0IHgkYXNfaGF2ZV9yZXF1aXJlZCA9IHh5ZXMgJiYgKGV2YWwgIiRhc19z dWdnZXN0ZWQiKSAyPi9kZXYvbnVsbDsgdGhlbiA6CisrCisrZWxzZQorKyAgYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2FzX2ZvdW5kPWZhbHNlCisrZm9yIGFzX2RpciBp biAvYmluJFBBVEhfU0VQQVJBVE9SL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSAorK2RvCisr ICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAg YXNfZm91bmQ9OgorKyAgY2FzZSAkYXNfZGlyIGluICMoCisrCSAvKikKKysJICAgZm9yIGFzX2Jh c2UgaW4gc2ggYmFzaCBrc2ggc2g1OyBkbworKwkgICAgICMgVHJ5IG9ubHkgc2hlbGxzIHRoYXQg ZXhpc3QsIHRvIHNhdmUgc2V2ZXJhbCBmb3Jrcy4KKysJICAgICBhc19zaGVsbD0kYXNfZGlyLyRh c19iYXNlCisrCSAgICAgaWYgeyB0ZXN0IC1mICIkYXNfc2hlbGwiIHx8IHRlc3QgLWYgIiRhc19z aGVsbC5leGUiOyB9ICYmCisrCQkgICAgeyAkYXNfZWNobyAiJGFzX2JvdXJuZV9jb21wYXRpYmxl IiIkYXNfcmVxdWlyZWQiIHwgYXNfcnVuPWEgIiRhc19zaGVsbCI7IH0gMj4vZGV2L251bGw7IHRo ZW4gOgorKyAgQ09ORklHX1NIRUxMPSRhc19zaGVsbCBhc19oYXZlX3JlcXVpcmVkPXllcworKwkJ ICAgaWYgeyAkYXNfZWNobyAiJGFzX2JvdXJuZV9jb21wYXRpYmxlIiIkYXNfc3VnZ2VzdGVkIiB8 IGFzX3J1bj1hICIkYXNfc2hlbGwiOyB9IDI+L2Rldi9udWxsOyB0aGVuIDoKKysgIGJyZWFrIDIK KytmaQorK2ZpCisrCSAgIGRvbmU7OworKyAgICAgICBlc2FjCisrICBhc19mb3VuZD1mYWxzZQor K2RvbmUKKyskYXNfZm91bmQgfHwgeyBpZiB7IHRlc3QgLWYgIiRTSEVMTCIgfHwgdGVzdCAtZiAi JFNIRUxMLmV4ZSI7IH0gJiYKKysJICAgICAgeyAkYXNfZWNobyAiJGFzX2JvdXJuZV9jb21wYXRp YmxlIiIkYXNfcmVxdWlyZWQiIHwgYXNfcnVuPWEgIiRTSEVMTCI7IH0gMj4vZGV2L251bGw7IHRo ZW4gOgorKyAgQ09ORklHX1NIRUxMPSRTSEVMTCBhc19oYXZlX3JlcXVpcmVkPXllcworK2ZpOyB9 CisrSUZTPSRhc19zYXZlX0lGUworKworKworKyAgICAgIGlmIHRlc3QgIngkQ09ORklHX1NIRUxM IiAhPSB4OyB0aGVuIDoKKysgICMgV2UgY2Fubm90IHlldCBhc3N1bWUgYSBkZWNlbnQgc2hlbGws IHNvIHdlIGhhdmUgdG8gcHJvdmlkZSBhCisrCSMgbmV1dHJhbGl6YXRpb24gdmFsdWUgZm9yIHNo ZWxscyB3aXRob3V0IHVuc2V0OyBhbmQgdGhpcyBhbHNvCisrCSMgd29ya3MgYXJvdW5kIHNoZWxs cyB0aGF0IGNhbm5vdCB1bnNldCBub25leGlzdGVudCB2YXJpYWJsZXMuCisrCUJBU0hfRU5WPS9k ZXYvbnVsbAorKwlFTlY9L2Rldi9udWxsCisrCSh1bnNldCBCQVNIX0VOVikgPi9kZXYvbnVsbCAy PiYxICYmIHVuc2V0IEJBU0hfRU5WIEVOVgorKwlleHBvcnQgQ09ORklHX1NIRUxMCisrCWV4ZWMg IiRDT05GSUdfU0hFTEwiICIkYXNfbXlzZWxmIiAkezErIiRAIn0KKytmaQorKworKyAgICBpZiB0 ZXN0IHgkYXNfaGF2ZV9yZXF1aXJlZCA9IHhubzsgdGhlbiA6CisrICAkYXNfZWNobyAiJDA6IFRo aXMgc2NyaXB0IHJlcXVpcmVzIGEgc2hlbGwgbW9yZSBtb2Rlcm4gdGhhbiBhbGwiCisrICAkYXNf ZWNobyAiJDA6IHRoZSBzaGVsbHMgdGhhdCBJIGZvdW5kIG9uIHlvdXIgc3lzdGVtLiIKKysgIGlm IHRlc3QgeCR7WlNIX1ZFUlNJT04rc2V0fSA9IHhzZXQgOyB0aGVuCisrICAgICRhc19lY2hvICIk MDogSW4gcGFydGljdWxhciwgenNoICRaU0hfVkVSU0lPTiBoYXMgYnVncyBhbmQgc2hvdWxkIgor KyAgICAkYXNfZWNobyAiJDA6IGJlIHVwZ3JhZGVkIHRvIHpzaCA0LjMuNCBvciBsYXRlci4iCisr ICBlbHNlCisrICAgICRhc19lY2hvICIkMDogUGxlYXNlIHRlbGwgYnVnLWF1dG9jb25mQGdudS5v cmcgYW5kCisrJDA6IG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldCBhYm91dCB5b3VyIHN5 c3RlbSwKKyskMDogaW5jbHVkaW5nIGFueSBlcnJvciBwb3NzaWJseSBvdXRwdXQgYmVmb3JlIHRo aXMKKyskMDogbWVzc2FnZS4gVGhlbiBpbnN0YWxsIGEgbW9kZXJuIHNoZWxsLCBvciBtYW51YWxs eSBydW4KKyskMDogdGhlIHNjcmlwdCB1bmRlciBzdWNoIGEgc2hlbGwgaWYgeW91IGRvIGhhdmUg b25lLiIKKysgIGZpCisrICBleGl0IDEKKytmaQorK2ZpCisrZmkKKytTSEVMTD0ke0NPTkZJR19T SEVMTC0vYmluL3NofQorK2V4cG9ydCBTSEVMTAorKyMgVW5zZXQgbW9yZSB2YXJpYWJsZXMga25v d24gdG8gaW50ZXJmZXJlIHdpdGggYmVoYXZpb3Igb2YgY29tbW9uIHRvb2xzLgorK0NMSUNPTE9S X0ZPUkNFPSBHUkVQX09QVElPTlM9CisrdW5zZXQgQ0xJQ09MT1JfRk9SQ0UgR1JFUF9PUFRJT05T CisrCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrIyMgTTRzaCBTaGVsbCBGdW5jdGlv bnMuICMjCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrIyBhc19mbl91bnNldCBWQVIK KysjIC0tLS0tLS0tLS0tLS0tLQorKyMgUG9ydGFibHkgdW5zZXQgVkFSLgorK2FzX2ZuX3Vuc2V0 ICgpCisreworKyAgeyBldmFsICQxPTsgdW5zZXQgJDE7fQorK30KKythc191bnNldD1hc19mbl91 bnNldAorKworKyMgYXNfZm5fc2V0X3N0YXR1cyBTVEFUVVMKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrIyBTZXQgJD8gdG8gU1RBVFVTLCB3aXRob3V0IGZvcmtpbmcuCisrYXNfZm5fc2V0 X3N0YXR1cyAoKQorK3sKKysgIHJldHVybiAkMQorK30gIyBhc19mbl9zZXRfc3RhdHVzCisrCisr IyBhc19mbl9leGl0IFNUQVRVUworKyMgLS0tLS0tLS0tLS0tLS0tLS0KKysjIEV4aXQgdGhlIHNo ZWxsIHdpdGggU1RBVFVTLCBldmVuIGluIGEgInRyYXAgMCIgb3IgInNldCAtZSIgY29udGV4dC4K Kythc19mbl9leGl0ICgpCisreworKyAgc2V0ICtlCisrICBhc19mbl9zZXRfc3RhdHVzICQxCisr ICBleGl0ICQxCisrfSAjIGFzX2ZuX2V4aXQKKysKKysjIGFzX2ZuX21rZGlyX3AKKysjIC0tLS0t LS0tLS0tLS0KKysjIENyZWF0ZSAiJGFzX2RpciIgYXMgYSBkaXJlY3RvcnksIGluY2x1ZGluZyBw YXJlbnRzIGlmIG5lY2Vzc2FyeS4KKythc19mbl9ta2Rpcl9wICgpCisreworKworKyAgY2FzZSAk YXNfZGlyIGluICMoCisrICAtKikgYXNfZGlyPS4vJGFzX2Rpcjs7CisrICBlc2FjCisrICB0ZXN0 IC1kICIkYXNfZGlyIiB8fCBldmFsICRhc19ta2Rpcl9wIHx8IHsKKysgICAgYXNfZGlycz0KKysg ICAgd2hpbGUgOjsgZG8KKysgICAgICBjYXNlICRhc19kaXIgaW4gIygKKysgICAgICAqXCcqKSBh c19xZGlyPWAkYXNfZWNobyAiJGFzX2RpciIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OyAj JygKKysgICAgICAqKSBhc19xZGlyPSRhc19kaXI7OworKyAgICAgIGVzYWMKKysgICAgICBhc19k aXJzPSInJGFzX3FkaXInICRhc19kaXJzIgorKyAgICAgIGFzX2Rpcj1gJGFzX2Rpcm5hbWUgLS0g IiRhc19kaXIiIHx8CisrJGFzX2V4cHIgWCIkYXNfZGlyIiA6ICdYXCguKlteL11cKS8vKlteL11b Xi9dKi8qJCcgXHwgXAorKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAorKwkgWCIk YXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgWCIkYXNfZGlyIiA6ICdYXCgvXCknIFx8IC4g Mj4vZGV2L251bGwgfHwKKyskYXNfZWNobyBYIiRhc19kaXIiIHwKKysgICAgc2VkICcvXlhcKC4q W14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0K KysJICAvXlhcKFwvXC9cKVteL10uKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9Cisr CSAgL15YXChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhc KFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdg CisrICAgICAgdGVzdCAtZCAiJGFzX2RpciIgJiYgYnJlYWsKKysgICAgZG9uZQorKyAgICB0ZXN0 IC16ICIkYXNfZGlycyIgfHwgZXZhbCAibWtkaXIgJGFzX2RpcnMiCisrICB9IHx8IHRlc3QgLWQg IiRhc19kaXIiIHx8IGFzX2ZuX2Vycm9yICQ/ICJjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNf ZGlyIgorKworKworK30gIyBhc19mbl9ta2Rpcl9wCisrIyBhc19mbl9hcHBlbmQgVkFSIFZBTFVF CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBBcHBlbmQgdGhlIHRleHQgaW4gVkFMVUUg dG8gdGhlIGVuZCBvZiB0aGUgZGVmaW5pdGlvbiBjb250YWluZWQgaW4gVkFSLiBUYWtlCisrIyBh ZHZhbnRhZ2Ugb2YgYW55IHNoZWxsIG9wdGltaXphdGlvbnMgdGhhdCBhbGxvdyBhbW9ydGl6ZWQg bGluZWFyIGdyb3d0aCBvdmVyCisrIyByZXBlYXRlZCBhcHBlbmRzLCBpbnN0ZWFkIG9mIHRoZSB0 eXBpY2FsIHF1YWRyYXRpYyBncm93dGggcHJlc2VudCBpbiBuYWl2ZQorKyMgaW1wbGVtZW50YXRp b25zLgorK2lmIChldmFsICJhc192YXI9MTsgYXNfdmFyKz0yOyB0ZXN0IHhcJGFzX3ZhciA9IHgx MiIpIDI+L2Rldi9udWxsOyB0aGVuIDoKKysgIGV2YWwgJ2FzX2ZuX2FwcGVuZCAoKQorKyAgewor KyAgICBldmFsICQxKz1cJDIKKysgIH0nCisrZWxzZQorKyAgYXNfZm5fYXBwZW5kICgpCisrICB7 CisrICAgIGV2YWwgJDE9XCQkMVwkMgorKyAgfQorK2ZpICMgYXNfZm5fYXBwZW5kCisrCisrIyBh c19mbl9hcml0aCBBUkcuLi4KKysjIC0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUGVyZm9ybSBhcml0 aG1ldGljIGV2YWx1YXRpb24gb24gdGhlIEFSR3MsIGFuZCBzdG9yZSB0aGUgcmVzdWx0IGluIHRo ZQorKyMgZ2xvYmFsICRhc192YWwuIFRha2UgYWR2YW50YWdlIG9mIHNoZWxscyB0aGF0IGNhbiBh dm9pZCBmb3Jrcy4gVGhlIGFyZ3VtZW50cworKyMgbXVzdCBiZSBwb3J0YWJsZSBhY3Jvc3MgJCgo KSkgYW5kIGV4cHIuCisraWYgKGV2YWwgInRlc3QgXCQoKCAxICsgMSApKSA9IDIiKSAyPi9kZXYv bnVsbDsgdGhlbiA6CisrICBldmFsICdhc19mbl9hcml0aCAoKQorKyAgeworKyAgICBhc192YWw9 JCgoICQqICkpCisrICB9JworK2Vsc2UKKysgIGFzX2ZuX2FyaXRoICgpCisrICB7CisrICAgIGFz X3ZhbD1gZXhwciAiJEAiIHx8IHRlc3QgJD8gLWVxIDFgCisrICB9CisrZmkgIyBhc19mbl9hcml0 aAorKworKworKyMgYXNfZm5fZXJyb3IgU1RBVFVTIEVSUk9SIFtMSU5FTk8gTE9HX0ZEXQorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgT3V0cHV0ICJgYmFz ZW5hbWUgJDBgOiBlcnJvcjogRVJST1IiIHRvIHN0ZGVyci4gSWYgTElORU5PIGFuZCBMT0dfRkQg YXJlCisrIyBwcm92aWRlZCwgYWxzbyBvdXRwdXQgdGhlIGVycm9yIHRvIExPR19GRCwgcmVmZXJl bmNpbmcgTElORU5PLiBUaGVuIGV4aXQgdGhlCisrIyBzY3JpcHQgd2l0aCBTVEFUVVMsIHVzaW5n IDEgaWYgdGhhdCB3YXMgMC4KKythc19mbl9lcnJvciAoKQorK3sKKysgIGFzX3N0YXR1cz0kMTsg dGVzdCAkYXNfc3RhdHVzIC1lcSAwICYmIGFzX3N0YXR1cz0xCisrICBpZiB0ZXN0ICIkNCI7IHRo ZW4KKysgICAgYXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMyJ9IGFzX2xpbmVub19zdGFjaz1hc19s aW5lbm9fc3RhY2s9JGFzX2xpbmVub19zdGFjaworKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBlcnJvcjogJDIiID4mJDQKKysgIGZpCisrICAkYXNfZWNobyAiJGFz X21lOiBlcnJvcjogJDIiID4mMgorKyAgYXNfZm5fZXhpdCAkYXNfc3RhdHVzCisrfSAjIGFzX2Zu X2Vycm9yCisrCisraWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjEgJiYKKysgICB0 ZXN0ICJYYGV4cHIgMDAwMDEgOiAnLipcKC4uLlwpJ2AiID0gWDAwMTsgdGhlbgorKyAgYXNfZXhw cj1leHByCisrZWxzZQorKyAgYXNfZXhwcj1mYWxzZQorK2ZpCisrCisraWYgKGJhc2VuYW1lIC0t IC8pID4vZGV2L251bGwgMj4mMSAmJiB0ZXN0ICJYYGJhc2VuYW1lIC0tIC8gMj4mMWAiID0gIlgv IjsgdGhlbgorKyAgYXNfYmFzZW5hbWU9YmFzZW5hbWUKKytlbHNlCisrICBhc19iYXNlbmFtZT1m YWxzZQorK2ZpCisrCisraWYgKGFzX2Rpcj1gZGlybmFtZSAtLSAvYCAmJiB0ZXN0ICJYJGFzX2Rp ciIgPSBYLykgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICBhc19kaXJuYW1lPWRpcm5hbWUKKytl bHNlCisrICBhc19kaXJuYW1lPWZhbHNlCisrZmkKKysKKythc19tZT1gJGFzX2Jhc2VuYW1lIC0t ICIkMCIgfHwKKyskYXNfZXhwciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAor KwkgWCIkMCIgOiAnWFwoLy9cKSQnIFx8IFwKKysJIFgiJDAiIDogJ1hcKC9cKScgXHwgLiAyPi9k ZXYvbnVsbCB8fAorKyRhc19lY2hvIFgvIiQwIiB8CisrICAgIHNlZCAnL14uKlwvXChbXi9dW14v XSpcKVwvKiQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwvXChcL1wv XCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcL1woXC9cKS4qL3sK KysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2AKKysKKysjIEF2 b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCisrYXNfY3JfbGV0dGVycz0nYWJj ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonCisrYXNfY3JfTEVUVEVSUz0nQUJDREVGR0hJSktMTU5P UFFSU1RVVldYWVonCisrYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJT CisrYXNfY3JfZGlnaXRzPScwMTIzNDU2Nzg5JworK2FzX2NyX2FsbnVtPSRhc19jcl9MZXR0ZXJz JGFzX2NyX2RpZ2l0cworKworKworKyAgYXNfbGluZW5vXzE9JExJTkVOTyBhc19saW5lbm9fMWE9 JExJTkVOTworKyAgYXNfbGluZW5vXzI9JExJTkVOTyBhc19saW5lbm9fMmE9JExJTkVOTworKyAg ZXZhbCAndGVzdCAieCRhc19saW5lbm9fMSckYXNfcnVuJyIgIT0gIngkYXNfbGluZW5vXzInJGFz X3J1biciICYmCisrICB0ZXN0ICJ4YGV4cHIgJGFzX2xpbmVub18xJyRhc19ydW4nICsgMWAiID0g IngkYXNfbGluZW5vXzInJGFzX3J1biciJyB8fCB7CisrICAjIEJsYW1lIExlZSBFLiBNY01haG9u ICgxOTMxLTE5ODkpIGZvciBzZWQncyBzeW50YXguICA6LSkKKysgIHNlZCAtbiAnCisrICAgIHAK KysgICAgL1skXUxJTkVOTy89CisrICAnIDwkYXNfbXlzZWxmIHwKKysgICAgc2VkICcKKysgICAg ICBzL1skXUxJTkVOTy4qLyYtLworKyAgICAgIHQgbGluZW5vCisrICAgICAgYgorKyAgICAgIDps aW5lbm8KKysgICAgICBOCisrICAgICAgOmxvb3AKKysgICAgICBzL1skXUxJTkVOT1woW14nJGFz X2NyX2FsbnVtJ19dLipcblwpXCguKlwpL1wyXDFcMi8KKysgICAgICB0IGxvb3AKKysgICAgICBz Ly1cbi4qLy8KKysgICAgJyA+JGFzX21lLmxpbmVubyAmJgorKyAgY2htb2QgK3ggIiRhc19tZS5s aW5lbm8iIHx8CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUg JGFzX21lLmxpbmVubzsgcmVydW4gd2l0aCBhIFBPU0lYIHNoZWxsIiA+JjI7IGFzX2ZuX2V4aXQg MTsgfQorKworKyAgIyBEb24ndCB0cnkgdG8gZXhlYyBhcyBpdCBjaGFuZ2VzICRbMF0sIGNhdXNp bmcgYWxsIHNvcnQgb2YgcHJvYmxlbXMKKysgICMgKHRoZSBkaXJuYW1lIG9mICRbMF0gaXMgbm90 IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRoZQorKyAgIyBvcmlnaW5hbCBhbmQgc28g b24uICBBdXRvY29uZiBpcyBlc3BlY2lhbGx5IHNlbnNpdGl2ZSB0byB0aGlzKS4KKysgIC4gIi4v JGFzX21lLmxpbmVubyIKKysgICMgRXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBjb21t YW5kLgorKyAgZXhpdAorK30KKysKKytFQ0hPX0M9IEVDSE9fTj0gRUNIT19UPQorK2Nhc2UgYGVj aG8gLW4geGAgaW4gIygoKCgoCisrLW4qKQorKyAgY2FzZSBgZWNobyAneHlcYydgIGluCisrICAq YyopIEVDSE9fVD0nCSc7OwkjIEVDSE9fVCBpcyBzaW5nbGUgdGFiIGNoYXJhY3Rlci4KKysgIHh5 KSAgRUNIT19DPSdcYyc7OworKyAgKikgICBlY2hvIGBlY2hvIGtzaDg4IGJ1ZyBvbiBBSVggNi4x YCA+IC9kZXYvbnVsbAorKyAgICAgICBFQ0hPX1Q9JwknOzsKKysgIGVzYWM7OworKyopCisrICBF Q0hPX049Jy1uJzs7CisrZXNhYworKworK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5m aWxlCisraWYgdGVzdCAtZCBjb25mJCQuZGlyOyB0aGVuCisrICBybSAtZiBjb25mJCQuZGlyL2Nv bmYkJC5maWxlCisrZWxzZQorKyAgcm0gLWYgY29uZiQkLmRpcgorKyAgbWtkaXIgY29uZiQkLmRp ciAyPi9kZXYvbnVsbAorK2ZpCisraWYgKGVjaG8gPmNvbmYkJC5maWxlKSAyPi9kZXYvbnVsbDsg dGhlbgorKyAgaWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCisr ICAgIGFzX2xuX3M9J2xuIC1zJworKyAgICAjIC4uLiBidXQgdGhlcmUgYXJlIHR3byBnb3RjaGFz OgorKyAgICAjIDEpIE9uIE1TWVMsIGJvdGggYGxuIC1zIGZpbGUgZGlyJyBhbmQgYGxuIGZpbGUg ZGlyJyBmYWlsLgorKyAgICAjIDIpIERKR1BQIDwgMi4wNCBoYXMgbm8gc3ltbGlua3M7IGBsbiAt cycgY3JlYXRlcyBhIHdyYXBwZXIgZXhlY3V0YWJsZS4KKysgICAgIyBJbiBib3RoIGNhc2VzLCB3 ZSBoYXZlIHRvIGRlZmF1bHQgdG8gYGNwIC1wJy4KKysgICAgbG4gLXMgY29uZiQkLmZpbGUgY29u ZiQkLmRpciAyPi9kZXYvbnVsbCAmJiB0ZXN0ICEgLWYgY29uZiQkLmV4ZSB8fAorKyAgICAgIGFz X2xuX3M9J2NwIC1wJworKyAgZWxpZiBsbiBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7 IHRoZW4KKysgICAgYXNfbG5fcz1sbgorKyAgZWxzZQorKyAgICBhc19sbl9zPSdjcCAtcCcKKysg IGZpCisrZWxzZQorKyAgYXNfbG5fcz0nY3AgLXAnCisrZmkKKytybSAtZiBjb25mJCQgY29uZiQk LmV4ZSBjb25mJCQuZGlyL2NvbmYkJC5maWxlIGNvbmYkJC5maWxlCisrcm1kaXIgY29uZiQkLmRp ciAyPi9kZXYvbnVsbAorKworK2lmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KKysgIGFz X21rZGlyX3A9J21rZGlyIC1wICIkYXNfZGlyIicKKytlbHNlCisrICB0ZXN0IC1kIC4vLXAgJiYg cm1kaXIgLi8tcAorKyAgYXNfbWtkaXJfcD1mYWxzZQorK2ZpCisrCisraWYgdGVzdCAteCAvID4v ZGV2L251bGwgMj4mMTsgdGhlbgorKyAgYXNfdGVzdF94PSd0ZXN0IC14JworK2Vsc2UKKysgIGlm IGxzIC1kTCAvID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICBhc19sc19MX29wdGlvbj1MCisr ICBlbHNlCisrICAgIGFzX2xzX0xfb3B0aW9uPQorKyAgZmkKKysgIGFzX3Rlc3RfeD0nCisrICAg IGV2YWwgc2ggLWMgJ1wnJworKyAgICAgIGlmIHRlc3QgLWQgIiQxIjsgdGhlbgorKwl0ZXN0IC1k ICIkMS8uIjsKKysgICAgICBlbHNlCisrCWNhc2UgJDEgaW4gIygKKysJLSopc2V0ICIuLyQxIjs7 CisrCWVzYWM7CisrCWNhc2UgYGxzIC1sZCckYXNfbHNfTF9vcHRpb24nICIkMSIgMj4vZGV2L251 bGxgIGluICMoKAorKwk/Pz9bc3hdKik6OzsqKWZhbHNlOztlc2FjO2ZpCisrICAgICdcJycgc2gK KysgICcKKytmaQorK2FzX2V4ZWN1dGFibGVfcD0kYXNfdGVzdF94CisrCisrIyBTZWQgZXhwcmVz c2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgorK2FzX3RyX2NwcD0i ZXZhbCBzZWQgJ3klKiRhc19jcl9sZXR0ZXJzJVAkYXNfY3JfTEVUVEVSUyU7cyVbXl8kYXNfY3Jf YWxudW1dJV8lZyciCisrCisrIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBh IHZhbGlkIHZhcmlhYmxlIG5hbWUuCisrYXNfdHJfc2g9ImV2YWwgc2VkICd5JSorJXBwJTtzJVte XyRhc19jcl9hbG51bV0lXyVnJyIKKysKKytTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQor KworKworK3Rlc3QgLW4gIiRESkRJUiIgfHwgZXhlYyA3PCYwIDwvZGV2L251bGwKKytleGVjIDY+ JjEKKysKKysjIE5hbWUgb2YgdGhlIGhvc3QuCisrIyBob3N0bmFtZSBvbiBzb21lIHN5c3RlbXMg KFNWUjMuMiwgb2xkIEdOVS9MaW51eCkgcmV0dXJucyBhIGJvZ3VzIGV4aXQgc3RhdHVzLAorKyMg c28gdW5hbWUgZ2V0cyBydW4gdG9vLgorK2FjX2hvc3RuYW1lPWAoaG9zdG5hbWUgfHwgdW5hbWUg LW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAorKworKyMKKysjIEluaXRpYWxpemF0aW9ucy4KKysj CisrYWNfZGVmYXVsdF9wcmVmaXg9L3Vzci9sb2NhbAorK2FjX2NsZWFuX2ZpbGVzPQorK2FjX2Nv bmZpZ19saWJvYmpfZGlyPS4KKytMSUJPQkpTPQorK2Nyb3NzX2NvbXBpbGluZz1ubworK3N1YmRp cnM9CisrTUZMQUdTPQorK01BS0VGTEFHUz0KKysKKysjIElkZW50aXR5IG9mIHRoaXMgcGFja2Fn ZS4KKytQQUNLQUdFX05BTUU9J1NPQ0knCisrUEFDS0FHRV9UQVJOQU1FPSdzb2NpJworK1BBQ0tB R0VfVkVSU0lPTj0nMy4wLjAnCisrUEFDS0FHRV9TVFJJTkc9J1NPQ0kgMy4wLjAnCisrUEFDS0FH RV9CVUdSRVBPUlQ9J21zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldCcKKytQQUNLQUdFX1VS TD0nJworKworK2FjX3VuaXF1ZV9maWxlPSJzb2NpL2NvcmUvZXJyb3IuY3BwIgorKyMgRmFjdG9y aW5nIGRlZmF1bHQgaGVhZGVycyBmb3IgbW9zdCB0ZXN0cy4KKythY19pbmNsdWRlc19kZWZhdWx0 PSJcCisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKKysjIGlu Y2x1ZGUgPHN5cy90eXBlcy5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX1NZU19TVEFUX0gKKysj IGluY2x1ZGUgPHN5cy9zdGF0Lmg+CisrI2VuZGlmCisrI2lmZGVmIFNURENfSEVBREVSUworKyMg aW5jbHVkZSA8c3RkbGliLmg+CisrIyBpbmNsdWRlIDxzdGRkZWYuaD4KKysjZWxzZQorKyMgaWZk ZWYgSEFWRV9TVERMSUJfSAorKyMgIGluY2x1ZGUgPHN0ZGxpYi5oPgorKyMgZW5kaWYKKysjZW5k aWYKKysjaWZkZWYgSEFWRV9TVFJJTkdfSAorKyMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYm IGRlZmluZWQgSEFWRV9NRU1PUllfSAorKyMgIGluY2x1ZGUgPG1lbW9yeS5oPgorKyMgZW5kaWYK KysjIGluY2x1ZGUgPHN0cmluZy5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX1NUUklOR1NfSAor KyMgaW5jbHVkZSA8c3RyaW5ncy5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX0lOVFRZUEVTX0gK KysjIGluY2x1ZGUgPGludHR5cGVzLmg+CisrI2VuZGlmCisrI2lmZGVmIEhBVkVfU1RESU5UX0gK KysjIGluY2x1ZGUgPHN0ZGludC5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX1VOSVNURF9ICisr IyBpbmNsdWRlIDx1bmlzdGQuaD4KKysjZW5kaWYiCisrCisrYWNfc3Vic3RfdmFycz0nYW1fX0VY RUVYVF9GQUxTRQorK2FtX19FWEVFWFRfVFJVRQorK0xUTElCT0JKUworK0xJQk9CSlMKKytSVU5f VEVTVFNfRkFMU0UKKytSVU5fVEVTVFNfVFJVRQorK3NlZF9vaworK2RpZmZfb2sKKytIVE1MX0RP Q19GQUxTRQorK0hUTUxfRE9DX1RSVUUKKytQRVJMCisrZ3Nfb2sKKytkdmlwc19vaworK2xhdGV4 X29rCisrZG94eWdlbl9vaworK0lORk9fRE9DX0ZBTFNFCisrSU5GT19ET0NfVFJVRQorK1BPU1RH UkVTUUxfRElSUworK0hBVkVfUE9TVEdSRVNRTF9GQUxTRQorK0hBVkVfUE9TVEdSRVNRTF9UUlVF CisrUE9TVEdSRVNRTF9MREZMQUdTCisrUE9TVEdSRVNRTF9DRkxBR1MKKytQT1NUR1JFU1FMX1ZF UlNJT04KKytQR19DT05GSUcKKytPUkFDTEVfRElSUworK0hBVkVfT1JBQ0xFX0ZBTFNFCisrSEFW RV9PUkFDTEVfVFJVRQorK09SQUNMRV9PQ0lfTERGTEFHUworK09SQUNMRV9PQ0lfQ0ZMQUdTCisr T1JBQ0xFX09DSV9WRVJTSU9OCisrTVlTUUxfRElSUworK0hBVkVfTVlTUUxfRkFMU0UKKytIQVZF X01ZU1FMX1RSVUUKKytNWVNRTF9DX0xJQgorK01ZU1FMX0xJQlMKKytNWVNRTF9DRkxBR1MKKytN WVNRTF9WRVJTSU9OCisrQk9PU1RfVkVSU0lPTgorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktf TElCCisrQk9PU1RfTVBJX1BZVEhPTl9MSUIKKytCT09TVF9NUElfTElCCisrQk9PU1RfUFlUSE9O X0xJQgorK0JPT1NUX1JFR0VYX0xJQgorK0JPT1NUX0RBVEVfVElNRV9MSUIKKytCT09TVF9TSUdO QUxTX0xJQgorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQgorK0JPT1NUX1NFUklBTElaQVRJT05f TElCCisrQk9PU1RfSU9TVFJFQU1TX0xJQgorK0JPT1NUX1RIUkVBRF9MSUIKKytCT09TVF9QUk9H UkFNX09QVElPTlNfTElCCisrQk9PU1RfU1lTVEVNX0xJQgorK0JPT1NUX0ZJTEVTWVNURU1fTElC CisrQk9PU1RfTElCUworK0JPT1NUX0NGTEFHUworK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JV UklFRAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRQorK1NPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFRF9UUlVFCisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRAorK1NP Q0lfTVlTUUxfSEVBREVSU19CVVJJRURfRkFMU0UKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVE X1RSVUUKKytTT0NJX0hFQURFUlNfQlVSSUVECisrU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRQor K1NPQ0lfSEVBREVSU19CVVJJRURfVFJVRQorK0NQUAorK09UT09MNjQKKytPVE9PTAorK0xJUE8K KytOTUVESVQKKytEU1lNVVRJTAorK1JBTkxJQgorK0FSCisrT0JKRFVNUAorK0xOX1MKKytOTQor K2FjX2N0X0RVTVBCSU4KKytEVU1QQklOCisrTEQKKytGR1JFUAorK0VHUkVQCisrR1JFUAorK1NF RAorK2FtX19mYXN0ZGVwQ0NfRkFMU0UKKythbV9fZmFzdGRlcENDX1RSVUUKKytDQ0RFUE1PREUK KythY19jdF9DQworK0NGTEFHUworK0NDCisrTElCVE9PTAorK0NYWENQUAorK2FtX19mYXN0ZGVw Q1hYX0ZBTFNFCisrYW1fX2Zhc3RkZXBDWFhfVFJVRQorK0NYWERFUE1PREUKKytBTURFUEJBQ0tT TEFTSAorK0FNREVQX0ZBTFNFCisrQU1ERVBfVFJVRQorK2FtX19xdW90ZQorK2FtX19pbmNsdWRl CisrREVQRElSCisrT0JKRVhUCisrRVhFRVhUCisrYWNfY3RfQ1hYCisrQ1BQRkxBR1MKKytMREZM QUdTCisrQ1hYRkxBR1MKKytDWFgKKytob3N0X29zCisraG9zdF92ZW5kb3IKKytob3N0X2NwdQor K2hvc3QKKytidWlsZF9vcworK2J1aWxkX3ZlbmRvcgorK2J1aWxkX2NwdQorK2J1aWxkCisrVVBM T0FEX0NPTU1BTkQKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTgorK0hBVkVfQ1BQVU5JVF9GQUxT RQorK0hBVkVfQ1BQVU5JVF9UUlVFCisrQ1BQVU5JVF9WRVJTSU9OCisrQ1BQVU5JVF9MSUJTCisr Q1BQVU5JVF9DRkxBR1MKKytDUFBVTklUX0NPTkZJRworK2FtX191bnRhcgorK2FtX190YXIKKytB TVRBUgorK2FtX19sZWFkaW5nX2RvdAorK1NFVF9NQUtFCisrQVdLCisrbWtkaXJfcAorK01LRElS X1AKKytJTlNUQUxMX1NUUklQX1BST0dSQU0KKytTVFJJUAorK2luc3RhbGxfc2gKKytNQUtFSU5G TworK0FVVE9IRUFERVIKKytBVVRPTUFLRQorK0FVVE9DT05GCisrQUNMT0NBTAorK1ZFUlNJT04K KytQQUNLQUdFCisrQ1lHUEFUSF9XCisrYW1fX2lzcmMKKytJTlNUQUxMX0RBVEEKKytJTlNUQUxM X1NDUklQVAorK0lOU1RBTExfUFJPR1JBTQorK3RhcmdldF9hbGlhcworK2hvc3RfYWxpYXMKKyti dWlsZF9hbGlhcworK0xJQlMKKytFQ0hPX1QKKytFQ0hPX04KKytFQ0hPX0MKKytERUZTCisrbWFu ZGlyCisrbG9jYWxlZGlyCisrbGliZGlyCisrcHNkaXIKKytwZGZkaXIKKytkdmlkaXIKKytodG1s ZGlyCisraW5mb2RpcgorK2RvY2RpcgorK29sZGluY2x1ZGVkaXIKKytpbmNsdWRlZGlyCisrbG9j YWxzdGF0ZWRpcgorK3NoYXJlZHN0YXRlZGlyCisrc3lzY29uZmRpcgorK2RhdGFkaXIKKytkYXRh cm9vdGRpcgorK2xpYmV4ZWNkaXIKKytzYmluZGlyCisrYmluZGlyCisrcHJvZ3JhbV90cmFuc2Zv cm1fbmFtZQorK3ByZWZpeAorK2V4ZWNfcHJlZml4CisrUEFDS0FHRV9VUkwKKytQQUNLQUdFX0JV R1JFUE9SVAorK1BBQ0tBR0VfU1RSSU5HCisrUEFDS0FHRV9WRVJTSU9OCisrUEFDS0FHRV9UQVJO QU1FCisrUEFDS0FHRV9OQU1FCisrUEFUSF9TRVBBUkFUT1IKKytTSEVMTCcKKythY19zdWJzdF9m aWxlcz0nJworK2FjX3VzZXJfb3B0cz0nCisrZW5hYmxlX29wdGlvbl9jaGVja2luZworK3dpdGhf Y3BwdW5pdF9wcmVmaXgKKyt3aXRoX2NwcHVuaXRfZXhlY19wcmVmaXgKKytlbmFibGVfc2hhcmVk CisrZW5hYmxlX3N0YXRpYworK2VuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nCisrd2l0aF9waWMK KytlbmFibGVfZmFzdF9pbnN0YWxsCisrd2l0aF9nbnVfbGQKKytlbmFibGVfbGlidG9vbF9sb2Nr CisrZW5hYmxlX2V4Y2VwdGlvbnMKKytlbmFibGVfaW5mb19kb2MKKytlbmFibGVfaHRtbF9kb2MK Kyt3aXRoX2RvY2RpcgorK2VuYWJsZV9idXJyaWVkX2hlYWRlcnMKKytlbmFibGVfbXlzcWxfYnVy cmllZF9oZWFkZXJzCisrZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzCisrd2l0aF9i b29zdAorK2VuYWJsZV9iYWNrZW5kX215c3FsCisrd2l0aF9teXNxbAorK3dpdGhfbXlzcWxfbGli Cisrd2l0aF9teXNxbF9pbmNsdWRlCisrZW5hYmxlX2JhY2tlbmRfb3JhY2xlCisrd2l0aF9vcmFj bGUKKyt3aXRoX29yYWNsZV9pbmNsdWRlCisrd2l0aF9vcmFjbGVfbGliCisrZW5hYmxlX2JhY2tl bmRfcG9zdGdyZXNxbAorK3dpdGhfcG9zdGdyZXNxbAorKycKKysgICAgICBhY19wcmVjaW91c192 YXJzPSdidWlsZF9hbGlhcworK2hvc3RfYWxpYXMKKyt0YXJnZXRfYWxpYXMKKytDWFgKKytDWFhG TEFHUworK0xERkxBR1MKKytMSUJTCisrQ1BQRkxBR1MKKytDQ0MKKytDWFhDUFAKKytDQworK0NG TEFHUworK0NQUCcKKysKKysKKysjIEluaXRpYWxpemUgc29tZSB2YXJpYWJsZXMgc2V0IGJ5IG9w dGlvbnMuCisrYWNfaW5pdF9oZWxwPQorK2FjX2luaXRfdmVyc2lvbj1mYWxzZQorK2FjX3VucmVj b2duaXplZF9vcHRzPQorK2FjX3VucmVjb2duaXplZF9zZXA9CisrIyBUaGUgdmFyaWFibGVzIGhh dmUgdGhlIHNhbWUgbmFtZXMgYXMgdGhlIG9wdGlvbnMsIHdpdGgKKysjIGRhc2hlcyBjaGFuZ2Vk IHRvIHVuZGVybGluZXMuCisrY2FjaGVfZmlsZT0vZGV2L251bGwKKytleGVjX3ByZWZpeD1OT05F Cisrbm9fY3JlYXRlPQorK25vX3JlY3Vyc2lvbj0KKytwcmVmaXg9Tk9ORQorK3Byb2dyYW1fcHJl Zml4PU5PTkUKKytwcm9ncmFtX3N1ZmZpeD1OT05FCisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1z LHgseCwKKytzaWxlbnQ9Cisrc2l0ZT0KKytzcmNkaXI9CisrdmVyYm9zZT0KKyt4X2luY2x1ZGVz PU5PTkUKKyt4X2xpYnJhcmllcz1OT05FCisrCisrIyBJbnN0YWxsYXRpb24gZGlyZWN0b3J5IG9w dGlvbnMuCisrIyBUaGVzZSBhcmUgbGVmdCB1bmV4cGFuZGVkIHNvIHVzZXJzIGNhbiAibWFrZSBp bnN0YWxsIGV4ZWNfcHJlZml4PS9mb28iCisrIyBhbmQgYWxsIHRoZSB2YXJpYWJsZXMgdGhhdCBh cmUgc3VwcG9zZWQgdG8gYmUgYmFzZWQgb24gZXhlY19wcmVmaXgKKysjIGJ5IGRlZmF1bHQgd2ls bCBhY3R1YWxseSBjaGFuZ2UuCisrIyBVc2UgYnJhY2VzIGluc3RlYWQgb2YgcGFyZW5zIGJlY2F1 c2Ugc2gsIHBlcmwsIGV0Yy4gYWxzbyBhY2NlcHQgdGhlbS4KKysjIChUaGUgbGlzdCBmb2xsb3dz IHRoZSBzYW1lIG9yZGVyIGFzIHRoZSBHTlUgQ29kaW5nIFN0YW5kYXJkcy4pCisrYmluZGlyPSck e2V4ZWNfcHJlZml4fS9iaW4nCisrc2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vc2JpbicKKytsaWJl eGVjZGlyPScke2V4ZWNfcHJlZml4fS9saWJleGVjJworK2RhdGFyb290ZGlyPScke3ByZWZpeH0v c2hhcmUnCisrZGF0YWRpcj0nJHtkYXRhcm9vdGRpcn0nCisrc3lzY29uZmRpcj0nJHtwcmVmaXh9 L2V0YycKKytzaGFyZWRzdGF0ZWRpcj0nJHtwcmVmaXh9L2NvbScKKytsb2NhbHN0YXRlZGlyPSck e3ByZWZpeH0vdmFyJworK2luY2x1ZGVkaXI9JyR7cHJlZml4fS9pbmNsdWRlJworK29sZGluY2x1 ZGVkaXI9Jy91c3IvaW5jbHVkZScKKytkb2NkaXI9JyR7ZGF0YXJvb3RkaXJ9L2RvYy8ke1BBQ0tB R0VfVEFSTkFNRX0nCisraW5mb2Rpcj0nJHtkYXRhcm9vdGRpcn0vaW5mbycKKytodG1sZGlyPSck e2RvY2Rpcn0nCisrZHZpZGlyPScke2RvY2Rpcn0nCisrcGRmZGlyPScke2RvY2Rpcn0nCisrcHNk aXI9JyR7ZG9jZGlyfScKKytsaWJkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYicKKytsb2NhbGVkaXI9 JyR7ZGF0YXJvb3RkaXJ9L2xvY2FsZScKKyttYW5kaXI9JyR7ZGF0YXJvb3RkaXJ9L21hbicKKysK KythY19wcmV2PQorK2FjX2Rhc2hkYXNoPQorK2ZvciBhY19vcHRpb24KKytkbworKyAgIyBJZiB0 aGUgcHJldmlvdXMgb3B0aW9uIG5lZWRzIGFuIGFyZ3VtZW50LCBhc3NpZ24gaXQuCisrICBpZiB0 ZXN0IC1uICIkYWNfcHJldiI7IHRoZW4KKysgICAgZXZhbCAkYWNfcHJldj1cJGFjX29wdGlvbgor KyAgICBhY19wcmV2PQorKyAgICBjb250aW51ZQorKyAgZmkKKysKKysgIGNhc2UgJGFjX29wdGlv biBpbgorKyAgKj0qKQlhY19vcHRhcmc9YGV4cHIgIlgkYWNfb3B0aW9uIiA6ICdbXj1dKj1cKC4q XCknYCA7OworKyAgKikJYWNfb3B0YXJnPXllcyA7OworKyAgZXNhYworKworKyAgIyBBY2NlcHQg dGhlIGltcG9ydGFudCBDeWdudXMgY29uZmlndXJlIG9wdGlvbnMsIHNvIHdlIGNhbiBkaWFnbm9z ZSB0eXBvcy4KKysKKysgIGNhc2UgJGFjX2Rhc2hkYXNoJGFjX29wdGlvbiBpbgorKyAgLS0pCisr ICAgIGFjX2Rhc2hkYXNoPXllcyA7OworKworKyAgLWJpbmRpciB8IC0tYmluZGlyIHwgLS1iaW5k aSB8IC0tYmluZCB8IC0tYmluIHwgLS1iaSkKKysgICAgYWNfcHJldj1iaW5kaXIgOzsKKysgIC1i aW5kaXI9KiB8IC0tYmluZGlyPSogfCAtLWJpbmRpPSogfCAtLWJpbmQ9KiB8IC0tYmluPSogfCAt LWJpPSopCisrICAgIGJpbmRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtYnVpbGQgfCAtLWJ1aWxk IHwgLS1idWlsIHwgLS1idWkgfCAtLWJ1KQorKyAgICBhY19wcmV2PWJ1aWxkX2FsaWFzIDs7Cisr ICAtYnVpbGQ9KiB8IC0tYnVpbGQ9KiB8IC0tYnVpbD0qIHwgLS1idWk9KiB8IC0tYnU9KikKKysg ICAgYnVpbGRfYWxpYXM9JGFjX29wdGFyZyA7OworKworKyAgLWNhY2hlLWZpbGUgfCAtLWNhY2hl LWZpbGUgfCAtLWNhY2hlLWZpbCB8IC0tY2FjaGUtZmkgXAorKyAgfCAtLWNhY2hlLWYgfCAtLWNh Y2hlLSB8IC0tY2FjaGUgfCAtLWNhY2ggfCAtLWNhYyB8IC0tY2EgfCAtLWMpCisrICAgIGFjX3By ZXY9Y2FjaGVfZmlsZSA7OworKyAgLWNhY2hlLWZpbGU9KiB8IC0tY2FjaGUtZmlsZT0qIHwgLS1j YWNoZS1maWw9KiB8IC0tY2FjaGUtZmk9KiBcCisrICB8IC0tY2FjaGUtZj0qIHwgLS1jYWNoZS09 KiB8IC0tY2FjaGU9KiB8IC0tY2FjaD0qIHwgLS1jYWM9KiB8IC0tY2E9KiB8IC0tYz0qKQorKyAg ICBjYWNoZV9maWxlPSRhY19vcHRhcmcgOzsKKysKKysgIC0tY29uZmlnLWNhY2hlIHwgLUMpCisr ICAgIGNhY2hlX2ZpbGU9Y29uZmlnLmNhY2hlIDs7CisrCisrICAtZGF0YWRpciB8IC0tZGF0YWRp ciB8IC0tZGF0YWRpIHwgLS1kYXRhZCkKKysgICAgYWNfcHJldj1kYXRhZGlyIDs7CisrICAtZGF0 YWRpcj0qIHwgLS1kYXRhZGlyPSogfCAtLWRhdGFkaT0qIHwgLS1kYXRhZD0qKQorKyAgICBkYXRh ZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1kYXRhcm9vdGRpciB8IC0tZGF0YXJvb3RkaXIgfCAt LWRhdGFyb290ZGkgfCAtLWRhdGFyb290ZCB8IC0tZGF0YXJvb3QgXAorKyAgfCAtLWRhdGFyb28g fCAtLWRhdGFybyB8IC0tZGF0YXIpCisrICAgIGFjX3ByZXY9ZGF0YXJvb3RkaXIgOzsKKysgIC1k YXRhcm9vdGRpcj0qIHwgLS1kYXRhcm9vdGRpcj0qIHwgLS1kYXRhcm9vdGRpPSogfCAtLWRhdGFy b290ZD0qIFwKKysgIHwgLS1kYXRhcm9vdD0qIHwgLS1kYXRhcm9vPSogfCAtLWRhdGFybz0qIHwg LS1kYXRhcj0qKQorKyAgICBkYXRhcm9vdGRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtZGlzYWJs ZS0qIHwgLS1kaXNhYmxlLSopCisrICAgIGFjX3VzZXJvcHQ9YGV4cHIgIngkYWNfb3B0aW9uIiA6 ICd4LSpkaXNhYmxlLVwoLipcKSdgCisrICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2 YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KKysgICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIu KlteLSsuXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKKysgICAgICBhc19mbl9lcnJvciAk PyAiaW52YWxpZCBmZWF0dXJlIG5hbWU6ICRhY191c2Vyb3B0IgorKyAgICBhY191c2Vyb3B0X29y aWc9JGFjX3VzZXJvcHQKKysgICAgYWNfdXNlcm9wdD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0IiB8 IHNlZCAncy9bLSsuXS9fL2cnYAorKyAgICBjYXNlICRhY191c2VyX29wdHMgaW4KKysgICAgICAq IgorKyJlbmFibGVfJGFjX3VzZXJvcHQiCisrIiopIDs7CisrICAgICAgKikgYWNfdW5yZWNvZ25p emVkX29wdHM9IiRhY191bnJlY29nbml6ZWRfb3B0cyRhY191bnJlY29nbml6ZWRfc2VwLS1kaXNh YmxlLSRhY191c2Vyb3B0X29yaWciCisrCSBhY191bnJlY29nbml6ZWRfc2VwPScsICc7OworKyAg ICBlc2FjCisrICAgIGV2YWwgZW5hYmxlXyRhY191c2Vyb3B0PW5vIDs7CisrCisrICAtZG9jZGly IHwgLS1kb2NkaXIgfCAtLWRvY2RpIHwgLS1kb2MgfCAtLWRvKQorKyAgICBhY19wcmV2PWRvY2Rp ciA7OworKyAgLWRvY2Rpcj0qIHwgLS1kb2NkaXI9KiB8IC0tZG9jZGk9KiB8IC0tZG9jPSogfCAt LWRvPSopCisrICAgIGRvY2Rpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtZHZpZGlyIHwgLS1kdmlk aXIgfCAtLWR2aWRpIHwgLS1kdmlkIHwgLS1kdmkgfCAtLWR2KQorKyAgICBhY19wcmV2PWR2aWRp ciA7OworKyAgLWR2aWRpcj0qIHwgLS1kdmlkaXI9KiB8IC0tZHZpZGk9KiB8IC0tZHZpZD0qIHwg LS1kdmk9KiB8IC0tZHY9KikKKysgICAgZHZpZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1lbmFi bGUtKiB8IC0tZW5hYmxlLSopCisrICAgIGFjX3VzZXJvcHQ9YGV4cHIgIngkYWNfb3B0aW9uIiA6 ICd4LSplbmFibGUtXChbXj1dKlwpJ2AKKysgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90 IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgorKyAgICBleHByICJ4JGFjX3VzZXJvcHQiIDog Ii4qW14tKy5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgorKyAgICAgIGFzX2ZuX2Vycm9y ICQ/ICJpbnZhbGlkIGZlYXR1cmUgbmFtZTogJGFjX3VzZXJvcHQiCisrICAgIGFjX3VzZXJvcHRf b3JpZz0kYWNfdXNlcm9wdAorKyAgICBhY191c2Vyb3B0PWAkYXNfZWNobyAiJGFjX3VzZXJvcHQi IHwgc2VkICdzL1stKy5dL18vZydgCisrICAgIGNhc2UgJGFjX3VzZXJfb3B0cyBpbgorKyAgICAg ICoiCisrImVuYWJsZV8kYWNfdXNlcm9wdCIKKysiKikgOzsKKysgICAgICAqKSBhY191bnJlY29n bml6ZWRfb3B0cz0iJGFjX3VucmVjb2duaXplZF9vcHRzJGFjX3VucmVjb2duaXplZF9zZXAtLWVu YWJsZS0kYWNfdXNlcm9wdF9vcmlnIgorKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0nLCAnOzsKKysg ICAgZXNhYworKyAgICBldmFsIGVuYWJsZV8kYWNfdXNlcm9wdD1cJGFjX29wdGFyZyA7OworKwor KyAgLWV4ZWMtcHJlZml4IHwgLS1leGVjX3ByZWZpeCB8IC0tZXhlYy1wcmVmaXggfCAtLWV4ZWMt cHJlZmkgXAorKyAgfCAtLWV4ZWMtcHJlZiB8IC0tZXhlYy1wcmUgfCAtLWV4ZWMtcHIgfCAtLWV4 ZWMtcCB8IC0tZXhlYy0gXAorKyAgfCAtLWV4ZWMgfCAtLWV4ZSB8IC0tZXgpCisrICAgIGFjX3By ZXY9ZXhlY19wcmVmaXggOzsKKysgIC1leGVjLXByZWZpeD0qIHwgLS1leGVjX3ByZWZpeD0qIHwg LS1leGVjLXByZWZpeD0qIHwgLS1leGVjLXByZWZpPSogXAorKyAgfCAtLWV4ZWMtcHJlZj0qIHwg LS1leGVjLXByZT0qIHwgLS1leGVjLXByPSogfCAtLWV4ZWMtcD0qIHwgLS1leGVjLT0qIFwKKysg IHwgLS1leGVjPSogfCAtLWV4ZT0qIHwgLS1leD0qKQorKyAgICBleGVjX3ByZWZpeD0kYWNfb3B0 YXJnIDs7CisrCisrICAtZ2FzIHwgLS1nYXMgfCAtLWdhIHwgLS1nKQorKyAgICAjIE9ic29sZXRl OyB1c2UgLS13aXRoLWdhcy4KKysgICAgd2l0aF9nYXM9eWVzIDs7CisrCisrICAtaGVscCB8IC0t aGVscCB8IC0taGVsIHwgLS1oZSB8IC1oKQorKyAgICBhY19pbml0X2hlbHA9bG9uZyA7OworKyAg LWhlbHA9ciogfCAtLWhlbHA9ciogfCAtLWhlbD1yKiB8IC0taGU9ciogfCAtaHIqKQorKyAgICBh Y19pbml0X2hlbHA9cmVjdXJzaXZlIDs7CisrICAtaGVscD1zKiB8IC0taGVscD1zKiB8IC0taGVs PXMqIHwgLS1oZT1zKiB8IC1ocyopCisrICAgIGFjX2luaXRfaGVscD1zaG9ydCA7OworKworKyAg LWhvc3QgfCAtLWhvc3QgfCAtLWhvcyB8IC0taG8pCisrICAgIGFjX3ByZXY9aG9zdF9hbGlhcyA7 OworKyAgLWhvc3Q9KiB8IC0taG9zdD0qIHwgLS1ob3M9KiB8IC0taG89KikKKysgICAgaG9zdF9h bGlhcz0kYWNfb3B0YXJnIDs7CisrCisrICAtaHRtbGRpciB8IC0taHRtbGRpciB8IC0taHRtbGRp IHwgLS1odG1sZCB8IC0taHRtbCB8IC0taHRtIHwgLS1odCkKKysgICAgYWNfcHJldj1odG1sZGly IDs7CisrICAtaHRtbGRpcj0qIHwgLS1odG1sZGlyPSogfCAtLWh0bWxkaT0qIHwgLS1odG1sZD0q IHwgLS1odG1sPSogfCAtLWh0bT0qIFwKKysgIHwgLS1odD0qKQorKyAgICBodG1sZGlyPSRhY19v cHRhcmcgOzsKKysKKysgIC1pbmNsdWRlZGlyIHwgLS1pbmNsdWRlZGlyIHwgLS1pbmNsdWRlZGkg fCAtLWluY2x1ZGVkIHwgLS1pbmNsdWRlIFwKKysgIHwgLS1pbmNsdWQgfCAtLWluY2x1IHwgLS1p bmNsIHwgLS1pbmMpCisrICAgIGFjX3ByZXY9aW5jbHVkZWRpciA7OworKyAgLWluY2x1ZGVkaXI9 KiB8IC0taW5jbHVkZWRpcj0qIHwgLS1pbmNsdWRlZGk9KiB8IC0taW5jbHVkZWQ9KiB8IC0taW5j bHVkZT0qIFwKKysgIHwgLS1pbmNsdWQ9KiB8IC0taW5jbHU9KiB8IC0taW5jbD0qIHwgLS1pbmM9 KikKKysgICAgaW5jbHVkZWRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtaW5mb2RpciB8IC0taW5m b2RpciB8IC0taW5mb2RpIHwgLS1pbmZvZCB8IC0taW5mbyB8IC0taW5mKQorKyAgICBhY19wcmV2 PWluZm9kaXIgOzsKKysgIC1pbmZvZGlyPSogfCAtLWluZm9kaXI9KiB8IC0taW5mb2RpPSogfCAt LWluZm9kPSogfCAtLWluZm89KiB8IC0taW5mPSopCisrICAgIGluZm9kaXI9JGFjX29wdGFyZyA7 OworKworKyAgLWxpYmRpciB8IC0tbGliZGlyIHwgLS1saWJkaSB8IC0tbGliZCkKKysgICAgYWNf cHJldj1saWJkaXIgOzsKKysgIC1saWJkaXI9KiB8IC0tbGliZGlyPSogfCAtLWxpYmRpPSogfCAt LWxpYmQ9KikKKysgICAgbGliZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1saWJleGVjZGlyIHwg LS1saWJleGVjZGlyIHwgLS1saWJleGVjZGkgfCAtLWxpYmV4ZWNkIHwgLS1saWJleGVjIFwKKysg IHwgLS1saWJleGUgfCAtLWxpYmV4IHwgLS1saWJlKQorKyAgICBhY19wcmV2PWxpYmV4ZWNkaXIg OzsKKysgIC1saWJleGVjZGlyPSogfCAtLWxpYmV4ZWNkaXI9KiB8IC0tbGliZXhlY2RpPSogfCAt LWxpYmV4ZWNkPSogfCAtLWxpYmV4ZWM9KiBcCisrICB8IC0tbGliZXhlPSogfCAtLWxpYmV4PSog fCAtLWxpYmU9KikKKysgICAgbGliZXhlY2Rpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtbG9jYWxl ZGlyIHwgLS1sb2NhbGVkaXIgfCAtLWxvY2FsZWRpIHwgLS1sb2NhbGVkIHwgLS1sb2NhbGUpCisr ICAgIGFjX3ByZXY9bG9jYWxlZGlyIDs7CisrICAtbG9jYWxlZGlyPSogfCAtLWxvY2FsZWRpcj0q IHwgLS1sb2NhbGVkaT0qIHwgLS1sb2NhbGVkPSogfCAtLWxvY2FsZT0qKQorKyAgICBsb2NhbGVk aXI9JGFjX29wdGFyZyA7OworKworKyAgLWxvY2Fsc3RhdGVkaXIgfCAtLWxvY2Fsc3RhdGVkaXIg fCAtLWxvY2Fsc3RhdGVkaSB8IC0tbG9jYWxzdGF0ZWQgXAorKyAgfCAtLWxvY2Fsc3RhdGUgfCAt LWxvY2Fsc3RhdCB8IC0tbG9jYWxzdGEgfCAtLWxvY2Fsc3QgfCAtLWxvY2FscykKKysgICAgYWNf cHJldj1sb2NhbHN0YXRlZGlyIDs7CisrICAtbG9jYWxzdGF0ZWRpcj0qIHwgLS1sb2NhbHN0YXRl ZGlyPSogfCAtLWxvY2Fsc3RhdGVkaT0qIHwgLS1sb2NhbHN0YXRlZD0qIFwKKysgIHwgLS1sb2Nh bHN0YXRlPSogfCAtLWxvY2Fsc3RhdD0qIHwgLS1sb2NhbHN0YT0qIHwgLS1sb2NhbHN0PSogfCAt LWxvY2Fscz0qKQorKyAgICBsb2NhbHN0YXRlZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1tYW5k aXIgfCAtLW1hbmRpciB8IC0tbWFuZGkgfCAtLW1hbmQgfCAtLW1hbiB8IC0tbWEgfCAtLW0pCisr ICAgIGFjX3ByZXY9bWFuZGlyIDs7CisrICAtbWFuZGlyPSogfCAtLW1hbmRpcj0qIHwgLS1tYW5k aT0qIHwgLS1tYW5kPSogfCAtLW1hbj0qIHwgLS1tYT0qIHwgLS1tPSopCisrICAgIG1hbmRpcj0k YWNfb3B0YXJnIDs7CisrCisrICAtbmZwIHwgLS1uZnAgfCAtLW5mKQorKyAgICAjIE9ic29sZXRl OyB1c2UgLS13aXRob3V0LWZwLgorKyAgICB3aXRoX2ZwPW5vIDs7CisrCisrICAtbm8tY3JlYXRl IHwgLS1uby1jcmVhdGUgfCAtLW5vLWNyZWF0IHwgLS1uby1jcmVhIHwgLS1uby1jcmUgXAorKyAg fCAtLW5vLWNyIHwgLS1uby1jIHwgLW4pCisrICAgIG5vX2NyZWF0ZT15ZXMgOzsKKysKKysgIC1u by1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lvbiB8IC0tbm8tcmVjdXJzaW8gfCAtLW5vLXJlY3Vy c2kgXAorKyAgfCAtLW5vLXJlY3VycyB8IC0tbm8tcmVjdXIgfCAtLW5vLXJlY3UgfCAtLW5vLXJl YyB8IC0tbm8tcmUgfCAtLW5vLXIpCisrICAgIG5vX3JlY3Vyc2lvbj15ZXMgOzsKKysKKysgIC1v bGRpbmNsdWRlZGlyIHwgLS1vbGRpbmNsdWRlZGlyIHwgLS1vbGRpbmNsdWRlZGkgfCAtLW9sZGlu Y2x1ZGVkIFwKKysgIHwgLS1vbGRpbmNsdWRlIHwgLS1vbGRpbmNsdWQgfCAtLW9sZGluY2x1IHwg LS1vbGRpbmNsIHwgLS1vbGRpbmMgXAorKyAgfCAtLW9sZGluIHwgLS1vbGRpIHwgLS1vbGQgfCAt LW9sIHwgLS1vKQorKyAgICBhY19wcmV2PW9sZGluY2x1ZGVkaXIgOzsKKysgIC1vbGRpbmNsdWRl ZGlyPSogfCAtLW9sZGluY2x1ZGVkaXI9KiB8IC0tb2xkaW5jbHVkZWRpPSogfCAtLW9sZGluY2x1 ZGVkPSogXAorKyAgfCAtLW9sZGluY2x1ZGU9KiB8IC0tb2xkaW5jbHVkPSogfCAtLW9sZGluY2x1 PSogfCAtLW9sZGluY2w9KiB8IC0tb2xkaW5jPSogXAorKyAgfCAtLW9sZGluPSogfCAtLW9sZGk9 KiB8IC0tb2xkPSogfCAtLW9sPSogfCAtLW89KikKKysgICAgb2xkaW5jbHVkZWRpcj0kYWNfb3B0 YXJnIDs7CisrCisrICAtcHJlZml4IHwgLS1wcmVmaXggfCAtLXByZWZpIHwgLS1wcmVmIHwgLS1w cmUgfCAtLXByIHwgLS1wKQorKyAgICBhY19wcmV2PXByZWZpeCA7OworKyAgLXByZWZpeD0qIHwg LS1wcmVmaXg9KiB8IC0tcHJlZmk9KiB8IC0tcHJlZj0qIHwgLS1wcmU9KiB8IC0tcHI9KiB8IC0t cD0qKQorKyAgICBwcmVmaXg9JGFjX29wdGFyZyA7OworKworKyAgLXByb2dyYW0tcHJlZml4IHwg LS1wcm9ncmFtLXByZWZpeCB8IC0tcHJvZ3JhbS1wcmVmaSB8IC0tcHJvZ3JhbS1wcmVmIFwKKysg IHwgLS1wcm9ncmFtLXByZSB8IC0tcHJvZ3JhbS1wciB8IC0tcHJvZ3JhbS1wKQorKyAgICBhY19w cmV2PXByb2dyYW1fcHJlZml4IDs7CisrICAtcHJvZ3JhbS1wcmVmaXg9KiB8IC0tcHJvZ3JhbS1w cmVmaXg9KiB8IC0tcHJvZ3JhbS1wcmVmaT0qIFwKKysgIHwgLS1wcm9ncmFtLXByZWY9KiB8IC0t cHJvZ3JhbS1wcmU9KiB8IC0tcHJvZ3JhbS1wcj0qIHwgLS1wcm9ncmFtLXA9KikKKysgICAgcHJv Z3JhbV9wcmVmaXg9JGFjX29wdGFyZyA7OworKworKyAgLXByb2dyYW0tc3VmZml4IHwgLS1wcm9n cmFtLXN1ZmZpeCB8IC0tcHJvZ3JhbS1zdWZmaSB8IC0tcHJvZ3JhbS1zdWZmIFwKKysgIHwgLS1w cm9ncmFtLXN1ZiB8IC0tcHJvZ3JhbS1zdSB8IC0tcHJvZ3JhbS1zKQorKyAgICBhY19wcmV2PXBy b2dyYW1fc3VmZml4IDs7CisrICAtcHJvZ3JhbS1zdWZmaXg9KiB8IC0tcHJvZ3JhbS1zdWZmaXg9 KiB8IC0tcHJvZ3JhbS1zdWZmaT0qIFwKKysgIHwgLS1wcm9ncmFtLXN1ZmY9KiB8IC0tcHJvZ3Jh bS1zdWY9KiB8IC0tcHJvZ3JhbS1zdT0qIHwgLS1wcm9ncmFtLXM9KikKKysgICAgcHJvZ3JhbV9z dWZmaXg9JGFjX29wdGFyZyA7OworKworKyAgLXByb2dyYW0tdHJhbnNmb3JtLW5hbWUgfCAtLXBy b2dyYW0tdHJhbnNmb3JtLW5hbWUgXAorKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbSB8IC0t cHJvZ3JhbS10cmFuc2Zvcm0tbmEgXAorKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW4gfCAtLXBy b2dyYW0tdHJhbnNmb3JtLSBcCisrICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0gfCAtLXByb2dyYW0t dHJhbnNmb3IgXAorKyAgfCAtLXByb2dyYW0tdHJhbnNmbyB8IC0tcHJvZ3JhbS10cmFuc2YgXAor KyAgfCAtLXByb2dyYW0tdHJhbnMgfCAtLXByb2dyYW0tdHJhbiBcCisrICB8IC0tcHJvZ3ItdHJh IHwgLS1wcm9ncmFtLXRyIHwgLS1wcm9ncmFtLXQpCisrICAgIGFjX3ByZXY9cHJvZ3JhbV90cmFu c2Zvcm1fbmFtZSA7OworKyAgLXByb2dyYW0tdHJhbnNmb3JtLW5hbWU9KiB8IC0tcHJvZ3JhbS10 cmFuc2Zvcm0tbmFtZT0qIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW09KiB8IC0tcHJv Z3JhbS10cmFuc2Zvcm0tbmE9KiBcCisrICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbj0qIHwgLS1w cm9ncmFtLXRyYW5zZm9ybS09KiBcCisrICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm09KiB8IC0tcHJv Z3JhbS10cmFuc2Zvcj0qIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5zZm89KiB8IC0tcHJvZ3JhbS10 cmFuc2Y9KiBcCisrICB8IC0tcHJvZ3JhbS10cmFucz0qIHwgLS1wcm9ncmFtLXRyYW49KiBcCisr ICB8IC0tcHJvZ3ItdHJhPSogfCAtLXByb2dyYW0tdHI9KiB8IC0tcHJvZ3JhbS10PSopCisrICAg IHByb2dyYW1fdHJhbnNmb3JtX25hbWU9JGFjX29wdGFyZyA7OworKworKyAgLXBkZmRpciB8IC0t cGRmZGlyIHwgLS1wZGZkaSB8IC0tcGRmZCB8IC0tcGRmIHwgLS1wZCkKKysgICAgYWNfcHJldj1w ZGZkaXIgOzsKKysgIC1wZGZkaXI9KiB8IC0tcGRmZGlyPSogfCAtLXBkZmRpPSogfCAtLXBkZmQ9 KiB8IC0tcGRmPSogfCAtLXBkPSopCisrICAgIHBkZmRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAt cHNkaXIgfCAtLXBzZGlyIHwgLS1wc2RpIHwgLS1wc2QgfCAtLXBzKQorKyAgICBhY19wcmV2PXBz ZGlyIDs7CisrICAtcHNkaXI9KiB8IC0tcHNkaXI9KiB8IC0tcHNkaT0qIHwgLS1wc2Q9KiB8IC0t cHM9KikKKysgICAgcHNkaXI9JGFjX29wdGFyZyA7OworKworKyAgLXEgfCAtcXVpZXQgfCAtLXF1 aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKKysgIHwgLXNpbGVudCB8IC0tc2ls ZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsKQorKyAgICBzaWxlbnQ9eWVzIDs7CisrCisr ICAtc2JpbmRpciB8IC0tc2JpbmRpciB8IC0tc2JpbmRpIHwgLS1zYmluZCB8IC0tc2JpbiB8IC0t c2JpIHwgLS1zYikKKysgICAgYWNfcHJldj1zYmluZGlyIDs7CisrICAtc2JpbmRpcj0qIHwgLS1z YmluZGlyPSogfCAtLXNiaW5kaT0qIHwgLS1zYmluZD0qIHwgLS1zYmluPSogXAorKyAgfCAtLXNi aT0qIHwgLS1zYj0qKQorKyAgICBzYmluZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1zaGFyZWRz dGF0ZWRpciB8IC0tc2hhcmVkc3RhdGVkaXIgfCAtLXNoYXJlZHN0YXRlZGkgXAorKyAgfCAtLXNo YXJlZHN0YXRlZCB8IC0tc2hhcmVkc3RhdGUgfCAtLXNoYXJlZHN0YXQgfCAtLXNoYXJlZHN0YSBc CisrICB8IC0tc2hhcmVkc3QgfCAtLXNoYXJlZHMgfCAtLXNoYXJlZCB8IC0tc2hhcmUgfCAtLXNo YXIgXAorKyAgfCAtLXNoYSB8IC0tc2gpCisrICAgIGFjX3ByZXY9c2hhcmVkc3RhdGVkaXIgOzsK KysgIC1zaGFyZWRzdGF0ZWRpcj0qIHwgLS1zaGFyZWRzdGF0ZWRpcj0qIHwgLS1zaGFyZWRzdGF0 ZWRpPSogXAorKyAgfCAtLXNoYXJlZHN0YXRlZD0qIHwgLS1zaGFyZWRzdGF0ZT0qIHwgLS1zaGFy ZWRzdGF0PSogfCAtLXNoYXJlZHN0YT0qIFwKKysgIHwgLS1zaGFyZWRzdD0qIHwgLS1zaGFyZWRz PSogfCAtLXNoYXJlZD0qIHwgLS1zaGFyZT0qIHwgLS1zaGFyPSogXAorKyAgfCAtLXNoYT0qIHwg LS1zaD0qKQorKyAgICBzaGFyZWRzdGF0ZWRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtc2l0ZSB8 IC0tc2l0ZSB8IC0tc2l0KQorKyAgICBhY19wcmV2PXNpdGUgOzsKKysgIC1zaXRlPSogfCAtLXNp dGU9KiB8IC0tc2l0PSopCisrICAgIHNpdGU9JGFjX29wdGFyZyA7OworKworKyAgLXNyY2RpciB8 IC0tc3JjZGlyIHwgLS1zcmNkaSB8IC0tc3JjZCB8IC0tc3JjIHwgLS1zcikKKysgICAgYWNfcHJl dj1zcmNkaXIgOzsKKysgIC1zcmNkaXI9KiB8IC0tc3JjZGlyPSogfCAtLXNyY2RpPSogfCAtLXNy Y2Q9KiB8IC0tc3JjPSogfCAtLXNyPSopCisrICAgIHNyY2Rpcj0kYWNfb3B0YXJnIDs7CisrCisr ICAtc3lzY29uZmRpciB8IC0tc3lzY29uZmRpciB8IC0tc3lzY29uZmRpIHwgLS1zeXNjb25mZCB8 IC0tc3lzY29uZiBcCisrICB8IC0tc3lzY29uIHwgLS1zeXNjbyB8IC0tc3lzYyB8IC0tc3lzIHwg LS1zeSkKKysgICAgYWNfcHJldj1zeXNjb25mZGlyIDs7CisrICAtc3lzY29uZmRpcj0qIHwgLS1z eXNjb25mZGlyPSogfCAtLXN5c2NvbmZkaT0qIHwgLS1zeXNjb25mZD0qIHwgLS1zeXNjb25mPSog XAorKyAgfCAtLXN5c2Nvbj0qIHwgLS1zeXNjbz0qIHwgLS1zeXNjPSogfCAtLXN5cz0qIHwgLS1z eT0qKQorKyAgICBzeXNjb25mZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC10YXJnZXQgfCAtLXRh cmdldCB8IC0tdGFyZ2UgfCAtLXRhcmcgfCAtLXRhciB8IC0tdGEgfCAtLXQpCisrICAgIGFjX3By ZXY9dGFyZ2V0X2FsaWFzIDs7CisrICAtdGFyZ2V0PSogfCAtLXRhcmdldD0qIHwgLS10YXJnZT0q IHwgLS10YXJnPSogfCAtLXRhcj0qIHwgLS10YT0qIHwgLS10PSopCisrICAgIHRhcmdldF9hbGlh cz0kYWNfb3B0YXJnIDs7CisrCisrICAtdiB8IC12ZXJib3NlIHwgLS12ZXJib3NlIHwgLS12ZXJi b3MgfCAtLXZlcmJvIHwgLS12ZXJiKQorKyAgICB2ZXJib3NlPXllcyA7OworKworKyAgLXZlcnNp b24gfCAtLXZlcnNpb24gfCAtLXZlcnNpbyB8IC0tdmVyc2kgfCAtLXZlcnMgfCAtVikKKysgICAg YWNfaW5pdF92ZXJzaW9uPTogOzsKKysKKysgIC13aXRoLSogfCAtLXdpdGgtKikKKysgICAgYWNf dXNlcm9wdD1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKndpdGgtXChbXj1dKlwpJ2AKKysgICAg IyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgor KyAgICBleHByICJ4JGFjX3VzZXJvcHQiIDogIi4qW14tKy5fJGFzX2NyX2FsbnVtXSIgPi9kZXYv bnVsbCAmJgorKyAgICAgIGFzX2ZuX2Vycm9yICQ/ICJpbnZhbGlkIHBhY2thZ2UgbmFtZTogJGFj X3VzZXJvcHQiCisrICAgIGFjX3VzZXJvcHRfb3JpZz0kYWNfdXNlcm9wdAorKyAgICBhY191c2Vy b3B0PWAkYXNfZWNobyAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydgCisrICAgIGNh c2UgJGFjX3VzZXJfb3B0cyBpbgorKyAgICAgICoiCisrIndpdGhfJGFjX3VzZXJvcHQiCisrIiop IDs7CisrICAgICAgKikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29nbml6ZWRfb3B0 cyRhY191bnJlY29nbml6ZWRfc2VwLS13aXRoLSRhY191c2Vyb3B0X29yaWciCisrCSBhY191bnJl Y29nbml6ZWRfc2VwPScsICc7OworKyAgICBlc2FjCisrICAgIGV2YWwgd2l0aF8kYWNfdXNlcm9w dD1cJGFjX29wdGFyZyA7OworKworKyAgLXdpdGhvdXQtKiB8IC0td2l0aG91dC0qKQorKyAgICBh Y191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qd2l0aG91dC1cKC4qXCknYAorKyAg ICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMu CisrICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxudW1dIiA+L2Rl di9udWxsICYmCisrICAgICAgYXNfZm5fZXJyb3IgJD8gImludmFsaWQgcGFja2FnZSBuYW1lOiAk YWNfdXNlcm9wdCIKKysgICAgYWNfdXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0CisrICAgIGFjX3Vz ZXJvcHQ9YCRhc19lY2hvICIkYWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AKKysgICAg Y2FzZSAkYWNfdXNlcl9vcHRzIGluCisrICAgICAgKiIKKysid2l0aF8kYWNfdXNlcm9wdCIKKysi KikgOzsKKysgICAgICAqKSBhY191bnJlY29nbml6ZWRfb3B0cz0iJGFjX3VucmVjb2duaXplZF9v cHRzJGFjX3VucmVjb2duaXplZF9zZXAtLXdpdGhvdXQtJGFjX3VzZXJvcHRfb3JpZyIKKysJIGFj X3VucmVjb2duaXplZF9zZXA9JywgJzs7CisrICAgIGVzYWMKKysgICAgZXZhbCB3aXRoXyRhY191 c2Vyb3B0PW5vIDs7CisrCisrICAtLXgpCisrICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGgteC4K KysgICAgd2l0aF94PXllcyA7OworKworKyAgLXgtaW5jbHVkZXMgfCAtLXgtaW5jbHVkZXMgfCAt LXgtaW5jbHVkZSB8IC0teC1pbmNsdWQgfCAtLXgtaW5jbHUgXAorKyAgfCAtLXgtaW5jbCB8IC0t eC1pbmMgfCAtLXgtaW4gfCAtLXgtaSkKKysgICAgYWNfcHJldj14X2luY2x1ZGVzIDs7CisrICAt eC1pbmNsdWRlcz0qIHwgLS14LWluY2x1ZGVzPSogfCAtLXgtaW5jbHVkZT0qIHwgLS14LWluY2x1 ZD0qIHwgLS14LWluY2x1PSogXAorKyAgfCAtLXgtaW5jbD0qIHwgLS14LWluYz0qIHwgLS14LWlu PSogfCAtLXgtaT0qKQorKyAgICB4X2luY2x1ZGVzPSRhY19vcHRhcmcgOzsKKysKKysgIC14LWxp YnJhcmllcyB8IC0teC1saWJyYXJpZXMgfCAtLXgtbGlicmFyaWUgfCAtLXgtbGlicmFyaSBcCisr ICB8IC0teC1saWJyYXIgfCAtLXgtbGlicmEgfCAtLXgtbGliciB8IC0teC1saWIgfCAtLXgtbGkg fCAtLXgtbCkKKysgICAgYWNfcHJldj14X2xpYnJhcmllcyA7OworKyAgLXgtbGlicmFyaWVzPSog fCAtLXgtbGlicmFyaWVzPSogfCAtLXgtbGlicmFyaWU9KiB8IC0teC1saWJyYXJpPSogXAorKyAg fCAtLXgtbGlicmFyPSogfCAtLXgtbGlicmE9KiB8IC0teC1saWJyPSogfCAtLXgtbGliPSogfCAt LXgtbGk9KiB8IC0teC1sPSopCisrICAgIHhfbGlicmFyaWVzPSRhY19vcHRhcmcgOzsKKysKKysg IC0qKSBhc19mbl9lcnJvciAkPyAidW5yZWNvZ25pemVkIG9wdGlvbjogXGAkYWNfb3B0aW9uJwor K1RyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24iCisrICAgIDs7CisrCisrICAq PSopCisrICAgIGFjX2VudnZhcj1gZXhwciAieCRhY19vcHRpb24iIDogJ3hcKFtePV0qXCk9J2AK KysgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5h bWVzLgorKyAgICBjYXNlICRhY19lbnZ2YXIgaW4gIygKKysgICAgICAnJyB8IFswLTldKiB8ICpb IV8kYXNfY3JfYWxudW1dKiApCisrICAgICAgYXNfZm5fZXJyb3IgJD8gImludmFsaWQgdmFyaWFi bGUgbmFtZTogXGAkYWNfZW52dmFyJyIgOzsKKysgICAgZXNhYworKyAgICBldmFsICRhY19lbnZ2 YXI9XCRhY19vcHRhcmcKKysgICAgZXhwb3J0ICRhY19lbnZ2YXIgOzsKKysKKysgICopCisrICAg ICMgRklYTUU6IHNob3VsZCBiZSByZW1vdmVkIGluIGF1dG9jb25mIDMuMC4KKysgICAgJGFzX2Vj aG8gIiRhc19tZTogV0FSTklORzogeW91IHNob3VsZCB1c2UgLS1idWlsZCwgLS1ob3N0LCAtLXRh cmdldCIgPiYyCisrICAgIGV4cHIgIngkYWNfb3B0aW9uIiA6ICIuKlteLS5fJGFzX2NyX2FsbnVt XSIgPi9kZXYvbnVsbCAmJgorKyAgICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGludmFs aWQgaG9zdCB0eXBlOiAkYWNfb3B0aW9uIiA+JjIKKysgICAgOiAke2J1aWxkX2FsaWFzPSRhY19v cHRpb259ICR7aG9zdF9hbGlhcz0kYWNfb3B0aW9ufSAke3RhcmdldF9hbGlhcz0kYWNfb3B0aW9u fQorKyAgICA7OworKworKyAgZXNhYworK2RvbmUKKysKKytpZiB0ZXN0IC1uICIkYWNfcHJldiI7 IHRoZW4KKysgIGFjX29wdGlvbj0tLWBlY2hvICRhY19wcmV2IHwgc2VkICdzL18vLS9nJ2AKKysg IGFzX2ZuX2Vycm9yICQ/ICJtaXNzaW5nIGFyZ3VtZW50IHRvICRhY19vcHRpb24iCisrZmkKKysK KytpZiB0ZXN0IC1uICIkYWNfdW5yZWNvZ25pemVkX29wdHMiOyB0aGVuCisrICBjYXNlICRlbmFi bGVfb3B0aW9uX2NoZWNraW5nIGluCisrICAgIG5vKSA7OworKyAgICBmYXRhbCkgYXNfZm5fZXJy b3IgJD8gInVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiIDs7Cisr ICAgICopICAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1bnJlY29nbml6ZWQgb3B0aW9u czogJGFjX3VucmVjb2duaXplZF9vcHRzIiA+JjIgOzsKKysgIGVzYWMKKytmaQorKworKyMgQ2hl Y2sgYWxsIGRpcmVjdG9yeSBhcmd1bWVudHMgZm9yIGNvbnNpc3RlbmN5LgorK2ZvciBhY192YXIg aW4JZXhlY19wcmVmaXggcHJlZml4IGJpbmRpciBzYmluZGlyIGxpYmV4ZWNkaXIgZGF0YXJvb3Rk aXIgXAorKwkJZGF0YWRpciBzeXNjb25mZGlyIHNoYXJlZHN0YXRlZGlyIGxvY2Fsc3RhdGVkaXIg aW5jbHVkZWRpciBcCisrCQlvbGRpbmNsdWRlZGlyIGRvY2RpciBpbmZvZGlyIGh0bWxkaXIgZHZp ZGlyIHBkZmRpciBwc2RpciBcCisrCQlsaWJkaXIgbG9jYWxlZGlyIG1hbmRpcgorK2RvCisrICBl dmFsIGFjX3ZhbD1cJCRhY192YXIKKysgICMgUmVtb3ZlIHRyYWlsaW5nIHNsYXNoZXMuCisrICBj YXNlICRhY192YWwgaW4KKysgICAgKi8gKQorKyAgICAgIGFjX3ZhbD1gZXhwciAiWCRhY192YWwi IDogJ1hcKC4qW14vXVwpJyBcfCAiWCRhY192YWwiIDogJ1hcKC4qXCknYAorKyAgICAgIGV2YWwg JGFjX3Zhcj1cJGFjX3ZhbDs7CisrICBlc2FjCisrICAjIEJlIHN1cmUgdG8gaGF2ZSBhYnNvbHV0 ZSBkaXJlY3RvcnkgbmFtZXMuCisrICBjYXNlICRhY192YWwgaW4KKysgICAgW1xcLyRdKiB8ID86 W1xcL10qICkgIGNvbnRpbnVlOzsKKysgICAgTk9ORSB8ICcnICkgY2FzZSAkYWNfdmFyIGluICpw cmVmaXggKSBjb250aW51ZTs7IGVzYWM7OworKyAgZXNhYworKyAgYXNfZm5fZXJyb3IgJD8gImV4 cGVjdGVkIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIGZvciAtLSRhY192YXI6ICRhY192YWwi CisrZG9uZQorKworKyMgVGhlcmUgbWlnaHQgYmUgcGVvcGxlIHdobyBkZXBlbmQgb24gdGhlIG9s ZCBicm9rZW4gYmVoYXZpb3I6IGAkaG9zdCcKKysjIHVzZWQgdG8gaG9sZCB0aGUgYXJndW1lbnQg b2YgLS1ob3N0IGV0Yy4KKysjIEZJWE1FOiBUbyByZW1vdmUgc29tZSBkYXkuCisrYnVpbGQ9JGJ1 aWxkX2FsaWFzCisraG9zdD0kaG9zdF9hbGlhcworK3RhcmdldD0kdGFyZ2V0X2FsaWFzCisrCisr IyBGSVhNRTogVG8gcmVtb3ZlIHNvbWUgZGF5LgorK2lmIHRlc3QgIngkaG9zdF9hbGlhcyIgIT0g eDsgdGhlbgorKyAgaWYgdGVzdCAieCRidWlsZF9hbGlhcyIgPSB4OyB0aGVuCisrICAgIGNyb3Nz X2NvbXBpbGluZz1tYXliZQorKyAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBpZiB5b3Ug d2FudGVkIHRvIHNldCB0aGUgLS1idWlsZCB0eXBlLCBkb24ndCB1c2UgLS1ob3N0LgorKyAgICBJ ZiBhIGNyb3NzIGNvbXBpbGVyIGlzIGRldGVjdGVkIHRoZW4gY3Jvc3MgY29tcGlsZSBtb2RlIHdp bGwgYmUgdXNlZCIgPiYyCisrICBlbGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiICE9ICJ4JGhvc3Rf YWxpYXMiOyB0aGVuCisrICAgIGNyb3NzX2NvbXBpbGluZz15ZXMKKysgIGZpCisrZmkKKysKKyth Y190b29sX3ByZWZpeD0KKyt0ZXN0IC1uICIkaG9zdF9hbGlhcyIgJiYgYWNfdG9vbF9wcmVmaXg9 JGhvc3RfYWxpYXMtCisrCisrdGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYgZXhlYyA2Pi9kZXYvbnVs bAorKworKworK2FjX3B3ZD1gcHdkYCAmJiB0ZXN0IC1uICIkYWNfcHdkIiAmJgorK2FjX2xzX2Rp PWBscyAtZGkgLmAgJiYKKythY19wd2RfbHNfZGk9YGNkICIkYWNfcHdkIiAmJiBscyAtZGkgLmAg fHwKKysgIGFzX2ZuX2Vycm9yICQ/ICJ3b3JraW5nIGRpcmVjdG9yeSBjYW5ub3QgYmUgZGV0ZXJt aW5lZCIKKyt0ZXN0ICJYJGFjX2xzX2RpIiA9ICJYJGFjX3B3ZF9sc19kaSIgfHwKKysgIGFzX2Zu X2Vycm9yICQ/ICJwd2QgZG9lcyBub3QgcmVwb3J0IG5hbWUgb2Ygd29ya2luZyBkaXJlY3Rvcnki CisrCisrCisrIyBGaW5kIHRoZSBzb3VyY2UgZmlsZXMsIGlmIGxvY2F0aW9uIHdhcyBub3Qgc3Bl Y2lmaWVkLgorK2lmIHRlc3QgLXogIiRzcmNkaXIiOyB0aGVuCisrICBhY19zcmNkaXJfZGVmYXVs dGVkPXllcworKyAgIyBUcnkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoaXMgc2NyaXB0LCB0 aGVuIHRoZSBwYXJlbnQgZGlyZWN0b3J5LgorKyAgYWNfY29uZmRpcj1gJGFzX2Rpcm5hbWUgLS0g IiRhc19teXNlbGYiIHx8CisrJGFzX2V4cHIgWCIkYXNfbXlzZWxmIiA6ICdYXCguKlteL11cKS8v KlteL11bXi9dKi8qJCcgXHwgXAorKwkgWCIkYXNfbXlzZWxmIiA6ICdYXCgvL1wpW14vXScgXHwg XAorKwkgWCIkYXNfbXlzZWxmIiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgWCIkYXNfbXlzZWxmIiA6 ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKKyskYXNfZWNobyBYIiRhc19teXNlbGYiIHwK KysgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKKysJICAgIHMvL1wx LworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKVteL10uKi97CisrCSAgICBzLy9cMS8K KysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkgICAg cQorKwkgIH0KKysJICAvXlhcKFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9 CisrCSAgcy8uKi8uLzsgcSdgCisrICBzcmNkaXI9JGFjX2NvbmZkaXIKKysgIGlmIHRlc3QgISAt ciAiJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGUiOyB0aGVuCisrICAgIHNyY2Rpcj0uLgorKyAgZmkK KytlbHNlCisrICBhY19zcmNkaXJfZGVmYXVsdGVkPW5vCisrZmkKKytpZiB0ZXN0ICEgLXIgIiRz cmNkaXIvJGFjX3VuaXF1ZV9maWxlIjsgdGhlbgorKyAgdGVzdCAiJGFjX3NyY2Rpcl9kZWZhdWx0 ZWQiID0geWVzICYmIHNyY2Rpcj0iJGFjX2NvbmZkaXIgb3IgLi4iCisrICBhc19mbl9lcnJvciAk PyAiY2Fubm90IGZpbmQgc291cmNlcyAoJGFjX3VuaXF1ZV9maWxlKSBpbiAkc3JjZGlyIgorK2Zp CisrYWNfbXNnPSJzb3VyY2VzIGFyZSBpbiAkc3JjZGlyLCBidXQgXGBjZCAkc3JjZGlyJyBkb2Vz IG5vdCB3b3JrIgorK2FjX2Fic19jb25mZGlyPWAoCisrCWNkICIkc3JjZGlyIiAmJiB0ZXN0IC1y ICIuLyRhY191bmlxdWVfZmlsZSIgfHwgYXNfZm5fZXJyb3IgJD8gIiRhY19tc2ciCisrCXB3ZClg CisrIyBXaGVuIGJ1aWxkaW5nIGluIHBsYWNlLCBzZXQgc3JjZGlyPS4KKytpZiB0ZXN0ICIkYWNf YWJzX2NvbmZkaXIiID0gIiRhY19wd2QiOyB0aGVuCisrICBzcmNkaXI9LgorK2ZpCisrIyBSZW1v dmUgdW5uZWNlc3NhcnkgdHJhaWxpbmcgc2xhc2hlcyBmcm9tIHNyY2Rpci4KKysjIERvdWJsZSBz bGFzaGVzIGluIGZpbGUgbmFtZXMgaW4gb2JqZWN0IGZpbGUgZGVidWdnaW5nIGluZm8KKysjIG1l c3MgdXAgTS14IGdkYiBpbiBFbWFjcy4KKytjYXNlICRzcmNkaXIgaW4KKysqLykgc3JjZGlyPWBl eHByICJYJHNyY2RpciIgOiAnWFwoLipbXi9dXCknIFx8ICJYJHNyY2RpciIgOiAnWFwoLipcKSdg OzsKKytlc2FjCisrZm9yIGFjX3ZhciBpbiAkYWNfcHJlY2lvdXNfdmFyczsgZG8KKysgIGV2YWwg YWNfZW52XyR7YWNfdmFyfV9zZXQ9XCR7JHthY192YXJ9K3NldH0KKysgIGV2YWwgYWNfZW52XyR7 YWNfdmFyfV92YWx1ZT1cJCR7YWNfdmFyfQorKyAgZXZhbCBhY19jdl9lbnZfJHthY192YXJ9X3Nl dD1cJHske2FjX3Zhcn0rc2V0fQorKyAgZXZhbCBhY19jdl9lbnZfJHthY192YXJ9X3ZhbHVlPVwk JHthY192YXJ9CisrZG9uZQorKworKyMKKysjIFJlcG9ydCB0aGUgLS1oZWxwIG1lc3NhZ2UuCisr IworK2lmIHRlc3QgIiRhY19pbml0X2hlbHAiID0gImxvbmciOyB0aGVuCisrICAjIE9taXQgc29t ZSBpbnRlcm5hbCBvciBvYnNvbGV0ZSBvcHRpb25zIHRvIG1ha2UgdGhlIGxpc3QgbGVzcyBpbXBv c2luZy4KKysgICMgVGhpcyBtZXNzYWdlIGlzIHRvbyBsb25nIHRvIGJlIGEgc3RyaW5nIGluIHRo ZSBBL1VYIDMuMSBzaC4KKysgIGNhdCA8PF9BQ0VPRgorK1xgY29uZmlndXJlJyBjb25maWd1cmVz IFNPQ0kgMy4wLjAgdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgorKworK1VzYWdl OiAkMCBbT1BUSU9OXS4uLiBbVkFSPVZBTFVFXS4uLgorKworK1RvIGFzc2lnbiBlbnZpcm9ubWVu dCB2YXJpYWJsZXMgKGUuZy4sIENDLCBDRkxBR1MuLi4pLCBzcGVjaWZ5IHRoZW0gYXMKKytWQVI9 VkFMVUUuICBTZWUgYmVsb3cgZm9yIGRlc2NyaXB0aW9ucyBvZiBzb21lIG9mIHRoZSB1c2VmdWwg dmFyaWFibGVzLgorKworK0RlZmF1bHRzIGZvciB0aGUgb3B0aW9ucyBhcmUgc3BlY2lmaWVkIGlu IGJyYWNrZXRzLgorKworK0NvbmZpZ3VyYXRpb246CisrICAtaCwgLS1oZWxwICAgICAgICAgICAg ICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAorKyAgICAgIC0taGVscD1zaG9ydCAgICAgICAg ZGlzcGxheSBvcHRpb25zIHNwZWNpZmljIHRvIHRoaXMgcGFja2FnZQorKyAgICAgIC0taGVscD1y ZWN1cnNpdmUgICAgZGlzcGxheSB0aGUgc2hvcnQgaGVscCBvZiBhbGwgdGhlIGluY2x1ZGVkIHBh Y2thZ2VzCisrICAtViwgLS12ZXJzaW9uICAgICAgICAgICBkaXNwbGF5IHZlcnNpb24gaW5mb3Jt YXRpb24gYW5kIGV4aXQKKysgIC1xLCAtLXF1aWV0LCAtLXNpbGVudCAgIGRvIG5vdCBwcmludCBc YGNoZWNraW5nIC4uLicgbWVzc2FnZXMKKysgICAgICAtLWNhY2hlLWZpbGU9RklMRSAgIGNhY2hl IHRlc3QgcmVzdWx0cyBpbiBGSUxFIFtkaXNhYmxlZF0KKysgIC1DLCAtLWNvbmZpZy1jYWNoZSAg ICAgIGFsaWFzIGZvciBcYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnCisrICAtbiwgLS1uby1j cmVhdGUgICAgICAgICBkbyBub3QgY3JlYXRlIG91dHB1dCBmaWxlcworKyAgICAgIC0tc3JjZGly PURJUiAgICAgICAgZmluZCB0aGUgc291cmNlcyBpbiBESVIgW2NvbmZpZ3VyZSBkaXIgb3IgXGAu LiddCisrCisrSW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzOgorKyAgLS1wcmVmaXg9UFJFRklYICAg ICAgICAgaW5zdGFsbCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMgaW4gUFJFRklYCisr ICAgICAgICAgICAgICAgICAgICAgICAgICBbJGFjX2RlZmF1bHRfcHJlZml4XQorKyAgLS1leGVj LXByZWZpeD1FUFJFRklYICAgaW5zdGFsbCBhcmNoaXRlY3R1cmUtZGVwZW5kZW50IGZpbGVzIGlu IEVQUkVGSVgKKysgICAgICAgICAgICAgICAgICAgICAgICAgIFtQUkVGSVhdCisrCisrQnkgZGVm YXVsdCwgXGBtYWtlIGluc3RhbGwnIHdpbGwgaW5zdGFsbCBhbGwgdGhlIGZpbGVzIGluCisrXGAk YWNfZGVmYXVsdF9wcmVmaXgvYmluJywgXGAkYWNfZGVmYXVsdF9wcmVmaXgvbGliJyBldGMuICBZ b3UgY2FuIHNwZWNpZnkKKythbiBpbnN0YWxsYXRpb24gcHJlZml4IG90aGVyIHRoYW4gXGAkYWNf ZGVmYXVsdF9wcmVmaXgnIHVzaW5nIFxgLS1wcmVmaXgnLAorK2ZvciBpbnN0YW5jZSBcYC0tcHJl Zml4PVwkSE9NRScuCisrCisrRm9yIGJldHRlciBjb250cm9sLCB1c2UgdGhlIG9wdGlvbnMgYmVs b3cuCisrCisrRmluZSB0dW5pbmcgb2YgdGhlIGluc3RhbGxhdGlvbiBkaXJlY3RvcmllczoKKysg IC0tYmluZGlyPURJUiAgICAgICAgICAgIHVzZXIgZXhlY3V0YWJsZXMgW0VQUkVGSVgvYmluXQor KyAgLS1zYmluZGlyPURJUiAgICAgICAgICAgc3lzdGVtIGFkbWluIGV4ZWN1dGFibGVzIFtFUFJF RklYL3NiaW5dCisrICAtLWxpYmV4ZWNkaXI9RElSICAgICAgICBwcm9ncmFtIGV4ZWN1dGFibGVz IFtFUFJFRklYL2xpYmV4ZWNdCisrICAtLXN5c2NvbmZkaXI9RElSICAgICAgICByZWFkLW9ubHkg c2luZ2xlLW1hY2hpbmUgZGF0YSBbUFJFRklYL2V0Y10KKysgIC0tc2hhcmVkc3RhdGVkaXI9RElS ICAgIG1vZGlmaWFibGUgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGRhdGEgW1BSRUZJWC9jb21d CisrICAtLWxvY2Fsc3RhdGVkaXI9RElSICAgICBtb2RpZmlhYmxlIHNpbmdsZS1tYWNoaW5lIGRh dGEgW1BSRUZJWC92YXJdCisrICAtLWxpYmRpcj1ESVIgICAgICAgICAgICBvYmplY3QgY29kZSBs aWJyYXJpZXMgW0VQUkVGSVgvbGliXQorKyAgLS1pbmNsdWRlZGlyPURJUiAgICAgICAgQyBoZWFk ZXIgZmlsZXMgW1BSRUZJWC9pbmNsdWRlXQorKyAgLS1vbGRpbmNsdWRlZGlyPURJUiAgICAgQyBo ZWFkZXIgZmlsZXMgZm9yIG5vbi1nY2MgWy91c3IvaW5jbHVkZV0KKysgIC0tZGF0YXJvb3RkaXI9 RElSICAgICAgIHJlYWQtb25seSBhcmNoLi1pbmRlcGVuZGVudCBkYXRhIHJvb3QgW1BSRUZJWC9z aGFyZV0KKysgIC0tZGF0YWRpcj1ESVIgICAgICAgICAgIHJlYWQtb25seSBhcmNoaXRlY3R1cmUt aW5kZXBlbmRlbnQgZGF0YSBbREFUQVJPT1RESVJdCisrICAtLWluZm9kaXI9RElSICAgICAgICAg ICBpbmZvIGRvY3VtZW50YXRpb24gW0RBVEFST09URElSL2luZm9dCisrICAtLWxvY2FsZWRpcj1E SVIgICAgICAgICBsb2NhbGUtZGVwZW5kZW50IGRhdGEgW0RBVEFST09URElSL2xvY2FsZV0KKysg IC0tbWFuZGlyPURJUiAgICAgICAgICAgIG1hbiBkb2N1bWVudGF0aW9uIFtEQVRBUk9PVERJUi9t YW5dCisrICAtLWRvY2Rpcj1ESVIgICAgICAgICAgICBkb2N1bWVudGF0aW9uIHJvb3QgW0RBVEFS T09URElSL2RvYy9zb2NpXQorKyAgLS1odG1sZGlyPURJUiAgICAgICAgICAgaHRtbCBkb2N1bWVu dGF0aW9uIFtET0NESVJdCisrICAtLWR2aWRpcj1ESVIgICAgICAgICAgICBkdmkgZG9jdW1lbnRh dGlvbiBbRE9DRElSXQorKyAgLS1wZGZkaXI9RElSICAgICAgICAgICAgcGRmIGRvY3VtZW50YXRp b24gW0RPQ0RJUl0KKysgIC0tcHNkaXI9RElSICAgICAgICAgICAgIHBzIGRvY3VtZW50YXRpb24g W0RPQ0RJUl0KKytfQUNFT0YKKysKKysgIGNhdCA8PFxfQUNFT0YKKysKKytQcm9ncmFtIG5hbWVz OgorKyAgLS1wcm9ncmFtLXByZWZpeD1QUkVGSVggICAgICAgICAgICBwcmVwZW5kIFBSRUZJWCB0 byBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcworKyAgLS1wcm9ncmFtLXN1ZmZpeD1TVUZGSVggICAg ICAgICAgICBhcHBlbmQgU1VGRklYIHRvIGluc3RhbGxlZCBwcm9ncmFtIG5hbWVzCisrICAtLXBy b2dyYW0tdHJhbnNmb3JtLW5hbWU9UFJPR1JBTSAgIHJ1biBzZWQgUFJPR1JBTSBvbiBpbnN0YWxs ZWQgcHJvZ3JhbSBuYW1lcworKworK1N5c3RlbSB0eXBlczoKKysgIC0tYnVpbGQ9QlVJTEQgICAg IGNvbmZpZ3VyZSBmb3IgYnVpbGRpbmcgb24gQlVJTEQgW2d1ZXNzZWRdCisrICAtLWhvc3Q9SE9T VCAgICAgICBjcm9zcy1jb21waWxlIHRvIGJ1aWxkIHByb2dyYW1zIHRvIHJ1biBvbiBIT1NUIFtC VUlMRF0KKytfQUNFT0YKKytmaQorKworK2lmIHRlc3QgLW4gIiRhY19pbml0X2hlbHAiOyB0aGVu CisrICBjYXNlICRhY19pbml0X2hlbHAgaW4KKysgICAgIHNob3J0IHwgcmVjdXJzaXZlICkgZWNo byAiQ29uZmlndXJhdGlvbiBvZiBTT0NJIDMuMC4wOiI7OworKyAgIGVzYWMKKysgIGNhdCA8PFxf QUNFT0YKKysKKytPcHRpb25hbCBGZWF0dXJlczoKKysgIC0tZGlzYWJsZS1vcHRpb24tY2hlY2tp bmcgIGlnbm9yZSB1bnJlY29nbml6ZWQgLS1lbmFibGUvLS13aXRoIG9wdGlvbnMKKysgIC0tZGlz YWJsZS1GRUFUVVJFICAgICAgIGRvIG5vdCBpbmNsdWRlIEZFQVRVUkUgKHNhbWUgYXMgLS1lbmFi bGUtRkVBVFVSRT1ubykKKysgIC0tZW5hYmxlLUZFQVRVUkVbPUFSR10gIGluY2x1ZGUgRkVBVFVS RSBbQVJHPXllc10KKysgIC0tZW5hYmxlLXNoYXJlZFs9UEtHU10gIGJ1aWxkIHNoYXJlZCBsaWJy YXJpZXMgW2RlZmF1bHQ9bm9dCisrICAtLWVuYWJsZS1zdGF0aWNbPVBLR1NdICBidWlsZCBzdGF0 aWMgbGlicmFyaWVzIFtkZWZhdWx0PXllc10KKysgIC0tZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNr aW5nICBzcGVlZHMgdXAgb25lLXRpbWUgYnVpbGQKKysgIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJh Y2tpbmcgICBkbyBub3QgcmVqZWN0IHNsb3cgZGVwZW5kZW5jeSBleHRyYWN0b3JzCisrICAtLWVu YWJsZS1mYXN0LWluc3RhbGxbPVBLR1NdCisrICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRp bWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24gW2RlZmF1bHQ9eWVzXQorKyAgLS1kaXNhYmxlLWxp YnRvb2wtbG9jayAgYXZvaWQgbG9ja2luZyAobWlnaHQgYnJlYWsgcGFyYWxsZWwgYnVpbGRzKQor KyAgLS1lbmFibGUtZXhjZXB0aW9ucyAgICAgZW5hYmxlIGV4Y2VwdGlvbnMgaGFuZGxpbmcgbWVj aGFuaXNtCisrICAtLWRpc2FibGUtaW5mby1kb2MgICAgICBkbyBub3QgZ2VuZXJhdGUgSW5mbyBk b2N1bWVudGF0aW9uCisrICAtLWRpc2FibGUtaHRtbC1kb2MgICAgICBkbyBub3QgZ2VuZXJhdGUg SFRNTCBkb2N1bWVudGF0aW9uCisrICAtLWVuYWJsZS1idXJyaWVkLWhlYWRlcnMKKysgICAgICAg ICAgICAgICAgICAgICAgICAgIGluY2x1ZGUgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3Rvcnkg c3RydWN0dXJlCisrICAtLWVuYWJsZS1teXNxbC1idXJyaWVkLWhlYWRlcnMKKysgICAgICAgICAg ICAgICAgICAgICAgICAgIGluY2x1ZGUgTXlTUUwgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3Rv cnkKKysgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZQorKyAgLS1lbmFibGUtcG9z dGdyZXNxbC1idXJyaWVkLWhlYWRlcnMKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1 ZGUgUG9zdEdyZVNRTCBoZWFkZXIgZmlsZXMgZnJvbSBhIGRpcmVjdG9yeQorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0dXJlCisrICAtLWVuYWJsZS1iYWNrZW5kLW15c3FsICBidWls ZC1pbiBNeVNRTCBiYWNrZW5kIHN1cHBvcnQgW2RlZmF1bHQ9bm9dCisrICAtLWVuYWJsZS1iYWNr ZW5kLW9yYWNsZSBidWlsZC1pbiBPUkFDTEUgYmFja2VuZCBzdXBwb3J0IFtkZWZhdWx0PW5vXQor KyAgLS1lbmFibGUtYmFja2VuZC1wb3N0Z3Jlc3FsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICBidWlsZC1pbiBQb3N0Z3JlU1FMIGJhY2tlbmQgc3VwcG9ydCBbZGVmYXVsdD1ub10KKysKKytP cHRpb25hbCBQYWNrYWdlczoKKysgIC0td2l0aC1QQUNLQUdFWz1BUkddICAgIHVzZSBQQUNLQUdF IFtBUkc9eWVzXQorKyAgLS13aXRob3V0LVBBQ0tBR0UgICAgICAgZG8gbm90IHVzZSBQQUNLQUdF IChzYW1lIGFzIC0td2l0aC1QQUNLQUdFPW5vKQorKyAgLS13aXRoLWNwcHVuaXQtcHJlZml4PVBG WCAgIFByZWZpeCB3aGVyZSBDcHBVbml0IGlzIGluc3RhbGxlZCAob3B0aW9uYWwpCisrICAtLXdp dGgtY3BwdW5pdC1leGVjLXByZWZpeD1QRlggIEV4ZWMgcHJlZml4IHdoZXJlIENwcFVuaXQgaXMg aW5zdGFsbGVkIChvcHRpb25hbCkKKysgIC0td2l0aC1waWMgICAgICAgICAgICAgIHRyeSB0byB1 c2Ugb25seSBQSUMvbm9uLVBJQyBvYmplY3RzIFtkZWZhdWx0PXVzZQorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgYm90aF0KKysgIC0td2l0aC1nbnUtbGQgICAgICAgICAgIGFzc3VtZSB0aGUg QyBjb21waWxlciB1c2VzIEdOVSBsZCBbZGVmYXVsdD1ub10KKysgIC0td2l0aC1kb2NkaXI9RElS ICAgICAgIHNldCBkb2N1bWVudGF0aW9uIGRpcmVjdG9yeSB0byBESVIKKysgIC0td2l0aC1ib29z dD1ESVIgICAgICAgIHVzZSBib29zdCAoZGVmYXVsdCBpcyBOTykgLCBzcGVjaWZ5IHRoZSByb290 CisrICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnkgZm9yIGJvb3N0IGxpYnJhcnkg KG9wdGlvbmFsKQorKyAgLS13aXRoLW15c3FsPTxwYXRoPiAgICAgcm9vdCBkaXJlY3RvcnkgcGF0 aCBvZiBNeVNRTCBpbnN0YWxsYXRpb24KKysgIC0td2l0aC1teXNxbC1saWI9PHBhdGg+IGRpcmVj dG9yeSBwYXRoIG9mIE15U1FMIGxpYnJhcnkgaW5zdGFsbGF0aW9uCisrICAtLXdpdGgtbXlzcWwt aW5jbHVkZT08cGF0aD4gZGlyZWN0b3J5IHBhdGggb2YgTXlTUUwgaGVhZGVyIGluc3RhbGxhdGlv bgorKyAgLS13aXRoLW9yYWNsZT1bRElSXSAgICAgdXNlIE9yYWNsZSBPQ0kgQVBJIGZyb20gZ2l2 ZW4gcGF0aCB0byBPcmFjbGUgaG9tZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0 b3J5CisrICAtLXdpdGgtb3JhY2xlLWluY2x1ZGU9W0RJUl0KKysgICAgICAgICAgICAgICAgICAg ICAgICAgIHVzZSBPcmFjbGUgT0NJIEFQSSBoZWFkZXJzIGZyb20gZ2l2ZW4gcGF0aAorKyAgLS13 aXRoLW9yYWNsZS1saWI9W0RJUl0gdXNlIE9yYWNsZSBPQ0kgQVBJIGxpYnJhcmllcyBmcm9tIGdp dmVuIHBhdGgKKysgIC0td2l0aC1wb3N0Z3Jlc3FsPVtBUkddIHVzZSBQb3N0Z3JlU1FMIGxpYnJh cnkgW2RlZmF1bHQ9eWVzXSwgb3B0aW9uYWxseQorKyAgICAgICAgICAgICAgICAgICAgICAgICAg c3BlY2lmeSBwYXRoIHRvIHBnX2NvbmZpZworKworK1NvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1l bnQgdmFyaWFibGVzOgorKyAgQ1hYICAgICAgICAgQysrIGNvbXBpbGVyIGNvbW1hbmQKKysgIENY WEZMQUdTICAgIEMrKyBjb21waWxlciBmbGFncworKyAgTERGTEFHUyAgICAgbGlua2VyIGZsYWdz LCBlLmcuIC1MPGxpYiBkaXI+IGlmIHlvdSBoYXZlIGxpYnJhcmllcyBpbiBhCisrICAgICAgICAg ICAgICBub25zdGFuZGFyZCBkaXJlY3RvcnkgPGxpYiBkaXI+CisrICBMSUJTICAgICAgICBsaWJy YXJpZXMgdG8gcGFzcyB0byB0aGUgbGlua2VyLCBlLmcuIC1sPGxpYnJhcnk+CisrICBDUFBGTEFH UyAgICAoT2JqZWN0aXZlKSBDL0MrKyBwcmVwcm9jZXNzb3IgZmxhZ3MsIGUuZy4gLUk8aW5jbHVk ZSBkaXI+IGlmCisrICAgICAgICAgICAgICB5b3UgaGF2ZSBoZWFkZXJzIGluIGEgbm9uc3RhbmRh cmQgZGlyZWN0b3J5IDxpbmNsdWRlIGRpcj4KKysgIENYWENQUCAgICAgIEMrKyBwcmVwcm9jZXNz b3IKKysgIENDICAgICAgICAgIEMgY29tcGlsZXIgY29tbWFuZAorKyAgQ0ZMQUdTICAgICAgQyBj b21waWxlciBmbGFncworKyAgQ1BQICAgICAgICAgQyBwcmVwcm9jZXNzb3IKKysKKytVc2UgdGhl c2UgdmFyaWFibGVzIHRvIG92ZXJyaWRlIHRoZSBjaG9pY2VzIG1hZGUgYnkgYGNvbmZpZ3VyZScg b3IgdG8gaGVscAorK2l0IHRvIGZpbmQgbGlicmFyaWVzIGFuZCBwcm9ncmFtcyB3aXRoIG5vbnN0 YW5kYXJkIG5hbWVzL2xvY2F0aW9ucy4KKysKKytSZXBvcnQgYnVncyB0byA8bXNvYmN6YWtAdXNl cnMuc291cmNlZm9yZ2UubmV0Pi4KKytfQUNFT0YKKythY19zdGF0dXM9JD8KKytmaQorKworK2lm IHRlc3QgIiRhY19pbml0X2hlbHAiID0gInJlY3Vyc2l2ZSI7IHRoZW4KKysgICMgSWYgdGhlcmUg YXJlIHN1YmRpcnMsIHJlcG9ydCB0aGVpciBzcGVjaWZpYyAtLWhlbHAuCisrICBmb3IgYWNfZGly IGluIDogJGFjX3N1YmRpcnNfYWxsOyBkbyB0ZXN0ICJ4JGFjX2RpciIgPSB4OiAmJiBjb250aW51 ZQorKyAgICB0ZXN0IC1kICIkYWNfZGlyIiB8fAorKyAgICAgIHsgY2QgIiRzcmNkaXIiICYmIGFj X3B3ZD1gcHdkYCAmJiBzcmNkaXI9LiAmJiB0ZXN0IC1kICIkYWNfZGlyIjsgfSB8fAorKyAgICAg IGNvbnRpbnVlCisrICAgIGFjX2J1aWxkZGlyPS4KKysKKytjYXNlICIkYWNfZGlyIiBpbgorKy4p IGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4 PSA7OworKyopCisrICBhY19kaXJfc3VmZml4PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwgc2VkICdz fF5cLltcXC9dfHwnYAorKyAgIyBBICIuLiIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJf c3VmZml4LgorKyAgYWNfdG9wX2J1aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4 IiB8IHNlZCAnc3wvW15cXC9dKnwvLi58ZztzfC98fCdgCisrICBjYXNlICRhY190b3BfYnVpbGRk aXJfc3ViIGluCisrICAiIikgYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVm aXg9IDs7CisrICAqKSAgYWNfdG9wX2J1aWxkX3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1Yi8g OzsKKysgIGVzYWMgOzsKKytlc2FjCisrYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfcHdkCisrYWNf YWJzX2J1aWxkZGlyPSRhY19wd2QkYWNfZGlyX3N1ZmZpeAorKyMgZm9yIGJhY2t3YXJkIGNvbXBh dGliaWxpdHk6CisrYWNfdG9wX2J1aWxkZGlyPSRhY190b3BfYnVpbGRfcHJlZml4CisrCisrY2Fz ZSAkc3JjZGlyIGluCisrICAuKSAgIyBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCisrICAgIGFj X3NyY2Rpcj0uCisrICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKKysgICAg YWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZCA7OworKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBB YnNvbHV0ZSBuYW1lLgorKyAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OworKyAg ICBhY190b3Bfc3JjZGlyPSRzcmNkaXIKKysgICAgYWNfYWJzX3RvcF9zcmNkaXI9JHNyY2RpciA7 OworKyAgKikgIyBSZWxhdGl2ZSBuYW1lLgorKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZF9w cmVmaXgkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKKysgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1 aWxkX3ByZWZpeCRzcmNkaXIKKysgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3JjZGly IDs7CisrZXNhYworK2FjX2Fic19zcmNkaXI9JGFjX2Fic190b3Bfc3JjZGlyJGFjX2Rpcl9zdWZm aXgKKysKKysgICAgY2QgIiRhY19kaXIiIHx8IHsgYWNfc3RhdHVzPSQ/OyBjb250aW51ZTsgfQor KyAgICAjIENoZWNrIGZvciBndWVzdGVkIGNvbmZpZ3VyZS4KKysgICAgaWYgdGVzdCAtZiAiJGFj X3NyY2Rpci9jb25maWd1cmUuZ251IjsgdGhlbgorKyAgICAgIGVjaG8gJiYKKysgICAgICAkU0hF TEwgIiRhY19zcmNkaXIvY29uZmlndXJlLmdudSIgLS1oZWxwPXJlY3Vyc2l2ZQorKyAgICBlbGlm IHRlc3QgLWYgIiRhY19zcmNkaXIvY29uZmlndXJlIjsgdGhlbgorKyAgICAgIGVjaG8gJiYKKysg ICAgICAkU0hFTEwgIiRhY19zcmNkaXIvY29uZmlndXJlIiAtLWhlbHA9cmVjdXJzaXZlCisrICAg IGVsc2UKKysgICAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBubyBjb25maWd1cmF0aW9u IGluZm9ybWF0aW9uIGlzIGluICRhY19kaXIiID4mMgorKyAgICBmaSB8fCBhY19zdGF0dXM9JD8K KysgICAgY2QgIiRhY19wd2QiIHx8IHsgYWNfc3RhdHVzPSQ/OyBicmVhazsgfQorKyAgZG9uZQor K2ZpCisrCisrdGVzdCAtbiAiJGFjX2luaXRfaGVscCIgJiYgZXhpdCAkYWNfc3RhdHVzCisraWYg JGFjX2luaXRfdmVyc2lvbjsgdGhlbgorKyAgY2F0IDw8XF9BQ0VPRgorK1NPQ0kgY29uZmlndXJl IDMuMC4wCisrZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY2CisrCisrQ29weXJpZ2h0IChD KSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorK1RoaXMgY29uZmlndXJlIHNj cmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrZ2l2 ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0 LgorKworK0NvcHlyaWdodCAoQykgMjAwNC0yMDExIE1hY2llaiBTb2JjemFrIDxtc29iY3pha0B1 c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisrX0FDRU9GCisrICBleGl0CisrZmkKKysKKysjIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBBdXRvY29uZiBpbml0aWFsaXphdGlvbi4gIyMK KysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysKKysjIGFjX2ZuX2N4eF90cnlfY29t cGlsZSBMSU5FTk8KKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFRyeSB0byBj b21waWxlIGNvbmZ0ZXN0LiRhY19leHQsIGFuZCByZXR1cm4gd2hldGhlciB0aGlzIHN1Y2NlZWRl ZC4KKythY19mbl9jeHhfdHJ5X2NvbXBpbGUgKCkKKyt7CisrICBhc19saW5lbm89JHthc19saW5l bm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNr CisrICBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisrICBpZiB7IHsgYWNfdHJ5PSIkYWNfY29t cGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY190cnlf ZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iOyB9ID4mNQorKyAgKGV2YWwgIiRhY19j b21waWxlIikgMj5jb25mdGVzdC5lcnIKKysgIGFjX3N0YXR1cz0kPworKyAgaWYgdGVzdCAtcyBj b25mdGVzdC5lcnI7IHRoZW4KKysgICAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXJyID5jb25m dGVzdC5lcjEKKysgICAgY2F0IGNvbmZ0ZXN0LmVyMSA+JjUKKysgICAgbXYgLWYgY29uZnRlc3Qu ZXIxIGNvbmZ0ZXN0LmVycgorKyAgZmkKKysgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsg fSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsg dGhlbiA6CisrICBhY19yZXR2YWw9MAorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxl ZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK KysKKysJYWNfcmV0dmFsPTEKKytmaQorKyAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyB0ZXN0ICJ4 JGFzX2xpbmVub19zdGFjayIgPSB4ICYmIHsgYXNfbGluZW5vPTsgdW5zZXQgYXNfbGluZW5vO30K KysgIGFzX2ZuX3NldF9zdGF0dXMgJGFjX3JldHZhbAorKworK30gIyBhY19mbl9jeHhfdHJ5X2Nv bXBpbGUKKysKKysjIGFjX2ZuX2N4eF90cnlfY3BwIExJTkVOTworKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBUcnkgdG8gcHJlcHJvY2VzcyBjb25mdGVzdC4kYWNfZXh0LCBhbmQgcmV0 dXJuIHdoZXRoZXIgdGhpcyBzdWNjZWVkZWQuCisrYWNfZm5fY3h4X3RyeV9jcHAgKCkKKyt7Cisr ICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19z dGFjaz0kYXNfbGluZW5vX3N0YWNrCisrICBpZiB7IHsgYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0 LiRhY19leHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2Fj CisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNf dHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKKysgIChldmFsICIk YWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVycgorKyAgYWNfc3RhdHVzPSQ/ CisrICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgorKyAgICBncmVwIC12ICdeICorJyBj b25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMQorKyAgICBjYXQgY29uZnRlc3QuZXIxID4mNQorKyAg ICBtdiAtZiBjb25mdGVzdC5lcjEgY29uZnRlc3QuZXJyCisrICBmaQorKyAgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0 ICRhY19zdGF0dXMgPSAwOyB9ID4vZGV2L251bGwgJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF9w cmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4gOgorKyAgYWNfcmV0dmFsPTAKKytlbHNlCisrICAk YXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8n IGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICAgIGFjX3JldHZhbD0xCisrZmkKKysgIGV2YWwg JGFzX2xpbmVub19zdGFjazsgdGVzdCAieCRhc19saW5lbm9fc3RhY2siID0geCAmJiB7IGFzX2xp bmVubz07IHVuc2V0IGFzX2xpbmVubzt9CisrICBhc19mbl9zZXRfc3RhdHVzICRhY19yZXR2YWwK KysKKyt9ICMgYWNfZm5fY3h4X3RyeV9jcHAKKysKKysjIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgTElO RU5PCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgVHJ5IHRvIGNvbXBpbGUgY29u ZnRlc3QuJGFjX2V4dCwgYW5kIHJldHVybiB3aGV0aGVyIHRoaXMgc3VjY2VlZGVkLgorK2FjX2Zu X2NfdHJ5X2NvbXBpbGUgKCkKKyt7CisrICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNf bGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCisrICBybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0CisrICBpZiB7IHsgYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNl ICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgorKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iOyB9ID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5j b25mdGVzdC5lcnIKKysgIGFjX3N0YXR1cz0kPworKyAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7 IHRoZW4KKysgICAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjEKKysg ICAgY2F0IGNvbmZ0ZXN0LmVyMSA+JjUKKysgICAgbXYgLWYgY29uZnRlc3QuZXIxIGNvbmZ0ZXN0 LmVycgorKyAgZmkKKysgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwk PyA9ICRhY19zdGF0dXMiID4mNQorKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAmJiB7CisrCSB0 ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIK KysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4gOgorKyAgYWNf cmV0dmFsPTAKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX3JldHZh bD0xCisrZmkKKysgIGV2YWwgJGFzX2xpbmVub19zdGFjazsgdGVzdCAieCRhc19saW5lbm9fc3Rh Y2siID0geCAmJiB7IGFzX2xpbmVubz07IHVuc2V0IGFzX2xpbmVubzt9CisrICBhc19mbl9zZXRf c3RhdHVzICRhY19yZXR2YWwKKysKKyt9ICMgYWNfZm5fY190cnlfY29tcGlsZQorKworKyMgYWNf Zm5fY190cnlfbGluayBMSU5FTk8KKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBUcnkg dG8gbGluayBjb25mdGVzdC4kYWNfZXh0LCBhbmQgcmV0dXJuIHdoZXRoZXIgdGhpcyBzdWNjZWVk ZWQuCisrYWNfZm5fY190cnlfbGluayAoKQorK3sKKysgIGFzX2xpbmVubz0ke2FzX2xpbmVuby0i JDEifSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9fc3RhY2sKKysg IHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisrICBpZiB7IHsg YWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iOyB9ID4mNQorKyAg KGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcnIKKysgIGFjX3N0YXR1cz0kPworKyAgaWYg dGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKysgICAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu ZXJyID5jb25mdGVzdC5lcjEKKysgICAgY2F0IGNvbmZ0ZXN0LmVyMSA+JjUKKysgICAgbXYgLWYg Y29uZnRlc3QuZXIxIGNvbmZ0ZXN0LmVycgorKyAgZmkKKysgICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgdGVzdCAkYWNfc3Rh dHVzID0gMDsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRl c3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rl c3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbiA6CisrICBhY19yZXR2YWw9 MAorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQor K3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfcmV0dmFsPTEKKytm aQorKyAgIyBEZWxldGUgdGhlIElQQS9JUE8gKEludGVyIFByb2NlZHVyYWwgQW5hbHlzaXMvT3B0 aW1pemF0aW9uKSBpbmZvcm1hdGlvbgorKyAgIyBjcmVhdGVkIGJ5IHRoZSBQR0kgY29tcGlsZXIg KGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28pLCBhcyBpdCB3b3VsZAorKyAgIyBpbnRlcmZlcmUg d2l0aCB0aGUgbmV4dCBsaW5rIGNvbW1hbmQ7IGFsc28gZGVsZXRlIGEgZGlyZWN0b3J5IHRoYXQg aXMKKysgICMgbGVmdCBiZWhpbmQgYnkgQXBwbGUncyBjb21waWxlci4gIFdlIGRvIHRoaXMgYmVm b3JlIGV4ZWN1dGluZyB0aGUgYWN0aW9ucy4KKysgIHJtIC1yZiBjb25mdGVzdC5kU1lNIGNvbmZ0 ZXN0X2lwYThfY29uZnRlc3Qub28KKysgIGV2YWwgJGFzX2xpbmVub19zdGFjazsgdGVzdCAieCRh c19saW5lbm9fc3RhY2siID0geCAmJiB7IGFzX2xpbmVubz07IHVuc2V0IGFzX2xpbmVubzt9Cisr ICBhc19mbl9zZXRfc3RhdHVzICRhY19yZXR2YWwKKysKKyt9ICMgYWNfZm5fY190cnlfbGluawor KworKyMgYWNfZm5fY19jaGVja19oZWFkZXJfY29tcGlsZSBMSU5FTk8gSEVBREVSIFZBUiBJTkNM VURFUworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorKyMgVGVzdHMgd2hldGhlciBIRUFERVIgZXhpc3RzIGFuZCBjYW4gYmUgY29tcGls ZWQgdXNpbmcgdGhlIGluY2x1ZGUgZmlsZXMgaW4KKysjIElOQ0xVREVTLCBzZXR0aW5nIHRoZSBj YWNoZSB2YXJpYWJsZSBWQVIgYWNjb3JkaW5nbHkuCisrYWNfZm5fY19jaGVja19oZWFkZXJfY29t cGlsZSAoKQorK3sKKysgIGFzX2xpbmVubz0ke2FzX2xpbmVuby0iJDEifSBhc19saW5lbm9fc3Rh Y2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9fc3RhY2sKKysgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICQyIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJDIuLi4gIiA+JjY7IH0KKytpZiBldmFsICJ0ZXN0IFwiXCR7JDMrc2V0 fVwiIiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQg Y29uZmRlZnMuaC4gICovCisrJDQKKysjaW5jbHVkZSA8JDI+CisrX0FDRU9GCisraWYgYWNfZm5f Y190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKyAgZXZhbCAiJDM9eWVzIgorK2Vsc2UK KysgIGV2YWwgIiQzPW5vIgorK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrZmkKKytldmFsIGFjX3Jlcz1cJCQzCisrCSAg ICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFj X3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorKyAgZXZhbCAkYXNfbGluZW5v X3N0YWNrOyB0ZXN0ICJ4JGFzX2xpbmVub19zdGFjayIgPSB4ICYmIHsgYXNfbGluZW5vPTsgdW5z ZXQgYXNfbGluZW5vO30KKysKKyt9ICMgYWNfZm5fY19jaGVja19oZWFkZXJfY29tcGlsZQorKwor KyMgYWNfZm5fY190cnlfY3BwIExJTkVOTworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMg VHJ5IHRvIHByZXByb2Nlc3MgY29uZnRlc3QuJGFjX2V4dCwgYW5kIHJldHVybiB3aGV0aGVyIHRo aXMgc3VjY2VlZGVkLgorK2FjX2ZuX2NfdHJ5X2NwcCAoKQorK3sKKysgIGFzX2xpbmVubz0ke2Fz X2xpbmVuby0iJDEifSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9f c3RhY2sKKysgIGlmIHsgeyBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNl ICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgorKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iOyB9ID4mNQorKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3Qu JGFjX2V4dCIpIDI+Y29uZnRlc3QuZXJyCisrICBhY19zdGF0dXM9JD8KKysgIGlmIHRlc3QgLXMg Y29uZnRlc3QuZXJyOyB0aGVuCisrICAgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyciA+Y29u ZnRlc3QuZXIxCisrICAgIGNhdCBjb25mdGVzdC5lcjEgPiY1CisrICAgIG12IC1mIGNvbmZ0ZXN0 LmVyMSBjb25mdGVzdC5lcnIKKysgIGZpCisrICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7 IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRh Y19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9 OyB0aGVuIDoKKysgIGFjX3JldHZhbD0wCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQorKworKyAgICBhY19yZXR2YWw9MQorK2ZpCisrICBldmFsICRhc19saW5lbm9fc3RhY2s7IHRl c3QgIngkYXNfbGluZW5vX3N0YWNrIiA9IHggJiYgeyBhc19saW5lbm89OyB1bnNldCBhc19saW5l bm87fQorKyAgYXNfZm5fc2V0X3N0YXR1cyAkYWNfcmV0dmFsCisrCisrfSAjIGFjX2ZuX2NfdHJ5 X2NwcAorKworKyMgYWNfZm5fY190cnlfcnVuIExJTkVOTworKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKyMgVHJ5IHRvIGxpbmsgY29uZnRlc3QuJGFjX2V4dCwgYW5kIHJldHVybiB3aGV0aGVy IHRoaXMgc3VjY2VlZGVkLiBBc3N1bWVzCisrIyB0aGF0IGV4ZWN1dGFibGVzICpjYW4qIGJlIHJ1 bi4KKythY19mbl9jX3RyeV9ydW4gKCkKKyt7CisrICBhc19saW5lbm89JHthc19saW5lbm8tIiQx In0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCisrICBp ZiB7IHsgYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iOyB9ID4m NQorKyAgKGV2YWwgIiRhY19saW5rIikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysg IHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0 JworKyAgeyB7IGNhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNf dHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYwor K2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogJGFjX3Ry eV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyI7IH0gPiY1CisrICAoZXZhbCAiJGFj X3RyeSIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0ICRhY19zdGF0dXMg PSAwOyB9OyB9OyB0aGVuIDoKKysgIGFjX3JldHZhbD0wCisrZWxzZQorKyAgJGFzX2VjaG8gIiRh c19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1CisrICAgICAg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysgICAgICAgYWNfcmV0dmFsPSRhY19zdGF0dXMK KytmaQorKyAgcm0gLXJmIGNvbmZ0ZXN0LmRTWU0gY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbwor KyAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyB0ZXN0ICJ4JGFzX2xpbmVub19zdGFjayIgPSB4ICYm IHsgYXNfbGluZW5vPTsgdW5zZXQgYXNfbGluZW5vO30KKysgIGFzX2ZuX3NldF9zdGF0dXMgJGFj X3JldHZhbAorKworK30gIyBhY19mbl9jX3RyeV9ydW4KKysKKysjIGFjX2ZuX2NfY2hlY2tfZnVu YyBMSU5FTk8gRlVOQyBWQVIKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysjIFRlc3RzIHdoZXRoZXIgRlVOQyBleGlzdHMsIHNldHRpbmcgdGhlIGNhY2hlIHZhcmlhYmxl IFZBUiBhY2NvcmRpbmdseQorK2FjX2ZuX2NfY2hlY2tfZnVuYyAoKQorK3sKKysgIGFzX2xpbmVu bz0ke2FzX2xpbmVuby0iJDEifSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19s aW5lbm9fc3RhY2sKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgZm9yICQyIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJDIuLi4gIiA+ JjY7IH0KKytpZiBldmFsICJ0ZXN0IFwiXCR7JDMrc2V0fVwiIiA9IHNldDsgdGhlbiA6CisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCBjb25mZGVmcy5oIC0gPDxf QUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrLyogRGVm aW5lICQyIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFy ZXMgJDIuCisrICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdl dHRpbWVvZmRheS4gICovCisrI2RlZmluZSAkMiBpbm5vY3VvdXNfJDIKKysKKysvKiBTeXN0ZW0g aGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlw ZXMsCisrICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgJDIgKCk7IGJlbG93LgorKyAg ICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQs IHNpbmNlCisrICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBp bGVycy4gICovCisrCisrI2lmZGVmIF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1pdHMuaD4KKysj ZWxzZQorKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisrI2VuZGlmCisrCisrI3VuZGVmICQyCisrCisr LyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3Iu CisrICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9m IGEgR0NDCisrICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxk IHN0aWxsIGFwcGx5LiAgKi8KKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2Vu ZGlmCisrY2hhciAkMiAoKTsKKysvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9y IGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCisrICAgIHRvIGFsd2F5cyBmYWlsIHdpdGgg RU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCisrICAgIHNvbWV0aGlu ZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwor KyNpZiBkZWZpbmVkIF9fc3R1Yl8kMiB8fCBkZWZpbmVkIF9fc3R1Yl9fXyQyCisrY2hva2UgbWUK KysjZW5kaWYKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiAkMiAoKTsKKysgIDsKKysg IHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsg dGhlbiA6CisrICBldmFsICIkMz15ZXMiCisrZWxzZQorKyAgZXZhbCAiJDM9bm8iCisrZmkKKyty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRl c3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorK2V2YWwgYWNfcmVzPVwkJDMKKysJ ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk YWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrICBldmFsICRhc19saW5l bm9fc3RhY2s7IHRlc3QgIngkYXNfbGluZW5vX3N0YWNrIiA9IHggJiYgeyBhc19saW5lbm89OyB1 bnNldCBhc19saW5lbm87fQorKworK30gIyBhY19mbl9jX2NoZWNrX2Z1bmMKKysKKysjIGFjX2Zu X2N4eF90cnlfbGluayBMSU5FTk8KKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFRy eSB0byBsaW5rIGNvbmZ0ZXN0LiRhY19leHQsIGFuZCByZXR1cm4gd2hldGhlciB0aGlzIHN1Y2Nl ZWRlZC4KKythY19mbl9jeHhfdHJ5X2xpbmsgKCkKKyt7CisrICBhc19saW5lbm89JHthc19saW5l bm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNr CisrICBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgaWYg eyB7IGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUK KysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXJyCisrICBhY19zdGF0dXM9JD8KKysg IGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCisrICAgIGdyZXAgLXYgJ14gKisnIGNvbmZ0 ZXN0LmVyciA+Y29uZnRlc3QuZXIxCisrICAgIGNhdCBjb25mdGVzdC5lcjEgPiY1CisrICAgIG12 IC1mIGNvbmZ0ZXN0LmVyMSBjb25mdGVzdC5lcnIKKysgIGZpCisrICAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIHRlc3QgJGFj X3N0YXR1cyA9IDA7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwK KysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkg JGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbiA6CisrICBhY19y ZXR2YWw9MAorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfcmV0dmFs PTEKKytmaQorKyAgIyBEZWxldGUgdGhlIElQQS9JUE8gKEludGVyIFByb2NlZHVyYWwgQW5hbHlz aXMvT3B0aW1pemF0aW9uKSBpbmZvcm1hdGlvbgorKyAgIyBjcmVhdGVkIGJ5IHRoZSBQR0kgY29t cGlsZXIgKGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28pLCBhcyBpdCB3b3VsZAorKyAgIyBpbnRl cmZlcmUgd2l0aCB0aGUgbmV4dCBsaW5rIGNvbW1hbmQ7IGFsc28gZGVsZXRlIGEgZGlyZWN0b3J5 IHRoYXQgaXMKKysgICMgbGVmdCBiZWhpbmQgYnkgQXBwbGUncyBjb21waWxlci4gIFdlIGRvIHRo aXMgYmVmb3JlIGV4ZWN1dGluZyB0aGUgYWN0aW9ucy4KKysgIHJtIC1yZiBjb25mdGVzdC5kU1lN IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28KKysgIGV2YWwgJGFzX2xpbmVub19zdGFjazsgdGVz dCAieCRhc19saW5lbm9fc3RhY2siID0geCAmJiB7IGFzX2xpbmVubz07IHVuc2V0IGFzX2xpbmVu bzt9CisrICBhc19mbl9zZXRfc3RhdHVzICRhY19yZXR2YWwKKysKKyt9ICMgYWNfZm5fY3h4X3Ry eV9saW5rCisrCisrIyBhY19mbl9jeHhfdHJ5X3J1biBMSU5FTk8KKysjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKyMgVHJ5IHRvIGxpbmsgY29uZnRlc3QuJGFjX2V4dCwgYW5kIHJldHVybiB3 aGV0aGVyIHRoaXMgc3VjY2VlZGVkLiBBc3N1bWVzCisrIyB0aGF0IGV4ZWN1dGFibGVzICpjYW4q IGJlIHJ1bi4KKythY19mbl9jeHhfdHJ5X3J1biAoKQorK3sKKysgIGFzX2xpbmVubz0ke2FzX2xp bmVuby0iJDEifSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9fc3Rh Y2sKKysgIGlmIHsgeyBhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNo byI7IH0gPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysg ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRh Y19leGVleHQnCisrICB7IHsgY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAq XFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK Kytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKKysgIChl dmFsICIkYWNfdHJ5IikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIHRlc3QgJGFj X3N0YXR1cyA9IDA7IH07IH07IHRoZW4gOgorKyAgYWNfcmV0dmFsPTAKKytlbHNlCisrICAkYXNf ZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUK KysgICAgICAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2Vk ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgICAgICBhY19yZXR2YWw9JGFj X3N0YXR1cworK2ZpCisrICBybSAtcmYgY29uZnRlc3QuZFNZTSBjb25mdGVzdF9pcGE4X2NvbmZ0 ZXN0Lm9vCisrICBldmFsICRhc19saW5lbm9fc3RhY2s7IHRlc3QgIngkYXNfbGluZW5vX3N0YWNr IiA9IHggJiYgeyBhc19saW5lbm89OyB1bnNldCBhc19saW5lbm87fQorKyAgYXNfZm5fc2V0X3N0 YXR1cyAkYWNfcmV0dmFsCisrCisrfSAjIGFjX2ZuX2N4eF90cnlfcnVuCisrCisrIyBhY19mbl9j eHhfY2hlY2tfaGVhZGVyX21vbmdyZWwgTElORU5PIEhFQURFUiBWQVIgSU5DTFVERVMKKysjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyMgVGVzdHMgd2hldGhlciBIRUFERVIgZXhpc3RzLCBnaXZpbmcgYSB3YXJuaW5nIGlmIGl0IGNh bm5vdCBiZSBjb21waWxlZCB1c2luZworKyMgdGhlIGluY2x1ZGUgZmlsZXMgaW4gSU5DTFVERVMg YW5kIHNldHRpbmcgdGhlIGNhY2hlIHZhcmlhYmxlIFZBUgorKyMgYWNjb3JkaW5nbHkuCisrYWNf Zm5fY3h4X2NoZWNrX2hlYWRlcl9tb25ncmVsICgpCisreworKyAgYXNfbGluZW5vPSR7YXNfbGlu ZW5vLSIkMSJ9IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9fc3RhY2s9JGFzX2xpbmVub19zdGFj aworKyAgaWYgZXZhbCAidGVzdCBcIlwkeyQzK3NldH1cIiIgPSBzZXQ7IHRoZW4gOgorKyAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJDIiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkMi4uLiAiID4mNjsgfQorK2lmIGV2YWwgInRl c3QgXCJcJHskMytzZXR9XCIiID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZmkKKytldmFsIGFjX3Jlcz1cJCQzCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8g IiRhY19yZXMiID4mNjsgfQorK2Vsc2UKKysgICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwor K3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgJDIgdXNh YmlsaXR5IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyAkMiB1c2FiaWxpdHkuLi4gIiA+JjY7 IH0KKytjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5k IGNvbmZkZWZzLmguICAqLworKyQ0CisrI2luY2x1ZGUgPCQyPgorK19BQ0VPRgorK2lmIGFjX2Zu X2N4eF90cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKyAgYWNfaGVhZGVyX2NvbXBpbGVy PXllcworK2Vsc2UKKysgIGFjX2hlYWRlcl9jb21waWxlcj1ubworK2ZpCisrcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisreyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19oZWFkZXJfY29t cGlsZXIiID4mNQorKyRhc19lY2hvICIkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjY7IH0KKysKKysj IElzIHRoZSBoZWFkZXIgcHJlc2VudD8KKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nICQyIHByZXNlbmNlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyAkMiBwcmVzZW5jZS4uLiAiID4mNjsgfQorK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNv bmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPCQyPgor K19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfY3BwICIkTElORU5PIjsgdGhlbiA6CisrICBhY19o ZWFkZXJfcHJlcHJvYz15ZXMKKytlbHNlCisrICBhY19oZWFkZXJfcHJlcHJvYz1ubworK2ZpCisr cm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKyt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjUKKysk YXNfZWNobyAiJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjY7IH0KKysKKysjIFNvPyAgV2hhdCBhYm91 dCB0aGlzIGhlYWRlcj8KKytjYXNlICRhY19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVw cm9jOiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWcgaW4gIygoCisrICB5ZXM6bm86ICkKKysgICAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAkMjogYWNj ZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJDI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxl ciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9CisrICAgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogJDI6IHByb2NlZWRpbmcgd2l0 aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6 ICQyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQorKyAgICA7 OworKyAgbm86eWVzOiogKQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IFdBUk5JTkc6ICQyOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQor KyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICQyOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29t cGlsZWQiID4mMjt9CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogV0FSTklORzogJDI6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVy cz8iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICQyOiAgICAgY2hlY2sgZm9yIG1p c3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7fQorKyAgICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6ICQyOiBzZWUgdGhlIEF1dG9jb25mIGRv Y3VtZW50YXRpb24iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICQyOiBzZWUgdGhl IEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mMjt9CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogJDI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBC dXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6 ICQyOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjI7 fQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6 ICQyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBXQVJOSU5HOiAkMjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJl c3VsdCIgPiYyO30KKysoICRhc19lY2hvICIjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBSZXBvcnQgdGhpcyB0byBtc29iY3pha0B1c2Vycy5z b3VyY2Vmb3JnZS5uZXQgIyMKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gIyMiCisrICAgICApIHwgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAg LyIgPiYyCisrICAgIDs7CisrZXNhYworKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjaGVja2luZyBmb3IgJDIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkMi4uLiAiID4mNjsgfQorK2lmIGV2YWwgInRlc3QgXCJcJHskMytzZXR9XCIiID0gc2V0OyB0 aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgZXZhbCAiJDM9 XCRhY19oZWFkZXJfY29tcGlsZXIiCisrZmkKKytldmFsIGFjX3Jlcz1cJCQzCisrCSAgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIg PiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2ZpCisrICBldmFsICRhc19saW5lbm9f c3RhY2s7IHRlc3QgIngkYXNfbGluZW5vX3N0YWNrIiA9IHggJiYgeyBhc19saW5lbm89OyB1bnNl dCBhc19saW5lbm87fQorKworK30gIyBhY19mbl9jeHhfY2hlY2tfaGVhZGVyX21vbmdyZWwKKytj YXQgPmNvbmZpZy5sb2cgPDxfQUNFT0YKKytUaGlzIGZpbGUgY29udGFpbnMgYW55IG1lc3NhZ2Vz IHByb2R1Y2VkIGJ5IGNvbXBpbGVycyB3aGlsZQorK3J1bm5pbmcgY29uZmlndXJlLCB0byBhaWQg ZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtlcyBhIG1pc3Rha2UuCisrCisrSXQgd2FzIGNyZWF0 ZWQgYnkgU09DSSAkYXNfbWUgMy4wLjAsIHdoaWNoIHdhcworK2dlbmVyYXRlZCBieSBHTlUgQXV0 b2NvbmYgMi42Ni4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcworKworKyAgJCAkMCAkQAor KworK19BQ0VPRgorK2V4ZWMgNT4+Y29uZmlnLmxvZworK3sKKytjYXQgPDxfQVNVTkFNRQorKyMj IC0tLS0tLS0tLSAjIworKyMjIFBsYXRmb3JtLiAjIworKyMjIC0tLS0tLS0tLSAjIworKworK2hv c3RuYW1lID0gYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCisr dW5hbWUgLW0gPSBgKHVuYW1lIC1tKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrdW5h bWUgLXIgPSBgKHVuYW1lIC1yKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrdW5hbWUg LXMgPSBgKHVuYW1lIC1zKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrdW5hbWUgLXYg PSBgKHVuYW1lIC12KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrCisrL3Vzci9iaW4v dW5hbWUgLXAgPSBgKC91c3IvYmluL3VuYW1lIC1wKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25v d25gCisrL2Jpbi91bmFtZSAtWCAgICAgPSBgKC9iaW4vdW5hbWUgLVgpIDI+L2Rldi9udWxsICAg ICB8fCBlY2hvIHVua25vd25gCisrCisrL2Jpbi9hcmNoICAgICAgICAgICAgICA9IGAoL2Jpbi9h cmNoKSAyPi9kZXYvbnVsbCAgICAgICAgICAgICAgfHwgZWNobyB1bmtub3duYAorKy91c3IvYmlu L2FyY2ggLWsgICAgICAgPSBgKC91c3IvYmluL2FyY2ggLWspIDI+L2Rldi9udWxsICAgICAgIHx8 IGVjaG8gdW5rbm93bmAKKysvdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gYCgvdXNyL2NvbnZleC9n ZXRzeXNpbmZvKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrL3Vzci9iaW4vaG9zdGlu Zm8gICAgICA9IGAoL3Vzci9iaW4vaG9zdGluZm8pIDI+L2Rldi9udWxsICAgICAgfHwgZWNobyB1 bmtub3duYAorKy9iaW4vbWFjaGluZSAgICAgICAgICAgPSBgKC9iaW4vbWFjaGluZSkgMj4vZGV2 L251bGwgICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKKysvdXNyL2Jpbi9vc2xldmVsICAgICAg ID0gYCgvdXNyL2Jpbi9vc2xldmVsKSAyPi9kZXYvbnVsbCAgICAgICB8fCBlY2hvIHVua25vd25g CisrL2Jpbi91bml2ZXJzZSAgICAgICAgICA9IGAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGwg ICAgICAgICAgfHwgZWNobyB1bmtub3duYAorKworK19BU1VOQU1FCisrCisrYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAg SUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAg JGFzX2VjaG8gIlBBVEg6ICRhc19kaXIiCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKwor K30gPiY1CisrCisrY2F0ID4mNSA8PF9BQ0VPRgorKworKworKyMjIC0tLS0tLS0tLS0tICMjCisr IyMgQ29yZSB0ZXN0cy4gIyMKKysjIyAtLS0tLS0tLS0tLSAjIworKworK19BQ0VPRgorKworKwor KyMgS2VlcCBhIHRyYWNlIG9mIHRoZSBjb21tYW5kIGxpbmUuCisrIyBTdHJpcCBvdXQgLS1uby1j cmVhdGUgYW5kIC0tbm8tcmVjdXJzaW9uIHNvIHRoZXkgZG8gbm90IHBpbGUgdXAuCisrIyBTdHJp cCBvdXQgLS1zaWxlbnQgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvIHJlY29yZCBpdCBmb3IgZnV0 dXJlIHJ1bnMuCisrIyBBbHNvIHF1b3RlIGFueSBhcmdzIGNvbnRhaW5pbmcgc2hlbGwgbWV0YS1j aGFyYWN0ZXJzLgorKyMgTWFrZSB0d28gcGFzc2VzIHRvIGFsbG93IGZvciBwcm9wZXIgZHVwbGlj YXRlLWFyZ3VtZW50IHN1cHByZXNzaW9uLgorK2FjX2NvbmZpZ3VyZV9hcmdzPQorK2FjX2NvbmZp Z3VyZV9hcmdzMD0KKythY19jb25maWd1cmVfYXJnczE9CisrYWNfbXVzdF9rZWVwX25leHQ9ZmFs c2UKKytmb3IgYWNfcGFzcyBpbiAxIDIKKytkbworKyAgZm9yIGFjX2FyZworKyAgZG8KKysgICAg Y2FzZSAkYWNfYXJnIGluCisrICAgIC1uby1jcmVhdGUgfCAtLW5vLWMqIHwgLW4gfCAtbm8tcmVj dXJzaW9uIHwgLS1uby1yKikgY29udGludWUgOzsKKysgICAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0 IHwgLS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKKysgICAgfCAtc2lsZW50IHwgLS1zaWxl bnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwpCisrICAgICAgY29udGludWUgOzsKKysgICAg KlwnKikKKysgICAgICBhY19hcmc9YCRhc19lY2hvICIkYWNfYXJnIiB8IHNlZCAicy8nLydcXFxc XFxcXCcnL2ciYCA7OworKyAgICBlc2FjCisrICAgIGNhc2UgJGFjX3Bhc3MgaW4KKysgICAgMSkg YXNfZm5fYXBwZW5kIGFjX2NvbmZpZ3VyZV9hcmdzMCAiICckYWNfYXJnJyIgOzsKKysgICAgMikK KysgICAgICBhc19mbl9hcHBlbmQgYWNfY29uZmlndXJlX2FyZ3MxICIgJyRhY19hcmcnIgorKyAg ICAgIGlmIHRlc3QgJGFjX211c3Rfa2VlcF9uZXh0ID0gdHJ1ZTsgdGhlbgorKwlhY19tdXN0X2tl ZXBfbmV4dD1mYWxzZSAjIEdvdCB2YWx1ZSwgYmFjayB0byBub3JtYWwuCisrICAgICAgZWxzZQor KwljYXNlICRhY19hcmcgaW4KKysJICAqPSogfCAtLWNvbmZpZy1jYWNoZSB8IC1DIHwgLWRpc2Fi bGUtKiB8IC0tZGlzYWJsZS0qIFwKKysJICB8IC1lbmFibGUtKiB8IC0tZW5hYmxlLSogfCAtZ2Fz IHwgLS1nKiB8IC1uZnAgfCAtLW5mKiBcCisrCSAgfCAtcSB8IC1xdWlldCB8IC0tcSogfCAtc2ls ZW50IHwgLS1zaWwqIHwgLXYgfCAtdmVyYiogXAorKwkgIHwgLXdpdGgtKiB8IC0td2l0aC0qIHwg LXdpdGhvdXQtKiB8IC0td2l0aG91dC0qIHwgLS14KQorKwkgICAgY2FzZSAiJGFjX2NvbmZpZ3Vy ZV9hcmdzMCAiIGluCisrCSAgICAgICIkYWNfY29uZmlndXJlX2FyZ3MxIioiICckYWNfYXJnJyAi KiApIGNvbnRpbnVlIDs7CisrCSAgICBlc2FjCisrCSAgICA7OworKwkgIC0qICkgYWNfbXVzdF9r ZWVwX25leHQ9dHJ1ZSA7OworKwllc2FjCisrICAgICAgZmkKKysgICAgICBhc19mbl9hcHBlbmQg YWNfY29uZmlndXJlX2FyZ3MgIiAnJGFjX2FyZyciCisrICAgICAgOzsKKysgICAgZXNhYworKyAg ZG9uZQorK2RvbmUKKyt7IGFjX2NvbmZpZ3VyZV9hcmdzMD07IHVuc2V0IGFjX2NvbmZpZ3VyZV9h cmdzMDt9CisreyBhY19jb25maWd1cmVfYXJnczE9OyB1bnNldCBhY19jb25maWd1cmVfYXJnczE7 fQorKworKyMgV2hlbiBpbnRlcnJ1cHRlZCBvciBleGl0J2QsIGNsZWFudXAgdGVtcG9yYXJ5IGZp bGVzLCBhbmQgY29tcGxldGUKKysjIGNvbmZpZy5sb2cuICBXZSByZW1vdmUgY29tbWVudHMgYmVj YXVzZSBhbnl3YXkgdGhlIHF1b3RlcyBpbiB0aGVyZQorKyMgd291bGQgY2F1c2UgcHJvYmxlbXMg b3IgbG9vayB1Z2x5LgorKyMgV0FSTklORzogVXNlICdcJycgdG8gcmVwcmVzZW50IGFuIGFwb3N0 cm9waGUgd2l0aGluIHRoZSB0cmFwLgorKyMgV0FSTklORzogRG8gbm90IHN0YXJ0IHRoZSB0cmFw IGNvZGUgd2l0aCBhIG5ld2xpbmUsIGR1ZSB0byBhIEZyZWVCU0QgNC4wIGJ1Zy4KKyt0cmFwICdl eGl0X3N0YXR1cz0kPworKyAgIyBTYXZlIGludG8gY29uZmlnLmxvZyBzb21lIGluZm9ybWF0aW9u IHRoYXQgbWlnaHQgaGVscCBpbiBkZWJ1Z2dpbmcuCisrICB7CisrICAgIGVjaG8KKysKKysgICAg JGFzX2VjaG8gIiMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBDYWNoZSB2YXJpYWJsZXMuICMj CisrIyMgLS0tLS0tLS0tLS0tLS0tLSAjIyIKKysgICAgZWNobworKyAgICAjIFRoZSBmb2xsb3dp bmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVz LAorKygKKysgIGZvciBhY192YXIgaW4gYChzZXQpIDI+JjEgfCBzZWQgLW4gJ1wnJ3MvXlwoW2Et ekEtWl9dW2EtekEtWjAtOV9dKlwpPS4qL1wxL3AnXCcnYDsgZG8KKysgICAgZXZhbCBhY192YWw9 XCQkYWNfdmFyCisrICAgIGNhc2UgJGFjX3ZhbCBpbiAjKAorKyAgICAqJHthc19ubH0qKQorKyAg ICAgIGNhc2UgJGFjX3ZhciBpbiAjKAorKyAgICAgICpfY3ZfKikgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNv bnRhaW5zIGEgbmV3bGluZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogY2FjaGUg dmFyaWFibGUgJGFjX3ZhciBjb250YWlucyBhIG5ld2xpbmUiID4mMjt9IDs7CisrICAgICAgZXNh YworKyAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAorKyAgICAgIF8gfCBJRlMgfCBhc19ubCkgOzsg IygKKysgICAgICBCQVNIX0FSR1YgfCBCQVNIX1NPVVJDRSkgZXZhbCAkYWNfdmFyPSA7OyAjKAor KyAgICAgICopIHsgZXZhbCAkYWNfdmFyPTsgdW5zZXQgJGFjX3Zhcjt9IDs7CisrICAgICAgZXNh YyA7OworKyAgICBlc2FjCisrICBkb25lCisrICAoc2V0KSAyPiYxIHwKKysgICAgY2FzZSAkYXNf bmxgKGFjX3NwYWNlPSdcJycgJ1wnJzsgc2V0KSAyPiYxYCBpbiAjKAorKyAgICAqJHthc19ubH1h Y19zcGFjZT1cICopCisrICAgICAgc2VkIC1uIFwKKysJInMvJ1wnJy8nXCcnXFxcXCdcJycnXCcn L2c7CisrCSAgcy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxc KC4qXFwpL1xcMT0nXCcnXFwyJ1wnJy9wIgorKyAgICAgIDs7ICMoCisrICAgICopCisrICAgICAg c2VkIC1uICIvXltfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKj0vcCIKKysgICAg ICA7OworKyAgICBlc2FjIHwKKysgICAgc29ydAorKykKKysgICAgZWNobworKworKyAgICAkYXNf ZWNobyAiIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBPdXRwdXQgdmFyaWFibGVzLiAjIwor KyMjIC0tLS0tLS0tLS0tLS0tLS0tICMjIgorKyAgICBlY2hvCisrICAgIGZvciBhY192YXIgaW4g JGFjX3N1YnN0X3ZhcnMKKysgICAgZG8KKysgICAgICBldmFsIGFjX3ZhbD1cJCRhY192YXIKKysg ICAgICBjYXNlICRhY192YWwgaW4KKysgICAgICAqXCdcJycqKSBhY192YWw9YCRhc19lY2hvICIk YWNfdmFsIiB8IHNlZCAicy8nXCcnLydcJydcXFxcXFxcXCdcJycnXCcnL2ciYDs7CisrICAgICAg ZXNhYworKyAgICAgICRhc19lY2hvICIkYWNfdmFyPSdcJyckYWNfdmFsJ1wnJyIKKysgICAgZG9u ZSB8IHNvcnQKKysgICAgZWNobworKworKyAgICBpZiB0ZXN0IC1uICIkYWNfc3Vic3RfZmlsZXMi OyB0aGVuCisrICAgICAgJGFzX2VjaG8gIiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBG aWxlIHN1YnN0aXR1dGlvbnMuICMjCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLSAjIyIKKysgICAg ICBlY2hvCisrICAgICAgZm9yIGFjX3ZhciBpbiAkYWNfc3Vic3RfZmlsZXMKKysgICAgICBkbwor KwlldmFsIGFjX3ZhbD1cJCRhY192YXIKKysJY2FzZSAkYWNfdmFsIGluCisrCSpcJ1wnJyopIGFj X3ZhbD1gJGFzX2VjaG8gIiRhY192YWwiIHwgc2VkICJzLydcJycvJ1wnJ1xcXFxcXFxcJ1wnJydc JycvZyJgOzsKKysJZXNhYworKwkkYXNfZWNobyAiJGFjX3Zhcj0nXCcnJGFjX3ZhbCdcJyciCisr ICAgICAgZG9uZSB8IHNvcnQKKysgICAgICBlY2hvCisrICAgIGZpCisrCisrICAgIGlmIHRlc3Qg LXMgY29uZmRlZnMuaDsgdGhlbgorKyAgICAgICRhc19lY2hvICIjIyAtLS0tLS0tLS0tLSAjIwor KyMjIGNvbmZkZWZzLmguICMjCisrIyMgLS0tLS0tLS0tLS0gIyMiCisrICAgICAgZWNobworKyAg ICAgIGNhdCBjb25mZGVmcy5oCisrICAgICAgZWNobworKyAgICBmaQorKyAgICB0ZXN0ICIkYWNf c2lnbmFsIiAhPSAwICYmCisrICAgICAgJGFzX2VjaG8gIiRhc19tZTogY2F1Z2h0IHNpZ25hbCAk YWNfc2lnbmFsIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiBleGl0ICRleGl0X3N0YXR1cyIKKysg IH0gPiY1CisrICBybSAtZiBjb3JlICouY29yZSBjb3JlLmNvbmZ0ZXN0LiogJiYKKysgICAgcm0g LWYgLXIgY29uZnRlc3QqIGNvbmZkZWZzKiBjb25mJCQqICRhY19jbGVhbl9maWxlcyAmJgorKyAg ICBleGl0ICRleGl0X3N0YXR1cworKycgMAorK2ZvciBhY19zaWduYWwgaW4gMSAyIDEzIDE1OyBk bworKyAgdHJhcCAnYWNfc2lnbmFsPSckYWNfc2lnbmFsJzsgYXNfZm5fZXhpdCAxJyAkYWNfc2ln bmFsCisrZG9uZQorK2FjX3NpZ25hbD0wCisrCisrIyBjb25mZGVmcy5oIGF2b2lkcyBPUyBjb21t YW5kIGxpbmUgbGVuZ3RoIGxpbWl0cyB0aGF0IERFRlMgY2FuIGV4Y2VlZC4KKytybSAtZiAtciBj b25mdGVzdCogY29uZmRlZnMuaAorKworKyRhc19lY2hvICIvKiBjb25mZGVmcy5oICovIiA+IGNv bmZkZWZzLmgKKysKKysjIFByZWRlZmluZWQgcHJlcHJvY2Vzc29yIHZhcmlhYmxlcy4KKysKKytj YXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBQQUNLQUdFX05BTUUgIiRQQUNLQUdF X05BTUUiCisrX0FDRU9GCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUg UEFDS0FHRV9UQVJOQU1FICIkUEFDS0FHRV9UQVJOQU1FIgorK19BQ0VPRgorKworK2NhdCA+PmNv bmZkZWZzLmggPDxfQUNFT0YKKysjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiJFBBQ0tBR0VfVkVS U0lPTiIKKytfQUNFT0YKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBQ QUNLQUdFX1NUUklORyAiJFBBQ0tBR0VfU1RSSU5HIgorK19BQ0VPRgorKworK2NhdCA+PmNvbmZk ZWZzLmggPDxfQUNFT0YKKysjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIkUEFDS0FHRV9CVUdS RVBPUlQiCisrX0FDRU9GCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUg UEFDS0FHRV9VUkwgIiRQQUNLQUdFX1VSTCIKKytfQUNFT0YKKysKKysKKysjIExldCB0aGUgc2l0 ZSBmaWxlIHNlbGVjdCBhbiBhbHRlcm5hdGUgY2FjaGUgZmlsZSBpZiBpdCB3YW50cyB0by4KKysj IFByZWZlciBhbiBleHBsaWNpdGx5IHNlbGVjdGVkIGZpbGUgdG8gYXV0b21hdGljYWxseSBzZWxl Y3RlZCBvbmVzLgorK2FjX3NpdGVfZmlsZTE9Tk9ORQorK2FjX3NpdGVfZmlsZTI9Tk9ORQorK2lm IHRlc3QgLW4gIiRDT05GSUdfU0lURSI7IHRoZW4KKysgICMgV2UgZG8gbm90IHdhbnQgYSBQQVRI IHNlYXJjaCBmb3IgY29uZmlnLnNpdGUuCisrICBjYXNlICRDT05GSUdfU0lURSBpbiAjKCgKKysg ICAgLSopICBhY19zaXRlX2ZpbGUxPS4vJENPTkZJR19TSVRFOzsKKysgICAgKi8qKSBhY19zaXRl X2ZpbGUxPSRDT05GSUdfU0lURTs7CisrICAgICopICAgYWNfc2l0ZV9maWxlMT0uLyRDT05GSUdf U0lURTs7CisrICBlc2FjCisrZWxpZiB0ZXN0ICJ4JHByZWZpeCIgIT0geE5PTkU7IHRoZW4KKysg IGFjX3NpdGVfZmlsZTE9JHByZWZpeC9zaGFyZS9jb25maWcuc2l0ZQorKyAgYWNfc2l0ZV9maWxl Mj0kcHJlZml4L2V0Yy9jb25maWcuc2l0ZQorK2Vsc2UKKysgIGFjX3NpdGVfZmlsZTE9JGFjX2Rl ZmF1bHRfcHJlZml4L3NoYXJlL2NvbmZpZy5zaXRlCisrICBhY19zaXRlX2ZpbGUyPSRhY19kZWZh dWx0X3ByZWZpeC9ldGMvY29uZmlnLnNpdGUKKytmaQorK2ZvciBhY19zaXRlX2ZpbGUgaW4gIiRh Y19zaXRlX2ZpbGUxIiAiJGFjX3NpdGVfZmlsZTIiCisrZG8KKysgIHRlc3QgIngkYWNfc2l0ZV9m aWxlIiA9IHhOT05FICYmIGNvbnRpbnVlCisrICBpZiB0ZXN0IC9kZXYvbnVsbCAhPSAiJGFjX3Np dGVfZmlsZSIgJiYgdGVzdCAtciAiJGFjX3NpdGVfZmlsZSI7IHRoZW4KKysgICAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBsb2FkaW5nIHNpdGUgc2NyaXB0ICRhY19z aXRlX2ZpbGUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFj X3NpdGVfZmlsZSIgPiY2O30KKysgICAgc2VkICdzL14vfCAvJyAiJGFjX3NpdGVfZmlsZSIgPiY1 CisrICAgIC4gIiRhY19zaXRlX2ZpbGUiIFwKKysgICAgICB8fCB7IHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CisrYXNfZm5fZXJyb3Ig JD8gImZhaWxlZCB0byBsb2FkIHNpdGUgc2NyaXB0ICRhY19zaXRlX2ZpbGUKKytTZWUgXGBjb25m aWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsgfQorKyAgZmkKKytkb25lCisr CisraWYgdGVzdCAtciAiJGNhY2hlX2ZpbGUiOyB0aGVuCisrICAjIFNvbWUgdmVyc2lvbnMgb2Yg YmFzaCB3aWxsIGZhaWwgdG8gc291cmNlIC9kZXYvbnVsbCAoc3BlY2lhbCBmaWxlcworKyAgIyBh Y3R1YWxseSksIHNvIHdlIGF2b2lkIGRvaW5nIHRoYXQuICBESkdQUCBlbXVsYXRlcyBpdCBhcyBh IHJlZ3VsYXIgZmlsZS4KKysgIGlmIHRlc3QgL2Rldi9udWxsICE9ICIkY2FjaGVfZmlsZSIgJiYg dGVzdCAtZiAiJGNhY2hlX2ZpbGUiOyB0aGVuCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CisrJGFzX2Vj aG8gIiRhc19tZTogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KKysgICAgY2FzZSAk Y2FjaGVfZmlsZSBpbgorKyAgICAgIFtcXC9dKiB8ID86W1xcL10qICkgLiAiJGNhY2hlX2ZpbGUi OzsKKysgICAgICAqKSAgICAgICAgICAgICAgICAgICAgICAuICIuLyRjYWNoZV9maWxlIjs7Cisr ICAgIGVzYWMKKysgIGZpCisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjcmVhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogY3JlYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9CisrICA+JGNhY2hlX2ZpbGUK KytmaQorKworKyMgQ2hlY2sgdGhhdCB0aGUgcHJlY2lvdXMgdmFyaWFibGVzIHNhdmVkIGluIHRo ZSBjYWNoZSBoYXZlIGtlcHQgdGhlIHNhbWUKKysjIHZhbHVlLgorK2FjX2NhY2hlX2NvcnJ1cHRl ZD1mYWxzZQorK2ZvciBhY192YXIgaW4gJGFjX3ByZWNpb3VzX3ZhcnM7IGRvCisrICBldmFsIGFj X29sZF9zZXQ9XCRhY19jdl9lbnZfJHthY192YXJ9X3NldAorKyAgZXZhbCBhY19uZXdfc2V0PVwk YWNfZW52XyR7YWNfdmFyfV9zZXQKKysgIGV2YWwgYWNfb2xkX3ZhbD1cJGFjX2N2X2Vudl8ke2Fj X3Zhcn1fdmFsdWUKKysgIGV2YWwgYWNfbmV3X3ZhbD1cJGFjX2Vudl8ke2FjX3Zhcn1fdmFsdWUK KysgIGNhc2UgJGFjX29sZF9zZXQsJGFjX25ld19zZXQgaW4KKysgICAgc2V0LCkKKysgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBcYCRhY192YXIn IHdhcyBzZXQgdG8gXGAkYWNfb2xkX3ZhbCcgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIHNldCB0byBcYCRhY19vbGRfdmFs JyBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjI7fQorKyAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06 IDs7CisrICAgICxzZXQpCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVu IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNldCBp biB0aGUgcHJldmlvdXMgcnVuIiA+JjI7fQorKyAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06IDs7 CisrICAgICwpOzsKKysgICAgKikKKysgICAgICBpZiB0ZXN0ICJ4JGFjX29sZF92YWwiICE9ICJ4 JGFjX25ld192YWwiOyB0aGVuCisrCSMgZGlmZmVyZW5jZXMgaW4gd2hpdGVzcGFjZSBkbyBub3Qg bGVhZCB0byBmYWlsdXJlLgorKwlhY19vbGRfdmFsX3c9YGVjaG8geCAkYWNfb2xkX3ZhbGAKKysJ YWNfbmV3X3ZhbF93PWBlY2hvIHggJGFjX25ld192YWxgCisrCWlmIHRlc3QgIiRhY19vbGRfdmFs X3ciICE9ICIkYWNfbmV3X3ZhbF93IjsgdGhlbgorKwkgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogZXJyb3I6IFxgJGFjX3ZhcicgaGFzIGNoYW5nZWQgc2luY2UgdGhl IHByZXZpb3VzIHJ1bjoiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBcYCRhY192YXIn IGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjI7fQorKwkgIGFjX2NhY2hl X2NvcnJ1cHRlZD06CisrCWVsc2UKKysJICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHdhcm5pbmc6IGlnbm9yaW5nIHdoaXRlc3BhY2UgY2hhbmdlcyBpbiBcYCRhY192 YXInIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiB3YXJu aW5nOiBpZ25vcmluZyB3aGl0ZXNwYWNlIGNoYW5nZXMgaW4gXGAkYWNfdmFyJyBzaW5jZSB0aGUg cHJldmlvdXMgcnVuOiIgPiYyO30KKysJICBldmFsICRhY192YXI9XCRhY19vbGRfdmFsCisrCWZp CisrCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogICBmb3JtZXIgdmFs dWU6ICBcYCRhY19vbGRfdmFsJyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogICBmb3JtZXIgdmFs dWU6ICBcYCRhY19vbGRfdmFsJyIgPiYyO30KKysJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiAgIGN1cnJlbnQgdmFsdWU6IFxgJGFjX25ld192YWwnIiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiAgIGN1cnJlbnQgdmFsdWU6IFxgJGFjX25ld192YWwnIiA+JjI7fQorKyAg ICAgIGZpOzsKKysgIGVzYWMKKysgICMgUGFzcyBwcmVjaW91cyB2YXJpYWJsZXMgdG8gY29uZmln LnN0YXR1cy4KKysgIGlmIHRlc3QgIiRhY19uZXdfc2V0IiA9IHNldDsgdGhlbgorKyAgICBjYXNl ICRhY19uZXdfdmFsIGluCisrICAgICpcJyopIGFjX2FyZz0kYWNfdmFyPWAkYXNfZWNobyAiJGFj X25ld192YWwiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7CisrICAgICopIGFjX2FyZz0k YWNfdmFyPSRhY19uZXdfdmFsIDs7CisrICAgIGVzYWMKKysgICAgY2FzZSAiICRhY19jb25maWd1 cmVfYXJncyAiIGluCisrICAgICAgKiIgJyRhY19hcmcnICIqKSA7OyAjIEF2b2lkIGR1cHMuICBV c2Ugb2YgcXVvdGVzIGVuc3VyZXMgYWNjdXJhY3kuCisrICAgICAgKikgYXNfZm5fYXBwZW5kIGFj X2NvbmZpZ3VyZV9hcmdzICIgJyRhY19hcmcnIiA7OworKyAgICBlc2FjCisrICBmaQorK2RvbmUK KytpZiAkYWNfY2FjaGVfY29ycnVwdGVkOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorKyAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogY2hhbmdlcyBpbiB0aGUgZW52aXJvbm1l bnQgY2FuIGNvbXByb21pc2UgdGhlIGJ1aWxkIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogY2hhbmdlcyBpbiB0aGUgZW52aXJvbm1lbnQgY2FuIGNvbXByb21pc2UgdGhlIGJ1aWxkIiA+ JjI7fQorKyAgYXNfZm5fZXJyb3IgJD8gInJ1biBcYG1ha2UgZGlzdGNsZWFuJyBhbmQvb3IgXGBy bSAkY2FjaGVfZmlsZScgYW5kIHN0YXJ0IG92ZXIiICIkTElORU5PIiA1CisrZmkKKysjIyAtLS0t LS0tLS0tLS0tLS0tLS0tLSAjIworKyMjIE1haW4gYm9keSBvZiBzY3JpcHQuICMjCisrIyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0gIyMKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxB R1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQ RkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJf Z251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworKworK2FjX2NvbmZpZ19oZWFkZXJzPSIkYWNf Y29uZmlnX2hlYWRlcnMgc29jaS9jb25maWcuaCIKKysKKysKKythY19hdXhfZGlyPQorK2ZvciBh Y19kaXIgaW4gY29uZmlnICIkc3JjZGlyIi9jb25maWc7IGRvCisrICBpZiB0ZXN0IC1mICIkYWNf ZGlyL2luc3RhbGwtc2giOyB0aGVuCisrICAgIGFjX2F1eF9kaXI9JGFjX2RpcgorKyAgICBhY19p bnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0YWxsLXNoIC1jIgorKyAgICBicmVhaworKyAgZWxp ZiB0ZXN0IC1mICIkYWNfZGlyL2luc3RhbGwuc2giOyB0aGVuCisrICAgIGFjX2F1eF9kaXI9JGFj X2RpcgorKyAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0YWxsLnNoIC1jIgorKyAg ICBicmVhaworKyAgZWxpZiB0ZXN0IC1mICIkYWNfZGlyL3NodG9vbCI7IHRoZW4KKysgICAgYWNf YXV4X2Rpcj0kYWNfZGlyCisrICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL3NodG9vbCBp bnN0YWxsIC1jIgorKyAgICBicmVhaworKyAgZmkKKytkb25lCisraWYgdGVzdCAteiAiJGFjX2F1 eF9kaXIiOyB0aGVuCisrICBhc19mbl9lcnJvciAkPyAiY2Fubm90IGZpbmQgaW5zdGFsbC1zaCwg aW5zdGFsbC5zaCwgb3Igc2h0b29sIGluIGNvbmZpZyBcIiRzcmNkaXJcIi9jb25maWciICIkTElO RU5PIiA1CisrZmkKKysKKysjIFRoZXNlIHRocmVlIHZhcmlhYmxlcyBhcmUgdW5kb2N1bWVudGVk IGFuZCB1bnN1cHBvcnRlZCwKKysjIGFuZCBhcmUgaW50ZW5kZWQgdG8gYmUgd2l0aGRyYXduIGlu IGEgZnV0dXJlIEF1dG9jb25mIHJlbGVhc2UuCisrIyBUaGV5IGNhbiBjYXVzZSBzZXJpb3VzIHBy b2JsZW1zIGlmIGEgYnVpbGRlcidzIHNvdXJjZSB0cmVlIGlzIGluIGEgZGlyZWN0b3J5CisrIyB3 aG9zZSBmdWxsIG5hbWUgY29udGFpbnMgdW51c3VhbCBjaGFyYWN0ZXJzLgorK2FjX2NvbmZpZ19n dWVzcz0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5ndWVzcyIgICMgUGxlYXNlIGRvbid0IHVz ZSB0aGlzIHZhci4KKythY19jb25maWdfc3ViPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1 YiIgICMgUGxlYXNlIGRvbid0IHVzZSB0aGlzIHZhci4KKythY19jb25maWd1cmU9IiRTSEVMTCAk YWNfYXV4X2Rpci9jb25maWd1cmUiICAjIFBsZWFzZSBkb24ndCB1c2UgdGhpcyB2YXIuCisrCisr CisrYW1fX2FwaV92ZXJzaW9uPScxLjExJworKworKyMgRmluZCBhIGdvb2QgaW5zdGFsbCBwcm9n cmFtLiAgV2UgcHJlZmVyIGEgQyBwcm9ncmFtIChmYXN0ZXIpLAorKyMgc28gb25lIHNjcmlwdCBp cyBhcyBnb29kIGFzIGFub3RoZXIuICBCdXQgYXZvaWQgdGhlIGJyb2tlbiBvcgorKyMgaW5jb21w YXRpYmxlIHZlcnNpb25zOgorKyMgU3lzViAvZXRjL2luc3RhbGwsIC91c3Ivc2Jpbi9pbnN0YWxs CisrIyBTdW5PUyAvdXNyL2V0Yy9pbnN0YWxsCisrIyBJUklYIC9zYmluL2luc3RhbGwKKysjIEFJ WCAvYmluL2luc3RhbGwKKysjIEFtaWdhT1MgL0MvaW5zdGFsbCwgd2hpY2ggaW5zdGFsbHMgYm9v dGJsb2NrcyBvbiBmbG9wcHkgZGlzY3MKKysjIEFJWCA0IC91c3IvYmluL2luc3RhbGxic2QsIHdo aWNoIGRvZXNuJ3Qgd29yayB3aXRob3V0IGEgLWcgZmxhZworKyMgQUZTIC91c3IvYWZzd3MvYmlu L2luc3RhbGwsIHdoaWNoIG1pc2hhbmRsZXMgbm9uZXhpc3RlbnQgYXJncworKyMgU1ZSNCAvdXNy L3VjYi9pbnN0YWxsLCB3aGljaCB0cmllcyB0byB1c2UgdGhlIG5vbmV4aXN0ZW50IGdyb3VwICJz dGFmZiIKKysjIE9TLzIncyBzeXN0ZW0gaW5zdGFsbCwgd2hpY2ggaGFzIGEgY29tcGxldGVseSBk aWZmZXJlbnQgc2VtYW50aWMKKysjIC4vaW5zdGFsbCwgd2hpY2ggY2FuIGJlIGVycm9uZW91c2x5 IGNyZWF0ZWQgYnkgbWFrZSBmcm9tIC4vaW5zdGFsbC5zaC4KKysjIFJlamVjdCBpbnN0YWxsIHBy b2dyYW1zIHRoYXQgY2Fubm90IGluc3RhbGwgbXVsdGlwbGUgZmlsZXMuCisreyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJs ZSBpbnN0YWxsIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJs ZSBpbnN0YWxsLi4uICIgPiY2OyB9CisraWYgdGVzdCAteiAiJElOU1RBTEwiOyB0aGVuCisraWYg dGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVf SUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICAjIEFjY291bnQgZm9y IHBlb3BsZSB3aG8gcHV0IHRyYWlsaW5nIHNsYXNoZXMgaW4gUEFUSCBlbGVtZW50cy4KKytjYXNl ICRhc19kaXIvIGluICMoKAorKyAgLi8gfCAuLy8gfCAvW2NDXS8qIHwgXAorKyAgL2V0Yy8qIHwg L3Vzci9zYmluLyogfCAvdXNyL2V0Yy8qIHwgL3NiaW4vKiB8IC91c3IvYWZzd3MvYmluLyogfCBc CisrICA/OltcXC9db3MyW1xcL11pbnN0YWxsW1xcL10qIHwgPzpbXFwvXU9TMltcXC9dSU5TVEFM TFtcXC9dKiB8IFwKKysgIC91c3IvdWNiLyogKSA7OworKyAgKikKKysgICAgIyBPU0YxIGFuZCBT Q08gT0RUIDMuMCBoYXZlIHRoZWlyIG93biBuYW1lcyBmb3IgaW5zdGFsbC4KKysgICAgIyBEb24n dCB1c2UgaW5zdGFsbGJzZCBmcm9tIE9TRiBzaW5jZSBpdCBpbnN0YWxscyBzdHVmZiBhcyByb290 CisrICAgICMgYnkgZGVmYXVsdC4KKysgICAgZm9yIGFjX3Byb2cgaW4gZ2luc3RhbGwgc2NvaW5z dCBpbnN0YWxsOyBkbworKyAgICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs ZV9leHRlbnNpb25zOyBkbworKwlpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhl Y19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiOyB9OyB0 aGVuCisrCSAgaWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKKysJICAgIGdyZXAgZHNwbXNn ICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJ ICAgICMgQUlYIGluc3RhbGwuICBJdCBoYXMgYW4gaW5jb21wYXRpYmxlIGNhbGxpbmcgY29udmVu dGlvbi4KKysJICAgIDoKKysJICBlbGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCisrCSAg ICBncmVwIHB3cGx1cyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAy PiYxOyB0aGVuCisrCSAgICAjIHByb2dyYW0tc3BlY2lmaWMgaW5zdGFsbCBzY3JpcHQgdXNlZCBi eSBIUCBwd3BsdXMtLWRvbid0IHVzZS4KKysJICAgIDoKKysJICBlbHNlCisrCSAgICBybSAtcmYg Y29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byBjb25mdGVzdC5kaXIKKysJICAgIGVjaG8gb25lID4g Y29uZnRlc3Qub25lCisrCSAgICBlY2hvIHR3byA+IGNvbmZ0ZXN0LnR3bworKwkgICAgbWtkaXIg Y29uZnRlc3QuZGlyCisrCSAgICBpZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgLWMg Y29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byAiYHB3ZGAvY29uZnRlc3QuZGlyIiAmJgorKwkgICAg ICB0ZXN0IC1zIGNvbmZ0ZXN0Lm9uZSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LnR3byAmJgorKwkgICAg ICB0ZXN0IC1zIGNvbmZ0ZXN0LmRpci9jb25mdGVzdC5vbmUgJiYKKysJICAgICAgdGVzdCAtcyBj b25mdGVzdC5kaXIvY29uZnRlc3QudHdvCisrCSAgICB0aGVuCisrCSAgICAgIGFjX2N2X3BhdGhf aW5zdGFsbD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCAtYyIKKysJICAgICAgYnJlYWsg MworKwkgICAgZmkKKysJICBmaQorKwlmaQorKyAgICAgIGRvbmUKKysgICAgZG9uZQorKyAgICA7 OworK2VzYWMKKysKKysgIGRvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrcm0gLXJmIGNvbmZ0 ZXN0Lm9uZSBjb25mdGVzdC50d28gY29uZnRlc3QuZGlyCisrCisrZmkKKysgIGlmIHRlc3QgIiR7 YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCisrICAgIElOU1RBTEw9JGFjX2N2 X3BhdGhfaW5zdGFsbAorKyAgZWxzZQorKyAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUg c2xvdyBzaGVsbCBzY3JpcHQuICBEb24ndCBjYWNoZSBhCisrICAgICMgdmFsdWUgZm9yIElOU1RB TEwgd2l0aGluIGEgc291cmNlIGRpcmVjdG9yeSwgYmVjYXVzZSB0aGF0IHdpbGwKKysgICAgIyBi cmVhayBvdGhlciBwYWNrYWdlcyB1c2luZyB0aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMK KysgICAgIyByZW1vdmVkLCBvciBpZiB0aGUgdmFsdWUgaXMgYSByZWxhdGl2ZSBuYW1lLgorKyAg ICBJTlNUQUxMPSRhY19pbnN0YWxsX3NoCisrICBmaQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRJTlNUQUxMIiA+JjUKKyskYXNfZWNobyAi JElOU1RBTEwiID4mNjsgfQorKworKyMgVXNlIHRlc3QgLXogYmVjYXVzZSBTdW5PUzQgc2ggbWlz aGFuZGxlcyBicmFjZXMgaW4gJHt2YXItdmFsfS4KKysjIEl0IHRoaW5rcyB0aGUgZmlyc3QgY2xv c2UgYnJhY2UgZW5kcyB0aGUgdmFyaWFibGUgc3Vic3RpdHV0aW9uLgorK3Rlc3QgLXogIiRJTlNU QUxMX1BST0dSQU0iICYmIElOU1RBTExfUFJPR1JBTT0nJHtJTlNUQUxMfScKKysKKyt0ZXN0IC16 ICIkSU5TVEFMTF9TQ1JJUFQiICYmIElOU1RBTExfU0NSSVBUPScke0lOU1RBTEx9JworKworK3Rl c3QgLXogIiRJTlNUQUxMX0RBVEEiICYmIElOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQn CisrCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3 aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4uLiAiID4mNjsgfQorKyMgSnVz dCBpbiBjYXNlCisrc2xlZXAgMQorK2VjaG8gdGltZXN0YW1wID4gY29uZnRlc3QuZmlsZQorKyMg UmVqZWN0IHVuc2FmZSBjaGFyYWN0ZXJzIGluICRzcmNkaXIgb3IgdGhlIGFic29sdXRlIHdvcmtp bmcgZGlyZWN0b3J5CisrIyBuYW1lLiAgQWNjZXB0IHNwYWNlIGFuZCB0YWIgb25seSBpbiB0aGUg bGF0dGVyLgorK2FtX2xmPScKKysnCisrY2FzZSBgcHdkYCBpbgorKyAgKltcXFwiXCNcJFwmXCdc YCRhbV9sZl0qKQorKyAgICBhc19mbl9lcnJvciAkPyAidW5zYWZlIGFic29sdXRlIHdvcmtpbmcg ZGlyZWN0b3J5IG5hbWUiICIkTElORU5PIiA1OzsKKytlc2FjCisrY2FzZSAkc3JjZGlyIGluCisr ICAqW1xcXCJcI1wkXCZcJ1xgJGFtX2xmXCBcCV0qKQorKyAgICBhc19mbl9lcnJvciAkPyAidW5z YWZlIHNyY2RpciB2YWx1ZTogXGAkc3JjZGlyJyIgIiRMSU5FTk8iIDU7OworK2VzYWMKKysKKysj IERvIGBzZXQnIGluIGEgc3Vic2hlbGwgc28gd2UgZG9uJ3QgY2xvYmJlciB0aGUgY3VycmVudCBz aGVsbCdzCisrIyBhcmd1bWVudHMuICBNdXN0IHRyeSAtTCBmaXJzdCBpbiBjYXNlIGNvbmZpZ3Vy ZSBpcyBhY3R1YWxseSBhCisrIyBzeW1saW5rOyBzb21lIHN5c3RlbXMgcGxheSB3ZWlyZCBnYW1l cyB3aXRoIHRoZSBtb2QgdGltZSBvZiBzeW1saW5rcworKyMgKGVnIEZyZWVCU0QgcmV0dXJucyB0 aGUgbW9kIHRpbWUgb2YgdGhlIHN5bWxpbmsncyBjb250YWluaW5nCisrIyBkaXJlY3RvcnkpLgor K2lmICgKKysgICBzZXQgWCBgbHMgLUx0ICIkc3JjZGlyL2NvbmZpZ3VyZSIgY29uZnRlc3QuZmls ZSAyPiAvZGV2L251bGxgCisrICAgaWYgdGVzdCAiJCoiID0gIlgiOyB0aGVuCisrICAgICAgIyAt TCBkaWRuJ3Qgd29yay4KKysgICAgICBzZXQgWCBgbHMgLXQgIiRzcmNkaXIvY29uZmlndXJlIiBj b25mdGVzdC5maWxlYAorKyAgIGZpCisrICAgcm0gLWYgY29uZnRlc3QuZmlsZQorKyAgIGlmIHRl c3QgIiQqIiAhPSAiWCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIiBcCisrICAgICAg JiYgdGVzdCAiJCoiICE9ICJYIGNvbmZ0ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVu CisrCisrICAgICAgIyBJZiBuZWl0aGVyIG1hdGNoZWQsIHRoZW4gd2UgaGF2ZSBhIGJyb2tlbiBs cy4gIFRoaXMgY2FuIGhhcHBlbgorKyAgICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NI RUxMIGlzIGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKKysgICAgICAjIGJyb2tlbiBscyBhbGlhcyBm cm9tIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgaGFzIGFjdHVhbGx5CisrICAgICAgIyBoYXBwZW5l ZC4gIFN1Y2ggYSBzeXN0ZW0gY291bGQgbm90IGJlIGNvbnNpZGVyZWQgInNhbmUiLgorKyAgICAg IGFzX2ZuX2Vycm9yICQ/ICJscyAtdCBhcHBlYXJzIHRvIGZhaWwuICBNYWtlIHN1cmUgdGhlcmUg aXMgbm90IGEgYnJva2VuCisrYWxpYXMgaW4geW91ciBlbnZpcm9ubWVudCIgIiRMSU5FTk8iIDUK KysgICBmaQorKworKyAgIHRlc3QgIiQyIiA9IGNvbmZ0ZXN0LmZpbGUKKysgICApCisgdGhlbgor LSAgICBpZiBbICQxID0gIi1oZWxwIiAtbyAkMSA9ICItLWhlbHAiIF0KKy0gICAgdGhlbgorLSAg ICAgICAgZWNobyAnUmVjb2duaXplZCBjb25maWd1cmUgb3B0aW9uczonCistICAgICAgICBlY2hv ICcnCistICAgICAgICBlY2hvICdJbnN0YWxsYXRpb24gb3B0aW9uczonCistICAgICAgICBlY2hv ICctLWluY2x1ZGUtcHJlZml4PS9zb21lL3BhdGggICAgICAtIHBhdGggdG8gaW5zdGFsbCBTT0NJ IGhlYWRlciBmaWxlcycKKy0gICAgICAgIGVjaG8gJy0tbGliLXByZWZpeD0vc29tZS9wYXRoICAg ICAgICAgIC0gcGF0aCB0byBpbnN0YWxsIFNPQ0kgbGlicmFyaWVzJworLSAgICAgICAgZWNobyAn JworLSAgICAgICAgZWNobyAnTXlTUUwgb3B0aW9uczonCistICAgICAgICBlY2hvICctLW15c3Fs LWluY2x1ZGU9L3NvbWUvcGF0aCAgICAgICAtIGRpcmVjdG9yeSBjb250YWluaW5nIG15c3FsLmgn CistICAgICAgICBlY2hvICctLW15c3FsLWxpYj0vc29tZS9wYXRoICAgICAgICAgICAtIGRpcmVj dG9yeSBjb250YWluaW5nIGxpYm15c3FsY2xpZW50LlthfHNvXScKKy0gICAgICAgIGVjaG8gJycK Ky0gICAgICAgIGVjaG8gJ09yYWNsZSBvcHRpb25zIChpZiBPUkFDTEVfSE9NRSB2YXJpYWJsZSBp cyBub3Qgc2V0KTonCistICAgICAgICBlY2hvICctLW9yYWNsZS1pbmNsdWRlPS9zb21lL3BhdGgg ICAgICAtIGRpcmVjdG9yeSBjb250YWluaW5nIG9jaS5oJworLSAgICAgICAgZWNobyAnLS1vcmFj bGUtbGliPS9zb21lL3BhdGggICAgICAgICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJjbG50 c2guW2F8c29dJworLSAgICAgICAgZWNobyAnJworLSAgICAgICAgZWNobyAnUG9zdGdyZVNRTCBv cHRpb25zOicKKy0gICAgICAgIGVjaG8gJy0tcG9zdGdyZXNxbC1pbmNsdWRlPS9zb21lL3BhdGgg IC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGlicHEvbGlicHEtZnMuaCcKKy0gICAgICAgIGVjaG8g Jy0tcG9zdGdyZXNxbC1saWI9L3NvbWUvcGF0aCAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcg bGlicHEuW2F8c29dJworLSAgICAgICAgZWNobyAnJworLSAgICAgICAgZWNobyAnVGVzdCBwcm9n cmFtcyBjb21waWxhdGlvbiBvcHRpb25zIChub3QgbmVlZGVkIGZvciBsaWJyYXJ5IGJ1aWxkKTon CistICAgICAgICBlY2hvICctLWJvb3N0LWluY2x1ZGU9L3NvbWUvcGF0aCAgICAgICAtIHJvb3Qg aW5jbHVkZSBkaXJlY3Rvcnkgb2YgQm9vc3QnCistICAgICAgICBlY2hvICctLWJvb3N0LWxpYj0v c29tZS9wYXRoICAgICAgICAgICAtIHJvb3QgbGliIGRpcmVjdG9yeSBvZiBCb29zdCcKKy0gICAg ICAgIGVjaG8gJycKKy0gICAgICAgIGV4aXQKKysgICAjIE9rLgorKyAgIDoKKytlbHNlCisrICAg YXNfZm5fZXJyb3IgJD8gIm5ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRpc3RyaWJ1 dGVkIGZpbGVzIQorK0NoZWNrIHlvdXIgc3lzdGVtIGNsb2NrIiAiJExJTkVOTyIgNQorK2ZpCisr eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1 CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrdGVzdCAiJHByb2dyYW1fcHJlZml4IiAhPSBOT05F ICYmCisrICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSJzJl4mJHByb2dyYW1fcHJlZml4JjskcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZSIKKysjIFVzZSBhIGRvdWJsZSAkIHNvIG1ha2UgaWdub3JlcyBp dC4KKyt0ZXN0ICIkcHJvZ3JhbV9zdWZmaXgiICE9IE5PTkUgJiYKKysgIHByb2dyYW1fdHJhbnNm b3JtX25hbWU9InMmXCQmJHByb2dyYW1fc3VmZml4JjskcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSIK KysjIERvdWJsZSBhbnkgXCBvciAkLgorKyMgQnkgZGVmYXVsdCB3YXMgYHMseCx4JywgcmVtb3Zl IGl0IGlmIHVzZWxlc3MuCisrYWNfc2NyaXB0PSdzL1tcXCRdLyYmL2c7cy87cyx4LHgsJC8vJwor K3Byb2dyYW1fdHJhbnNmb3JtX25hbWU9YCRhc19lY2hvICIkcHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZSIgfCBzZWQgIiRhY19zY3JpcHQiYAorKworKyMgZXhwYW5kICRhY19hdXhfZGlyIHRvIGFuIGFi c29sdXRlIHBhdGgKKythbV9hdXhfZGlyPWBjZCAkYWNfYXV4X2RpciAmJiBwd2RgCisrCisraWYg dGVzdCB4IiR7TUlTU0lORytzZXR9IiAhPSB4c2V0OyB0aGVuCisrICBjYXNlICRhbV9hdXhfZGly IGluCisrICAqXCAqIHwgKlwJKikKKysgICAgTUlTU0lORz0iXCR7U0hFTEx9IFwiJGFtX2F1eF9k aXIvbWlzc2luZ1wiIiA7OworKyAgKikKKysgICAgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhf ZGlyL21pc3NpbmciIDs7CisrICBlc2FjCisrZmkKKysjIFVzZSBldmFsIHRvIGV4cGFuZCAkU0hF TEwKKytpZiBldmFsICIkTUlTU0lORyAtLXJ1biB0cnVlIjsgdGhlbgorKyAgYW1fbWlzc2luZ19y dW49IiRNSVNTSU5HIC0tcnVuICIKKytlbHNlCisrICBhbV9taXNzaW5nX3J1bj0KKysgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogXGBtaXNzaW5nJyBz Y3JpcHQgaXMgdG9vIG9sZCBvciBtaXNzaW5nIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJO SU5HOiBcYG1pc3NpbmcnIHNjcmlwdCBpcyB0b28gb2xkIG9yIG1pc3NpbmciID4mMjt9CisrZmkK KysKKytpZiB0ZXN0IHgiJHtpbnN0YWxsX3NofSIgIT0geHNldDsgdGhlbgorKyAgY2FzZSAkYW1f YXV4X2RpciBpbgorKyAgKlwgKiB8ICpcCSopCisrICAgIGluc3RhbGxfc2g9Ilwke1NIRUxMfSAn JGFtX2F1eF9kaXIvaW5zdGFsbC1zaCciIDs7CisrICAqKQorKyAgICBpbnN0YWxsX3NoPSJcJHtT SEVMTH0gJGFtX2F1eF9kaXIvaW5zdGFsbC1zaCIKKysgIGVzYWMKKytmaQorKworKyMgSW5zdGFs bGVkIGJpbmFyaWVzIGFyZSB1c3VhbGx5IHN0cmlwcGVkIHVzaW5nIGBzdHJpcCcgd2hlbiB0aGUg dXNlcgorKyMgcnVuIGBtYWtlIGluc3RhbGwtc3RyaXAnLiAgSG93ZXZlciBgc3RyaXAnIG1pZ2h0 IG5vdCBiZSB0aGUgcmlnaHQKKysjIHRvb2wgdG8gdXNlIGluIGNyb3NzLWNvbXBpbGF0aW9uIGVu dmlyb25tZW50cywgdGhlcmVmb3JlIEF1dG9tYWtlCisrIyB3aWxsIGhvbm9yIHRoZSBgU1RSSVAn IGVudmlyb25tZW50IHZhcmlhYmxlIHRvIG92ZXJydWxlIHRoaXMgcHJvZ3JhbS4KKytpZiB0ZXN0 ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSBubzsgdGhlbgorKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xf cHJlZml4IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xf cHJlZml4fXN0cmlwIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytz ZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1zdHJpcDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2FjX2N2X3Byb2dfU1RSSVArc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCisrICBh Y19jdl9wcm9nX1NUUklQPSIkU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFz X2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19TVFJJUD0iJHthY190b29sX3ByZWZpeH1zdHJpcCIKKysg ICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAg ZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrU1RSSVA9JGFjX2N2X3Byb2df U1RSSVAKKytpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJFNUUklQIiA+JjUKKyskYXNfZWNobyAiJFNU UklQIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysK KytmaQorK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX1NUUklQIjsgdGhlbgorKyAgYWNfY3RfU1RS SVA9JFNUUklQCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInN0cmlwIiwgc28gaXQg Y2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgc3RyaXA7IGFjX3dv cmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5n IGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4u ICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X1NUUklQK3NldH0iID0gc2V0 OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVz dCAtbiAiJGFjX2N0X1NUUklQIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0iJGFj X2N0X1NUUklQIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNf c2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgK KytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGly PS4KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7 IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRh c190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFj X2N2X3Byb2dfYWNfY3RfU1RSSVA9InN0cmlwIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUK KysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUwor KworK2ZpCisrZmkKKythY19jdF9TVFJJUD0kYWNfY3ZfcHJvZ19hY19jdF9TVFJJUAorK2lmIHRl c3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3RfU1RSSVAiID4mNQorKyRhc19lY2hvICIkYWNf Y3RfU1RSSVAiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQor KworKyAgaWYgdGVzdCAieCRhY19jdF9TVFJJUCIgPSB4OyB0aGVuCisrICAgIFNUUklQPSI6Igor KyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisr eWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6 IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVk IHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMK KysgICAgU1RSSVA9JGFjX2N0X1NUUklQCisrICBmaQorK2Vsc2UKKysgIFNUUklQPSIkYWNfY3Zf cHJvZ19TVFJJUCIKKytmaQorKworK2ZpCisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNPSJcJChpbnN0 YWxsX3NoKSAtYyAtcyIKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIGZvciBhIHRocmVhZC1zYWZlIG1rZGlyIC1wIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAtcC4uLiAiID4mNjsgfQorK2lmIHRl c3QgLXogIiRNS0RJUl9QIjsgdGhlbgorKyAgaWYgdGVzdCAiJHthY19jdl9wYXRoX21rZGlyK3Nl dH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQor KyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4g JFBBVEgkUEFUSF9TRVBBUkFUT1Ivb3B0L3Nmdy9iaW4KKytkbworKyAgSUZTPSRhc19zYXZlX0lG UworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAgZm9yIGFjX3Byb2cgaW4g bWtkaXIgZ21rZGlyOyBkbworKwkgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxl X2V4dGVuc2lvbnM7IGRvCisrCSAgIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCI7IH0gfHwg Y29udGludWUKKysJICAgY2FzZSBgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiIC0tdmVy c2lvbiAyPiYxYCBpbiAjKAorKwkgICAgICdta2RpciAoR05VIGNvcmV1dGlscykgJyogfCBcCisr CSAgICAgJ21rZGlyIChjb3JldXRpbHMpICcqIHwgXAorKwkgICAgICdta2RpciAoZmlsZXV0aWxz KSAnNC4xKikKKysJICAgICAgIGFjX2N2X3BhdGhfbWtkaXI9JGFzX2Rpci8kYWNfcHJvZyRhY19l eGVjX2V4dAorKwkgICAgICAgYnJlYWsgMzs7CisrCSAgIGVzYWMKKysJIGRvbmUKKysgICAgICAg ZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorKworKyAgdGVzdCAtZCAu Ly0tdmVyc2lvbiAmJiBybWRpciAuLy0tdmVyc2lvbgorKyAgaWYgdGVzdCAiJHthY19jdl9wYXRo X21rZGlyK3NldH0iID0gc2V0OyB0aGVuCisrICAgIE1LRElSX1A9IiRhY19jdl9wYXRoX21rZGly IC1wIgorKyAgZWxzZQorKyAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVs bCBzY3JpcHQuICBEb24ndCBjYWNoZSBhCisrICAgICMgdmFsdWUgZm9yIE1LRElSX1Agd2l0aGlu IGEgc291cmNlIGRpcmVjdG9yeSwgYmVjYXVzZSB0aGF0IHdpbGwKKysgICAgIyBicmVhayBvdGhl ciBwYWNrYWdlcyB1c2luZyB0aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKKysgICAgIyBy ZW1vdmVkLCBvciBpZiB0aGUgdmFsdWUgaXMgYSByZWxhdGl2ZSBuYW1lLgorKyAgICBNS0RJUl9Q PSIkYWNfaW5zdGFsbF9zaCAtZCIKKysgIGZpCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJE1LRElSX1AiID4mNQorKyRhc19lY2hvICIkTUtE SVJfUCIgPiY2OyB9CisrCisrbWtkaXJfcD0iJE1LRElSX1AiCisrY2FzZSAkbWtkaXJfcCBpbgor KyAgW1xcLyRdKiB8ID86W1xcL10qKSA7OworKyAgKi8qKSBta2Rpcl9wPSJcJCh0b3BfYnVpbGRk aXIpLyRta2Rpcl9wIiA7OworK2VzYWMKKysKKytmb3IgYWNfcHJvZyBpbiBnYXdrIG1hd2sgbmF3 ayBhd2sKKytkbworKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNv IGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICRhY19wcm9n OyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNf d29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19BV0src2V0fSIgPSBzZXQ7 IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0 IC1uICIkQVdLIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19BV0s9IiRBV0siICMgTGV0IHRoZSB1c2Vy IG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhf U0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZT CisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQg aW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19BV0s9IiRhY19wcm9nIgor KyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisr ICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKytBV0s9JGFjX2N2X3Byb2df QVdLCisraWYgdGVzdCAtbiAiJEFXSyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkQVdLIiA+JjUKKyskYXNfZWNobyAiJEFXSyIgPiY2 OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICB0ZXN0 IC1uICIkQVdLIiAmJiBicmVhaworK2RvbmUKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFL RSkiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMg XCQoTUFLRSkuLi4gIiA+JjY7IH0KKytzZXQgeCAke01BS0UtbWFrZX0KKythY19tYWtlPWAkYXNf ZWNobyAiJDIiIHwgc2VkICdzLysvcC9nOyBzL1teYS16QS1aMC05X10vXy9nJ2AKKytpZiBldmFs ICJ0ZXN0IFwiXCR7YWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0K3NldH1cIiIgPSBzZXQ7 IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXQgPmNv bmZ0ZXN0Lm1ha2UgPDxcX0FDRU9GCisrU0hFTEwgPSAvYmluL3NoCisrYWxsOgorKwlAZWNobyAn QEBAJSUlPSQoTUFLRSk9QEBAJSUlJworK19BQ0VPRgorKyMgR05VIG1ha2Ugc29tZXRpbWVzIHBy aW50cyAibWFrZVsxXTogRW50ZXJpbmcgLi4uIiwgd2hpY2ggd291bGQgY29uZnVzZSB1cy4KKytj YXNlIGAke01BS0UtbWFrZX0gLWYgY29uZnRlc3QubWFrZSAyPi9kZXYvbnVsbGAgaW4KKysgICpA QEAlJSU9Pyo9QEBAJSUlKikKKysgICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9z ZXQ9eWVzOzsKKysgICopCisrICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0 PW5vOzsKKytlc2FjCisrcm0gLWYgY29uZnRlc3QubWFrZQorK2ZpCisraWYgZXZhbCB0ZXN0IFwk YWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0ID0geWVzOyB0aGVuCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNo byAieWVzIiA+JjY7IH0KKysgIFNFVF9NQUtFPQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+ JjY7IH0KKysgIFNFVF9NQUtFPSJNQUtFPSR7TUFLRS1tYWtlfSIKKytmaQorKworK3JtIC1yZiAu dHN0IDI+L2Rldi9udWxsCisrbWtkaXIgLnRzdCAyPi9kZXYvbnVsbAorK2lmIHRlc3QgLWQgLnRz dDsgdGhlbgorKyAgYW1fX2xlYWRpbmdfZG90PS4KKytlbHNlCisrICBhbV9fbGVhZGluZ19kb3Q9 XworK2ZpCisrcm1kaXIgLnRzdCAyPi9kZXYvbnVsbAorKworK2lmIHRlc3QgImBjZCAkc3JjZGly ICYmIHB3ZGAiICE9ICJgcHdkYCI7IHRoZW4KKysgICMgVXNlIC1JJChzcmNkaXIpIG9ubHkgd2hl biAkKHNyY2RpcikgIT0gLiwgc28gdGhhdCBtYWtlJ3Mgb3V0cHV0CisrICAjIGlzIG5vdCBwb2xs dXRlZCB3aXRoIHJlcGVhdGVkICItSS4iCisrICBhbV9faXNyYz0nIC1JJChzcmNkaXIpJworKyAg IyB0ZXN0IHRvIHNlZSBpZiBzcmNkaXIgYWxyZWFkeSBjb25maWd1cmVkCisrICBpZiB0ZXN0IC1m ICRzcmNkaXIvY29uZmlnLnN0YXR1czsgdGhlbgorKyAgICBhc19mbl9lcnJvciAkPyAic291cmNl IGRpcmVjdG9yeSBhbHJlYWR5IGNvbmZpZ3VyZWQ7IHJ1biBcIm1ha2UgZGlzdGNsZWFuXCIgdGhl cmUgZmlyc3QiICIkTElORU5PIiA1CisrICBmaQorK2ZpCisrCisrIyB0ZXN0IHdoZXRoZXIgd2Ug aGF2ZSBjeWdwYXRoCisraWYgdGVzdCAteiAiJENZR1BBVEhfVyI7IHRoZW4KKysgIGlmIChjeWdw YXRoIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgorKyAgICBDWUdQQVRI X1c9J2N5Z3BhdGggLXcnCisrICBlbHNlCisrICAgIENZR1BBVEhfVz1lY2hvCisrICBmaQorK2Zp CisrCisrCisrIyBEZWZpbmUgdGhlIGlkZW50aXR5IG9mIHRoZSBwYWNrYWdlLgorKyBQQUNLQUdF PSdzb2NpJworKyBWRVJTSU9OPSczLjAuMCcKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8X0FD RU9GCisrI2RlZmluZSBQQUNLQUdFICIkUEFDS0FHRSIKKytfQUNFT0YKKysKKysKKytjYXQgPj5j b25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBWRVJTSU9OICIkVkVSU0lPTiIKKytfQUNFT0YK KysKKysjIFNvbWUgdG9vbHMgQXV0b21ha2UgbmVlZHMuCisrCisrQUNMT0NBTD0ke0FDTE9DQUwt IiR7YW1fbWlzc2luZ19ydW59YWNsb2NhbC0ke2FtX19hcGlfdmVyc2lvbn0ifQorKworKworK0FV VE9DT05GPSR7QVVUT0NPTkYtIiR7YW1fbWlzc2luZ19ydW59YXV0b2NvbmYifQorKworKworK0FV VE9NQUtFPSR7QVVUT01BS0UtIiR7YW1fbWlzc2luZ19ydW59YXV0b21ha2UtJHthbV9fYXBpX3Zl cnNpb259In0KKysKKysKKytBVVRPSEVBREVSPSR7QVVUT0hFQURFUi0iJHthbV9taXNzaW5nX3J1 bn1hdXRvaGVhZGVyIn0KKysKKysKKytNQUtFSU5GTz0ke01BS0VJTkZPLSIke2FtX21pc3Npbmdf cnVufW1ha2VpbmZvIn0KKysKKysjIFdlIG5lZWQgYXdrIGZvciB0aGUgImNoZWNrIiB0YXJnZXQu ICBUaGUgc3lzdGVtICJhd2siIGlzIGJhZCBvbgorKyMgc29tZSBwbGF0Zm9ybXMuCisrIyBBbHdh eXMgZGVmaW5lIEFNVEFSIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorKworK0FNVEFSPSR7 QU1UQVItIiR7YW1fbWlzc2luZ19ydW59dGFyIn0KKysKKythbV9fdGFyPScke0FNVEFSfSBjaG9m IC0gIiQkdGFyZGlyIic7IGFtX191bnRhcj0nJHtBTVRBUn0geGYgLScKKysKKysKKysKKysKKysK KysKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLWNwcHVuaXQtcHJlZml4IHdhcyBnaXZl bi4KKytpZiB0ZXN0ICIke3dpdGhfY3BwdW5pdF9wcmVmaXgrc2V0fSIgPSBzZXQ7IHRoZW4gOgor KyAgd2l0aHZhbD0kd2l0aF9jcHB1bml0X3ByZWZpeDsgY3BwdW5pdF9jb25maWdfcHJlZml4PSIk d2l0aHZhbCIKKytlbHNlCisrICBjcHB1bml0X2NvbmZpZ19wcmVmaXg9IiIKKytmaQorKworKwor KyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtY3BwdW5pdC1leGVjLXByZWZpeCB3YXMgZ2l2ZW4uCisr aWYgdGVzdCAiJHt3aXRoX2NwcHVuaXRfZXhlY19wcmVmaXgrc2V0fSIgPSBzZXQ7IHRoZW4gOgor KyAgd2l0aHZhbD0kd2l0aF9jcHB1bml0X2V4ZWNfcHJlZml4OyBjcHB1bml0X2NvbmZpZ19leGVj X3ByZWZpeD0iJHdpdGh2YWwiCisrZWxzZQorKyAgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9 IiIKKytmaQorKworKworKyAgaWYgdGVzdCB4JGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4ICE9 IHggOyB0aGVuCisrICAgICBjcHB1bml0X2NvbmZpZ19hcmdzPSIkY3BwdW5pdF9jb25maWdfYXJn cyAtLWV4ZWMtcHJlZml4PSRjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeCIKKysgICAgIGlmIHRl c3QgeCR7Q1BQVU5JVF9DT05GSUcrc2V0fSAhPSB4c2V0IDsgdGhlbgorKyAgICAgICAgQ1BQVU5J VF9DT05GSUc9JGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4L2Jpbi9jcHB1bml0LWNvbmZpZwor KyAgICAgZmkKKysgIGZpCisrICBpZiB0ZXN0IHgkY3BwdW5pdF9jb25maWdfcHJlZml4ICE9IHgg OyB0aGVuCisrICAgICBjcHB1bml0X2NvbmZpZ19hcmdzPSIkY3BwdW5pdF9jb25maWdfYXJncyAt LXByZWZpeD0kY3BwdW5pdF9jb25maWdfcHJlZml4IgorKyAgICAgaWYgdGVzdCB4JHtDUFBVTklU X0NPTkZJRytzZXR9ICE9IHhzZXQgOyB0aGVuCisrICAgICAgICBDUFBVTklUX0NPTkZJRz0kY3Bw dW5pdF9jb25maWdfcHJlZml4L2Jpbi9jcHB1bml0LWNvbmZpZworKyAgICAgZmkKKysgIGZpCisr CisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImNwcHVuaXQtY29uZmlnIiwgc28gaXQg Y2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgY3BwdW5pdC1jb25m aWc7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRh Y193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wYXRoX0NQUFVOSVRfQ09ORklH K3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgY2FzZSAkQ1BQVU5JVF9DT05GSUcgaW4KKysgIFtcXC9dKiB8ID86W1xcL10qKQorKyAg YWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRz0iJENQUFVOSVRfQ09ORklHIiAjIExldCB0aGUgdXNl ciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KKysgIDs7CisrICAqKQorKyAgYXNfc2F2 ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytk bworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K KysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRv CisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190 ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2 X3BhdGhfQ1BQVU5JVF9DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCisrICAg ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKysgIGRv bmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrICB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9DUFBVTklU X0NPTkZJRyIgJiYgYWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRz0ibm8iCisrICA7OworK2VzYWMK KytmaQorK0NQUFVOSVRfQ09ORklHPSRhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHCisraWYgdGVz dCAtbiAiJENQUFVOSVRfQ09ORklHIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRDUFBVTklUX0NPTkZJRyIgPiY1CisrJGFzX2VjaG8g IiRDUFBVTklUX0NPTkZJRyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsg fQorK2ZpCisrCisrCisrICBjcHB1bml0X3ZlcnNpb25fbWluPTEuMTAKKysKKysgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIENwcHVuaXQgLSB2 ZXJzaW9uID49ICRjcHB1bml0X3ZlcnNpb25fbWluIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgQ3BwdW5pdCAtIHZlcnNpb24gPj0gJGNwcHVuaXRfdmVyc2lvbl9taW4uLi4gIiA+JjY7 IH0KKysgIG5vX2NwcHVuaXQ9IiIKKysgIGlmIHRlc3QgIiRDUFBVTklUX0NPTkZJRyIgPSAibm8i IDsgdGhlbgorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICAgIG5vX2NwcHVuaXQ9eWVz CisrICBlbHNlCisrICAgIENQUFVOSVRfQ0ZMQUdTPWAkQ1BQVU5JVF9DT05GSUcgLS1jZmxhZ3Ng CisrICAgIENQUFVOSVRfTElCUz1gJENQUFVOSVRfQ09ORklHIC0tbGlic2AKKysgICAgQ1BQVU5J VF9WRVJTSU9OPWAkQ1BQVU5JVF9DT05GSUcgLS12ZXJzaW9uYAorKworKyAgICBjcHB1bml0X21h am9yX3ZlcnNpb249YGVjaG8gJENQUFVOSVRfVkVSU0lPTiB8IFwKKysgICAgICAgICAgIHNlZCAn cy9cKFswLTldKlwpLlwoWzAtOV0qXCkuXChbMC05XSpcKS9cMS8nYAorKyAgICBjcHB1bml0X21p bm9yX3ZlcnNpb249YGVjaG8gJENQUFVOSVRfVkVSU0lPTiB8IFwKKysgICAgICAgICAgIHNlZCAn cy9cKFswLTldKlwpLlwoWzAtOV0qXCkuXChbMC05XSpcKS9cMi8nYAorKyAgICBjcHB1bml0X21p Y3JvX3ZlcnNpb249YGVjaG8gJENQUFVOSVRfVkVSU0lPTiB8IFwKKysgICAgICAgICAgIHNlZCAn cy9cKFswLTldKlwpLlwoWzAtOV0qXCkuXChbMC05XSpcKS9cMy8nYAorKworKyAgICBjcHB1bml0 X21ham9yX21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKKysgICAgICAgICAgIHNl ZCAncy9cKFswLTldKlwpLlwoWzAtOV0qXCkuXChbMC05XSpcKS9cMS8nYAorKyAgICBpZiB0ZXN0 ICJ4JHtjcHB1bml0X21ham9yX21pbn0iID0gIngiIDsgdGhlbgorKyAgICAgICBjcHB1bml0X21h am9yX21pbj0wCisrICAgIGZpCisrCisrICAgIGNwcHVuaXRfbWlub3JfbWluPWBlY2hvICRjcHB1 bml0X3ZlcnNpb25fbWluIHwgXAorKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05 XSpcKS5cKFswLTldKlwpL1wyLydgCisrICAgIGlmIHRlc3QgIngke2NwcHVuaXRfbWlub3JfbWlu fSIgPSAieCIgOyB0aGVuCisrICAgICAgIGNwcHVuaXRfbWlub3JfbWluPTAKKysgICAgZmkKKysK KysgICAgY3BwdW5pdF9taWNyb19taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCisr ICAgICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDMvJ2AK KysgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9taWNyb19taW59IiA9ICJ4IiA7IHRoZW4KKysgICAg ICAgY3BwdW5pdF9taWNyb19taW49MAorKyAgICBmaQorKworKyAgICBjcHB1bml0X3ZlcnNpb25f cHJvcGVyPWBleHByIFwKKysgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD4gJGNwcHVu aXRfbWFqb3JfbWluIFx8IFwKKysgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD0gJGNw cHVuaXRfbWFqb3JfbWluIFwmIFwKKysgICAgICAgICRjcHB1bml0X21pbm9yX3ZlcnNpb24gXD4g JGNwcHVuaXRfbWlub3JfbWluIFx8IFwKKysgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24g XD0gJGNwcHVuaXRfbWFqb3JfbWluIFwmIFwKKysgICAgICAgICRjcHB1bml0X21pbm9yX3ZlcnNp b24gXD0gJGNwcHVuaXRfbWlub3JfbWluIFwmIFwKKysgICAgICAgICRjcHB1bml0X21pY3JvX3Zl cnNpb24gXD49ICRjcHB1bml0X21pY3JvX21pbiBgCisrCisrICAgIGlmIHRlc3QgIiRjcHB1bml0 X3ZlcnNpb25fcHJvcGVyIiA9ICIxIiA7IHRoZW4KKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGNwcHVuaXRfbWFqb3JfdmVyc2lvbi4kY3Bw dW5pdF9taW5vcl92ZXJzaW9uLiRjcHB1bml0X21pY3JvX3ZlcnNpb24iID4mNQorKyRhc19lY2hv ICIkY3BwdW5pdF9tYWpvcl92ZXJzaW9uLiRjcHB1bml0X21pbm9yX3ZlcnNpb24uJGNwcHVuaXRf bWljcm9fdmVyc2lvbiIgPiY2OyB9CisrICAgIGVsc2UKKysgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIg PiY2OyB9CisrICAgICAgbm9fY3BwdW5pdD15ZXMKKysgICAgZmkKKysgIGZpCisrCisrICBpZiB0 ZXN0ICJ4JG5vX2NwcHVuaXQiID0geCA7IHRoZW4KKysgICAgIDoKKysgIGVsc2UKKysgICAgIENQ UFVOSVRfQ0ZMQUdTPSIiCisrICAgICBDUFBVTklUX0xJQlM9IiIKKysgICAgIDoKKysgIGZpCisr CisrCisrCisrCisrCisrIGlmIHRlc3QgIngkQ1BQVU5JVF9MSUJTIiAhPSB4OyB0aGVuCisrICBI QVZFX0NQUFVOSVRfVFJVRT0KKysgIEhBVkVfQ1BQVU5JVF9GQUxTRT0nIycKKytlbHNlCisrICBI QVZFX0NQUFVOSVRfVFJVRT0nIycKKysgIEhBVkVfQ1BQVU5JVF9GQUxTRT0KKytmaQorKworKwor KyMgU2hhcmVkIGxpYnJhcnkgdmVyc2lvbmluZworK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OPSIz OjA6MCIKKysjICAgICAgICAgICAgICAgICAgICAgICAgfCB8IHwKKysjICAgICAgICAgICAgICAg ICArLS0tLS0tKyB8ICstLS0rCisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAor KyMgICAgICAgICAgICAgIGN1cnJlbnQ6cmV2aXNpb246YWdlCisrIyAgICAgICAgICAgICAgICAg fCAgICAgICAgfCAgICAgfAorKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICstIGlu Y3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiBhZGRlZDsKKysjICAgICAgICAgICAgICAg ICB8ICAgICAgICB8ICAgICAgICBzZXQgdG8gemVybyBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbgor KyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgIHJlbW92ZWQgb3IgY2hhbmdlZAor KyMgICAgICAgICAgICAgICAgIHwgICAgICAgICstIGluY3JlbWVudCBpZiBzb3VyY2UgY29kZSBo YXMgY2hhbmdlZDsKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICAgICBzZXQgdG8gemVybyBp ZiBjdXJyZW50IGlzIGluY3JlbWVudGVkCisrIyAgICAgICAgICAgICAgICAgKy0gaW5jcmVtZW50 IGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkLCByZW1vdmVkCisrIyAgICAgICAgICAgICAg ICAgICAgb3IgY2hhbmdlZAorKworKworKyMgVXBsb2FkIGNvbW1hbmQgZm9yIFNvdXJjZUZvcmdl CisrVVBMT0FEX0NPTU1BTkQ9Im5jZnRwcHV0IC12IHVwbG9hZC5zb3VyY2Vmb3JnZS5uZXQgL2lu Y29taW5nIgorKworKworKyMgQ2hlY2sgZm9yIGhvc3QgYW5kIGRpc2FibGUgYnVpbGRpbmcgYSBz aGFyZWQgbGlicmFyeSBpbiBXaW5kb3dzCisrIyBNYWtlIHN1cmUgd2UgY2FuIHJ1biBjb25maWcu c3ViLgorKyRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgc3VuNCA+L2Rldi9udWxsIDI+ JjEgfHwKKysgIGFzX2ZuX2Vycm9yICQ/ICJjYW5ub3QgcnVuICRTSEVMTCAkYWNfYXV4X2Rpci9j b25maWcuc3ViIiAiJExJTkVOTyIgNQorKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19j dl9idWlsZCtzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysgIGFjX2J1aWxkX2FsaWFzPSRidWlsZF9hbGlhcworK3Rlc3QgIngkYWNfYnVp bGRfYWxpYXMiID0geCAmJgorKyAgYWNfYnVpbGRfYWxpYXM9YCRTSEVMTCAiJGFjX2F1eF9kaXIv Y29uZmlnLmd1ZXNzImAKKyt0ZXN0ICJ4JGFjX2J1aWxkX2FsaWFzIiA9IHggJiYKKysgIGFzX2Zu X2Vycm9yICQ/ICJjYW5ub3QgZ3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3BlY2lmeSBvbmUi ICIkTElORU5PIiA1CisrYWNfY3ZfYnVpbGQ9YCRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1 YiIgJGFjX2J1aWxkX2FsaWFzYCB8fAorKyAgYXNfZm5fZXJyb3IgJD8gIiRTSEVMTCAkYWNfYXV4 X2Rpci9jb25maWcuc3ViICRhY19idWlsZF9hbGlhcyBmYWlsZWQiICIkTElORU5PIiA1CisrCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFj X2N2X2J1aWxkIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2J1aWxkIiA+JjY7IH0KKytjYXNlICRh Y19jdl9idWlsZCBpbgorKyotKi0qKSA7OworKyopIGFzX2ZuX2Vycm9yICQ/ICJpbnZhbGlkIHZh bHVlIG9mIGNhbm9uaWNhbCBidWlsZCIgIiRMSU5FTk8iIDU7OworK2VzYWMKKytidWlsZD0kYWNf Y3ZfYnVpbGQKKythY19zYXZlX0lGUz0kSUZTOyBJRlM9Jy0nCisrc2V0IHggJGFjX2N2X2J1aWxk Cisrc2hpZnQKKytidWlsZF9jcHU9JDEKKytidWlsZF92ZW5kb3I9JDIKKytzaGlmdDsgc2hpZnQK KysjIFJlbWVtYmVyLCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIElGUyBpcyB1c2VkIHRvIGNyZWF0 ZSAkKiwKKysjIGV4Y2VwdCB3aXRoIG9sZCBzaGVsbHM6CisrYnVpbGRfb3M9JCoKKytJRlM9JGFj X3NhdmVfSUZTCisrY2FzZSAkYnVpbGRfb3MgaW4gKlwgKikgYnVpbGRfb3M9YGVjaG8gIiRidWls ZF9vcyIgfCBzZWQgJ3MvIC8tL2cnYDs7IGVzYWMKKysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2FjX2N2X2hvc3Qrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0ICJ4JGhvc3RfYWxpYXMiID0geDsgdGhlbgorKyAg YWNfY3ZfaG9zdD0kYWNfY3ZfYnVpbGQKKytlbHNlCisrICBhY19jdl9ob3N0PWAkU0hFTEwgIiRh Y19hdXhfZGlyL2NvbmZpZy5zdWIiICRob3N0X2FsaWFzYCB8fAorKyAgICBhc19mbl9lcnJvciAk PyAiJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIgJGhvc3RfYWxpYXMgZmFpbGVkIiAiJExJ TkVOTyIgNQorK2ZpCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IHJlc3VsdDogJGFjX2N2X2hvc3QiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfaG9zdCIg PiY2OyB9CisrY2FzZSAkYWNfY3ZfaG9zdCBpbgorKyotKi0qKSA7OworKyopIGFzX2ZuX2Vycm9y ICQ/ICJpbnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNhbCBob3N0IiAiJExJTkVOTyIgNTs7CisrZXNh YworK2hvc3Q9JGFjX2N2X2hvc3QKKythY19zYXZlX0lGUz0kSUZTOyBJRlM9Jy0nCisrc2V0IHgg JGFjX2N2X2hvc3QKKytzaGlmdAorK2hvc3RfY3B1PSQxCisraG9zdF92ZW5kb3I9JDIKKytzaGlm dDsgc2hpZnQKKysjIFJlbWVtYmVyLCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIElGUyBpcyB1c2Vk IHRvIGNyZWF0ZSAkKiwKKysjIGV4Y2VwdCB3aXRoIG9sZCBzaGVsbHM6CisraG9zdF9vcz0kKgor K0lGUz0kYWNfc2F2ZV9JRlMKKytjYXNlICRob3N0X29zIGluICpcICopIGhvc3Rfb3M9YGVjaG8g IiRob3N0X29zIiB8IHNlZCAncy8gLy0vZydgOzsgZXNhYworKworKworK2Nhc2UgJGhvc3QgaW4K KysgICotKi1tc2RvcyogfCAqLSotZ28zMiogfCAqLSotbWluZ3czMiogfCAqLSotY3lnd2luKiB8 ICotKi13aW5kb3dzKikKKysgICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXNoYXJlZCB3YXMg Z2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfc2hhcmVkK3NldH0iID0gc2V0OyB0aGVuIDoKKysg IGVuYWJsZXZhbD0kZW5hYmxlX3NoYXJlZDsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KKysgICAgY2Fz ZSAkZW5hYmxldmFsIGluCisrICAgIHllcykgZW5hYmxlX3NoYXJlZD15ZXMgOzsKKysgICAgbm8p IGVuYWJsZV9zaGFyZWQ9bm8gOzsKKysgICAgKikKKysgICAgICBlbmFibGVfc2hhcmVkPW5vCisr ICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21t b24gbGlzdCBzZXBhcmF0b3JzLgorKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lG U30kUEFUSF9TRVBBUkFUT1IsIgorKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KKysJ SUZTPSIkbHRfc2F2ZV9pZnMiCisrCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCisrCSAg ZW5hYmxlX3NoYXJlZD15ZXMKKysJZmkKKysgICAgICBkb25lCisrICAgICAgSUZTPSIkbHRfc2F2 ZV9pZnMiCisrICAgICAgOzsKKysgICAgZXNhYworK2Vsc2UKKysgIGVuYWJsZV9zaGFyZWQ9bm8K KytmaQorKworKworKworKworKworKworKworKworKworKyAgICAjIENoZWNrIHdoZXRoZXIgLS1l bmFibGUtc3RhdGljIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9zdGF0aWMrc2V0fSIg PSBzZXQ7IHRoZW4gOgorKyAgZW5hYmxldmFsPSRlbmFibGVfc3RhdGljOyBwPSR7UEFDS0FHRS1k ZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2YWwgaW4KKysgICAgeWVzKSBlbmFibGVfc3RhdGlj PXllcyA7OworKyAgICBubykgZW5hYmxlX3N0YXRpYz1ubyA7OworKyAgICAqKQorKyAgICAgZW5h YmxlX3N0YXRpYz1ubworKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2Ug dXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0i JElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKKysgICAgICBmb3IgcGtnIGluICRl bmFibGV2YWw7IGRvCisrCUlGUz0iJGx0X3NhdmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAi WCRwIjsgdGhlbgorKwkgIGVuYWJsZV9zdGF0aWM9eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAg ICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICAgIDs7CisrICAgIGVzYWMKKytlbHNlCisrICBl bmFibGVfc3RhdGljPXllcworK2ZpCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrICAgIDs7 CisrICAqKQorKyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc2hhcmVkIHdhcyBnaXZlbi4K KytpZiB0ZXN0ICIke2VuYWJsZV9zaGFyZWQrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgZW5hYmxl dmFsPSRlbmFibGVfc2hhcmVkOyBwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFi bGV2YWwgaW4KKysgICAgeWVzKSBlbmFibGVfc2hhcmVkPXllcyA7OworKyAgICBubykgZW5hYmxl X3NoYXJlZD1ubyA7OworKyAgICAqKQorKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KKysgICAgICAj IExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0 IHNlcGFyYXRvcnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRI X1NFUEFSQVRPUiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworKwlJRlM9IiRs dF9zYXZlX2lmcyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKysJICBlbmFibGVf c2hhcmVkPXllcworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIK KysgICAgICA7OworKyAgICBlc2FjCisrZWxzZQorKyAgZW5hYmxlX3NoYXJlZD15ZXMKKytmaQor KworKworKworKworKworKworKyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc3RhdGljIHdh cyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRoZW4gOgor KyAgZW5hYmxldmFsPSRlbmFibGVfc3RhdGljOyBwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBj YXNlICRlbmFibGV2YWwgaW4KKysgICAgeWVzKSBlbmFibGVfc3RhdGljPXllcyA7OworKyAgICBu bykgZW5hYmxlX3N0YXRpYz1ubyA7OworKyAgICAqKQorKyAgICAgZW5hYmxlX3N0YXRpYz1ubwor KyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29t bW9uIGxpc3Qgc2VwYXJhdG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJ RlN9JFBBVEhfU0VQQVJBVE9SLCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCisr CUlGUz0iJGx0X3NhdmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgorKwkg IGVuYWJsZV9zdGF0aWM9eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJGx0X3Nh dmVfaWZzIgorKyAgICAgIDs7CisrICAgIGVzYWMKKytlbHNlCisrICBlbmFibGVfc3RhdGljPW5v CisrZmkKKysKKysKKysKKysKKysKKysKKysgICAgOzsKKytlc2FjCisrCisrIyBDaGVja3MgZm9y IHByb2dyYW1zCisrc2F2ZV9DWFhGTEFHUz0iJENYWEZMQUdTIgorK2FjX2V4dD1jcHAKKythY19j cHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorK2lm IHRlc3QgLXogIiRDWFgiOyB0aGVuCisrICBpZiB0ZXN0IC1uICIkQ0NDIjsgdGhlbgorKyAgICBD WFg9JENDQworKyAgZWxzZQorKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVu CisrICBmb3IgYWNfcHJvZyBpbiBnKysgYysrIGdwcCBhQ0MgQ0MgY3h4IGNjKysgY2wuZXhlIEZD QyBLQ0MgUkNDIHhsQ19yIHhsQworKyAgZG8KKysgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk IG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFt ZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3Jk PSQyCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBm b3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAi ID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4gOgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkQ1hY IjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19DWFg9IiRDWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRl IHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9S CisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0 IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19DWFg9IiRhY190b29sX3ByZWZpeCRhY19w cm9nIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytk b25lCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKytDWFg9JGFjX2N2 X3Byb2dfQ1hYCisraWYgdGVzdCAtbiAiJENYWCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkQ1hYIiA+JjUKKyskYXNfZWNobyAiJENY WCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisr ICAgIHRlc3QgLW4gIiRDWFgiICYmIGJyZWFrCisrICBkb25lCisrZmkKKytpZiB0ZXN0IC16ICIk Q1hYIjsgdGhlbgorKyAgYWNfY3RfQ1hYPSRDWFgKKysgIGZvciBhY19wcm9nIGluIGcrKyBjKysg Z3BwIGFDQyBDQyBjeHggY2MrKyBjbC5leGUgRkNDIEtDQyBSQ0MgeGxDX3IgeGxDCisrZG8KKysg ICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBw cm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgor K3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRh Y193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ1hYK3NldH0iID0gc2V0OyB0aGVuIDoK KysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFj X2N0X0NYWCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfY3RfQ1hYIiAjIExl dCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsg SUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRh c19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAgZm9yIGFj X2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRl c3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3Rf Q1hYPSIkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIK KysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisr YWNfY3RfQ1hYPSRhY19jdl9wcm9nX2FjX2N0X0NYWAorK2lmIHRlc3QgLW4gIiRhY19jdF9DWFgi OyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogJGFjX2N0X0NYWCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9DWFgiID4mNjsgfQorK2Vsc2UK KysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIg PiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyAgdGVzdCAtbiAiJGFjX2N0 X0NYWCIgJiYgYnJlYWsKKytkb25lCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X0NYWCIgPSB4OyB0 aGVuCisrICAgIENYWD0iZysrIgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6 JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRo IGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jv c3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xf d2FybmVkPXllcyA7OworK2VzYWMKKysgICAgQ1hYPSRhY19jdF9DWFgKKysgIGZpCisrZmkKKysK KysgIGZpCisrZmkKKysjIFByb3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGls ZXIuCisrJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9y IEMrKyBjb21waWxlciB2ZXJzaW9uIiA+JjUKKytzZXQgWCAkYWNfY29tcGlsZQorK2FjX2NvbXBp bGVyPSQyCisrZm9yIGFjX29wdGlvbiBpbiAtLXZlcnNpb24gLXYgLVYgLXF2ZXJzaW9uOyBkbwor KyAgeyB7IGFjX3RyeT0iJGFjX2NvbXBpbGVyICRhY19vcHRpb24gPiY1IgorK2Nhc2UgIigoJGFj X3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owor KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8g IiRhY190cnlfZWNobyI7IH0gPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGVyICRhY19vcHRpb24g PiY1IikgMj5jb25mdGVzdC5lcnIKKysgIGFjX3N0YXR1cz0kPworKyAgaWYgdGVzdCAtcyBjb25m dGVzdC5lcnI7IHRoZW4KKysgICAgc2VkICcxMGFcCisrLi4uIHJlc3Qgb2Ygc3RkZXJyIG91dHB1 dCBkZWxldGVkIC4uLgorKyAgICAgICAgIDEwcScgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjEK KysgICAgY2F0IGNvbmZ0ZXN0LmVyMSA+JjUKKysgIGZpCisrICBybSAtZiBjb25mdGVzdC5lcjEg Y29uZnRlc3QuZXJyCisrICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0KKytkb25lCisr CisrY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJu IDA7CisrfQorK19BQ0VPRgorK2FjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFuX2ZpbGVzCisr YWNfY2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxlcyBhLm91dCBhLm91dC5kU1lNIGEuZXhlIGIu b3V0IgorKyMgVHJ5IHRvIGNyZWF0ZSBhbiBleGVjdXRhYmxlIHdpdGhvdXQgLW8gZmlyc3QsIGRp c3JlZ2FyZCBhLm91dC4KKysjIEl0IHdpbGwgaGVscCB1cyBkaWFnbm9zZSBicm9rZW4gY29tcGls ZXJzLCBhbmQgZmluZGluZyBvdXQgYW4gaW50dWl0aW9uCisrIyBvZiBleGVleHQuCisreyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHRoZSBD KysgY29tcGlsZXIgd29ya3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhl IEMrKyBjb21waWxlciB3b3Jrcy4uLiAiID4mNjsgfQorK2FjX2xpbmtfZGVmYXVsdD1gJGFzX2Vj aG8gIiRhY19saW5rIiB8IHNlZCAncy8gLW8gKmNvbmZ0ZXN0W14gXSovLydgCisrCisrIyBUaGUg cG9zc2libGUgb3V0cHV0IGZpbGVzOgorK2FjX2ZpbGVzPSJhLm91dCBjb25mdGVzdC5leGUgY29u ZnRlc3QgYS5leGUgYV9vdXQuZXhlIGIub3V0IGNvbmZ0ZXN0LioiCisrCisrYWNfcm1maWxlcz0K Kytmb3IgYWNfZmlsZSBpbiAkYWNfZmlsZXMKKytkbworKyAgY2FzZSAkYWNfZmlsZSBpbgorKyAg ICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICou YmIgfCAqLmJiZyB8ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gfCAqLm8gfCAqLm9iaiApIDs7Cisr ICAgICogKSBhY19ybWZpbGVzPSIkYWNfcm1maWxlcyAkYWNfZmlsZSI7OworKyAgZXNhYworK2Rv bmUKKytybSAtZiAkYWNfcm1maWxlcworKworK2lmIHsgeyBhY190cnk9IiRhY19saW5rX2RlZmF1 bHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2Vj aG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKKysgIChldmFsICIkYWNfbGlu a19kZWZhdWx0IikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIHRlc3QgJGFjX3N0 YXR1cyA9IDA7IH07IHRoZW4gOgorKyAgIyBBdXRvY29uZi0yLjEzIGNvdWxkIHNldCB0aGUgYWNf Y3ZfZXhlZXh0IHZhcmlhYmxlIHRvIGBubycuCisrIyBTbyBpZ25vcmUgYSB2YWx1ZSBvZiBgbm8n LCBvdGhlcndpc2UgdGhpcyB3b3VsZCBsZWFkIHRvIGBFWEVFWFQgPSBubycKKysjIGluIGEgTWFr ZWZpbGUuICBXZSBzaG91bGQgbm90IG92ZXJyaWRlIGFjX2N2X2V4ZWV4dCBpZiBpdCB3YXMgY2Fj aGVkLAorKyMgc28gdGhhdCB0aGUgdXNlciBjYW4gc2hvcnQtY2lyY3VpdCB0aGlzIHRlc3QgZm9y IGNvbXBpbGVycyB1bmtub3duIHRvCisrIyBBdXRvY29uZi4KKytmb3IgYWNfZmlsZSBpbiAkYWNf ZmlsZXMgJycKKytkbworKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlCisrICBjYXNl ICRhY19maWxlIGluCisrICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICou cGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5tYXAgfCAqLmluZiB8ICouZFNZTSB8ICou byB8ICoub2JqICkKKysJOzsKKysgICAgW2FiXS5vdXQgKQorKwkjIFdlIGZvdW5kIHRoZSBkZWZh dWx0IGV4ZWN1dGFibGUsIGJ1dCBleGVleHQ9JycgaXMgbW9zdAorKwkjIGNlcnRhaW5seSByaWdo dC4KKysJYnJlYWs7OworKyAgICAqLiogKQorKwlpZiB0ZXN0ICIke2FjX2N2X2V4ZWV4dCtzZXR9 IiA9IHNldCAmJiB0ZXN0ICIkYWNfY3ZfZXhlZXh0IiAhPSBubzsKKysJdGhlbiA6OyBlbHNlCisr CSAgIGFjX2N2X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAorKwlm aQorKwkjIFdlIHNldCBhY19jdl9leGVleHQgaGVyZSBiZWNhdXNlIHRoZSBsYXRlciB0ZXN0IGZv ciBpdCBpcyBub3QKKysJIyBzYWZlOiBjcm9zcyBjb21waWxlcnMgbWF5IG5vdCBhZGQgdGhlIHN1 ZmZpeCBpZiBnaXZlbiBhbiBgLW8nCisrCSMgYXJndW1lbnQsIHNvIHdlIG1heSBuZWVkIHRvIGtu b3cgaXQgYXQgdGhhdCBwb2ludCBhbHJlYWR5LgorKwkjIEV2ZW4gaWYgdGhpcyBzZWN0aW9uIGxv b2tzIGNydWZ0eTogaXQgaGFzIHRoZSBhZHZhbnRhZ2Ugb2YKKysJIyBhY3R1YWxseSB3b3JraW5n LgorKwlicmVhazs7CisrICAgICogKQorKwlicmVhazs7CisrICBlc2FjCisrZG9uZQorK3Rlc3Qg IiRhY19jdl9leGVleHQiID0gbm8gJiYgYWNfY3ZfZXhlZXh0PQorKworK2Vsc2UKKysgIGFjX2Zp bGU9JycKKytmaQorK2lmIHRlc3QgLXogIiRhY19maWxlIjsgdGhlbiA6CisrICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hv ICJubyIgPiY2OyB9CisrJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworK3sgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQor KyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KKythc19mbl9l cnJvciA3NyAiQysrIGNvbXBpbGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMKKytTZWUgXGBj b25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsgfQorK2Vsc2UKKysgIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQor KyRhc19lY2hvICJ5ZXMiID4mNjsgfQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgQysrIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZp bGUgbmFtZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciBkZWZh dWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gIiA+JjY7IH0KKyt7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2ZpbGUiID4mNQorKyRhc19lY2hvICIkYWNf ZmlsZSIgPiY2OyB9CisrYWNfZXhlZXh0PSRhY19jdl9leGVleHQKKysKKytybSAtZiAtciBhLm91 dCBhLm91dC5kU1lNIGEuZXhlIGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dCBiLm91dAorK2FjX2NsZWFu X2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uICIgPiY2OyB9 CisraWYgeyB7IGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsg fSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB0aGVuIDoKKysgICMgSWYgYm90aCBgY29uZnRl c3QuZXhlJyBhbmQgYGNvbmZ0ZXN0JyBhcmUgYHByZXNlbnQnICh3ZWxsLCBvYnNlcnZhYmxlKQor KyMgY2F0Y2ggYGNvbmZ0ZXN0LmV4ZScuICBGb3IgaW5zdGFuY2Ugd2l0aCBDeWd3aW4sIGBscyBj b25mdGVzdCcgd2lsbAorKyMgd29yayBwcm9wZXJseSAoaS5lLiwgcmVmZXIgdG8gYGNvbmZ0ZXN0 LmV4ZScpLCB3aGlsZSBpdCB3b24ndCB3aXRoCisrIyBgcm0nLgorK2ZvciBhY19maWxlIGluIGNv bmZ0ZXN0LmV4ZSBjb25mdGVzdCBjb25mdGVzdC4qOyBkbworKyAgdGVzdCAtZiAiJGFjX2ZpbGUi IHx8IGNvbnRpbnVlCisrICBjYXNlICRhY19maWxlIGluCisrICAgICouJGFjX2V4dCB8ICoueGNv ZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5tYXAg fCAqLmluZiB8ICouZFNZTSB8ICoubyB8ICoub2JqICkgOzsKKysgICAgKi4qICkgYWNfY3ZfZXhl ZXh0PWBleHByICIkYWNfZmlsZSIgOiAnW14uXSpcKFwuLipcKSdgCisrCSAgYnJlYWs7OworKyAg ICAqICkgYnJlYWs7OworKyAgZXNhYworK2RvbmUKKytlbHNlCisrICB7IHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CisrYXNfZm5fZXJy b3IgJD8gImNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBp bGUgYW5kIGxpbmsKKytTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJTkVO TyIgNTsgfQorK2ZpCisrcm0gLWYgY29uZnRlc3QgY29uZnRlc3QkYWNfY3ZfZXhlZXh0CisreyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9leGVl eHQiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfZXhlZXh0IiA+JjY7IH0KKysKKytybSAtZiBjb25m dGVzdC4kYWNfZXh0CisrRVhFRVhUPSRhY19jdl9leGVleHQKKythY19leGVleHQ9JEVYRUVYVAor K2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29u ZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPHN0ZGlvLmg+CisraW50CisrbWFpbiAoKQorK3sKKytG SUxFICpmID0gZm9wZW4gKCJjb25mdGVzdC5vdXQiLCAidyIpOworKyByZXR1cm4gZmVycm9yIChm KSB8fCBmY2xvc2UgKGYpICE9IDA7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9G CisrYWNfY2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxlcyBjb25mdGVzdC5vdXQiCisrIyBDaGVj ayB0aGF0IHRoZSBjb21waWxlciBwcm9kdWNlcyBleGVjdXRhYmxlcyB3ZSBjYW4gcnVuLiAgSWYg bm90LCBlaXRoZXIKKysjIHRoZSBjb21waWxlciBpcyBicm9rZW4sIG9yIHdlIGNyb3NzIGNvbXBp bGUuCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3 aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmciID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiRj cm9zc19jb21waWxpbmciICE9IHllczsgdGhlbgorKyAgeyB7IGFjX3RyeT0iJGFjX2xpbmsiCisr Y2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c JGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190 cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIK KyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+ JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9Cisr ICBpZiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19jdl9leGVleHQnCisrICB7IHsgY2FzZSAiKCgk YWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7 CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0i XCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNo byAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKKysgIChldmFsICIkYWNfdHJ5IikgMj4mNQorKyAgYWNf c3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKKysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IH07IHRoZW4KKysg ICAgY3Jvc3NfY29tcGlsaW5nPW5vCisrICBlbHNlCisrICAgIGlmIHRlc3QgIiRjcm9zc19jb21w aWxpbmciID0gbWF5YmU7IHRoZW4KKysJY3Jvc3NfY29tcGlsaW5nPXllcworKyAgICBlbHNlCisr CXsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAk YWNfcHdkJzoiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIg PiYyO30KKythc19mbl9lcnJvciAkPyAiY2Fubm90IHJ1biBDKysgY29tcGlsZWQgcHJvZ3JhbXMu CisrSWYgeW91IG1lYW50IHRvIGNyb3NzIGNvbXBpbGUsIHVzZSBcYC0taG9zdCcuCisrU2VlIFxg Y29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscyIgIiRMSU5FTk8iIDU7IH0KKysgICAgZmkKKysg IGZpCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogJGNyb3NzX2NvbXBpbGluZyIgPiY1CisrJGFzX2VjaG8gIiRjcm9zc19jb21waWxpbmciID4m NjsgfQorKworK3JtIC1mIGNvbmZ0ZXN0LiRhY19leHQgY29uZnRlc3QkYWNfY3ZfZXhlZXh0IGNv bmZ0ZXN0Lm91dAorK2FjX2NsZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCisreyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Igc3VmZml4IG9m IG9iamVjdCBmaWxlcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBv YmplY3QgZmlsZXMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X29iamV4dCtzZXR9IiA9 IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNh dCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOwor K30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC5vIGNvbmZ0ZXN0Lm9iagorK2lmIHsgeyBhY190 cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyI7IH0gPiY1CisrICAo ZXZhbCAiJGFjX2NvbXBpbGUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgdGVz dCAkYWNfc3RhdHVzID0gMDsgfTsgdGhlbiA6CisrICBmb3IgYWNfZmlsZSBpbiBjb25mdGVzdC5v IGNvbmZ0ZXN0Lm9iaiBjb25mdGVzdC4qOyBkbworKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNv bnRpbnVlOworKyAgY2FzZSAkYWNfZmlsZSBpbgorKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwg Ki50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5p bmYgfCAqLmRTWU0gKSA7OworKyAgICAqKSBhY19jdl9vYmpleHQ9YGV4cHIgIiRhY19maWxlIiA6 ICcuKlwuXCguKlwpJ2AKKysgICAgICAgYnJlYWs7OworKyAgZXNhYworK2RvbmUKKytlbHNlCisr ICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisreyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorK2FzX2ZuX2Vycm9yICQ/ICJjYW5u b3QgY29tcHV0ZSBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQorK1NlZSBc YGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMiICIkTElORU5PIiA1OyB9CisrZmkKKytybSAt ZiBjb25mdGVzdC4kYWNfY3Zfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3Zfb2JqZXh0IiA+ JjUKKyskYXNfZWNobyAiJGFjX2N2X29iamV4dCIgPiY2OyB9CisrT0JKRVhUPSRhY19jdl9vYmpl eHQKKythY19vYmpleHQ9JE9CSkVYVAorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGls ZXIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBH TlUgQysrIGNvbXBpbGVyLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9jeHhfY29tcGls ZXJfZ251K3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKyNpZm5kZWYg X19HTlVDX18KKysgICAgICAgY2hva2UgbWUKKysjZW5kaWYKKysKKysgIDsKKysgIHJldHVybiAw OworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVu IDoKKysgIGFjX2NvbXBpbGVyX2dudT15ZXMKKytlbHNlCisrICBhY19jb21waWxlcl9nbnU9bm8K KytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QuJGFjX2V4dAorK2FjX2N2X2N4eF9jb21waWxlcl9nbnU9JGFjX2NvbXBpbGVyX2dudQorKwor K2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRh Y19jdl9jeHhfY29tcGlsZXJfZ251IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2N4eF9jb21waWxl cl9nbnUiID4mNjsgfQorK2lmIHRlc3QgJGFjX2NvbXBpbGVyX2dudSA9IHllczsgdGhlbgorKyAg R1hYPXllcworK2Vsc2UKKysgIEdYWD0KKytmaQorK2FjX3Rlc3RfQ1hYRkxBR1M9JHtDWFhGTEFH UytzZXR9CisrYWNfc2F2ZV9DWFhGTEFHUz0kQ1hYRkxBR1MKKyt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgJENYWCBhY2NlcHRzIC1nIiA+ JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICRDWFggYWNjZXB0cyAtZy4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19jeHhfZytzZXR9IiA9IHNldDsgdGhlbiA6Cisr ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX3NhdmVfY3h4X3dlcnJv cl9mbGFnPSRhY19jeHhfd2Vycm9yX2ZsYWcKKysgICBhY19jeHhfd2Vycm9yX2ZsYWc9eWVzCisr ICAgYWNfY3ZfcHJvZ19jeHhfZz1ubworKyAgIENYWEZMQUdTPSItZyIKKysgICBjYXQgY29uZmRl ZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAq LworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FD RU9GCisraWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisrICBhY19j dl9wcm9nX2N4eF9nPXllcworK2Vsc2UKKysgIENYWEZMQUdTPSIiCisrICAgICAgY2F0IGNvbmZk ZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19B Q0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKworK2Vs c2UKKysgIGFjX2N4eF93ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jeHhfd2Vycm9yX2ZsYWcKKysJIENY WEZMQUdTPSItZyIKKysJIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19l eHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysg IDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUg IiRMSU5FTk8iOyB0aGVuIDoKKysgIGFjX2N2X3Byb2dfY3h4X2c9eWVzCisrZmkKKytybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytm aQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qu JGFjX2V4dAorK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdC4kYWNfZXh0CisrICAgYWNfY3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93 ZXJyb3JfZmxhZworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6ICRhY19jdl9wcm9nX2N4eF9nIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X3Byb2df Y3h4X2ciID4mNjsgfQorK2lmIHRlc3QgIiRhY190ZXN0X0NYWEZMQUdTIiA9IHNldDsgdGhlbgor KyAgQ1hYRkxBR1M9JGFjX3NhdmVfQ1hYRkxBR1MKKytlbGlmIHRlc3QgJGFjX2N2X3Byb2dfY3h4 X2cgPSB5ZXM7IHRoZW4KKysgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgIENYWEZM QUdTPSItZyAtTzIiCisrICBlbHNlCisrICAgIENYWEZMQUdTPSItZyIKKysgIGZpCisrZWxzZQor KyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgQ1hYRkxBR1M9Ii1PMiIKKysgIGVs c2UKKysgICAgQ1hYRkxBR1M9CisrICBmaQorK2ZpCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAg JENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVz dC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKKytERVBESVI9IiR7YW1fX2xlYWRpbmdf ZG90fWRlcHMiCisrCisrYWNfY29uZmlnX2NvbW1hbmRzPSIkYWNfY29uZmlnX2NvbW1hbmRzIGRl cGZpbGVzIgorKworKworK2FtX21ha2U9JHtNQUtFLW1ha2V9CisrY2F0ID4gY29uZmluYyA8PCAn RU5EJworK2FtX19kb2l0OgorKwlAZWNobyB0aGlzIGlzIHRoZSBhbV9fZG9pdCB0YXJnZXQKKysu UEhPTlk6IGFtX19kb2l0CisrRU5ECisrIyBJZiB3ZSBkb24ndCBmaW5kIGFuIGluY2x1ZGUgZGly ZWN0aXZlLCBqdXN0IGNvbW1lbnQgb3V0IHRoZSBjb2RlLgorK3sgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNlZCBi eSAkYW1fbWFrZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN0eWxlIG9mIGluY2x1 ZGUgdXNlZCBieSAkYW1fbWFrZS4uLiAiID4mNjsgfQorK2FtX19pbmNsdWRlPSIjIgorK2FtX19x dW90ZT0KKytfYW1fcmVzdWx0PW5vbmUKKysjIEZpcnN0IHRyeSBHTlUgbWFrZSBzdHlsZSBpbmNs dWRlLgorK2VjaG8gImluY2x1ZGUgY29uZmluYyIgPiBjb25mbWYKKysjIElnbm9yZSBhbGwga2lu ZHMgb2YgYWRkaXRpb25hbCBvdXRwdXQgZnJvbSBgbWFrZScuCisrY2FzZSBgJGFtX21ha2UgLXMg LWYgY29uZm1mIDI+IC9kZXYvbnVsbGAgaW4gIygKKysqdGhlXCBhbV9fZG9pdFwgdGFyZ2V0KikK KysgIGFtX19pbmNsdWRlPWluY2x1ZGUKKysgIGFtX19xdW90ZT0KKysgIF9hbV9yZXN1bHQ9R05V CisrICA7OworK2VzYWMKKysjIE5vdyB0cnkgQlNEIG1ha2Ugc3R5bGUgaW5jbHVkZS4KKytpZiB0 ZXN0ICIkYW1fX2luY2x1ZGUiID0gIiMiOyB0aGVuCisrICAgZWNobyAnLmluY2x1ZGUgImNvbmZp bmMiJyA+IGNvbmZtZgorKyAgIGNhc2UgYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251 bGxgIGluICMoCisrICAgKnRoZVwgYW1fX2RvaXRcIHRhcmdldCopCisrICAgICBhbV9faW5jbHVk ZT0uaW5jbHVkZQorKyAgICAgYW1fX3F1b3RlPSJcIiIKKysgICAgIF9hbV9yZXN1bHQ9QlNECisr ICAgICA7OworKyAgIGVzYWMKKytmaQorKworKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiAkX2FtX3Jlc3VsdCIgPiY1CisrJGFzX2VjaG8gIiRfYW1f cmVzdWx0IiA+JjY7IH0KKytybSAtZiBjb25maW5jIGNvbmZtZgorKworKyMgQ2hlY2sgd2hldGhl ciAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2Vu YWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nK3NldH0iID0gc2V0OyB0aGVuIDoKKysgIGVuYWJsZXZh bD0kZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmc7CisrZmkKKysKKytpZiB0ZXN0ICJ4JGVuYWJs ZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KKysgIGFtX2RlcGNvbXA9IiRhY19h dXhfZGlyL2RlcGNvbXAiCisrICBBTURFUEJBQ0tTTEFTSD0nXCcKKytmaQorKyBpZiB0ZXN0ICJ4 JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KKysgIEFNREVQX1RSVUU9 CisrICBBTURFUF9GQUxTRT0nIycKKytlbHNlCisrICBBTURFUF9UUlVFPScjJworKyAgQU1ERVBf RkFMU0U9CisrZmkKKysKKysKKysKKytkZXBjYz0iJENYWCIgIGFtX2NvbXBpbGVyX2xpc3Q9Cisr CisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBkZXBl bmRlbmN5IHN0eWxlIG9mICRkZXBjYyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZGVwZW5k ZW5jeSBzdHlsZSBvZiAkZGVwY2MuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FtX2N2X0NYWF9k ZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLXogIiRBTURFUF9UUlVFIiAm JiB0ZXN0IC1mICIkYW1fZGVwY29tcCI7IHRoZW4KKysgICMgV2UgbWFrZSBhIHN1YmRpciBhbmQg ZG8gdGhlIHRlc3RzIHRoZXJlLiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKKysgICMgbWFraW5n IGJvZ3VzIGZpbGVzIHRoYXQgd2UgZG9uJ3Qga25vdyBhYm91dCBhbmQgbmV2ZXIgcmVtb3ZlLiAg Rm9yCisrICAjIGluc3RhbmNlIGl0IHdhcyByZXBvcnRlZCB0aGF0IG9uIEhQLVVYIHRoZSBnY2Mg dGVzdCB3aWxsIGVuZCB1cAorKyAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBi ZWNhdXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91dHB1dAorKyAgIyBpbiBEJy4KKysgIG1rZGly IGNvbmZ0ZXN0LmRpcgorKyAgIyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3 aXNlIHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUKKysgICMgdXNpbmcgYSByZWxhdGl2ZSBkaXJl Y3RvcnkuCisrICBjcCAiJGFtX2RlcGNvbXAiIGNvbmZ0ZXN0LmRpcgorKyAgY2QgY29uZnRlc3Qu ZGlyCisrICAjIFdlIHdpbGwgYnVpbGQgb2JqZWN0cyBhbmQgZGVwZW5kZW5jaWVzIGluIGEgc3Vi ZGlyZWN0b3J5IGJlY2F1c2UKKysgICMgaXQgaGVscHMgdG8gZGV0ZWN0IGluYXBwbGljYWJsZSBk ZXBlbmRlbmN5IG1vZGVzLiAgRm9yIGluc3RhbmNlCisrICAjIGJvdGggVHJ1NjQncyBjYyBhbmQg SUNDIHN1cHBvcnQgLU1EIHRvIG91dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQorKyAgIyBzaWRlIGVm ZmVjdCBvZiBjb21waWxhdGlvbiwgYnV0IElDQyB3aWxsIHB1dCB0aGUgZGVwZW5kZW5jaWVzIGlu CisrICAjIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aGlsZSBUcnU2NCB3aWxsIHB1dCB0aGVtIGlu IHRoZSBvYmplY3QKKysgICMgZGlyZWN0b3J5LgorKyAgbWtkaXIgc3ViCisrCisrICBhbV9jdl9D WFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorKyAgaWYgdGVzdCAiJGFtX2NvbXBp bGVyX2xpc3QiID0gIiI7IHRoZW4KKysgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiAncy9e IypcKFthLXpBLVowLTldKlwpKSQvXDEvcCcgPCAuL2RlcGNvbXBgCisrICBmaQorKyAgYW1fX3Vu aXZlcnNhbD1mYWxzZQorKyAgY2FzZSAiICRkZXBjYyAiIGluICMoCisrICAgICAqXCAtYXJjaFwg KlwgLWFyY2hcICopIGFtX191bml2ZXJzYWw9dHJ1ZSA7OworKyAgICAgZXNhYworKworKyAgZm9y IGRlcG1vZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRvCisrICAgICMgU2V0dXAgYSBzb3VyY2Ug d2l0aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycworKyAgICAjIGxp a2UgdG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAod2l0aCBcKSwg YW5kCisrICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUgd2hpY2ggaXMg Y29uZnVzZWQgYnkgdGhpcy4KKysgICAgIworKyAgICAjIFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhl c2UgZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQorKyAgICAjIG92ZXJ3 cml0ZSBzb21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21tYW5kIGxpbmVz LgorKyAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBjb21waWxlci4K KysgICAgOiA+IHN1Yi9jb25mdGVzdC5jCisrICAgIGZvciBpIGluIDEgMiAzIDQgNSA2OyBkbwor KyAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMK KysgICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9ubHkgc3ViL2Nv bmZ0c3QxLmggd2l0aAorKyAgICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4vc2guCisrICAg ICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCisrICAgIGRvbmUKKysgICAgZWNobyAiJHthbV9faW5j bHVkZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+IGNvbmZtZgor KworKyAgICAjIFdlIGNoZWNrIHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhl ICJkYXNobXN0ZG91dCIKKysgICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhlIFN1blBy byBDKysgY29tcGlsZXIgZG9lcyBub3QgcHJvcGVybHkKKysgICAgIyBoYW5kbGUgYC1NIC1vJywg YW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuICBBbHNvLCBzb21lIEludGVsCisrICAgICMgdmVy c2lvbnMgaGFkIHRyb3VibGUgd2l0aCBvdXRwdXQgaW4gc3ViZGlycworKyAgICBhbV9fb2JqPXN1 Yi9jb25mdGVzdC4ke09CSkVYVC1vfQorKyAgICBhbV9fbWludXNfb2JqPSItbyAkYW1fX29iaiIK KysgICAgY2FzZSAkZGVwbW9kZSBpbgorKyAgICBnY2MpCisrICAgICAgIyBUaGlzIGRlcG1vZGUg Y2F1c2VzIGEgY29tcGlsZXIgcmFjZSBpbiB1bml2ZXJzYWwgbW9kZS4KKysgICAgICB0ZXN0ICIk YW1fX3VuaXZlcnNhbCIgPSBmYWxzZSB8fCBjb250aW51ZQorKyAgICAgIDs7CisrICAgIG5vc2lk ZWVmZmVjdCkKKysgICAgICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkg c2lkZS1lZmZlY3QsIHNvIHRoZXknbGwKKysgICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxp Y2l0bHkgcmVxdWVzdGVkCisrICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFj a2luZyIgPSB4eWVzOyB0aGVuCisrCWNvbnRpbnVlCisrICAgICAgZWxzZQorKwlicmVhaworKyAg ICAgIGZpCisrICAgICAgOzsKKysgICAgbXN2aXN1YWxjcHAgfCBtc3ZjbXN5cykKKysgICAgICAj IFRoaXMgY29tcGlsZXIgd29uJ3QgZ3JvayBgLWMgLW8nLCBidXQgYWxzbywgdGhlIG1pbnVzbyB0 ZXN0IGhhcworKyAgICAgICMgbm90IHJ1biB5ZXQuICBUaGVzZSBkZXBtb2RlcyBhcmUgbGF0ZSBl bm91Z2ggaW4gdGhlIGdhbWUsIGFuZAorKyAgICAgICMgc28gd2VhayB0aGF0IHRoZWlyIGZ1bmN0 aW9uaW5nIHNob3VsZCBub3QgYmUgaW1wYWN0ZWQuCisrICAgICAgYW1fX29iaj1jb25mdGVzdC4k e09CSkVYVC1vfQorKyAgICAgIGFtX19taW51c19vYmo9CisrICAgICAgOzsKKysgICAgbm9uZSkg YnJlYWsgOzsKKysgICAgZXNhYworKyAgICBpZiBkZXBtb2RlPSRkZXBtb2RlIFwKKysgICAgICAg c291cmNlPXN1Yi9jb25mdGVzdC5jIG9iamVjdD0kYW1fX29iaiBcCisrICAgICAgIGRlcGZpbGU9 c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCisrICAgICAgICRT SEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jICRhbV9fbWludXNfb2JqIHN1Yi9jb25mdGVzdC5jIFwK KysgICAgICAgICA+L2Rldi9udWxsIDI+Y29uZnRlc3QuZXJyICYmCisrICAgICAgIGdyZXAgc3Vi L2NvbmZ0c3QxLmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAg Z3JlcCBzdWIvY29uZnRzdDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgor KyAgICAgICBncmVwICRhbV9fb2JqIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYm CisrICAgICAgICR7TUFLRS1tYWtlfSAtcyAtZiBjb25mbWYgPiAvZGV2L251bGwgMj4mMTsgdGhl bgorKyAgICAgICMgaWNjIGRvZXNuJ3QgY2hva2Ugb24gdW5rbm93biBvcHRpb25zLCBpdCB3aWxs IGp1c3QgaXNzdWUgd2FybmluZ3MKKysgICAgICAjIG9yIHJlbWFya3MgKGV2ZW4gd2l0aCAtV2Vy cm9yKS4gIFNvIHdlIGdyZXAgc3RkZXJyIGZvciBhbnkgbWVzc2FnZQorKyAgICAgICMgdGhhdCBz YXlzIGFuIG9wdGlvbiB3YXMgaWdub3JlZCBvciBub3Qgc3VwcG9ydGVkLgorKyAgICAgICMgV2hl biBnaXZlbiAtTVAsIGljYyA3LjAgYW5kIDcuMSBjb21wbGFpbiB0aHVzbHk6CisrICAgICAgIyAg IGljYzogQ29tbWFuZCBsaW5lIHdhcm5pbmc6IGlnbm9yaW5nIG9wdGlvbiAnLU0nOyBubyBhcmd1 bWVudCByZXF1aXJlZAorKyAgICAgICMgVGhlIGRpYWdub3NpcyBjaGFuZ2VkIGluIGljYyA4LjA6 CisrICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHJlbWFyazogb3B0aW9uICctTVAnIG5vdCBz dXBwb3J0ZWQKKysgICAgICBpZiAoZ3JlcCAnaWdub3Jpbmcgb3B0aW9uJyBjb25mdGVzdC5lcnIg fHwKKysgICAgICAgICAgZ3JlcCAnbm90IHN1cHBvcnRlZCcgY29uZnRlc3QuZXJyKSA+L2Rldi9u dWxsIDI+JjE7IHRoZW4gOjsgZWxzZQorKyAgICAgICAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19j b21waWxlcl90eXBlPSRkZXBtb2RlCisrICAgICAgICBicmVhaworKyAgICAgIGZpCisrICAgIGZp CisrICBkb25lCisrCisrICBjZCAuLgorKyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgorK2Vsc2UKKysg IGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCisrZmkKKysKKytmaQor K3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYW1fY3Zf Q1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA+JjUKKyskYXNfZWNobyAiJGFtX2N2X0NY WF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY2OyB9CisrQ1hYREVQTU9ERT1kZXBtb2Rl PSRhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUKKysKKysgaWYKKysgIHRlc3Qg IngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubyBcCisrICAmJiB0ZXN0ICIkYW1f Y3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzM7IHRoZW4KKysgIGFtX19m YXN0ZGVwQ1hYX1RSVUU9CisrICBhbV9fZmFzdGRlcENYWF9GQUxTRT0nIycKKytlbHNlCisrICBh bV9fZmFzdGRlcENYWF9UUlVFPScjJworKyAgYW1fX2Zhc3RkZXBDWFhfRkFMU0U9CisrZmkKKysK KysKKythY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxl PSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNf bGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2 X2N4eF9jb21waWxlcl9nbnUKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IiID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0IC16ICIkQ1hYQ1BQIjsgdGhlbgorKyAgaWYgdGVzdCAiJHthY19jdl9wcm9n X0NYWENQUCtzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysgICAgICAjIERvdWJsZSBxdW90ZXMgYmVjYXVzZSBDWFhDUFAgbmVlZHMgdG8g YmUgZXhwYW5kZWQKKysgICAgZm9yIENYWENQUCBpbiAiJENYWCAtRSIgIi9saWIvY3BwIgorKyAg ICBkbworKyAgICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UKKytmb3IgYWNfY3h4X3ByZXByb2Nfd2Fy bl9mbGFnIGluICcnIHllcworK2RvCisrICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMg d2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCisrICAjIHdpdGggYSBmcmVzaCBjcm9zcy1j b21waWxlciB3b3Jrcy4KKysgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBf X1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9u IGZyZWVzdGFuZGluZyBjb21waWxlcnMuCisrICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRo ZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAorKyAgIyBub3QganVzdCB0aHJv dWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCisrICBj YXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZk ZWZzLmguICAqLworKyNpZmRlZiBfX1NURENfXworKyMgaW5jbHVkZSA8bGltaXRzLmg+CisrI2Vs c2UKKysjIGluY2x1ZGUgPGFzc2VydC5oPgorKyNlbmRpZgorKwkJICAgICBTeW50YXggZXJyb3IK KytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NwcCAiJExJTkVOTyI7IHRoZW4gOgorKworK2Vs c2UKKysgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2ZpCisr cm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICMgT0ssIHdvcmtzIG9u IHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCisrICAj IGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+ Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8YWNf bm9uZXhpc3RlbnQuaD4KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NwcCAiJExJTkVOTyI7 IHRoZW4gOgorKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KKytjb250aW51 ZQorK2Vsc2UKKysgICMgUGFzc2VzIGJvdGggdGVzdHMuCisrYWNfcHJlcHJvY19vaz06CisrYnJl YWsKKytmaQorK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisrZG9uZQor KyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2Rl IHdhcyBza2lwcGVkLgorK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisraWYg JGFjX3ByZXByb2Nfb2s7IHRoZW4gOgorKyAgYnJlYWsKKytmaQorKworKyAgICBkb25lCisrICAg IGFjX2N2X3Byb2dfQ1hYQ1BQPSRDWFhDUFAKKysKKytmaQorKyAgQ1hYQ1BQPSRhY19jdl9wcm9n X0NYWENQUAorK2Vsc2UKKysgIGFjX2N2X3Byb2dfQ1hYQ1BQPSRDWFhDUFAKKytmaQorK3sgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkQ1hYQ1BQIiA+JjUK KyskYXNfZWNobyAiJENYWENQUCIgPiY2OyB9CisrYWNfcHJlcHJvY19vaz1mYWxzZQorK2ZvciBh Y19jeHhfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCisrZG8KKysgICMgVXNlIGEgaGVhZGVy IGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKKysgICMgd2l0 aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgorKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0 byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisrICAjIDxsaW1pdHMu aD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KKysgICMgT24gdGhlIE5l WFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCisr ICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNo IHRoaXMgY2FzZS4KKysgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19l eHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2lmZGVmIF9fU1REQ19fCisrIyBpbmNsdWRl IDxsaW1pdHMuaD4KKysjZWxzZQorKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisrI2VuZGlmCisrCQkg ICAgIFN5bnRheCBlcnJvcgorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfY3BwICIkTElORU5P IjsgdGhlbiA6CisrCisrZWxzZQorKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0Lgor K2NvbnRpbnVlCisrZmkKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKwor KyAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0 ZW50IGhlYWRlcnMKKysgICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCisrICBjYXQgY29uZmRl ZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAq LworKyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90 cnlfY3BwICIkTElORU5PIjsgdGhlbiA6CisrICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlk IGlucHV0LgorK2NvbnRpbnVlCisrZWxzZQorKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KKythY19w cmVwcm9jX29rPToKKyticmVhaworK2ZpCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19leHQKKysKKytkb25lCisrIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxT RSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0 ZXN0LiRhY19leHQKKytpZiAkYWNfcHJlcHJvY19vazsgdGhlbiA6CisrCisrZWxzZQorKyAgeyB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBpbiBcYCRhY19w d2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7 fQorK2FzX2ZuX2Vycm9yICQ/ICJDKysgcHJlcHJvY2Vzc29yIFwiJENYWENQUFwiIGZhaWxzIHNh bml0eSBjaGVjaworK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMiICIkTElORU5P IiA1OyB9CisrZmkKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNf Y29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1Jwor K2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExE RkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19j dl9jX2NvbXBpbGVyX2dudQorKworK0NYWEZMQUdTPSIkc2F2ZV9DWFhGTEFHUyIKKysKKytjYXNl IGBwd2RgIGluCisrICAqXCAqIHwgKlwJKikKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBMaWJ0b29sIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRo IHdoaXRlc3BhY2UgaW4gXGBwd2RcYCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzog TGlidG9vbCBkb2VzIG5vdCBjb3BlIHdlbGwgd2l0aCB3aGl0ZXNwYWNlIGluIFxgcHdkXGAiID4m Mjt9IDs7CisrZXNhYworKworKworKworK21hY3JvX3ZlcnNpb249JzIuMi4xMCcKKyttYWNyb19y ZXZpc2lvbj0nMS4zMTc1JworKworKworKworKworKworKworKworKworKworKworKworKworKwor K2x0bWFpbj0iJGFjX2F1eF9kaXIvbHRtYWluLnNoIgorKworKyMgQmFja3NsYXNoaWZ5IG1ldGFj aGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4KKysjIGRvdWJsZS1xdW90ZWQg c3RyaW5ncy4KKytzZWRfcXVvdGVfc3Vic3Q9J3MvXChbImAkXFxdXCkvXFxcMS9nJworKworKyMg U2FtZSBhcyBhYm92ZSwgYnV0IGRvIG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgorK2Rv dWJsZV9xdW90ZV9zdWJzdD0ncy9cKFsiYFxcXVwpL1xcXDEvZycKKysKKysjIFNlZCBzdWJzdGl0 dXRpb24gdG8gZGVsYXkgZXhwYW5zaW9uIG9mIGFuIGVzY2FwZWQgc2hlbGwgdmFyaWFibGUgaW4g YQorKyMgZG91YmxlX3F1b3RlX3N1YnN0J2VkIHN0cmluZy4KKytkZWxheV92YXJpYWJsZV9zdWJz dD0ncy9cXFxcXFxcXFxcXCQvXFxcXFxcJC9nJworKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBk ZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaW5nbGUgcXVvdGUuCisrZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0PSdzLydcJycvJ1wnXFxcXFxcXCdcJycvZycKKysKKysjIFNlZCBzdWJzdGl0 dXRpb24gdG8gYXZvaWQgYWNjaWRlbnRhbCBnbG9iYmluZyBpbiBldmFsZWQgZXhwcmVzc2lvbnMK Kytub19nbG9iX3N1YnN0PSdzL1wqL1xcXCovZycKKysKKytFQ0hPPSdcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcJworK0VDSE89JEVDSE8kRUNITyRFQ0hPJEVD SE8kRUNITworK0VDSE89JEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNITyRFQ0hPCisrCisreyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBob3cgdG8gcHJpbnQg c3RyaW5ncyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIHByaW50IHN0cmluZ3Mu Li4gIiA+JjY7IH0KKysjIFRlc3QgcHJpbnQgZmlyc3QsIGJlY2F1c2UgaXQgd2lsbCBiZSBhIGJ1 aWx0aW4gaWYgcHJlc2VudC4KKytpZiB0ZXN0ICJYYHByaW50IC1yIC0tIC1uIDI+L2Rldi9udWxs YCIgPSBYLW4gJiYgXAorKyAgIHRlc3QgIlhgcHJpbnQgLXIgLS0gJEVDSE8gMj4vZGV2L251bGxg IiA9ICJYJEVDSE8iOyB0aGVuCisrICBFQ0hPPSdwcmludCAtciAtLScKKytlbGlmIHRlc3QgIlhg cHJpbnRmICVzICRFQ0hPIDI+L2Rldi9udWxsYCIgPSAiWCRFQ0hPIjsgdGhlbgorKyAgRUNITz0n cHJpbnRmICVzXG4nCisrZWxzZQorKyAgIyBVc2UgdGhpcyBmdW5jdGlvbiBhcyBhIGZhbGxiYWNr IHRoYXQgYWx3YXlzIHdvcmtzLgorKyAgZnVuY19mYWxsYmFja19lY2hvICgpCisrICB7CisrICAg IGV2YWwgJ2NhdCA8PF9MVEVDSE9fRU9GCisrJDEKKytfTFRFQ0hPX0VPRicKKysgIH0KKysgIEVD SE89J2Z1bmNfZmFsbGJhY2tfZWNobycKKytmaQorKworKyMgZnVuY19lY2hvX2FsbCBhcmcuLi4K KysjIEludm9rZSAkRUNITyB3aXRoIGFsbCBhcmdzLCBzcGFjZS1zZXBhcmF0ZWQuCisrZnVuY19l Y2hvX2FsbCAoKQorK3sKKysgICAgJEVDSE8gIiIKKyt9CisrCisrY2FzZSAiJEVDSE8iIGluCisr ICBwcmludGYqKSB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogcHJpbnRmIiA+JjUKKyskYXNfZWNobyAicHJpbnRmIiA+JjY7IH0gOzsKKysgIHByaW50Kikg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHByaW50IC1y IiA+JjUKKyskYXNfZWNobyAicHJpbnQgLXIiID4mNjsgfSA7OworKyAgKikgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IGNhdCIgPiY1CisrJGFzX2VjaG8g ImNhdCIgPiY2OyB9IDs7CisrZXNhYworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxl PSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGlu az0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29t cGlsZXJfZ251CisraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgIyBFeHRy YWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWdjYyIsIHNvIGl0IGNhbiBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9 Z2NjOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAk YWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNl dDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRl c3QgLW4gIiRDQyI7IHRoZW4KKysgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIg b3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T RVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMK KysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19leGVjX2V4dCBp biAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX0NDPSIke2FjX3Rvb2xfcHJl Zml4fWdjYyIKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91 bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZp CisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrQ0M9JGFj X2N2X3Byb2dfQ0MKKytpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJENDIiA+JjUKKyskYXNfZWNobyAiJEND IiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytm aQorK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX0NDIjsgdGhlbgorKyAgYWNfY3RfQ0M9JENDCisr ICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImdjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IGdjYzsgYWNfd29yZD0kMgorK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+ JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0 ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0 aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisr ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4g JycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iZ2NjIgorKyAg ICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrICBk b25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9DQz0kYWNfY3ZfcHJv Z19hY19jdF9DQworK2lmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KKysgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQorKyRh c19lY2hvICIkYWNfY3RfQ0MiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7 IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9DQyIgPSB4OyB0aGVuCisrICAgIENDPSIi CisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4K Kyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklO RzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUK KyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4 ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNh YworKyAgICBDQz0kYWNfY3RfQ0MKKysgIGZpCisrZWxzZQorKyAgQ0M9IiRhY19jdl9wcm9nX0ND IgorK2ZpCisrCisraWYgdGVzdCAteiAiJENDIjsgdGhlbgorKyAgICAgICAgICBpZiB0ZXN0IC1u ICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBv ZiAiJHthY190b29sX3ByZWZpeH1jYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRo IGFyZ3MuCisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9Y2M7IGFjX3dvcmQ9JDIKKyt7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAg YWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytl bHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIg aW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIg JiYgYXNfZGlyPS4KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu CisrICAgIGFjX2N2X3Byb2dfQ0M9IiR7YWNfdG9vbF9wcmVmaXh9Y2MiCisrICAgICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKysgIGRvbmUKKytJRlM9 JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK0NDPSRhY19jdl9wcm9nX0NDCisraWYgdGVzdCAt biAiJENDIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6ICRDQyIgPiY1CisrJGFzX2VjaG8gIiRDQyIgPiY2OyB9CisrZWxzZQorKyAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKysk YXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICBmaQorK2ZpCisraWYgdGVzdCAteiAi JENDIjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJjYyIsIHNvIGl0IGNh biBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IGNjOyBhY193b3JkPSQy CisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Ig JGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbiA6CisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRDQyI7IHRo ZW4KKysgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl c3QuCisrZWxzZQorKyAgYWNfcHJvZ19yZWplY3RlZD1ubworK2FzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNf c2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19l eGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0 IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBpZiB0ZXN0ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiA9ICIvdXNyL3VjYi9jYyI7IHRoZW4KKysgICAgICAgYWNfcHJv Z19yZWplY3RlZD15ZXMKKysgICAgICAgY29udGludWUKKysgICAgIGZpCisrICAgIGFjX2N2X3By b2dfQ0M9ImNjIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAg ZmkKKytkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2lmIHRlc3QgJGFjX3By b2dfcmVqZWN0ZWQgPSB5ZXM7IHRoZW4KKysgICMgV2UgZm91bmQgYSBib2dvbiBpbiB0aGUgcGF0 aCwgc28gbWFrZSBzdXJlIHdlIG5ldmVyIHVzZSBpdC4KKysgIHNldCBkdW1teSAkYWNfY3ZfcHJv Z19DQworKyAgc2hpZnQKKysgIGlmIHRlc3QgJCMgIT0gMDsgdGhlbgorKyAgICAjIFdlIGNob3Nl IGEgZGlmZmVyZW50IGNvbXBpbGVyIGZyb20gdGhlIGJvZ3VzIG9uZS4KKysgICAgIyBIb3dldmVy LCBpdCBoYXMgdGhlIHNhbWUgYmFzZW5hbWUsIHNvIHRoZSBib2dvbiB3aWxsIGJlIGNob3Nlbgor KyAgICAjIGZpcnN0IGlmIHdlIHNldCBDQyB0byBqdXN0IHRoZSBiYXNlbmFtZTsgdXNlIHRoZSBm dWxsIGZpbGUgbmFtZS4KKysgICAgc2hpZnQKKysgICAgYWNfY3ZfcHJvZ19DQz0iJGFzX2Rpci8k YWNfd29yZCR7MSsnICd9JEAiCisrICBmaQorK2ZpCisrZmkKKytmaQorK0NDPSRhY19jdl9wcm9n X0NDCisraWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRDQyIgPiY1CisrJGFzX2VjaG8gIiRDQyIgPiY2OyB9 CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZmkKKytpZiB0 ZXN0IC16ICIkQ0MiOyB0aGVuCisrICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVu CisrICBmb3IgYWNfcHJvZyBpbiBjbC5leGUKKysgIGRvCisrICAgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9n cmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsg YWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hl Y2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dv cmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRo ZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1u ICIkQ0MiOyB0aGVuCisrICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19DQz0iJGFjX3Rvb2xfcHJlZml4JGFj X3Byb2ciCisrICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5k ICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQor K2RvbmUKKysgIGRvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK0NDPSRhY19j dl9wcm9nX0NDCisraWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRDQyIgPiY1CisrJGFzX2VjaG8gIiRDQyIg PiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICAg IHRlc3QgLW4gIiRDQyIgJiYgYnJlYWsKKysgIGRvbmUKKytmaQorK2lmIHRlc3QgLXogIiRDQyI7 IHRoZW4KKysgIGFjX2N0X0NDPSRDQworKyAgZm9yIGFjX3Byb2cgaW4gY2wuZXhlCisrZG8KKysg ICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBw cm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgor K3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRh Y193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNf Y3RfQ0MiOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRo ZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9 JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3Nh dmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhl Y19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAt ZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0i JGFjX3Byb2ciCisrICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZv dW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBm aQorK2RvbmUKKysgIGRvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0 X0NDPSRhY19jdl9wcm9nX2FjX2N0X0NDCisraWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgor KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19j dF9DQyIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9DQyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNf ZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICB0ZXN0IC1uICIkYWNfY3RfQ0MiICYmIGJy ZWFrCisrZG9uZQorKworKyAgaWYgdGVzdCAieCRhY19jdF9DQyIgPSB4OyB0aGVuCisrICAgIEND PSIiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQg aW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FS TklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJl Zml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7Cisr ZXNhYworKyAgICBDQz0kYWNfY3RfQ0MKKysgIGZpCisrZmkKKysKKytmaQorKworKworK3Rlc3Qg LXogIiRDQyIgJiYgeyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVy cm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxg JGFjX3B3ZCc6IiA+JjI7fQorK2FzX2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRhYmxlIEMgY29tcGls ZXIgZm91bmQgaW4gXCRQQVRICisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscyIg IiRMSU5FTk8iIDU7IH0KKysKKysjIFByb3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUg Y29tcGlsZXIuCisrJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgZm9yIEMgY29tcGlsZXIgdmVyc2lvbiIgPiY1Cisrc2V0IFggJGFjX2NvbXBpbGUKKythY19j b21waWxlcj0kMgorK2ZvciBhY19vcHRpb24gaW4gLS12ZXJzaW9uIC12IC1WIC1xdmVyc2lvbjsg ZG8KKysgIHsgeyBhY190cnk9IiRhY19jb21waWxlciAkYWNfb3B0aW9uID4mNSIKKytjYXNlICIo KCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgorKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iOyB9ID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAkYWNfb3B0 aW9uID4mNSIpIDI+Y29uZnRlc3QuZXJyCisrICBhY19zdGF0dXM9JD8KKysgIGlmIHRlc3QgLXMg Y29uZnRlc3QuZXJyOyB0aGVuCisrICAgIHNlZCAnMTBhXAorKy4uLiByZXN0IG9mIHN0ZGVyciBv dXRwdXQgZGVsZXRlZCAuLi4KKysgICAgICAgICAxMHEnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3Qu ZXIxCisrICAgIGNhdCBjb25mdGVzdC5lcjEgPiY1CisrICBmaQorKyAgcm0gLWYgY29uZnRlc3Qu ZXIxIGNvbmZ0ZXN0LmVycgorKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9CisrZG9u ZQorKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg d2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIuLi4gIiA+ JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2NfY29tcGlsZXJfZ251K3NldH0iID0gc2V0OyB0aGVu IDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0IGNvbmZkZWZz LmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K KysKKytpbnQKKyttYWluICgpCisreworKyNpZm5kZWYgX19HTlVDX18KKysgICAgICAgY2hva2Ug bWUKKysjZW5kaWYKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19m bl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisrICBhY19jb21waWxlcl9nbnU9eWVz CisrZWxzZQorKyAgYWNfY29tcGlsZXJfZ251PW5vCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKythY19jdl9jX2NvbXBp bGVyX2dudT0kYWNfY29tcGlsZXJfZ251CisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X2NfY29tcGlsZXJfZ251IiA+JjUKKysk YXNfZWNobyAiJGFjX2N2X2NfY29tcGlsZXJfZ251IiA+JjY7IH0KKytpZiB0ZXN0ICRhY19jb21w aWxlcl9nbnUgPSB5ZXM7IHRoZW4KKysgIEdDQz15ZXMKKytlbHNlCisrICBHQ0M9CisrZmkKKyth Y190ZXN0X0NGTEFHUz0ke0NGTEFHUytzZXR9CisrYWNfc2F2ZV9DRkxBR1M9JENGTEFHUworK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciAk Q0MgYWNjZXB0cyAtZyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAkQ0MgYWNj ZXB0cyAtZy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19jY19nK3NldH0iID0g c2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNf c2F2ZV9jX3dlcnJvcl9mbGFnPSRhY19jX3dlcnJvcl9mbGFnCisrICAgYWNfY193ZXJyb3JfZmxh Zz15ZXMKKysgICBhY19jdl9wcm9nX2NjX2c9bm8KKysgICBDRkxBR1M9Ii1nIgorKyAgIGNhdCBj b25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMu aC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30K KytfQUNFT0YKKytpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisrICBh Y19jdl9wcm9nX2NjX2c9eWVzCisrZWxzZQorKyAgQ0ZMQUdTPSIiCisrICAgICAgY2F0IGNvbmZk ZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19B Q0VPRgorK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKysKKytlbHNl CisrICBhY19jX3dlcnJvcl9mbGFnPSRhY19zYXZlX2Nfd2Vycm9yX2ZsYWcKKysJIENGTEFHUz0i LWciCisrCSBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyog ZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICBy ZXR1cm4gMDsKKyt9CisrX0FDRU9GCisraWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7 IHRoZW4gOgorKyAgYWNfY3ZfcHJvZ19jY19nPXllcworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrZmkKKytybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytm aQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qu JGFjX2V4dAorKyAgIGFjX2Nfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY193ZXJyb3JfZmxhZworK2Zp CisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19j dl9wcm9nX2NjX2ciID4mNQorKyRhc19lY2hvICIkYWNfY3ZfcHJvZ19jY19nIiA+JjY7IH0KKytp ZiB0ZXN0ICIkYWNfdGVzdF9DRkxBR1MiID0gc2V0OyB0aGVuCisrICBDRkxBR1M9JGFjX3NhdmVf Q0ZMQUdTCisrZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2NjX2cgPSB5ZXM7IHRoZW4KKysgIGlmIHRl c3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIENGTEFHUz0iLWcgLU8yIgorKyAgZWxzZQorKyAg ICBDRkxBR1M9Ii1nIgorKyAgZmkKKytlbHNlCisrICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhl bgorKyAgICBDRkxBR1M9Ii1PMiIKKysgIGVsc2UKKysgICAgQ0ZMQUdTPQorKyAgZmkKKytmaQor K3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRD QyBvcHRpb24gdG8gYWNjZXB0IElTTyBDODkiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkQ0Mgb3B0aW9uIHRvIGFjY2VwdCBJU08gQzg5Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHth Y19jdl9wcm9nX2NjX2M4OStzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2N2X3Byb2dfY2NfYzg5PW5vCisrYWNfc2F2ZV9DQz0k Q0MKKytjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5k IGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxzdGRhcmcuaD4KKysjaW5jbHVkZSA8c3RkaW8u aD4KKysjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisrI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisrLyog TW9zdCBvZiB0aGUgZm9sbG93aW5nIHRlc3RzIGFyZSBzdG9sZW4gZnJvbSBSQ1MgNS43J3Mgc3Jj L2NvbmYuc2guICAqLworK3N0cnVjdCBidWYgeyBpbnQgeDsgfTsKKytGSUxFICogKCpyY3NvcGVu KSAoc3RydWN0IGJ1ZiAqLCBzdHJ1Y3Qgc3RhdCAqLCBpbnQpOworK3N0YXRpYyBjaGFyICplIChw LCBpKQorKyAgICAgY2hhciAqKnA7CisrICAgICBpbnQgaTsKKyt7CisrICByZXR1cm4gcFtpXTsK Kyt9Cisrc3RhdGljIGNoYXIgKmYgKGNoYXIgKiAoKmcpIChjaGFyICoqLCBpbnQpLCBjaGFyICoq cCwgLi4uKQorK3sKKysgIGNoYXIgKnM7CisrICB2YV9saXN0IHY7CisrICB2YV9zdGFydCAodixw KTsKKysgIHMgPSBnIChwLCB2YV9hcmcgKHYsaW50KSk7CisrICB2YV9lbmQgKHYpOworKyAgcmV0 dXJuIHM7CisrfQorKworKy8qIE9TRiA0LjAgQ29tcGFxIGNjIGlzIHNvbWUgc29ydCBvZiBhbG1v c3QtQU5TSSBieSBkZWZhdWx0LiAgSXQgaGFzCisrICAgZnVuY3Rpb24gcHJvdG90eXBlcyBhbmQg c3R1ZmYsIGJ1dCBub3QgJ1x4SEgnIGhleCBjaGFyYWN0ZXIgY29uc3RhbnRzLgorKyAgIFRoZXNl IGRvbid0IHByb3Zva2UgYW4gZXJyb3IgdW5mb3J0dW5hdGVseSwgaW5zdGVhZCBhcmUgc2lsZW50 bHkgdHJlYXRlZAorKyAgIGFzICd4Jy4gIFRoZSBmb2xsb3dpbmcgaW5kdWNlcyBhbiBlcnJvciwg dW50aWwgLXN0ZCBpcyBhZGRlZCB0byBnZXQKKysgICBwcm9wZXIgQU5TSSBtb2RlLiAgQ3VyaW91 c2x5ICdceDAwJyE9J3gnIGFsd2F5cyBjb21lcyBvdXQgdHJ1ZSwgZm9yIGFuCisrICAgYXJyYXkg c2l6ZSBhdCBsZWFzdC4gIEl0J3MgbmVjZXNzYXJ5IHRvIHdyaXRlICdceDAwJz09MCB0byBnZXQg c29tZXRoaW5nCisrICAgdGhhdCdzIHRydWUgb25seSB3aXRoIC1zdGQuICAqLworK2ludCBvc2Y0 X2NjX2FycmF5IFsnXHgwMCcgPT0gMCA/IDEgOiAtMV07CisrCisrLyogSUJNIEMgNiBmb3IgQUlY IGlzIGFsbW9zdC1BTlNJIGJ5IGRlZmF1bHQsIGJ1dCBpdCByZXBsYWNlcyBtYWNybyBwYXJhbWV0 ZXJzCisrICAgaW5zaWRlIHN0cmluZ3MgYW5kIGNoYXJhY3RlciBjb25zdGFudHMuICAqLworKyNk ZWZpbmUgRk9PKHgpICd4JworK2ludCB4bGM2X2NjX2FycmF5W0ZPTyhhKSA9PSAneCcgPyAxIDog LTFdOworKworK2ludCB0ZXN0IChpbnQgaSwgZG91YmxlIHgpOworK3N0cnVjdCBzMSB7aW50ICgq ZikgKGludCBhKTt9OworK3N0cnVjdCBzMiB7aW50ICgqZikgKGRvdWJsZSBhKTt9OworK2ludCBw YWlybmFtZXMgKGludCwgY2hhciAqKiwgRklMRSAqKCopKHN0cnVjdCBidWYgKiwgc3RydWN0IHN0 YXQgKiwgaW50KSwgaW50LCBpbnQpOworK2ludCBhcmdjOworK2NoYXIgKiphcmd2OworK2ludAor K21haW4gKCkKKyt7CisrcmV0dXJuIGYgKGUsIGFyZ3YsIDApICE9IGFyZ3ZbMF0gIHx8ICBmIChl LCBhcmd2LCAxKSAhPSBhcmd2WzFdOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgor K2ZvciBhY19hcmcgaW4gJycgLXFsYW5nbHZsPWV4dGM4OSAtcWxhbmdsdmw9YW5zaSAtc3RkIFwK KysJLUFlICItQWEgLURfSFBVWF9TT1VSQ0UiICItWGMgLURfX0VYVEVOU0lPTlNfXyIKKytkbwor KyAgQ0M9IiRhY19zYXZlX0NDICRhY19hcmciCisrICBpZiBhY19mbl9jX3RyeV9jb21waWxlICIk TElORU5PIjsgdGhlbiA6CisrICBhY19jdl9wcm9nX2NjX2M4OT0kYWNfYXJnCisrZmkKKytybSAt ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0CisrICB0ZXN0ICJ4JGFjX2N2 X3Byb2dfY2NfYzg5IiAhPSAieG5vIiAmJiBicmVhaworK2RvbmUKKytybSAtZiBjb25mdGVzdC4k YWNfZXh0CisrQ0M9JGFjX3NhdmVfQ0MKKysKKytmaQorKyMgQUNfQ0FDSEVfVkFMCisrY2FzZSAi eCRhY19jdl9wcm9nX2NjX2M4OSIgaW4KKysgIHgpCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBub25lIG5lZWRlZCIgPiY1CisrJGFzX2VjaG8g Im5vbmUgbmVlZGVkIiA+JjY7IH0gOzsKKysgIHhubykKKysgICAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHVuc3VwcG9ydGVkIiA+JjUKKyskYXNfZWNo byAidW5zdXBwb3J0ZWQiID4mNjsgfSA7OworKyAgKikKKysgICAgQ0M9IiRDQyAkYWNfY3ZfcHJv Z19jY19jODkiCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog cmVzdWx0OiAkYWNfY3ZfcHJvZ19jY19jODkiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfcHJvZ19j Y19jODkiID4mNjsgfSA7OworK2VzYWMKKytpZiB0ZXN0ICJ4JGFjX2N2X3Byb2dfY2NfYzg5IiAh PSB4bm87IHRoZW4gOgorKworK2ZpCisrCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZM QUdTJworK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ID4mNScKKythY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQ UEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVy X2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKKysKKytkZXBjYz0iJENDIiAgIGFtX2NvbXBpbGVy X2xpc3Q9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2Ft X2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlK3NldH0iID0gc2V0OyB0aGVuIDoKKysg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAteiAiJEFNREVQ X1RSVUUiICYmIHRlc3QgLWYgIiRhbV9kZXBjb21wIjsgdGhlbgorKyAgIyBXZSBtYWtlIGEgc3Vi ZGlyIGFuZCBkbyB0aGUgdGVzdHMgdGhlcmUuICBPdGhlcndpc2Ugd2UgY2FuIGVuZCB1cAorKyAg IyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3ZSBkb24ndCBrbm93IGFib3V0IGFuZCBuZXZlciBy ZW1vdmUuICBGb3IKKysgICMgaW5zdGFuY2UgaXQgd2FzIHJlcG9ydGVkIHRoYXQgb24gSFAtVVgg dGhlIGdjYyB0ZXN0IHdpbGwgZW5kIHVwCisrICAjIG1ha2luZyBhIGR1bW15IGZpbGUgbmFtZWQg YEQnIC0tIGJlY2F1c2UgYC1NRCcgbWVhbnMgYHB1dCB0aGUgb3V0cHV0CisrICAjIGluIEQnLgor KyAgbWtkaXIgY29uZnRlc3QuZGlyCisrICAjIENvcHkgZGVwY29tcCB0byBzdWJkaXIgYmVjYXVz ZSBvdGhlcndpc2Ugd2Ugd29uJ3QgZmluZCBpdCBpZiB3ZSdyZQorKyAgIyB1c2luZyBhIHJlbGF0 aXZlIGRpcmVjdG9yeS4KKysgIGNwICIkYW1fZGVwY29tcCIgY29uZnRlc3QuZGlyCisrICBjZCBj b25mdGVzdC5kaXIKKysgICMgV2Ugd2lsbCBidWlsZCBvYmplY3RzIGFuZCBkZXBlbmRlbmNpZXMg aW4gYSBzdWJkaXJlY3RvcnkgYmVjYXVzZQorKyAgIyBpdCBoZWxwcyB0byBkZXRlY3QgaW5hcHBs aWNhYmxlIGRlcGVuZGVuY3kgbW9kZXMuICBGb3IgaW5zdGFuY2UKKysgICMgYm90aCBUcnU2NCdz IGNjIGFuZCBJQ0Mgc3VwcG9ydCAtTUQgdG8gb3V0cHV0IGRlcGVuZGVuY2llcyBhcyBhCisrICAj IHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0aW9uLCBidXQgSUNDIHdpbGwgcHV0IHRoZSBkZXBlbmRl bmNpZXMgaW4KKysgICMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHdoaWxlIFRydTY0IHdpbGwgcHV0 IHRoZW0gaW4gdGhlIG9iamVjdAorKyAgIyBkaXJlY3RvcnkuCisrICBta2RpciBzdWIKKysKKysg IGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKKysgIGlmIHRlc3QgIiRh bV9jb21waWxlcl9saXN0IiA9ICIiOyB0aGVuCisrICAgICBhbV9jb21waWxlcl9saXN0PWBzZWQg LW4gJ3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnIDwgLi9kZXBjb21wYAorKyAgZmkKKysg IGFtX191bml2ZXJzYWw9ZmFsc2UKKysgIGNhc2UgIiAkZGVwY2MgIiBpbiAjKAorKyAgICAgKlwg LWFyY2hcICpcIC1hcmNoXCAqKSBhbV9fdW5pdmVyc2FsPXRydWUgOzsKKysgICAgIGVzYWMKKysK KysgIGZvciBkZXBtb2RlIGluICRhbV9jb21waWxlcl9saXN0OyBkbworKyAgICAjIFNldHVwIGEg c291cmNlIHdpdGggbWFueSBkZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBjb21waWxlcnMKKysg ICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVwZW5kZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAgKHdp dGggXCksIGFuZAorKyAgICAjIHdlIHNob3VsZCBub3QgY2hvb3NlIGEgZGVwY29tcCBtb2RlIHdo aWNoIGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCisrICAgICMKKysgICAgIyBXZSBuZWVkIHRvIHJlY3Jl YXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3QsIGFzIHRoZSBjb21waWxlciBtYXkKKysgICAg IyBvdmVyd3JpdGUgc29tZSBvZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRoIG9ic2N1cmUgY29tbWFu ZCBsaW5lcy4KKysgICAgIyBUaGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29t cGlsZXIuCisrICAgIDogPiBzdWIvY29uZnRlc3QuYworKyAgICBmb3IgaSBpbiAxIDIgMyA0IDUg NjsgZG8KKysgICAgICBlY2hvICcjaW5jbHVkZSAiY29uZnRzdCckaScuaCInID4+IHN1Yi9jb25m dGVzdC5jCisrICAgICAgIyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcgY3JlYXRlcyBvbmx5 IHN1Yi9jb25mdHN0MS5oIHdpdGgKKysgICAgICAjIFNvbGFyaXMgOCdzIHsvdXNyLH0vYmluL3No LgorKyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGkuaAorKyAgICBkb25lCisrICAgIGVjaG8gIiR7 YW1fX2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7YW1fX3F1b3RlfSIgPiBj b25mbWYKKysKKysgICAgIyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAtbycgZm9yIHRoZSBzYWtl IG9mIHRoZSAiZGFzaG1zdGRvdXQiCisrICAgICMgbW9kZS4gIEl0IHR1cm5zIG91dCB0aGF0IHRo ZSBTdW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHByb3Blcmx5CisrICAgICMgaGFuZGxlIGAt TSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLiAgQWxzbywgc29tZSBJbnRlbAorKyAg ICAjIHZlcnNpb25zIGhhZCB0cm91YmxlIHdpdGggb3V0cHV0IGluIHN1YmRpcnMKKysgICAgYW1f X29iaj1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30KKysgICAgYW1fX21pbnVzX29iaj0iLW8gJGFt X19vYmoiCisrICAgIGNhc2UgJGRlcG1vZGUgaW4KKysgICAgZ2NjKQorKyAgICAgICMgVGhpcyBk ZXBtb2RlIGNhdXNlcyBhIGNvbXBpbGVyIHJhY2UgaW4gdW5pdmVyc2FsIG1vZGUuCisrICAgICAg dGVzdCAiJGFtX191bml2ZXJzYWwiID0gZmFsc2UgfHwgY29udGludWUKKysgICAgICA7OworKyAg ICBub3NpZGVlZmZlY3QpCisrICAgICAgIyBhZnRlciB0aGlzIHRhZywgbWVjaGFuaXNtcyBhcmUg bm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5J2xsCisrICAgICAgIyBvbmx5IGJlIHVzZWQgd2hl biBleHBsaWNpdGx5IHJlcXVlc3RlZAorKyAgICAgIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVu Y3lfdHJhY2tpbmciID0geHllczsgdGhlbgorKwljb250aW51ZQorKyAgICAgIGVsc2UKKysJYnJl YWsKKysgICAgICBmaQorKyAgICAgIDs7CisrICAgIG1zdmlzdWFsY3BwIHwgbXN2Y21zeXMpCisr ICAgICAgIyBUaGlzIGNvbXBpbGVyIHdvbid0IGdyb2sgYC1jIC1vJywgYnV0IGFsc28sIHRoZSBt aW51c28gdGVzdCBoYXMKKysgICAgICAjIG5vdCBydW4geWV0LiAgVGhlc2UgZGVwbW9kZXMgYXJl IGxhdGUgZW5vdWdoIGluIHRoZSBnYW1lLCBhbmQKKysgICAgICAjIHNvIHdlYWsgdGhhdCB0aGVp ciBmdW5jdGlvbmluZyBzaG91bGQgbm90IGJlIGltcGFjdGVkLgorKyAgICAgIGFtX19vYmo9Y29u ZnRlc3QuJHtPQkpFWFQtb30KKysgICAgICBhbV9fbWludXNfb2JqPQorKyAgICAgIDs7CisrICAg IG5vbmUpIGJyZWFrIDs7CisrICAgIGVzYWMKKysgICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCisr ICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9JGFtX19vYmogXAorKyAgICAgICBk ZXBmaWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25mdGVzdC5UUG8gXAorKyAg ICAgICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAtYyAkYW1fX21pbnVzX29iaiBzdWIvY29uZnRl c3QuYyBcCisrICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgorKyAgICAgICBn cmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisr ICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+ JjEgJiYKKysgICAgICAgZ3JlcCAkYW1fX29iaiBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwg Mj4mMSAmJgorKyAgICAgICAke01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+ JjE7IHRoZW4KKysgICAgICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywg aXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCisrICAgICAgIyBvciByZW1hcmtzIChldmVuIHdp dGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKKysgICAgICAj IHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KKysgICAg ICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgorKyAg ICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsg bm8gYXJndW1lbnQgcmVxdWlyZWQKKysgICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBp Y2MgOC4wOgorKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1Q JyBub3Qgc3VwcG9ydGVkCisrICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29uZnRl c3QuZXJyIHx8CisrICAgICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikg Pi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKKysgICAgICAgIGFtX2N2X0NDX2RlcGVuZGVu Y2llc19jb21waWxlcl90eXBlPSRkZXBtb2RlCisrICAgICAgICBicmVhaworKyAgICAgIGZpCisr ICAgIGZpCisrICBkb25lCisrCisrICBjZCAuLgorKyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgorK2Vs c2UKKysgIGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKKytmaQorKwor K2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRh bV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY1CisrJGFzX2VjaG8gIiRhbV9j dl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY2OyB9CisrQ0NERVBNT0RFPWRlcG1v ZGU9JGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlCisrCisrIGlmCisrICB0ZXN0 ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAorKyAgJiYgdGVzdCAiJGFt X2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzM7IHRoZW4KKysgIGFtX19m YXN0ZGVwQ0NfVFJVRT0KKysgIGFtX19mYXN0ZGVwQ0NfRkFMU0U9JyMnCisrZWxzZQorKyAgYW1f X2Zhc3RkZXBDQ19UUlVFPScjJworKyAgYW1fX2Zhc3RkZXBDQ19GQUxTRT0KKytmaQorKworKwor K3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGEg c2VkIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0IiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyBmb3IgYSBzZWQgdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQuLi4gIiA+JjY7IH0K KytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfU0VEK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgICAgICAgICAgIGFjX3NjcmlwdD1zL2Fh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhL2JiYmJiYmJiYmJiYmJiYmJiYmJiYmJi YmJiYmJiYmJiYi8KKysgICAgIGZvciBhY19pIGluIDEgMiAzIDQgNSA2IDc7IGRvCisrICAgICAg IGFjX3NjcmlwdD0iJGFjX3NjcmlwdCRhc19ubCRhY19zY3JpcHQiCisrICAgICBkb25lCisrICAg ICBlY2hvICIkYWNfc2NyaXB0IiAyPi9kZXYvbnVsbCB8IHNlZCA5OXEgPmNvbmZ0ZXN0LnNlZAor KyAgICAgeyBhY19zY3JpcHQ9OyB1bnNldCBhY19zY3JpcHQ7fQorKyAgICAgaWYgdGVzdCAteiAi JFNFRCI7IHRoZW4KKysgIGFjX3BhdGhfU0VEX2ZvdW5kPWZhbHNlCisrICAjIExvb3AgdGhyb3Vn aCB0aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9yIGVhY2ggb2YgUFJPR05BTUUtTElTVAorKyAg YXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBB VEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNf ZGlyPS4KKysgICAgZm9yIGFjX3Byb2cgaW4gc2VkIGdzZWQ7IGRvCisrICAgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgICAgIGFjX3BhdGhf U0VEPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IgorKyAgICAgIHsgdGVzdCAtZiAiJGFj X3BhdGhfU0VEIiAmJiAkYXNfdGVzdF94ICIkYWNfcGF0aF9TRUQiOyB9IHx8IGNvbnRpbnVlCisr IyBDaGVjayBmb3IgR05VIGFjX3BhdGhfU0VEIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQu CisrICAjIENoZWNrIGZvciBHTlUgJGFjX3BhdGhfU0VECisrY2FzZSBgIiRhY19wYXRoX1NFRCIg LS12ZXJzaW9uIDI+JjFgIGluCisrKkdOVSopCisrICBhY19jdl9wYXRoX1NFRD0iJGFjX3BhdGhf U0VEIiBhY19wYXRoX1NFRF9mb3VuZD06OzsKKysqKQorKyAgYWNfY291bnQ9MAorKyAgJGFzX2Vj aG9fbiAwMTIzNDU2Nzg5ID4iY29uZnRlc3QuaW4iCisrICB3aGlsZSA6CisrICBkbworKyAgICBj YXQgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QuaW4iID4iY29uZnRlc3QudG1wIgorKyAgICBtdiAi Y29uZnRlc3QudG1wIiAiY29uZnRlc3QuaW4iCisrICAgIGNwICJjb25mdGVzdC5pbiIgImNvbmZ0 ZXN0Lm5sIgorKyAgICAkYXNfZWNobyAnJyA+PiAiY29uZnRlc3QubmwiCisrICAgICIkYWNfcGF0 aF9TRUQiIC1mIGNvbmZ0ZXN0LnNlZCA8ICJjb25mdGVzdC5ubCIgPiJjb25mdGVzdC5vdXQiIDI+ L2Rldi9udWxsIHx8IGJyZWFrCisrICAgIGRpZmYgImNvbmZ0ZXN0Lm91dCIgImNvbmZ0ZXN0Lm5s IiA+L2Rldi9udWxsIDI+JjEgfHwgYnJlYWsKKysgICAgYXNfZm5fYXJpdGggJGFjX2NvdW50ICsg MSAmJiBhY19jb3VudD0kYXNfdmFsCisrICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3Bh dGhfU0VEX21heC0wfTsgdGhlbgorKyAgICAgICMgQmVzdCBvbmUgc28gZmFyLCBzYXZlIGl0IGJ1 dCBrZWVwIGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQorKyAgICAgIGFjX2N2X3BhdGhfU0VEPSIk YWNfcGF0aF9TRUQiCisrICAgICAgYWNfcGF0aF9TRURfbWF4PSRhY19jb3VudAorKyAgICBmaQor KyAgICAjIDEwKigyXjEwKSBjaGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCisr ICAgIHRlc3QgJGFjX2NvdW50IC1ndCAxMCAmJiBicmVhaworKyAgZG9uZQorKyAgcm0gLWYgY29u ZnRlc3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0ZXN0Lm5sIGNvbmZ0ZXN0Lm91dDs7CisrZXNhYwor KworKyAgICAgICRhY19wYXRoX1NFRF9mb3VuZCAmJiBicmVhayAzCisrICAgIGRvbmUKKysgIGRv bmUKKysgIGRvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrICBpZiB0ZXN0IC16ICIkYWNfY3ZfcGF0 aF9TRUQiOyB0aGVuCisrICAgIGFzX2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRhYmxlIHNlZCBjb3Vs ZCBiZSBmb3VuZCBpbiBcJFBBVEgiICIkTElORU5PIiA1CisrICBmaQorK2Vsc2UKKysgIGFjX2N2 X3BhdGhfU0VEPSRTRUQKKytmaQorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9wYXRoX1NFRCIgPiY1CisrJGFzX2VjaG8gIiRh Y19jdl9wYXRoX1NFRCIgPiY2OyB9CisrIFNFRD0iJGFjX2N2X3BhdGhfU0VEIgorKyAgcm0gLWYg Y29uZnRlc3Quc2VkCisrCisrdGVzdCAteiAiJFNFRCIgJiYgU0VEPXNlZAorK1hzZWQ9IiRTRUQg LWUgMXMvXlgvLyIKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKyt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBncmVwIHRoYXQgaGFu ZGxlcyBsb25nIGxpbmVzIGFuZCAtZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGdy ZXAgdGhhdCBoYW5kbGVzIGxvbmcgbGluZXMgYW5kIC1lLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHthY19jdl9wYXRoX0dSRVArc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC16ICIkR1JFUCI7IHRoZW4KKysgIGFjX3Bh dGhfR1JFUF9mb3VuZD1mYWxzZQorKyAgIyBMb29wIHRocm91Z2ggdGhlIHVzZXIncyBwYXRoIGFu ZCB0ZXN0IGZvciBlYWNoIG9mIFBST0dOQU1FLUxJU1QKKysgIGFzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vz ci94cGc0L2JpbgorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfcHJvZyBpbiBncmVwIGdncmVwOyBkbworKyAgICBm b3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgICAg ICBhY19wYXRoX0dSRVA9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiCisrICAgICAgeyB0 ZXN0IC1mICIkYWNfcGF0aF9HUkVQIiAmJiAkYXNfdGVzdF94ICIkYWNfcGF0aF9HUkVQIjsgfSB8 fCBjb250aW51ZQorKyMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX0dSRVAgYW5kIHNlbGVjdCBpdCBp ZiBpdCBpcyBmb3VuZC4KKysgICMgQ2hlY2sgZm9yIEdOVSAkYWNfcGF0aF9HUkVQCisrY2FzZSBg IiRhY19wYXRoX0dSRVAiIC0tdmVyc2lvbiAyPiYxYCBpbgorKypHTlUqKQorKyAgYWNfY3ZfcGF0 aF9HUkVQPSIkYWNfcGF0aF9HUkVQIiBhY19wYXRoX0dSRVBfZm91bmQ9Ojs7CisrKikKKysgIGFj X2NvdW50PTAKKysgICRhc19lY2hvX24gMDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0LmluIgorKyAgd2hp bGUgOgorKyAgZG8KKysgICAgY2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0LmluIiA+ImNvbmZ0 ZXN0LnRtcCIKKysgICAgbXYgImNvbmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgorKyAgICBjcCAi Y29uZnRlc3QuaW4iICJjb25mdGVzdC5ubCIKKysgICAgJGFzX2VjaG8gJ0dSRVAnID4+ICJjb25m dGVzdC5ubCIKKysgICAgIiRhY19wYXRoX0dSRVAiIC1lICdHUkVQJCcgLWUgJy0oY2Fubm90IG1h dGNoKS0nIDwgImNvbmZ0ZXN0Lm5sIiA+ImNvbmZ0ZXN0Lm91dCIgMj4vZGV2L251bGwgfHwgYnJl YWsKKysgICAgZGlmZiAiY29uZnRlc3Qub3V0IiAiY29uZnRlc3QubmwiID4vZGV2L251bGwgMj4m MSB8fCBicmVhaworKyAgICBhc19mbl9hcml0aCAkYWNfY291bnQgKyAxICYmIGFjX2NvdW50PSRh c192YWwKKysgICAgaWYgdGVzdCAkYWNfY291bnQgLWd0ICR7YWNfcGF0aF9HUkVQX21heC0wfTsg dGhlbgorKyAgICAgICMgQmVzdCBvbmUgc28gZmFyLCBzYXZlIGl0IGJ1dCBrZWVwIGxvb2tpbmcg Zm9yIGEgYmV0dGVyIG9uZQorKyAgICAgIGFjX2N2X3BhdGhfR1JFUD0iJGFjX3BhdGhfR1JFUCIK KysgICAgICBhY19wYXRoX0dSRVBfbWF4PSRhY19jb3VudAorKyAgICBmaQorKyAgICAjIDEwKigy XjEwKSBjaGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCisrICAgIHRlc3QgJGFj X2NvdW50IC1ndCAxMCAmJiBicmVhaworKyAgZG9uZQorKyAgcm0gLWYgY29uZnRlc3QuaW4gY29u ZnRlc3QudG1wIGNvbmZ0ZXN0Lm5sIGNvbmZ0ZXN0Lm91dDs7CisrZXNhYworKworKyAgICAgICRh Y19wYXRoX0dSRVBfZm91bmQgJiYgYnJlYWsgMworKyAgICBkb25lCisrICBkb25lCisrICBkb25l CisrSUZTPSRhc19zYXZlX0lGUworKyAgaWYgdGVzdCAteiAiJGFjX2N2X3BhdGhfR1JFUCI7IHRo ZW4KKysgICAgYXNfZm5fZXJyb3IgJD8gIm5vIGFjY2VwdGFibGUgZ3JlcCBjb3VsZCBiZSBmb3Vu ZCBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4iICIkTElORU5PIiA1CisrICBm aQorK2Vsc2UKKysgIGFjX2N2X3BhdGhfR1JFUD0kR1JFUAorK2ZpCisrCisrZmkKKyt7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X3BhdGhfR1JF UCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9wYXRoX0dSRVAiID4mNjsgfQorKyBHUkVQPSIkYWNf Y3ZfcGF0aF9HUkVQIgorKworKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgZm9yIGVncmVwIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Ig ZWdyZXAuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfRUdSRVArc2V0fSIgPSBz ZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiBl Y2hvIGEgfCAkR1JFUCAtRSAnKGF8YiknID4vZGV2L251bGwgMj4mMQorKyAgIHRoZW4gYWNfY3Zf cGF0aF9FR1JFUD0iJEdSRVAgLUUiCisrICAgZWxzZQorKyAgICAgaWYgdGVzdCAteiAiJEVHUkVQ IjsgdGhlbgorKyAgYWNfcGF0aF9FR1JFUF9mb3VuZD1mYWxzZQorKyAgIyBMb29wIHRocm91Z2gg dGhlIHVzZXIncyBwYXRoIGFuZCB0ZXN0IGZvciBlYWNoIG9mIFBST0dOQU1FLUxJU1QKKysgIGFz X3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRI JFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbgorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisr ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfcHJvZyBpbiBlZ3Jl cDsgZG8KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lv bnM7IGRvCisrICAgICAgYWNfcGF0aF9FR1JFUD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4 dCIKKysgICAgICB7IHRlc3QgLWYgIiRhY19wYXRoX0VHUkVQIiAmJiAkYXNfdGVzdF94ICIkYWNf cGF0aF9FR1JFUCI7IH0gfHwgY29udGludWUKKysjIENoZWNrIGZvciBHTlUgYWNfcGF0aF9FR1JF UCBhbmQgc2VsZWN0IGl0IGlmIGl0IGlzIGZvdW5kLgorKyAgIyBDaGVjayBmb3IgR05VICRhY19w YXRoX0VHUkVQCisrY2FzZSBgIiRhY19wYXRoX0VHUkVQIiAtLXZlcnNpb24gMj4mMWAgaW4KKysq R05VKikKKysgIGFjX2N2X3BhdGhfRUdSRVA9IiRhY19wYXRoX0VHUkVQIiBhY19wYXRoX0VHUkVQ X2ZvdW5kPTo7OworKyopCisrICBhY19jb3VudD0wCisrICAkYXNfZWNob19uIDAxMjM0NTY3ODkg PiJjb25mdGVzdC5pbiIKKysgIHdoaWxlIDoKKysgIGRvCisrICAgIGNhdCAiY29uZnRlc3QuaW4i ICJjb25mdGVzdC5pbiIgPiJjb25mdGVzdC50bXAiCisrICAgIG12ICJjb25mdGVzdC50bXAiICJj b25mdGVzdC5pbiIKKysgICAgY3AgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QubmwiCisrICAgICRh c19lY2hvICdFR1JFUCcgPj4gImNvbmZ0ZXN0Lm5sIgorKyAgICAiJGFjX3BhdGhfRUdSRVAiICdF R1JFUCQnIDwgImNvbmZ0ZXN0Lm5sIiA+ImNvbmZ0ZXN0Lm91dCIgMj4vZGV2L251bGwgfHwgYnJl YWsKKysgICAgZGlmZiAiY29uZnRlc3Qub3V0IiAiY29uZnRlc3QubmwiID4vZGV2L251bGwgMj4m MSB8fCBicmVhaworKyAgICBhc19mbl9hcml0aCAkYWNfY291bnQgKyAxICYmIGFjX2NvdW50PSRh c192YWwKKysgICAgaWYgdGVzdCAkYWNfY291bnQgLWd0ICR7YWNfcGF0aF9FR1JFUF9tYXgtMH07 IHRoZW4KKysgICAgICAjIEJlc3Qgb25lIHNvIGZhciwgc2F2ZSBpdCBidXQga2VlcCBsb29raW5n IGZvciBhIGJldHRlciBvbmUKKysgICAgICBhY19jdl9wYXRoX0VHUkVQPSIkYWNfcGF0aF9FR1JF UCIKKysgICAgICBhY19wYXRoX0VHUkVQX21heD0kYWNfY291bnQKKysgICAgZmkKKysgICAgIyAx MCooMl4xMCkgY2hhcnMgYXMgaW5wdXQgc2VlbXMgbW9yZSB0aGFuIGVub3VnaAorKyAgICB0ZXN0 ICRhY19jb3VudCAtZ3QgMTAgJiYgYnJlYWsKKysgIGRvbmUKKysgIHJtIC1mIGNvbmZ0ZXN0Lmlu IGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5ubCBjb25mdGVzdC5vdXQ7OworK2VzYWMKKysKKysgICAg ICAkYWNfcGF0aF9FR1JFUF9mb3VuZCAmJiBicmVhayAzCisrICAgIGRvbmUKKysgIGRvbmUKKysg IGRvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrICBpZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9FR1JF UCI7IHRoZW4KKysgICAgYXNfZm5fZXJyb3IgJD8gIm5vIGFjY2VwdGFibGUgZWdyZXAgY291bGQg YmUgZm91bmQgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiAiJExJTkVOTyIg NQorKyAgZmkKKytlbHNlCisrICBhY19jdl9wYXRoX0VHUkVQPSRFR1JFUAorK2ZpCisrCisrICAg ZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkYWNfY3ZfcGF0aF9FR1JFUCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9wYXRoX0VHUkVQIiA+ JjY7IH0KKysgRUdSRVA9IiRhY19jdl9wYXRoX0VHUkVQIgorKworKworK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGZncmVwIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgZmdyZXAuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2 X3BhdGhfRkdSRVArc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKKytlbHNlCisrICBpZiBlY2hvICdhYipjJyB8ICRHUkVQIC1GICdhYipjJyA+L2Rldi9u dWxsIDI+JjEKKysgICB0aGVuIGFjX2N2X3BhdGhfRkdSRVA9IiRHUkVQIC1GIgorKyAgIGVsc2UK KysgICAgIGlmIHRlc3QgLXogIiRGR1JFUCI7IHRoZW4KKysgIGFjX3BhdGhfRkdSRVBfZm91bmQ9 ZmFsc2UKKysgICMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3IgZWFj aCBvZiBQUk9HTkFNRS1MSVNUCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4KKytk bworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K KysgICAgZm9yIGFjX3Byb2cgaW4gZmdyZXA7IGRvCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgICAgIGFjX3BhdGhfRkdSRVA9IiRh c19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiCisrICAgICAgeyB0ZXN0IC1mICIkYWNfcGF0aF9G R1JFUCIgJiYgJGFzX3Rlc3RfeCAiJGFjX3BhdGhfRkdSRVAiOyB9IHx8IGNvbnRpbnVlCisrIyBD aGVjayBmb3IgR05VIGFjX3BhdGhfRkdSRVAgYW5kIHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4K KysgICMgQ2hlY2sgZm9yIEdOVSAkYWNfcGF0aF9GR1JFUAorK2Nhc2UgYCIkYWNfcGF0aF9GR1JF UCIgLS12ZXJzaW9uIDI+JjFgIGluCisrKkdOVSopCisrICBhY19jdl9wYXRoX0ZHUkVQPSIkYWNf cGF0aF9GR1JFUCIgYWNfcGF0aF9GR1JFUF9mb3VuZD06OzsKKysqKQorKyAgYWNfY291bnQ9MAor KyAgJGFzX2VjaG9fbiAwMTIzNDU2Nzg5ID4iY29uZnRlc3QuaW4iCisrICB3aGlsZSA6CisrICBk bworKyAgICBjYXQgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QuaW4iID4iY29uZnRlc3QudG1wIgor KyAgICBtdiAiY29uZnRlc3QudG1wIiAiY29uZnRlc3QuaW4iCisrICAgIGNwICJjb25mdGVzdC5p biIgImNvbmZ0ZXN0Lm5sIgorKyAgICAkYXNfZWNobyAnRkdSRVAnID4+ICJjb25mdGVzdC5ubCIK KysgICAgIiRhY19wYXRoX0ZHUkVQIiBGR1JFUCA8ICJjb25mdGVzdC5ubCIgPiJjb25mdGVzdC5v dXQiIDI+L2Rldi9udWxsIHx8IGJyZWFrCisrICAgIGRpZmYgImNvbmZ0ZXN0Lm91dCIgImNvbmZ0 ZXN0Lm5sIiA+L2Rldi9udWxsIDI+JjEgfHwgYnJlYWsKKysgICAgYXNfZm5fYXJpdGggJGFjX2Nv dW50ICsgMSAmJiBhY19jb3VudD0kYXNfdmFsCisrICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAk e2FjX3BhdGhfRkdSRVBfbWF4LTB9OyB0aGVuCisrICAgICAgIyBCZXN0IG9uZSBzbyBmYXIsIHNh dmUgaXQgYnV0IGtlZXAgbG9va2luZyBmb3IgYSBiZXR0ZXIgb25lCisrICAgICAgYWNfY3ZfcGF0 aF9GR1JFUD0iJGFjX3BhdGhfRkdSRVAiCisrICAgICAgYWNfcGF0aF9GR1JFUF9tYXg9JGFjX2Nv dW50CisrICAgIGZpCisrICAgICMgMTAqKDJeMTApIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUg dGhhbiBlbm91Z2gKKysgICAgdGVzdCAkYWNfY291bnQgLWd0IDEwICYmIGJyZWFrCisrICBkb25l CisrICBybSAtZiBjb25mdGVzdC5pbiBjb25mdGVzdC50bXAgY29uZnRlc3QubmwgY29uZnRlc3Qu b3V0OzsKKytlc2FjCisrCisrICAgICAgJGFjX3BhdGhfRkdSRVBfZm91bmQgJiYgYnJlYWsgMwor KyAgICBkb25lCisrICBkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKyAgaWYgdGVz dCAteiAiJGFjX2N2X3BhdGhfRkdSRVAiOyB0aGVuCisrICAgIGFzX2ZuX2Vycm9yICQ/ICJubyBh Y2NlcHRhYmxlIGZncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vz ci94cGc0L2JpbiIgIiRMSU5FTk8iIDUKKysgIGZpCisrZWxzZQorKyAgYWNfY3ZfcGF0aF9GR1JF UD0kRkdSRVAKKytmaQorKworKyAgIGZpCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X3BhdGhfRkdSRVAiID4mNQorKyRhc19lY2hv ICIkYWNfY3ZfcGF0aF9GR1JFUCIgPiY2OyB9CisrIEZHUkVQPSIkYWNfY3ZfcGF0aF9GR1JFUCIK KysKKysKKyt0ZXN0IC16ICIkR1JFUCIgJiYgR1JFUD1ncmVwCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrIyBDaGVjayB3aGV0aGVyIC0t d2l0aC1nbnUtbGQgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9nbnVfbGQrc2V0fSIgPSBz ZXQ7IHRoZW4gOgorKyAgd2l0aHZhbD0kd2l0aF9nbnVfbGQ7IHRlc3QgIiR3aXRodmFsIiA9IG5v IHx8IHdpdGhfZ251X2xkPXllcworK2Vsc2UKKysgIHdpdGhfZ251X2xkPW5vCisrZmkKKysKKyth Y19wcm9nPWxkCisraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICMgQ2hlY2sgaWYgZ2Nj IC1wcmludC1wcm9nLW5hbWU9bGQgZ2l2ZXMgYSBwYXRoLgorKyAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgbGQgdXNlZCBieSAkQ0MiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGZvciBsZCB1c2VkIGJ5ICRDQy4uLiAiID4mNjsgfQorKyAg Y2FzZSAkaG9zdCBpbgorKyAgKi0qLW1pbmd3KikKKysgICAgIyBnY2MgbGVhdmVzIGEgdHJhaWxp bmcgY2FycmlhZ2UgcmV0dXJuIHdoaWNoIHVwc2V0cyBtaW5ndworKyAgICBhY19wcm9nPWAoJEND IC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjUgfCB0ciAtZCAnXDAxNSdgIDs7CisrICAqKQorKyAg ICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjVgIDs7CisrICBlc2FjCisr ICBjYXNlICRhY19wcm9nIGluCisrICAgICMgQWNjZXB0IGFic29sdXRlIHBhdGhzLgorKyAgICBb XFwvXSogfCA/OltcXC9dKikKKysgICAgICByZV9kaXJlbHQ9Jy9bXi9dW14vXSovXC5cLi8nCisr ICAgICAgIyBDYW5vbmljYWxpemUgdGhlIHBhdGhuYW1lIG9mIGxkCisrICAgICAgYWNfcHJvZz1g JEVDSE8gIiRhY19wcm9nInwgJFNFRCAncyVcXFxcJS8lZydgCisrICAgICAgd2hpbGUgJEVDSE8g IiRhY19wcm9nIiB8ICRHUkVQICIkcmVfZGlyZWx0IiA+IC9kZXYvbnVsbCAyPiYxOyBkbworKwlh Y19wcm9nPWAkRUNITyAkYWNfcHJvZ3wgJFNFRCAicyUkcmVfZGlyZWx0JS8lImAKKysgICAgICBk b25lCisrICAgICAgdGVzdCAteiAiJExEIiAmJiBMRD0iJGFjX3Byb2ciCisrICAgICAgOzsKKysg ICIiKQorKyAgICAjIElmIGl0IGZhaWxzLCB0aGVuIHByZXRlbmQgd2UgYXJlbid0IHVzaW5nIEdD Qy4KKysgICAgYWNfcHJvZz1sZAorKyAgICA7OworKyAgKikKKysgICAgIyBJZiBpdCBpcyByZWxh dGl2ZSwgdGhlbiBzZWFyY2ggZm9yIHRoZSBmaXJzdCBsZCBpbiBQQVRILgorKyAgICB3aXRoX2du dV9sZD11bmtub3duCisrICAgIDs7CisrICBlc2FjCisrZWxpZiB0ZXN0ICIkd2l0aF9nbnVfbGQi ID0geWVzOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIGZvciBHTlUgbGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBHTlUg bGQuLi4gIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIGZvciBub24tR05VIGxkIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyBmb3Igbm9uLUdOVSBsZC4uLiAiID4mNjsgfQorK2ZpCisraWYgdGVzdCAiJHtsdF9jdl9w YXRoX0xEK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgaWYgdGVzdCAteiAiJExEIjsgdGhlbgorKyAgbHRfc2F2ZV9pZnM9IiRJRlMi OyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrICBmb3IgYWNfZGlyIGluICRQQVRIOyBkbworKyAgICBJ RlM9IiRsdF9zYXZlX2lmcyIKKysgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KKysg ICAgaWYgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyIgfHwgdGVzdCAtZiAiJGFjX2Rpci8kYWNf cHJvZyRhY19leGVleHQiOyB0aGVuCisrICAgICAgbHRfY3ZfcGF0aF9MRD0iJGFjX2Rpci8kYWNf cHJvZyIKKysgICAgICAjIENoZWNrIHRvIHNlZSBpZiB0aGUgcHJvZ3JhbSBpcyBHTlUgbGQuICBJ J2QgcmF0aGVyIHVzZSAtLXZlcnNpb24sCisrICAgICAgIyBidXQgYXBwYXJlbnRseSBzb21lIHZh cmlhbnRzIG9mIEdOVSBsZCBvbmx5IGFjY2VwdCAtdi4KKysgICAgICAjIEJyZWFrIG9ubHkgaWYg aXQgd2FzIHRoZSBHTlUvbm9uLUdOVSBsZCB0aGF0IHdlIHByZWZlci4KKysgICAgICBjYXNlIGAi JGx0X2N2X3BhdGhfTEQiIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KKysgICAgICAqR05VKiB8ICon d2l0aCBCRkQnKikKKysJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSBubyAmJiBicmVhaworKwk7Owor KyAgICAgICopCisrCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0geWVzICYmIGJyZWFrCisrCTs7Cisr ICAgICAgZXNhYworKyAgICBmaQorKyAgZG9uZQorKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrZWxz ZQorKyAgbHRfY3ZfcGF0aF9MRD0iJExEIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dCB3aXRoIGEgcGF0aC4KKytmaQorK2ZpCisrCisrTEQ9IiRsdF9jdl9wYXRoX0xEIgorK2lmIHRl c3QgLW4gIiRMRCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiAkTEQiID4mNQorKyRhc19lY2hvICIkTEQiID4mNjsgfQorK2Vsc2UKKysg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1 CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorK3Rlc3QgLXogIiRMRCIgJiYgYXNfZm5fZXJy b3IgJD8gIm5vIGFjY2VwdGFibGUgbGQgZm91bmQgaW4gXCRQQVRIIiAiJExJTkVOTyIgNQorK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgdGhlIGxp bmtlciAoJExEKSBpcyBHTlUgbGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmIHRoZSBs aW5rZXIgKCRMRCkgaXMgR05VIGxkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wcm9n X2dudV9sZCtzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysgICMgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uIGhlcmUsIGJ1dCBhcHBhcmVu dGx5IHNvbWUgR05VIGxkcyBvbmx5IGFjY2VwdCAtdi4KKytjYXNlIGAkTEQgLXYgMj4mMSA8L2Rl di9udWxsYCBpbgorKypHTlUqIHwgKid3aXRoIEJGRCcqKQorKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9 eWVzCisrICA7OworKyopCisrICBsdF9jdl9wcm9nX2dudV9sZD1ubworKyAgOzsKKytlc2FjCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0 X2N2X3Byb2dfZ251X2xkIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfZ251X2xkIiA+JjY7 IH0KKyt3aXRoX2dudV9sZD0kbHRfY3ZfcHJvZ19nbnVfbGQKKysKKysKKysKKysKKysKKysKKysK KysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5n IGZvciBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKSIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlciAobm0p Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wYXRoX05NK3NldH0iID0gc2V0OyB0aGVu IDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAi JE5NIjsgdGhlbgorKyAgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrICBsdF9j dl9wYXRoX05NPSIkTk0iCisrZWxzZQorKyAgbHRfbm1fdG9fY2hlY2s9IiR7YWNfdG9vbF9wcmVm aXh9bm0iCisrICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiICYmIHRlc3QgIiRidWlsZCIg PSAiJGhvc3QiOyB0aGVuCisrICAgIGx0X25tX3RvX2NoZWNrPSIkbHRfbm1fdG9fY2hlY2sgbm0i CisrICBmaQorKyAgZm9yIGx0X3RtcF9ubSBpbiAkbHRfbm1fdG9fY2hlY2s7IGRvCisrICAgIGx0 X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorKyAgICBmb3IgYWNfZGlyIGlu ICRQQVRIIC91c3IvY2NzL2Jpbi9lbGYgL3Vzci9jY3MvYmluIC91c3IvdWNiIC9iaW47IGRvCisr ICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNf ZGlyPS4KKysgICAgICB0bXBfbm09IiRhY19kaXIvJGx0X3RtcF9ubSIKKysgICAgICBpZiB0ZXN0 IC1mICIkdG1wX25tIiB8fCB0ZXN0IC1mICIkdG1wX25tJGFjX2V4ZWV4dCIgOyB0aGVuCisrCSMg Q2hlY2sgdG8gc2VlIGlmIHRoZSBubSBhY2NlcHRzIGEgQlNELWNvbXBhdCBmbGFnLgorKwkjIEFk ZGluZyB0aGUgYHNlZCAxcScgcHJldmVudHMgZmFsc2UgcG9zaXRpdmVzIG9uIEhQLVVYLCB3aGlj aCBzYXlzOgorKwkjICAgbm06IHVua25vd24gb3B0aW9uICJCIiBpZ25vcmVkCisrCSMgVHJ1NjQn cyBubSBjb21wbGFpbnMgdGhhdCAvZGV2L251bGwgaXMgYW4gaW52YWxpZCBvYmplY3QgZmlsZQor KwljYXNlIGAiJHRtcF9ubSIgLUIgL2Rldi9udWxsIDI+JjEgfCBzZWQgJzFxJ2AgaW4KKysJKi9k ZXYvbnVsbCogfCAqJ0ludmFsaWQgZmlsZSBvciBvYmplY3QgdHlwZScqKQorKwkgIGx0X2N2X3Bh dGhfTk09IiR0bXBfbm0gLUIiCisrCSAgYnJlYWsKKysJICA7OworKwkqKQorKwkgIGNhc2UgYCIk dG1wX25tIiAtcCAvZGV2L251bGwgMj4mMSB8IHNlZCAnMXEnYCBpbgorKwkgICovZGV2L251bGwq KQorKwkgICAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtcCIKKysJICAgIGJyZWFrCisrCSAgICA7 OworKwkgICopCisrCSAgICBsdF9jdl9wYXRoX05NPSR7bHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSJ9 ICMga2VlcCB0aGUgZmlyc3QgbWF0Y2gsIGJ1dAorKwkgICAgY29udGludWUgIyBzbyB0aGF0IHdl IGNhbiB0cnkgdG8gZmluZCBvbmUgdGhhdCBzdXBwb3J0cyBCU0QgZmxhZ3MKKysJICAgIDs7Cisr CSAgZXNhYworKwkgIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICBkb25lCisrICAgIElGUz0i JGx0X3NhdmVfaWZzIgorKyAgZG9uZQorKyAgOiAke2x0X2N2X3BhdGhfTk09bm99CisrZmkKKytm aQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRf Y3ZfcGF0aF9OTSIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wYXRoX05NIiA+JjY7IH0KKytpZiB0 ZXN0ICIkbHRfY3ZfcGF0aF9OTSIgIT0gIm5vIjsgdGhlbgorKyAgTk09IiRsdF9jdl9wYXRoX05N IgorK2Vsc2UKKysgICMgRGlkbid0IGZpbmQgYW55IEJTRCBjb21wYXRpYmxlIG5hbWUgbGlzdGVy LCBsb29rIGZvciBkdW1wYmluLgorKyAgaWYgdGVzdCAtbiAiJERVTVBCSU4iOyB0aGVuIDoKKysg ICAgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrICBlbHNlCisrICAgIGlmIHRl c3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKysgIGZvciBhY19wcm9nIGluIGR1bXBiaW4g ImxpbmsgLWR1bXAiCisrICBkbworKyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRh Y190b29sX3ByZWZpeCRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGgg YXJncy4KKytzZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFjX3dvcmQ9JDIKKyt7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNf d29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHthY19jdl9wcm9nX0RVTVBCSU4rc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkRFVNUEJJ TiI7IHRoZW4KKysgIGFjX2N2X3Byb2dfRFVNUEJJTj0iJERVTVBCSU4iICMgTGV0IHRoZSB1c2Vy IG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhf U0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZT CisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQg aW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19EVU1QQklOPSIkYWNfdG9v bF9wcmVmaXgkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFr IDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2Zp CisrRFVNUEJJTj0kYWNfY3ZfcHJvZ19EVU1QQklOCisraWYgdGVzdCAtbiAiJERVTVBCSU4iOyB0 aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog JERVTVBCSU4iID4mNQorKyRhc19lY2hvICIkRFVNUEJJTiIgPiY2OyB9CisrZWxzZQorKyAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKysk YXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICAgIHRlc3QgLW4gIiREVU1QQklOIiAm JiBicmVhaworKyAgZG9uZQorK2ZpCisraWYgdGVzdCAteiAiJERVTVBCSU4iOyB0aGVuCisrICBh Y19jdF9EVU1QQklOPSREVU1QQklOCisrICBmb3IgYWNfcHJvZyBpbiBkdW1wYmluICJsaW5rIC1k dW1wIgorK2RvCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28g aXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJGFjX3Byb2c7 IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193 b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0RVTVBCSU4rc2V0 fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBpZiB0ZXN0IC1uICIkYWNfY3RfRFVNUEJJTiI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3Rf RFVNUEJJTj0iJGFjX2N0X0RVTVBCSU4iICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFz X2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9EVU1QQklOPSIkYWNfcHJvZyIKKysgICAgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQor K0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3RfRFVNUEJJTj0kYWNfY3ZfcHJv Z19hY19jdF9EVU1QQklOCisraWYgdGVzdCAtbiAiJGFjX2N0X0RVTVBCSU4iOyB0aGVuCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X0RV TVBCSU4iID4mNQorKyRhc19lY2hvICIkYWNfY3RfRFVNUEJJTiIgPiY2OyB9CisrZWxzZQorKyAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUK KyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICB0ZXN0IC1uICIkYWNfY3RfRFVN UEJJTiIgJiYgYnJlYWsKKytkb25lCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X0RVTVBCSU4iID0g eDsgdGhlbgorKyAgICBEVU1QQklOPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21w aWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhl ZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNp bmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2Fj X3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgRFVNUEJJTj0kYWNfY3RfRFVNUEJJTgor KyAgZmkKKytmaQorKworKyAgICBjYXNlIGAkRFVNUEJJTiAtc3ltYm9scyAvZGV2L251bGwgMj4m MSB8IHNlZCAnMXEnYCBpbgorKyAgICAqQ09GRiopCisrICAgICAgRFVNUEJJTj0iJERVTVBCSU4g LXN5bWJvbHMiCisrICAgICAgOzsKKysgICAgKikKKysgICAgICBEVU1QQklOPToKKysgICAgICA7 OworKyAgICBlc2FjCisrICBmaQorKworKyAgaWYgdGVzdCAiJERVTVBCSU4iICE9ICI6IjsgdGhl bgorKyAgICBOTT0iJERVTVBCSU4iCisrICBmaQorK2ZpCisrdGVzdCAteiAiJE5NIiAmJiBOTT1u bQorKworKworKworKworKworKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgdGhlIG5hbWUgbGlzdGVyICgkTk0pIGludGVyZmFjZSIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgdGhlIG5hbWUgbGlzdGVyICgkTk0pIGludGVyZmFjZS4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7bHRfY3Zfbm1faW50ZXJmYWNlK3NldH0iID0gc2V0OyB0aGVuIDoK KysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3Zfbm1faW50ZXJm YWNlPSJCU0Qgbm0iCisrICBlY2hvICJpbnQgc29tZV92YXJpYWJsZSA9IDA7IiA+IGNvbmZ0ZXN0 LiRhY19leHQKKysgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAkYWNfY29tcGlsZVwi IiA+JjUpCisrICAoZXZhbCAiJGFjX2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKKysgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAkTk0gXFxc ImNvbmZ0ZXN0LiRhY19vYmpleHRcXFwiXCIiID4mNSkKKysgIChldmFsICIkTk0gXCJjb25mdGVz dC4kYWNfb2JqZXh0XCIiIDI+Y29uZnRlc3QuZXJyID4gY29uZnRlc3Qub3V0KQorKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKKysgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiBvdXRwdXRc IiIgPiY1KQorKyAgY2F0IGNvbmZ0ZXN0Lm91dCA+JjUKKysgIGlmICRHUkVQICdFeHRlcm5hbC4q c29tZV92YXJpYWJsZScgY29uZnRlc3Qub3V0ID4gL2Rldi9udWxsOyB0aGVuCisrICAgIGx0X2N2 X25tX2ludGVyZmFjZT0iTVMgZHVtcGJpbiIKKysgIGZpCisrICBybSAtZiBjb25mdGVzdCoKKytm aQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRf Y3Zfbm1faW50ZXJmYWNlIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X25tX2ludGVyZmFjZSIgPiY2 OyB9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyB3aGV0aGVyIGxuIC1zIHdvcmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVy IGxuIC1zIHdvcmtzLi4uICIgPiY2OyB9CisrTE5fUz0kYXNfbG5fcworK2lmIHRlc3QgIiRMTl9T IiA9ICJsbiAtcyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorK2Vsc2UKKysg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubywgdXNp bmcgJExOX1MiID4mNQorKyRhc19lY2hvICJubywgdXNpbmcgJExOX1MiID4mNjsgfQorK2ZpCisr CisrIyBmaW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzCisr eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB0aGUgbWF4 aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3N5c19tYXhfY21kX2xlbitzZXR9IiA9IHNldDsg dGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgICAgaT0wCisr ICB0ZXN0c3RyaW5nPSJBQkNEIgorKworKyAgY2FzZSAkYnVpbGRfb3MgaW4KKysgIG1zZG9zZGpn cHAqKQorKyAgICAjIE9uIERKR1BQLCB0aGlzIHRlc3QgY2FuIGJsb3cgdXAgcHJldHR5IGJhZGx5 IGR1ZSB0byBwcm9ibGVtcyBpbiBsaWJjCisrICAgICMgKGFueSBzaW5nbGUgYXJndW1lbnQgZXhj ZWVkaW5nIDIwMDAgYnl0ZXMgY2F1c2VzIGEgYnVmZmVyIG92ZXJydW4KKysgICAgIyBkdXJpbmcg Z2xvYiBleHBhbnNpb24pLiAgRXZlbiBpZiBpdCB3ZXJlIGZpeGVkLCB0aGUgcmVzdWx0IG9mIHRo aXMKKysgICAgIyBjaGVjayB3b3VsZCBiZSBsYXJnZXIgdGhhbiBpdCBzaG91bGQgYmUuCisrICAg IGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMjI4ODsgICAgIyAxMksgaXMgYWJvdXQgcmlnaHQKKysg ICAgOzsKKysKKysgIGdudSopCisrICAgICMgVW5kZXIgR05VIEh1cmQsIHRoaXMgdGVzdCBpcyBu b3QgcmVxdWlyZWQgYmVjYXVzZSB0aGVyZSBpcworKyAgICAjIG5vIGxpbWl0IHRvIHRoZSBsZW5n dGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4KKysgICAgIyBMaWJ0b29sIHdpbGwgaW50ZXJw cmV0IC0xIGFzIG5vIGxpbWl0IHdoYXRzb2V2ZXIKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVu PS0xOworKyAgICA7OworKworKyAgY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKKysgICAgIyBP biBXaW45eC9NRSwgdGhpcyB0ZXN0IGJsb3dzIHVwIC0tIGl0IHN1Y2NlZWRzLCBidXQgdGFrZXMK KysgICAgIyBhYm91dCA1IG1pbnV0ZXMgYXMgdGhlIHRlc3RzdHJpbmcgZ3Jvd3MgZXhwb25lbnRp YWxseS4KKysgICAgIyBXb3JzZSwgc2luY2UgOXgvTUUgYXJlIG5vdCBwcmUtZW1wdGl2ZWx5IG11 bHRpdGFza2luZywKKysgICAgIyB5b3UgZW5kIHVwIHdpdGggYSAiZnJvemVuIiBjb21wdXRlciwg ZXZlbiB0aG91Z2ggd2l0aCBwYXRpZW5jZQorKyAgICAjIHRoZSB0ZXN0IGV2ZW50dWFsbHkgc3Vj Y2VlZHMgKHdpdGggYSBtYXggbGluZSBsZW5ndGggb2YgMjU2aykuCisrICAgICMgSW5zdGVhZCwg bGV0J3MganVzdCBwdW50OiB1c2UgdGhlIG1pbmltdW0gbGluZWxlbmd0aCByZXBvcnRlZCBieQor KyAgICAjIGFsbCBvZiB0aGUgc3VwcG9ydGVkIHBsYXRmb3JtczogODE5MiAob24gTlQvMksvWFAp LgorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKKysgICAgOzsKKysKKysgIG1pbnQq KQorKyAgICAjIE9uIE1pTlQgdGhpcyBjYW4gdGFrZSBhIGxvbmcgdGltZSBhbmQgcnVuIG91dCBv ZiBtZW1vcnkuCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOworKyAgICA7OworKwor KyAgYW1pZ2FvcyopCisrICAgICMgT24gQW1pZ2FPUyB3aXRoIHBka3NoLCB0aGlzIHRlc3QgdGFr ZXMgaG91cnMsIGxpdGVyYWxseS4KKysgICAgIyBTbyB3ZSBqdXN0IHB1bnQgYW5kIHVzZSBhIG1p bmltdW0gbGluZSBsZW5ndGggb2YgODE5Mi4KKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgx OTI7CisrICAgIDs7CisrCisrICBuZXRic2QqIHwgZnJlZWJzZCogfCBvcGVuYnNkKiB8IGRhcndp biogfCBkcmFnb25mbHkqKQorKyAgICAjIFRoaXMgaGFzIGJlZW4gYXJvdW5kIHNpbmNlIDM4NkJT RCwgYXQgbGVhc3QuICBMaWtlbHkgZnVydGhlci4KKysgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNj dGw7IHRoZW4KKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YC9zYmluL3N5c2N0bCAtbiBr ZXJuLmFyZ21heGAKKysgICAgZWxpZiB0ZXN0IC14IC91c3Ivc2Jpbi9zeXNjdGw7IHRoZW4KKysg ICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YC91c3Ivc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdt YXhgCisrICAgIGVsc2UKKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49NjU1MzYJIyB1c2Fi bGUgZGVmYXVsdCBmb3IgYWxsIEJTRHMKKysgICAgZmkKKysgICAgIyBBbmQgYWRkIGEgc2FmZXR5 IHpvbmUKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2Nt ZF9sZW4gXC8gNGAKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNf bWF4X2NtZF9sZW4gXCogM2AKKysgICAgOzsKKysKKysgIGludGVyaXgqKQorKyAgICAjIFdlIGtu b3cgdGhlIHZhbHVlIDI2MjE0NCBhbmQgaGFyZGNvZGUgaXQgd2l0aCBhIHNhZmV0eSB6b25lIChs aWtlIEJTRCkKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE5NjYwOAorKyAgICA7OworKwor KyAgb3NmKikKKysgICAgIyBEci4gSGFucyBFa2tlaGFyZCBQbGVzc2VyIHJlcG9ydHMgc2VlaW5n IGEga2VybmVsIHBhbmljIHJ1bm5pbmcgY29uZmlndXJlCisrICAgICMgZHVlIHRvIHRoaXMgdGVz dCB3aGVuIGV4ZWNfZGlzYWJsZV9hcmdfbGltaXQgaXMgMSBvbiBUcnU2NC4gSXQgaXMgbm90Cisr ICAgICMgbmljZSB0byBjYXVzZSBrZXJuZWwgcGFuaWNzIHNvIGxldHMgYXZvaWQgdGhlIGxvb3Ag YmVsb3cuCisrICAgICMgRmlyc3Qgc2V0IGEgcmVhc29uYWJsZSBkZWZhdWx0LgorKyAgICBsdF9j dl9zeXNfbWF4X2NtZF9sZW49MTYzODQKKysgICAgIworKyAgICBpZiB0ZXN0IC14IC9zYmluL3N5 c2NvbmZpZzsgdGhlbgorKyAgICAgIGNhc2UgYC9zYmluL3N5c2NvbmZpZyAtcSBwcm9jIGV4ZWNf ZGlzYWJsZV9hcmdfbGltaXRgIGluCisrICAgICAgICAqMSopIGx0X2N2X3N5c19tYXhfY21kX2xl bj0tMSA7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysgICAgOzsKKysgIHNjbzMuMnY1KikKKysg ICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTEwMjQwMAorKyAgICA7OworKyAgc3lzdjUqIHwgc2Nv NXY2KiB8IHN5c3Y0LjJ1dzIqKQorKyAgICBrYXJnbWF4PWBncmVwIEFSR19NQVggL2V0Yy9jb25m L2NmLmQvc3R1bmUgMj4vZGV2L251bGxgCisrICAgIGlmIHRlc3QgLW4gIiRrYXJnbWF4IjsgdGhl bgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZWNobyAka2FyZ21heCB8IHNlZCAncy8u KlsJIF0vLydgCisrICAgIGVsc2UKKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MzI3NjgK KysgICAgZmkKKysgICAgOzsKKysgICopCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gKGdl dGNvbmYgQVJHX01BWCkgMj4gL2Rldi9udWxsYAorKyAgICBpZiB0ZXN0IC1uICIkbHRfY3Zfc3lz X21heF9jbWRfbGVuIjsgdGhlbgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAk bHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDRgCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVu PWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXCogM2AKKysgICAgZWxzZQorKyAgICAgICMg TWFrZSB0ZXN0c3RyaW5nIGEgbGl0dGxlIGJpZ2dlciBiZWZvcmUgd2UgZG8gYW55dGhpbmcgd2l0 aCBpdC4KKysgICAgICAjIGEgMUsgc3RyaW5nIHNob3VsZCBiZSBhIHJlYXNvbmFibGUgc3RhcnQu CisrICAgICAgZm9yIGkgaW4gMSAyIDMgNCA1IDYgNyA4IDsgZG8KKysgICAgICAgIHRlc3RzdHJp bmc9JHRlc3RzdHJpbmckdGVzdHN0cmluZworKyAgICAgIGRvbmUKKysgICAgICBTSEVMTD0ke1NI RUxMLSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9fQorKyAgICAgICMgSWYgdGVzdCBpcyBub3QgYSBz aGVsbCBidWlsdC1pbiwgd2UnbGwgcHJvYmFibHkgZW5kIHVwIGNvbXB1dGluZyBhCisrICAgICAg IyBtYXhpbXVtIGxlbmd0aCB0aGF0IGlzIG9ubHkgaGFsZiBvZiB0aGUgYWN0dWFsIG1heGltdW0g bGVuZ3RoLCBidXQKKysgICAgICAjIHdlIGNhbid0IHRlbGwuCisrICAgICAgd2hpbGUgeyB0ZXN0 ICJYImBmdW5jX2ZhbGxiYWNrX2VjaG8gIiR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciIDI+L2Rldi9u dWxsYCBcCisrCSAgICAgICAgID0gIlgkdGVzdHN0cmluZyR0ZXN0c3RyaW5nIjsgfSA+L2Rldi9u dWxsIDI+JjEgJiYKKysJICAgICAgdGVzdCAkaSAhPSAxNyAjIDEvMiBNQiBzaG91bGQgYmUgZW5v dWdoCisrICAgICAgZG8KKysgICAgICAgIGk9YGV4cHIgJGkgKyAxYAorKyAgICAgICAgdGVzdHN0 cmluZz0kdGVzdHN0cmluZyR0ZXN0c3RyaW5nCisrICAgICAgZG9uZQorKyAgICAgICMgT25seSBj aGVjayB0aGUgc3RyaW5nIGxlbmd0aCBvdXRzaWRlIHRoZSBsb29wLgorKyAgICAgIGx0X2N2X3N5 c19tYXhfY21kX2xlbj1gZXhwciAiWCR0ZXN0c3RyaW5nIiA6ICIuKiIgMj4mMWAKKysgICAgICB0 ZXN0c3RyaW5nPQorKyAgICAgICMgQWRkIGEgc2lnbmlmaWNhbnQgc2FmZXR5IGZhY3RvciBiZWNh dXNlIEMrKyBjb21waWxlcnMgY2FuIHRhY2sgb24KKysgICAgICAjIG1hc3NpdmUgYW1vdW50cyBv ZiBhZGRpdGlvbmFsIGFyZ3VtZW50cyBiZWZvcmUgcGFzc2luZyB0aGVtIHRvIHRoZQorKyAgICAg ICMgbGlua2VyLiAgSXQgYXBwZWFycyBhcyB0aG91Z2ggMS8yIGlzIGEgdXNhYmxlIHZhbHVlLgor KyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVu IFwvIDJgCisrICAgIGZpCisrICAgIDs7CisrICBlc2FjCisrCisrZmkKKysKKytpZiB0ZXN0IC1u ICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X3N5c19tYXhfY21kX2xlbiIgPiY1Cisr JGFzX2VjaG8gIiRsdF9jdl9zeXNfbWF4X2NtZF9sZW4iID4mNjsgfQorK2Vsc2UKKysgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBub25lIiA+JjUKKysk YXNfZWNobyAibm9uZSIgPiY2OyB9CisrZmkKKyttYXhfY21kX2xlbj0kbHRfY3Zfc3lzX21heF9j bWRfbGVuCisrCisrCisrCisrCisrCisrCisrOiAke0NQPSJjcCAtZiJ9CisrOiAke01WPSJtdiAt ZiJ9CisrOiAke1JNPSJybSAtZiJ9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyBzb21lIFhT SSBjb25zdHJ1Y3RzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBzaGVs bCB1bmRlcnN0YW5kcyBzb21lIFhTSSBjb25zdHJ1Y3RzLi4uICIgPiY2OyB9CisrIyBUcnkgc29t ZSBYU0kgZmVhdHVyZXMKKyt4c2lfc2hlbGw9bm8KKysoIF9sdF9kdW1teT0iYS9iL2MiCisrICB0 ZXN0ICIke19sdF9kdW1teSMjKi99LCR7X2x0X2R1bW15JS8qfSwiJHtfbHRfZHVtbXklIiRfbHRf ZHVtbXkifSwgXAorKyAgICAgID0gYyxhL2IsLCBcCisrICAgICYmIGV2YWwgJ3Rlc3QgJCgoIDEg KyAxICkpIC1lcSAyIFwKKysgICAgJiYgdGVzdCAiJHsjX2x0X2R1bW15fSIgLWVxIDUnICkgPi9k ZXYvbnVsbCAyPiYxIFwKKysgICYmIHhzaV9zaGVsbD15ZXMKKyt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHhzaV9zaGVsbCIgPiY1CisrJGFzX2VjaG8g IiR4c2lfc2hlbGwiID4mNjsgfQorKworKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgXCIrPVwi IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5k cyBcIis9XCIuLi4gIiA+JjY7IH0KKytsdF9zaGVsbF9hcHBlbmQ9bm8KKysoIGZvbz1iYXI7IHNl dCBmb28gYmF6OyBldmFsICIkMSs9XCQyIiAmJiB0ZXN0ICIkZm9vIiA9IGJhcmJheiApIFwKKysg ICAgPi9kZXYvbnVsbCAyPiYxIFwKKysgICYmIGx0X3NoZWxsX2FwcGVuZD15ZXMKKyt7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X3NoZWxsX2FwcGVu ZCIgPiY1CisrJGFzX2VjaG8gIiRsdF9zaGVsbF9hcHBlbmQiID4mNjsgfQorKworKworK2lmICgg KE1BSUw9NjA7IHVuc2V0IE1BSUwpIHx8IGV4aXQpID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAg bHRfdW5zZXQ9dW5zZXQKKytlbHNlCisrICBsdF91bnNldD1mYWxzZQorK2ZpCisrCisrCisrCisr CisrCisrIyB0ZXN0IEVCQ0RJQyBvciBBU0NJSQorK2Nhc2UgYGVjaG8gWHx0ciBYICdcMTAxJ2Ag aW4KKysgQSkgIyBBU0NJSSBiYXNlZCBzeXN0ZW0KKysgICAgIyBcbiBpcyBub3QgaW50ZXJwcmV0 ZWQgY29ycmVjdGx5IGJ5IFNvbGFyaXMgOCAvdXNyL3VjYi90cgorKyAgbHRfU1AyTkw9J3RyIFww NDAgXDAxMicKKysgIGx0X05MMlNQPSd0ciBcMDE1XDAxMiBcMDQwXDA0MCcKKysgIDs7CisrICop ICMgRUJDRElDIGJhc2VkIHN5c3RlbQorKyAgbHRfU1AyTkw9J3RyIFwxMDAgXG4nCisrICBsdF9O TDJTUD0ndHIgXHJcbiBcMTAwXDEwMCcKKysgIDs7CisrZXNhYworKworKworKworKworKworKwor KworKworKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgZm9yICRMRCBvcHRpb24gdG8gcmVsb2FkIG9iamVjdCBmaWxlcyIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRMRCBvcHRpb24gdG8gcmVsb2FkIG9iamVjdCBmaWxlcy4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfbGRfcmVsb2FkX2ZsYWcrc2V0fSIgPSBzZXQ7IHRoZW4g OgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9sZF9yZWxv YWRfZmxhZz0nLXInCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogJGx0X2N2X2xkX3JlbG9hZF9mbGFnIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2 X2xkX3JlbG9hZF9mbGFnIiA+JjY7IH0KKytyZWxvYWRfZmxhZz0kbHRfY3ZfbGRfcmVsb2FkX2Zs YWcKKytjYXNlICRyZWxvYWRfZmxhZyBpbgorKyIiIHwgIiAiKikgOzsKKysqKSByZWxvYWRfZmxh Zz0iICRyZWxvYWRfZmxhZyIgOzsKKytlc2FjCisrcmVsb2FkX2NtZHM9JyRMRCRyZWxvYWRfZmxh ZyAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJworK2Nhc2UgJGhvc3Rfb3MgaW4KKysgIGRhcndpbiop CisrICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgICAgcmVsb2FkX2NtZHM9JyRM VENDICRMVENGTEFHUyAtbm9zdGRsaWIgJHt3bH0tciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwor KyAgICBlbHNlCisrICAgICAgcmVsb2FkX2NtZHM9JyRMRCRyZWxvYWRfZmxhZyAtbyAkb3V0cHV0 JHJlbG9hZF9vYmpzJworKyAgICBmaQorKyAgICA7OworK2VzYWMKKysKKysKKysKKysKKysKKysK KysKKysKKysKKytpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJh Y3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9b2JqZHVtcCIsIHNvIGl0IGNh biBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVm aXh9b2JqZHVtcDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfT0JKRFVN UCtzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysgIGlmIHRlc3QgLW4gIiRPQkpEVU1QIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19PQkpEVU1Q PSIkT0JKRFVNUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2Fz X3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRI CisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rp cj0uCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25z OyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAk YXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBh Y19jdl9wcm9nX09CSkRVTVA9IiR7YWNfdG9vbF9wcmVmaXh9b2JqZHVtcCIKKysgICAgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lG Uz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrT0JKRFVNUD0kYWNfY3ZfcHJvZ19PQkpEVU1Q CisraWYgdGVzdCAtbiAiJE9CSkRVTVAiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJE9CSkRVTVAiID4mNQorKyRhc19lY2hvICIkT0JK RFVNUCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisr CisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19PQkpEVU1QIjsgdGhlbgorKyAgYWNfY3Rf T0JKRFVNUD0kT0JKRFVNUAorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJvYmpkdW1w Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgb2Jq ZHVtcDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Ig JGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfT0JKRFVN UCtzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9PQkpEVU1QIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19h Y19jdF9PQkpEVU1QPSIkYWNfY3RfT0JKRFVNUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhl IHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytm b3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXog IiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl Y3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2FjX2N0X09CSkRVTVA9Im9iamR1bXAiCisrICAg ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKysgIGRv bmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X09CSkRVTVA9JGFjX2N2 X3Byb2dfYWNfY3RfT0JKRFVNUAorK2lmIHRlc3QgLW4gIiRhY19jdF9PQkpEVU1QIjsgdGhlbgor KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19j dF9PQkpEVU1QIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X09CSkRVTVAiID4mNjsgfQorK2Vsc2UK KysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIg PiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9P QkpEVU1QIiA9IHg7IHRoZW4KKysgICAgT0JKRFVNUD0iZmFsc2UiCisrICBlbHNlCisrICAgIGNh c2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9v bHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBs ZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBPQkpEVU1QPSRh Y19jdF9PQkpEVU1QCisrICBmaQorK2Vsc2UKKysgIE9CSkRVTVA9IiRhY19jdl9wcm9nX09CSkRV TVAiCisrZmkKKysKKyt0ZXN0IC16ICIkT0JKRFVNUCIgJiYgT0JKRFVNUD1vYmpkdW1wCisrCisr CisrCisrCisrCisrCisrCisrCisrCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBob3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXMiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byByZWNvZ25pemUgZGVwZW5kZW50IGxpYnJh cmllcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Qr c2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE1BR0lDX0NNRCcKKytsdF9jdl9maWxlX21hZ2lj X3Rlc3RfZmlsZT0KKytsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0ndW5rbm93bicKKysjIE5l ZWQgdG8gc2V0IHRoZSBwcmVjZWRpbmcgdmFyaWFibGUgb24gYWxsIHBsYXRmb3JtcyB0aGF0IHN1 cHBvcnQKKysjIGludGVybGlicmFyeSBkZXBlbmRlbmNpZXMuCisrIyAnbm9uZScgLS0gZGVwZW5k ZW5jaWVzIG5vdCBzdXBwb3J0ZWQuCisrIyBgdW5rbm93bicgLS0gc2FtZSBhcyBub25lLCBidXQg ZG9jdW1lbnRzIHRoYXQgd2UgcmVhbGx5IGRvbid0IGtub3cuCisrIyAncGFzc19hbGwnIC0tIGFs bCBkZXBlbmRlbmNpZXMgcGFzc2VkIHdpdGggbm8gY2hlY2tzLgorKyMgJ3Rlc3RfY29tcGlsZScg LS0gY2hlY2sgYnkgbWFraW5nIHRlc3QgcHJvZ3JhbS4KKysjICdmaWxlX21hZ2ljIFtbcmVnZXhd XScgLS0gY2hlY2sgYnkgbG9va2luZyBmb3IgZmlsZXMgaW4gbGlicmFyeSBwYXRoCisrIyB3aGlj aCByZXNwb25kcyB0byB0aGUgJGZpbGVfbWFnaWNfY21kIHdpdGggYSBnaXZlbiBleHRlbmRlZCBy ZWdleC4KKysjIElmIHlvdSBoYXZlIGBmaWxlJyBvciBlcXVpdmFsZW50IG9uIHlvdXIgc3lzdGVt IGFuZCB5b3UncmUgbm90IHN1cmUKKysjIHdoZXRoZXIgYHBhc3NfYWxsJyB3aWxsICphbHdheXMq IHdvcmssIHlvdSBwcm9iYWJseSB3YW50IHRoaXMgb25lLgorKworK2Nhc2UgJGhvc3Rfb3MgaW4K KythaXhbNC05XSopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAg OzsKKysKKytiZW9zKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisr ICA7OworKworK2JzZGlbNDVdKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxl X21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW01MXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMg bGliKScKKysgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvdXNyL2Jpbi9maWxlIC1MJworKyAgbHRf Y3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3NobGliL2xpYmMuc28KKysgIDs7CisrCisrY3lnd2lu KikKKysgICMgZnVuY193aW4zMl9saWJpZCBpcyBhIHNoZWxsIGZ1bmN0aW9uIGRlZmluZWQgaW4g bHRtYWluLnNoCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBeeDg2 IGFyY2hpdmUgaW1wb3J0fF54ODYgRExMJworKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNf d2luMzJfbGliaWQnCisrICA7OworKworK21pbmd3KiB8IHB3MzIqKQorKyAgIyBCYXNlIE1TWVMv TWluR1cgZG8gbm90IHByb3ZpZGUgdGhlICdmaWxlJyBjb21tYW5kIG5lZWRlZCBieQorKyAgIyBm dW5jX3dpbjMyX2xpYmlkIHNoZWxsIGZ1bmN0aW9uLCBzbyB1c2UgYSB3ZWFrZXIgdGVzdCBiYXNl ZCBvbiAnb2JqZHVtcCcsCisrICAjIHVubGVzcyB3ZSBmaW5kICdmaWxlJywgZm9yIGV4YW1wbGUg YmVjYXVzZSB3ZSBhcmUgY3Jvc3MtY29tcGlsaW5nLgorKyAgIyBmdW5jX3dpbjMyX2xpYmlkIGFz c3VtZXMgQlNEIG5tLCBzbyBkaXNhbGxvdyBpdCBpZiB1c2luZyBNUyBkdW1wYmluLgorKyAgaWYg KCB0ZXN0ICIkbHRfY3Zfbm1faW50ZXJmYWNlIiA9ICJCU0Qgbm0iICYmIGZpbGUgLyApID4vZGV2 L251bGwgMj4mMTsgdGhlbgorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9t YWdpYyBeeDg2IGFyY2hpdmUgaW1wb3J0fF54ODYgRExMJworKyAgICBsdF9jdl9maWxlX21hZ2lj X2NtZD0nZnVuY193aW4zMl9saWJpZCcKKysgIGVsc2UKKysgICAgIyBLZWVwIHRoaXMgcGF0dGVy biBpbiBzeW5jIHdpdGggdGhlIG9uZSBpbiBmdW5jX3dpbjMyX2xpYmlkLgorKyAgICBsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCAocGVpKi1pMzg2KC4q YXJjaGl0ZWN0dXJlOiBpMzg2KT98cGUtYXJtLXdpbmNlfHBlLXg4Ni02NCknCisrICAgIGx0X2N2 X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKKysgIGZpCisrICA7OworKworK2NlZ2NjKikK KysgICMgdXNlIHRoZSB3ZWFrZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcuIFNlZSBtaW5ndyou CisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCBw ZS1hcm0tLipsaXR0bGUoLiphcmNoaXRlY3R1cmU6IGFybSk/JworKyAgbHRfY3ZfZmlsZV9tYWdp Y19jbWQ9JyRPQkpEVU1QIC1mJworKyAgOzsKKysKKytkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrZnJlZWJzZCog fCBkcmFnb25mbHkqKQorKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VM Rl9fID4gL2Rldi9udWxsOyB0aGVuCisrICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgIGkqODYg KQorKyAgICAgICMgTm90IHN1cmUgd2hldGhlciB0aGUgcHJlc2VuY2Ugb2YgT3BlbkJTRCBoZXJl IHdhcyBhIG1pc3Rha2UuCisrICAgICAgIyBMZXQncyBhY2NlcHQgYm90aCBvZiB0aGVtIHVudGls IHRoaXMgaXMgY2xlYXJlZCB1cC4KKysgICAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0n ZmlsZV9tYWdpYyAoRnJlZUJTRHxPcGVuQlNEfERyYWdvbkZseSkvaVszLTldODYgKGNvbXBhY3Qg KT9kZW1hbmQgcGFnZWQgc2hhcmVkIGxpYnJhcnknCisrICAgICAgbHRfY3ZfZmlsZV9tYWdpY19j bWQ9L3Vzci9iaW4vZmlsZQorKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPWBlY2hv IC91c3IvbGliL2xpYmMuc28uKmAKKysgICAgICA7OworKyAgICBlc2FjCisrICBlbHNlCisrICAg IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICBmaQorKyAgOzsKKysKKytn bnUqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisr aGFpa3UqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7Cisr CisraHB1eDEwLjIwKiB8IGhwdXgxMSopCisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jp bi9maWxlCisrICBjYXNlICRob3N0X2NwdSBpbgorKyAgaWE2NCopCisrICAgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzWzAtOV1bMC05XVswLTldfEVMRi1bMC05XVsw LTldKSBzaGFyZWQgb2JqZWN0IGZpbGUgLSBJQTY0JworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rl c3RfZmlsZT0vdXNyL2xpYi9ocHV4MzIvbGliYy5zbworKyAgICA7OworKyAgaHBwYSo2NCopCisr ICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzWzAtOV1bMC05XVsw LTldfEVMRlsgLV1bMC05XVswLTldKSgtYml0KT8oIFtMTV1TQik/IHNoYXJlZCBvYmplY3QoIGZp bGUpP1ssIC1dKiBQQS1SSVNDIFswLTldXC5bMC05XScKKysgICAgbHRfY3ZfZmlsZV9tYWdpY190 ZXN0X2ZpbGU9L3Vzci9saWIvcGEyMF82NC9saWJjLnNsCisrICAgIDs7CisrICAqKQorKyAgICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxQ QS1SSVNDWzAtOV1cLlswLTldKSBzaGFyZWQgbGlicmFyeScKKysgICAgbHRfY3ZfZmlsZV9tYWdp Y190ZXN0X2ZpbGU9L3Vzci9saWIvbGliYy5zbAorKyAgICA7OworKyAgZXNhYworKyAgOzsKKysK KytpbnRlcml4WzMtOV0qKQorKyAgIyBQSUMgY29kZSBpcyBicm9rZW4gb24gSW50ZXJpeCAzLngs IHRoYXQncyB3aHkgfFwuYSBub3QgfF9waWNcLmEgaGVyZQorKyAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYlteL10rKFwuc298XC5hKSQnCisrICA7OworKwor K2lyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICBjYXNlICRMRCBpbgorKyAgKi0zMnwq Ii0zMiAiKSBsaWJtYWdpYz0zMi1iaXQ7OworKyAgKi1uMzJ8KiItbjMyICIpIGxpYm1hZ2ljPU4z Mjs7CisrICAqLTY0fCoiLTY0ICIpIGxpYm1hZ2ljPTY0LWJpdDs7CisrICAqKSBsaWJtYWdpYz1u ZXZlci1tYXRjaDs7CisrICBlc2FjCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNz X2FsbAorKyAgOzsKKysKKysjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCisrbGludXgqIHwgaypi c2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRo b2Q9cGFzc19hbGwKKysgIDs7CisrCisrbmV0YnNkKikKKysgIGlmIGVjaG8gX19FTEZfXyB8ICRD QyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICBsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5zb1wuWzAtOV0rXC5b MC05XSt8X3BpY1wuYSkkJworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5zb3xfcGljXC5hKSQnCisrICBmaQorKyAgOzsK KysKKytuZXdvczYqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMg RUxGIFswLTldWzAtOV0qLWJpdCBbTUxdU0IgKGV4ZWN1dGFibGV8ZHluYW1pYyBsaWIpJworKyAg bHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQorKyAgbHRfY3ZfZmlsZV9tYWdpY190 ZXN0X2ZpbGU9L3Vzci9saWIvbGlibmxzLnNvCisrICA7OworKworKypudG8qIHwgKnFueCopCisr ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytvcGVuYnNk KikKKysgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxG X19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7 IHRoZW4KKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xp YlteL10rKFwuc29cLlswLTldK1wuWzAtOV0rfFwuc298X3BpY1wuYSkkJworKyAgZWxzZQorKyAg ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5z b1wuWzAtOV0rXC5bMC05XSt8X3BpY1wuYSkkJworKyAgZmkKKysgIDs7CisrCisrb3NmMyogfCBv c2Y0KiB8IG9zZjUqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysg IDs7CisrCisrcmRvcyopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAor KyAgOzsKKysKKytzb2xhcmlzKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3Nf YWxsCisrICA7OworKworK3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSog fCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 cGFzc19hbGwKKysgIDs7CisrCisrc3lzdjQgfCBzeXN2NC4zKikKKysgIGNhc2UgJGhvc3RfdmVu ZG9yIGluCisrICBtb3Rvcm9sYSkKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2Zp bGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTUxdU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1p YyBsaWIpIE1bMC05XVswLTldKiBWZXJzaW9uIFswLTldJworKyAgICBsdF9jdl9maWxlX21hZ2lj X3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvKmAKKysgICAgOzsKKysgIG5jcikKKysg ICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsKKysgIHNlcXVl bnQpCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisrICAgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW0xNXVNC IChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliICknCisrICAgIDs7CisrICBzbmkpCisrICAgIGx0 X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tf bWV0aG9kPSJmaWxlX21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW0xNXVNCIGR5bmFtaWMgbGli IgorKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vbGliL2xpYmMuc28KKysgICAgOzsK KysgIHNpZW1lbnMpCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisr ICAgIDs7CisrICBwYykKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwK KysgICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrdHBmKikKKysgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworK2VzYWMKKysKKytmaQorK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2QiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QiID4mNjsg fQorK2ZpbGVfbWFnaWNfY21kPSRsdF9jdl9maWxlX21hZ2ljX2NtZAorK2RlcGxpYnNfY2hlY2tf bWV0aG9kPSRsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZAorK3Rlc3QgLXogIiRkZXBsaWJzX2No ZWNrX21ldGhvZCIgJiYgZGVwbGlic19jaGVja19tZXRob2Q9dW5rbm93bgorKworKworKworKwor KworKworKworKworKworKworKworKworK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRo ZW4KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1hciIs IHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7YWNf dG9vbF9wcmVmaXh9YXI7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX0FS K3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgaWYgdGVzdCAtbiAiJEFSIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19BUj0iJEFSIiAjIExl dCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsg SUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRh c19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAgZm9yIGFj X2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRl c3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfQVI9IiR7 YWNfdG9vbF9wcmVmaXh9YXIiCisrICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVh ayAyCisrICBmaQorK2RvbmUKKysgIGRvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytm aQorK0FSPSRhY19jdl9wcm9nX0FSCisraWYgdGVzdCAtbiAiJEFSIjsgdGhlbgorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRBUiIgPiY1CisrJGFz X2VjaG8gIiRBUiIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2Zp CisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19BUiI7IHRoZW4KKysgIGFjX2N0 X0FSPSRBUgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJhciIsIHNvIGl0IGNhbiBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IGFyOyBhY193b3JkPSQyCisr eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFj X3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsg fQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9BUitzZXR9IiA9IHNldDsgdGhlbiA6Cisr ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19j dF9BUiI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfQVI9IiRhY19jdF9BUiIgIyBMZXQgdGhl IHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0k UEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2 ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2FjX2N0X0FSPSJh ciIKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9u ZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3RfQVI9JGFj X2N2X3Byb2dfYWNfY3RfQVIKKytpZiB0ZXN0IC1uICIkYWNfY3RfQVIiOyB0aGVuCisrICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X0FSIiA+ JjUKKyskYXNfZWNobyAiJGFjX2N0X0FSIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJu byIgPiY2OyB9CisrZmkKKysKKysgIGlmIHRlc3QgIngkYWNfY3RfQVIiID0geDsgdGhlbgorKyAg ICBBUj0iZmFsc2UiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9v bF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0 cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29s cyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9 eWVzIDs7CisrZXNhYworKyAgICBBUj0kYWNfY3RfQVIKKysgIGZpCisrZWxzZQorKyAgQVI9IiRh Y19jdl9wcm9nX0FSIgorK2ZpCisrCisrdGVzdCAteiAiJEFSIiAmJiBBUj1hcgorK3Rlc3QgLXog IiRBUl9GTEFHUyIgJiYgQVJfRkxBR1M9Y3J1CisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRo ZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXN0cmlwIiwgc28gaXQgY2FuIGJlIGEg cHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1zdHJp cDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFj X3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfU1RSSVArc2V0fSIgPSBz ZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0 ZXN0IC1uICIkU1RSSVAiOyB0aGVuCisrICBhY19jdl9wcm9nX1NUUklQPSIkU1RSSVAiICMgTGV0 IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJ RlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFz X3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNf ZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVz dCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19TVFJJUD0i JHthY190b29sX3ByZWZpeH1zdHJpcCIKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAg IGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytm aQorK2ZpCisrU1RSSVA9JGFjX2N2X3Byb2dfU1RSSVAKKytpZiB0ZXN0IC1uICIkU1RSSVAiOyB0 aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog JFNUUklQIiA+JjUKKyskYXNfZWNobyAiJFNUUklQIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19l Y2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytmaQorK2lmIHRlc3QgLXogIiRhY19jdl9wcm9n X1NUUklQIjsgdGhlbgorKyAgYWNfY3RfU1RSSVA9JFNUUklQCisrICAjIEV4dHJhY3QgdGhlIGZp cnN0IHdvcmQgb2YgInN0cmlwIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn cy4KKytzZXQgZHVtbXkgc3RyaXA7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9w cm9nX2FjX2N0X1NUUklQK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQIjsgdGhlbgorKyAg YWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0iJGFjX2N0X1NUUklQIiAjIExldCB0aGUgdXNlciBvdmVy cmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFS QVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAg dGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcn ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9InN0cmlwIgor KyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisr ICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9TVFJJUD0kYWNf Y3ZfcHJvZ19hY19jdF9TVFJJUAorK2lmIHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KKysg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3Rf U1RSSVAiID4mNQorKyRhc19lY2hvICIkYWNfY3RfU1RSSVAiID4mNjsgfQorK2Vsc2UKKysgIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Cisr JGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9TVFJJUCIg PSB4OyB0aGVuCisrICAgIFNUUklQPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21w aWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhl ZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNp bmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2Fj X3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgU1RSSVA9JGFjX2N0X1NUUklQCisrICBm aQorK2Vsc2UKKysgIFNUUklQPSIkYWNfY3ZfcHJvZ19TVFJJUCIKKytmaQorKworK3Rlc3QgLXog IiRTVFJJUCIgJiYgU1RSSVA9OgorKworKworKworKworKworKworK2lmIHRlc3QgLW4gIiRhY190 b29sX3ByZWZpeCI7IHRoZW4KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190 b29sX3ByZWZpeH1yYW5saWIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdz LgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXJhbmxpYjsgYWNfd29yZD0kMgorK3sgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfUkFOTElCK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRo ZW4KKysgIGFjX2N2X3Byb2dfUkFOTElCPSIkUkFOTElCIiAjIExldCB0aGUgdXNlciBvdmVycmlk ZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRP UgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfUkFOTElCPSIke2FjX3Rvb2xfcHJlZml4 fXJhbmxpYiIKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91 bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZp CisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrUkFOTElC PSRhY19jdl9wcm9nX1JBTkxJQgorK2lmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCisrICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJFJBTkxJQiIgPiY1 CisrJGFzX2VjaG8gIiRSQU5MSUIiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+ JjY7IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfUkFOTElCIjsg dGhlbgorKyAgYWNfY3RfUkFOTElCPSRSQU5MSUIKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29y ZCBvZiAicmFubGliIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytz ZXQgZHVtbXkgcmFubGliOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19h Y19jdF9SQU5MSUIrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgorKyAgYWNf Y3ZfcHJvZ19hY19jdF9SQU5MSUI9IiRhY19jdF9SQU5MSUIiICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUI9InJhbmxpYiIK KysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQor KyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3RfUkFOTElCPSRh Y19jdl9wcm9nX2FjX2N0X1JBTkxJQgorK2lmIHRlc3QgLW4gIiRhY19jdF9SQU5MSUIiOyB0aGVu CisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFj X2N0X1JBTkxJQiIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9SQU5MSUIiID4mNjsgfQorK2Vsc2UK KysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIg PiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9S QU5MSUIiID0geDsgdGhlbgorKyAgICBSQU5MSUI9IjoiCisrICBlbHNlCisrICAgIGNhc2UgJGNy b3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90 IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJO SU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4m Mjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBSQU5MSUI9JGFjX2N0X1JB TkxJQgorKyAgZmkKKytlbHNlCisrICBSQU5MSUI9IiRhY19jdl9wcm9nX1JBTkxJQiIKKytmaQor KworK3Rlc3QgLXogIiRSQU5MSUIiICYmIFJBTkxJQj06CisrCisrCisrCisrCisrCisrCisrIyBE ZXRlcm1pbmUgY29tbWFuZHMgdG8gY3JlYXRlIG9sZC1zdHlsZSBzdGF0aWMgYXJjaGl2ZXMuCisr b2xkX2FyY2hpdmVfY21kcz0nJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianMnCisrb2xkX3Bv c3RpbnN0YWxsX2NtZHM9J2NobW9kIDY0NCAkb2xkbGliJworK29sZF9wb3N0dW5pbnN0YWxsX2Nt ZHM9CisrCisraWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KKysgIGNhc2UgJGhvc3Rfb3MgaW4K KysgIG9wZW5ic2QqKQorKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFs bF9jbWRzflwkUkFOTElCIC10IFwkb2xkbGliIgorKyAgICA7OworKyAgKikKKysgICAgb2xkX3Bv c3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIK KysgICAgOzsKKysgIGVzYWMKKysgIG9sZF9hcmNoaXZlX2NtZHM9IiRvbGRfYXJjaGl2ZV9jbWRz flwkUkFOTElCIFwkb2xkbGliIgorK2ZpCisrCisrY2FzZSAkaG9zdF9vcyBpbgorKyAgZGFyd2lu KikKKysgICAgbG9ja19vbGRfYXJjaGl2ZV9leHRyYWN0aW9uPXllcyA7OworKyAgKikKKysgICAg bG9ja19vbGRfYXJjaGl2ZV9leHRyYWN0aW9uPW5vIDs7CisrZXNhYworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKyMgSWYgbm8gQyBj b21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCisrTFRDQz0ke0xUQ0MtIiRDQyJ9CisrCisr IyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgorK0xU Q0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQorKworKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9n cmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCisrY29tcGlsZXI9JENDCisrCisrCisrIyBDaGVjayBm b3IgY29tbWFuZCB0byBncmFiIHRoZSByYXcgc3ltYm9sIG5hbWUgZm9sbG93ZWQgYnkgQyBzeW1i b2wgZnJvbSBubS4KKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIGNvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxlciBvYmplY3Qi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGNvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBm cm9tICRjb21waWxlciBvYmplY3QuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3BpcGUrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrCisrIyBUaGVzZSBhcmUgc2FuZSBkZWZhdWx0cyB0aGF0IHdv cmsgb24gYXQgbGVhc3QgYSBmZXcgb2xkIHN5c3RlbXMuCisrIyBbVGhleSBjb21lIGZyb20gVWx0 cml4LiAgV2hhdCBjb3VsZCBiZSBvbGRlciB0aGFuIFVsdHJpeD8hISA7KV0KKysKKysjIENoYXJh Y3RlciBjbGFzcyBkZXNjcmliaW5nIE5NIGdsb2JhbCBzeW1ib2wgY29kZXMuCisrc3ltY29kZT0n W0JDREVHUlNUXScKKysKKysjIFJlZ2V4cCB0byBtYXRjaCBzeW1ib2xzIHRoYXQgY2FuIGJlIGFj Y2Vzc2VkIGRpcmVjdGx5IGZyb20gQy4KKytzeW1wYXQ9J1woW19BLVphLXpdW19BLVphLXowLTld KlwpJworKworKyMgRGVmaW5lIHN5c3RlbS1zcGVjaWZpYyB2YXJpYWJsZXMuCisrY2FzZSAkaG9z dF9vcyBpbgorK2FpeCopCisrICBzeW1jb2RlPSdbQkNEVF0nCisrICA7OworK2N5Z3dpbiogfCBt aW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgIHN5bWNvZGU9J1tBQkNER0lTVFddJworKyAgOzsK KytocHV4KikKKysgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgIHN5bWNv ZGU9J1tBQkNERUdSU1RdJworKyAgZmkKKysgIDs7CisraXJpeCogfCBub25zdG9wdXgqKQorKyAg c3ltY29kZT0nW0JDREVHUlNUXScKKysgIDs7Cisrb3NmKikKKysgIHN5bWNvZGU9J1tCQ0RFR1FS U1RdJworKyAgOzsKKytzb2xhcmlzKikKKysgIHN5bWNvZGU9J1tCRFJUXScKKysgIDs7Cisrc2Nv My4ydjUqKQorKyAgc3ltY29kZT0nW0RUXScKKysgIDs7Cisrc3lzdjQuMnV3MiopCisrICBzeW1j b2RlPSdbRFRdJworKyAgOzsKKytzeXN2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVO SVgqKQorKyAgc3ltY29kZT0nW0FCRFRdJworKyAgOzsKKytzeXN2NCkKKysgIHN5bWNvZGU9J1tE Rk5TVFVdJworKyAgOzsKKytlc2FjCisrCisrIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4g dXNlIGl0cyBzdGFuZGFyZCBzeW1ib2wgY29kZXMuCisrY2FzZSBgJE5NIC1WIDI+JjFgIGluCisr KkdOVSogfCAqJ3dpdGggQkZEJyopCisrICBzeW1jb2RlPSdbQUJDREdJUlNUV10nIDs7CisrZXNh YworKworKyMgVHJhbnNmb3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRvIGEgcHJvcGVy IEMgZGVjbGFyYXRpb24uCisrIyBTb21lIHN5c3RlbXMgKGVzcC4gb24gaWE2NCkgbGluayBkYXRh IGFuZCBjb2RlIHN5bWJvbHMgZGlmZmVyZW50bHksCisrIyBzbyB1c2UgdGhpcyBnZW5lcmFsIGFw cHJvYWNoLgorK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUgJ3Mv XlQgLiogXCguKlwpJC9leHRlcm4gaW50IFwxKCk7L3AnIC1lICdzL14kc3ltY29kZSogLiogXCgu KlwpJC9leHRlcm4gY2hhciBcMTsvcCciCisrCisrIyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVkIHN5 bWJvbCBsaW5lIGludG8gc3ltYm9sIG5hbWUgYW5kIHN5bWJvbCBhZGRyZXNzCisrbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9InNlZCAtbiAtZSAncy9eOiBcKFteIF0q XCkgJC8gIHtcXFwiXDFcXFwiLCAodm9pZCAqKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFte IF0qXCkgXChbXiBdKlwpJC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyIKKytsdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSJzZWQgLW4gLWUg J3MvXjogXChbXiBdKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14k c3ltY29kZSogXChbXiBdKlwpIFwobGliW14gXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwy fSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFteIF0qXCkgXChbXiBdKlwpJC8gIHtcImxpYlwyXCIs ICh2b2lkICopIFwmXDJ9LC9wJyIKKysKKysjIEhhbmRsZSBDUkxGIGluIG1pbmd3IHRvb2wgY2hh aW4KKytvcHRfY3I9CisrY2FzZSAkYnVpbGRfb3MgaW4KKyttaW5ndyopCisrICBvcHRfY3I9YCRF Q0hPICd4XHswLDFcfScgfCB0ciB4ICdcMDE1J2AgIyBvcHRpb24gY3IgaW4gcmVnZXhwCisrICA7 OworK2VzYWMKKysKKysjIFRyeSB3aXRob3V0IGEgcHJlZml4IHVuZGVyc2NvcmUsIHRoZW4gd2l0 aCBpdC4KKytmb3IgYWNfc3ltcHJmeCBpbiAiIiAiXyI7IGRvCisrCisrICAjIFRyYW5zZm9ybSBz eW1jb2RlLCBzeW1wYXQsIGFuZCBzeW1wcmZ4IGludG8gYSByYXcgc3ltYm9sIGFuZCBhIEMgc3lt Ym9sLgorKyAgc3lteGZybT0iXFwxICRhY19zeW1wcmZ4XFwyIFxcMiIKKysKKysgICMgV3JpdGUg dGhlIHJhdyBhbmQgQyBpZGVudGlmaWVycy4KKysgIGlmIHRlc3QgIiRsdF9jdl9ubV9pbnRlcmZh Y2UiID0gIk1TIGR1bXBiaW4iOyB0aGVuCisrICAgICMgRmFrZSBpdCBmb3IgZHVtcGJpbiBhbmQg c2F5IFQgZm9yIGFueSBub24tc3RhdGljIGZ1bmN0aW9uCisrICAgICMgYW5kIEQgZm9yIGFueSBn bG9iYWwgdmFyaWFibGUuCisrICAgICMgQWxzbyBmaW5kIEMrKyBhbmQgX19mYXN0Y2FsbCBzeW1i b2xzIGZyb20gTVNWQysrLAorKyAgICAjIHdoaWNoIHN0YXJ0IHdpdGggQCBvciA/LgorKyAgICBs dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPSIkQVdLICciXAorKyIgICAgIHtsYXN0X3NlY3Rp b249c2VjdGlvbjsgc2VjdGlvbj1cJCAzfTsiXAorKyIgICAgIC9TZWN0aW9uIGxlbmd0aCAuKiNy ZWxvY3MuKihwaWNrIGFueSkve2hpZGVbbGFzdF9zZWN0aW9uXT0xfTsiXAorKyIgICAgIFwkIDAh fi9FeHRlcm5hbCAqXHwve25leHR9OyJcCisrIiAgICAgLyAwKyBVTkRFRiAve25leHR9OyAvIFVO REVGIFwoW158XVwpKigpL3tuZXh0fTsiXAorKyIgICAgIHtpZihoaWRlW3NlY3Rpb25dKSBuZXh0 fTsiXAorKyIgICAgIHtmPTB9OyBcJCAwfi9cKFwpLipcfC97Zj0xfTsge3ByaW50ZiBmID8gXCJU IFwiIDogXCJEIFwifTsiXAorKyIgICAgIHtzcGxpdChcJCAwLCBhLCAvXHx8XHIvKTsgc3BsaXQo YVsyXSwgcyl9OyJcCisrIiAgICAgc1sxXX4vXltAP10ve3ByaW50IHNbMV0sIHNbMV07IG5leHR9 OyJcCisrIiAgICAgc1sxXX5wcmZ4IHtzcGxpdChzWzFdLHQsXCJAXCIpOyBwcmludCB0WzFdLCBz dWJzdHIodFsxXSxsZW5ndGgocHJmeCkpfSJcCisrIiAgICAgJyBwcmZ4PV4kYWNfc3ltcHJmeCIK KysgIGVsc2UKKysgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0ic2VkIC1uIC1lICdz L14uKlsJIF1cKCRzeW1jb2RlJHN5bWNvZGUqXClbCSBdWwkgXSokYWNfc3ltcHJmeCRzeW1wYXQk b3B0X2NyJC8kc3lteGZybS9wJyIKKysgIGZpCisrCisrICAjIENoZWNrIHRvIHNlZSB0aGF0IHRo ZSBwaXBlIHdvcmtzIGNvcnJlY3RseS4KKysgIHBpcGVfd29ya3M9bm8KKysKKysgIHJtIC1mIGNv bmZ0ZXN0KgorKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKysjaWZkZWYgX19j cGx1c3BsdXMKKytleHRlcm4gIkMiIHsKKysjZW5kaWYKKytjaGFyIG5tX3Rlc3RfdmFyOworK3Zv aWQgbm1fdGVzdF9mdW5jKHZvaWQpOworK3ZvaWQgbm1fdGVzdF9mdW5jKHZvaWQpe30KKysjaWZk ZWYgX19jcGx1c3BsdXMKKyt9CisrI2VuZGlmCisraW50IG1haW4oKXtubV90ZXN0X3Zhcj0nYSc7 bm1fdGVzdF9mdW5jKCk7cmV0dXJuKDApO30KKytfTFRfRU9GCisrCisrICBpZiB7IHsgZXZhbCBl Y2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIkYWNfY29tcGlsZVwiIjsg fSA+JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4m NQorKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgdGhlbgorKyAgICAjIE5vdyB0cnkgdG8gZ3Jh YiB0aGUgc3ltYm9scy4KKysgICAgbmxpc3Q9Y29uZnRlc3Qubm0KKysgICAgaWYgeyB7IGV2YWwg ZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJE5NIGNvbmZ0ZXN0LiRh Y19vYmpleHQgXHwgIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiBcPiAkbmxpc3RcIiI7 IH0gPiY1CisrICAoZXZhbCAkTk0gY29uZnRlc3QuJGFjX29iamV4dCBcfCAiJGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3BpcGUiIFw+ICRubGlzdCkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKKysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0gJiYgdGVzdCAtcyAiJG5saXN0IjsgdGhlbgor KyAgICAgICMgVHJ5IHNvcnRpbmcgYW5kIHVuaXF1aWZ5aW5nIHRoZSBvdXRwdXQuCisrICAgICAg aWYgc29ydCAiJG5saXN0IiB8IHVuaXEgPiAiJG5saXN0IlQ7IHRoZW4KKysJbXYgLWYgIiRubGlz dCJUICIkbmxpc3QiCisrICAgICAgZWxzZQorKwlybSAtZiAiJG5saXN0IlQKKysgICAgICBmaQor KworKyAgICAgICMgTWFrZSBzdXJlIHRoYXQgd2Ugc25hZ2dlZCBhbGwgdGhlIHN5bWJvbHMgd2Ug bmVlZC4KKysgICAgICBpZiAkR1JFUCAnIG5tX3Rlc3RfdmFyJCcgIiRubGlzdCIgPi9kZXYvbnVs bDsgdGhlbgorKwlpZiAkR1JFUCAnIG5tX3Rlc3RfZnVuYyQnICIkbmxpc3QiID4vZGV2L251bGw7 IHRoZW4KKysJICBjYXQgPDxfTFRfRU9GID4gY29uZnRlc3QuJGFjX2V4dAorKyNpZmRlZiBfX2Nw bHVzcGx1cworK2V4dGVybiAiQyIgeworKyNlbmRpZgorKworK19MVF9FT0YKKysJICAjIE5vdyBn ZW5lcmF0ZSB0aGUgc3ltYm9sIGZpbGUuCisrCSAgZXZhbCAiJGx0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3RvX2NkZWNsIicgPCAiJG5saXN0IiB8ICRHUkVQIC12IG1haW4gPj4gY29uZnRlc3QuJGFj X2V4dCcKKysKKysJICBjYXQgPDxfTFRfRU9GID4+IGNvbmZ0ZXN0LiRhY19leHQKKysKKysvKiBU aGUgbWFwcGluZyBiZXR3ZWVuIHN5bWJvbCBuYW1lcyBhbmQgc3ltYm9scy4gICovCisrY29uc3Qg c3RydWN0IHsKKysgIGNvbnN0IGNoYXIgKm5hbWU7CisrICB2b2lkICAgICAgICphZGRyZXNzOwor K30KKytsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9zeW1ib2xzW10gPQorK3sKKysgIHsgIkBQ Uk9HUkFNQCIsICh2b2lkICopIDAgfSwKKytfTFRfRU9GCisrCSAgJFNFRCAicy9eJHN5bWNvZGUk c3ltY29kZSogXCguKlwpIFwoLipcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvIiA8ICIk bmxpc3QiIHwgJEdSRVAgLXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0CisrCSAgY2F0IDw8XF9M VF9FT0YgPj4gY29uZnRlc3QuJGFjX2V4dAorKyAgezAsICh2b2lkICopIDB9CisrfTsKKysKKysv KiBUaGlzIHdvcmtzIGFyb3VuZCBhIHByb2JsZW0gaW4gRnJlZUJTRCBsaW5rZXIgKi8KKysjaWZk ZWYgRlJFRUJTRF9XT1JLQVJPVU5ECisrc3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9z ZXR1cCgpIHsKKysgIHJldHVybiBsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9zeW1ib2xzOwor K30KKysjZW5kaWYKKysKKysjaWZkZWYgX19jcGx1c3BsdXMKKyt9CisrI2VuZGlmCisrX0xUX0VP RgorKwkgICMgTm93IHRyeSBsaW5raW5nIHRoZSB0d28gZmlsZXMuCisrCSAgbXYgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdHN0bS4kYWNfb2JqZXh0CisrCSAgbHRfc2F2ZV9MSUJTPSIkTElCUyIK KysJICBsdF9zYXZlX0NGTEFHUz0iJENGTEFHUyIKKysJICBMSUJTPSJjb25mdHN0bS4kYWNfb2Jq ZXh0IgorKwkgIENGTEFHUz0iJENGTEFHUyRsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxh ZyIKKysJICBpZiB7IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5P fTogXCIkYWNfbGlua1wiIjsgfSA+JjUKKysgIChldmFsICRhY19saW5rKSAyPiY1CisrICBhY19z dGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9 ICRhY19zdGF0dXMiID4mNQorKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0JHthY19leGVleHR9OyB0aGVuCisrCSAgICBwaXBlX3dvcmtzPXllcworKwkgIGZpCisr CSAgTElCUz0iJGx0X3NhdmVfTElCUyIKKysJICBDRkxBR1M9IiRsdF9zYXZlX0NGTEFHUyIKKysJ ZWxzZQorKwkgIGVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfZnVuYyBpbiAkbmxpc3QiID4mNQor KwlmaQorKyAgICAgIGVsc2UKKysJZWNobyAiY2Fubm90IGZpbmQgbm1fdGVzdF92YXIgaW4gJG5s aXN0IiA+JjUKKysgICAgICBmaQorKyAgICBlbHNlCisrICAgICAgZWNobyAiY2Fubm90IHJ1biAk bHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSIgPiY1CisrICAgIGZpCisrICBlbHNlCisrICAg IGVjaG8gIiRwcm9nbmFtZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CisrICAgIGNhdCBjb25m dGVzdC4kYWNfZXh0ID4mNQorKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCogY29uZnRzdCoKKysK KysgICMgRG8gbm90IHVzZSB0aGUgZ2xvYmFsX3N5bWJvbF9waXBlIHVubGVzcyBpdCB3b3Jrcy4K KysgIGlmIHRlc3QgIiRwaXBlX3dvcmtzIiA9IHllczsgdGhlbgorKyAgICBicmVhaworKyAgZWxz ZQorKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPQorKyAgZmkKKytkb25lCisrCisr ZmkKKysKKytpZiB0ZXN0IC16ICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4K KysgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPQorK2ZpCisraWYgdGVzdCAteiAi JGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9f Y2RlY2wiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogZmFpbGVkIiA+JjUKKyskYXNfZWNobyAiZmFpbGVkIiA+JjY7IH0KKytlbHNlCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogb2siID4m NQorKyRhc19lY2hvICJvayIgPiY2OyB9CisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysjIENoZWNrIHdoZXRo ZXIgLS1lbmFibGUtbGlidG9vbC1sb2NrIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9s aWJ0b29sX2xvY2src2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgZW5hYmxldmFsPSRlbmFibGVfbGli dG9vbF9sb2NrOworK2ZpCisrCisrdGVzdCAieCRlbmFibGVfbGlidG9vbF9sb2NrIiAhPSB4bm8g JiYgZW5hYmxlX2xpYnRvb2xfbG9jaz15ZXMKKysKKysjIFNvbWUgZmxhZ3MgbmVlZCB0byBiZSBw cm9wYWdhdGVkIHRvIHRoZSBjb21waWxlciBvciBsaW5rZXIgZm9yIGdvb2QKKysjIGxpYnRvb2wg c3VwcG9ydC4KKytjYXNlICRob3N0IGluCisraWE2NC0qLWhwdXgqKQorKyAgIyBGaW5kIG91dCB3 aGljaCBBQkkgd2UgYXJlIHVzaW5nLgorKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19l eHQKKysgIGlmIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBcIiRhY19jb21waWxlXCIiOyB9ID4mNQorKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKKysg IGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB0aGVuCisr ICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysgICAgICAq RUxGLTMyKikKKysJSFBVWF9JQTY0X01PREU9IjMyIgorKwk7OworKyAgICAgICpFTEYtNjQqKQor KwlIUFVYX0lBNjRfTU9ERT0iNjQiCisrCTs7CisrICAgIGVzYWMKKysgIGZpCisrICBybSAtcmYg Y29uZnRlc3QqCisrICA7OworKyotKi1pcml4NiopCisrICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3 ZSBhcmUgdXNpbmcuCisrICBlY2hvICcjbGluZSAnJExJTkVOTycgImNvbmZpZ3VyZSInID4gY29u ZnRlc3QuJGFjX2V4dAorKyAgaWYgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5l bm8tJExJTkVOT306IFwiJGFjX2NvbXBpbGVcIiI7IH0gPiY1CisrICAoZXZhbCAkYWNfY29tcGls ZSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7 IH07IHRoZW4KKysgICAgaWYgdGVzdCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgor KyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysJKjMy LWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC1tZWxmMzJic21pcCIKKysJICA7OworKwkqTjMyKikK KysJICBMRD0iJHtMRC1sZH0gLW1lbGYzMmJtaXBuMzIiCisrCSAgOzsKKysJKjY0LWJpdCopCisr CSAgTEQ9IiR7TEQtbGR9IC1tZWxmNjRibWlwIgorKwk7OworKyAgICAgIGVzYWMKKysgICAgZWxz ZQorKyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysJ KjMyLWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC0zMiIKKysJICA7OworKwkqTjMyKikKKysJICBM RD0iJHtMRC1sZH0gLW4zMiIKKysJICA7OworKwkqNjQtYml0KikKKysJICBMRD0iJHtMRC1sZH0g LTY0IgorKwkgIDs7CisrICAgICAgZXNhYworKyAgICBmaQorKyAgZmkKKysgIHJtIC1yZiBjb25m dGVzdCoKKysgIDs7CisrCisreDg2XzY0LSprZnJlZWJzZCotZ251fHg4Nl82NC0qbGludXgqfHBw YyotKmxpbnV4Knxwb3dlcnBjKi0qbGludXgqfCBcCisrczM5MCotKmxpbnV4KnxzMzkwKi0qdHBm KnxzcGFyYyotKmxpbnV4KikKKysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4K KysgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0CisrICBpZiB7IHsgZXZhbCBlY2hv ICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIkYWNfY29tcGlsZVwiIjsgfSA+ JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQor KyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgdGhlbgorKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxl IGNvbmZ0ZXN0Lm9gIGluCisrICAgICAgKjMyLWJpdCopCisrCWNhc2UgJGhvc3QgaW4KKysJICB4 ODZfNjQtKmtmcmVlYnNkKi1nbnUpCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODZfZmJz ZCIKKysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0g ZWxmX2kzODYiCisrCSAgICA7OworKwkgIHBwYzY0LSpsaW51eCp8cG93ZXJwYzY0LSpsaW51eCop CisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmMzJwcGNsaW51eCIKKysJICAgIDs7CisrCSAgczM5 MHgtKmxpbnV4KikKKysJICAgIExEPSIke0xELWxkfSAtbSBlbGZfczM5MCIKKysJICAgIDs7Cisr CSAgc3BhcmM2NC0qbGludXgqKQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMyX3NwYXJjIgor KwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgICo2NC1iaXQqKQorKwljYXNlICRob3N0IGlu CisrCSAgeDg2XzY0LSprZnJlZWJzZCotZ251KQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94 ODZfNjRfZmJzZCIKKysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtM RC1sZH0gLW0gZWxmX3g4Nl82NCIKKysJICAgIDs7CisrCSAgcHBjKi0qbGludXgqfHBvd2VycGMq LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRwcGMiCisrCSAgICA7OworKwkg IHMzOTAqLSpsaW51eCp8czM5MCotKnRwZiopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRf czM5MCIKKysJICAgIDs7CisrCSAgc3BhcmMqLSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0g LW0gZWxmNjRfc3BhcmMiCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgIGVzYWMKKysgIGZp CisrICBybSAtcmYgY29uZnRlc3QqCisrICA7OworKworKyotKi1zY28zLjJ2NSopCisrICAjIE9u IFNDTyBPcGVuU2VydmVyIDUsIHdlIG5lZWQgLWJlbGYgdG8gZ2V0IGZ1bGwtZmVhdHVyZWQgYmlu YXJpZXMuCisrICBTQVZFX0NGTEFHUz0iJENGTEFHUyIKKysgIENGTEFHUz0iJENGTEFHUyAtYmVs ZiIKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg d2hldGhlciB0aGUgQyBjb21waWxlciBuZWVkcyAtYmVsZiIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciBuZWVkcyAtYmVsZi4uLiAiID4mNjsgfQorK2lm IHRlc3QgIiR7bHRfY3ZfY2NfbmVlZHNfYmVsZitzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2V4dD1jCisrYWNfY3BwPSckQ1BQ ICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRl c3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19j b21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrICAgICBjYXQgY29uZmRlZnMu aCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLwor KworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9G CisraWYgYWNfZm5fY190cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorKyAgbHRfY3ZfY2NfbmVl ZHNfYmVsZj15ZXMKKytlbHNlCisrICBsdF9jdl9jY19uZWVkc19iZWxmPW5vCisrZmkKKytybSAt ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRlc3Qk YWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgICAgIGFjX2V4dD1jCisrYWNfY3BwPSckQ1BQ ICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRl c3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19j b21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrZmkKKyt7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X2NjX25lZWRzX2JlbGYi ID4mNQorKyRhc19lY2hvICIkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgPiY2OyB9CisrICBpZiB0ZXN0 IHgiJGx0X2N2X2NjX25lZWRzX2JlbGYiICE9IHgieWVzIjsgdGhlbgorKyAgICAjIHRoaXMgaXMg cHJvYmFibHkgZ2NjIDIuOC4wLCBlZ2NzIDEuMCBvciBuZXdlcjsgbm8gbmVlZCBmb3IgLWJlbGYK KysgICAgQ0ZMQUdTPSIkU0FWRV9DRkxBR1MiCisrICBmaQorKyAgOzsKKytzcGFyYyotKnNvbGFy aXMqKQorKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgorKyAgZWNobyAnaW50 IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKKysgIGlmIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwi OiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhY19jb21waWxlXCIiOyB9ID4mNQorKyAgKGV2YWwg JGFjX2NvbXBpbGUpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0ICRhY19z dGF0dXMgPSAwOyB9OyB0aGVuCisrICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qub2Ag aW4KKysgICAgKjY0LWJpdCopCisrICAgICAgY2FzZSAkbHRfY3ZfcHJvZ19nbnVfbGQgaW4KKysg ICAgICB5ZXMqKSBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfc3BhcmMiIDs7CisrICAgICAgKikKKysJ aWYgJHtMRC1sZH0gLTY0IC1yIC1vIGNvbmZ0ZXN0Mi5vIGNvbmZ0ZXN0Lm8gPi9kZXYvbnVsbCAy PiYxOyB0aGVuCisrCSAgTEQ9IiR7TEQtbGR9IC02NCIKKysJZmkKKysJOzsKKysgICAgICBlc2Fj CisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7 CisrZXNhYworKworK25lZWRfbG9ja3M9IiRlbmFibGVfbGlidG9vbF9sb2NrIgorKworKworKyAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgICByaGFwc29keSogfCBkYXJ3aW4qKQorKyAgICBpZiB0ZXN0 IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQg b2YgIiR7YWNfdG9vbF9wcmVmaXh9ZHN5bXV0aWwiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5h bWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWRzeW11dGlsOyBhY193 b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4u LiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19EU1lNVVRJTCtzZXR9IiA9IHNldDsg dGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3Qg LW4gIiREU1lNVVRJTCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfRFNZTVVUSUw9IiREU1lNVVRJTCIg IyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJ RlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElG Uz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYg eyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX0RT WU1VVElMPSIke2FjX3Rvb2xfcHJlZml4fWRzeW11dGlsIgorKyAgICAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZl X0lGUworKworK2ZpCisrZmkKKytEU1lNVVRJTD0kYWNfY3ZfcHJvZ19EU1lNVVRJTAorK2lmIHRl c3QgLW4gIiREU1lNVVRJTCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiAkRFNZTVVUSUwiID4mNQorKyRhc19lY2hvICIkRFNZTVVUSUwi ID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2Zp CisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfRFNZTVVUSUwiOyB0aGVuCisrICBhY19jdF9EU1lN VVRJTD0kRFNZTVVUSUwKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZHN5bXV0aWwi LCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBkc3lt dXRpbDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Ig JGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfRFNZTVVU SUwrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfRFNZTVVUSUwiOyB0aGVuCisrICBhY19jdl9wcm9n X2FjX2N0X0RTWU1VVElMPSIkYWNfY3RfRFNZTVVUSUwiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRl IHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9S CisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0 IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9EU1lNVVRJTD0iZHN5bXV0aWwi CisrICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUK KysgIGRvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X0RTWU1VVElM PSRhY19jdl9wcm9nX2FjX2N0X0RTWU1VVElMCisraWYgdGVzdCAtbiAiJGFjX2N0X0RTWU1VVElM IjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6ICRhY19jdF9EU1lNVVRJTCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9EU1lNVVRJTCIgPiY2 OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrICBpZiB0ZXN0 ICJ4JGFjX2N0X0RTWU1VVElMIiA9IHg7IHRoZW4KKysgICAgRFNZTVVUSUw9IjoiCisrICBlbHNl CisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQor K3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcg Y3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBo b3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBE U1lNVVRJTD0kYWNfY3RfRFNZTVVUSUwKKysgIGZpCisrZWxzZQorKyAgRFNZTVVUSUw9IiRhY19j dl9wcm9nX0RTWU1VVElMIgorK2ZpCisrCisrICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZp eCI7IHRoZW4KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZp eH1ubWVkaXQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBk dW1teSAke2FjX3Rvb2xfcHJlZml4fW5tZWRpdDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2FjX2N2X3Byb2dfTk1FRElUK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJE5NRURJVCI7IHRoZW4KKysgIGFj X2N2X3Byb2dfTk1FRElUPSIkTk1FRElUIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBh c19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRh YmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9 OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfTk1FRElUPSIke2FjX3Rvb2xfcHJlZml4fW5tZWRpdCIK KysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQor KyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrTk1FRElUPSRhY19jdl9w cm9nX05NRURJVAorK2lmIHRlc3QgLW4gIiROTUVESVQiOyB0aGVuCisrICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJE5NRURJVCIgPiY1CisrJGFzX2Vj aG8gIiROTUVESVQiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytm aQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfTk1FRElUIjsgdGhlbgorKyAg YWNfY3RfTk1FRElUPSROTUVESVQKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAibm1l ZGl0Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkg bm1lZGl0OyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9OTUVE SVQrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfTk1FRElUIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19h Y19jdF9OTUVESVQ9IiRhY19jdF9OTUVESVQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9y IGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIk YXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1 dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7 IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9OTUVESVQ9Im5tZWRpdCIKKysgICAgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQor K0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3RfTk1FRElUPSRhY19jdl9wcm9n X2FjX2N0X05NRURJVAorK2lmIHRlc3QgLW4gIiRhY19jdF9OTUVESVQiOyB0aGVuCisrICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X05NRURJ VCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9OTUVESVQiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFz X2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9OTUVESVQiID0g eDsgdGhlbgorKyAgICBOTUVESVQ9IjoiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBp bGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVk IHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2lu ZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNf dG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBOTUVESVQ9JGFjX2N0X05NRURJVAorKyAg ZmkKKytlbHNlCisrICBOTUVESVQ9IiRhY19jdl9wcm9nX05NRURJVCIKKytmaQorKworKyAgICBp ZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0 IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9bGlwbyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0g bmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9bGlwbzsgYWNfd29y ZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfTElQTytzZXR9IiA9IHNldDsgdGhlbiA6 CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRM SVBPIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19MSVBPPSIkTElQTyIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB UkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX0xJUE89IiR7YWNfdG9vbF9wcmVm aXh9bGlwbyIKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91 bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZp CisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrTElQTz0k YWNfY3ZfcHJvZ19MSVBPCisraWYgdGVzdCAtbiAiJExJUE8iOyB0aGVuCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJExJUE8iID4mNQorKyRhc19l Y2hvICIkTElQTyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2Zp CisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19MSVBPIjsgdGhlbgorKyAgYWNf Y3RfTElQTz0kTElQTworKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJsaXBvIiwgc28g aXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgbGlwbzsgYWNf d29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQu Li4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfTElQTytzZXR9IiA9IHNl dDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRl c3QgLW4gIiRhY19jdF9MSVBPIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9MSVBPPSIkYWNf Y3RfTElQTyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisr ZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u CisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNf dGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19j dl9wcm9nX2FjX2N0X0xJUE89ImxpcG8iCisrICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAg ICBicmVhayAyCisrICBmaQorK2RvbmUKKysgIGRvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisr ZmkKKytmaQorK2FjX2N0X0xJUE89JGFjX2N2X3Byb2dfYWNfY3RfTElQTworK2lmIHRlc3QgLW4g IiRhY19jdF9MSVBPIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6ICRhY19jdF9MSVBPIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X0xJUE8i ID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYg dGVzdCAieCRhY19jdF9MSVBPIiA9IHg7IHRoZW4KKysgICAgTElQTz0iOiIKKysgIGVsc2UKKysg ICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczopCisreyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiB1c2luZyBjcm9z cyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQorKyRhc19lY2hvICIk YXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3Qg dHJpcGxldCIgPiYyO30KKythY190b29sX3dhcm5lZD15ZXMgOzsKKytlc2FjCisrICAgIExJUE89 JGFjX2N0X0xJUE8KKysgIGZpCisrZWxzZQorKyAgTElQTz0iJGFjX2N2X3Byb2dfTElQTyIKKytm aQorKworKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJh Y3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9b3Rvb2wiLCBzbyBpdCBjYW4g YmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4 fW90b29sOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19PVE9PTCtzZXR9 IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysg IGlmIHRlc3QgLW4gIiRPVE9PTCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfT1RPT0w9IiRPVE9PTCIg IyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJ RlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElG Uz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYg eyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX09U T09MPSIke2FjX3Rvb2xfcHJlZml4fW90b29sIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUK KysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUwor KworK2ZpCisrZmkKKytPVE9PTD0kYWNfY3ZfcHJvZ19PVE9PTAorK2lmIHRlc3QgLW4gIiRPVE9P TCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiAkT1RPT0wiID4mNQorKyRhc19lY2hvICIkT1RPT0wiID4mNjsgfQorK2Vsc2UKKysgIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Cisr JGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFjX2N2 X3Byb2dfT1RPT0wiOyB0aGVuCisrICBhY19jdF9PVE9PTD0kT1RPT0wKKysgICMgRXh0cmFjdCB0 aGUgZmlyc3Qgd29yZCBvZiAib3Rvb2wiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmdzLgorK3NldCBkdW1teSBvdG9vbDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2Fj X2N2X3Byb2dfYWNfY3RfT1RPT0wrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfT1RPT0wiOyB0aGVu CisrICBhY19jdl9wcm9nX2FjX2N0X09UT09MPSIkYWNfY3RfT1RPT0wiICMgTGV0IHRoZSB1c2Vy IG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhf U0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZT CisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQg aW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9PVE9PTD0ib3Rv b2wiCisrICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2Rv bmUKKysgIGRvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X09UT09M PSRhY19jdl9wcm9nX2FjX2N0X09UT09MCisraWYgdGVzdCAtbiAiJGFjX2N0X09UT09MIjsgdGhl bgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRh Y19jdF9PVE9PTCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9PVE9PTCIgPiY2OyB9CisrZWxzZQor KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+ JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X09U T09MIiA9IHg7IHRoZW4KKysgICAgT1RPT0w9IjoiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3Nz X2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHBy ZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5H OiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9 CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBPVE9PTD0kYWNfY3RfT1RPT0wK KysgIGZpCisrZWxzZQorKyAgT1RPT0w9IiRhY19jdl9wcm9nX09UT09MIgorK2ZpCisrCisrICAg IGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKysgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1vdG9vbDY0Iiwgc28gaXQgY2FuIGJlIGEgcHJv Z3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1vdG9vbDY0 OyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNf d29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19PVE9PTDY0K3NldH0iID0g c2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYg dGVzdCAtbiAiJE9UT09MNjQiOyB0aGVuCisrICBhY19jdl9wcm9nX09UT09MNjQ9IiRPVE9PTDY0 IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAg SUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAg Zm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBp ZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3gg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2df T1RPT0w2ND0iJHthY190b29sX3ByZWZpeH1vdG9vbDY0IgorKyAgICAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZl X0lGUworKworK2ZpCisrZmkKKytPVE9PTDY0PSRhY19jdl9wcm9nX09UT09MNjQKKytpZiB0ZXN0 IC1uICIkT1RPT0w2NCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogcmVzdWx0OiAkT1RPT0w2NCIgPiY1CisrJGFzX2VjaG8gIiRPVE9PTDY0IiA+JjY7 IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytmaQorK2lm IHRlc3QgLXogIiRhY19jdl9wcm9nX09UT09MNjQiOyB0aGVuCisrICBhY19jdF9PVE9PTDY0PSRP VE9PTDY0CisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIm90b29sNjQiLCBzbyBpdCBj YW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBvdG9vbDY0OyBhY193 b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4u LiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9PVE9PTDY0K3NldH0iID0g c2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYg dGVzdCAtbiAiJGFjX2N0X09UT09MNjQiOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X09UT09M NjQ9IiRhY19jdF9PVE9PTDY0IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytl bHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIg aW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIg JiYgYXNfZGlyPS4KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu CisrICAgIGFjX2N2X3Byb2dfYWNfY3RfT1RPT0w2ND0ib3Rvb2w2NCIKKysgICAgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lGUz0k YXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3RfT1RPT0w2ND0kYWNfY3ZfcHJvZ19hY19j dF9PVE9PTDY0CisraWYgdGVzdCAtbiAiJGFjX2N0X09UT09MNjQiOyB0aGVuCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X09UT09MNjQi ID4mNQorKyRhc19lY2hvICIkYWNfY3RfT1RPT0w2NCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNf ZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X09UT09MNjQiID0g eDsgdGhlbgorKyAgICBPVE9PTDY0PSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21w aWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhl ZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNp bmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2Fj X3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgT1RPT0w2ND0kYWNfY3RfT1RPT0w2NAor KyAgZmkKKytlbHNlCisrICBPVE9PTDY0PSIkYWNfY3ZfcHJvZ19PVE9PTDY0IgorK2ZpCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgZm9yIC1zaW5nbGVfbW9kdWxlIGxpbmtlciBmbGFnIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3IgLXNpbmdsZV9tb2R1bGUgbGlua2VyIGZsYWcuLi4gIiA+ JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Qrc2V0fSIgPSBzZXQ7 IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9h cHBsZV9jY19zaW5nbGVfbW9kPW5vCisrICAgICAgaWYgdGVzdCAteiAiJHtMVF9NVUxUSV9NT0RV TEV9IjsgdGhlbgorKwkjIEJ5IGRlZmF1bHQgd2Ugd2lsbCBhZGQgdGhlIC1zaW5nbGVfbW9kdWxl IGZsYWcuIFlvdSBjYW4gb3ZlcnJpZGUKKysJIyBieSBlaXRoZXIgc2V0dGluZyB0aGUgZW52aXJv bm1lbnQgdmFyaWFibGUgTFRfTVVMVElfTU9EVUxFCisrCSMgbm9uLWVtcHR5IGF0IGNvbmZpZ3Vy ZSB0aW1lLCBvciBieSBhZGRpbmcgLW11bHRpX21vZHVsZSB0byB0aGUKKysJIyBsaW5rIGZsYWdz LgorKwlybSAtcmYgbGliY29uZnRlc3QuZHlsaWIqCisrCWVjaG8gImludCBmb28odm9pZCl7cmV0 dXJuIDE7fSIgPiBjb25mdGVzdC5jCisrCWVjaG8gIiRMVENDICRMVENGTEFHUyAkTERGTEFHUyAt byBsaWJjb25mdGVzdC5keWxpYiBcCisrLWR5bmFtaWNsaWIgLVdsLC1zaW5nbGVfbW9kdWxlIGNv bmZ0ZXN0LmMiID4mNQorKwkkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29uZnRlc3Qu ZHlsaWIgXAorKwkgIC1keW5hbWljbGliIC1XbCwtc2luZ2xlX21vZHVsZSBjb25mdGVzdC5jIDI+ Y29uZnRlc3QuZXJyCisrICAgICAgICBfbHRfcmVzdWx0PSQ/CisrCWlmIHRlc3QgLWYgbGliY29u ZnRlc3QuZHlsaWIgJiYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyciAmJiB0ZXN0ICRfbHRfcmVzdWx0 ID0gMDsgdGhlbgorKwkgIGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Q9eWVzCisrCWVsc2UKKysJ ICBjYXQgY29uZnRlc3QuZXJyID4mNQorKwlmaQorKwlybSAtcmYgbGliY29uZnRlc3QuZHlsaWIq CisrCXJtIC1mIGNvbmZ0ZXN0LioKKysgICAgICBmaQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9k IiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiID4mNjsgfQorKyAg ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAt ZXhwb3J0ZWRfc3ltYm9sc19saXN0IGxpbmtlciBmbGFnIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyBmb3IgLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5rZXIgZmxhZy4uLiAiID4mNjsgfQor K2lmIHRlc3QgIiR7bHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0K3NldH0iID0gc2V0OyB0 aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfbGRf ZXhwb3J0ZWRfc3ltYm9sc19saXN0PW5vCisrICAgICAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCisr ICAgICAgZWNobyAiX21haW4iID4gY29uZnRlc3Quc3ltCisrICAgICAgTERGTEFHUz0iJExERkxB R1MgLVdsLC1leHBvcnRlZF9zeW1ib2xzX2xpc3QsY29uZnRlc3Quc3ltIgorKyAgICAgIGNhdCBj b25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMu aC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30K KytfQUNFT0YKKytpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CisrICBsdF9j dl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9eWVzCisrZWxzZQorKyAgbHRfY3ZfbGRfZXhwb3J0 ZWRfc3ltYm9sc19saXN0PW5vCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQK KysJTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19s aXN0IiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCIgPiY2 OyB9CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgZm9yIC1mb3JjZV9sb2FkIGxpbmtlciBmbGFnIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgLWZvcmNlX2xvYWQgbGlua2VyIGZsYWcuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0 X2N2X2xkX2ZvcmNlX2xvYWQrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9sZF9mb3JjZV9sb2FkPW5vCisrICAgICAgY2F0 ID4gY29uZnRlc3QuYyA8PCBfTFRfRU9GCisraW50IGZvcmNlZF9sb2FkZWQoKSB7IHJldHVybiAy O30KKytfTFRfRU9GCisrICAgICAgZWNobyAiJExUQ0MgJExUQ0ZMQUdTIC1jIC1vIGNvbmZ0ZXN0 Lm8gY29uZnRlc3QuYyIgPiY1CisrICAgICAgJExUQ0MgJExUQ0ZMQUdTIC1jIC1vIGNvbmZ0ZXN0 Lm8gY29uZnRlc3QuYyAyPiY1CisrICAgICAgZWNobyAiJEFSIGNydSBsaWJjb25mdGVzdC5hIGNv bmZ0ZXN0Lm8iID4mNQorKyAgICAgICRBUiBjcnUgbGliY29uZnRlc3QuYSBjb25mdGVzdC5vIDI+ JjUKKysgICAgICBlY2hvICIkUkFOTElCIGxpYmNvbmZ0ZXN0LmEiID4mNQorKyAgICAgICRSQU5M SUIgbGliY29uZnRlc3QuYSAyPiY1CisrICAgICAgY2F0ID4gY29uZnRlc3QuYyA8PCBfTFRfRU9G CisraW50IG1haW4oKSB7IHJldHVybiAwO30KKytfTFRfRU9GCisrICAgICAgZWNobyAiJExUQ0Mg JExUQ0ZMQUdTICRMREZMQUdTIC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgLVdsLC1mb3JjZV9sb2Fk LC4vbGliY29uZnRlc3QuYSIgPiY1CisrICAgICAgJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdTIC1v IGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgLVdsLC1mb3JjZV9sb2FkLC4vbGliY29uZnRlc3QuYSAyPmNv bmZ0ZXN0LmVycgorKyAgICAgIF9sdF9yZXN1bHQ9JD8KKysgICAgICBpZiB0ZXN0IC1mIGNvbmZ0 ZXN0ICYmIHRlc3QgISAtcyBjb25mdGVzdC5lcnIgJiYgdGVzdCAkX2x0X3Jlc3VsdCA9IDAgJiYg JEdSRVAgZm9yY2VkX2xvYWQgY29uZnRlc3QgMj4mMSA+L2Rldi9udWxsOyB0aGVuCisrCWx0X2N2 X2xkX2ZvcmNlX2xvYWQ9eWVzCisrICAgICAgZWxzZQorKwljYXQgY29uZnRlc3QuZXJyID4mNQor KyAgICAgIGZpCisrICAgICAgICBybSAtZiBjb25mdGVzdC5lcnIgbGliY29uZnRlc3QuYSBjb25m dGVzdCBjb25mdGVzdC5jCisrICAgICAgICBybSAtcmYgY29uZnRlc3QuZFNZTQorKworK2ZpCisr eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9s ZF9mb3JjZV9sb2FkIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X2xkX2ZvcmNlX2xvYWQiID4mNjsg fQorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIHJoYXBzb2R5KiB8IGRhcndpbjEuWzAxMl0p CisrICAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfXN1 cHByZXNzJyA7OworKyAgICBkYXJ3aW4xLiopCisrICAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmlu ZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7 OworKyAgICBkYXJ3aW4qKSAjIGRhcndpbiA1Lnggb24KKysgICAgICAjIGlmIHJ1bm5pbmcgb24g MTAuNSBvciBsYXRlciwgdGhlIGRlcGxveW1lbnQgdGFyZ2V0IGRlZmF1bHRzCisrICAgICAgIyB0 byB0aGUgT1MgdmVyc2lvbiwgaWYgb24geDg2LCBhbmQgMTAuNCwgdGhlIGRlcGxveW1lbnQKKysg ICAgICAjIHRhcmdldCBkZWZhdWx0cyB0byAxMC40LiBEb24ndCB5b3UgbG92ZSBpdD8KKysgICAg ICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VULTEwLjB9LCRob3N0IGluCisrCTEwLjAs Kjg2Ki1kYXJ3aW44KnwxMC4wLCotZGFyd2luWzkxXSopCisrCSAgX2x0X2Rhcl9hbGxvd191bmRl ZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJyA7OworKwkxMC5bMDEy XSopCisrCSAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7 d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OworKwkxMC4qKQorKwkgIF9sdF9kYXJfYWxs b3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1keW5hbWljX2xvb2t1cCcgOzsKKysg ICAgICBlc2FjCisrICAgIDs7CisrICBlc2FjCisrICAgIGlmIHRlc3QgIiRsdF9jdl9hcHBsZV9j Y19zaW5nbGVfbW9kIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgX2x0X2Rhcl9zaW5nbGVfbW9kPSck c2luZ2xlX21vZHVsZScKKysgICAgZmkKKysgICAgaWYgdGVzdCAiJGx0X2N2X2xkX2V4cG9ydGVk X3N5bWJvbHNfbGlzdCIgPSAieWVzIjsgdGhlbgorKyAgICAgIF9sdF9kYXJfZXhwb3J0X3N5bXM9 JyAke3dsfS1leHBvcnRlZF9zeW1ib2xzX2xpc3QsJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1z eW1ib2xzLmV4cHN5bScKKysgICAgZWxzZQorKyAgICAgIF9sdF9kYXJfZXhwb3J0X3N5bXM9J34k Tk1FRElUIC1zICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9 JworKyAgICBmaQorKyAgICBpZiB0ZXN0ICIkRFNZTVVUSUwiICE9ICI6IiAmJiB0ZXN0ICIkbHRf Y3ZfbGRfZm9yY2VfbG9hZCIgPSAibm8iOyB0aGVuCisrICAgICAgX2x0X2RzeW11dGlsPSd+JERT WU1VVElMICRsaWIgfHwgOicKKysgICAgZWxzZQorKyAgICAgIF9sdF9kc3ltdXRpbD0KKysgICAg ZmkKKysgICAgOzsKKysgIGVzYWMKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxB R1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQ RkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJf Z251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yLi4uICIg PiY2OyB9CisrIyBPbiBTdW5zLCBzb21ldGltZXMgJENQUCBuYW1lcyBhIGRpcmVjdG9yeS4KKytp ZiB0ZXN0IC1uICIkQ1BQIiAmJiB0ZXN0IC1kICIkQ1BQIjsgdGhlbgorKyAgQ1BQPQorK2ZpCisr aWYgdGVzdCAteiAiJENQUCI7IHRoZW4KKysgIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DUFArc2V0 fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1c2UgQ1BQIG5lZWRzIHRvIGJlIGV4cGFuZGVkCisr ICAgIGZvciBDUFAgaW4gIiRDQyAtRSIgIiRDQyAtRSAtdHJhZGl0aW9uYWwtY3BwIiAiL2xpYi9j cHAiCisrICAgIGRvCisrICAgICAgYWNfcHJlcHJvY19vaz1mYWxzZQorK2ZvciBhY19jX3ByZXBy b2Nfd2Fybl9mbGFnIGluICcnIHllcworK2RvCisrICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQg Y29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCisrICAjIHdpdGggYSBmcmVzaCBj cm9zcy1jb21waWxlciB3b3Jrcy4KKysgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5o PiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBl dmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCisrICAjIE9uIHRoZSBOZVhULCBjYyAtRSBy dW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAorKyAgIyBub3QganVz dCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2Uu CisrICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5k IGNvbmZkZWZzLmguICAqLworKyNpZmRlZiBfX1NURENfXworKyMgaW5jbHVkZSA8bGltaXRzLmg+ CisrI2Vsc2UKKysjIGluY2x1ZGUgPGFzc2VydC5oPgorKyNlbmRpZgorKwkJICAgICBTeW50YXgg ZXJyb3IKKytfQUNFT0YKKytpZiBhY19mbl9jX3RyeV9jcHAgIiRMSU5FTk8iOyB0aGVuIDoKKysK KytlbHNlCisrICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCisrY29udGludWUKKytm aQorK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisrICAjIE9LLCB3b3Jr cyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycwor KyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KKysgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNF T0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUg PGFjX25vbmV4aXN0ZW50Lmg+CisrX0FDRU9GCisraWYgYWNfZm5fY190cnlfY3BwICIkTElORU5P IjsgdGhlbiA6CisrICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgorK2NvbnRp bnVlCisrZWxzZQorKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KKythY19wcmVwcm9jX29rPToKKyti cmVhaworK2ZpCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKytkb25l CisrIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNv ZGUgd2FzIHNraXBwZWQuCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKytp ZiAkYWNfcHJlcHJvY19vazsgdGhlbiA6CisrICBicmVhaworK2ZpCisrCisrICAgIGRvbmUKKysg ICAgYWNfY3ZfcHJvZ19DUFA9JENQUAorKworK2ZpCisrICBDUFA9JGFjX2N2X3Byb2dfQ1BQCisr ZWxzZQorKyAgYWNfY3ZfcHJvZ19DUFA9JENQUAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRDUFAiID4mNQorKyRhc19lY2hvICIkQ1BQIiA+ JjY7IH0KKythY19wcmVwcm9jX29rPWZhbHNlCisrZm9yIGFjX2NfcHJlcHJvY193YXJuX2ZsYWcg aW4gJycgeWVzCisrZG8KKysgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdj Yywgc28gY29uZmlndXJpbmcgZ2xpYmMKKysgICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVy IHdvcmtzLgorKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19f IGlzIGRlZmluZWQsIHNpbmNlCisrICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0 YW5kaW5nIGNvbXBpbGVycy4KKysgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUg dGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCisrICAjIG5vdCBqdXN0IHRocm91Z2ggY3Bw LiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KKysgIGNhdCBjb25m ZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4g ICovCisrI2lmZGVmIF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1pdHMuaD4KKysjZWxzZQorKyMg aW5jbHVkZSA8YXNzZXJ0Lmg+CisrI2VuZGlmCisrCQkgICAgIFN5bnRheCBlcnJvcgorK19BQ0VP RgorK2lmIGFjX2ZuX2NfdHJ5X2NwcCAiJExJTkVOTyI7IHRoZW4gOgorKworK2Vsc2UKKysgICMg QnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2ZpCisrcm0gLWYgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2Fz ZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCisrICAjIGNhbiBiZSBk ZXRlY3RlZCBhbmQgaG93LgorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3Qu JGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8YWNfbm9uZXhpc3Rl bnQuaD4KKytfQUNFT0YKKytpZiBhY19mbl9jX3RyeV9jcHAgIiRMSU5FTk8iOyB0aGVuIDoKKysg ICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCisrY29udGludWUKKytlbHNlCisr ICAjIFBhc3NlcyBib3RoIHRlc3RzLgorK2FjX3ByZXByb2Nfb2s9OgorK2JyZWFrCisrZmkKKyty bSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworK2RvbmUKKysjIEJlY2F1c2Ug b2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBl ZC4KKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorK2lmICRhY19wcmVwcm9j X29rOyB0aGVuIDoKKysKKytlbHNlCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CisrYXNfZm5fZXJyb3IgJD8gIkMgcHJlcHJv Y2Vzc29yIFwiJENQUFwiIGZhaWxzIHNhbml0eSBjaGVjaworK1NlZSBcYGNvbmZpZy5sb2cnIGZv ciBtb3JlIGRldGFpbHMiICIkTElORU5PIiA1OyB9CisrZmkKKysKKythY19leHQ9YworK2FjX2Nw cD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVl eHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn CisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworKworK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFk ZXIgZmlsZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZp bGVzLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3RkYytzZXR9IiA9IHNl dDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCBj b25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMu aC4gICovCisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpbmNsdWRlIDxzdGRhcmcuaD4KKysjaW5j bHVkZSA8c3RyaW5nLmg+CisrI2luY2x1ZGUgPGZsb2F0Lmg+CisrCisraW50CisrbWFpbiAoKQor K3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jX3RyeV9j b21waWxlICIkTElORU5PIjsgdGhlbiA6CisrICBhY19jdl9oZWFkZXJfc3RkYz15ZXMKKytlbHNl CisrICBhY19jdl9oZWFkZXJfc3RkYz1ubworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIg Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCisraWYgdGVzdCAkYWNfY3Zf aGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKysgICMgU3VuT1MgNC54IHN0cmluZy5oIGRvZXMgbm90 IGRlY2xhcmUgbWVtKiwgY29udHJhcnkgdG8gQU5TSS4KKysgIGNhdCBjb25mZGVmcy5oIC0gPDxf QUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1 ZGUgPHN0cmluZy5oPgorKworK19BQ0VPRgorK2lmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRh Y19leHQiKSAyPiY1IHwKKysgICRFR1JFUCAibWVtY2hyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4g OgorKworK2Vsc2UKKysgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBjb25mdGVz dCoKKysKKytmaQorKworK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisr ICAjIElTQyAyLjAuMiBzdGRsaWIuaCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRv IEFOU0kuCisrICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Cisr LyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysKKytfQUNFT0YK KytpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8CisrICAkRUdSRVAg ImZyZWUiID4vZGV2L251bGwgMj4mMTsgdGhlbiA6CisrCisrZWxzZQorKyAgYWNfY3ZfaGVhZGVy X3N0ZGM9bm8KKytmaQorK3JtIC1mIGNvbmZ0ZXN0KgorKworK2ZpCisrCisraWYgdGVzdCAkYWNf Y3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKysgICMgL2Jpbi9jYyBpbiBJcml4LTQuMC41IGdl dHMgbm9uLUFOU0kgY3R5cGUgbWFjcm9zIHVubGVzcyB1c2luZyAtYW5zaS4KKysgIGlmIHRlc3Qg IiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKKysgIDoKKytlbHNlCisrICBjYXQgY29u ZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmgu ICAqLworKyNpbmNsdWRlIDxjdHlwZS5oPgorKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysjaWYgKCgn ICcgJiAweDBGRikgPT0gMHgwMjApCisrIyBkZWZpbmUgSVNMT1dFUihjKSAoJ2EnIDw9IChjKSAm JiAoYykgPD0gJ3onKQorKyMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAnQScgKyAo KGMpIC0gJ2EnKSA6IChjKSkKKysjZWxzZQorKyMgZGVmaW5lIElTTE9XRVIoYykgXAorKwkJICAg KCgnYScgPD0gKGMpICYmIChjKSA8PSAnaScpIFwKKysJCSAgICAgfHwgKCdqJyA8PSAoYykgJiYg KGMpIDw9ICdyJykgXAorKwkJICAgICB8fCAoJ3MnIDw9IChjKSAmJiAoYykgPD0gJ3onKSkKKysj IGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VSKGMpID8gKChjKSB8IDB4NDApIDogKGMpKQorKyNl bmRpZgorKworKyNkZWZpbmUgWE9SKGUsIGYpICgoKGUpICYmICEoZikpIHx8ICghKGUpICYmIChm KSkpCisraW50CisrbWFpbiAoKQorK3sKKysgIGludCBpOworKyAgZm9yIChpID0gMDsgaSA8IDI1 NjsgaSsrKQorKyAgICBpZiAoWE9SIChpc2xvd2VyIChpKSwgSVNMT1dFUiAoaSkpCisrCXx8IHRv dXBwZXIgKGkpICE9IFRPVVBQRVIgKGkpKQorKyAgICAgIHJldHVybiAyOworKyAgcmV0dXJuIDA7 CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2NfdHJ5X3J1biAiJExJTkVOTyI7IHRoZW4gOgorKwor K2Vsc2UKKysgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBjb3JlICouY29yZSBj b3JlLmNvbmZ0ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBcCisrICBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LmJlYW0gY29uZnRlc3QuJGFjX2V4dAorK2ZpCisr CisrZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiAkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfaGVhZGVyX3N0 ZGMiID4mNjsgfQorK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisrCisr JGFzX2VjaG8gIiNkZWZpbmUgU1REQ19IRUFERVJTIDEiID4+Y29uZmRlZnMuaAorKworK2ZpCisr CisrIyBPbiBJUklYIDUuMywgc3lzL3R5cGVzIGFuZCBpbnR0eXBlcy5oIGFyZSBjb25mbGljdGlu Zy4KKytmb3IgYWNfaGVhZGVyIGluIHN5cy90eXBlcy5oIHN5cy9zdGF0Lmggc3RkbGliLmggc3Ry aW5nLmggbWVtb3J5Lmggc3RyaW5ncy5oIFwKKysJCSAgaW50dHlwZXMuaCBzdGRpbnQuaCB1bmlz dGQuaAorK2RvIDoKKysgIGFzX2FjX0hlYWRlcj1gJGFzX2VjaG8gImFjX2N2X2hlYWRlcl8kYWNf aGVhZGVyIiB8ICRhc190cl9zaGAKKythY19mbl9jX2NoZWNrX2hlYWRlcl9jb21waWxlICIkTElO RU5PIiAiJGFjX2hlYWRlciIgIiRhc19hY19IZWFkZXIiICIkYWNfaW5jbHVkZXNfZGVmYXVsdAor KyIKKytpZiBldmFsIHRlc3QgXCJ4XCQiJGFzX2FjX0hlYWRlciJcIiA9IHgieWVzIjsgdGhlbiA6 CisrICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBgJGFzX2VjaG8gIkhBVkVf JGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCisrX0FDRU9GCisrCisrZmkKKysKKytkb25lCisr CisrCisrZm9yIGFjX2hlYWRlciBpbiBkbGZjbi5oCisrZG8gOgorKyAgYWNfZm5fY19jaGVja19o ZWFkZXJfY29tcGlsZSAiJExJTkVOTyIgImRsZmNuLmgiICJhY19jdl9oZWFkZXJfZGxmY25faCIg IiRhY19pbmNsdWRlc19kZWZhdWx0CisrIgorK2lmIHRlc3QgIngkYWNfY3ZfaGVhZGVyX2RsZmNu X2giID0geCIieWVzOyB0aGVuIDoKKysgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKysjZGVm aW5lIEhBVkVfRExGQ05fSCAxCisrX0FDRU9GCisrCisrZmkKKysKKytkb25lCisrCisrCisrCisr CisrCisrCisrIyBTZXQgb3B0aW9ucworKworKworKworKyAgICAgICAgZW5hYmxlX2Rsb3Blbj1u bworKworKworKyAgZW5hYmxlX3dpbjMyX2RsbD1ubworKworKworKworKworKworKyMgQ2hlY2sg d2hldGhlciAtLXdpdGgtcGljIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfcGljK3NldH0i ID0gc2V0OyB0aGVuIDoKKysgIHdpdGh2YWw9JHdpdGhfcGljOyBwaWNfbW9kZT0iJHdpdGh2YWwi CisrZWxzZQorKyAgcGljX21vZGU9ZGVmYXVsdAorK2ZpCisrCisrCisrdGVzdCAteiAiJHBpY19t b2RlIiAmJiBwaWNfbW9kZT1kZWZhdWx0CisrCisrCisrCisrCisrCisrCisrCisrICAjIENoZWNr IHdoZXRoZXIgLS1lbmFibGUtZmFzdC1pbnN0YWxsIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2Vu YWJsZV9mYXN0X2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgZW5hYmxldmFsPSRlbmFi bGVfZmFzdF9pbnN0YWxsOyBwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2 YWwgaW4KKysgICAgeWVzKSBlbmFibGVfZmFzdF9pbnN0YWxsPXllcyA7OworKyAgICBubykgZW5h YmxlX2Zhc3RfaW5zdGFsbD1ubyA7OworKyAgICAqKQorKyAgICAgIGVuYWJsZV9mYXN0X2luc3Rh bGw9bm8KKysgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwg dGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJ RlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFs OyBkbworKwlJRlM9IiRsdF9zYXZlX2lmcyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRo ZW4KKysJICBlbmFibGVfZmFzdF9pbnN0YWxsPXllcworKwlmaQorKyAgICAgIGRvbmUKKysgICAg ICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICA7OworKyAgICBlc2FjCisrZWxzZQorKyAgZW5h YmxlX2Zhc3RfaW5zdGFsbD15ZXMKKytmaQorKworKworKworKworKworKworKworKworKworKwor KworKyMgVGhpcyBjYW4gYmUgdXNlZCB0byByZWJ1aWxkIGxpYnRvb2wgd2hlbiBuZWVkZWQKKytM SUJUT09MX0RFUFM9IiRsdG1haW4iCisrCisrIyBBbHdheXMgdXNlIG91ciBvd24gbGlidG9vbC4K KytMSUJUT09MPSckKFNIRUxMKSAkKHRvcF9idWlsZGRpcikvbGlidG9vbCcKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKyt0ZXN0IC16ICIkTE5fUyIgJiYgTE5fUz0ibG4gLXMiCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisraWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitz ZXR9IiA7IHRoZW4KKysgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorK2ZpCisrCisreyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Igb2JqZGlyIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyBmb3Igb2JqZGlyLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHtsdF9jdl9vYmpkaXIrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBybSAtZiAubGlicyAyPi9kZXYvbnVsbAorK21rZGlyIC5saWJz IDI+L2Rldi9udWxsCisraWYgdGVzdCAtZCAubGliczsgdGhlbgorKyAgbHRfY3Zfb2JqZGlyPS5s aWJzCisrZWxzZQorKyAgIyBNUy1ET1MgZG9lcyBub3QgYWxsb3cgZmlsZW5hbWVzIHRoYXQgYmVn aW4gd2l0aCBhIGRvdC4KKysgIGx0X2N2X29iamRpcj1fbGlicworK2ZpCisrcm1kaXIgLmxpYnMg Mj4vZGV2L251bGwKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiAkbHRfY3Zfb2JqZGlyIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X29iamRpciIg PiY2OyB9Cisrb2JqZGlyPSRsdF9jdl9vYmpkaXIKKysKKysKKysKKysKKysKKytjYXQgPj5jb25m ZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBMVF9PQkpESVIgIiRsdF9jdl9vYmpkaXIvIgorK19B Q0VPRgorKworKworKworKworK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgzKikKKysgICMgQUlYIHNv bWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dyYW0uICBGb3Ig c29tZQorKyAgIyByZWFzb24sIGlmIHdlIHNldCB0aGUgQ09MTEVDVF9OQU1FUyBlbnZpcm9ubWVu dCB2YXJpYWJsZSwgdGhlIHByb2JsZW1zCisrICAjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2Uu CisrICBpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRoZW4KKysgICAg Q09MTEVDVF9OQU1FUz0KKysgICAgZXhwb3J0IENPTExFQ1RfTkFNRVMKKysgIGZpCisrICA7Owor K2VzYWMKKysKKysjIEdsb2JhbCB2YXJpYWJsZXM6Cisrb2ZpbGU9bGlidG9vbAorK2Nhbl9idWls ZF9zaGFyZWQ9eWVzCisrCisrIyBBbGwga25vd24gbGlua2VycyByZXF1aXJlIGEgYC5hJyBhcmNo aXZlIGZvciBzdGF0aWMgbGlua2luZyAoZXhjZXB0IE1TVkMsCisrIyB3aGljaCBuZWVkcyAnLmxp YicpLgorK2xpYmV4dD1hCisrCisrd2l0aF9nbnVfbGQ9IiRsdF9jdl9wcm9nX2dudV9sZCIKKysK KytvbGRfQ0M9IiRDQyIKKytvbGRfQ0ZMQUdTPSIkQ0ZMQUdTIgorKworKyMgU2V0IHNhbmUgZGVm YXVsdHMgZm9yIHZhcmlvdXMgdmFyaWFibGVzCisrdGVzdCAteiAiJENDIiAmJiBDQz1jYworK3Rl c3QgLXogIiRMVENDIiAmJiBMVENDPSRDQworK3Rlc3QgLXogIiRMVENGTEFHUyIgJiYgTFRDRkxB R1M9JENGTEFHUworK3Rlc3QgLXogIiRMRCIgJiYgTEQ9bGQKKyt0ZXN0IC16ICIkYWNfb2JqZXh0 IiAmJiBhY19vYmpleHQ9bworKworK2ZvciBjY190ZW1wIGluICRjb21waWxlciIiOyBkbworKyAg Y2FzZSAkY2NfdGVtcCBpbgorKyAgICBjb21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8 ICpbXFwvXWNjYWNoZSApIDs7CisrICAgIGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8 ICpbXFwvXXB1cmlmeSApIDs7CisrICAgIFwtKikgOzsKKysgICAgKikgYnJlYWs7OworKyAgZXNh YworK2RvbmUKKytjY19iYXNlbmFtZT1gJEVDSE8gIiRjY190ZW1wIiB8ICRTRUQgInMlLiovJSU7 IHMlXiRob3N0X2FsaWFzLSUlImAKKysKKysKKysjIE9ubHkgcGVyZm9ybSB0aGUgY2hlY2sgZm9y IGZpbGUsIGlmIHRoZSBjaGVjayBtZXRob2QgcmVxdWlyZXMgaXQKKyt0ZXN0IC16ICIkTUFHSUNf Q01EIiAmJiBNQUdJQ19DTUQ9ZmlsZQorK2Nhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisr ZmlsZV9tYWdpYyopCisrICBpZiB0ZXN0ICIkZmlsZV9tYWdpY19jbWQiID0gJyRNQUdJQ19DTUQn OyB0aGVuCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hl Y2tpbmcgZm9yICR7YWNfdG9vbF9wcmVmaXh9ZmlsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICR7YWNfdG9vbF9wcmVmaXh9ZmlsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRf Y3ZfcGF0aF9NQUdJQ19DTUQrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXNlICRNQUdJQ19DTUQgaW4KKytbXFwvKl0gfCAgPzpb XFwvXSopCisrICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIgIyBMZXQgdGhlIHVz ZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisrICA7OworKyopCisrICBsdF9zYXZl X01BR0lDX0NNRD0iJE1BR0lDX0NNRCIKKysgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRI X1NFUEFSQVRPUgorKyAgYWNfZHVtbXk9Ii91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgiCisr ICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KKysgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisr ICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCisrICAgIGlmIHRlc3QgLWYgJGFjX2Rp ci8ke2FjX3Rvb2xfcHJlZml4fWZpbGU7IHRoZW4KKysgICAgICBsdF9jdl9wYXRoX01BR0lDX0NN RD0iJGFjX2Rpci8ke2FjX3Rvb2xfcHJlZml4fWZpbGUiCisrICAgICAgaWYgdGVzdCAtbiAiJGZp bGVfbWFnaWNfdGVzdF9maWxlIjsgdGhlbgorKwljYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBp bgorKwkiZmlsZV9tYWdpYyAiKikKKysJICBmaWxlX21hZ2ljX3JlZ2V4PWBleHByICIkZGVwbGli c19jaGVja19tZXRob2QiIDogImZpbGVfbWFnaWMgXCguKlwpImAKKysJICBNQUdJQ19DTUQ9IiRs dF9jdl9wYXRoX01BR0lDX0NNRCIKKysJICBpZiBldmFsICRmaWxlX21hZ2ljX2NtZCBcJGZpbGVf bWFnaWNfdGVzdF9maWxlIDI+IC9kZXYvbnVsbCB8CisrCSAgICAkRUdSRVAgIiRmaWxlX21hZ2lj X3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgorKwkgICAgOgorKwkgIGVsc2UKKysJICAgIGNhdCA8 PF9MVF9FT0YgMT4mMgorKworKyoqKiBXYXJuaW5nOiB0aGUgY29tbWFuZCBsaWJ0b29sIHVzZXMg dG8gZGV0ZWN0IHNoYXJlZCBsaWJyYXJpZXMsCisrKioqICRmaWxlX21hZ2ljX2NtZCwgcHJvZHVj ZXMgb3V0cHV0IHRoYXQgbGlidG9vbCBjYW5ub3QgcmVjb2duaXplLgorKyoqKiBUaGUgcmVzdWx0 IGlzIHRoYXQgbGlidG9vbCBtYXkgZmFpbCB0byByZWNvZ25pemUgc2hhcmVkIGxpYnJhcmllcwor KyoqKiBhcyBzdWNoLiAgVGhpcyB3aWxsIGFmZmVjdCB0aGUgY3JlYXRpb24gb2YgbGlidG9vbCBs aWJyYXJpZXMgdGhhdAorKyoqKiBkZXBlbmQgb24gc2hhcmVkIGxpYnJhcmllcywgYnV0IHByb2dy YW1zIGxpbmtlZCB3aXRoIHN1Y2ggbGlidG9vbAorKyoqKiBsaWJyYXJpZXMgd2lsbCB3b3JrIHJl Z2FyZGxlc3Mgb2YgdGhpcyBwcm9ibGVtLiAgTmV2ZXJ0aGVsZXNzLCB5b3UKKysqKiogbWF5IHdh bnQgdG8gcmVwb3J0IHRoZSBwcm9ibGVtIHRvIHlvdXIgc3lzdGVtIG1hbmFnZXIgYW5kL29yIHRv CisrKioqIGJ1Zy1saWJ0b29sQGdudS5vcmcKKysKKytfTFRfRU9GCisrCSAgZmkgOzsKKysJZXNh YworKyAgICAgIGZpCisrICAgICAgYnJlYWsKKysgICAgZmkKKysgIGRvbmUKKysgIElGUz0iJGx0 X3NhdmVfaWZzIgorKyAgTUFHSUNfQ01EPSIkbHRfc2F2ZV9NQUdJQ19DTUQiCisrICA7OworK2Vz YWMKKytmaQorKworK01BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgorK2lmIHRlc3Qg LW4gIiRNQUdJQ19DTUQiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogJE1BR0lDX0NNRCIgPiY1CisrJGFzX2VjaG8gIiRNQUdJQ19DTUQi ID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKwor KworKworK2lmIHRlc3QgLXogIiRsdF9jdl9wYXRoX01BR0lDX0NNRCI7IHRoZW4KKysgIGlmIHRl c3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgZmlsZSIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIGZpbGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3BhdGhfTUFH SUNfQ01EK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgY2FzZSAkTUFHSUNfQ01EIGluCisrW1xcLypdIHwgID86W1xcL10qKQorKyAg bHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRl IHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorKyAgOzsKKysqKQorKyAgbHRfc2F2ZV9NQUdJQ19DTUQ9 IiRNQUdJQ19DTUQiCisrICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IK KysgIGFjX2R1bW15PSIvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRIIgorKyAgZm9yIGFjX2Rp ciBpbiAkYWNfZHVtbXk7IGRvCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16 ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICBpZiB0ZXN0IC1mICRhY19kaXIvZmlsZTsgdGhl bgorKyAgICAgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkYWNfZGlyL2ZpbGUiCisrICAgICAgaWYg dGVzdCAtbiAiJGZpbGVfbWFnaWNfdGVzdF9maWxlIjsgdGhlbgorKwljYXNlICRkZXBsaWJzX2No ZWNrX21ldGhvZCBpbgorKwkiZmlsZV9tYWdpYyAiKikKKysJICBmaWxlX21hZ2ljX3JlZ2V4PWBl eHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogImZpbGVfbWFnaWMgXCguKlwpImAKKysJICBN QUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKKysJICBpZiBldmFsICRmaWxlX21hZ2lj X2NtZCBcJGZpbGVfbWFnaWNfdGVzdF9maWxlIDI+IC9kZXYvbnVsbCB8CisrCSAgICAkRUdSRVAg IiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgorKwkgICAgOgorKwkgIGVsc2UK KysJICAgIGNhdCA8PF9MVF9FT0YgMT4mMgorKworKyoqKiBXYXJuaW5nOiB0aGUgY29tbWFuZCBs aWJ0b29sIHVzZXMgdG8gZGV0ZWN0IHNoYXJlZCBsaWJyYXJpZXMsCisrKioqICRmaWxlX21hZ2lj X2NtZCwgcHJvZHVjZXMgb3V0cHV0IHRoYXQgbGlidG9vbCBjYW5ub3QgcmVjb2duaXplLgorKyoq KiBUaGUgcmVzdWx0IGlzIHRoYXQgbGlidG9vbCBtYXkgZmFpbCB0byByZWNvZ25pemUgc2hhcmVk IGxpYnJhcmllcworKyoqKiBhcyBzdWNoLiAgVGhpcyB3aWxsIGFmZmVjdCB0aGUgY3JlYXRpb24g b2YgbGlidG9vbCBsaWJyYXJpZXMgdGhhdAorKyoqKiBkZXBlbmQgb24gc2hhcmVkIGxpYnJhcmll cywgYnV0IHByb2dyYW1zIGxpbmtlZCB3aXRoIHN1Y2ggbGlidG9vbAorKyoqKiBsaWJyYXJpZXMg d2lsbCB3b3JrIHJlZ2FyZGxlc3Mgb2YgdGhpcyBwcm9ibGVtLiAgTmV2ZXJ0aGVsZXNzLCB5b3UK KysqKiogbWF5IHdhbnQgdG8gcmVwb3J0IHRoZSBwcm9ibGVtIHRvIHlvdXIgc3lzdGVtIG1hbmFn ZXIgYW5kL29yIHRvCisrKioqIGJ1Zy1saWJ0b29sQGdudS5vcmcKKysKKytfTFRfRU9GCisrCSAg ZmkgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAgICAgYnJlYWsKKysgICAgZmkKKysgIGRvbmUK KysgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgTUFHSUNfQ01EPSIkbHRfc2F2ZV9NQUdJQ19DTUQi CisrICA7OworK2VzYWMKKytmaQorKworK01BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01E IgorK2lmIHRlc3QgLW4gIiRNQUdJQ19DTUQiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJE1BR0lDX0NNRCIgPiY1CisrJGFzX2VjaG8g IiRNQUdJQ19DTUQiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytm aQorKworKworKyAgZWxzZQorKyAgICBNQUdJQ19DTUQ9OgorKyAgZmkKKytmaQorKworKyAgZmkK KysgIDs7CisrZXNhYworKworKyMgVXNlIEMgZm9yIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24g aW4gdGhlIGxpYnRvb2wgc2NyaXB0CisrCisrbHRfc2F2ZV9DQz0iJENDIgorK2FjX2V4dD1jCisr YWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJT ID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrCisrIyBT b3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEMgdGVzdCBzb3VyY2VzLgorK2FjX2V4dD1jCisrCisr IyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEMgdGVzdCBzb3VyY2VzLgorK29i amV4dD1vCisrb2JqZXh0PSRvYmpleHQKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUg Y29tcGlsZSB0ZXN0cworK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iaW50IHNvbWVfdmFy aWFibGUgPSAwOyIKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwor K2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4oKXtyZXR1cm4oMCk7fScKKysKKysK KysKKysKKysKKysKKysKKysjIElmIG5vIEMgY29tcGlsZXIgd2FzIHNwZWNpZmllZCwgdXNlIEND LgorK0xUQ0M9JHtMVENDLSIkQ0MifQorKworKyMgSWYgbm8gQyBjb21waWxlciBmbGFncyB3ZXJl IHNwZWNpZmllZCwgdXNlIENGTEFHUy4KKytMVENGTEFHUz0ke0xUQ0ZMQUdTLSIkQ0ZMQUdTIn0K KysKKysjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorK2Nv bXBpbGVyPSRDQworKworKyMgU2F2ZSB0aGUgZGVmYXVsdCBjb21waWxlciwgc2luY2UgaXQgZ2V0 cyBvdmVyd3JpdHRlbiB3aGVuIHRoZSBvdGhlcgorKyMgdGFncyBhcmUgYmVpbmcgdGVzdGVkLCBh bmQgX0xUX1RBR1ZBUihjb21waWxlciwgW10pIGlzIGEgTk9QLgorK2NvbXBpbGVyX0RFRkFVTFQ9 JENDCisrCisrIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUK KythY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKytlY2hvICIkbHRfc2ltcGxlX2NvbXBp bGVfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAorK2V2YWwgIiRhY19jb21waWxlIiAyPiYx ID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgorK19sdF9j b21waWxlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyskUk0gY29uZnRlc3QqCisr CisrYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrZWNobyAiJGx0X3NpbXBsZV9saW5r X3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKKytldmFsICIkYWNfbGluayIgMj4mMSA+L2Rl di9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIKKytfbHRfbGlua2Vy X2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorKyRSTSAtciBjb25mdGVzdCoKKysKKysK KysjIyBDQVZFQVQgRU1QVE9SOgorKyMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGlu IHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCisrIyMgdGhlIHJ1bm5pbmcgb3Jk ZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkK KysjIyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KKytpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVu CisrCisrbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWc9CisrCisraWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KKysgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICBudmNjKikKKysgICAg bHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWc9JyAtWGNvbXBpbGVyIC1mbm8tYnVpbHRp bicgOzsKKysgICopCisrICAgIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnPScgLWZu by1idWlsdGluJyA7OworKyAgZXNhYworKworKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWZuby1ydHRpIC1m bm8tZXhjZXB0aW9ucyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1 cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2x0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zK3NldH0iID0gc2V0OyB0aGVuIDoK KysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21w aWxlcl9ydHRpX2V4Y2VwdGlvbnM9bm8KKysgICBhY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpl eHQKKysgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRh Y19leHQKKysgICBsdF9jb21waWxlcl9mbGFnPSItZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIgor KyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1Mg dmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVz dC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNl bGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEg ZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJl Y3RseS4KKysgICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0byBh dm9pZCBjb25mdXNpbmcgc2VkLgorKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8 ICRTRUQgXAorKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7 IHQnIFwKKysgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0 JyBcCisrICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKKysgICAoZXZhbCBlY2hvICJc IlwkYXNfbWU6JExJTkVOTzogJGx0X2NvbXBpbGVcIiIgPiY1KQorKyAgIChldmFsICIkbHRfY29t cGlsZSIgMj5jb25mdGVzdC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IGNvbmZ0ZXN0 LmVyciA+JjUKKysgICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVu CisrICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlv biBpZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5p bmdzIG90aGVyIHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KKysgICAgICRFQ0hPICIkX2x0X2NvbXBp bGVyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCisrICAgICAkU0VE ICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKKysgICAgIGlmIHRl c3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4v ZGV2L251bGw7IHRoZW4KKysgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlv bnM9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJFJNIGNvbmZ0ZXN0KgorKworK2ZpCisreyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9n X2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucyIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2Nv bXBpbGVyX3J0dGlfZXhjZXB0aW9ucyIgPiY2OyB9CisrCisraWYgdGVzdCB4IiRsdF9jdl9wcm9n X2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucyIgPSB4eWVzOyB0aGVuCisrICAgIGx0X3Byb2dfY29t cGlsZXJfbm9fYnVpbHRpbl9mbGFnPSIkbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcg LWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyIKKytlbHNlCisrICAgIDoKKytmaQorKworK2ZpCisr CisrCisrCisrCisrCisrCisrICBsdF9wcm9nX2NvbXBpbGVyX3dsPQorK2x0X3Byb2dfY29tcGls ZXJfcGljPQorK2x0X3Byb2dfY29tcGlsZXJfc3RhdGljPQorKworK3sgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRjb21waWxlciBvcHRpb24gdG8g cHJvZHVjZSBQSUMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkY29tcGlsZXIgb3B0 aW9uIHRvIHByb2R1Y2UgUElDLi4uICIgPiY2OyB9CisrCisrICBpZiB0ZXN0ICIkR0NDIiA9IHll czsgdGhlbgorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJworKyAgICBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYz0nLXN0YXRpYycKKysKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAg IGFpeCopCisrICAgICAgIyBBbGwgQUlYIGNvZGUgaXMgUElDLgorKyAgICAgIGlmIHRlc3QgIiRo b3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vz c29yCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKKysgICAgICBmaQorKyAg ICAgIDs7CisrCisrICAgIGFtaWdhb3MqKQorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAg ICAgcG93ZXJwYykKKysgICAgICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5z byBzdXBwb3J0CisrICAgICAgICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElDJworKyAg ICAgICAgOzsKKysgICAgICBtNjhrKQorKyAgICAgICAgICAgICMgRklYTUU6IHdlIG5lZWQgYXQg bGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKKysgICAgICAg ICAgICAjIGFkZGluZyB0aGUgYC1tNjgwMjAnIGZsYWcgdG8gR0NDIHByZXZlbnRzIGJ1aWxkaW5n IGFueXRoaW5nIGJldHRlciwKKysgICAgICAgICAgICAjIGxpa2UgYC1tNjgwNDAnLgorKyAgICAg ICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlz LXJlc3RvcmUtYTQnCisrICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAg ICBiZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9zZjQqIHwg b3NmNSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMuCisrICAg ICAgOzsKKysKKysgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikK KysgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3 aGV0aGVyIGl0IGlzIGJlaW5nCisrICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxs IChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKysgICAgICAjIEFsdGhv dWdoIHRoZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBmb3Igb2xk LXN0eWxlCisrICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKKysgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLURETExfRVhQT1JUJworKyAgICAgIDs7CisrCisrICAg IGRhcndpbiogfCByaGFwc29keSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhp cyBwbGF0Zm9ybQorKyAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlM SUIgZmlsZXMKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZuby1jb21tb24nCisrICAg ICAgOzsKKysKKysgICAgaGFpa3UqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciBI YWlrdS4KKysgICAgICAjIFRoZSAiLXN0YXRpYyIgZmxhZyBleGlzdHMsIGJ1dCBpcyBicm9rZW4u CisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9CisrICAgICAgOzsKKysKKysgICAgaHB1 eCopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIDY0LWJpdCBQQSBIUC1VWCwgYnV0 IG5vdCBmb3IgMzItYml0CisrICAgICAgIyBQQSBIUC1VWC4gIE9uIElBNjQgSFAtVVgsIFBJQyBp cyB0aGUgZGVmYXVsdCBidXQgdGhlIHBpYyBmbGFnCisrICAgICAgIyBzZXRzIHRoZSBkZWZhdWx0 IFRMUyBtb2RlbCBhbmQgYWZmZWN0cyBpbmxpbmluZy4KKysgICAgICBjYXNlICRob3N0X2NwdSBp bgorKyAgICAgIGhwcGEqNjQqKQorKwkjICtaIHRoZSBkZWZhdWx0CisrCTs7CisrICAgICAgKikK KysJbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElDJworKwk7OworKyAgICAgIGVzYWMKKysgICAg ICA7OworKworKyAgICBpbnRlcml4WzMtOV0qKQorKyAgICAgICMgSW50ZXJpeCAzLnggZ2NjIC1m cGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUgYnJva2VuIGNvZGUuCisrICAgICAgIyBJbnN0ZWFk LCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFyaWVzIGF0IHJ1bnRpbWUuCisrICAgICAgOzsKKysK KysgICAgbXNkb3NkamdwcCopCisrICAgICAgIyBKdXN0IGJlY2F1c2Ugd2UgdXNlIEdDQyBkb2Vz bid0IG1lYW4gd2Ugc3VkZGVubHkgZ2V0IHNoYXJlZCBsaWJyYXJpZXMKKysgICAgICAjIG9uIHN5 c3RlbXMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZW0uCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9j YW5fYnVpbGRfc2hhcmVkPW5vCisrICAgICAgZW5hYmxlX3NoYXJlZD1ubworKyAgICAgIDs7Cisr CisrICAgICpudG8qIHwgKnFueCopCisrICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVl ZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKysgICAgICAjIGl0IHdp bGwgY29yZWR1bXAuCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElDIC1zaGFyZWQn CisrICAgICAgOzsKKysKKysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9u ZWM7IHRoZW4KKysJbHRfcHJvZ19jb21waWxlcl9waWM9LUtjb25mb3JtX3BpYworKyAgICAgIGZp CisrICAgICAgOzsKKysKKysgICAgKikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZQ SUMnCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgor KyAgICBudmNjKikgIyBDdWRhIENvbXBpbGVyIERyaXZlciAyLjIKKysgICAgICBsdF9wcm9nX2Nv bXBpbGVyX3dsPSctWGxpbmtlciAnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1YY29t cGlsZXIgLWZQSUMnCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZWxzZQorKyAgICAjIFBPUlRN RSBDaGVjayBmb3IgZmxhZyB0byBwYXNzIGxpbmtlciBmbGFncyB0aHJvdWdoIHRoZSBzeXN0ZW0g Y29tcGlsZXIuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgYWl4KikKKysgICAgICBsdF9w cm9nX2NvbXBpbGVyX3dsPSctV2wsJworKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0 OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCWx0X3Byb2df Y29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKKysgICAgICBlbHNlCisrCWx0X3Byb2dfY29tcGls ZXJfc3RhdGljPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCisrICAgICAgZmkKKysgICAg ICA7OworKworKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgcHczMiogfCBvczIqIHwgY2VnY2MqKQor KyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdo ZXRoZXIgaXQgaXMgYmVpbmcKKysgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwg KGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgorKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfcGljPSctRERMTF9FWFBPUlQnCisrICAgICAgOzsKKysKKysgICAgaHB1eDkqIHwg aHB1eDEwKiB8IGhwdXgxMSopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysg ICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVY LCBidXQKKysgICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCisrICAgICAgY2FzZSAkaG9zdF9jcHUg aW4KKysgICAgICBocHBhKjY0KnxpYTY0KikKKysJIyArWiB0aGUgZGVmYXVsdAorKwk7OworKyAg ICAgICopCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPScrWicKKysJOzsKKysgICAgICBlc2FjCisr ICAgICAgIyBJcyB0aGVyZSBhIGJldHRlciBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyB0aGF0IHdv cmtzIHdpdGggdGhlIGJ1bmRsZWQgQ0M/CisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9 JyR7d2x9LWEgJHt3bH1hcmNoaXZlJworKyAgICAgIDs7CisrCisrICAgIGlyaXg1KiB8IGlyaXg2 KiB8IG5vbnN0b3B1eCopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAg ICAjIFBJQyAod2l0aCAtS1BJQykgaXMgdGhlIGRlZmF1bHQuCisrICAgICAgbHRfcHJvZ19jb21w aWxlcl9zdGF0aWM9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIGxpbnV4KiB8IGsq YnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKKysgICAgICBjYXNlICRjY19iYXNlbmFtZSBp bgorKyAgICAgICMgb2xkIEludGVsIGZvciB4ODZfNjQgd2hpY2ggc3RpbGwgc3VwcG9ydGVkIC1L UElDLgorKyAgICAgIGVjYyopCisrCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrCWx0X3By b2dfY29tcGlsZXJfcGljPSctS1BJQycKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1zdGF0 aWMnCisrICAgICAgICA7OworKyAgICAgICMgaWNjIHVzZWQgdG8gYmUgaW5jb21wYXRpYmxlIHdp dGggR0NDLgorKyAgICAgICMgSUNDIDEwIGRvZXNuJ3QgYWNjZXB0IC1LUElDIGFueSBtb3JlLgor KyAgICAgIGljYyogfCBpZm9ydCopCisrCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrCWx0 X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQycKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1z dGF0aWMnCisrICAgICAgICA7OworKyAgICAgICMgTGFoZXkgRm9ydHJhbiA4LjEuCisrICAgICAg bGY5NSopCisrCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrCWx0X3Byb2dfY29tcGlsZXJf cGljPSctLXNoYXJlZCcKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy0tc3RhdGljJworKwk7 OworKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqIHwgcGdmb3J0cmFuKikK KysgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgY29tcGlsZXJzICgqbm90KiB0aGUgUGVudGl1bSBn Y2MgY29tcGlsZXIsCisrCSMgd2hpY2ggbG9va3MgdG8gYmUgYSBkZWFkIHByb2plY3QpCisrCWx0 X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPSctZnBpYycK KysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgICAgOzsKKysgICAg ICBjY2MqKQorKyAgICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgICAgICMg QWxsIEFscGhhIGNvZGUgaXMgUElDLgorKyAgICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9 Jy1ub25fc2hhcmVkJworKyAgICAgICAgOzsKKysgICAgICB4bCogfCBiZ3hsKiB8IGJnZiogfCBt cGl4bCopCisrCSMgSUJNIFhMIEMgOC4wL0ZvcnRyYW4gMTAuMSwgMTEuMSBvbiBQUEMgYW5kIEJs dWVHZW5lCisrCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrCWx0X3Byb2dfY29tcGlsZXJf cGljPSctcXBpYycKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1xc3RhdGljbGluaycKKysJ OzsKKysgICAgICAqKQorKwljYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysJKlN1blwg RiogfCAqU3VuKkZvcnRyYW4qKQorKwkgICMgU3VuIEZvcnRyYW4gOC4zIHBhc3NlcyBhbGwgdW5y ZWNvZ25pemVkIGZsYWdzIHRvIHRoZSBsaW5rZXIKKysJICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0n LUtQSUMnCisrCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKwkgIGx0X3By b2dfY29tcGlsZXJfd2w9JycKKysJICA7OworKwkqU3VuXCBDKikKKysJICAjIFN1biBDIDUuOQor KwkgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKKysJICBsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYz0nLUJzdGF0aWMnCisrCSAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysJICA7Owor Kwllc2FjCisrCTs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIG5ld3NvczYpCisr ICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJworKyAgICAgIGx0X3Byb2dfY29tcGls ZXJfc3RhdGljPSctQnN0YXRpYycKKysgICAgICA7OworKworKyAgICAqbnRvKiB8ICpxbngqKQor KyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0 aW9uIHRvbywgb3RoZXJ3aXNlCisrICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgorKyAgICAgIGx0 X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQyAtc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIG9z ZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwor KyAgICAgICMgQWxsIE9TRi8xIGNvZGUgaXMgUElDLgorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJf c3RhdGljPSctbm9uX3NoYXJlZCcKKysgICAgICA7OworKworKyAgICByZG9zKikKKysgICAgICBs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLW5vbl9zaGFyZWQnCisrICAgICAgOzsKKysKKysgICAg c29sYXJpcyopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJworKyAgICAgIGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKKysgICAgICBjYXNlICRjY19iYXNlbmFt ZSBpbgorKyAgICAgIGY3NyogfCBmOTAqIHwgZjk1KiB8IHN1bmY3NyogfCBzdW5mOTAqIHwgc3Vu Zjk1KikKKysJbHRfcHJvZ19jb21waWxlcl93bD0nLVFvcHRpb24gbGQgJzs7CisrICAgICAgKikK KysJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCc7OworKyAgICAgIGVzYWMKKysgICAgICA7Owor KworKyAgICBzdW5vczQqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1Rb3B0aW9uIGxk ICcKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLVBJQycKKysgICAgICBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrICAgICAgOzsKKysKKysgICAgc3lzdjQgfCBzeXN2 NC4ydXcyKiB8IHN5c3Y0LjMqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisr ICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJworKyAgICAgIGx0X3Byb2dfY29tcGls ZXJfc3RhdGljPSctQnN0YXRpYycKKysgICAgICA7OworKworKyAgICBzeXN2NCpNUCopCisrICAg ICAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgorKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtj b25mb3JtX3BpYycKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAg IGZpCisrICAgICAgOzsKKysKKysgICAgc3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwg c2NvNXY2KiB8IE9wZW5VTklYKikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwor KyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKKysgICAgICBsdF9wcm9nX2NvbXBp bGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrICAgICAgOzsKKysKKysgICAgdW5pY29zKikKKysgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfY2Fu X2J1aWxkX3NoYXJlZD1ubworKyAgICAgIDs7CisrCisrICAgIHV0czQqKQorKyAgICAgIGx0X3By b2dfY29tcGlsZXJfcGljPSctcGljJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSct QnN0YXRpYycKKysgICAgICA7OworKworKyAgICAqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJf Y2FuX2J1aWxkX3NoYXJlZD1ubworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrCisrY2Fz ZSAkaG9zdF9vcyBpbgorKyAgIyBGb3IgcGxhdGZvcm1zIHdoaWNoIGRvIG5vdCBzdXBwb3J0IFBJ QywgLURQSUMgaXMgbWVhbmluZ2xlc3M6CisrICAqZGpncHAqKQorKyAgICBsdF9wcm9nX2NvbXBp bGVyX3BpYz0KKysgICAgOzsKKysgICopCisrICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSIkbHRf cHJvZ19jb21waWxlcl9waWMgLURQSUMiCisrICAgIDs7CisrZXNhYworK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfcHJvZ19jb21waWxlcl9waWMi ID4mNQorKyRhc19lY2hvICIkbHRfcHJvZ19jb21waWxlcl9waWMiID4mNjsgfQorKworKworKwor KworKworKworKyMKKysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgYWN0dWFsbHkg d29ya3MuCisrIworK2lmIHRlc3QgLW4gIiRsdF9wcm9nX2NvbXBpbGVyX3BpYyI7IHRoZW4KKysg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgJGNv bXBpbGVyIFBJQyBmbGFnICRsdF9wcm9nX2NvbXBpbGVyX3BpYyB3b3JrcyIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRsdF9wcm9nX2NvbXBpbGVyX3Bp YyB3b3Jrcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9waWNf d29ya3Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrcz1ubworKyAgIGFjX291dGZp bGU9Y29uZnRlc3QuJGFjX29iamV4dAorKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0 X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKyAgIGx0X2NvbXBpbGVyX2ZsYWc9IiRsdF9wcm9n X2NvbXBpbGVyX3BpYyAtRFBJQyIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkg YWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdv cmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3Rl IHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5k IGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUg ZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCisrICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5j ZWQgdmlhIGEgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW5nIHNlZC4KKysgICBsdF9jb21waWxl PWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0g OiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjog JGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFn OidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOiRMSU5FTk86ICRsdF9jb21waWxlXCIiID4m NSkKKysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1 cz0kPworKyAgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3Qg LXMgIiRhY19vdXRmaWxlIjsgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2Fy biBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5 IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCisr ICAgICAkRUNITyAiJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcvXiQvZCcgPmNv bmZ0ZXN0LmV4cAorKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29u ZnRlc3QuZXIyCisrICAgICBpZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRl c3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgIGx0X2N2X3Byb2df Y29tcGlsZXJfcGljX3dvcmtzPXllcworKyAgICAgZmkKKysgICBmaQorKyAgICRSTSBjb25mdGVz dCoKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3MiID4mNQorKyRhc19lY2hvICIkbHRf Y3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3MiID4mNjsgfQorKworK2lmIHRlc3QgeCIkbHRfY3Zf cHJvZ19jb21waWxlcl9waWNfd29ya3MiID0geHllczsgdGhlbgorKyAgICBjYXNlICRsdF9wcm9n X2NvbXBpbGVyX3BpYyBpbgorKyAgICAgIiIgfCAiICIqKSA7OworKyAgICAgKikgbHRfcHJvZ19j b21waWxlcl9waWM9IiAkbHRfcHJvZ19jb21waWxlcl9waWMiIDs7CisrICAgICBlc2FjCisrZWxz ZQorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0KKysgICAgIGx0X3Byb2dfY29tcGlsZXJfY2Fu X2J1aWxkX3NoYXJlZD1ubworK2ZpCisrCisrZmkKKysKKysKKysKKysKKysKKysKKysjCisrIyBD aGVjayB0byBtYWtlIHN1cmUgdGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5IHdvcmtzLgorKyMKKyt3 bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIGx0X3RtcF9zdGF0aWNfZmxhZz1cIiRsdF9wcm9n X2NvbXBpbGVyX3N0YXRpY1wiCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxh ZyB3b3JrcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN0YXRpYyBm bGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3MuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0 X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9z dGF0aWNfd29ya3M9bm8KKysgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgorKyAgIExERkxBR1M9 IiRMREZMQUdTICRsdF90bXBfc3RhdGljX2ZsYWciCisrICAgZWNobyAiJGx0X3NpbXBsZV9saW5r X3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrICAgaWYgKGV2YWwgJGFjX2xpbmsgMj5j b25mdGVzdC5lcnIpICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCisrICAgICAj IFRoZSBsaW5rZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJl Y29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncworKyAgICAg aWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKysgICAgICAgIyBBcHBlbmQgYW55IGVycm9y cyB0byB0aGUgY29uZmlnLmxvZy4KKysgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1CisrICAg ICAgICRFQ0hPICIkX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcvXiQvZCcgPiBjb25m dGVzdC5leHAKKysgICAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29u ZnRlc3QuZXIyCisrICAgICAgIGlmIGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rl di9udWxsOyB0aGVuCisrICAgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9 eWVzCisrICAgICAgIGZpCisrICAgICBlbHNlCisrICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJf c3RhdGljX3dvcmtzPXllcworKyAgICAgZmkKKysgICBmaQorKyAgICRSTSAtciBjb25mdGVzdCoK KysgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRp Y193b3JrcyIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jr cyIgPiY2OyB9CisrCisraWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jr cyIgPSB4eWVzOyB0aGVuCisrICAgIDoKKytlbHNlCisrICAgIGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljPQorK2ZpCisrCisrCisrCisrCisrCisrCisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBm aWxlLiRhY19vYmpleHQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBz dXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0 X2N2X3Byb2dfY29tcGlsZXJfY19vK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX289bm8KKysg ICAkUk0gLXIgY29uZnRlc3QgMj4vZGV2L251bGwKKysgICBta2RpciBjb25mdGVzdAorKyAgIGNk IGNvbmZ0ZXN0CisrICAgbWtkaXIgb3V0CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rl c3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAgbHRfY29tcGlsZXJfZmxhZz0iLW8g b3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0IgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVy ICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3Jl IGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAj IE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hl cyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNv IHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICBsdF9jb21waWxlPWBlY2hvICIk YWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29t cGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBp bGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAg KGV2YWwgZWNobyAiXCJcJGFzX21lOiRMSU5FTk86ICRsdF9jb21waWxlXCIiID4mNSkKKysgICAo ZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0dXM9JD8K KysgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JjUKKysgICBlY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAt cyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKKysgICB0aGVuCisrICAgICAjIFRoZSBjb21waWxl ciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAor KyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICAkRUNITyAiJF9s dF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhw CisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0 ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQv Y29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICBs dF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICBjaG1vZCB1 K3cgLiAyPiY1CisrICAgJFJNIGNvbmZ0ZXN0KgorKyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxs IGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBmb3IKKysgICAjIHRlbXBsYXRlIGluc3Rh bnRpYXRpb24KKysgICB0ZXN0IC1kIG91dC9paV9maWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyog JiYgcm1kaXIgb3V0L2lpX2ZpbGVzCisrICAgJFJNIG91dC8qICYmIHJtZGlyIG91dAorKyAgIGNk IC4uCisrICAgJFJNIC1yIGNvbmZ0ZXN0CisrICAgJFJNIGNvbmZ0ZXN0KgorKworK2ZpCisreyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9n X2NvbXBpbGVyX2NfbyIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIg PiY2OyB9CisrCisrCisrCisrCisrCisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRh Y19vYmpleHQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0 cyAtYyAtbyBmaWxlLiRhY19vYmpleHQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3By b2dfY29tcGlsZXJfY19vK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX289bm8KKysgICAkUk0g LXIgY29uZnRlc3QgMj4vZGV2L251bGwKKysgICBta2RpciBjb25mdGVzdAorKyAgIGNkIGNvbmZ0 ZXN0CisrICAgbWtkaXIgb3V0CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29k ZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAgbHRfY29tcGlsZXJfZmxhZz0iLW8gb3V0L2Nv bmZ0ZXN0Mi4kYWNfb2JqZXh0IgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBh ZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29y ZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUg dGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQg YmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBl Y2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29t cGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJf ZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2Zs YWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwg ZWNobyAiXCJcJGFzX21lOiRMSU5FTk86ICRsdF9jb21waWxlXCIiID4mNSkKKysgICAoZXZhbCAi JGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0dXM9JD8KKysgICBj YXQgb3V0L2NvbmZ0ZXN0LmVyciA+JjUKKysgICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1CisrICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyBvdXQv Y29uZnRlc3QyLiRhY19vYmpleHQKKysgICB0aGVuCisrICAgICAjIFRoZSBjb21waWxlciBjYW4g b25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAgICAg IyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICAkRUNITyAiJF9sdF9jb21w aWxlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCisrICAg ICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVy MgorKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRl c3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICBsdF9jdl9w cm9nX2NvbXBpbGVyX2Nfbz15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICBjaG1vZCB1K3cgLiAy PiY1CisrICAgJFJNIGNvbmZ0ZXN0KgorKyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0 ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBmb3IKKysgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRp b24KKysgICB0ZXN0IC1kIG91dC9paV9maWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1k aXIgb3V0L2lpX2ZpbGVzCisrICAgJFJNIG91dC8qICYmIHJtZGlyIG91dAorKyAgIGNkIC4uCisr ICAgJFJNIC1yIGNvbmZ0ZXN0CisrICAgJFJNIGNvbmZ0ZXN0KgorKworK2ZpCisreyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBp bGVyX2NfbyIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgPiY2OyB9 CisrCisrCisrCisrCisraGFyZF9saW5rcz0ibm90dGVzdGVkIgorK2lmIHRlc3QgIiRsdF9jdl9w cm9nX2NvbXBpbGVyX2NfbyIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4K KysgICMgZG8gbm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBi eSB0aGUgdXNlcgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3MiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcy4uLiAiID4mNjsgfQorKyAg aGFyZF9saW5rcz15ZXMKKysgICRSTSBjb25mdGVzdCoKKysgIGxuIGNvbmZ0ZXN0LmEgY29uZnRl c3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCisrICB0b3VjaCBjb25mdGVzdC5hCisr ICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCisrICBsbiBj b25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRoYXJkX2xpbmtz IiA+JjUKKyskYXNfZWNobyAiJGhhcmRfbGlua3MiID4mNjsgfQorKyAgaWYgdGVzdCAiJGhhcmRf bGlua3MiID0gbm87IHRoZW4KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBt YWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBc YCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5z YWZlIiA+JjI7fQorKyAgICBuZWVkX2xvY2tzPXdhcm4KKysgIGZpCisrZWxzZQorKyAgbmVlZF9s b2Nrcz1ubworK2ZpCisrCisrCisrCisrCisrCisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIg KCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGli cmFyaWVzLi4uICIgPiY2OyB9CisrCisrICBydW5wYXRoX3Zhcj0KKysgIGFsbG93X3VuZGVmaW5l ZF9mbGFnPQorKyAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPW5vCisrICBhcmNoaXZlX2NtZHM9Cisr ICBhcmNoaXZlX2V4cHN5bV9jbWRzPQorKyAgY29tcGlsZXJfbmVlZHNfb2JqZWN0PW5vCisrICBl bmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPW5vCisrICBleHBvcnRfZHluYW1pY19m bGFnX3NwZWM9CisrICBleHBvcnRfc3ltYm9sc19jbWRzPSckTk0gJGxpYm9ianMgJGNvbnZlbmll bmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8 IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrICBoYXJkY29kZV9hdXRvbWF0aWM9bm8KKysgIGhh cmRjb2RlX2RpcmVjdD1ubworKyAgaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPW5vCisrICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjPQorKyAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0K KysgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9CisrICBoYXJkY29kZV9taW51c19MPW5vCisr ICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPXVuc3VwcG9ydGVkCisrICBpbmhlcml0X3JwYXRoPW5v CisrICBsaW5rX2FsbF9kZXBsaWJzPXVua25vd24KKysgIG1vZHVsZV9jbWRzPQorKyAgbW9kdWxl X2V4cHN5bV9jbWRzPQorKyAgb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0KKysgIG9sZF9hcmNo aXZlX2Zyb21fZXhwc3ltc19jbWRzPQorKyAgdGhyZWFkX3NhZmVfZmxhZ19zcGVjPQorKyAgd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWM9CisrICAjIGluY2x1ZGVfZXhwc3ltcyBzaG91bGQgYmUgYSBs aXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBzeW1ib2xzIHRvIGJlICphbHdheXMqCisrICAjIGluY2x1 ZGVkIGluIHRoZSBzeW1ib2wgbGlzdAorKyAgaW5jbHVkZV9leHBzeW1zPQorKyAgIyBleGNsdWRl X2V4cHN5bXMgY2FuIGJlIGFuIGV4dGVuZGVkIHJlZ2V4cCBvZiBzeW1ib2xzIHRvIGV4Y2x1ZGUK KysgICMgaXQgd2lsbCBiZSB3cmFwcGVkIGJ5IGAgKCcgYW5kIGApJCcsIHNvIG9uZSBtdXN0IG5v dCBtYXRjaCBiZWdpbm5pbmcgb3IKKysgICMgZW5kIG9mIGxpbmUuICBFeGFtcGxlOiBgYXxiY3wu KmQuKicgd2lsbCBleGNsdWRlIHRoZSBzeW1ib2xzIGBhJyBhbmQgYGJjJywKKysgICMgYXMgd2Vs bCBhcyBhbnkgc3ltYm9sIHRoYXQgY29udGFpbnMgYGQnLgorKyAgZXhjbHVkZV9leHBzeW1zPSdf R0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionCisrICAjIEFsdGhvdWdoIF9H TE9CQUxfT0ZGU0VUX1RBQkxFXyBpcyBhIHZhbGlkIHN5bWJvbCBDIG5hbWUsIG1vc3QgYS5vdXQK KysgICMgcGxhdGZvcm1zIChhYil1c2UgaXQgaW4gUElDIGNvZGUsIGJ1dCB0aGVpciBsaW5rZXJz IGdldCBjb25mdXNlZCBpZgorKyAgIyB0aGUgc3ltYm9sIGlzIGV4cGxpY2l0bHkgcmVmZXJlbmNl ZC4gIFNpbmNlIHBvcnRhYmxlIGNvZGUgY2Fubm90CisrICAjIHJlbHkgb24gdGhpcyBzeW1ib2wg bmFtZSwgaXQncyBwcm9iYWJseSBmaW5lIHRvIG5ldmVyIGluY2x1ZGUgaXQgaW4KKysgICMgcHJl bG9hZGVkIHN5bWJvbCB0YWJsZXMuCisrICAjIEV4Y2x1ZGUgc2hhcmVkIGxpYnJhcnkgaW5pdGlh bGl6YXRpb24vZmluYWxpemF0aW9uIHN5bWJvbHMuCisrICBleHRyYWN0X2V4cHN5bXNfY21kcz0K KysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNl Z2NjKikKKysgICAgIyBGSVhNRTogdGhlIE1TVkMrKyBwb3J0IGhhc24ndCBiZWVuIHRlc3RlZCBp biBhIGxvb29vbmcgdGltZQorKyAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5 IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZworKyAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysrLgor KyAgICBpZiB0ZXN0ICIkR0NDIiAhPSB5ZXM7IHRoZW4KKysgICAgICB3aXRoX2dudV9sZD1ubwor KyAgICBmaQorKyAgICA7OworKyAgaW50ZXJpeCopCisrICAgICMgd2UganVzdCBob3BlL2Fzc3Vt ZSB0aGlzIGlzIGdjYyBhbmQgbm90IGM4OSAoPSBNU1ZDKyspCisrICAgIHdpdGhfZ251X2xkPXll cworKyAgICA7OworKyAgb3BlbmJzZCopCisrICAgIHdpdGhfZ251X2xkPW5vCisrICAgIDs7Cisr ICBlc2FjCisrCisrICBsZF9zaGxpYnM9eWVzCisrCisrICAjIE9uIHNvbWUgdGFyZ2V0cywgR05V IGxkIGlzIGNvbXBhdGlibGUgZW5vdWdoIHdpdGggdGhlIG5hdGl2ZSBsaW5rZXIKKysgICMgdGhh dCB3ZSdyZSBiZXR0ZXIgb2ZmIHVzaW5nIHRoZSBuYXRpdmUgaW50ZXJmYWNlIGZvciBib3RoLgor KyAgbHRfdXNlX2dudV9sZF9pbnRlcmZhY2U9bm8KKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIg PSB5ZXM7IHRoZW4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeCopCisrCSMgVGhl IEFJWCBwb3J0IG9mIEdOVSBsZCBoYXMgYWx3YXlzIGFzcGlyZWQgdG8gY29tcGF0aWJpbGl0eQor KwkjIHdpdGggdGhlIG5hdGl2ZSBsaW5rZXIuICBIb3dldmVyLCBhcyB0aGUgd2FybmluZyBpbiB0 aGUgR05VIGxkCisrCSMgYmxvY2sgc2F5cywgdmVyc2lvbnMgYmVmb3JlIDIuMTkuNSogY291bGRu J3QgcmVhbGx5IGNyZWF0ZSB3b3JraW5nCisrCSMgc2hhcmVkIGxpYnJhcmllcywgcmVnYXJkbGVz cyBvZiB0aGUgaW50ZXJmYWNlIHVzZWQuCisrCWNhc2UgYCRMRCAtdiAyPiYxYCBpbgorKwkgICpc IFwoR05VXCBCaW51dGlsc1wpXCAyLjE5LjUqKSA7OworKwkgICpcIFwoR05VXCBCaW51dGlsc1wp XCAyLlsyLTldKikgOzsKKysJICAqXCBcKEdOVVwgQmludXRpbHNcKVwgWzMtOV0qKSA7OworKwkg ICopCisrCSAgICBsdF91c2VfZ251X2xkX2ludGVyZmFjZT15ZXMKKysJICAgIDs7CisrCWVzYWMK KysJOzsKKysgICAgICAqKQorKwlsdF91c2VfZ251X2xkX2ludGVyZmFjZT15ZXMKKysJOzsKKysg ICAgZXNhYworKyAgZmkKKysKKysgIGlmIHRlc3QgIiRsdF91c2VfZ251X2xkX2ludGVyZmFjZSIg PSB5ZXM7IHRoZW4KKysgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFy YyBzaG91bGQgYmUgZW1wdHkKKysgICAgd2xhcmM9JyR7d2x9JworKworKyAgICAjIFNldCBzb21l IGRlZmF1bHRzIGZvciBHTlUgbGQgd2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQor KyAgICAjIGFyZSByZXNldCBsYXRlciBpZiBzaGFyZWQgbGlicmFyaWVzIGFyZSBub3Qgc3VwcG9y dGVkLiBQdXR0aW5nIHRoZW0KKysgICAgIyBoZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRk ZW4gaWYgbmVjZXNzYXJ5LgorKyAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorKyAgICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgIGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKyAgICAjIGFu Y2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCisrICAg IGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICduby13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVs bDsgdGhlbgorKyAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSIkd2xhcmMiJy0td2hvbGUt YXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJworKyAgICBl bHNlCisrICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9CisrICAgIGZpCisrICAgIHN1cHBv cnRzX2Fub25fdmVyc2lvbmluZz1ubworKyAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4KKysgICAg ICAqR05VXCBnb2xkKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OworKyAgICAgICpc IFswMV0uKiB8ICpcIDIuWzAtOV0uKiB8ICpcIDIuMTAuKikgOzsgIyBjYXRjaCB2ZXJzaW9ucyA8 IDIuMTEKKysgICAgICAqXCAyLjExLjkzLjAuMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5n PXllcyA7OyAjIFJINy4zIC4uLgorKyAgICAgICpcIDIuMTEuOTIuMC4xMlwgKikgc3VwcG9ydHNf YW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIE1hbmRyYWtlIDguMiAuLi4KKysgICAgICAqXCAyLjEx LiopIDs7ICMgb3RoZXIgMi4xMSB2ZXJzaW9ucworKyAgICAgICopIHN1cHBvcnRzX2Fub25fdmVy c2lvbmluZz15ZXMgOzsKKysgICAgZXNhYworKworKyAgICAjIFNlZSBpZiBHTlUgbGQgc3VwcG9y dHMgc2hhcmVkIGxpYnJhcmllcy4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXhbMy05 XSopCisrICAgICAgIyBPbiBBSVgvUFBDLCB0aGUgR05VIGxpbmtlciBpcyB2ZXJ5IGJyb2tlbgor KyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgorKwlsZF9zaGxpYnM9bm8K KysJY2F0IDw8X0xUX0VPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IHRoZSBHTlUgbGlua2VyLCBh dCBsZWFzdCB1cCB0byByZWxlYXNlIDIuMTksIGlzIHJlcG9ydGVkCisrKioqIHRvIGJlIHVuYWJs ZSB0byByZWxpYWJseSBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBBSVguCisrKioqIFRoZXJl Zm9yZSwgbGlidG9vbCBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgSWYg eW91CisrKioqIHJlYWxseSBjYXJlIGZvciBzaGFyZWQgbGlicmFyaWVzLCB5b3UgbWF5IHdhbnQg dG8gaW5zdGFsbCBiaW51dGlscworKyoqKiAyLjIwIG9yIGFib3ZlLCBvciBtb2RpZnkgeW91ciBQ QVRIIHNvIHRoYXQgYSBub24tR05VIGxpbmtlciBpcyBmb3VuZC4KKysqKiogWW91IHdpbGwgdGhl biBuZWVkIHRvIHJlc3RhcnQgdGhlIGNvbmZpZ3VyYXRpb24gcHJvY2Vzcy4KKysKKytfTFRfRU9G CisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICBjYXNlICRo b3N0X2NwdSBpbgorKyAgICAgIHBvd2VycGMpCisrICAgICAgICAgICAgIyBzZWUgY29tbWVudCBh Ym91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAorKyAgICAgICAgICAgIGFyY2hpdmVfY21kcz0nJEND IC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk d2wkc29uYW1lIC1vICRsaWInCisrICAgICAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJwor KyAgICAgICAgOzsKKysgICAgICBtNjhrKQorKyAgICAgICAgICAgIGFyY2hpdmVfY21kcz0nJFJN ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTkFNRSAkbGli bmFtZSIgPiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIExJ QlJBUllfSUQgMSIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2Rl ZmluZSBWRVJTSU9OICRtYWpvciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4k RUNITyAiI2RlZmluZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhs aWJyYXJ5LmRhdGF+JEFSICRBUl9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxpYn4oY2Qg JG91dHB1dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMyKScKKysgICAgICAgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisrICAgICAgICAgICAgaGFyZGNvZGVfbWlu dXNfTD15ZXMKKysgICAgICAgIDs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIGJl b3MqKQorKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJn ZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5z dXBwb3J0ZWQKKysJIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5cyBzb21l IHJlbGVhc2VzIG9mIGdjYworKwkjIHN1cHBvcnQgLS11bmRlZmluZWQuICBUaGlzIGRlc2VydmVz IHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1FCisrCWFyY2hpdmVfY21kcz0nJENDIC1ub3N0YXJ0 ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFt ZSAtbyAkbGliJworKyAgICAgIGVsc2UKKysJbGRfc2hsaWJzPW5vCisrICAgICAgZmkKKysgICAg ICA7OworKworKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisrICAgICAg IyBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICkgaXMgYWN0dWFsbHkgbWVh bmluZ2xlc3MsCisrICAgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4K KysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisrICAgICAgZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS0tZXhwb3J0LWFsbC1zeW1ib2xzJworKyAgICAg IGFsbG93X3VuZGVmaW5lZF9mbGFnPXVuc3VwcG9ydGVkCisrICAgICAgYWx3YXlzX2V4cG9ydF9z eW1ib2xzPW5vCisrICAgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcz15ZXMK KysgICAgICBleHBvcnRfc3ltYm9sc19jbWRzPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwg JGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW0JDREdSU11bIF0vcy8uKlsgXVwo W14gXSpcKS9cMSBEQVRBLydcJycgfCAkU0VEIC1lICdcJycvXltBSVRXXVsgXS9zLy4qWyBdLy8n XCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrCisrICAgICAgaWYgJExEIC0t aGVscCAyPiYxIHwgJEdSRVAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICAg ICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2Ut YmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKysJIyBJZiB0aGUgZXhw b3J0LXN5bWJvbHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGluZQorKwkjIGlz IEVYUE9SVFMpLCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgorKwlhcmNoaXZl X2V4cHN5bV9jbWRzPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQ T1JUUzsgdGhlbgorKwkgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1l LmRlZjsKKysJZWxzZQorKwkgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUu ZGVmOworKwkgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5k ZWY7CisrCWZpfgorKwkkQ0MgLXNoYXJlZCAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAk e3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5r ZXIgJGxpYicKKysgICAgICBlbHNlCisrCWxkX3NobGlicz1ubworKyAgICAgIGZpCisrICAgICAg OzsKKysKKysgICAgaGFpa3UqKQorKyAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1v ICRsaWInCisrICAgICAgbGlua19hbGxfZGVwbGlicz15ZXMKKysgICAgICA7OworKworKyAgICBp bnRlcml4WzMtOV0qKQorKyAgICAgIGhhcmRjb2RlX2RpcmVjdD1ubworKyAgICAgIGhhcmRjb2Rl X3NobGlicGF0aF92YXI9bm8KKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3ds fS1ycGF0aCwkbGliZGlyJworKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0t RScKKysgICAgICAjIEhhY2s6IE9uIEludGVyaXggMy54LCB3ZSBjYW5ub3QgY29tcGlsZSBQSUMg YmVjYXVzZSBvZiBhIGJyb2tlbiBnY2MuCisrICAgICAgIyBJbnN0ZWFkLCBzaGFyZWQgbGlicmFy aWVzIGFyZSBsb2FkZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQorKyAgICAgICMg ZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cg dmVyeSBtZW1vcnkKKysgICAgICAjIGNvbnN1bWluZyBhbmQgZnJhZ21lbnRpbmcgcHJvY2Vzcy4g IFRvIGF2b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5kb20sCisrICAgICAgIyAyNTYgS2lCLWFsaWdu ZWQgaW1hZ2UgYmFzZSBiZXR3ZWVuIDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQgbGluawor KyAgICAgICMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9y ZSBzYnJrKDIpIHNwYWNlLgorKyAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19m bGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3 bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsg MTM0MjE3NzI4MGAgLW8gJGxpYicKKysgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSdzZWQgInMs XixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bX4kQ0Mg LXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29iamRpci8kc29u YW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8g MiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKyAgICAgIDs7CisrCisrICAgIGdu dSogfCBsaW51eCogfCB0cGYqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQorKyAg ICAgIHRtcF9kaWV0PW5vCisrICAgICAgaWYgdGVzdCAiJGhvc3Rfb3MiID0gbGludXgtZGlldGxp YmM7IHRoZW4KKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBkaWV0XCAqKSB0bXBfZGlldD15 ZXM7OwkjIGxpbnV4LWRpZXRsaWJjIHdpdGggc3RhdGljIGxpbmtpbmcgKCFkaWV0LWR5bikKKysJ ZXNhYworKyAgICAgIGZpCisrICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEVHUkVQICc6IHN1 cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGwgXAorKwkgJiYgdGVzdCAiJHRtcF9k aWV0IiA9IG5vCisrICAgICAgdGhlbgorKwl0bXBfYWRkZmxhZz0KKysJdG1wX3NoYXJlZGZsYWc9 Jy1zaGFyZWQnCisrCWNhc2UgJGNjX2Jhc2VuYW1lLCRob3N0X2NwdSBpbgorKyAgICAgICAgcGdj YyopCQkJCSMgUG9ydGxhbmQgR3JvdXAgQyBjb21waWxlcgorKwkgIHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwi OyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5p ZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAk e3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZycKKysJ ICA7OworKwlwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSogfCBwZ2ZvcnRyYW4qKQorKwkJCQkJIyBQ b3J0bGFuZCBHcm91cCBmNzcgYW5kIGY5MCBjb21waWxlcnMKKysJICB3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYz0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJc IjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVu aWVuY2UsJGNvbnZcIjsgZG9uZTsgZnVuY19lY2hvX2FsbCBcIiRuZXdfY29udmVuaWVuY2VcImAg JHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcgLU1u b21haW4nIDs7CisrCWVjYyosaWE2NCogfCBpY2MqLGlhNjQqKQkjIEludGVsIEMgY29tcGlsZXIg b24gaWE2NAorKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1pYycgOzsKKysJZWZjKixpYTY0KiB8 IGlmb3J0KixpYTY0KikJIyBJbnRlbCBGb3J0cmFuIGNvbXBpbGVyIG9uIGlhNjQKKysJICB0bXBf YWRkZmxhZz0nIC1pX2R5bmFtaWMgLW5vZm9yX21haW4nIDs7CisrCWlmYyogfCBpZm9ydCopCQkJ IyBJbnRlbCBGb3J0cmFuIGNvbXBpbGVyCisrCSAgdG1wX2FkZGZsYWc9JyAtbm9mb3JfbWFpbicg OzsKKysJbGY5NSopCQkJCSMgTGFoZXkgRm9ydHJhbiA4LjEKKysJICB3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYz0KKysJICB0bXBfc2hhcmVkZmxhZz0nLS1zaGFyZWQnIDs7CisrCXhsW2NDXSogfCBi Z3hsW2NDXSogfCBtcGl4bFtjQ10qKSAjIElCTSBYTCBDIDguMCBvbiBQUEMgKGRlYWwgd2l0aCB4 bGYgYmVsb3cpCisrCSAgdG1wX3NoYXJlZGZsYWc9Jy1xbWtzaHJvYmonCisrCSAgdG1wX2FkZGZs YWc9IDs7CisrCW52Y2MqKQkjIEN1ZGEgQ29tcGlsZXIgRHJpdmVyIDIuMgorKwkgIHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVu aWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5l d19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5p ZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICBjb21waWxlcl9uZWVkc19vYmpl Y3Q9eWVzCisrCSAgOzsKKysJZXNhYworKwljYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4K KysJKlN1blwgQyopCQkJIyBTdW4gQyA1LjkKKysJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0n JHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZl bmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5l d19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5p ZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICBjb21waWxlcl9uZWVkc19vYmpl Y3Q9eWVzCisrCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7OworKwkqU3VuXCBGKikJCQkjIFN1biBG b3J0cmFuIDguMworKwkgIHRtcF9zaGFyZWRmbGFnPSctRycgOzsKKysJZXNhYworKwlhcmNoaXZl X2NtZHM9JyRDQyAnIiR0bXBfc2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisr CisrICAgICAgICBpZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0 aGVuCisrICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIgPiAk b3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwg c2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Cisr CSAgICBlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4K KysJICAgICRDQyAnIiR0bXBfc2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZlcnNp b24tc2NyaXB0ICR7d2x9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisrICAg ICAgICBmaQorKworKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwl4bGYqIHwgYmdmKiB8IGJneGxm KiB8IG1waXhsZiopCisrCSAgIyBJQk0gWEwgRm9ydHJhbiAxMC4xIG9uIFBQQyBjYW5ub3QgY3Jl YXRlIHNoYXJlZCBsaWJzIGl0c2VsZgorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSctLXdo b2xlLWFyY2hpdmUkY29udmVuaWVuY2UgLS1uby13aG9sZS1hcmNoaXZlJworKwkgIGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWM9CisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0nLXJw YXRoICRsaWJkaXInCisrCSAgYXJjaGl2ZV9jbWRzPSckTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVw bGlicyAkbGlua2VyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSAtbyAkbGliJworKwkgIGlmIHRlc3Qg Ingkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KKysJICAgIGFyY2hpdmVf ZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52 ZXJ+CisrCSAgICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8i ID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICAgZWNobyAibG9jYWw6ICo7 IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAgICAgICRMRCAtc2hhcmVk ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIC12ZXJzaW9u LXNjcmlwdCAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKKysJICBmaQorKwkg IDs7CisrCWVzYWMKKysgICAgICBlbHNlCisrICAgICAgICBsZF9zaGxpYnM9bm8KKysgICAgICBm aQorKyAgICAgIDs7CisrCisrICAgIG5ldGJzZCopCisrICAgICAgaWYgZWNobyBfX0VMRl9fIHwg JENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KKysJYXJjaGl2ZV9jbWRz PSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbyAkbGli JworKwl3bGFyYz0KKysgICAgICBlbHNlCisrCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1v ICRsaWInCisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4t c3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKyAgICAgIGZpCisrICAg ICAgOzsKKysKKysgICAgc29sYXJpcyopCisrICAgICAgaWYgJExEIC12IDI+JjEgfCAkR1JFUCAn QkZEIDJcLjgnID4gL2Rldi9udWxsOyB0aGVuCisrCWxkX3NobGlicz1ubworKwljYXQgPDxfTFRf RU9GIDE+JjIKKysKKysqKiogV2FybmluZzogVGhlIHJlbGVhc2VzIDIuOC4qIG9mIHRoZSBHTlUg bGlua2VyIGNhbm5vdCByZWxpYWJseQorKyoqKiBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBT b2xhcmlzIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKKysqKiogaXMgZGlzYWJsaW5nIHNo YXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCisrKioq IGJpbnV0aWxzIHRvIHJlbGVhc2UgMi45LjEgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0 byBtb2RpZnkKKysqKiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhh dCB0aGUgbmF0aXZlIGxpbmtlciBpcworKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgorKwor K19MVF9FT0YKKysgICAgICBlbGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRl ZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckQ0Mg LXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3 bCRzb25hbWUgLW8gJGxpYicKKysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7 d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAg ICAgZWxzZQorKwlsZF9zaGxpYnM9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5 c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCopCisrICAg ICAgY2FzZSBgJExEIC12IDI+JjFgIGluCisrICAgICAgICAqXCBbMDFdLiogfCAqXCAyLlswLTld LiogfCAqXCAyLjFbMC01XS4qKQorKwlsZF9zaGxpYnM9bm8KKysJY2F0IDw8X0xUX0VPRiAxPiYy CisrCisrKioqIFdhcm5pbmc6IFJlbGVhc2VzIG9mIHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIu MTYuOTEuMC4zIGNhbiBub3QKKysqKiogcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMg b24gU0NPIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKKysqKiogaXMgZGlzYWJsaW5nIHNo YXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCisrKioq IGJpbnV0aWxzIHRvIHJlbGVhc2UgMi4xNi45MS4wLjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlv biBpcyB0byBtb2RpZnkKKysqKiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24g c28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcworKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0 LgorKworK19MVF9FT0YKKysJOzsKKysJKikKKysJICAjIEZvciBzZWN1cml0eSByZWFzb25zLCBp dCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB5b3UgYWx3YXlzCisrCSAgIyB1c2UgYWJzb2x1 dGUgcGF0aHMgZm9yIG5hbWluZyBzaGFyZWQgbGlicmFyaWVzLCBhbmQgZXhjbHVkZSB0aGUKKysJ ICAjIERUX1JVTlBBVEggdGFnIGZyb20gZXhlY3V0YWJsZXMgYW5kIGxpYnJhcmllcy4gIEJ1dCBk b2luZyBzbworKwkgICMgcmVxdWlyZXMgdGhhdCB5b3UgY29tcGlsZSBldmVyeXRoaW5nIHR3aWNl LCB3aGljaCBpcyBhIHBhaW4uCisrCSAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3Vw cG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorKwkgICAgaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKwkgICAgYXJjaGl2 ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9 JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9s cyAtbyAkbGliJworKwkgIGVsc2UKKysJICAgIGxkX3NobGlicz1ubworKwkgIGZpCisrCTs7Cisr ICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIHN1bm9zNCopCisrICAgICAgYXJjaGl2ZV9j bWRzPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIHdsYXJjPQorKyAgICAgIGhhcmRjb2RlX2Rp cmVjdD15ZXMKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgOzsKKysK KysgICAgKikKKysgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQg dGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVfY21kcz0nJENDIC1z aGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lIC1vICRsaWInCisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3ds fS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKyAgICAg IGVsc2UKKysJbGRfc2hsaWJzPW5vCisrICAgICAgZmkKKysgICAgICA7OworKyAgICBlc2FjCisr CisrICAgIGlmIHRlc3QgIiRsZF9zaGxpYnMiID0gbm87IHRoZW4KKysgICAgICBydW5wYXRoX3Zh cj0KKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPQorKyAgICAgIGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlYz0KKysgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KKysgICAgZmkK KysgIGVsc2UKKysgICAgIyBQT1JUTUUgZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lz dGVtJ3MgbGlua2VyIChub3QgR05VIGxkKQorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFp eDMqKQorKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPXVuc3VwcG9ydGVkCisrICAgICAgYWx3 YXlzX2V4cG9ydF9zeW1ib2xzPXllcworKyAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRMRCAt byAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mg LWJFOiRleHBvcnRfc3ltYm9scyAtVDUxMiAtSDUxMiAtYk06U1JFfiRBUiAkQVJfRkxBR1MgJGxp YiAkb3V0cHV0X29iamRpci8kc29uYW1lJworKyAgICAgICMgTm90ZTogdGhpcyBsaW5rZXIgaGFy ZGNvZGVzIHRoZSBkaXJlY3RvcmllcyBpbiBMSUJQQVRIIGlmIHRoZXJlCisrICAgICAgIyBhcmUg bm8gZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGJ5IC1MLgorKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9 eWVzCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAteiAiJGx0X3Byb2dfY29t cGlsZXJfc3RhdGljIjsgdGhlbgorKwkjIE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0 YXRpYyBsaW5raW5nIGlzIHN1cHBvcnRlZCB3aXRoIGEKKysJIyBicm9rZW4gY29sbGVjdDIuCisr CWhhcmRjb2RlX2RpcmVjdD11bnN1cHBvcnRlZAorKyAgICAgIGZpCisrICAgICAgOzsKKysKKysg ICAgYWl4WzQtOV0qKQorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisr CSMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwg c28gd2UgZG9uJ3QKKysJIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCisrCWFpeF91c2Vf cnVudGltZWxpbmtpbmc9bm8KKysJZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKKysJbm9fZW50cnlf ZmxhZz0iIgorKyAgICAgIGVsc2UKKysJIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gd2Ug ZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCisrCSMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlY IG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KKysJIyBBbHNvLCBBSVgg bm0gdHJlYXRzIHdlYWsgZGVmaW5lZCBzeW1ib2xzIGxpa2Ugb3RoZXIgZ2xvYmFsCisrCSMgZGVm aW5lZCBzeW1ib2xzLCB3aGVyZWFzIEdOVSBubSBtYXJrcyB0aGVtIGFzICJXIi4KKysJaWYgJE5N IC1WIDI+JjEgfCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgorKwkgIGV4cG9ydF9zeW1i b2xzX2NtZHM9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAo KChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpIHx8IChcJCAy ID09ICJXIikpICYmIChzdWJzdHIoXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0n XCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKysJZWxzZQorKwkgIGV4cG9ydF9zeW1i b2xzX2NtZHM9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYg KCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKHN1 YnN0cihcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4g JGV4cG9ydF9zeW1ib2xzJworKwlmaQorKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCisrCisr CSMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1h bAorKwkjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hlcmUgaW4gTERGTEFH Uywgd2UKKysJIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KKysJY2FzZSAkaG9zdF9vcyBp biBhaXg0LlsyM118YWl4NC5bMjNdLip8YWl4WzUtOV0qKQorKwkgIGZvciBsZF9mbGFnIGluICRM REZMQUdTOyBkbworKwkgIGlmICh0ZXN0ICRsZF9mbGFnID0gIi1icnRsIiB8fCB0ZXN0ICRsZF9m bGFnID0gIi1XbCwtYnJ0bCIpOyB0aGVuCisrCSAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXll cworKwkgICAgYnJlYWsKKysJICBmaQorKwkgIGRvbmUKKysJICA7OworKwllc2FjCisrCisrCWV4 cF9zeW1fZmxhZz0nLWJleHBvcnQnCisrCW5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRyeScKKysgICAg ICBmaQorKworKyAgICAgICMgV2hlbiBsYXJnZSBleGVjdXRhYmxlcyBvciBzaGFyZWQgb2JqZWN0 cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4KKysgICAgICAjIGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcg dGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkKKysgICAgICAjIG9y IHByb2dyYW0gcmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBhZGQgLW1taW5pbWFsLXRv YyB0bworKyAgICAgICMgQ1hYRkxBR1MvQ0ZMQUdTIGZvciBnKysvZ2NjLiAgSW4gdGhlIGNhc2Vz IHdoZXJlIHRoYXQgaXMgbm90CisrICAgICAgIyBlbm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBh ZGQgLVdsLC1iYmlndG9jIHRvIExERkxBR1MuCisrCisrICAgICAgYXJjaGl2ZV9jbWRzPScnCisr ICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0 ZT15ZXMKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSc6JworKyAgICAgIGxpbmtf YWxsX2RlcGxpYnM9eWVzCisrICAgICAgZmlsZV9saXN0X3NwZWM9JyR7d2x9LWYsJworKworKyAg ICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5b MDEyXXxhaXg0LlswMTJdLiopCisrCSMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gQUlYIDQu MiBhbmQgbG93ZXIsIHRoZSBjaGVjaworKwkjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9l c24ndCB3b3JrIHVuZGVyIDQuMysKKysJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9n LW5hbWU9Y29sbGVjdDJgCisrCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYKKysJICAg c3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251 bGwKKysJICB0aGVuCisrCSAgIyBXZSBoYXZlIHJld29ya2VkIGNvbGxlY3QyCisrCSAgOgorKwkg IGVsc2UKKysJICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCisrCSAgaGFyZGNvZGVfZGlyZWN0PXVu c3VwcG9ydGVkCisrCSAgIyBJdCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3 aGVuIHRoZSB1bmluc3RhbGxlZAorKwkgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJw YXRoLiAgU2V0dGluZyBoYXJkY29kZV9taW51c19MCisrCSAgIyB0byB1bnN1cHBvcnRlZCBmb3Jj ZXMgcmVsaW5raW5nCisrCSAgaGFyZGNvZGVfbWludXNfTD15ZXMKKysJICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisrCSAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0K KysJICBmaQorKwkgIDs7CisrCWVzYWMKKysJc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCisrCWlmIHRl c3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgIHNoYXJlZF9mbGFn PSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJworKwlmaQorKyAgICAgIGVsc2UKKysJIyBub3QgdXNp bmcgZ2NjCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgVmlzdWFsQWdl IEMrKywgVmVyc2lvbiA1LjUgZm9yIEFJWCA1TCBmb3IgSUEtNjQsIEJldGEgMyBSZWxlYXNlCisr CSMgY2hva2VzIG9uIC1XbCwtRy4gVGhlIGZvbGxvd2luZyBsaW5lIGlzIGNvcnJlY3Q6CisrCSAg c2hhcmVkX2ZsYWc9Jy1HJworKwllbHNlCisrCSAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxp bmtpbmciID0geWVzOyB0aGVuCisrCSAgICBzaGFyZWRfZmxhZz0nJHt3bH0tRycKKysJICBlbHNl CisrCSAgICBzaGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJworKwkgIGZpCisrCWZpCisrICAgICAg ZmkKKysKKysgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LWJleHBhbGwnCisr ICAgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJl Z2lubmluZyB3aXRoCisrICAgICAgIyB1bmRlcnNjb3JlIChfKSwgc28gaXQgaXMgYmV0dGVyIHRv IGdlbmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xzIHRvIGV4cG9ydC4KKysgICAgICBhbHdheXNfZXhw b3J0X3N5bWJvbHM9eWVzCisrICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmci ID0geWVzOyB0aGVuCisrCSMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRp bWUgbG9hZGluZyBmbGFncyAoLWJydGwpLAorKwkjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBl cnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrCWFsbG93X3VuZGVmaW5l ZF9mbGFnPSctYmVyb2snCisrICAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRo IGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KKysgICAgICAgICMgZW1wdHkgZXhlY3V0YWJs ZS4KKysgICAgICAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQK KysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsK KysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5P IjsgdGhlbiA6CisrCisrbHRfYWl4X2xpYnBhdGhfc2VkPScKKysgICAgL0ltcG9ydCBGaWxlIFN0 cmluZ3MvLC9eJC8geworKwkvXjAvIHsKKysJICAgIHMvXjAgICpcKC4qXCkkL1wxLworKwkgICAg cAorKwl9CisrICAgIH0nCisrYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0 IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrIyBDaGVj ayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgorK2lmIHRl c3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KKysgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNv bmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0 aF9zZWQiYAorK2ZpCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IFwKKysgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0 ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsg ZmkKKysKKysgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LWJsaWJwYXRo OiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSck Q0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRu b19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmlu ZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiBmdW5jX2VjaG9fYWxsICIke3dsfSR7YWxsb3dfdW5kZWZp bmVkX2ZsYWd9IjsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5 bWJvbHMgJHNoYXJlZF9mbGFnIgorKyAgICAgIGVsc2UKKysJaWYgdGVzdCAiJGhvc3RfY3B1IiA9 IGlhNjQ7IHRoZW4KKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1SICRsaWJk aXI6L3Vzci9saWI6L2xpYicKKysJICBhbGxvd191bmRlZmluZWRfZmxhZz0iLXogbm9kZWZzIgor KwkgIGFyY2hpdmVfZXhwc3ltX2NtZHM9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicg JGNvbXBpbGVyX2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30gJyJcJHt3bH0kZXhw X3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMiCisrCWVsc2UKKysJICMgRGV0ZXJtaW5lIHRoZSBk ZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgorKwkgIyBlbXB0eSBl eGVjdXRhYmxlLgorKwkgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4 dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAg OworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5F Tk8iOyB0aGVuIDoKKysKKytsdF9haXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1wb3J0IEZpbGUg U3RyaW5ncy8sL14kLyB7CisrCS9eMC8geworKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCisrCSAg ICBwCisrCX0KKysgICAgfScKKythaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVl eHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKysjIENo ZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCisraWYg dGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQg Y29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJw YXRoX3NlZCJgCisrZmkKKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK2lm IHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4gYWl4X2xpYnBhdGg9Ii91c3IvbGliOi9saWIi OyBmaQorKworKwkgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tYmxpYnBhdGg6JGxp YmRpcjonIiRhaXhfbGlicGF0aCIKKysJICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBv dGhlciBydW4gdGltZSBsb2FkaW5nIGZsYWdzLAorKwkgICMgLWJlcm9rIHdpbGwgbGluayB3aXRo b3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKysJICBub191bmRl ZmluZWRfZmxhZz0nICR7d2x9LWJlcm5vdG9rJworKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPScg JHt3bH0tYmVyb2snCisrCSAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKwkg ICAgIyBXZSBvbmx5IHVzZSB0aGlzIGNvZGUgZm9yIEdOVSBsZHMgdGhhdCBzdXBwb3J0IC0td2hv bGUtYXJjaGl2ZS4KKysJICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScke3dsfS0td2hvbGUt YXJjaGl2ZSRjb252ZW5pZW5jZSAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICBlbHNlCisr CSAgICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3Rz IGZyb20gYXJjaGl2ZXMKKysJICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSckY29udmVuaWVu Y2UnCisrCSAgZmkKKysJICBhcmNoaXZlX2NtZHNfbmVlZF9sYz15ZXMKKysJICAjIFRoaXMgaXMg c2ltaWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQgbGlicmFy aWVzLgorKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHM9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91 dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxh Z31+JEFSICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1 dF9vYmpkaXIvJHNvbmFtZScKKysJZmkKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFt aWdhb3MqKQorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgcG93ZXJwYykKKysgICAg ICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisrICAgICAg ICAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysgICAgICAgICAgICBh cmNoaXZlX2V4cHN5bV9jbWRzPScnCisrICAgICAgICA7OworKyAgICAgIG02OGspCisrICAgICAg ICAgICAgYXJjaGl2ZV9jbWRzPSckUk0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4k RUNITyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5 LmRhdGF+JEVDSE8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4 bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29i amRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIg Pj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxp Ym9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIp JworKyAgICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKysg ICAgICAgICAgICBoYXJkY29kZV9taW51c19MPXllcworKyAgICAgICAgOzsKKysgICAgICBlc2Fj CisrICAgICAgOzsKKysKKysgICAgYnNkaVs0NV0qKQorKyAgICAgIGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlYz0tcmR5bmFtaWMKKysgICAgICA7OworKworKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwg cHczMiogfCBjZWdjYyopCisrICAgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRs eSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcKKysgICAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysr LgorKyAgICAgICMgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyBpcyBhY3R1YWxseSBtZWFuaW5n bGVzcywgYXMgdGhlcmUgaXMKKysgICAgICAjIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgorKyAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyAnCisrICAgICAgYWxsb3dfdW5kZWZpbmVk X2ZsYWc9dW5zdXBwb3J0ZWQKKysgICAgICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxl cywgbm90IC5hIGZpbGVzLgorKyAgICAgIGxpYmV4dD1saWIKKysgICAgICAjIFRlbGwgbHRtYWlu IHRvIG1ha2UgLmRsbCBmaWxlcywgbm90IC5zbyBmaWxlcy4KKysgICAgICBzaHJleHRfY21kcz0i LmRsbCIKKysgICAgICAjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhh Y2suCisrICAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLW8gJGxpYiAkbGlib2JqcyAkY29tcGlsZXJf ZmxhZ3MgYGZ1bmNfZWNob19hbGwgIiRkZXBsaWJzIiB8ICRTRUQgJ1wnJ3MvIC1sYyQvLydcJydg IC1saW5rIC1kbGx+bGlua25hbWVzPScKKysgICAgICAjIFRoZSBsaW5rZXIgd2lsbCBhdXRvbWF0 aWNhbGx5IGJ1aWxkIGEgLmxpYiBmaWxlIGlmIHdlIGJ1aWxkIGEgRExMLgorKyAgICAgIG9sZF9h cmNoaXZlX2Zyb21fbmV3X2NtZHM9J3RydWUnCisrICAgICAgIyBGSVhNRTogU2hvdWxkIGxldCB0 aGUgdXNlciBzcGVjaWZ5IHRoZSBsaWIgcHJvZ3JhbS4KKysgICAgICBvbGRfYXJjaGl2ZV9jbWRz PSdsaWIgLU9VVDokb2xkbGliJG9sZG9ianMkb2xkX2RlcGxpYnMnCisrICAgICAgZml4X3NyY2Zp bGVfcGF0aD0nYGN5Z3BhdGggLXcgIiRzcmNmaWxlImAnCisrICAgICAgZW5hYmxlX3NoYXJlZF93 aXRoX3N0YXRpY19ydW50aW1lcz15ZXMKKysgICAgICA7OworKworKyAgICBkYXJ3aW4qIHwgcmhh cHNvZHkqKQorKworKworKyAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9bm8KKysgIGhhcmRjb2RlX2Rp cmVjdD1ubworKyAgaGFyZGNvZGVfYXV0b21hdGljPXllcworKyAgaGFyZGNvZGVfc2hsaWJwYXRo X3Zhcj11bnN1cHBvcnRlZAorKyAgaWYgdGVzdCAiJGx0X2N2X2xkX2ZvcmNlX2xvYWQiID0gInll cyI7IHRoZW4KKysgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9J2Bmb3IgY29udiBpbiAkY29u dmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwi JG5ld19jb252ZW5pZW5jZSAke3dsfS1mb3JjZV9sb2FkLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNo b19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgJworKyAgZWxzZQorKyAgICB3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlYz0nJworKyAgZmkKKysgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCisrICBhbGxvd191 bmRlZmluZWRfZmxhZz0iJF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkIgorKyAgY2FzZSAkY2NfYmFz ZW5hbWUgaW4KKysgICAgIGlmb3J0KikgX2x0X2Rhcl9jYW5fc2hhcmVkPXllcyA7OworKyAgICAg KikgX2x0X2Rhcl9jYW5fc2hhcmVkPSRHQ0MgOzsKKysgIGVzYWMKKysgIGlmIHRlc3QgIiRfbHRf ZGFyX2Nhbl9zaGFyZWQiID0gInllcyI7IHRoZW4KKysgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19j bWQ9ZnVuY19lY2hvX2FsbAorKyAgICBhcmNoaXZlX2NtZHM9IlwkQ0MgLWR5bmFtaWNsaWIgXCRh bGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGls ZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICRfbHRf ZGFyX3NpbmdsZV9tb2Qke19sdF9kc3ltdXRpbH0iCisrICAgIG1vZHVsZV9jbWRzPSJcJENDIFwk YWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJz IFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kc3ltdXRpbH0iCisrICAgIGFyY2hpdmVfZXhwc3ltX2Nt ZHM9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7 bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5l ZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5z dGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJHtfbHRfZGFyX3NpbmdsZV9t b2R9JHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKysgICAgbW9kdWxlX2V4 cHN5bV9jbWRzPSJzZWQgLWUgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRf b2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxvd191bmRlZmluZWRf ZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFn cyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisrCisrICBlbHNlCisrICBs ZF9zaGxpYnM9bm8KKysgIGZpCisrCisrICAgICAgOzsKKysKKysgICAgZGd1eCopCisrICAgICAg YXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGli ZGlyJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICA7OworKworKyAg ICBmcmVlYnNkMSopCisrICAgICAgbGRfc2hsaWJzPW5vCisrICAgICAgOzsKKysKKysgICAgIyBG cmVlQlNEIDIuMi5bMDEyXSBhbGxvd3MgdXMgdG8gaW5jbHVkZSBjKytydDAubyB0byBnZXQgQysr IGNvbnN0cnVjdG9yCisrICAgICMgc3VwcG9ydC4gIEZ1dHVyZSB2ZXJzaW9ucyBkbyB0aGlzIGF1 dG9tYXRpY2FsbHksIGJ1dCBhbiBleHBsaWNpdCBjKytydDAubworKyAgICAjIGRvZXMgbm90IGJy ZWFrIGFueXRoaW5nLCBhbmQgaGVscHMgc2lnbmlmaWNhbnRseSAoYXQgdGhlIGNvc3Qgb2YgYSBs aXR0bGUKKysgICAgIyBleHRyYSBzcGFjZSkuCisrICAgIGZyZWVic2QyLjIqKQorKyAgICAgIGFy Y2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncyAvdXNyL2xpYi9jKytydDAubycKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjPSctUiRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhh cmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICA7OworKworKyAgICAjIFVuZm9ydHVuYXRl bHksIG9sZGVyIHZlcnNpb25zIG9mIEZyZWVCU0QgMiBkbyBub3QgaGF2ZSB0aGlzIGZlYXR1cmUu CisrICAgIGZyZWVic2QyKikKKysgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVf ZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisrICAgICAgaGFyZGNvZGVf c2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisrICAgICMgRnJlZUJTRCAzIGFuZCBncmVh dGVyIHVzZXMgZ2NjIC1zaGFyZWQgdG8gZG8gc2hhcmVkIGxpYnJhcmllcy4KKysgICAgZnJlZWJz ZCogfCBkcmFnb25mbHkqKQorKyAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKysg ICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgOzsKKysKKysgICAgaHB1eDkq KQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWFyY2hpdmVfY21kcz0nJFJN ICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQgLWZQSUMgJHt3bH0rYiAke3dsfSRp bnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12 ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICBlbHNlCisrCWFyY2hpdmVfY21k cz0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JExEIC1iICtiICRpbnN0YWxsX2xpYmRpciAt byAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+ dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8k c29uYW1lICRsaWInCisrICAgICAgZmkKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj PScke3dsfStiICR7d2x9JGxpYmRpcicKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y PToKKysgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisrCisrICAgICAgIyBoYXJkY29kZV9taW51 c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysgICAgICAjIGJ1dCBhcyB0aGUg ZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysgICAgICBoYXJkY29kZV9taW51c19M PXllcworKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tRScKKysgICAgICA7 OworKworKyAgICBocHV4MTAqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzICYmIHRlc3Qg IiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkIC1m UElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQorKwlh cmNoaXZlX2NtZHM9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICBpZiB0 ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Yz0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9 JytiICRsaWJkaXInCisrCWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorKwloYXJkY29kZV9k aXJlY3Q9eWVzCisrCWhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT15ZXMKKysJZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjPScke3dsfS1FJworKwkjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkg aW4gdGhlIHNlYXJjaCBQQVRILAorKwkjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0 aGUgbGlicmFyeS4KKysJaGFyZGNvZGVfbWludXNfTD15ZXMKKysgICAgICBmaQorKyAgICAgIDs7 CisrCisrICAgIGhwdXgxMSopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAi JHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCWNhc2UgJGhvc3RfY3B1IGluCisrCWhwcGEqNjQq KQorKwkgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHt3bH0raCAke3dsfSRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJaWE2NCop CisrCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFt ZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKKysJICA7OworKwkqKQorKwkgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgLWZQ SUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwllc2FjCisr ICAgICAgZWxzZQorKwljYXNlICRob3N0X2NwdSBpbgorKwlocHBhKjY0KikKKysJICBhcmNoaXZl X2NtZHM9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwlpYTY0KikKKysJICBhcmNoaXZlX2NtZHM9 JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwkqKQorKworKwkg ICMgT2xkZXIgdmVyc2lvbnMgb2YgdGhlIDExLjAwIGNvbXBpbGVyIGRvIG5vdCB1bmRlcnN0YW5k IC1iIHlldAorKwkgICMgKEhQOTI0NTMtMDEgQS4xMS4wMS4yMCBkb2Vzbid0LCBIUDkyNDUzLTAx IEIuMTEuWC4zNTE3NS0zNTE3Ni5HUCBkb2VzKQorKwkgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgJENDIHVuZGVyc3RhbmRzIC1iIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBpZiAkQ0MgdW5kZXJzdGFuZHMgLWIuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfX2Irc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9wcm9nX2NvbXBpbGVy X19iPW5vCisrICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysgICBMREZMQUdTPSIkTERGTEFH UyAtYiIKKysgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRh Y19leHQKKysgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBj b25mdGVzdCRhY19leGVleHQ7IHRoZW4KKysgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJu IGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkg bm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsg dGhlbgorKyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgorKyAg ICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKKysgICAgICAgJEVDSE8gIiRfbHRfbGlua2VyX2Jv aWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAorKyAgICAgICAkU0VEICcv XiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKKysgICAgICAgaWYgZGlm ZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgICBs dF9jdl9wcm9nX2NvbXBpbGVyX19iPXllcworKyAgICAgICBmaQorKyAgICAgZWxzZQorKyAgICAg ICBsdF9jdl9wcm9nX2NvbXBpbGVyX19iPXllcworKyAgICAgZmkKKysgICBmaQorKyAgICRSTSAt ciBjb25mdGVzdCoKKysgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgorKworK2ZpCisreyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2Nv bXBpbGVyX19iIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfX2IiID4mNjsg fQorKworK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9fYiIgPSB4eWVzOyB0aGVuCisr ICAgIGFyY2hpdmVfY21kcz0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3 bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCisrZWxzZQorKyAgICBhcmNoaXZlX2NtZHM9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0 YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrZmkK KysKKysJICA7OworKwllc2FjCisrICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVf bGQiID0gbm87IHRoZW4KKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3ds fSRsaWJkaXInCisrCWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorKworKwljYXNlICRob3N0 X2NwdSBpbgorKwlocHBhKjY0KnxpYTY0KikKKysJICBoYXJkY29kZV9kaXJlY3Q9bm8KKysJICBo YXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrCSAgOzsKKysJKikKKysJICBoYXJkY29kZV9kaXJl Y3Q9eWVzCisrCSAgaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPXllcworKwkgIGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlYz0nJHt3bH0tRScKKysKKysJICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCBy ZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAorKwkgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0 aW9uIG9mIHRoZSBsaWJyYXJ5LgorKwkgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisrCSAgOzsKKysJ ZXNhYworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9u c3RvcHV4KikKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlhcmNoaXZlX2Nt ZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1z b25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxs ICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0 cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkjIFRyeSB0 byB1c2UgdGhlIC1leHBvcnRlZF9zeW1ib2wgbGQgb3B0aW9uLCBpZiBpdCBkb2VzIG5vdAorKwkj IHdvcmssIGFzc3VtZSB0aGF0IC1leHBvcnRzX2ZpbGUgZG9lcyBub3Qgd29yayBlaXRoZXIgYW5k CisrCSMgaW1wbGljaXRseSBleHBvcnQgYWxsIHN5bWJvbHMuCisrICAgICAgICBzYXZlX0xERkxB R1M9IiRMREZMQUdTIgorKyAgICAgICAgTERGTEFHUz0iJExERkxBR1MgLXNoYXJlZCAke3dsfS1l eHBvcnRlZF9zeW1ib2wgJHt3bH1mb28gJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9L2Rldi9u dWxsIgorKyAgICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4 dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKytpbnQgZm9vKHZvaWQpIHt9CisrX0FDRU9GCisr aWYgYWNfZm5fY190cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorKyAgYXJjaGl2ZV9leHBzeW1f Y21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19h bGwgIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJgICR7d2x9LXVwZGF0ZV9yZWdp c3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zICR7d2x9LWV4cG9ydHNfZmls ZSAke3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKworK2ZpCisrcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisrICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBj b25mdGVzdC4kYWNfZXh0CisrICAgICAgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgorKyAgICAg IGVsc2UKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5j X2VjaG9fYWxsICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtv dXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJYXJjaGl2ZV9leHBzeW1fY21k cz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUg JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNldF92ZXJz aW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9j YXRpb25zIC1leHBvcnRzX2ZpbGUgJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAgICAgZmkK KysgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sYz0nbm8nCisrICAgICAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3I9OgorKyAgICAgIGluaGVyaXRfcnBhdGg9eWVzCisrICAgICAgbGlua19h bGxfZGVwbGlicz15ZXMKKysgICAgICA7OworKworKyAgICBuZXRic2QqKQorKyAgICAgIGlmIGVj aG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisr CWFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFncycgICMgYS5vdXQKKysgICAgICBlbHNlCisrCWFyY2hpdmVfY21kcz0nJExE IC1zaGFyZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgICAgICMg RUxGCisrICAgICAgZmkKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJk aXInCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0 aF92YXI9bm8KKysgICAgICA7OworKworKyAgICBuZXdzb3M2KQorKyAgICAgIGFyY2hpdmVfY21k cz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2Zs YWdzJworKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKysgICAgICBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvcj06CisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAg IDs7CisrCisrICAgICpudG8qIHwgKnFueCopCisrICAgICAgOzsKKysKKysgICAgb3BlbmJzZCop CisrICAgICAgaWYgdGVzdCAtZiAvdXNyL2xpYmV4ZWMvbGQuc287IHRoZW4KKysJaGFyZGNvZGVf ZGlyZWN0PXllcworKwloYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrCWhhcmRjb2RlX2RpcmVj dF9hYnNvbHV0ZT15ZXMKKysJaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwg JEdSRVAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIu OC1wb3dlcnBjIjsgdGhlbgorKwkgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFn IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIGFyY2hpdmVf ZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3lt Ym9scycKKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCwkbGliZGly JworKwkgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tRScKKysJZWxzZQorKwkgIGNh c2UgJGhvc3Rfb3MgaW4KKysJICAgb3BlbmJzZFswMV0uKiB8IG9wZW5ic2QyLlswLTddIHwgb3Bl bmJzZDIuWzAtN10uKikKKysJICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCSAgICAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJworKwkgICAgIDs7CisrCSAgICopCisrCSAgICAgYXJj aGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3 bH0tcnBhdGgsJGxpYmRpcicKKysJICAgICA7OworKwkgIGVzYWMKKysJZmkKKysgICAgICBlbHNl CisrCWxkX3NobGlicz1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgb3MyKikKKysg ICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisrICAgICAgaGFyZGNv ZGVfbWludXNfTD15ZXMKKysgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAor KyAgICAgIGFyY2hpdmVfY21kcz0nJEVDSE8gIkxJQlJBUlkgJGxpYm5hbWUgSU5JVElOU1RBTkNF IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyAiREVTQ1JJUFRJT04gXCIkbGli bmFtZVwiIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZWNobyBEQVRBID4+ICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLmRlZn5lY2hvICIgU0lOR0xFIE5PTlNIQVJFRCIgPj4gJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVjaG8gRVhQT1JUUyA+PiAkb3V0cHV0X29iamRpci8kbGli bmFtZS5kZWZ+ZW14ZXhwICRsaWJvYmpzID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4k Q0MgLVpkbGwgLVpjcnRkbGwgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJworKyAgICAgIG9sZF9hcmNoaXZlX2Zyb21f bmV3X2NtZHM9J2VteGltcCAtbyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5hICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLmRlZicKKysgICAgICA7OworKworKyAgICBvc2YzKikKKysgICAgICBpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlhbGxvd191bmRlZmluZWRfZmxhZz0nICR7d2x9LWV4 cGVjdF91bnJlc29sdmVkICR7d2x9XConCisrCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQke2Fs bG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hv X2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3Jl Z2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysgICAg ICBlbHNlCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJwor KwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZl cnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBk YXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrICAg ICAgZmkKKysgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sYz0nbm8nCisrICAgICAgaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorKyAgICAgIDs7CisrCisrICAgIG9zZjQqIHwgb3NmNSop CSMgYXMgb3NmMyogd2l0aCB0aGUgYWRkaXRpb24gb2YgLW1zeW0gZmxhZworKyAgICAgIGlmIHRl c3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnPScgJHt3bH0tZXhw ZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3ds fS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYm IGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJgICR7d2x9 LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRs aWInCisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRp cicKKysgICAgICBlbHNlCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnPScgLWV4cGVjdF91bnJlc29s dmVkIFwqJworKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxh Z30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFt ZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNldF92ZXJzaW9uICR2 ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25z IC1vICRsaWInCisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9z eW1ib2xzYDsgZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAk bGliLmV4cDsgZG9uZTsgcHJpbnRmICIlc1xcbiIgIi1oaWRkZW4iPj4gJGxpYi5leHB+CisrCSRD QyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4 cCAkY29tcGlsZXJfZmxhZ3MgJGxpYm9ianMgJGRlcGxpYnMgLXNvbmFtZSAkc29uYW1lIGB0ZXN0 IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBk YXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+JFJNICRs aWIuZXhwJworKworKwkjIEJvdGggYyBhbmQgY3h4IGNvbXBpbGVyIHN1cHBvcnQgLXJwYXRoIGRp cmVjdGx5CisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1ycGF0aCAkbGliZGlyJworKyAg ICAgIGZpCisrICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9J25vJworKyAgICAgIGhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3I9OgorKyAgICAgIDs7CisrCisrICAgIHNvbGFyaXMqKQorKyAgICAg IG5vX3VuZGVmaW5lZF9mbGFnPScgLXogZGVmcycKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHll czsgdGhlbgorKwl3bGFyYz0nJHt3bH0nCisrCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHt3 bH0teiAke3dsfXRleHQgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xv YmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkv XDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJICAk Q0MgLXNoYXJlZCAke3dsfS16ICR7d2x9dGV4dCAke3dsfS1NICR7d2x9JGxpYi5leHAgJHt3bH0t aCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+ JFJNICRsaWIuZXhwJworKyAgICAgIGVsc2UKKysJY2FzZSBgJENDIC1WIDI+JjFgIGluCisrCSoi Q29tcGlsZXJzIDUuMCIqKQorKwkgIHdsYXJjPScnCisrCSAgYXJjaGl2ZV9jbWRzPSckTEQgLUck e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncycKKysJICBhcmNoaXZlX2V4cHN5bV9jbWRzPSdlY2hvICJ7IGdsb2Jh bDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wx Oy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSAgJExE IC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLU0gJGxpYi5leHAgLWggJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKwkgIDs7Cisr CSopCisrCSAgd2xhcmM9JyR7d2x9JworKwkgIGFyY2hpdmVfY21kcz0nJENDIC1HJHthbGxvd191 bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKKysJICBhcmNoaXZlX2V4cHN5bV9jbWRzPSdlY2hvICJ7IGdsb2JhbDoiID4g JGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSAgJENDIC1HJHth bGxvd191bmRlZmluZWRfZmxhZ30gLU0gJGxpYi5leHAgLWggJHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisrCSAgOzsKKysJZXNh YworKyAgICAgIGZpCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGly JworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICBjYXNlICRob3N0X29z IGluCisrICAgICAgc29sYXJpczIuWzAtNV0gfCBzb2xhcmlzMi5bMC01XS4qKSA7OworKyAgICAg ICopCisrCSMgVGhlIGNvbXBpbGVyIGRyaXZlciB3aWxsIGNvbWJpbmUgYW5kIHJlb3JkZXIgbGlu a2VyIG9wdGlvbnMsCisrCSMgYnV0IHVuZGVyc3RhbmRzIGAteiBsaW5rZXJfZmxhZycuICBHQ0Mg ZGlzY2FyZHMgaXQgd2l0aG91dCBgJHdsJywKKysJIyBidXQgaXMgY2FyZWZ1bCBlbm91Z2ggbm90 IHRvIHJlb3JkZXIuCisrCSMgU3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMgMi42IChtYXliZSAyLjUu MT8pCisrCWlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCSAgd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWM9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1k ZWZhdWx0ZXh0cmFjdCcKKysJZWxzZQorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScteiBh bGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRyYWN0JworKwlmaQorKwk7OworKyAg ICAgIGVzYWMKKysgICAgICBsaW5rX2FsbF9kZXBsaWJzPXllcworKyAgICAgIDs7CisrCisrICAg IHN1bm9zNCopCisrICAgICAgaWYgdGVzdCAieCRob3N0X3ZlbmRvciIgPSB4c2VxdWVudDsgdGhl bgorKwkjIFVzZSAkQ0MgdG8gbGluayB1bmRlciBzZXF1ZW50LCBiZWNhdXNlIGl0IHRocm93cyBp biBzb21lIGV4dHJhIC5vCisrCSMgZmlsZXMgdGhhdCBtYWtlIC5pbml0IGFuZCAuZmluaSBzZWN0 aW9ucyB3b3JrLgorKwlhcmNoaXZlX2NtZHM9JyRDQyAtRyAke3dsfS1oICRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQorKwlhcmNo aXZlX2NtZHM9JyRMRCAtYXNzZXJ0IHB1cmUtdGV4dCAtQnN0YXRpYyAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAg ICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1u bworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0KQorKyAgICAgIGNhc2UgJGhvc3RfdmVuZG9yIGlu CisrCXNuaSkKKysJICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJICBoYXJkY29kZV9kaXJlY3Q9eWVzICMg aXMgdGhpcyByZWFsbHkgdHJ1ZT8/PworKwk7OworKwlzaWVtZW5zKQorKwkgICMjIExEIGlzIGxk IGl0IG1ha2VzIGEgUExBTUxJQgorKwkgICMjIENDIGp1c3QgbWFrZXMgYSBHcm9zc01vZHVsZS4K KysJICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MnCisrCSAgcmVsb2FkX2NtZHM9JyRDQyAtciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpz JworKwkgIGhhcmRjb2RlX2RpcmVjdD1ubworKyAgICAgICAgOzsKKysJbW90b3JvbGEpCisrCSAg YXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3MnCisrCSAgaGFyZGNvZGVfZGlyZWN0PW5vICNNb3Rvcm9sYSBtYW51YWwg c2F5cyB5ZXMsIGJ1dCBteSB0ZXN0cyBzYXkgdGhleSBsaWUKKysJOzsKKysgICAgICBlc2FjCisr ICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0 aF92YXI9bm8KKysgICAgICA7OworKworKyAgICBzeXN2NC4zKikKKysgICAgICBhcmNoaXZlX2Nt ZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFncycKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjPSctQmV4cG9ydCcKKysgICAgICA7OworKworKyAgICBzeXN2NCpNUCop CisrICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRMRCAt RyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJ aGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKwlydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorKwlo YXJkY29kZV9ydW5wYXRoX3Zhcj15ZXMKKysJbGRfc2hsaWJzPXllcworKyAgICAgIGZpCisrICAg ICAgOzsKKysKKysgICAgc3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2Fy ZTcuWzAxXS5bMTBdKiB8IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLlswMjRdKikKKysgICAgICBu b191bmRlZmluZWRfZmxhZz0nJHt3bH0teix0ZXh0JworKyAgICAgIGFyY2hpdmVfY21kc19uZWVk X2xjPW5vCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIHJ1bnBhdGhf dmFyPSdMRF9SVU5fUEFUSCcKKysKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgor KwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJEND IC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJ YXJjaGl2ZV9jbWRzPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLUcgJHt3 bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysg ICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KikKKysgICAgICAjIE5vdGU6IFdlIGNhbiBO T1QgdXNlIC16IGRlZnMgYXMgd2UgbWlnaHQgZGVzaXJlLCBiZWNhdXNlIHdlIGRvIG5vdAorKyAg ICAgICMgbGluayB3aXRoIC1sYywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55IHN5bWJvbHMgdXNl ZCBmcm9tIGxpYmMgdG8KKysgICAgICAjIGFsd2F5cyBiZSB1bnJlc29sdmVkLCB3aGljaCBtZWFu cyBqdXN0IGFib3V0IG5vIGxpYnJhcnkgd291bGQKKysgICAgICAjIGV2ZXIgbGluayBjb3JyZWN0 bHkuICBJZiB3ZSdyZSBub3QgdXNpbmcgR05VIGxkIHdlIHVzZSAteiB0ZXh0CisrICAgICAgIyB0 aG91Z2gsIHdoaWNoIGRvZXMgY2F0Y2ggc29tZSBiYWQgc3ltYm9scyBidXQgaXNuJ3QgYXMgaGVh dnktaGFuZGVkCisrICAgICAgIyBhcyAteiBkZWZzLgorKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFn PScke3dsfS16LHRleHQnCisrICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyR7d2x9LXosbm9k ZWZzJworKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjPW5vCisrICAgICAgaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcj1ubworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LVIs JGxpYmRpcicKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSc6JworKyAgICAgIGxp bmtfYWxsX2RlcGxpYnM9eWVzCisrICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3ds fS1CZXhwb3J0JworKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysgICAgICBp ZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICR7 d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK KysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0 X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLUcgJHt3bH0taCwk c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlhcmNo aXZlX2V4cHN5bV9jbWRzPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3 bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwor KyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgdXRzNCopCisrICAgICAgYXJjaGl2ZV9jbWRz PSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxh Z3MnCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworKyAgICAg IGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICA7OworKworKyAgICAqKQorKyAgICAg IGxkX3NobGlicz1ubworKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgaWYgdGVzdCB4JGhv c3RfdmVuZG9yID0geHNuaTsgdGhlbgorKyAgICAgIGNhc2UgJGhvc3QgaW4KKysgICAgICBzeXN2 NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQuMyogfCBzeXN2NSopCisrCWV4cG9ydF9keW5hbWljX2Zs YWdfc3BlYz0nJHt3bH0tQmxhcmdlZHluc3ltJworKwk7OworKyAgICAgIGVzYWMKKysgICAgZmkK KysgIGZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6ICRsZF9zaGxpYnMiID4mNQorKyRhc19lY2hvICIkbGRfc2hsaWJzIiA+JjY7IH0KKyt0ZXN0 ICIkbGRfc2hsaWJzIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KKysKKyt3aXRoX2dudV9s ZD0kd2l0aF9nbnVfbGQKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysjCisrIyBEbyB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkgbGluayBsaWJjPworKyMKKytjYXNl ICJ4JGFyY2hpdmVfY21kc19uZWVkX2xjIiBpbgorK3h8eHllcykKKysgICMgQXNzdW1lIC1sYyBz aG91bGQgYmUgYWRkZWQKKysgIGFyY2hpdmVfY21kc19uZWVkX2xjPXllcworKworKyAgaWYgdGVz dCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAg IGNhc2UgJGFyY2hpdmVfY21kcyBpbgorKyAgICAqJ34nKikKKysgICAgICAjIEZJWE1FOiB3ZSBt YXkgaGF2ZSB0byBkZWFsIHdpdGggbXVsdGktY29tbWFuZCBzZXF1ZW5jZXMuCisrICAgICAgOzsK KysgICAgJyRDQyAnKikKKysgICAgICAjIFRlc3Qgd2hldGhlciB0aGUgY29tcGlsZXIgaW1wbGlj aXRseSBsaW5rcyB3aXRoIC1sYyBzaW5jZSBvbiBzb21lCisrICAgICAgIyBzeXN0ZW1zLCAtbGdj YyBoYXMgdG8gY29tZSBiZWZvcmUgLWxjLiBJZiBnY2MgYWxyZWFkeSBwYXNzZXMgLWxjCisrICAg ICAgIyB0byBsZCwgZG9uJ3QgYWRkIC1sYyBiZWZvcmUgLWxnY2MuCisrICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91 bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4iID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdo ZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbi4uLiAiID4mNjsgfQorK2lm IHRlc3QgIiR7bHRfY3ZfYXJjaGl2ZV9jbWRzX25lZWRfbGMrc2V0fSIgPSBzZXQ7IHRoZW4gOgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICAkUk0gY29uZnRlc3QqCisr CWVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAor KworKwlpZiB7IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTog XCIkYWNfY29tcGlsZVwiIjsgfSA+JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBh Y19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwk PyA9ICRhY19zdGF0dXMiID4mNQorKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAyPmNvbmZ0ZXN0 LmVycjsgdGhlbgorKwkgIHNvbmFtZT1jb25mdGVzdAorKwkgIGxpYj1jb25mdGVzdAorKwkgIGxp Ym9ianM9Y29uZnRlc3QuJGFjX29iamV4dAorKwkgIGRlcGxpYnM9CisrCSAgd2w9JGx0X3Byb2df Y29tcGlsZXJfd2wKKysJICBwaWNfZmxhZz0kbHRfcHJvZ19jb21waWxlcl9waWMKKysJICBjb21w aWxlcl9mbGFncz0tdgorKwkgIGxpbmtlcl9mbGFncz0tdgorKwkgIHZlcnN0cmluZz0KKysJICBv dXRwdXRfb2JqZGlyPS4KKysJICBsaWJuYW1lPWNvbmZ0ZXN0CisrCSAgbHRfc2F2ZV9hbGxvd191 bmRlZmluZWRfZmxhZz0kYWxsb3dfdW5kZWZpbmVkX2ZsYWcKKysJICBhbGxvd191bmRlZmluZWRf ZmxhZz0KKysJICBpZiB7IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElO RU5PfTogXCIkYXJjaGl2ZV9jbWRzIDJcPlwmMSBcfCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2L251 bGwgMlw+XCYxXCIiOyB9ID4mNQorKyAgKGV2YWwgJGFyY2hpdmVfY21kcyAyXD5cJjEgXHwgJEdS RVAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/Cisr ICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKKysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0KKysJICB0aGVuCisrCSAgICBsdF9jdl9h cmNoaXZlX2NtZHNfbmVlZF9sYz1ubworKwkgIGVsc2UKKysJICAgIGx0X2N2X2FyY2hpdmVfY21k c19uZWVkX2xjPXllcworKwkgIGZpCisrCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X3NhdmVf YWxsb3dfdW5kZWZpbmVkX2ZsYWcKKysJZWxzZQorKwkgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQor KwlmaQorKwkkUk0gY29uZnRlc3QqCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X2FyY2hpdmVfY21kc19uZWVkX2xjIiA+JjUK KyskYXNfZWNobyAiJGx0X2N2X2FyY2hpdmVfY21kc19uZWVkX2xjIiA+JjY7IH0KKysgICAgICBh cmNoaXZlX2NtZHNfbmVlZF9sYz0kbHRfY3ZfYXJjaGl2ZV9jbWRzX25lZWRfbGMKKysgICAgICA7 OworKyAgICBlc2FjCisrICBmaQorKyAgOzsKKytlc2FjCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGR5bmFtaWMgbGlu a2VyIGNoYXJhY3RlcmlzdGljcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZHluYW1pYyBs aW5rZXIgY2hhcmFjdGVyaXN0aWNzLi4uICIgPiY2OyB9CisrCisraWYgdGVzdCAiJEdDQyIgPSB5 ZXM7IHRoZW4KKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgZGFyd2luKikgbHRfYXdrX2FyZz0i L15saWJyYXJpZXM6LywvTFIvIiA7OworKyAgICAqKSBsdF9hd2tfYXJnPSIvXmxpYnJhcmllczov IiA7OworKyAgZXNhYworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBtaW5ndyogfCBjZWdjYyop IGx0X3NlZF9zdHJpcF9lcT0icyw9XChbQS1aYS16XTpcKSxcMSxnIiA7OworKyAgICAqKSBsdF9z ZWRfc3RyaXBfZXE9InMsPS8sLyxnIiA7OworKyAgZXNhYworKyAgbHRfc2VhcmNoX3BhdGhfc3Bl Yz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8IGF3ayAkbHRfYXdrX2FyZyB8ICRTRUQgLWUgInMv XmxpYnJhcmllczovLyIgLWUgJGx0X3NlZF9zdHJpcF9lcWAKKysgIGNhc2UgJGx0X3NlYXJjaF9w YXRoX3NwZWMgaW4KKysgICpcOyopCisrICAgICMgaWYgdGhlIHBhdGggY29udGFpbnMgIjsiIHRo ZW4gd2UgYXNzdW1lIGl0IHRvIGJlIHRoZSBzZXBhcmF0b3IKKysgICAgIyBvdGhlcndpc2UgZGVm YXVsdCB0byB0aGUgc3RhbmRhcmQgcGF0aCBzZXBhcmF0b3IgKGkuZS4gIjoiKSAtIGl0IGlzCisr ICAgICMgYXNzdW1lZCB0aGF0IG5vIHBhcnQgb2YgYSBub3JtYWwgcGF0aG5hbWUgY29udGFpbnMg IjsiIGJ1dCB0aGF0IHNob3VsZAorKyAgICAjIG9rYXkgaW4gdGhlIHJlYWwgd29ybGQgd2hlcmUg IjsiIGluIGRpcnBhdGhzIGlzIGl0c2VsZiBwcm9ibGVtYXRpYy4KKysgICAgbHRfc2VhcmNoX3Bh dGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgJ3MvOy8gL2cnYAor KyAgICA7OworKyAgKikKKysgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFy Y2hfcGF0aF9zcGVjIiB8ICRTRUQgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCisrICAgIDs7Cisr ICBlc2FjCisrICAjIE9rLCBub3cgd2UgaGF2ZSB0aGUgcGF0aCwgc2VwYXJhdGVkIGJ5IHNwYWNl cywgd2UgY2FuIHN0ZXAgdGhyb3VnaCBpdAorKyAgIyBhbmQgYWRkIG11bHRpbGliIGRpciBpZiBu ZWNlc3NhcnkuCisrICBsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0KKysgIGx0X211bHRpX29z X2Rpcj1gJENDICRDUFBGTEFHUyAkQ0ZMQUdTICRMREZMQUdTIC1wcmludC1tdWx0aS1vcy1kaXJl Y3RvcnkgMj4vZGV2L251bGxgCisrICBmb3IgbHRfc3lzX3BhdGggaW4gJGx0X3NlYXJjaF9wYXRo X3NwZWM7IGRvCisrICAgIGlmIHRlc3QgLWQgIiRsdF9zeXNfcGF0aC8kbHRfbXVsdGlfb3NfZGly IjsgdGhlbgorKyAgICAgIGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1wX2x0X3Nl YXJjaF9wYXRoX3NwZWMgJGx0X3N5c19wYXRoLyRsdF9tdWx0aV9vc19kaXIiCisrICAgIGVsc2UK KysgICAgICB0ZXN0IC1kICIkbHRfc3lzX3BhdGgiICYmIFwKKysJbHRfdG1wX2x0X3NlYXJjaF9w YXRoX3NwZWM9IiRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyAkbHRfc3lzX3BhdGgiCisrICAg IGZpCisrICBkb25lCisrICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3RtcF9sdF9z ZWFyY2hfcGF0aF9zcGVjIiB8IGF3ayAnCisrQkVHSU4ge1JTPSIgIjsgRlM9Ii98XG4iO30gewor KyAgbHRfZm9vPSIiOworKyAgbHRfY291bnQ9MDsKKysgIGZvciAobHRfaSA9IE5GOyBsdF9pID4g MDsgbHRfaS0tKSB7CisrICAgIGlmICgkbHRfaSAhPSAiIiAmJiAkbHRfaSAhPSAiLiIpIHsKKysg ICAgICBpZiAoJGx0X2kgPT0gIi4uIikgeworKyAgICAgICAgbHRfY291bnQrKzsKKysgICAgICB9 IGVsc2UgeworKyAgICAgICAgaWYgKGx0X2NvdW50ID09IDApIHsKKysgICAgICAgICAgbHRfZm9v PSIvIiAkbHRfaSBsdF9mb287CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBsdF9jb3Vu dC0tOworKyAgICAgICAgfQorKyAgICAgIH0KKysgICAgfQorKyAgfQorKyAgaWYgKGx0X2ZvbyAh PSAiIikgeyBsdF9mcmVxW2x0X2Zvb10rKzsgfQorKyAgaWYgKGx0X2ZyZXFbbHRfZm9vXSA9PSAx KSB7IHByaW50IGx0X2ZvbzsgfQorK30nYAorKyAgIyBBV0sgcHJvZ3JhbSBhYm92ZSBlcnJvbmVv dXNseSBwcmVwZW5kcyAnLycgdG8gQzovZG9zL3BhdGhzCisrICAjIGZvciB0aGVzZSBob3N0cy4K KysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgbWluZ3cqIHwgY2VnY2MqKSBsdF9zZWFyY2hfcGF0 aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHxcCisrICAgICAgJFNFRCAncywv XChbQS1aYS16XTpcKSxcMSxnJ2AgOzsKKysgIGVzYWMKKysgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRsdF9OTDJTUGAKKytlbHNlCisr ICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIi CisrZmkKKytsaWJyYXJ5X25hbWVzX3NwZWM9CisrbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKKytz b25hbWVfc3BlYz0KKytzaHJleHRfY21kcz0iLnNvIgorK3Bvc3RpbnN0YWxsX2NtZHM9CisrcG9z dHVuaW5zdGFsbF9jbWRzPQorK2ZpbmlzaF9jbWRzPQorK2ZpbmlzaF9ldmFsPQorK3NobGlicGF0 aF92YXI9Cisrc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXVua25vd24KKyt2ZXJzaW9uX3R5 cGU9bm9uZQorK2R5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKKytzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiIKKytuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgor K2hhcmRjb2RlX2ludG9fbGlicz1ubworKworKyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0 byBubywgbWFrZSBzdXJlIGl0IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVyc2lvbgorKyMgZmxhZ3Mg dG8gYmUgbGVmdCB3aXRob3V0IGFyZ3VtZW50cworK25lZWRfdmVyc2lvbj11bmtub3duCisrCisr Y2FzZSAkaG9zdF9vcyBpbgorK2FpeDMqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJGxpYm5hbWUuYScKKysgIHNobGlicGF0aF92YXI9TElCUEFUSAorKworKyAgIyBBSVggMyBo YXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRv IHRoZSBuYW1lLgorKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKKysgIDs7CisrCisrYWl4WzQtOV0qKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4 CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgaGFyZGNvZGVf aW50b19saWJzPXllcworKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysgICAg IyBBSVggNSBzdXBwb3J0cyBJQTY0CisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAorKyAgZWxzZQorKyAgICAjIFdpdGggR0NDIHVwIHRvIDIuOTUu eCwgY29sbGVjdDIgd291bGQgY3JlYXRlIGFuIGltcG9ydCBmaWxlCisrICAgICMgZm9yIGRlcGVu ZGVuY2UgbGlicmFyaWVzLiAgVGhlIGltcG9ydCBmaWxlIHdvdWxkIHN0YXJ0IHdpdGgKKysgICAg IyB0aGUgbGluZSBgIyEgLicuICBUaGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5lcmF0ZWQgbGlicmFy eSB0bworKyAgICAjIGRlcGVuZCBvbiBgLicsIGFsd2F5cyBhbiBpbnZhbGlkIGxpYnJhcnkuICBU aGlzIHdhcyBmaXhlZCBpbgorKyAgICAjIGRldmVsb3BtZW50IHNuYXBzaG90cyBvZiBHQ0MgcHJp b3IgdG8gMy4wLgorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgYWl4NCB8IGFpeDQuWzAx XSB8IGFpeDQuWzAxXS4qKQorKyAgICAgIGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4gMiB8fCAo X19HTlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5NyknCisrCSAgIGVjaG8gJyB5ZXMg JworKwkgICBlY2hvICcjZW5kaWYnOyB9IHwgJHtDQ30gLUUgLSB8ICRHUkVQIHllcyA+IC9kZXYv bnVsbDsgdGhlbgorKwk6CisrICAgICAgZWxzZQorKwljYW5fYnVpbGRfc2hhcmVkPW5vCisrICAg ICAgZmkKKysgICAgICA7OworKyAgICBlc2FjCisrICAgICMgQUlYIChvbiBQb3dlciopIGhhcyBu byB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIGN1cnJlbnRseSB3ZSBjYW4gbm90IGhhcmRjb2RlIGNv cnJlY3QKKysgICAgIyBzb25hbWUgaW50byBleGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4gYWRk IHZlcnNpb25pbmcgc3VwcG9ydCB0bworKyAgICAjIGNvbGxlY3QyLCBzbyBhZGRpdGlvbmFsIGxp bmtzIGNhbiBiZSB1c2VmdWwgaW4gZnV0dXJlLgorKyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50 aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysgICAgICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtp bmcgKG9uIEFJWCA0LjIgb3IgbGF0ZXIpIHVzZSBsaWI8bmFtZT4uc28KKysgICAgICAjIGluc3Rl YWQgb2YgbGliPG5hbWU+LmEgdG8gbGV0IHBlb3BsZSBrbm93IHRoYXQgdGhlc2UgYXJlIG5vdAor KyAgICAgICMgdHlwaWNhbCBBSVggc2hhcmVkIGxpYnJhcmllcy4KKysgICAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKKysgICAgZWxzZQorKyAgICAgICMgV2UgcHJlc2VydmUgLmEgYXMgZXh0ZW5zaW9uIGZvciBz aGFyZWQgbGlicmFyaWVzIHRocm91Z2ggQUlYNC4yCisrICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3 ZSBhcmUgbm90IGRvaW5nIHJ1biB0aW1lIGxpbmtpbmcuCisrICAgICAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfS5hICRsaWJuYW1lLmEnCisrICAgICAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgZmkKKysg ICAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisrICBmaQorKyAgOzsKKysKKythbWlnYW9zKikKKysg IGNhc2UgJGhvc3RfY3B1IGluCisrICBwb3dlcnBjKQorKyAgICAjIFNpbmNlIEp1bHkgMjAwNyBB bWlnYU9TNCBvZmZpY2lhbGx5IHN1cHBvcnRzIC5zbyBsaWJyYXJpZXMuCisrICAgICMgV2hlbiBj b21waWxpbmcgdGhlIGV4ZWN1dGFibGUsIGFkZCAtdXNlLWR5bmxkIC1Mc29ianM6IHRvIHRoZSBj b21waWxlbGluZS4KKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIDs7CisrICBtNjhrKQorKyAgICBs aWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLml4bGlicmFyeSAkbGlibmFtZS5hJworKyAgICAj IENyZWF0ZSAke2xpYm5hbWV9X2l4bGlicmFyeS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgorKyAg ICBmaW5pc2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYv bnVsbGA7IGRvIGxpYm5hbWU9YGZ1bmNfZWNob19hbGwgIiRsaWIiIHwgJFNFRCAnXCcncyVeLiov XChbXi9dKlwpXC5peGxpYnJhcnkkJVwxJSdcJydgOyB0ZXN0ICRSTSAvc3lzL2xpYnMvJHtsaWJu YW1lfV9peGxpYnJhcnkuYTsgJHNob3cgImNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGli bmFtZX1faXhsaWJyYXJ5LmEiOyBjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9 X2l4bGlicmFyeS5hIHx8IGV4aXQgMTsgZG9uZScKKysgICAgOzsKKysgIGVzYWMKKysgIDs7Cisr CisrYmVvcyopCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3NoYXJlZF9leHR9 JworKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgorKyAgc2hsaWJwYXRoX3Zhcj1M SUJSQVJZX1BBVEgKKysgIDs7CisrCisrYnNkaVs0NV0qKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4 CisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGZpbmlzaF9jbWRzPSdQ QVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAorKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9s aWIgL3Vzci9YMTEvbGliIC91c3IvY29udHJpYi9saWIgL2xpYiAvdXNyL2xvY2FsL2xpYiIKKysg IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9sb2NhbC9s aWIiCisrICAjIHRoZSBkZWZhdWx0IGxkLnNvLmNvbmYgYWxzbyBjb250YWlucyAvdXNyL2NvbnRy aWIvbGliIGFuZAorKyAgIyAvdXNyL1gxMVI2L2xpYiAoL3Vzci9YMTEgaXMgYSBsaW5rIHRvIC91 c3IvWDExUjYpLCBidXQgbGV0IHVzIGFsbG93CisrICAjIGxpYnRvb2wgdG8gaGFyZC1jb2RlIHRo ZXNlIGludG8gcHJvZ3JhbXMKKysgIDs7CisrCisrY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwg Y2VnY2MqKQorKyAgdmVyc2lvbl90eXBlPXdpbmRvd3MKKysgIHNocmV4dF9jbWRzPSIuZGxsIgor KyAgbmVlZF92ZXJzaW9uPW5vCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysKKysgIGNhc2UgJEdD QywkaG9zdF9vcyBpbgorKyAgeWVzLGN5Z3dpbiogfCB5ZXMsbWluZ3cqIHwgeWVzLHB3MzIqIHwg eWVzLGNlZ2NjKikKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScKKysg ICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxf Y21kcworKyAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9 YH4KKysgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jhc2Vf ZmlsZX0nXCcnaTsgZWNobyBcJGRsbmFtZSdcJydgfgorKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2Bk aXJuYW1lIFwkZGxwYXRoYH4KKysgICAgICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRk bGRpcn4KKysgICAgICAkaW5zdGFsbF9wcm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+ CisrICAgICAgY2htb2QgYSt4IFwkZGxkaXIvJGRsbmFtZX4KKysgICAgICBpZiB0ZXN0IC1uICdc Jyckc3RyaXBtZSdcJycgJiYgdGVzdCAtbiAnXCcnJHN0cmlwbGliJ1wnJzsgdGhlbgorKyAgICAg ICAgZXZhbCAnXCcnJHN0cmlwbGliIFwkZGxkaXIvJGRsbmFtZSdcJycgfHwgZXhpdCBcJD87Cisr ICAgICAgZmknCisrICAgIHBvc3R1bmluc3RhbGxfY21kcz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1j ICdcJycuICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+CisrICAgICAgZGxwYXRoPSRkaXIvXCRk bGRsbH4KKysgICAgICAgJFJNIFwkZGxwYXRoJworKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9eWVzCisrCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgY3lnd2luKikKKysgICAg ICAjIEN5Z3dpbiBETExzIHVzZSAnY3lnJyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKKysgICAg ICBzb25hbWVfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBl Y2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVk X2V4dH0nCisrCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjIC91c3IvbGliL3czMmFwaSIKKysgICAgICA7OworKyAgICBtaW5ndyogfCBj ZWdjYyopCisrICAgICAgIyBNaW5HVyBETExzIHVzZSB0cmFkaXRpb25hbCAnbGliJyBwcmVmaXgK KysgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1l ICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisrICAgICAgOzsKKysgICAg cHczMiopCisrICAgICAgIyBwdzMyIERMTHMgdXNlICdwdycgcHJlZml4IHJhdGhlciB0aGFuICds aWInCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1l ICdzL15saWIvcHcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3Zl cnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgOzsKKysK KysgICopCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFz ZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0gJGxpYm5h bWUubGliJworKyAgICA7OworKyAgZXNhYworKyAgZHluYW1pY19saW5rZXI9J1dpbjMyIGxkLmV4 ZScKKysgICMgRklYTUU6IGZpcnN0IHdlIHNob3VsZCBzZWFyY2ggLiBhbmQgdGhlIGRpcmVjdG9y eSB0aGUgZXhlY3V0YWJsZSBpcyBpbgorKyAgc2hsaWJwYXRoX3Zhcj1QQVRICisrICA7OworKwor K2RhcndpbiogfCByaGFwc29keSopCisrICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZHlsZCIK KysgIHZlcnNpb25fdHlwZT1kYXJ3aW4KKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92 ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtt YWpvcn0kc2hhcmVkX2V4dCAke2xpYm5hbWV9JHNoYXJlZF9leHQnCisrICBzb25hbWVfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0JworKyAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcworKyAgc2hsaWJwYXRoX3Zhcj1EWUxEX0xJQlJBUllfUEFUSAor KyAgc2hyZXh0X2NtZHM9J2B0ZXN0IC4kbW9kdWxlID0gLnllcyAmJiBlY2hvIC5zbyB8fCBlY2hv IC5keWxpYmAnCisrCisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWMgL3Vzci9sb2NhbC9saWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl Yz0nL3Vzci9sb2NhbC9saWIgL2xpYiAvdXNyL2xpYicKKysgIDs7CisrCisrZGd1eCopCisrICB2 ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9u PW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRs aWJuYW1lJHNoYXJlZF9leHQnCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysg IDs7CisrCisrZnJlZWJzZDEqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrZnJl ZWJzZCogfCBkcmFnb25mbHkqKQorKyAgIyBEcmFnb25GbHkgZG9lcyBub3QgaGF2ZSBhb3V0LiAg V2hlbi9pZiB0aGV5IGltcGxlbWVudCBhIG5ldworKyAgIyB2ZXJzaW9uaW5nIG1lY2hhbmlzbSwg YWRqdXN0IHRoaXMuCisrICBpZiB0ZXN0IC14IC91c3IvYmluL29iamZvcm1hdDsgdGhlbgorKyAg ICBvYmpmb3JtYXQ9YC91c3IvYmluL29iamZvcm1hdGAKKysgIGVsc2UKKysgICAgY2FzZSAkaG9z dF9vcyBpbgorKyAgICBmcmVlYnNkWzEyM10qKSBvYmpmb3JtYXQ9YW91dCA7OworKyAgICAqKSBv Ympmb3JtYXQ9ZWxmIDs7CisrICAgIGVzYWMKKysgIGZpCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJz ZC0kb2JqZm9ybWF0CisrICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KKysgICAgZnJlZWJzZC1lbGYq KQorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5h bWUke3NoYXJlZF9leHR9JworKyAgICAgIG5lZWRfdmVyc2lvbj1ubworKyAgICAgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgICAgIDs7CisrICAgIGZyZWVic2QtKikKKysgICAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxp Ym5hbWUke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKysgICAgICBuZWVkX3ZlcnNpb249eWVzCisr ICAgICAgOzsKKysgIGVzYWMKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBj YXNlICRob3N0X29zIGluCisrICBmcmVlYnNkMiopCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD15ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLlswMV0qIHwgZnJlZWJzZGVsZjMuWzAx XSopCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAgaGFyZGNvZGVf aW50b19saWJzPXllcworKyAgICA7OworKyAgZnJlZWJzZDMuWzItOV0qIHwgZnJlZWJzZGVsZjMu WzItOV0qIHwgXAorKyAgZnJlZWJzZDQuWzAtNV0gfCBmcmVlYnNkZWxmNC5bMC01XSB8IGZyZWVi c2Q0LjEuMSB8IGZyZWVic2RlbGY0LjEuMSkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPW5vCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgICopICMgZnJv bSA0LjYgb24sIGFuZCBEcmFnb25GbHkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7CisrICBlc2FjCisrICA7 OworKworK2dudSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1u bworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHttYWpvcn0gJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7Cisr CisraGFpa3UqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8K KysgIG5lZWRfdmVyc2lvbj1ubworKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIHJ1bnRpbWVf bG9hZGVyIgorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFq b3J9ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TElCUkFSWV9Q QVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0nL2Jvb3QvaG9tZS9jb25maWcvbGliIC9ib290L2NvbW1vbi9saWIgL2Jv b3Qvc3lzdGVtL2xpYicKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraHB1 eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCisrICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGlu ZyB0byB0aGUgbWFqb3IgdmVyc2lvbiBzbyB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCisrICAjIGxp bmsgYWdhaW5zdCBvdGhlciB2ZXJzaW9ucy4KKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbmVl ZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGNhc2UgJGhvc3RfY3B1IGlu CisrICBpYTY0KikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbycKKysgICAgaGFyZGNvZGVfaW50b19s aWJzPXllcworKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgorKyAgICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJworKyAgICBpZiB0ZXN0ICJYJEhQVVhfSUE2NF9NT0RFIiA9IFgzMjsgdGhlbgorKyAgICAg IHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGli L2hwdXgzMiAvdXNyL2xvY2FsL2xpYiIKKysgICAgZWxzZQorKyAgICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDY0IC91c3IvbG9jYWwvbGliL2hwdXg2NCIKKysgICAg ZmkKKysgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYworKyAgICA7OworKyAgaHBwYSo2NCopCisrICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAg IGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRs ZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdl IGhhbmRsZSBTSExJQl9QQVRICisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMg IyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KKysgICAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisr ICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvcGEyMF82NCAvdXNyL2Njcy9s aWIvcGEyMF82NCIKKysgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYworKyAgICA7OworKyAgKikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysg ICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zhcj1T SExJQl9QQVRICisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubyAjICtzIGlzIHJl cXVpcmVkIHRvIGVuYWJsZSBTSExJQl9QQVRICisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICA7 OworKyAgZXNhYworKyAgIyBIUC1VWCBydW5zICpyZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hhcmVk IGxpYnJhcmllcyBhcmUgbW9kZSA1NTUsIC4uLgorKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2Qg NTU1ICRsaWInCisrICAjIG9yIGZhaWxzIG91dHJpZ2h0LCBzbyBvdmVycmlkZSBhdG9taWNhbGx5 OgorKyAgaW5zdGFsbF9vdmVycmlkZV9tb2RlPTU1NQorKyAgOzsKKysKKytpbnRlcml4WzMtOV0q KQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRf dmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBkeW5hbWljX2xpbmtlcj0nSW50ZXJp eCAzLnggbGQuc28uMSAoUEUsIGxpa2UgRUxGKScKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKKysgIDs7CisrCisraXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysg IGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5vbnN0b3B1 eCA7OworKyAgICAqKQorKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVu CisrCQl2ZXJzaW9uX3R5cGU9bGludXgKKysJZWxzZQorKwkJdmVyc2lvbl90eXBlPWlyaXgKKysJ ZmkgOzsKKysgIGVzYWMKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5v CisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKKysgICAgbGlic3VmZj0g c2hsaWJzdWZmPQorKyAgICA7OworKyAgKikKKysgICAgY2FzZSAkTEQgaW4gIyBsaWJ0b29sLm00 IHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAorKyAgICAqLTMyfCoiLTMyICJ8 Ki1tZWxmMzJic21pcHwqIi1tZWxmMzJic21pcCAiKQorKyAgICAgIGxpYnN1ZmY9IHNobGlic3Vm Zj0gbGlibWFnaWM9MzItYml0OzsKKysgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJibWlwbjMy fCoiLW1lbGYzMmJtaXBuMzIgIikKKysgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1OMzIgbGli bWFnaWM9TjMyOzsKKysgICAgKi02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxmNjRibWlw ICIpCisrICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0OzsKKysg ICAgKikgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7CisrICAgIGVz YWMKKysgICAgOzsKKysgIGVzYWMKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hsaWJz dWZmfV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3Iv bG9jYWwvbGliJHtsaWJzdWZmfSIKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNy L2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz CisrICA7OworKworKyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRsZCwgYW91 dCwgb3IgY29mZi4KKytsaW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYqKQor KyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrIyBUaGlzIG11c3QgYmUgTGludXggRUxG LgorK2xpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKKysgIHZlcnNpb25f dHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUk e3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29u ZmlnIC1uICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrCisrICAjIFNvbWUgYmludXRpbHMgbGQgYXJl IHBhdGNoZWQgdG8gc2V0IERUX1JVTlBBVEgKKysgIGlmIHRlc3QgIiR7bHRfY3Zfc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3Zfc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PW5vCisrICAgIHNhdmVfTERGTEFHUz0kTERGTEFHUworKyAgICBzYXZlX2xpYmRpcj0kbGliZGly CisrICAgIGV2YWwgImxpYmRpcj0vZm9vOyB3bD1cIiRsdF9wcm9nX2NvbXBpbGVyX3dsXCI7IFwK KysJIExERkxBR1M9XCJcJExERkxBR1MgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIiIKKysg ICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJu IDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoK KysgIGlmICAoJE9CSkRVTVAgLXAgY29uZnRlc3QkYWNfZXhlZXh0KSAyPi9kZXYvbnVsbCB8IGdy ZXAgIlJVTlBBVEguKiRsaWJkaXIiID4vZGV2L251bGw7IHRoZW4gOgorKyAgbHRfY3Zfc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworK2ZpCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0 ZXN0LiRhY19leHQKKysgICAgTERGTEFHUz0kc2F2ZV9MREZMQUdTCisrICAgIGxpYmRpcj0kc2F2 ZV9saWJkaXIKKysKKytmaQorKworKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSRsdF9j dl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgKKysKKysgICMgVGhpcyBpbXBsaWVzIG5vIGZh c3RfaW5zdGFsbCwgd2hpY2ggaXMgdW5hY2NlcHRhYmxlLgorKyAgIyBTb21lIHJld29yayB3aWxs IGJlIG5lZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCisrICAjIGJlZm9yZSB0aGlzIGNh biBiZSBlbmFibGVkLgorKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKworKyAgIyBBZGQgQUJJ LXNwZWNpZmljIGRpcmVjdG9yaWVzIHRvIHRoZSBzeXN0ZW0gbGlicmFyeSBwYXRoLgorKyAgc3lz X2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWI2NCAvdXNyL2xpYjY0IC9saWIgL3Vzci9saWIi CisrCisrICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFyY2ggcGF0aAor KyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KKysgICAgbHRfbGRfZXh0cmE9YGF3 ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rldi9u dWxsIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcJDA7IHNraXAgPSAw OyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bCSBdKmh3Y2FwWwkg XS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nO3MvIi8vZzsvXiQvZCcg fCB0ciAnXG4nICcgJ2AKKysgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYyAkbHRfbGRfZXh0cmEiCisrCisrICBmaQorKworKyAgIyBXZSB1 c2VkIHRvIHRlc3QgZm9yIC9saWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVz IG9uCisrICAjIHBvd2VycGMsIGJlY2F1c2UgTWtMaW51eCBvbmx5IHN1cHBvcnRlZCBzaGFyZWQg bGlicmFyaWVzIHdpdGggdGhlCisrICAjIEdOVSBkeW5hbWljIGxpbmtlci4gIFNpbmNlIHRoaXMg d2FzIGJyb2tlbiB3aXRoIGNyb3NzIGNvbXBpbGVycywKKysgICMgbW9zdCBwb3dlcnBjLWxpbnV4 IGJveGVzIHN1cHBvcnQgZHluYW1pYyBsaW5raW5nIHRoZXNlIGRheXMgYW5kCisrICAjIHBlb3Bs ZSBjYW4gYWx3YXlzIC0tZGlzYWJsZS1zaGFyZWQsIHRoZSB0ZXN0IHdhcyByZW1vdmVkLCBhbmQg d2UKKysgICMgYXNzdW1lIHRoZSBHTlUvTGludXggZHluYW1pYyBsaW5rZXIgaXMgaW4gdXNlLgor KyAgZHluYW1pY19saW5rZXI9J0dOVS9MaW51eCBsZC5zbycKKysgIDs7CisrCisrbmV0YnNkKikK KysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3Zl cnNpb249bm8KKysgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+ L2Rldi9udWxsOyB0aGVuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXgnCisrICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1t ICRsaWJkaXInCisrICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEub3V0KSBsZC5zbycKKysg IGVsc2UKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv ciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgZHluYW1pY19saW5rZXI9J05ldEJT RCBsZC5lbGZfc28nCisrICBmaQorKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKKysgIDs7CisrCisrbmV3c29zNikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcworKyAgOzsKKysKKysqbnRvKiB8ICpxbngqKQorKyAgdmVyc2lv bl90eXBlPXFueAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUk e3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysg IGR5bmFtaWNfbGlua2VyPSdsZHFueC5zbycKKysgIDs7CisrCisrb3BlbmJzZCopCisrICB2ZXJz aW9uX3R5cGU9c3Vub3MKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiIK KysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgIyBTb21lIG9sZGVyIHZlcnNpb25zIG9mIE9wZW5C U0QgKDMuMyBhdCBsZWFzdCkgKmRvKiBuZWVkIHZlcnNpb25lZCBsaWJzLgorKyAgY2FzZSAkaG9z dF9vcyBpbgorKyAgICBvcGVuYnNkMy4zIHwgb3BlbmJzZDMuMy4qKQluZWVkX3ZlcnNpb249eWVz IDs7CisrICAgICopCQkJCW5lZWRfdmVyc2lvbj1ubyAgOzsKKysgIGVzYWMKKysgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICBmaW5pc2hfY21kcz0nUEFUSD0i XCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKKysgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRH UkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgt cG93ZXJwYyI7IHRoZW4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIG9wZW5ic2QyLls4 OV0gfCBvcGVuYnNkMi5bODldLiopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwor Kwk7OworKyAgICAgICopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysJOzsK KysgICAgICBlc2FjCisrICBlbHNlCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15 ZXMKKysgIGZpCisrICA7OworKworK29zMiopCisrICBsaWJuYW1lX3NwZWM9JyRuYW1lJworKyAg c2hyZXh0X2NtZHM9Ii5kbGwiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9ICRsaWJuYW1lLmEnCisrICBkeW5hbWljX2xp bmtlcj0nT1MvMiBsZC5leGUnCisrICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysgIDs7CisrCisr b3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgdmVyc2lvbl90eXBlPW9zZgorKyAgbmVlZF9saWJf cHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91 c3Ivc2hsaWIgL3Vzci9jY3MvbGliIC91c3IvbGliL2NtcGxycy9jYyAvdXNyL2xpYiAvdXNyL2xv Y2FsL2xpYiAvdmFyL3NobGliIgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWMiCisrICA7OworKworK3Jkb3MqKQorKyAgZHluYW1pY19saW5r ZXI9bm8KKysgIDs7CisrCisrc29sYXJpcyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisr ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPXllcworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgIyBsZGQgY29tcGxhaW5z IHVubGVzcyBsaWJyYXJpZXMgYXJlIGV4ZWN1dGFibGUKKysgIHBvc3RpbnN0YWxsX2NtZHM9J2No bW9kICt4ICRsaWInCisrICA7OworKworK3N1bm9zNCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MK KysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICBmaW5pc2hf Y21kcz0nUEFUSD0iXCRQQVRIOi91c3IvZXRjIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15 ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgbmVlZF9saWJf cHJlZml4PW5vCisrICBmaQorKyAgbmVlZF92ZXJzaW9uPXllcworKyAgOzsKKysKKytzeXN2NCB8 IHN5c3Y0LjMqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKysg ICAgc25pKQorKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgICAgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrICAgICAg OzsKKysgICAgc2llbWVucykKKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICA7Owor KyAgICBtb3Rvcm9sYSkKKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBuZWVkX3Zl cnNpb249bm8KKysgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICAgICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy9saWIgL3Vzci9saWIgL3Vzci9jY3MvbGliJworKyAg ICAgIDs7CisrICBlc2FjCisrICA7OworKworK3N5c3Y0Kk1QKikKKysgIGlmIHRlc3QgLWQgL3Vz ci9uZWMgO3RoZW4KKysgICAgdmVyc2lvbl90eXBlPWxpbnV4CisrICAgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9l eHR9LiRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPSckbGli bmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yJworKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAorKyAgZmkKKysgIDs7CisrCisrc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVu aXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJz ZC1lbGYKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPXllcworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgaWYgdGVzdCAi JHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 Jy91c3IvbG9jYWwvbGliIC91c3IvZ251L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIgL2xpYicK KysgIGVsc2UKKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Njcy9saWIgL3Vz ci9saWInCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBzY28zLjJ2NSopCisrICAgICAg ICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL2xp YiIKKysJOzsKKysgICAgZXNhYworKyAgZmkKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PScvdXNyL2xpYicKKysgIDs7CisrCisrdHBmKikKKysgICMgVFBGIGlzIGEgY3Jvc3MtdGFyZ2V0 IG9ubHkuICBQcmVmZXJyZWQgY3Jvc3MtaG9zdCA9IEdOVS9MaW51eC4KKysgIHZlcnNpb25fdHlw ZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3No YXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsK KysKKyt1dHM0KikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBz b25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIDs7CisrCisrKikKKysgIGR5bmFtaWNf bGlua2VyPW5vCisrICA7OworK2VzYWMKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogJGR5bmFtaWNfbGlua2VyIiA+JjUKKyskYXNfZWNobyAiJGR5bmFt aWNfbGlua2VyIiA+JjY7IH0KKyt0ZXN0ICIkZHluYW1pY19saW5rZXIiID0gbm8gJiYgY2FuX2J1 aWxkX3NoYXJlZD1ubworKworK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSJQQVRIICRzaGxp YnBhdGhfdmFyICRydW5wYXRoX3ZhciIKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAg dmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayBH Q0NfRVhFQ19QUkVGSVggQ09NUElMRVJfUEFUSCBMSUJSQVJZX1BBVEgiCisrZmkKKysKKytpZiB0 ZXN0ICIke2x0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgor KyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjIgorK2ZpCisraWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYytz ZXR9IiA9IHNldDsgdGhlbgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9z eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKKytmaQorKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHBy b2dyYW1zIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFy eSBwYXRocyBpbnRvIHByb2dyYW1zLi4uICIgPiY2OyB9CisraGFyZGNvZGVfYWN0aW9uPQorK2lm IHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIiB8fAorKyAgIHRlc3QgLW4gIiRy dW5wYXRoX3ZhciIgfHwKKysgICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSAiWHllcyIg OyB0aGVuCisrCisrICAjIFdlIGNhbiBoYXJkY29kZSBub24tZXhpc3RlbnQgZGlyZWN0b3JpZXMu CisrICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiAhPSBubyAmJgorKyAgICAgIyBJZiB0aGUg b25seSBtZWNoYW5pc20gdG8gYXZvaWQgaGFyZGNvZGluZyBpcyBzaGxpYnBhdGhfdmFyLCB3ZQor KyAgICAgIyBoYXZlIHRvIHJlbGluaywgb3RoZXJ3aXNlIHdlIG1pZ2h0IGxpbmsgd2l0aCBhbiBp bnN0YWxsZWQgbGlicmFyeQorKyAgICAgIyB3aGVuIHdlIHNob3VsZCBiZSBsaW5raW5nIHdpdGgg YSB5ZXQtdG8tYmUtaW5zdGFsbGVkIG9uZQorKyAgICAgIyMgdGVzdCAiJF9MVF9UQUdWQVIoaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhciwgKSIgIT0gbm8gJiYKKysgICAgIHRlc3QgIiRoYXJkY29kZV9t aW51c19MIiAhPSBubzsgdGhlbgorKyAgICAjIExpbmtpbmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUg dGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0b3J5LgorKyAgICBoYXJkY29kZV9hY3Rpb249cmVsaW5r CisrICBlbHNlCisrICAgICMgV2UgY2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2Ug Y2FuIGhhcmRjb2RlIG5vbmV4aXN0aW5nIGRpcnMuCisrICAgIGhhcmRjb2RlX2FjdGlvbj1pbW1l ZGlhdGUKKysgIGZpCisrZWxzZQorKyAgIyBXZSBjYW5ub3QgaGFyZGNvZGUgYW55dGhpbmcsIG9y IGVsc2Ugd2UgY2FuIG9ubHkgaGFyZGNvZGUgZXhpc3RpbmcKKysgICMgZGlyZWN0b3JpZXMuCisr ICBoYXJkY29kZV9hY3Rpb249dW5zdXBwb3J0ZWQKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkaGFyZGNvZGVfYWN0aW9uIiA+JjUKKyskYXNf ZWNobyAiJGhhcmRjb2RlX2FjdGlvbiIgPiY2OyB9CisrCisraWYgdGVzdCAiJGhhcmRjb2RlX2Fj dGlvbiIgPSByZWxpbmsgfHwKKysgICB0ZXN0ICIkaW5oZXJpdF9ycGF0aCIgPSB5ZXM7IHRoZW4K KysgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAorKyAgZW5hYmxlX2Zhc3Rf aW5zdGFsbD1ubworK2VsaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5 ZXMgfHwKKysgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVuCisrICAjIEZhc3Qg aW5zdGFsbGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkKKysgIGVuYWJsZV9mYXN0X2luc3RhbGw9bmVl ZGxlc3MKKytmaQorKworKworKworKworKworKworKyAgaWYgdGVzdCAieCRlbmFibGVfZGxvcGVu IiAhPSB4eWVzOyB0aGVuCisrICBlbmFibGVfZGxvcGVuPXVua25vd24KKysgIGVuYWJsZV9kbG9w ZW5fc2VsZj11bmtub3duCisrICBlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPXVua25vd24KKytl bHNlCisrICBsdF9jdl9kbG9wZW49bm8KKysgIGx0X2N2X2Rsb3Blbl9saWJzPQorKworKyAgY2Fz ZSAkaG9zdF9vcyBpbgorKyAgYmVvcyopCisrICAgIGx0X2N2X2Rsb3Blbj0ibG9hZF9hZGRfb24i CisrICAgIGx0X2N2X2Rsb3Blbl9saWJzPQorKyAgICBsdF9jdl9kbG9wZW5fc2VsZj15ZXMKKysg ICAgOzsKKysKKysgIG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorKyAgICBsdF9jdl9kbG9wZW49 IkxvYWRMaWJyYXJ5IgorKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgOzsKKysKKysgIGN5 Z3dpbiopCisrICAgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIgorKyAgICBsdF9jdl9kbG9wZW5fbGli cz0KKysgICAgOzsKKysKKysgIGRhcndpbiopCisrICAjIGlmIGxpYmRsIGlzIGluc3RhbGxlZCB3 ZSBuZWVkIHRvIGxpbmsgYWdhaW5zdCBpdAorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbCIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbGRsLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHthY19jdl9saWJfZGxfZGxvcGVuK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwor K0xJQlM9Ii1sZGwgICRMSUJTIgorK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0 LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrLyogT3ZlcnJpZGUgYW55IEdD QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisrICAgVXNlIGNoYXIgYmVj YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisrICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K KysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2VuZGlmCisrY2hhciBkbG9wZW4g KCk7CisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gZGxvcGVuICgpOworKyAgOworKyAgcmV0 dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVu IDoKKysgIGFjX2N2X2xpYl9kbF9kbG9wZW49eWVzCisrZWxzZQorKyAgYWNfY3ZfbGliX2RsX2Rs b3Blbj1ubworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBcCisrICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNf Y2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9saWJfZGxfZGxvcGVuIiA+JjUKKyskYXNfZWNobyAi JGFjX2N2X2xpYl9kbF9kbG9wZW4iID4mNjsgfQorK2lmIHRlc3QgIngkYWNfY3ZfbGliX2RsX2Rs b3BlbiIgPSB4IiJ5ZXM7IHRoZW4gOgorKyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rs b3Blbl9saWJzPSItbGRsIgorK2Vsc2UKKysKKysgICAgbHRfY3ZfZGxvcGVuPSJkeWxkIgorKyAg ICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCisrCisrZmkK KysKKysgICAgOzsKKysKKysgICopCisrICAgIGFjX2ZuX2NfY2hlY2tfZnVuYyAiJExJTkVOTyIg InNobF9sb2FkIiAiYWNfY3ZfZnVuY19zaGxfbG9hZCIKKytpZiB0ZXN0ICJ4JGFjX2N2X2Z1bmNf c2hsX2xvYWQiID0geCIieWVzOyB0aGVuIDoKKysgIGx0X2N2X2Rsb3Blbj0ic2hsX2xvYWQiCisr ZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBmb3Igc2hsX2xvYWQgaW4gLWxkbGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBz aGxfbG9hZCBpbiAtbGRsZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfbGliX2RsZF9z aGxfbG9hZCtzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbGRsZCAg JExJQlMiCisrY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHBy b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KKysgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKKysgICBidWlsdGluIGFuZCB0aGVuIGl0 cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworKyNpZmRlZiBfX2Nw bHVzcGx1cworK2V4dGVybiAiQyIKKysjZW5kaWYKKytjaGFyIHNobF9sb2FkICgpOworK2ludAor K21haW4gKCkKKyt7CisrcmV0dXJuIHNobF9sb2FkICgpOworKyAgOworKyAgcmV0dXJuIDA7Cisr fQorK19BQ0VPRgorK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKysgIGFj X2N2X2xpYl9kbGRfc2hsX2xvYWQ9eWVzCisrZWxzZQorKyAgYWNfY3ZfbGliX2RsZF9zaGxfbG9h ZD1ubworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBc CisrICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hl Y2tfbGliX3NhdmVfTElCUworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6ICRhY19jdl9saWJfZGxkX3NobF9sb2FkIiA+JjUKKyskYXNfZWNobyAi JGFjX2N2X2xpYl9kbGRfc2hsX2xvYWQiID4mNjsgfQorK2lmIHRlc3QgIngkYWNfY3ZfbGliX2Rs ZF9zaGxfbG9hZCIgPSB4IiJ5ZXM7IHRoZW4gOgorKyAgbHRfY3ZfZGxvcGVuPSJzaGxfbG9hZCIg bHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGxkIgorK2Vsc2UKKysgIGFjX2ZuX2NfY2hlY2tfZnVuYyAi JExJTkVOTyIgImRsb3BlbiIgImFjX2N2X2Z1bmNfZGxvcGVuIgorK2lmIHRlc3QgIngkYWNfY3Zf ZnVuY19kbG9wZW4iID0geCIieWVzOyB0aGVuIDoKKysgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIgor K2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgZm9yIGRsb3BlbiBpbiAtbGRsIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZGxv cGVuIGluIC1sZGwuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2xpYl9kbF9kbG9wZW4r c2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWxkbCAgJExJQlMiCisr Y2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KKysKKysvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0 byBhdm9pZCBhbiBlcnJvci4KKysgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0 aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKKysgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVu dCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworKyNpZmRlZiBfX2NwbHVzcGx1cwor K2V4dGVybiAiQyIKKysjZW5kaWYKKytjaGFyIGRsb3BlbiAoKTsKKytpbnQKKyttYWluICgpCisr eworK3JldHVybiBkbG9wZW4gKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisr aWYgYWNfZm5fY190cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorKyAgYWNfY3ZfbGliX2RsX2Rs b3Blbj15ZXMKKytlbHNlCisrICBhY19jdl9saWJfZGxfZGxvcGVuPW5vCisrZmkKKytybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRlc3QkYWNf ZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFj X2N2X2xpYl9kbF9kbG9wZW4iID4mNQorKyRhc19lY2hvICIkYWNfY3ZfbGliX2RsX2Rsb3BlbiIg PiY2OyB9CisraWYgdGVzdCAieCRhY19jdl9saWJfZGxfZGxvcGVuIiA9IHgiInllczsgdGhlbiA6 CisrICBsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGwiCisrZWxz ZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBm b3IgZGxvcGVuIGluIC1sc3ZsZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsb3Bl biBpbiAtbHN2bGQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2xpYl9zdmxkX2Rsb3Bl bitzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbHN2bGQgICRMSUJT IgorK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQg Y29uZmRlZnMuaC4gICovCisrCisrLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5 cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisrICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0 Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisrICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KKysjaWZkZWYgX19jcGx1c3Bs dXMKKytleHRlcm4gIkMiCisrI2VuZGlmCisrY2hhciBkbG9wZW4gKCk7CisraW50CisrbWFpbiAo KQorK3sKKytyZXR1cm4gZGxvcGVuICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VP RgorK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKysgIGFjX2N2X2xpYl9z dmxkX2Rsb3Blbj15ZXMKKytlbHNlCisrICBhY19jdl9saWJfc3ZsZF9kbG9wZW49bm8KKytmaQor K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorKyAgICBjb25m dGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZl X0xJQlMKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiAkYWNfY3ZfbGliX3N2bGRfZGxvcGVuIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2xpYl9z dmxkX2Rsb3BlbiIgPiY2OyB9CisraWYgdGVzdCAieCRhY19jdl9saWJfc3ZsZF9kbG9wZW4iID0g eCIieWVzOyB0aGVuIDoKKysgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGli cz0iLWxzdmxkIgorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgZm9yIGRsZF9saW5rIGluIC1sZGxkIiA+JjUKKyskYXNfZWNob19uICJj aGVja2luZyBmb3IgZGxkX2xpbmsgaW4gLWxkbGQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2Fj X2N2X2xpYl9kbGRfZGxkX2xpbmsrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisr TElCUz0iLWxkbGQgICRMSUJTIgorK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0 LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrLyogT3ZlcnJpZGUgYW55IEdD QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisrICAgVXNlIGNoYXIgYmVj YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisrICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K KysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2VuZGlmCisrY2hhciBkbGRfbGlu ayAoKTsKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBkbGRfbGluayAoKTsKKysgIDsKKysg IHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsg dGhlbiA6CisrICBhY19jdl9saWJfZGxkX2RsZF9saW5rPXllcworK2Vsc2UKKysgIGFjX2N2X2xp Yl9kbGRfZGxkX2xpbms9bm8KKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0 LiRhY19vYmpleHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAor K0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfbGliX2RsZF9kbGRfbGluayIgPiY1 CisrJGFzX2VjaG8gIiRhY19jdl9saWJfZGxkX2RsZF9saW5rIiA+JjY7IH0KKytpZiB0ZXN0ICJ4 JGFjX2N2X2xpYl9kbGRfZGxkX2xpbmsiID0geCIieWVzOyB0aGVuIDoKKysgIGx0X2N2X2Rsb3Bl bj0iZGxkX2xpbmsiIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsZCIKKytmaQorKworKworK2ZpCisr CisrCisrZmkKKysKKysKKytmaQorKworKworK2ZpCisrCisrCisrZmkKKysKKysgICAgOzsKKysg IGVzYWMKKysKKysgIGlmIHRlc3QgIngkbHRfY3ZfZGxvcGVuIiAhPSB4bm87IHRoZW4KKysgICAg ZW5hYmxlX2Rsb3Blbj15ZXMKKysgIGVsc2UKKysgICAgZW5hYmxlX2Rsb3Blbj1ubworKyAgZmkK KysKKysgIGNhc2UgJGx0X2N2X2Rsb3BlbiBpbgorKyAgZGxvcGVuKQorKyAgICBzYXZlX0NQUEZM QUdTPSIkQ1BQRkxBR1MiCisrICAgIHRlc3QgIngkYWNfY3ZfaGVhZGVyX2RsZmNuX2giID0geHll cyAmJiBDUFBGTEFHUz0iJENQUEZMQUdTIC1ESEFWRV9ETEZDTl9IIgorKworKyAgICBzYXZlX0xE RkxBR1M9IiRMREZMQUdTIgorKyAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxB R1M9XCJcJExERkxBR1MgJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY1wiCisrCisrICAgIHNhdmVf TElCUz0iJExJQlMiCisrICAgIExJQlM9IiRsdF9jdl9kbG9wZW5fbGlicyAkTElCUyIKKysKKysg ICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0 aGVyIGEgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgd2hldGhlciBhIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGYuLi4gIiA+JjY7IH0KKytpZiB0 ZXN0ICIke2x0X2N2X2Rsb3Blbl9zZWxmK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgCSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGlu ZyIgPSB5ZXM7IHRoZW4gOgorKyAgbHRfY3ZfZGxvcGVuX3NlbGY9Y3Jvc3MKKytlbHNlCisrICBs dF9kbHVua25vd249MDsgbHRfZGxub191c2NvcmU9MTsgbHRfZGxuZWVkX3VzY29yZT0yCisrICBs dF9zdGF0dXM9JGx0X2RsdW5rbm93bgorKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9F T0YKKysjbGluZSAkTElORU5PICJjb25maWd1cmUiCisrI2luY2x1ZGUgImNvbmZkZWZzLmgiCisr CisrI2lmIEhBVkVfRExGQ05fSAorKyNpbmNsdWRlIDxkbGZjbi5oPgorKyNlbmRpZgorKworKyNp bmNsdWRlIDxzdGRpby5oPgorKworKyNpZmRlZiBSVExEX0dMT0JBTAorKyMgIGRlZmluZSBMVF9E TEdMT0JBTAkJUlRMRF9HTE9CQUwKKysjZWxzZQorKyMgIGlmZGVmIERMX0dMT0JBTAorKyMgICAg ZGVmaW5lIExUX0RMR0xPQkFMCQlETF9HTE9CQUwKKysjICBlbHNlCisrIyAgICBkZWZpbmUgTFRf RExHTE9CQUwJCTAKKysjICBlbmRpZgorKyNlbmRpZgorKworKy8qIFdlIG1heSBoYXZlIHRvIGRl ZmluZSBMVF9ETExBWllfT1JfTk9XIGluIHRoZSBjb21tYW5kIGxpbmUgaWYgd2UKKysgICBmaW5k IG91dCBpdCBkb2VzIG5vdCB3b3JrIGluIHNvbWUgcGxhdGZvcm0uICovCisrI2lmbmRlZiBMVF9E TExBWllfT1JfTk9XCisrIyAgaWZkZWYgUlRMRF9MQVpZCisrIyAgICBkZWZpbmUgTFRfRExMQVpZ X09SX05PVwkJUlRMRF9MQVpZCisrIyAgZWxzZQorKyMgICAgaWZkZWYgRExfTEFaWQorKyMgICAg ICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkJRExfTEFaWQorKyMgICAgZWxzZQorKyMgICAgICBp ZmRlZiBSVExEX05PVworKyMgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCVJUTERfTk9X CisrIyAgICAgIGVsc2UKKysjICAgICAgICBpZmRlZiBETF9OT1cKKysjICAgICAgICAgIGRlZmlu ZSBMVF9ETExBWllfT1JfTk9XCURMX05PVworKyMgICAgICAgIGVsc2UKKysjICAgICAgICAgIGRl ZmluZSBMVF9ETExBWllfT1JfTk9XCTAKKysjICAgICAgICBlbmRpZgorKyMgICAgICBlbmRpZgor KyMgICAgZW5kaWYKKysjICBlbmRpZgorKyNlbmRpZgorKworKy8qIFdoZW4gLWZ2aXNiaWxpdHk9 aGlkZGVuIGlzIHVzZWQsIGFzc3VtZSB0aGUgY29kZSBoYXMgYmVlbiBhbm5vdGF0ZWQKKysgICBj b3JyZXNwb25kaW5nbHkgZm9yIHRoZSBzeW1ib2xzIG5lZWRlZC4gICovCisrI2lmIGRlZmluZWQo X19HTlVDX18pICYmICgoKF9fR05VQ19fID09IDMpICYmIChfX0dOVUNfTUlOT1JfXyA+PSAzKSkg fHwgKF9fR05VQ19fID4gMykpCisrdm9pZCBmbm9yZCAoKSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmls aXR5KCJkZWZhdWx0IikpKTsKKysjZW5kaWYKKysKKyt2b2lkIGZub3JkICgpIHsgaW50IGk9NDI7 IH0KKytpbnQgbWFpbiAoKQorK3sKKysgIHZvaWQgKnNlbGYgPSBkbG9wZW4gKDAsIExUX0RMR0xP QkFMfExUX0RMTEFaWV9PUl9OT1cpOworKyAgaW50IHN0YXR1cyA9ICRsdF9kbHVua25vd247Cisr CisrICBpZiAoc2VsZikKKysgICAgeworKyAgICAgIGlmIChkbHN5bSAoc2VsZiwiZm5vcmQiKSkg ICAgICAgc3RhdHVzID0gJGx0X2Rsbm9fdXNjb3JlOworKyAgICAgIGVsc2UKKysgICAgICAgIHsK KysJICBpZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSAgc3RhdHVzID0gJGx0X2RsbmVlZF91c2Nv cmU7CisrICAgICAgICAgIGVsc2UgcHV0cyAoZGxlcnJvciAoKSk7CisrCX0KKysgICAgICAvKiBk bGNsb3NlIChzZWxmKTsgKi8KKysgICAgfQorKyAgZWxzZQorKyAgICBwdXRzIChkbGVycm9yICgp KTsKKysKKysgIHJldHVybiBzdGF0dXM7CisrfQorK19MVF9FT0YKKysgIGlmIHsgeyBldmFsIGVj aG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhY19saW5rXCIiOyB9ID4m NQorKyAgKGV2YWwgJGFjX2xpbmspIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0 ZXN0ICRhY19zdGF0dXMgPSAwOyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gMj4v ZGV2L251bGw7IHRoZW4KKysgICAgKC4vY29uZnRlc3Q7IGV4aXQ7ICkgPiY1IDI+L2Rldi9udWxs CisrICAgIGx0X3N0YXR1cz0kPworKyAgICBjYXNlIHgkbHRfc3RhdHVzIGluCisrICAgICAgeCRs dF9kbG5vX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzIDs7CisrICAgICAgeCRsdF9kbG5l ZWRfdXNjb3JlKSBsdF9jdl9kbG9wZW5fc2VsZj15ZXMgOzsKKysgICAgICB4JGx0X2RsdW5rbm93 bnx4KikgbHRfY3ZfZGxvcGVuX3NlbGY9bm8gOzsKKysgICAgZXNhYworKyAgZWxzZSA6CisrICAg ICMgY29tcGlsYXRpb24gZmFpbGVkCisrICAgIGx0X2N2X2Rsb3Blbl9zZWxmPW5vCisrICBmaQor K2ZpCisrcm0gLWZyIGNvbmZ0ZXN0KgorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9kbG9wZW5fc2VsZiIgPiY1CisrJGFz X2VjaG8gIiRsdF9jdl9kbG9wZW5fc2VsZiIgPiY2OyB9CisrCisrICAgIGlmIHRlc3QgIngkbHRf Y3ZfZGxvcGVuX3NlbGYiID0geHllczsgdGhlbgorKyAgICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVy X3dsIGV2YWwgTERGTEFHUz1cIlwkTERGTEFHUyAkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNcIgor KyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg d2hldGhlciBhIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGYiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9n cmFtIGNhbiBkbG9wZW4gaXRzZWxmLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9kbG9w ZW5fc2VsZl9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICAJICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsg dGhlbiA6CisrICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9Y3Jvc3MKKytlbHNlCisrICBsdF9k bHVua25vd249MDsgbHRfZGxub191c2NvcmU9MTsgbHRfZGxuZWVkX3VzY29yZT0yCisrICBsdF9z dGF0dXM9JGx0X2RsdW5rbm93bgorKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YK KysjbGluZSAkTElORU5PICJjb25maWd1cmUiCisrI2luY2x1ZGUgImNvbmZkZWZzLmgiCisrCisr I2lmIEhBVkVfRExGQ05fSAorKyNpbmNsdWRlIDxkbGZjbi5oPgorKyNlbmRpZgorKworKyNpbmNs dWRlIDxzdGRpby5oPgorKworKyNpZmRlZiBSVExEX0dMT0JBTAorKyMgIGRlZmluZSBMVF9ETEdM T0JBTAkJUlRMRF9HTE9CQUwKKysjZWxzZQorKyMgIGlmZGVmIERMX0dMT0JBTAorKyMgICAgZGVm aW5lIExUX0RMR0xPQkFMCQlETF9HTE9CQUwKKysjICBlbHNlCisrIyAgICBkZWZpbmUgTFRfRExH TE9CQUwJCTAKKysjICBlbmRpZgorKyNlbmRpZgorKworKy8qIFdlIG1heSBoYXZlIHRvIGRlZmlu ZSBMVF9ETExBWllfT1JfTk9XIGluIHRoZSBjb21tYW5kIGxpbmUgaWYgd2UKKysgICBmaW5kIG91 dCBpdCBkb2VzIG5vdCB3b3JrIGluIHNvbWUgcGxhdGZvcm0uICovCisrI2lmbmRlZiBMVF9ETExB WllfT1JfTk9XCisrIyAgaWZkZWYgUlRMRF9MQVpZCisrIyAgICBkZWZpbmUgTFRfRExMQVpZX09S X05PVwkJUlRMRF9MQVpZCisrIyAgZWxzZQorKyMgICAgaWZkZWYgRExfTEFaWQorKyMgICAgICBk ZWZpbmUgTFRfRExMQVpZX09SX05PVwkJRExfTEFaWQorKyMgICAgZWxzZQorKyMgICAgICBpZmRl ZiBSVExEX05PVworKyMgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCVJUTERfTk9XCisr IyAgICAgIGVsc2UKKysjICAgICAgICBpZmRlZiBETF9OT1cKKysjICAgICAgICAgIGRlZmluZSBM VF9ETExBWllfT1JfTk9XCURMX05PVworKyMgICAgICAgIGVsc2UKKysjICAgICAgICAgIGRlZmlu ZSBMVF9ETExBWllfT1JfTk9XCTAKKysjICAgICAgICBlbmRpZgorKyMgICAgICBlbmRpZgorKyMg ICAgZW5kaWYKKysjICBlbmRpZgorKyNlbmRpZgorKworKy8qIFdoZW4gLWZ2aXNiaWxpdHk9aGlk ZGVuIGlzIHVzZWQsIGFzc3VtZSB0aGUgY29kZSBoYXMgYmVlbiBhbm5vdGF0ZWQKKysgICBjb3Jy ZXNwb25kaW5nbHkgZm9yIHRoZSBzeW1ib2xzIG5lZWRlZC4gICovCisrI2lmIGRlZmluZWQoX19H TlVDX18pICYmICgoKF9fR05VQ19fID09IDMpICYmIChfX0dOVUNfTUlOT1JfXyA+PSAzKSkgfHwg KF9fR05VQ19fID4gMykpCisrdm9pZCBmbm9yZCAoKSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5 KCJkZWZhdWx0IikpKTsKKysjZW5kaWYKKysKKyt2b2lkIGZub3JkICgpIHsgaW50IGk9NDI7IH0K KytpbnQgbWFpbiAoKQorK3sKKysgIHZvaWQgKnNlbGYgPSBkbG9wZW4gKDAsIExUX0RMR0xPQkFM fExUX0RMTEFaWV9PUl9OT1cpOworKyAgaW50IHN0YXR1cyA9ICRsdF9kbHVua25vd247CisrCisr ICBpZiAoc2VsZikKKysgICAgeworKyAgICAgIGlmIChkbHN5bSAoc2VsZiwiZm5vcmQiKSkgICAg ICAgc3RhdHVzID0gJGx0X2Rsbm9fdXNjb3JlOworKyAgICAgIGVsc2UKKysgICAgICAgIHsKKysJ ICBpZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSAgc3RhdHVzID0gJGx0X2RsbmVlZF91c2NvcmU7 CisrICAgICAgICAgIGVsc2UgcHV0cyAoZGxlcnJvciAoKSk7CisrCX0KKysgICAgICAvKiBkbGNs b3NlIChzZWxmKTsgKi8KKysgICAgfQorKyAgZWxzZQorKyAgICBwdXRzIChkbGVycm9yICgpKTsK KysKKysgIHJldHVybiBzdGF0dXM7CisrfQorK19MVF9FT0YKKysgIGlmIHsgeyBldmFsIGVjaG8g IlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhY19saW5rXCIiOyB9ID4mNQor KyAgKGV2YWwgJGFjX2xpbmspIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0 ICRhY19zdGF0dXMgPSAwOyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gMj4vZGV2 L251bGw7IHRoZW4KKysgICAgKC4vY29uZnRlc3Q7IGV4aXQ7ICkgPiY1IDI+L2Rldi9udWxsCisr ICAgIGx0X3N0YXR1cz0kPworKyAgICBjYXNlIHgkbHRfc3RhdHVzIGluCisrICAgICAgeCRsdF9k bG5vX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcyA7OworKyAgICAgIHgkbHRf ZGxuZWVkX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcyA7OworKyAgICAgIHgk bHRfZGx1bmtub3dufHgqKSBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9bm8gOzsKKysgICAgZXNh YworKyAgZWxzZSA6CisrICAgICMgY29tcGlsYXRpb24gZmFpbGVkCisrICAgIGx0X2N2X2Rsb3Bl bl9zZWxmX3N0YXRpYz1ubworKyAgZmkKKytmaQorK3JtIC1mciBjb25mdGVzdCoKKysKKysKKytm aQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRf Y3ZfZGxvcGVuX3NlbGZfc3RhdGljIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X2Rsb3Blbl9zZWxm X3N0YXRpYyIgPiY2OyB9CisrICAgIGZpCisrCisrICAgIENQUEZMQUdTPSIkc2F2ZV9DUFBGTEFH UyIKKysgICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKKysgICAgTElCUz0iJHNhdmVfTElCUyIK KysgICAgOzsKKysgIGVzYWMKKysKKysgIGNhc2UgJGx0X2N2X2Rsb3Blbl9zZWxmIGluCisrICB5 ZXN8bm8pIGVuYWJsZV9kbG9wZW5fc2VsZj0kbHRfY3ZfZGxvcGVuX3NlbGYgOzsKKysgICopIGVu YWJsZV9kbG9wZW5fc2VsZj11bmtub3duIDs7CisrICBlc2FjCisrCisrICBjYXNlICRsdF9jdl9k bG9wZW5fc2VsZl9zdGF0aWMgaW4KKysgIHllc3xubykgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRp Yz0kbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIDs7CisrICAqKSBlbmFibGVfZGxvcGVuX3NlbGZf c3RhdGljPXVua25vd24gOzsKKysgIGVzYWMKKytmaQorKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworK3N0cmlwbGliPQorK29sZF9zdHJpcGxpYj0KKyt7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIg c3RyaXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgd2hldGhlciBzdHJpcHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAtbiAiJFNUUklQIiAmJiAkU1RSSVAgLVYgMj4mMSB8ICRHUkVQICJHTlUgc3RyaXAi ID4vZGV2L251bGw7IHRoZW4KKysgIHRlc3QgLXogIiRvbGRfc3RyaXBsaWIiICYmIG9sZF9zdHJp cGxpYj0iJFNUUklQIC0tc3RyaXAtZGVidWciCisrICB0ZXN0IC16ICIkc3RyaXBsaWIiICYmIHN0 cmlwbGliPSIkU1RSSVAgLS1zdHJpcC11bm5lZWRlZCIKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4m NjsgfQorK2Vsc2UKKysjIEZJWE1FIC0gaW5zZXJ0IHNvbWUgcmVhbCB0ZXN0cywgaG9zdF9vcyBp c24ndCByZWFsbHkgZ29vZCBlbm91Z2gKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGRhcndpbiop CisrICAgIGlmIHRlc3QgLW4gIiRTVFJJUCIgOyB0aGVuCisrICAgICAgc3RyaXBsaWI9IiRTVFJJ UCAteCIKKysgICAgICBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtUyIKKysgICAgICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNo byAieWVzIiA+JjY7IH0KKysgICAgZWxzZQorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0K KysgICAgZmkKKysgICAgOzsKKysgICopCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysg ICAgOzsKKysgIGVzYWMKKytmaQorKworKworKworKworKworKworKworKworKworKworKworKwor KyAgIyBSZXBvcnQgd2hpY2ggbGlicmFyeSB0eXBlcyB3aWxsIGFjdHVhbGx5IGJlIGJ1aWx0Cisr ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmIGxp YnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGNhbl9idWls ZF9zaGFyZWQiID4mNQorKyRhc19lY2hvICIkY2FuX2J1aWxkX3NoYXJlZCIgPiY2OyB9CisrCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRo ZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg d2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrICB0ZXN0ICIk Y2FuX2J1aWxkX3NoYXJlZCIgPSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9bm8KKysKKysgICMgT24g QUlYLCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBu YW1lc3BhY2UsIGFuZAorKyAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgorKyAgY2FzZSAkaG9z dF9vcyBpbgorKyAgYWl4MyopCisrICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBl bmFibGVfc3RhdGljPW5vCisrICAgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCisrICAgICAg YXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGliIgorKyAgICAgIHBvc3Rp bnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicKKysgICAgZmkKKysgICAgOzsKKysKKysgIGFpeFs0 LTldKikKKysgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNl X3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgorKyAgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVk IiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisrICAgIGZpCisrICAgIDs7CisrICBlc2FjCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGVuYWJs ZV9zaGFyZWQiID4mNQorKyRhc19lY2hvICIkZW5hYmxlX3NoYXJlZCIgPiY2OyB9CisrCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIg dG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hl dGhlciB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrICAjIE1ha2Ugc3Vy ZSBlaXRoZXIgZW5hYmxlX3NoYXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4KKysgIHRlc3Qg IiRlbmFibGVfc2hhcmVkIiA9IHllcyB8fCBlbmFibGVfc3RhdGljPXllcworKyAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRlbmFibGVfc3RhdGljIiA+ JjUKKyskYXNfZWNobyAiJGVuYWJsZV9zdGF0aWMiID4mNjsgfQorKworKworKworKworK2ZpCisr YWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDQyAtYyAk Q0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ0MgLW8g Y29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUK KysKKytDQz0iJGx0X3NhdmVfQ0MiCisrCisrICAgICAgaWYgdGVzdCAtbiAiJENYWCIgJiYgKCB0 ZXN0ICJYJENYWCIgIT0gIlhubyIgJiYKKysgICAgKCAodGVzdCAiWCRDWFgiID0gIlhnKysiICYm IGBnKysgLXYgPi9kZXYvbnVsbCAyPiYxYCApIHx8CisrICAgICh0ZXN0ICJYJENYWCIgIT0gIlhn KysiKSkpIDsgdGhlbgorKyAgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1Mn CisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGls ZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDKysgcHJlcHJvY2Vzc29y IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDKysgcHJlcHJvY2Vz c29yLi4uICIgPiY2OyB9CisraWYgdGVzdCAteiAiJENYWENQUCI7IHRoZW4KKysgIGlmIHRlc3Qg IiR7YWNfY3ZfcHJvZ19DWFhDUFArc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1c2UgQ1hY Q1BQIG5lZWRzIHRvIGJlIGV4cGFuZGVkCisrICAgIGZvciBDWFhDUFAgaW4gIiRDWFggLUUiICIv bGliL2NwcCIKKysgICAgZG8KKysgICAgICBhY19wcmVwcm9jX29rPWZhbHNlCisrZm9yIGFjX2N4 eF9wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKKytkbworKyAgIyBVc2UgYSBoZWFkZXIgZmls ZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYworKyAgIyB3aXRoIGEg ZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCisrICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxh c3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKKysgICMgPGxpbWl0cy5oPiBl eGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgorKyAgIyBPbiB0aGUgTmVYVCwg Y2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKKysgICMg bm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhp cyBjYXNlLgorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaWZkZWYgX19TVERDX18KKysjIGluY2x1ZGUgPGxp bWl0cy5oPgorKyNlbHNlCisrIyBpbmNsdWRlIDxhc3NlcnQuaD4KKysjZW5kaWYKKysJCSAgICAg U3ludGF4IGVycm9yCisrX0FDRU9GCisraWYgYWNfZm5fY3h4X3RyeV9jcHAgIiRMSU5FTk8iOyB0 aGVuIDoKKysKKytlbHNlCisrICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCisrY29u dGludWUKKytmaQorK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisrICAj IE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQg aGVhZGVycworKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KKysgIGNhdCBjb25mZGVmcy5o IC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisr I2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CisrX0FDRU9GCisraWYgYWNfZm5fY3h4X3RyeV9j cHAgIiRMSU5FTk8iOyB0aGVuIDoKKysgICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5w dXQuCisrY29udGludWUKKytlbHNlCisrICAjIFBhc3NlcyBib3RoIHRlc3RzLgorK2FjX3ByZXBy b2Nfb2s9OgorK2JyZWFrCisrZmkKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4 dAorKworK2RvbmUKKysjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3Mg Y2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX2V4dAorK2lmICRhY19wcmVwcm9jX29rOyB0aGVuIDoKKysgIGJyZWFrCisrZmkKKysKKysg ICAgZG9uZQorKyAgICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQCisrCisrZmkKKysgIENYWENQ UD0kYWNfY3ZfcHJvZ19DWFhDUFAKKytlbHNlCisrICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQ CisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog JENYWENQUCIgPiY1CisrJGFzX2VjaG8gIiRDWFhDUFAiID4mNjsgfQorK2FjX3ByZXByb2Nfb2s9 ZmFsc2UKKytmb3IgYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcworK2RvCisrICAj IFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGds aWJjCisrICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KKysgICMgUHJlZmVy IDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQor KyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCisr ICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVy J3MgcGFyc2VyLAorKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMg aGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCisrICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5j b25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpZmRlZiBfX1NURENf XworKyMgaW5jbHVkZSA8bGltaXRzLmg+CisrI2Vsc2UKKysjIGluY2x1ZGUgPGFzc2VydC5oPgor KyNlbmRpZgorKwkJICAgICBTeW50YXggZXJyb3IKKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5 X2NwcCAiJExJTkVOTyI7IHRoZW4gOgorKworK2Vsc2UKKysgICMgQnJva2VuOiBmYWlscyBvbiB2 YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2ZpCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0 LiRhY19leHQKKysKKysgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hl dGhlciBub25leGlzdGVudCBoZWFkZXJzCisrICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93Lgor KyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KKytfQUNFT0YKKytp ZiBhY19mbl9jeHhfdHJ5X2NwcCAiJExJTkVOTyI7IHRoZW4gOgorKyAgIyBCcm9rZW46IHN1Y2Nl c3Mgb24gaW52YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2Vsc2UKKysgICMgUGFzc2VzIGJvdGgg dGVzdHMuCisrYWNfcHJlcHJvY19vaz06CisrYnJlYWsKKytmaQorK3JtIC1mIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfZXh0CisrCisrZG9uZQorKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNf UFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgorK3JtIC1mIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisraWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4gOgorKwor K2Vsc2UKKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJv cjogaW4gXGAkYWNfcHdkJzoiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRh Y19wd2QnOiIgPiYyO30KKythc19mbl9lcnJvciAkPyAiQysrIHByZXByb2Nlc3NvciBcIiRDWFhD UFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKKytTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRh aWxzIiAiJExJTkVOTyIgNTsgfQorK2ZpCisrCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQ UEZMQUdTJworK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4k YWNfZXh0ID4mNScKKythY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1Mg JENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBp bGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKKysKKytlbHNlCisrICBfbHRfY2F1Z2h0X0NY WF9lcnJvcj15ZXMKKytmaQorKworK2FjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZM QUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4k YWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworK2FyY2hpdmVfY21kc19uZWVk X2xjX0NYWD1ubworK2FsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0KKythbHdheXNfZXhwb3J0X3N5 bWJvbHNfQ1hYPW5vCisrYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9CisrY29tcGlsZXJfbmVlZHNf b2JqZWN0X0NYWD1ubworK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9CisraGFyZGNvZGVf ZGlyZWN0X0NYWD1ubworK2hhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFg9bm8KKytoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0KKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0NY WD0KKytoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD0KKytoYXJkY29kZV9taW51c19MX0NY WD1ubworK2hhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPXVuc3VwcG9ydGVkCisraGFyZGNvZGVf YXV0b21hdGljX0NYWD1ubworK2luaGVyaXRfcnBhdGhfQ1hYPW5vCisrbW9kdWxlX2NtZHNfQ1hY PQorK21vZHVsZV9leHBzeW1fY21kc19DWFg9CisrbGlua19hbGxfZGVwbGlic19DWFg9dW5rbm93 bgorK29sZF9hcmNoaXZlX2NtZHNfQ1hYPSRvbGRfYXJjaGl2ZV9jbWRzCisrcmVsb2FkX2ZsYWdf Q1hYPSRyZWxvYWRfZmxhZworK3JlbG9hZF9jbWRzX0NYWD0kcmVsb2FkX2NtZHMKKytub191bmRl ZmluZWRfZmxhZ19DWFg9Cisrd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPQorK2VuYWJsZV9z aGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfQ1hYPW5vCisrCisrIyBTb3VyY2UgZmlsZSBleHRl bnNpb24gZm9yIEMrKyB0ZXN0IHNvdXJjZXMuCisrYWNfZXh0PWNwcAorKworKyMgT2JqZWN0IGZp bGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBDKysgdGVzdCBzb3VyY2VzLgorK29iamV4dD1vCisr b2JqZXh0X0NYWD0kb2JqZXh0CisrCisrIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0 ZXN0cyBpZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAorKyMgdGhlIENYWCBjb21waWxlciBp c24ndCB3b3JraW5nLiAgU29tZSB2YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKKysjIGFy ZSBjdXJyZW50bHkgYXNzdW1lZCB0byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9uIHRoaXMgcGxh dGZvcm0sCisrIyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9u IGEgbm9uLXdvcmtpbmcgY29tcGlsZXIuCisraWYgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9y IiAhPSB5ZXM7IHRoZW4KKysgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRl c3RzCisrICBsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImludCBzb21lX3ZhcmlhYmxlID0g MDsiCisrCisrICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworKyAgbHRf c2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbihpbnQsIGNoYXIgKltdKSB7IHJldHVybigw KTsgfScKKysKKysgICMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0 aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KKysKKysKKysKKysKKysKKysKKysjIElmIG5v IEMgY29tcGlsZXIgd2FzIHNwZWNpZmllZCwgdXNlIENDLgorK0xUQ0M9JHtMVENDLSIkQ0MifQor KworKyMgSWYgbm8gQyBjb21waWxlciBmbGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4K KytMVENGTEFHUz0ke0xUQ0ZMQUdTLSIkQ0ZMQUdTIn0KKysKKysjIEFsbG93IENDIHRvIGJlIGEg cHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorK2NvbXBpbGVyPSRDQworKworKworKyAgIyBz YXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKKysgIGFjX291dGZp bGU9Y29uZnRlc3QuJGFjX29iamV4dAorK2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2Nv ZGUiID5jb25mdGVzdC4kYWNfZXh0CisrZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVs bCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCisrX2x0X2NvbXBpbGVyX2Jv aWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorKyRSTSBjb25mdGVzdCoKKysKKysgIGFjX291 dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAorK2VjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2Nv ZGUiID5jb25mdGVzdC4kYWNfZXh0CisrZXZhbCAiJGFjX2xpbmsiIDI+JjEgPi9kZXYvbnVsbCB8 ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCisrX2x0X2xpbmtlcl9ib2lsZXJw bGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyskUk0gLXIgY29uZnRlc3QqCisrCisrCisrICAjIEFs bG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorKyAgbHRfc2F2ZV9D Qz0kQ0MKKysgIGx0X3NhdmVfTEQ9JExECisrICBsdF9zYXZlX0dDQz0kR0NDCisrICBHQ0M9JEdY WAorKyAgbHRfc2F2ZV93aXRoX2dudV9sZD0kd2l0aF9nbnVfbGQKKysgIGx0X3NhdmVfcGF0aF9M RD0kbHRfY3ZfcGF0aF9MRAorKyAgaWYgdGVzdCAtbiAiJHtsdF9jdl9wcm9nX2dudV9sZGN4eCtz ZXR9IjsgdGhlbgorKyAgICBsdF9jdl9wcm9nX2dudV9sZD0kbHRfY3ZfcHJvZ19nbnVfbGRjeHgK KysgIGVsc2UKKysgICAgJGFzX3Vuc2V0IGx0X2N2X3Byb2dfZ251X2xkCisrICBmaQorKyAgaWYg dGVzdCAtbiAiJHtsdF9jdl9wYXRoX0xEQ1hYK3NldH0iOyB0aGVuCisrICAgIGx0X2N2X3BhdGhf TEQ9JGx0X2N2X3BhdGhfTERDWFgKKysgIGVsc2UKKysgICAgJGFzX3Vuc2V0IGx0X2N2X3BhdGhf TEQKKysgIGZpCisrICB0ZXN0IC16ICIke0xEQ1hYK3NldH0iIHx8IExEPSRMRENYWAorKyAgQ0M9 JHtDWFgtImMrKyJ9CisrICBjb21waWxlcj0kQ0MKKysgIGNvbXBpbGVyX0NYWD0kQ0MKKysgIGZv ciBjY190ZW1wIGluICRjb21waWxlciIiOyBkbworKyAgY2FzZSAkY2NfdGVtcCBpbgorKyAgICBj b21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7CisrICAg IGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlmeSApIDs7CisrICAg IFwtKikgOzsKKysgICAgKikgYnJlYWs7OworKyAgZXNhYworK2RvbmUKKytjY19iYXNlbmFtZT1g JEVDSE8gIiRjY190ZW1wIiB8ICRTRUQgInMlLiovJSU7IHMlXiRob3N0X2FsaWFzLSUlImAKKysK KysKKysgIGlmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KKysgICAgIyBXZSBkb24ndCB3YW50 IC1mbm8tZXhjZXB0aW9uIHdoZW4gY29tcGlsaW5nIEMrKyBjb2RlLCBzbyBzZXQgdGhlCisrICAg ICMgbm9fYnVpbHRpbl9mbGFnIHNlcGFyYXRlbHkKKysgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7 IHRoZW4KKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFg9JyAtZm5v LWJ1aWx0aW4nCisrICAgIGVsc2UKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5f ZmxhZ19DWFg9CisrICAgIGZpCisrCisrICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisr ICAgICAgIyBTZXQgdXAgZGVmYXVsdCBHTlUgQysrIGNvbmZpZ3VyYXRpb24KKysKKysKKysKKysj IENoZWNrIHdoZXRoZXIgLS13aXRoLWdudS1sZCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRo X2dudV9sZCtzZXR9IiA9IHNldDsgdGhlbiA6CisrICB3aXRodmFsPSR3aXRoX2dudV9sZDsgdGVz dCAiJHdpdGh2YWwiID0gbm8gfHwgd2l0aF9nbnVfbGQ9eWVzCisrZWxzZQorKyAgd2l0aF9nbnVf bGQ9bm8KKytmaQorKworK2FjX3Byb2c9bGQKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgor KyAgIyBDaGVjayBpZiBnY2MgLXByaW50LXByb2ctbmFtZT1sZCBnaXZlcyBhIHBhdGguCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBsZCB1 c2VkIGJ5ICRDQyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgJEND Li4uICIgPiY2OyB9CisrICBjYXNlICRob3N0IGluCisrICAqLSotbWluZ3cqKQorKyAgICAjIGdj YyBsZWF2ZXMgYSB0cmFpbGluZyBjYXJyaWFnZSByZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3Cisr ICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1 J2AgOzsKKysgICopCisrICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4m NWAgOzsKKysgIGVzYWMKKysgIGNhc2UgJGFjX3Byb2cgaW4KKysgICAgIyBBY2NlcHQgYWJzb2x1 dGUgcGF0aHMuCisrICAgIFtcXC9dKiB8ID86W1xcL10qKQorKyAgICAgIHJlX2RpcmVsdD0nL1te L11bXi9dKi9cLlwuLycKKysgICAgICAjIENhbm9uaWNhbGl6ZSB0aGUgcGF0aG5hbWUgb2YgbGQK KysgICAgICBhY19wcm9nPWAkRUNITyAiJGFjX3Byb2cifCAkU0VEICdzJVxcXFwlLyVnJ2AKKysg ICAgICB3aGlsZSAkRUNITyAiJGFjX3Byb2ciIHwgJEdSRVAgIiRyZV9kaXJlbHQiID4gL2Rldi9u dWxsIDI+JjE7IGRvCisrCWFjX3Byb2c9YCRFQ0hPICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJl bHQlLyUiYAorKyAgICAgIGRvbmUKKysgICAgICB0ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJv ZyIKKysgICAgICA7OworKyAgIiIpCisrICAgICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3 ZSBhcmVuJ3QgdXNpbmcgR0NDLgorKyAgICBhY19wcm9nPWxkCisrICAgIDs7CisrICAqKQorKyAg ICAjIElmIGl0IGlzIHJlbGF0aXZlLCB0aGVuIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBB VEguCisrICAgIHdpdGhfZ251X2xkPXVua25vd24KKysgICAgOzsKKysgIGVzYWMKKytlbGlmIHRl c3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIEdOVSBsZCIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIEdOVSBsZC4uLiAiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGZvciBub24tR05VIGxkLi4uICIgPiY2OyB9CisrZmkKKytp ZiB0ZXN0ICIke2x0X2N2X3BhdGhfTEQrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC16ICIkTEQiOyB0aGVuCisrICBs dF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKysgIGZvciBhY19kaXIgaW4g JFBBVEg7IGRvCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16ICIkYWNfZGly IiAmJiBhY19kaXI9LgorKyAgICBpZiB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nIiB8fCB0ZXN0 IC1mICIkYWNfZGlyLyRhY19wcm9nJGFjX2V4ZWV4dCI7IHRoZW4KKysgICAgICBsdF9jdl9wYXRo X0xEPSIkYWNfZGlyLyRhY19wcm9nIgorKyAgICAgICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9n cmFtIGlzIEdOVSBsZC4gIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiwKKysgICAgICAjIGJ1dCBh cHBhcmVudGx5IHNvbWUgdmFyaWFudHMgb2YgR05VIGxkIG9ubHkgYWNjZXB0IC12LgorKyAgICAg ICMgQnJlYWsgb25seSBpZiBpdCB3YXMgdGhlIEdOVS9ub24tR05VIGxkIHRoYXQgd2UgcHJlZmVy LgorKyAgICAgIGNhc2UgYCIkbHRfY3ZfcGF0aF9MRCIgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgor KyAgICAgICpHTlUqIHwgKid3aXRoIEJGRCcqKQorKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IG5v ICYmIGJyZWFrCisrCTs7CisrICAgICAgKikKKysJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSB5ZXMg JiYgYnJlYWsKKysJOzsKKysgICAgICBlc2FjCisrICAgIGZpCisrICBkb25lCisrICBJRlM9IiRs dF9zYXZlX2lmcyIKKytlbHNlCisrICBsdF9jdl9wYXRoX0xEPSIkTEQiICMgTGV0IHRoZSB1c2Vy IG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorK2ZpCisrZmkKKysKKytMRD0iJGx0X2N2 X3BhdGhfTEQiCisraWYgdGVzdCAtbiAiJExEIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRMRCIgPiY1CisrJGFzX2VjaG8gIiRMRCIg PiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrdGVzdCAteiAi JExEIiAmJiBhc19mbl9lcnJvciAkPyAibm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEgi ICIkTElORU5PIiA1CisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZCIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGQuLi4gIiA+JjY7IH0KKytpZiB0 ZXN0ICIke2x0X2N2X3Byb2dfZ251X2xkK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgIyBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24g aGVyZSwgYnV0IGFwcGFyZW50bHkgc29tZSBHTlUgbGRzIG9ubHkgYWNjZXB0IC12LgorK2Nhc2Ug YCRMRCAtdiAyPiYxIDwvZGV2L251bGxgIGluCisrKkdOVSogfCAqJ3dpdGggQkZEJyopCisrICBs dF9jdl9wcm9nX2dudV9sZD15ZXMKKysgIDs7CisrKikKKysgIGx0X2N2X3Byb2dfZ251X2xkPW5v CisrICA7OworK2VzYWMKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiAkbHRfY3ZfcHJvZ19nbnVfbGQiID4mNQorKyRhc19lY2hvICIkbHRfY3Zf cHJvZ19nbnVfbGQiID4mNjsgfQorK3dpdGhfZ251X2xkPSRsdF9jdl9wcm9nX2dudV9sZAorKwor KworKworKworKworKworKworKyAgICAgICMgQ2hlY2sgaWYgR05VIEMrKyB1c2VzIEdOVSBsZCBh cyB0aGUgdW5kZXJseWluZyBsaW5rZXIsIHNpbmNlIHRoZQorKyAgICAgICMgYXJjaGl2aW5nIGNv bW1hbmRzIGJlbG93IGFzc3VtZSB0aGF0IEdOVSBsZCBpcyBiZWluZyB1c2VkLgorKyAgICAgIGlm IHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgICAgIGFyY2hpdmVfY21kc19D WFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25h bWUgLW8gJGxpYicKKysgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJl ZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFp bi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCisrICAgICAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwor KyAgICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5h bWljJworKworKyAgICAgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFy YyBzaG91bGQgYmUgZW1wdHkKKysgICAgICAgICMgWFhYIEkgdGhpbmsgd2xhcmMgY2FuIGJlIGVs aW1pbmF0ZWQgaW4gbHRjZi1jeHgsIGJ1dCBJIG5lZWQgdG8KKysgICAgICAgICMgICAgIGludmVz dGlnYXRlIGl0IGEgbGl0dGxlIGJpdCBtb3JlLiAoTU0pCisrICAgICAgICB3bGFyYz0nJHt3bH0n CisrCisrICAgICAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJj aGl2ZSBldC4gYWwuCisrICAgICAgICBpZiBldmFsICJgJENDIC1wcmludC1wcm9nLW5hbWU9bGRg IC0taGVscCAyPiYxIiB8CisrCSAgJEdSRVAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxs OyB0aGVuCisrICAgICAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0iJHdsYXJjIict LXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScK KysgICAgICAgIGVsc2UKKysgICAgICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPQor KyAgICAgICAgZmkKKysgICAgICBlbHNlCisrICAgICAgICB3aXRoX2dudV9sZD1ubworKyAgICAg ICAgd2xhcmM9CisrCisrICAgICAgICAjIEEgZ2VuZXJpYyBhbmQgdmVyeSBzaW1wbGUgZGVmYXVs dCBzaGFyZWQgbGlicmFyeSBjcmVhdGlvbgorKyAgICAgICAgIyBjb21tYW5kIGZvciBHTlUgQysr IGZvciB0aGUgY2FzZSB3aGVyZSBpdCB1c2VzIHRoZSBuYXRpdmUKKysgICAgICAgICMgbGlua2Vy LCBpbnN0ZWFkIG9mIEdOVSBsZC4gIElmIHBvc3NpYmxlLCB0aGlzIHNldHRpbmcgc2hvdWxkCisr ICAgICAgICAjIG92ZXJyaWRkZW4gdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIG5hdGl2ZSBsaW5r ZXIgZmVhdHVyZXMgb24KKysgICAgICAgICMgdGhlIHBsYXRmb3JtIGl0IGlzIGJlaW5nIHVzZWQg b24uCisrICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVy X2ZsYWdzIC1vICRsaWInCisrICAgICAgZmkKKysKKysgICAgICAjIENvbW1hbmRzIHRvIG1ha2Ug Y29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrICAgICAgIyB3aGF0 ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVu CisrICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrICAgICAgb3V0cHV0X3ZlcmJv c2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYx IHwgJEdSRVAgLXYgIl5Db25maWd1cmVkIHdpdGg6IiB8ICRHUkVQICJcLUwiJworKworKyAgICBl bHNlCisrICAgICAgR1hYPW5vCisrICAgICAgd2l0aF9nbnVfbGQ9bm8KKysgICAgICB3bGFyYz0K KysgICAgZmkKKysKKysgICAgIyBQT1JUTUU6IGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3Vy IHN5c3RlbSdzIEMrKyBsaW5rIGNoYXJhY3RlcmlzdGljcworKyAgICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBs aW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFy ZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrICAgIGxkX3NobGlic19DWFg9eWVzCisrICAgIGNh c2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXgzKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBw cm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAg ICAgICAgOzsKKysgICAgICBhaXhbNC05XSopCisrICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUi ID0gaWE2NDsgdGhlbgorKyAgICAgICAgICAjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9lcyBydW4g dGltZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0CisrICAgICAgICAgICMgaGF2ZSB0 byBkbyBhbnl0aGluZyBzcGVjaWFsLgorKyAgICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5n PW5vCisrICAgICAgICAgIGV4cF9zeW1fZmxhZz0nLUJleHBvcnQnCisrICAgICAgICAgIG5vX2Vu dHJ5X2ZsYWc9IiIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlu a2luZz1ubworKworKyAgICAgICAgICAjIFRlc3QgaWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVu IHRpbWUgbGlua2luZyBvciBub3JtYWwKKysgICAgICAgICAgIyBBSVggc3R5bGUgbGlua2luZy4g SWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExERkxBR1MsIHdlCisrICAgICAgICAgICMgbmVlZCB0 byBkbyBydW50aW1lIGxpbmtpbmcuCisrICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5b MjNdfGFpeDQuWzIzXS4qfGFpeFs1LTldKikKKysJICAgIGZvciBsZF9mbGFnIGluICRMREZMQUdT OyBkbworKwkgICAgICBjYXNlICRsZF9mbGFnIGluCisrCSAgICAgICotYnJ0bCopCisrCSAgICAg ICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz15ZXMKKysJICAgICAgICBicmVhaworKwkgICAgICAg IDs7CisrCSAgICAgIGVzYWMKKysJICAgIGRvbmUKKysJICAgIDs7CisrICAgICAgICAgIGVzYWMK KysKKysgICAgICAgICAgZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKKysgICAgICAgICAgbm9fZW50 cnlfZmxhZz0nLWJub2VudHJ5JworKyAgICAgICAgZmkKKysKKysgICAgICAgICMgV2hlbiBsYXJn ZSBleGVjdXRhYmxlcyBvciBzaGFyZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4KKysg ICAgICAgICMgaGF2ZSBwcm9ibGVtcyBjcmVhdGluZyB0aGUgdGFibGUgb2YgY29udGVudHMuICBJ ZiBsaW5raW5nIGEgbGlicmFyeQorKyAgICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMgaW4gImVy cm9yIFRPQyBvdmVyZmxvdyIgYWRkIC1tbWluaW1hbC10b2MgdG8KKysgICAgICAgICMgQ1hYRkxB R1MvQ0ZMQUdTIGZvciBnKysvZ2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90Cisr ICAgICAgICAjIGVub3VnaCB0byBmaXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJiaWd0b2MgdG8g TERGTEFHUy4KKysKKysgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JycKKysgICAgICAgIGhhcmRj b2RlX2RpcmVjdF9DWFg9eWVzCisrICAgICAgICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hY PXllcworKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9JzonCisrICAgICAg ICBsaW5rX2FsbF9kZXBsaWJzX0NYWD15ZXMKKysgICAgICAgIGZpbGVfbGlzdF9zcGVjX0NYWD0n JHt3bH0tZiwnCisrCisrICAgICAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICAg ICAgICBjYXNlICRob3N0X29zIGluIGFpeDQuWzAxMl18YWl4NC5bMDEyXS4qKQorKyAgICAgICAg ICAjIFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUgY2hl Y2sKKysgICAgICAgICAgIyBiZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRvZXNuJ3Qgd29yayB1 bmRlciA0LjMrCisrCSAgY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxl Y3QyYAorKwkgIGlmIHRlc3QgLWYgIiRjb2xsZWN0Mm5hbWUiICYmCisrCSAgICAgc3RyaW5ncyAi JGNvbGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJICB0 aGVuCisrCSAgICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKKysJICAgIDoKKysJICBlbHNl CisrCSAgICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCisrCSAgICBoYXJkY29kZV9kaXJlY3RfQ1hY PXVuc3VwcG9ydGVkCisrCSAgICAjIEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFy aWVzIHdoZW4gdGhlIHVuaW5zdGFsbGVkCisrCSAgICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0 aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVfbWludXNfTAorKwkgICAgIyB0byB1bnN1cHBv cnRlZCBmb3JjZXMgcmVsaW5raW5nCisrCSAgICBoYXJkY29kZV9taW51c19MX0NYWD15ZXMKKysJ ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctTCRsaWJkaXInCisrCSAgICBoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD0KKysJICBmaQorKyAgICAgICAgICBlc2FjCisrICAg ICAgICAgIHNoYXJlZF9mbGFnPSctc2hhcmVkJworKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRp bWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgICAgc2hhcmVkX2ZsYWc9IiRzaGFyZWRfZmxhZyAi JyR7d2x9LUcnCisrCSAgZmkKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgIyBub3QgdXNpbmcg Z2NjCisrICAgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgIyBW aXN1YWxBZ2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJl bGVhc2UKKysJICAjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3Jy ZWN0OgorKwkgIHNoYXJlZF9mbGFnPSctRycKKysgICAgICAgICAgZWxzZQorKwkgICAgaWYgdGVz dCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSAgICAgIHNoYXJlZF9m bGFnPScke3dsfS1HJworKwkgICAgZWxzZQorKwkgICAgICBzaGFyZWRfZmxhZz0nJHt3bH0tYk06 U1JFJworKwkgICAgZmkKKysgICAgICAgICAgZmkKKysgICAgICAgIGZpCisrCisrICAgICAgICBl eHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS1iZXhwYWxsJworKyAgICAgICAgIyBJ dCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3 aXRoCisrICAgICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJh dGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8KKysJIyBleHBvcnQuCisrICAgICAgICBhbHdheXNfZXhw b3J0X3N5bWJvbHNfQ1hYPXllcworKyAgICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxp bmtpbmciID0geWVzOyB0aGVuCisrICAgICAgICAgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcg dGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJydGwpLAorKyAgICAgICAgICAjIC1i ZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxp YnJhcnkuCisrICAgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nLWJlcm9rJworKyAg ICAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVu Y29kZWQgaW4gYW4gZW1wdHkKKysgICAgICAgICAgIyBleGVjdXRhYmxlLgorKyAgICAgICAgICBj YXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZk ZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsK Kyt9CisrX0FDRU9GCisraWYgYWNfZm5fY3h4X3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6Cisr CisrbHRfYWl4X2xpYnBhdGhfc2VkPScKKysgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8g eworKwkvXjAvIHsKKysJICAgIHMvXjAgICpcKC4qXCkkL1wxLworKwkgICAgcAorKwl9CisrICAg IH0nCisrYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxs IHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrIyBDaGVjayBmb3IgYSA2NC1i aXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgorK2lmIHRlc3QgLXogIiRhaXhf bGlicGF0aCI7IHRoZW4KKysgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4 ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorK2Zp CisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysg ICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIkYWl4 X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysgICAg ICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LWJsaWJwYXRoOiRsaWJk aXI6JyIkYWl4X2xpYnBhdGgiCisrCisrICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hY PSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3ds fSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRl ZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiBmdW5jX2VjaG9fYWxsICIke3dsfSR7YWxsb3dfdW5k ZWZpbmVkX2ZsYWd9IjsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0 X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgorKyAgICAgICAgZWxzZQorKyAgICAgICAgICBpZiB0ZXN0 ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19DWFg9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJworKwkgICAgYWxsb3dfdW5kZWZp bmVkX2ZsYWdfQ1hYPSIteiBub2RlZnMiCisrCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0i XCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRk ZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2Fs bG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9s cyIKKysgICAgICAgICAgZWxzZQorKwkgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0 aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCisrCSAgICAjIGVtcHR5IGV4ZWN1dGFibGUu CisrCSAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyog ZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICBy ZXR1cm4gMDsKKyt9CisrX0FDRU9GCisraWYgYWNfZm5fY3h4X3RyeV9saW5rICIkTElORU5PIjsg dGhlbiA6CisrCisrbHRfYWl4X2xpYnBhdGhfc2VkPScKKysgICAgL0ltcG9ydCBGaWxlIFN0cmlu Z3MvLC9eJC8geworKwkvXjAvIHsKKysJICAgIHMvXjAgICpcKC4qXCkkL1wxLworKwkgICAgcAor Kwl9CisrICAgIH0nCisrYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+ L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrIyBDaGVjayBm b3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgorK2lmIHRlc3Qg LXogIiRhaXhfbGlicGF0aCI7IHRoZW4KKysgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9z ZWQiYAorK2ZpCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IFwKKysgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0 IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkK KysKKysJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ibGlicGF0aDok bGliZGlyOiciJGFpeF9saWJwYXRoIgorKwkgICAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0 aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywKKysJICAgICMgLWJlcm9rIHdpbGwgbGlu ayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKysJICAg IG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LWJlcm5vdG9rJworKwkgICAgYWxsb3dfdW5k ZWZpbmVkX2ZsYWdfQ1hYPScgJHt3bH0tYmVyb2snCisrCSAgICBpZiB0ZXN0ICIkd2l0aF9nbnVf bGQiID0geWVzOyB0aGVuCisrCSAgICAgICMgV2Ugb25seSB1c2UgdGhpcyBjb2RlIGZvciBHTlUg bGRzIHRoYXQgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUuCisrCSAgICAgIHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJHt3bH0tLW5v LXdob2xlLWFyY2hpdmUnCisrCSAgICBlbHNlCisrCSAgICAgICMgRXhwb3J0ZWQgc3ltYm9scyBj YW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcworKwkgICAgICB3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9JyRjb252ZW5pZW5jZScKKysJICAgIGZpCisrCSAg ICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9eWVzCisrCSAgICAjIFRoaXMgaXMgc2ltaWxhciB0 byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQKKysJICAgICMgbGlicmFy aWVzLgorKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9IlwkQ0MgJHNoYXJlZF9mbGFnIicg LW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRy eSAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmlu ZWRfZmxhZ31+JEFSICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEg JG91dHB1dF9vYmpkaXIvJHNvbmFtZScKKysgICAgICAgICAgZmkKKysgICAgICAgIGZpCisrICAg ICAgICA7OworKworKyAgICAgIGJlb3MqKQorKwlpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAn OiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgYWxsb3df dW5kZWZpbmVkX2ZsYWdfQ1hYPXVuc3VwcG9ydGVkCisrCSAgIyBKb3NlcGggQmVja2VuYmFjaCA8 anJiM0BiZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYworKwkgICMgc3VwcG9ydCAt LXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKKysJ ICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCWVsc2UKKysJICBs ZF9zaGxpYnNfQ1hYPW5vCisrCWZpCisrCTs7CisrCisrICAgICAgY2hvcnVzKikKKysgICAgICAg IGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgICopCisrCSAgIyBGSVhNRTogaW5zZXJ0 IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgbGRfc2hsaWJzX0NYWD1ubworKwkgIDs7 CisrICAgICAgICBlc2FjCisrICAgICAgICA7OworKworKyAgICAgIGN5Z3dpbiogfCBtaW5ndyog fCBwdzMyKiB8IGNlZ2NjKikKKysgICAgICAgICMgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCBDWFgpIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLAorKyAgICAgICAgIyBhcyB0 aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKysgICAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfQ1hYPSctTCRsaWJkaXInCisrICAgICAgICBleHBvcnRfZHluYW1pY19mbGFn X3NwZWNfQ1hYPScke3dsfS0tZXhwb3J0LWFsbC1zeW1ib2xzJworKyAgICAgICAgYWxsb3dfdW5k ZWZpbmVkX2ZsYWdfQ1hYPXVuc3VwcG9ydGVkCisrICAgICAgICBhbHdheXNfZXhwb3J0X3N5bWJv bHNfQ1hYPW5vCisrICAgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0NY WD15ZXMKKysKKysgICAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICdhdXRvLWltcG9y dCcgPiAvZGV2L251bGw7IHRoZW4KKysgICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1z aGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9 LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAk bGliJworKyAgICAgICAgICAjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMg YSAuZGVmIGZpbGUgKDFzdCBsaW5lCisrICAgICAgICAgICMgaXMgRVhQT1JUUyksIHVzZSBpdCBh cyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCisrICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2Nt ZHNfQ1hYPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsg dGhlbgorKwkgICAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVm OworKyAgICAgICAgICBlbHNlCisrCSAgICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8k c29uYW1lLmRlZjsKKysJICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIv JHNvbmFtZS5kZWY7CisrICAgICAgICAgIGZpfgorKyAgICAgICAgICAkQ0MgLXNoYXJlZCAtbm9z dGRsaWIgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWYgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQt aW1wbGliIC1YbGlua2VyICRsaWInCisrICAgICAgICBlbHNlCisrICAgICAgICAgIGxkX3NobGli c19DWFg9bm8KKysgICAgICAgIGZpCisrICAgICAgICA7OworKyAgICAgIGRhcndpbiogfCByaGFw c29keSopCisrCisrCisrICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KKysgIGhhcmRjb2Rl X2RpcmVjdF9DWFg9bm8KKysgIGhhcmRjb2RlX2F1dG9tYXRpY19DWFg9eWVzCisrICBoYXJkY29k ZV9zaGxpYnBhdGhfdmFyX0NYWD11bnN1cHBvcnRlZAorKyAgaWYgdGVzdCAiJGx0X2N2X2xkX2Zv cmNlX2xvYWQiID0gInllcyI7IHRoZW4KKysgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hY PSdgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYm IG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UgJHt3bH0tZm9yY2VfbG9hZCwkY29u dlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCcKKysgIGVsc2UK KysgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScnCisrICBmaQorKyAgbGlua19hbGxf ZGVwbGlic19DWFg9eWVzCisrICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9IiRfbHRfZGFyX2Fs bG93X3VuZGVmaW5lZCIKKysgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICBpZm9ydCopIF9s dF9kYXJfY2FuX3NoYXJlZD15ZXMgOzsKKysgICAgICopIF9sdF9kYXJfY2FuX3NoYXJlZD0kR0ND IDs7CisrICBlc2FjCisrICBpZiB0ZXN0ICIkX2x0X2Rhcl9jYW5fc2hhcmVkIiA9ICJ5ZXMiOyB0 aGVuCisrICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPWZ1bmNfZWNob19hbGwKKysgICAgYXJj aGl2ZV9jbWRzX0NYWD0iXCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1v IFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1l IFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7X2x0X2Rz eW11dGlsfSIKKysgICAgbW9kdWxlX2NtZHNfQ1hYPSJcJENDIFwkYWxsb3dfdW5kZWZpbmVkX2Zs YWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mk e19sdF9kc3ltdXRpbH0iCisrICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSJzZWQgJ3MsXixf LCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJv bHMuZXhwc3ltflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxp YiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJw YXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICR7X2x0X2Rhcl9zaW5nbGVfbW9kfSR7X2x0X2Rhcl9l eHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisrICAgIG1vZHVsZV9leHBzeW1fY21kc19DWFg9 InNlZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7 bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwk bGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFy X2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKysgICAgICAgaWYgdGVzdCAiJGx0X2N2X2Fw cGxlX2NjX3NpbmdsZV9tb2QiICE9ICJ5ZXMiOyB0aGVuCisrICAgICAgYXJjaGl2ZV9jbWRzX0NY WD0iXCRDQyAtciAta2VlcF9wcml2YXRlX2V4dGVybnMgLW5vc3RkbGliIC1vIFwke2xpYn0tbWFz dGVyLm8gXCRsaWJvYmpzflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAt byBcJGxpYiBcJHtsaWJ9LW1hc3Rlci5vIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0 YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyR7X2x0X2RzeW11dGlsfSIKKysg ICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3lt Ym9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1y IC1rZWVwX3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIubyBcJGxp Ym9ianN+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwk e2xpYn0tbWFzdGVyLm8gXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBc JHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2Rz eW11dGlsfSIKKysgICAgZmkKKysKKysgIGVsc2UKKysgIGxkX3NobGlic19DWFg9bm8KKysgIGZp CisrCisrCTs7CisrCisrICAgICAgZGd1eCopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBp bgorKyAgICAgICAgICBlYysrKikKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxp YnJhcnkgc3VwcG9ydAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysgICAgICAg ICAgZ2hjeCopCisrCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICAgIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hY PW5vCisrCSAgICA7OworKyAgICAgICAgICAqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3Bl ciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7Owor KyAgICAgICAgZXNhYworKyAgICAgICAgOzsKKysKKysgICAgICBmcmVlYnNkWzEyXSopCisrICAg ICAgICAjIEMrKyBzaGFyZWQgbGlicmFyaWVzIHJlcG9ydGVkIHRvIGJlIGZhaXJseSBicm9rZW4g YmVmb3JlCisrCSMgc3dpdGNoIHRvIEVMRgorKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAg ICAgICAgOzsKKysKKysgICAgICBmcmVlYnNkLWVsZiopCisrICAgICAgICBhcmNoaXZlX2NtZHNf bmVlZF9sY19DWFg9bm8KKysgICAgICAgIDs7CisrCisrICAgICAgZnJlZWJzZCogfCBkcmFnb25m bHkqKQorKyAgICAgICAgIyBGcmVlQlNEIDMgYW5kIGxhdGVyIHVzZSBHTlUgQysrIGFuZCBHTlUg bGQgd2l0aCBzdGFuZGFyZCBFTEYKKysgICAgICAgICMgY29udmVudGlvbnMKKysgICAgICAgIGxk X3NobGlic19DWFg9eWVzCisrICAgICAgICA7OworKworKyAgICAgIGdudSopCisrICAgICAgICA7 OworKworKyAgICAgIGhhaWt1KikKKysgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hh cmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNv bmFtZSAtbyAkbGliJworKyAgICAgICAgbGlua19hbGxfZGVwbGlic19DWFg9eWVzCisrICAgICAg ICA7OworKworKyAgICAgIGhwdXg5KikKKysgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfQ1hYPScke3dsfStiICR7d2x9JGxpYmRpcicKKysgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3JfQ1hYPToKKysgICAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7 d2x9LUUnCisrICAgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcworKyAgICAgICAgaGFyZGNv ZGVfbWludXNfTF9DWFg9eWVzICMgTm90IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJCQkJICAgICAg ICAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0CisrCQkJCSAgICAgICAgICAgICAjIGxvY2F0aW9u IG9mIHRoZSBsaWJyYXJ5LgorKworKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAg ICAgICAgQ0MqKQorKyAgICAgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh cnkgc3VwcG9ydAorKyAgICAgICAgICAgIGxkX3NobGlic19DWFg9bm8KKysgICAgICAgICAgICA7 OworKyAgICAgICAgICBhQ0MqKQorKyAgICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRSTSAk b3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtYiAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGly IC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIv JHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAg ICAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0 IHRoYXQgbGlzdHMKKysgICAgICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmpl Y3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysgICAgICAgICAgICAjIGxpbmtpbmcg YSBzaGFyZWQgbGlicmFyeS4KKysgICAgICAgICAgICAjCisrICAgICAgICAgICAgIyBUaGVyZSBk b2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQor KyAgICAgICAgICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28g d2UgbmVlZCB0byBzdHJpcCB0aGVtCisrICAgICAgICAgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28g dGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKyAgICAgICAgICAg ICMgZGVwZW5kZW5jaWVzLgorKyAgICAgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0 ZW1wbGlzdD1gKCRDQyAtYiAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSkgfCAkRUdS RVAgIlwtTCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29u ZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRs aXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZnVuY19lY2hvX2FsbCAiJGxpc3QiJworKyAgICAgICAgICAg IDs7CisrICAgICAgICAgICopCisrICAgICAgICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRo ZW4KKysgICAgICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRSTSAkb3V0cHV0X29iamRpci8k c29uYW1lfiRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxf bGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9v YmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwor KyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIg QysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAg ICAgICAgICAgIGZpCisrICAgICAgICAgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7 CisrCisrICAgICAgaHB1eDEwKnxocHV4MTEqKQorKyAgICAgICAgaWYgdGVzdCAkd2l0aF9nbnVf bGQgPSBubzsgdGhlbgorKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfSti ICR7d2x9JGxpYmRpcicKKysJICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06CisrCisr ICAgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgICAgICAgaHBwYSo2NCp8aWE2NCop CisrICAgICAgICAgICAgICA7OworKyAgICAgICAgICAgICopCisrCSAgICAgIGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUUnCisrICAgICAgICAgICAgICA7OworKyAgICAgICAg ICBlc2FjCisrICAgICAgICBmaQorKyAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICAg ICAgaHBwYSo2NCp8aWE2NCopCisrICAgICAgICAgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD1ubwor KyAgICAgICAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCisrICAgICAgICAgICAg OzsKKysgICAgICAgICAgKikKKysgICAgICAgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcwor KyAgICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFg9eWVzCisrICAgICAgICAg ICAgaGFyZGNvZGVfbWludXNfTF9DWFg9eWVzICMgTm90IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJ CQkJCSAgICAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0CisrCQkJCQkgICAgICAgICAjIGxvY2F0 aW9uIG9mIHRoZSBsaWJyYXJ5LgorKyAgICAgICAgICAgIDs7CisrICAgICAgICBlc2FjCisrCisr ICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBDQyopCisrCSAgICAjIEZJ WE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIGxkX3NobGlic19D WFg9bm8KKysJICAgIDs7CisrICAgICAgICAgIGFDQyopCisrCSAgICBjYXNlICRob3N0X2NwdSBp bgorKwkgICAgICBocHBhKjY0KikKKysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWIg JHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgOzsKKysJ ICAgICAgaWE2NCopCisrCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1iICR7d2x9K2gg JHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkg ICAgICAgIDs7CisrCSAgICAgICopCisrCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1i ICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxp YiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MnCisrCSAgICAgICAgOzsKKysJICAgIGVzYWMKKysJICAgICMgQ29tbWFuZHMg dG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJICAg ICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVz ZWQgd2hlbgorKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgICAjCisrCSAg ICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21w aWxlciBmcm9tCisrCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVz IHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQorKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhh dCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKwkgICAgIyBkZXBlbmRl bmNpZXMuCisrCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIg JENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEdSRVAgIlwtTCJgOyBsaXN0PSIi OyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlz dD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9u ZTsgZnVuY19lY2hvX2FsbCAiJGxpc3QiJworKwkgICAgOzsKKysgICAgICAgICAgKikKKysJICAg IGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrCSAgICAgIGlmIHRlc3QgJHdpdGhfZ251X2xk ID0gbm87IHRoZW4KKysJICAgICAgICBjYXNlICRob3N0X2NwdSBpbgorKwkgICAgICAgICAgaHBw YSo2NCopCisrCSAgICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0 ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAg ICAgICAgICAgOzsKKysJICAgICAgICAgIGlhNjQqKQorKwkgICAgICAgICAgICBhcmNoaXZlX2Nt ZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUg JHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgICAgIDs7 CisrCSAgICAgICAgICAqKQorKwkgICAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNo YXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRp bnN0YWxsX2xpYmRpciAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAgICAgICAgICAgOzsKKysJICAg ICAgICBlc2FjCisrCSAgICAgIGZpCisrCSAgICBlbHNlCisrCSAgICAgICMgRklYTUU6IGluc2Vy dCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgICBsZF9zaGxpYnNfQ1hYPW5vCisr CSAgICBmaQorKwkgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisrICAgICAg aW50ZXJpeFszLTldKikKKysJaGFyZGNvZGVfZGlyZWN0X0NYWD1ubworKwloYXJkY29kZV9zaGxp YnBhdGhfdmFyX0NYWD1ubworKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0t cnBhdGgsJGxpYmRpcicKKysJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tRScK KysJIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJlY2F1c2Ug b2YgYSBicm9rZW4gZ2NjLgorKwkjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRl ZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5CisrCSMgZGVmYXVsdCkgYW5kIHJlbG9j YXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkKKysJIyBj b25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNr IGEgcmFuZG9tLAorKwkjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAw MDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCisrCSMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4 MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgorKwlhcmNoaXZlX2NtZHNf Q1hYPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0g JSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKwlhcmNoaXZlX2V4 cHN5bV9jbWRzX0NYWD0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpk aXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZp bGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIg JHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicK KysJOzsKKysgICAgICBpcml4NSogfCBpcml4NiopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFt ZSBpbgorKyAgICAgICAgICBDQyopCisrCSAgICAjIFNHSSBDKysKKysJICAgIGFyY2hpdmVfY21k c19DWFg9JyRDQyAtc2hhcmVkIC1hbGwgLW11bHRpZ290ICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25h bWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVyc2lvbiAk dmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9u cyAtbyAkbGliJworKworKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmls ZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAjICJDQyAtYXIiLCB3aGVyZSAiQ0MiIGlz IHRoZSBJUklYIEMrKyBjb21waWxlci4gIFRoaXMgaXMKKysJICAgICMgbmVjZXNzYXJ5IHRvIG1h a2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAorKwkgICAgIyBpbiB0 aGUgYXJjaGl2ZS4KKysJICAgIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWFyIC1XUiwtdSAt byAkb2xkbGliICRvbGRvYmpzJworKwkgICAgOzsKKysgICAgICAgICAgKikKKysJICAgIGlmIHRl c3QgIiRHWFgiID0geWVzOyB0aGVuCisrCSAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBu bzsgdGhlbgorKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxp YiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmlu ZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAg JHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMg LW8gJGxpYicKKysJICAgICAgZWxzZQorKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAt c2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVz dCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3 bH0kdmVyc3RyaW5nImAgLW8gJGxpYicKKysJICAgICAgZmkKKysJICAgIGZpCisrCSAgICBsaW5r X2FsbF9kZXBsaWJzX0NYWD15ZXMKKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwor KyAgICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgorKyAgICAgICAgaW5oZXJp dF9ycGF0aF9DWFg9eWVzCisrICAgICAgICA7OworKworKyAgICAgIGxpbnV4KiB8IGsqYnNkKi1n bnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisr ICAgICAgICAgIEtDQyopCisrCSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkg QysrIENvbXBpbGVyCisrCisrCSAgICAjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVkIGxp YnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCisrCSAgICAjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5z bCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5CisrCSAgICAjIHRvIGl0cyBwcm9w ZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgorKwkgICAgYXJjaGl2ZV9jbWRz X0NYWD0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbXigpMC05 QS1aYS16e31dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAkbGliIHwgJFNFRCAtZSAi cy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUg LW8gXCR0ZW1wbGliOyBtdiBcJHRlbXBsaWIgJGxpYicKKysJICAgIGFyY2hpdmVfZXhwc3ltX2Nt ZHNfQ1hYPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFteKCkw LTlBLVphLXp7fV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VEIC1l ICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFt ZSAtbyBcJHRlbXBsaWIgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHM7 IG12IFwkdGVtcGxpYiAkbGliJworKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHBy b2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxp YnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAjIGxp bmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgICMKKysJICAgICMgVGhlcmUgZG9lc24ndCBh cHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KKysJICAgICMg ZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJp cCB0aGVtCisrCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGlu Y2x1ZGVkIGluIHRoZSBsaWJyYXJ5CisrCSAgICAjIGRlcGVuZGVuY2llcy4KKysJICAgIG91dHB1 dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDICRDRkxBR1MgLXYgY29uZnRlc3QuJG9i amV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+JjEgfCAkR1JFUCAibGQiYDsgcm0gLWYg bGliY29uZnRlc3Qkc2hhcmVkX2V4dDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBj YXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7 OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNob19hbGwgIiRsaXN0IicK KysKKysJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGli ZGlyJworKwkgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1k eW5hbWljJworKworKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMg bXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAjICJDQyAtQnN0YXRpYyIsIHdoZXJlICJDQyIg aXMgdGhlIEtBSSBDKysgY29tcGlsZXIuCisrCSAgICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC1Cc3RhdGljIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCSAgICA7OworKwkgIGljcGMqIHwgZWNw YyogKQorKwkgICAgIyBJbnRlbCBDKysKKysJICAgIHdpdGhfZ251X2xkPXllcworKwkgICAgIyB2 ZXJzaW9uIDguMCBhbmQgYWJvdmUgb2YgaWNwYyBjaG9rZSBvbiBtdWx0aXBseSBkZWZpbmVkIHN5 bWJvbHMKKysJICAgICMgaWYgd2UgYWRkICRwcmVkZXBfb2JqZWN0cyBhbmQgJHBvc3RkZXBfb2Jq ZWN0cywgaG93ZXZlciA3LjEgYW5kCisrCSAgICAjIGVhcmxpZXIgZG8gbm90IGFkZCB0aGUgb2Jq ZWN0cyB0aGVtc2VsdmVzLgorKwkgICAgY2FzZSBgJENDIC1WIDI+JjFgIGluCisrCSAgICAgICoi VmVyc2lvbiA3LiIqKQorKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwkJYXJjaGl2ZV9leHBz eW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFt ZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwor KwkJOzsKKysJICAgICAgKikgICMgVmVyc2lvbiA4LjAgb3IgbmV3ZXIKKysJICAgICAgICB0bXBf aWR5bj0KKysJICAgICAgICBjYXNlICRob3N0X2NwdSBpbgorKwkJICBpYTY0KikgdG1wX2lkeW49 JyAtaV9keW5hbWljJzs7CisrCQllc2FjCisrCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwkJYXJjaGl2ZV9leHBzeW1fY21kc19D WFg9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAk d2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysJCTs7CisrCSAgICBlc2FjCisrCSAgICBhcmNo aXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KKysJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf Q1hYPScke3dsfS1ycGF0aCwkbGliZGlyJworKwkgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj X0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWNfQ1hYPScke3dsfS0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAke3dsfS0tbm8td2hvbGUt YXJjaGl2ZScKKysJICAgIDs7CisrICAgICAgICAgIHBnQ0MqIHwgcGdjcHAqKQorKyAgICAgICAg ICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBpbGVyCisrCSAgICBjYXNlIGAkQ0MgLVZgIGlu CisrCSAgICAqcGdDQ1wgWzEtNV0uKiB8ICpwZ2NwcFwgWzEtNV0uKikKKysJICAgICAgcHJlbGlu a19jbWRzX0NYWD0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBsZGlyfgorKwkJ JENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkb2JqcyAk bGlib2JqcyAkY29tcGlsZV9kZXBsaWJzfgorKwkJY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9j b21tYW5kIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8IHNvcnQgfCAkTkwyU1BgIicKKysJICAg ICAgb2xkX2FyY2hpdmVfY21kc19DWFg9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+CisrCQlybSAtcmYg JHRwbGRpcn4KKysJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0 cGxkaXIgJG9sZG9ianMkb2xkX2RlcGxpYnN+CisrCQkkQVIgJEFSX0ZMQUdTICRvbGRsaWIkb2xk b2JqcyRvbGRfZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCBzb3J0IHwgJE5MMlNQ YH4KKysJCSRSQU5MSUIgJG9sZGxpYicKKysJICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0ndHBsZGly PVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBsZGlyfgorKwkJJENDIC0tcHJlbGlua19vYmpl Y3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVwX29iamVjdHN+CisrCQkkQ0MgLXNoYXJlZCAk cGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIg LW5hbWUgXCoubyB8IHNvcnQgfCAkTkwyU1BgICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgLW8gJGxpYicKKysJICAgICAgYXJjaGl2ZV9l eHBzeW1fY21kc19DWFg9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+CisrCQlybSAtcmYgJHRwbGRpcn4K KysJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRjb252ZW5pZW5jZSAkcG9zdGRlcF9vYmpl Y3RzfgorKwkJJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCBzb3J0IHwgJE5MMlNQYCAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9 LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysJICAg ICAgOzsKKysJICAgICopICMgVmVyc2lvbiA2IGFuZCBhYm92ZSB1c2Ugd2VhayBzeW1ib2xzCisr CSAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29i amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAtbyAkbGliJworKwkgICAgICBhcmNoaXZlX2V4cHN5 bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJv bHMgLW8gJGxpYicKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysKKysJICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS0tcnBhdGggJHt3bH0kbGliZGlyJworKwkgICAgZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKwkgICAg d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29u diBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZl bmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwi JG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysgICAgICAgICAg ICA7OworKwkgIGN4eCopCisrCSAgICAjIENvbXBhcSBDKysKKysJICAgIGFyY2hpdmVfY21kc19D WFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGli JworKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAgLW8gJGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxl ICR3bCRleHBvcnRfc3ltYm9scycKKysKKysJICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisr CSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLXJwYXRoICRsaWJkaXInCisrCSAg ICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06CisrCisrCSAgICAjIENvbW1hbmRzIHRv IG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAj IHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2Vk IHdoZW4KKysJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgIworKwkgICAg IyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGls ZXIgZnJvbQorKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBz byB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQg dGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJICAgICMgZGVwZW5kZW5j aWVzLgorKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJl ZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJsZCJgOyB0ZW1wbGlz dD1gZnVuY19lY2hvX2FsbCAiJHRlbXBsaXN0IiB8ICRTRUQgInMvXCheLipsZC4qXClcKCAuKmxk IC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4g Y29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9 IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZnVuY19lY2hvX2FsbCAiWCRsaXN0IiB8ICRYc2VkJwor KwkgICAgOzsKKysJICB4bCogfCBtcGl4bCogfCBiZ3hsKikKKysJICAgICMgSUJNIFhMIDguMCBv biBQUEMsIHdpdGggR05VIGxkCisrCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0n JHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKwkgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj X0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC1xbWtzaHJvYmogJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAkd2wkc29uYW1lIC1vICRsaWInCisrCSAgICBpZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVy c2lvbmluZyIgPSB4eWVzOyB0aGVuCisrCSAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdl Y2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorKwkJY2F0ICRl eHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIv JGxpYm5hbWUudmVyfgorKwkJZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8k bGlibmFtZS52ZXJ+CisrCQkkQ0MgLXFta3Nocm9iaiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3 bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKKysJICAgIGZpCisrCSAgICA7 OworKwkgICopCisrCSAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysJICAgICpT dW5cIEMqKQorKwkgICAgICAjIFN1biBDKysgNS45CisrCSAgICAgIG5vX3VuZGVmaW5lZF9mbGFn X0NYWD0nIC16ZGVmcycKKysJICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HJHthbGxvd191 bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICBhcmNo aXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29u YW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhw b3J0X3N5bWJvbHMnCisrCSAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctUiRs aWJkaXInCisrCSAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXdob2xl LWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsg ZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5j ZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3ds fS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICAgICAgY29tcGlsZXJfbmVlZHNfb2JqZWN0X0NYWD15 ZXMKKysKKysJICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHNvbWV0aGluZyBiYXNlZCBvbgorKwkg ICAgICAjICRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8gbGliY29uZnRlc3Qkc2hh cmVkX2V4dCAyPiYxCisrCSAgICAgICMgd291bGQgYmUgYmV0dGVyLgorKwkgICAgICBvdXRwdXRf dmVyYm9zZV9saW5rX2NtZD0nZnVuY19lY2hvX2FsbCcKKysKKysJICAgICAgIyBBcmNoaXZlcyBj b250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAg ICMgIkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBp cworKwkgICAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRl cyBhcmUgaW5jbHVkZWQKKysJICAgICAgIyBpbiB0aGUgYXJjaGl2ZS4KKysJICAgICAgb2xkX2Fy Y2hpdmVfY21kc19DWFg9JyRDQyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCSAgICAgIDs7 CisrCSAgICBlc2FjCisrCSAgICA7OworKwllc2FjCisrCTs7CisrCisrICAgICAgbHlueG9zKikK KysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwls ZF9zaGxpYnNfQ1hYPW5vCisrCTs7CisrCisrICAgICAgbTg4ayopCisrICAgICAgICAjIEZJWE1F OiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICAgIGxkX3NobGlic19D WFg9bm8KKysJOzsKKysKKysgICAgICBtdnMqKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUg aW4KKysgICAgICAgICAgY3h4KikKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxp YnJhcnkgc3VwcG9ydAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysJICAqKQor KwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBs ZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKwllc2FjCisrCTs7CisrCisrICAgICAgbmV0YnNk KikKKysgICAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+ L2Rldi9udWxsOyB0aGVuCisrCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJExEIC1Cc2hhcmVhYmxlICAt byAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRsaW5rZXJfZmxhZ3MnCisrCSAgd2xhcmM9CisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19DWFg9Jy1SJGxpYmRpcicKKysJICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcworKwkgIGhhcmRj b2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCisrCWZpCisrCSMgV29ya2Fyb3VuZCBzb21lIGJyb2tl biBwcmUtMS41IHRvb2xjaGFpbnMKKysJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hh cmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgY29uZnRlc3QuJG9i amV4dCB8ICRTRUQgLWUgInM6LWxnY2MgLWxjIC1sZ2NjOjoiJworKwk7OworKworKyAgICAgICpu dG8qIHwgKnFueCopCisrICAgICAgICBsZF9zaGxpYnNfQ1hYPXllcworKwk7OworKworKyAgICAg IG9wZW5ic2QyKikKKysgICAgICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGZhaXJseSBi cm9rZW4KKysJbGRfc2hsaWJzX0NYWD1ubworKwk7OworKworKyAgICAgIG9wZW5ic2QqKQorKwlp ZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgorKwkgIGhhcmRjb2RlX2RpcmVjdF9D WFg9eWVzCisrCSAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KKysJICBoYXJkY29kZV9k aXJlY3RfYWJzb2x1dGVfQ1hYPXllcworKwkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVk ICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJGxpYicKKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX0NYWD0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICBpZiB0ZXN0IC16ICJgZWNobyBfX0VM Rl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9j cHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysJICAgIGFyY2hpdmVfZXhwc3ltX2Nt ZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1i b2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCSAgICBleHBvcnRfZHluYW1pY19m bGFnX3NwZWNfQ1hYPScke3dsfS1FJworKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hY PSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9s ZS1hcmNoaXZlJworKwkgIGZpCisrCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZnVuY19lY2hv X2FsbAorKwllbHNlCisrCSAgbGRfc2hsaWJzX0NYWD1ubworKwlmaQorKwk7OworKworKyAgICAg IG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisr ICAgICAgICAgIEtDQyopCisrCSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkg QysrIENvbXBpbGVyCisrCisrCSAgICAjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVkIGxp YnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCisrCSAgICAjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5z bCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5CisrCSAgICAjIHRvIGl0cyBwcm9w ZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgorKwkgICAgYXJjaGl2ZV9jbWRz X0NYWD0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbXigpMC05 QS1aYS16e31dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAiJGxpYiIgfCAkU0VEIC1l ICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFt ZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVtcGxpYiAkbGliJworKworKwkgICAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgICBoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yX0NYWD06CisrCisrCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysr IG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKKysJICAgICMgdGhlIEtBSSBDKysg Y29tcGlsZXIuCisrCSAgICBjYXNlICRob3N0IGluCisrCSAgICAgIG9zZjMqKSBvbGRfYXJjaGl2 ZV9jbWRzX0NYWD0nJENDIC1Cc3RhdGljIC1vICRvbGRsaWIgJG9sZG9ianMnIDs7CisrCSAgICAg ICopIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLW8gJG9sZGxpYiAkb2xkb2JqcycgOzsKKysJ ICAgIGVzYWMKKysJICAgIDs7CisrICAgICAgICAgIFJDQyopCisrCSAgICAjIFJhdGlvbmFsIEMr KyAyLjQuMQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0 CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAgICAgICBjeHgqKQorKwkg ICAgY2FzZSAkaG9zdCBpbgorKwkgICAgICBvc2YzKikKKysJICAgICAgICBhbGxvd191bmRlZmlu ZWRfZmxhZ19DWFg9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJworKwkgICAgICAg IGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5j X2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3Ry eSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkgICAgICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCQk7 OworKwkgICAgICAqKQorKwkgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nIC1leHBl Y3RfdW5yZXNvbHZlZCBcKicKKysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJl ZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUg YHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVy c3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt byAkbGliJworKwkgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdmb3IgaSBpbiBgY2F0 ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wg IlwkaSIgPj4gJGxpYi5leHA7IGRvbmV+CisrCSAgICAgICAgICBlY2hvICItaGlkZGVuIj4+ICRs aWIuZXhwfgorKwkgICAgICAgICAgJENDIC1zaGFyZWQkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVy X2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSAke3dsfS1pbnB1dCAke3dsfSRsaWIuZXhwICBg dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAg LXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifgor KwkgICAgICAgICAgJFJNICRsaWIuZXhwJworKwkgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfQ1hYPSctcnBhdGggJGxpYmRpcicKKysJCTs7CisrCSAgICBlc2FjCisrCisrCSAgICBo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06CisrCisrCSAgICAjIENvbW1hbmRzIHRvIG1h a2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAjIHdo YXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdo ZW4KKysJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgIworKwkgICAgIyBU aGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIg ZnJvbQorKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3 ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhl eSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJICAgICMgZGVwZW5kZW5jaWVz LgorKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAk Q0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJsZCIgfCAkR1JFUCAtdiAi bGQ6ImA7IHRlbXBsaXN0PWBmdW5jX2VjaG9fYWxsICIkdGVtcGxpc3QiIHwgJFNFRCAicy9cKF4u KmxkLipcKVwoIC4qbGQuKiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBk byBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4 dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNob19hbGwgIiRsaXN0 IicKKysJICAgIDs7CisrCSAgKikKKysJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3Qg IiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwkgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19D WFg9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJworKwkgICAgICBjYXNlICRob3N0 IGluCisrCSAgICAgICAgb3NmMyopCisrCSAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0Mg LXNoYXJlZCAtbm9zdGRsaWIgJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19h bGwgIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJgICR7d2x9LXVwZGF0ZV9yZWdp c3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCQkgIDs7 CisrCSAgICAgICAgKikKKysJICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVk IC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAk e3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2Vj aG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVf cmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkJ ICA7OworKwkgICAgICBlc2FjCisrCisrCSAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf Q1hYPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICAgIGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3JfQ1hYPToKKysKKysJICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHBy b2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgICAjIHdoYXQgImhpZGRlbiIg bGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICAg IyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtf Y21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQ IC12ICJeQ29uZmlndXJlZCB3aXRoOiIgfCAkR1JFUCAiXC1MIicKKysKKysJICAgIGVsc2UKKysJ ICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICAg IGxkX3NobGlic19DWFg9bm8KKysJICAgIGZpCisrCSAgICA7OworKyAgICAgICAgZXNhYworKyAg ICAgICAgOzsKKysKKysgICAgICBwc29zKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAgICAg ICAgOzsKKysKKysgICAgICBzdW5vczQqKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4K KysgICAgICAgICAgQ0MqKQorKwkgICAgIyBTdW4gQysrIDQueAorKwkgICAgIyBGSVhNRTogaW5z ZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisr CSAgICA7OworKyAgICAgICAgICBsY2MqKQorKwkgICAgIyBMdWNpZAorKwkgICAgIyBGSVhNRTog aW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5v CisrCSAgICA7OworKyAgICAgICAgICAqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAg ICAgICAgZXNhYworKyAgICAgICAgOzsKKysKKysgICAgICBzb2xhcmlzKikKKysgICAgICAgIGNh c2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIENDKiB8IHN1bkNDKikKKysJICAgICMgU3Vu IEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKKysgICAgICAgICAgICBhcmNoaXZlX2Nt ZHNfbmVlZF9sY19DWFg9eWVzCisrCSAgICBub191bmRlZmluZWRfZmxhZ19DWFg9JyAtemRlZnMn CisrCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAg LWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19D WFg9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNF RCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAk bGliLmV4cH4KKysJICAgICAgJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHt3bH0tTSAk e3dsfSRsaWIuZXhwIC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisr CisrCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLVIkbGliZGlyJworKwkgICAg aGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KKysJICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysJ ICAgICAgc29sYXJpczIuWzAtNV0gfCBzb2xhcmlzMi5bMC01XS4qKSA7OworKwkgICAgICAqKQor KwkJIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIg b3B0aW9ucywKKysJCSMgYnV0IHVuZGVyc3RhbmRzIGAteiBsaW5rZXJfZmxhZycuCisrCSAgICAg ICAgIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKKysJCXdob2xl X2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZh dWx0ZXh0cmFjdCcKKysJICAgICAgICA7OworKwkgICAgZXNhYworKwkgICAgbGlua19hbGxfZGVw bGlic19DWFg9eWVzCisrCisrCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZnVuY19lY2hv X2FsbCcKKysKKysJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11 c3QgYmUgY3JlYXRlZCB1c2luZworKwkgICAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhl IFN1biBDKysgY29tcGlsZXIuICBUaGlzIGlzCisrCSAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1 cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKKysJICAgICMgaW4gdGhlIGFy Y2hpdmUuCisrCSAgICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC14YXIgLW8gJG9sZGxpYiAk b2xkb2JqcycKKysJICAgIDs7CisrICAgICAgICAgIGdjeCopCisrCSAgICAjIEdyZWVuIEhpbGxz IEMrKyBDb21waWxlcgorKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJworKworKwkgICAgIyBUaGUgQysrIGNvbXBp bGVyIG11c3QgYmUgdXNlZCB0byBjcmVhdGUgdGhlIGFyY2hpdmUuCisrCSAgICBvbGRfYXJjaGl2 ZV9jbWRzX0NYWD0nJENDICRMREZMQUdTIC1hcmNoaXZlIC1vICRvbGRsaWIgJG9sZG9ianMnCisr CSAgICA7OworKyAgICAgICAgICAqKQorKwkgICAgIyBHTlUgQysrIGNvbXBpbGVyIHdpdGggU29s YXJpcyBsaW5rZXIKKysJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2du dV9sZCIgPSBubzsgdGhlbgorKwkgICAgICBub191bmRlZmluZWRfZmxhZ19DWFg9JyAke3dsfS16 ICR7d2x9ZGVmcycKKysJICAgICAgaWYgJENDIC0tdmVyc2lvbiB8ICRHUkVQIC12ICdeMlwuNycg PiAvZGV2L251bGw7IHRoZW4KKysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJl ZCAtbm9zdGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGli JworKwkgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdlY2hvICJ7IGdsb2JhbDoiID4g JGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCQkgICRDQyAtc2hh cmVkIC1ub3N0ZGxpYiAke3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAk bGliLmV4cCcKKysKKysJICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVj ZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxp YnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAgICAg IyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlu a19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdS RVAgLXYgIl5Db25maWd1cmVkIHdpdGg6IiB8ICRHUkVQICJcLUwiJworKwkgICAgICBlbHNlCisr CSAgICAgICAgIyBnKysgMi43IGFwcGVhcnMgdG8gcmVxdWlyZSBgLUcnIE5PVCBgLXNoYXJlZCcg b24gdGhpcworKwkgICAgICAgICMgcGxhdGZvcm0uCisrCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NY WD0nJENDIC1HIC1ub3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1l IC1vICRsaWInCisrCSAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2VjaG8gInsgZ2xv YmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkv XDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJCSAg JENDIC1HIC1ub3N0ZGxpYiAke3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRS TSAkbGliLmV4cCcKKysKKysJICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJv ZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAgICAgIyB3aGF0ICJoaWRkZW4i IGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAg ICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgICAgICAgb3V0cHV0X3ZlcmJvc2Vf bGlua19jbWQ9JyRDQyAtRyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQ IC12ICJeQ29uZmlndXJlZCB3aXRoOiIgfCAkR1JFUCAiXC1MIicKKysJICAgICAgZmkKKysKKysJ ICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LVIgJHdsJGxpYmRpcicK KysJICAgICAgY2FzZSAkaG9zdF9vcyBpbgorKwkJc29sYXJpczIuWzAtNV0gfCBzb2xhcmlzMi5b MC01XS4qKSA7OworKwkJKikKKysJCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3ds fS16ICR7d2x9YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJh Y3QnCisrCQkgIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCSAgICA7OworKyAgICAgICAg ZXNhYworKyAgICAgICAgOzsKKysKKysgICAgc3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwg c3lzdjVVbml4V2FyZTcuWzAxXS5bMTBdKiB8IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLlswMjRd KikKKysgICAgICBub191bmRlZmluZWRfZmxhZ19DWFg9JyR7d2x9LXosdGV4dCcKKysgICAgICBh cmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFy X0NYWD1ubworKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysgICAgICBjYXNl ICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgQ0MqKQorKwkgIGFyY2hpdmVfY21kc19DWFg9JyRD QyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCisrCSAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtRyAke3dsfS1CZXhwb3J0 OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJKikKKysJICBhcmNoaXZlX2NtZHNfQ1hYPSck Q0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MnCisrCSAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICR7 d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKyAgICAgIGVzYWMKKysgICAg ICA7OworKworKyAgICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiopCisrCSMgTm90ZTog V2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8g bm90CisrCSMgbGluayB3aXRoIC1sYywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55IHN5bWJvbHMg dXNlZCBmcm9tIGxpYmMgdG8KKysJIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMg anVzdCBhYm91dCBubyBsaWJyYXJ5IHdvdWxkCisrCSMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElm IHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKKysJIyB0aG91Z2gsIHdoaWNo IGRvZXMgY2F0Y2ggc29tZSBiYWQgc3ltYm9scyBidXQgaXNuJ3QgYXMgaGVhdnktaGFuZGVkCisr CSMgYXMgLXogZGVmcy4KKysJbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScke3dsfS16LHRleHQnCisr CWFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nJHt3bH0teixub2RlZnMnCisrCWFyY2hpdmVfY21k c19uZWVkX2xjX0NYWD1ubworKwloYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubworKwloYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tUiwkbGliZGlyJworKwloYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yX0NYWD0nOicKKysJbGlua19hbGxfZGVwbGlic19DWFg9eWVzCisrCWV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUJleHBvcnQnCisrCXJ1bnBhdGhfdmFy PSdMRF9SVU5fUEFUSCcKKysKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgQ0Mq KQorKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICAgIGFyY2hpdmVfZXhwc3lt X2NtZHNfQ1hYPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwk c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAg b2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAtVHByZWxpbmtfb2JqZWN0cyAkb2xkb2Jqc34KKysJ ICAgICAgJyIkb2xkX2FyY2hpdmVfY21kc19DWFgiCisrCSAgICByZWxvYWRfY21kc19DWFg9JyRD QyAtVHByZWxpbmtfb2JqZWN0cyAkcmVsb2FkX29ianN+CisrCSAgICAgICciJHJlbG9hZF9jbWRz X0NYWCIKKysJICAgIDs7CisrCSAgKikKKysJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hh cmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncycKKysJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAke3dsfS1C ZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICA7OworKwllc2FjCisrICAgICAgOzsKKysK KysgICAgICB0YW5kZW0qKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAg ICAgTkNDKikKKysJICAgICMgTm9uU3RvcC1VWCBOQ0MgMy4yMAorKwkgICAgIyBGSVhNRTogaW5z ZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisr CSAgICA7OworKyAgICAgICAgICAqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAg ICAgZXNhYworKyAgICAgICAgOzsKKysKKysgICAgICB2eHdvcmtzKikKKysgICAgICAgICMgRklY TUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgbGRfc2hsaWJz X0NYWD1ubworKyAgICAgICAgOzsKKysKKysgICAgICAqKQorKyAgICAgICAgIyBGSVhNRTogaW5z ZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrICAgICAgICBsZF9zaGxpYnNfQ1hYPW5v CisrICAgICAgICA7OworKyAgICBlc2FjCisrCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbGRfc2hsaWJzX0NYWCIgPiY1CisrJGFzX2VjaG8g IiRsZF9zaGxpYnNfQ1hYIiA+JjY7IH0KKysgICAgdGVzdCAiJGxkX3NobGlic19DWFgiID0gbm8g JiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKworKyAgICBHQ0NfQ1hYPSIkR1hYIgorKyAgICBMRF9D WFg9IiRMRCIKKysKKysgICAgIyMgQ0FWRUFUIEVNUFRPUjoKKysgICAgIyMgVGhlcmUgaXMgbm8g ZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UK KysgICAgIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQg dW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKKysgICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCisr ICAgICMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdCBi ZWluZyBsaW5rZWQ6CisrcHJlZGVwX29iamVjdHNfQ1hYPQorK3Bvc3RkZXBfb2JqZWN0c19DWFg9 CisrcHJlZGVwc19DWFg9CisrcG9zdGRlcHNfQ1hYPQorK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0 aF9DWFg9CisrCisrY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKytjbGFzcyBGb28K Kyt7CisrcHVibGljOgorKyAgRm9vICh2b2lkKSB7IGEgPSAwOyB9CisrcHJpdmF0ZToKKysgIGlu dCBhOworK307CisrX0xUX0VPRgorKworK2lmIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhY19jb21waWxlXCIiOyB9ID4mNQorKyAgKGV2YWwgJGFj X2NvbXBpbGUpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0ICRhY19zdGF0 dXMgPSAwOyB9OyB0aGVuCisrICAjIFBhcnNlIHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJh Y3QgdGhlIG5lY2Vzc2FyeQorKyAgIyBvYmplY3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxh Z3MuCisrCisrICAjIFNlbnRpbmVsIHVzZWQgdG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIG9yIG5v dCB3ZSBhcmUgYmVmb3JlCisrICAjIHRoZSBjb25mdGVzdCBvYmplY3QgZmlsZS4KKysgIHByZV90 ZXN0X29iamVjdF9kZXBzX2RvbmU9bm8KKysKKysgIGZvciBwIGluIGBldmFsICIkb3V0cHV0X3Zl cmJvc2VfbGlua19jbWQiYDsgZG8KKysgICAgY2FzZSAkcCBpbgorKworKyAgICAtTCogfCAtUiog fCAtbCopCisrICAgICAgICMgU29tZSBjb21waWxlcnMgcGxhY2Ugc3BhY2UgYmV0d2VlbiAiLXtM LFJ9IiBhbmQgdGhlIHBhdGguCisrICAgICAgICMgUmVtb3ZlIHRoZSBzcGFjZS4KKysgICAgICAg aWYgdGVzdCAkcCA9ICItTCIgfHwKKysgICAgICAgICAgdGVzdCAkcCA9ICItUiI7IHRoZW4KKysJ IHByZXY9JHAKKysJIGNvbnRpbnVlCisrICAgICAgIGVsc2UKKysJIHByZXY9CisrICAgICAgIGZp CisrCisrICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9IG5vOyB0 aGVuCisrCSBjYXNlICRwIGluCisrCSAtTCogfCAtUiopCisrCSAgICMgSW50ZXJuYWwgY29tcGls ZXIgbGlicmFyeSBwYXRocyBzaG91bGQgY29tZSBhZnRlciB0aG9zZQorKwkgICAjIHByb3ZpZGVk IHRoZSB1c2VyLiAgVGhlIHBvc3RkZXBzIGFscmVhZHkgY29tZSBhZnRlciB0aGUKKysJICAgIyB1 c2VyIHN1cHBsaWVkIGxpYnMgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBwcm9jZXNzIHRoZW0uCisr CSAgIGlmIHRlc3QgLXogIiRjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYIjsgdGhlbgorKwkg ICAgIGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg9IiR7cHJldn0ke3B9IgorKwkgICBlbHNl CisrCSAgICAgY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWD0iJHtjb21waWxlcl9saWJfc2Vh cmNoX3BhdGhfQ1hYfSAke3ByZXZ9JHtwfSIKKysJICAgZmkKKysJICAgOzsKKysJICMgVGhlICIt bCIgY2FzZSB3b3VsZCBuZXZlciBjb21lIGJlZm9yZSB0aGUgb2JqZWN0IGJlaW5nCisrCSAjIGxp bmtlZCwgc28gZG9uJ3QgYm90aGVyIGhhbmRsaW5nIHRoaXMgY2FzZS4KKysJIGVzYWMKKysgICAg ICAgZWxzZQorKwkgaWYgdGVzdCAteiAiJHBvc3RkZXBzX0NYWCI7IHRoZW4KKysJICAgcG9zdGRl cHNfQ1hYPSIke3ByZXZ9JHtwfSIKKysJIGVsc2UKKysJICAgcG9zdGRlcHNfQ1hYPSIke3Bvc3Rk ZXBzX0NYWH0gJHtwcmV2fSR7cH0iCisrCSBmaQorKyAgICAgICBmaQorKyAgICAgICA7OworKwor KyAgICAqLiRvYmpleHQpCisrICAgICAgICMgVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHRlc3Qgb2Jq ZWN0IGZpbGUgb25seSBzaG93cyB1cAorKyAgICAgICAjIG9uY2UgaW4gdGhlIGNvbXBpbGVyIG91 dHB1dC4KKysgICAgICAgaWYgdGVzdCAiJHAiID0gImNvbmZ0ZXN0LiRvYmpleHQiOyB0aGVuCisr CSBwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lPXllcworKwkgY29udGludWUKKysgICAgICAgZmkK KysKKysgICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRo ZW4KKysJIGlmIHRlc3QgLXogIiRwcmVkZXBfb2JqZWN0c19DWFgiOyB0aGVuCisrCSAgIHByZWRl cF9vYmplY3RzX0NYWD0iJHAiCisrCSBlbHNlCisrCSAgIHByZWRlcF9vYmplY3RzX0NYWD0iJHBy ZWRlcF9vYmplY3RzX0NYWCAkcCIKKysJIGZpCisrICAgICAgIGVsc2UKKysJIGlmIHRlc3QgLXog IiRwb3N0ZGVwX29iamVjdHNfQ1hYIjsgdGhlbgorKwkgICBwb3N0ZGVwX29iamVjdHNfQ1hYPSIk cCIKKysJIGVsc2UKKysJICAgcG9zdGRlcF9vYmplY3RzX0NYWD0iJHBvc3RkZXBfb2JqZWN0c19D WFggJHAiCisrCSBmaQorKyAgICAgICBmaQorKyAgICAgICA7OworKworKyAgICAqKSA7OyAjIEln bm9yZSB0aGUgcmVzdC4KKysKKysgICAgZXNhYworKyAgZG9uZQorKworKyAgIyBDbGVhbiB1cC4K KysgIHJtIC1mIGEub3V0IGEuZXhlCisrZWxzZQorKyAgZWNobyAibGlidG9vbC5tNDogZXJyb3I6 IHByb2JsZW0gY29tcGlsaW5nIENYWCB0ZXN0IHByb2dyYW0iCisrZmkKKysKKyskUk0gLWYgY29u ZmVzdC4kb2JqZXh0CisrCisrIyBQT1JUTUU6IG92ZXJyaWRlIGFib3ZlIHRlc3Qgb24gc3lzdGVt cyB3aGVyZSBpdCBpcyBicm9rZW4KKytjYXNlICRob3N0X29zIGluCisraW50ZXJpeFszLTldKikK KysgICMgSW50ZXJpeCAzLjUgaW5zdGFsbHMgY29tcGxldGVseSBob3NlZCAubGEgZmlsZXMgZm9y IEMrKywgc28gcmF0aGVyIHRoYW4KKysgICMgaGFjayBhbGwgYXJvdW5kIGl0LCBsZXQncyBqdXN0 IHRydXN0ICJnKysiIHRvIERUUlQuCisrICBwcmVkZXBfb2JqZWN0c19DWFg9CisrICBwb3N0ZGVw X29iamVjdHNfQ1hYPQorKyAgcG9zdGRlcHNfQ1hYPQorKyAgOzsKKysKKytsaW51eCopCisrICBj YXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysgICpTdW5cIEMqKQorKyAgICAjIFN1biBD KysgNS45CisrCisrICAgICMgVGhlIG1vcmUgc3RhbmRhcmRzLWNvbmZvcm1pbmcgc3RscG9ydDQg bGlicmFyeSBpcworKyAgICAjIGluY29tcGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxpYnJhcnkuIEF2 b2lkIHNwZWNpZnlpbmcKKysgICAgIyBpdCBpZiBpdCdzIGluIENYWEZMQUdTLiBJZ25vcmUgbGli Q3J1biBhcworKyAgICAjIC1saWJyYXJ5PXN0bHBvcnQ0IGRlcGVuZHMgb24gaXQuCisrICAgIGNh c2UgIiAkQ1hYICRDWFhGTEFHUyAiIGluCisrICAgICoiIC1saWJyYXJ5PXN0bHBvcnQ0ICIqKQor KyAgICAgIHNvbGFyaXNfdXNlX3N0bHBvcnQ0PXllcworKyAgICAgIDs7CisrICAgIGVzYWMKKysK KysgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KKysgICAg ICBwb3N0ZGVwc19DWFg9Jy1saWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKKysgICAgZmkKKysg ICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrc29sYXJpcyopCisrICBjYXNlICRjY19iYXNlbmFt ZSBpbgorKyAgQ0MqIHwgc3VuQ0MqKQorKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3Jt aW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKKysgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0 ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCisrICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFH Uy4gSWdub3JlIGxpYkNydW4gYXMKKysgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9u IGl0LgorKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBpbgorKyAgICAqIiAtbGlicmFyeT1z dGxwb3J0NCAiKikKKysgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKKysgICAgICA7Owor KyAgICBlc2FjCisrCisrICAgICMgQWRkaW5nIHRoaXMgcmVxdWlyZXMgYSBrbm93bi1nb29kIHNl dHVwIG9mIHNoYXJlZCBsaWJyYXJpZXMgZm9yCisrICAgICMgU3VuIGNvbXBpbGVyIHZlcnNpb25z IGJlZm9yZSA1LjYsIGVsc2UgUElDIG9iamVjdHMgZnJvbSBhbiBvbGQKKysgICAgIyBhcmNoaXZl IHdpbGwgYmUgbGlua2VkIGludG8gdGhlIG91dHB1dCwgbGVhZGluZyB0byBzdWJ0bGUgYnVncy4K KysgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KKysgICAg ICBwb3N0ZGVwc19DWFg9Jy1saWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKKysgICAgZmkKKysg ICAgOzsKKysgIGVzYWMKKysgIDs7CisrZXNhYworKworKworK2Nhc2UgIiAkcG9zdGRlcHNfQ1hY ICIgaW4KKysqIiAtbGMgIiopIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubyA7OworK2VzYWMK KysgY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWD0KKytpZiB0ZXN0IC1uICIke2NvbXBpbGVy X2xpYl9zZWFyY2hfcGF0aF9DWFh9IjsgdGhlbgorKyBjb21waWxlcl9saWJfc2VhcmNoX2RpcnNf Q1hYPWBlY2hvICIgJHtjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYfSIgfCAke1NFRH0gLWUg J3MhIC1MISAhZycgLWUgJ3MhXiAhISdgCisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9CisrbHRfcHJvZ19jb21waWxl cl9waWNfQ1hYPQorK2x0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0KKysKKyt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkY29tcGlsZXIgb3B0 aW9uIHRvIHByb2R1Y2UgUElDIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGNvbXBp bGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQy4uLiAiID4mNjsgfQorKworKyAgIyBDKysgc3BlY2lm aWMgY2FzZXMgZm9yIHBpYywgc3RhdGljLCB3bCwgZXRjLgorKyAgaWYgdGVzdCAiJEdYWCIgPSB5 ZXM7IHRoZW4KKysgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCisrICAgIGx0X3By b2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLXN0YXRpYycKKysKKysgICAgY2FzZSAkaG9zdF9vcyBp bgorKyAgICBhaXgqKQorKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KKysgICAgICBpZiB0 ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0 IHByb2Nlc3NvcgorKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJworKyAg ICAgIGZpCisrICAgICAgOzsKKysKKysgICAgYW1pZ2FvcyopCisrICAgICAgY2FzZSAkaG9zdF9j cHUgaW4KKysgICAgICBwb3dlcnBjKQorKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQg QW1pZ2FPUzQgLnNvIHN1cHBvcnQKKysgICAgICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19D WFg9Jy1mUElDJworKyAgICAgICAgOzsKKysgICAgICBtNjhrKQorKyAgICAgICAgICAgICMgRklY TUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVz LCBidXQKKysgICAgICAgICAgICAjIGFkZGluZyB0aGUgYC1tNjgwMjAnIGZsYWcgdG8gR0NDIHBy ZXZlbnRzIGJ1aWxkaW5nIGFueXRoaW5nIGJldHRlciwKKysgICAgICAgICAgICAjIGxpa2UgYC1t NjgwNDAnLgorKyAgICAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLW02ODAyMCAt cmVzaWRlbnQzMiAtbWFsd2F5cy1yZXN0b3JlLWE0JworKyAgICAgICAgOzsKKysgICAgICBlc2Fj CisrICAgICAgOzsKKysKKysgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgq IHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZv ciB0aGVzZSBPU2VzLgorKyAgICAgIDs7CisrICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBvczIqIHwg cHczMiogfCBjZWdjYyopCisrICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNl IGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZworKyAgICAgICMgYnVpbHQgZm9yIGlu Y2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSku CisrICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBu ZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQorKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkg bGlicmFyaWVzCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctRERMTF9FWFBPUlQn CisrICAgICAgOzsKKysgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKKysgICAgICAjIFBJQyBpcyB0 aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCisrICAgICAgIyBDb21tb24gc3ltYm9scyBub3Qg YWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WD0nLWZuby1jb21tb24nCisrICAgICAgOzsKKysgICAgKmRqZ3BwKikKKysgICAgICAjIERKR1BQ IGRvZXMgbm90IHN1cHBvcnQgc2hhcmVkIGxpYnJhcmllcyBhdCBhbGwKKysgICAgICBsdF9wcm9n X2NvbXBpbGVyX3BpY19DWFg9CisrICAgICAgOzsKKysgICAgaGFpa3UqKQorKyAgICAgICMgUElD IGlzIHRoZSBkZWZhdWx0IGZvciBIYWlrdS4KKysgICAgICAjIFRoZSAiLXN0YXRpYyIgZmxhZyBl eGlzdHMsIGJ1dCBpcyBicm9rZW4uCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hY PQorKyAgICAgIDs7CisrICAgIGludGVyaXhbMy05XSopCisrICAgICAgIyBJbnRlcml4IDMueCBn Y2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KKysgICAgICAjIElu c3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KKysgICAgICA7 OworKyAgICBzeXN2NCpNUCopCisrICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgorKwls dF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9LUtjb25mb3JtX3BpYworKyAgICAgIGZpCisrICAgICAg OzsKKysgICAgaHB1eCopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIDY0LWJpdCBQ QSBIUC1VWCwgYnV0IG5vdCBmb3IgMzItYml0CisrICAgICAgIyBQQSBIUC1VWC4gIE9uIElBNjQg SFAtVVgsIFBJQyBpcyB0aGUgZGVmYXVsdCBidXQgdGhlIHBpYyBmbGFnCisrICAgICAgIyBzZXRz IHRoZSBkZWZhdWx0IFRMUyBtb2RlbCBhbmQgYWZmZWN0cyBpbmxpbmluZy4KKysgICAgICBjYXNl ICRob3N0X2NwdSBpbgorKyAgICAgIGhwcGEqNjQqKQorKwk7OworKyAgICAgICopCisrCWx0X3By b2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMnCisrCTs7CisrICAgICAgZXNhYworKyAgICAgIDs7 CisrICAgICpxbngqIHwgKm50byopCisrICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVl ZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKysgICAgICAjIGl0IHdp bGwgY29yZWR1bXAuCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZlBJQyAtc2hh cmVkJworKyAgICAgIDs7CisrICAgICopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hY PSctZlBJQycKKysgICAgICA7OworKyAgICBlc2FjCisrICBlbHNlCisrICAgIGNhc2UgJGhvc3Rf b3MgaW4KKysgICAgICBhaXhbNC05XSopCisrCSMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KKysJaWYg dGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysJICAjIEFJWCA1IG5vdyBzdXBwb3J0cyBJ QTY0IHByb2Nlc3NvcgorKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMn CisrCWVsc2UKKysJICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1ibnNvIC1iSTovbGli L3N5c2NhbGxzLmV4cCcKKysJZmkKKysJOzsKKysgICAgICBjaG9ydXMqKQorKwljYXNlICRjY19i YXNlbmFtZSBpbgorKwljeGNoNjgqKQorKwkgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisr CSAgIyBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCBDWFgpPSItLW5vX2F1dG9f aW5zdGFudGlhdGlvbiAtdSBfX21haW4gLXUgX19wcmVtYWluIC11IF9hYm9ydCAtciAkQ09PTF9E SVIvbGliL2xpYk9yYi5hICRNVk1FX0RJUi9saWIvQ0MvbGliQy5hICRNVk1FX0RJUi9saWIvY2xh c3NpeC9saWJjeC5zLmEiCisrCSAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGRndXgqKQorKwlj YXNlICRjY19iYXNlbmFtZSBpbgorKwkgIGVjKysqKQorKwkgICAgbHRfcHJvZ19jb21waWxlcl9w aWNfQ1hYPSctS1BJQycKKysJICAgIDs7CisrCSAgZ2hjeCopCisrCSAgICAjIEdyZWVuIEhpbGxz IEMrKyBDb21waWxlcgorKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctcGljJworKwkg ICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGZyZWVic2QqIHwg ZHJhZ29uZmx5KikKKysJIyBGcmVlQlNEIHVzZXMgR05VIEMrKworKwk7OworKyAgICAgIGhwdXg5 KiB8IGhwdXgxMCogfCBocHV4MTEqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikK KysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJvZ19jb21w aWxlcl9zdGF0aWNfQ1hYPScke3dsfS1hICR7d2x9YXJjaGl2ZScKKysJICAgIGlmIHRlc3QgIiRo b3N0X2NwdSIgIT0gaWE2NDsgdGhlbgorKwkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9 JytaJworKwkgICAgZmkKKysJICAgIDs7CisrCSAgYUNDKikKKysJICAgIGx0X3Byb2dfY29tcGls ZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPScke3ds fS1hICR7d2x9YXJjaGl2ZScKKysJICAgIGNhc2UgJGhvc3RfY3B1IGluCisrCSAgICBocHBhKjY0 KnxpYTY0KikKKysJICAgICAgIyArWiB0aGUgZGVmYXVsdAorKwkgICAgICA7OworKwkgICAgKikK KysJICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPScrWicKKysJICAgICAgOzsKKysJICAg IGVzYWMKKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBp bnRlcml4KikKKysJIyBUaGlzIGlzIGM4OSwgd2hpY2ggaXMgTVMgVmlzdWFsIEMrKyAobm8gc2hh cmVkIGxpYnMpCisrCSMgQW55b25lIHdhbnRzIHRvIGRvIGEgcG9ydD8KKysJOzsKKysgICAgICBp cml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkg IENDKikKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJv Z19jb21waWxlcl9zdGF0aWNfQ1hYPSctbm9uX3NoYXJlZCcKKysJICAgICMgQ0MgcGljIGZsYWcg LUtQSUMgaXMgdGhlIGRlZmF1bHQuCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2Fj CisrCTs7CisrICAgICAgbGludXgqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQor KwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIEtDQyopCisrCSAgICAjIEtBSSBDKysgQ29tcGls ZXIKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctLWJhY2tlbmQgLVdsLCcKKysJICAg IGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMnCisrCSAgICA7OworKwkgIGVjcGMqICkK KysJICAgICMgb2xkIEludGVsIEMrKyBmb3IgeDg2XzY0IHdoaWNoIHN0aWxsIHN1cHBvcnRlZCAt S1BJQy4KKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJv Z19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj X0NYWD0nLXN0YXRpYycKKysJICAgIDs7CisrCSAgaWNwYyogKQorKwkgICAgIyBJbnRlbCBDKyss IHVzZWQgdG8gYmUgaW5jb21wYXRpYmxlIHdpdGggR0NDLgorKwkgICAgIyBJQ0MgMTAgZG9lc24n dCBhY2NlcHQgLUtQSUMgYW55IG1vcmUuCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0n LVdsLCcKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMnCisrCSAgICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1zdGF0aWMnCisrCSAgICA7OworKwkgIHBnQ0MqIHwg cGdjcHAqKQorKwkgICAgIyBQb3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIKKysJICAgIGx0X3By b2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hY PSctZnBpYycKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCisr CSAgICA7OworKwkgIGN4eCopCisrCSAgICAjIENvbXBhcSBDKysKKysJICAgICMgTWFrZSBzdXJl IHRoZSBQSUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwgQWxwaGEKKysJICAg ICMgTGludXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJQy4KKysJICAgIGx0 X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NY WD0nLW5vbl9zaGFyZWQnCisrCSAgICA7OworKwkgIHhsYyogfCB4bEMqIHwgYmd4bFtjQ10qIHwg bXBpeGxbY0NdKikKKysJICAgICMgSUJNIFhMIDguMCwgOS4wIG9uIFBQQyBhbmQgQmx1ZUdlbmUK KysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJvZ19jb21w aWxlcl9waWNfQ1hYPSctcXBpYycKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0n LXFzdGF0aWNsaW5rJworKwkgICAgOzsKKysJICAqKQorKwkgICAgY2FzZSBgJENDIC1WIDI+JjEg fCBzZWQgNXFgIGluCisrCSAgICAqU3VuXCBDKikKKysJICAgICAgIyBTdW4gQysrIDUuOQorKwkg ICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJworKwkgICAgICBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJworKwkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3ds X0NYWD0nLVFvcHRpb24gbGQgJworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgOzsKKysJ ZXNhYworKwk7OworKyAgICAgIGx5bnhvcyopCisrCTs7CisrICAgICAgbTg4ayopCisrCTs7Cisr ICAgICAgbXZzKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBjeHgqKQorKwkgICAgbHRf cHJvZ19jb21waWxlcl9waWNfQ1hYPSctVyBjLGV4cG9ydGFsbCcKKysJICAgIDs7CisrCSAgKikK KysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBuZXRic2QqKQorKwk7OworKyAgICAgICpx bngqIHwgKm50byopCisrICAgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRl ZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQorKyAgICAgICAgIyBpdCB3aWxsIGNv cmVkdW1wLgorKyAgICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZlBJQyAtc2hhcmVk JworKyAgICAgICAgOzsKKysgICAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrCWNhc2UgJGNj X2Jhc2VuYW1lIGluCisrCSAgS0NDKikKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSct LWJhY2tlbmQgLVdsLCcKKysJICAgIDs7CisrCSAgUkNDKikKKysJICAgICMgUmF0aW9uYWwgQysr IDIuNC4xCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMnCisrCSAgICA7Owor KwkgIGN4eCopCisrCSAgICAjIERpZ2l0YWwvQ29tcGFxIEMrKworKwkgICAgbHRfcHJvZ19jb21w aWxlcl93bF9DWFg9Jy1XbCwnCisrCSAgICAjIE1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgaXMgZW1w dHkuICBJdCBhcHBlYXJzIHRoYXQgYWxsIEFscGhhCisrCSAgICAjIExpbnV4IGFuZCBDb21wYXEg VHJ1NjQgVW5peCBvYmplY3RzIGFyZSBQSUMuCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19D WFg9CisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1ub25fc2hhcmVkJworKwkg ICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIHBzb3MqKQorKwk7 OworKyAgICAgIHNvbGFyaXMqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKiB8IHN1 bkNDKikKKysJICAgICMgU3VuIEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKKysJICAg IGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19DWFg9Jy1Cc3RhdGljJworKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1R b3B0aW9uIGxkICcKKysJICAgIDs7CisrCSAgZ2N4KikKKysJICAgICMgR3JlZW4gSGlsbHMgQysr IENvbXBpbGVyCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1QSUMnCisrCSAgICA7 OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgc3Vub3M0KikKKysJY2Fz ZSAkY2NfYmFzZW5hbWUgaW4KKysJICBDQyopCisrCSAgICAjIFN1biBDKysgNC54CisrCSAgICBs dF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpY19DWFg9Jy1Cc3RhdGljJworKwkgICAgOzsKKysJICBsY2MqKQorKwkgICAgIyBMdWNpZAor KwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctcGljJworKwkgICAgOzsKKysJICAqKQor KwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMu MnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAg Q0MqKQorKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCisrCSAgICBsdF9wcm9n X2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNf Q1hYPSctQnN0YXRpYycKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICB0YW5kZW0qKQor KwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIE5DQyopCisrCSAgICAjIE5vblN0b3AtVVggTkND IDMuMjAKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCisrCSAgICA7Owor KwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgdnh3b3JrcyopCisrCTs7Cisr ICAgICAgKikKKysJbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkX0NYWD1ubworKwk7 OworKyAgICBlc2FjCisrICBmaQorKworK2Nhc2UgJGhvc3Rfb3MgaW4KKysgICMgRm9yIHBsYXRm b3JtcyB3aGljaCBkbyBub3Qgc3VwcG9ydCBQSUMsIC1EUElDIGlzIG1lYW5pbmdsZXNzOgorKyAg KmRqZ3BwKikKKysgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPQorKyAgICA7OworKyAgKikK KysgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSIkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hY IC1EUElDIgorKyAgICA7OworK2VzYWMKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCIgPiY1CisrJGFzX2Vj aG8gIiRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgiID4mNjsgfQorKworKworKworKyMKKysjIENo ZWNrIHRvIG1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgYWN0dWFsbHkgd29ya3MuCisrIworK2lmIHRl c3QgLW4gIiRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgiOyB0aGVuCisrICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxh ZyAkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIHdvcmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyBpZiAkY29tcGlsZXIgUElDIGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCB3b3Jr cy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3Nf Q1hYK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYPW5vCisrICAgYWNfb3V0 ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rl c3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrICAgbHRfY29tcGlsZXJfZmxhZz0iJGx0X3By b2dfY29tcGlsZXJfcGljX0NYWCAtRFBJQyIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhl ciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9y ZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAg IyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNo ZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBz byB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCisrICAgIyBUaGUgb3B0aW9uIGlzIHJl ZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW5nIHNlZC4KKysgICBsdF9j b21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7 MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRl c3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxl cl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOiRMSU5FTk86ICRsdF9jb21waWxl XCIiID4mNSkKKysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgIGFj X3N0YXR1cz0kPworKyAgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYm IHRlc3QgLXMgIiRhY19vdXRmaWxlIjsgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9u bHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMg U28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRw dXQuCisrICAgICAkRUNITyAiJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcvXiQv ZCcgPmNvbmZ0ZXN0LmV4cAorKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVy ciA+Y29uZnRlc3QuZXIyCisrICAgICBpZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYg Y29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgIGx0X2N2 X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWD15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICAk Uk0gY29uZnRlc3QqCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWCIgPiY1Cisr JGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFgiID4mNjsgfQorKwor K2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYIiA9IHh5ZXM7IHRo ZW4KKysgICAgY2FzZSAkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIGluCisrICAgICAiIiB8ICIg IiopIDs7CisrICAgICAqKSBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9IiAkbHRfcHJvZ19jb21w aWxlcl9waWNfQ1hYIiA7OworKyAgICAgZXNhYworK2Vsc2UKKysgICAgbHRfcHJvZ19jb21waWxl cl9waWNfQ1hYPQorKyAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkX0NYWD1u bworK2ZpCisrCisrZmkKKysKKysKKysKKysjCisrIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIHN0 YXRpYyBmbGFnIGFjdHVhbGx5IHdvcmtzLgorKyMKKyt3bD0kbHRfcHJvZ19jb21waWxlcl93bF9D WFggZXZhbCBsdF90bXBfc3RhdGljX2ZsYWc9XCIkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hY XCIKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlm ICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0 aWNfZmxhZyB3b3Jrcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxl cl9zdGF0aWNfd29ya3NfQ1hYK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3Nf Q1hYPW5vCisrICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysgICBMREZMQUdTPSIkTERGTEFH UyAkbHRfdG1wX3N0YXRpY19mbGFnIgorKyAgIGVjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2Nv ZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKyAgIGlmIChldmFsICRhY19saW5rIDI+Y29uZnRlc3Qu ZXJyKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgorKyAgICAgIyBUaGUgbGlu a2VyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVk CisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKKysgICAgIGlmIHRlc3Qg LXMgY29uZnRlc3QuZXJyOyB0aGVuCisrICAgICAgICMgQXBwZW5kIGFueSBlcnJvcnMgdG8gdGhl IGNvbmZpZy5sb2cuCisrICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAgICAkRUNI TyAiJF9sdF9saW5rZXJfYm9pbGVycGxhdGUiIHwgJFNFRCAnL14kL2QnID4gY29uZnRlc3QuZXhw CisrICAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVy MgorKyAgICAgICBpZiBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsg dGhlbgorKyAgICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWD15ZXMK KysgICAgICAgZmkKKysgICAgIGVsc2UKKysgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0 aWNfd29ya3NfQ1hYPXllcworKyAgICAgZmkKKysgICBmaQorKyAgICRSTSAtciBjb25mdGVzdCoK KysgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRp Y193b3Jrc19DWFgiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNf d29ya3NfQ1hYIiA+JjY7IH0KKysKKytpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfc3Rh dGljX3dvcmtzX0NYWCIgPSB4eWVzOyB0aGVuCisrICAgIDoKKytlbHNlCisrICAgIGx0X3Byb2df Y29tcGlsZXJfc3RhdGljX0NYWD0KKytmaQorKworKworKworKworKyAgICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0 cyAtYyAtbyBmaWxlLiRhY19vYmpleHQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRj b21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQuLi4gIiA+JjY7IH0KKytpZiB0 ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCtzZXR9IiA9IHNldDsgdGhlbiA6Cisr ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3Byb2dfY29tcGls ZXJfY19vX0NYWD1ubworKyAgICRSTSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAorKyAgIG1rZGly IGNvbmZ0ZXN0CisrICAgY2QgY29uZnRlc3QKKysgICBta2RpciBvdXQKKysgICBlY2hvICIkbHRf c2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICBsdF9j b21waWxlcl9mbGFnPSItbyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQiCisrICAgIyBJbnNlcnQg dGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IK KysgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBh dCB0aGUgZW5kLgorKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBj b250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKKysgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAo bm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgorKyAgIGx0 X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAorKyAgIC1lICdzOi4qRkxBR1N9 XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKKysgICAtZSAnczogW14gXSpjb25m dGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6JDogJGx0X2NvbXBp bGVyX2ZsYWc6J2AKKysgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGx0X2NvbXBp bGVcIiIgPiY1KQorKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQor KyAgIGFjX3N0YXR1cz0kPworKyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQorKyAgIGVjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgICBpZiAoZXhpdCAkYWNf c3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4dAorKyAgIHRoZW4KKysg ICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlm IG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MK KysgICAgICRFQ0hPICIkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+ IG91dC9jb25mdGVzdC5leHAKKysgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRl c3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCisrICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0 LmVyMiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxs OyB0aGVuCisrICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWD15ZXMKKysgICAgIGZp CisrICAgZmkKKysgICBjaG1vZCB1K3cgLiAyPiY1CisrICAgJFJNIGNvbmZ0ZXN0KgorKyAgICMg U0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBmb3IK KysgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KKysgICB0ZXN0IC1kIG91dC9paV9maWxlcyAm JiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCisrICAgJFJNIG91dC8q ICYmIHJtZGlyIG91dAorKyAgIGNkIC4uCisrICAgJFJNIC1yIGNvbmZ0ZXN0CisrICAgJFJNIGNv bmZ0ZXN0KgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiID4mNQorKyRhc19lY2hvICIk bHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIiA+JjY7IH0KKysKKysKKysKKysgICAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBpZiAkY29tcGlsZXIg c3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0IiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgrc2V0fSIgPSBzZXQ7IHRo ZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9wcm9n X2NvbXBpbGVyX2Nfb19DWFg9bm8KKysgICAkUk0gLXIgY29uZnRlc3QgMj4vZGV2L251bGwKKysg ICBta2RpciBjb25mdGVzdAorKyAgIGNkIGNvbmZ0ZXN0CisrICAgbWtkaXIgb3V0CisrICAgZWNo byAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrCisr ICAgbHRfY29tcGlsZXJfZmxhZz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0IgorKyAgICMg SW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFi bGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBv ciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9l cyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFy IHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4K KysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczou KkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFte IF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRs dF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOiRMSU5FTk86ICRs dF9jb21waWxlXCIiID4mNSkKKysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0 LmVycikKKysgICBhY19zdGF0dXM9JD8KKysgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JjUKKysg ICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAgaWYgKGV4 aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKKysgICB0 aGVuCisrICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9w dGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdh cm5pbmdzCisrICAgICAkRUNITyAiJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcv XiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0 L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIG91dC9j b25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9k ZXYvbnVsbDsgdGhlbgorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFg9eWVzCisr ICAgICBmaQorKyAgIGZpCisrICAgY2htb2QgdSt3IC4gMj4mNQorKyAgICRSTSBjb25mdGVzdCoK KysgICAjIFNHSSBDKysgY29tcGlsZXIgd2lsbCBjcmVhdGUgZGlyZWN0b3J5IG91dC9paV9maWxl cy8gZm9yCisrICAgIyB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uCisrICAgdGVzdCAtZCBvdXQvaWlf ZmlsZXMgJiYgJFJNIG91dC9paV9maWxlcy8qICYmIHJtZGlyIG91dC9paV9maWxlcworKyAgICRS TSBvdXQvKiAmJiBybWRpciBvdXQKKysgICBjZCAuLgorKyAgICRSTSAtciBjb25mdGVzdAorKyAg ICRSTSBjb25mdGVzdCoKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIiA+JjUKKyskYXNf ZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgPiY2OyB9CisrCisrCisrCisrCisr aGFyZF9saW5rcz0ibm90dGVzdGVkIgorK2lmIHRlc3QgIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nf b19DWFgiID0gbm8gJiYgdGVzdCAiJG5lZWRfbG9ja3MiICE9IG5vOyB0aGVuCisrICAjIGRvIG5v dCBvdmVyd3JpdGUgdGhlIHZhbHVlIG9mIG5lZWRfbG9ja3MgcHJvdmlkZWQgYnkgdGhlIHVzZXIK KysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYg d2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxpbmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBp ZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3MuLi4gIiA+JjY7IH0KKysgIGhhcmRfbGlua3M9 eWVzCisrICAkUk0gY29uZnRlc3QqCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2 L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAgdG91Y2ggY29uZnRlc3QuYQorKyAgbG4gY29uZnRl c3QuYSBjb25mdGVzdC5iIDI+JjUgfHwgaGFyZF9saW5rcz1ubworKyAgbG4gY29uZnRlc3QuYSBj b25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KKysgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkaGFyZF9saW5rcyIgPiY1CisrJGFz X2VjaG8gIiRoYXJkX2xpbmtzIiA+JjY7IH0KKysgIGlmIHRlc3QgIiRoYXJkX2xpbmtzIiA9IG5v OyB0aGVuCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FS TklORzogXGAkQ0MnIGRvZXMgbm90IHN1cHBvcnQgXGAtYyAtbycsIHNvIFxgbWFrZSAtaicgbWF5 IGJlIHVuc2FmZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogXGAkQ0MnIGRvZXMg bm90IHN1cHBvcnQgXGAtYyAtbycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2FmZSIgPiYyO30K KysgICAgbmVlZF9sb2Nrcz13YXJuCisrICBmaQorK2Vsc2UKKysgIG5lZWRfbG9ja3M9bm8KKytm aQorKworKworKworKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hh cmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgJGNv bXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9 CisrCisrICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5j ZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1 bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4WzQtOV0q KQorKyAgICAjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50IHRoZSAi LUMiIG9wdGlvbi4KKysgICAgIyAtQyBtZWFucyBkZW1hbmdsZSB0byBBSVggbm0sIGJ1dCBtZWFu cyBkb24ndCBkZW1hbmdsZSB3aXRoIEdOVSBubQorKyAgICAjIEFsc28sIEFJWCBubSB0cmVhdHMg d2VhayBkZWZpbmVkIHN5bWJvbHMgbGlrZSBvdGhlciBnbG9iYWwgZGVmaW5lZAorKyAgICAjIHN5 bWJvbHMsIHdoZXJlYXMgR05VIG5tIG1hcmtzIHRoZW0gYXMgIlciLgorKyAgICBpZiAkTk0gLVYg Mj4mMSB8ICRHUkVQICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgZXhwb3J0X3N5bWJv bHNfY21kc19DWFg9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBp ZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpIHx8IChc JCAyID09ICJXIikpICYmIChzdWJzdHIoXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9 IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKysgICAgZWxzZQorKyAgICAgIGV4 cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSckTk0gLUJDcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwg YXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09 ICJCIikpICYmIChzdWJzdHIoXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcn IHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKysgICAgZmkKKysgICAgOzsKKysgIHB3MzIq KQorKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0iJGx0ZGxsX2NtZHMiCisrICA7OworKyAg Y3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKKysgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9 JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAt ZSAnXCcnL15bQkNER1JTXVsgXS9zLy4qWyBdXChbXiBdKlwpL1wxIERBVEEvOy9eLipbIF1fX25t X18vcy9eLipbIF1fX25tX19cKFteIF0qXClbIF1bXiBdKi9cMSBEQVRBLzsvXklbIF0vZDsvXltB SVRXXVsgXS9zLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKyAg OzsKKysgICopCisrICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSckTk0gJGxpYm9ianMgJGNv bnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwg c29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrICA7OworKyAgZXNhYworKyAgZXhjbHVk ZV9leHBzeW1zX0NYWD0nX0dMT0JBTF9PRkZTRVRfVEFCTEVffF9HTE9CQUxfX0ZbSURdXy4qJwor KworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbGRf c2hsaWJzX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsZF9zaGxpYnNfQ1hYIiA+JjY7IH0KKyt0ZXN0 ICIkbGRfc2hsaWJzX0NYWCIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisrCisrd2l0aF9n bnVfbGRfQ1hYPSR3aXRoX2dudV9sZAorKworKworKworKworKworKworKyMKKysjIERvIHdlIG5l ZWQgdG8gZXhwbGljaXRseSBsaW5rIGxpYmM/CisrIworK2Nhc2UgIngkYXJjaGl2ZV9jbWRzX25l ZWRfbGNfQ1hYIiBpbgorK3h8eHllcykKKysgICMgQXNzdW1lIC1sYyBzaG91bGQgYmUgYWRkZWQK KysgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD15ZXMKKysKKysgIGlmIHRlc3QgIiRlbmFibGVf c2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgICBjYXNlICRhcmNo aXZlX2NtZHNfQ1hYIGluCisrICAgIConficqKQorKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZl IHRvIGRlYWwgd2l0aCBtdWx0aS1jb21tYW5kIHNlcXVlbmNlcy4KKysgICAgICA7OworKyAgICAn JENDICcqKQorKyAgICAgICMgVGVzdCB3aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxp bmtzIHdpdGggLWxjIHNpbmNlIG9uIHNvbWUKKysgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0 byBjb21lIGJlZm9yZSAtbGMuIElmIGdjYyBhbHJlYWR5IHBhc3NlcyAtbGMKKysgICAgICAjIHRv IGxkLCBkb24ndCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4KKysgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBl eHBsaWNpdGx5IGxpbmtlZCBpbiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAt bGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHtsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sY19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICAkUk0gY29uZnRlc3QqCisrCWVj aG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKwor KwlpZiB7IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIk YWNfY29tcGlsZVwiIjsgfSA+JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBhY19z dGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9 ICRhY19zdGF0dXMiID4mNQorKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAyPmNvbmZ0ZXN0LmVy cjsgdGhlbgorKwkgIHNvbmFtZT1jb25mdGVzdAorKwkgIGxpYj1jb25mdGVzdAorKwkgIGxpYm9i anM9Y29uZnRlc3QuJGFjX29iamV4dAorKwkgIGRlcGxpYnM9CisrCSAgd2w9JGx0X3Byb2dfY29t cGlsZXJfd2xfQ1hYCisrCSAgcGljX2ZsYWc9JGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWAorKwkg IGNvbXBpbGVyX2ZsYWdzPS12CisrCSAgbGlua2VyX2ZsYWdzPS12CisrCSAgdmVyc3RyaW5nPQor KwkgIG91dHB1dF9vYmpkaXI9LgorKwkgIGxpYm5hbWU9Y29uZnRlc3QKKysJICBsdF9zYXZlX2Fs bG93X3VuZGVmaW5lZF9mbGFnPSRhbGxvd191bmRlZmluZWRfZmxhZ19DWFgKKysJICBhbGxvd191 bmRlZmluZWRfZmxhZ19DWFg9CisrCSAgaWYgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHth c19saW5lbm8tJExJTkVOT306IFwiJGFyY2hpdmVfY21kc19DWFggMlw+XCYxIFx8ICRHUkVQIFwi IC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjFcIiI7IH0gPiY1CisrICAoZXZhbCAkYXJjaGl2ZV9j bWRzX0NYWCAyXD5cJjEgXHwgJEdSRVAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMSkgMj4m NQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0KKysJ ICB0aGVuCisrCSAgICBsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KKysJICBlbHNl CisrCSAgICBsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9eWVzCisrCSAgZmkKKysJICBh bGxvd191bmRlZmluZWRfZmxhZ19DWFg9JGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKKysJ ZWxzZQorKwkgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKwlmaQorKwkkUk0gY29uZnRlc3QqCisr CisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog JGx0X2N2X2FyY2hpdmVfY21kc19uZWVkX2xjX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9h cmNoaXZlX2NtZHNfbmVlZF9sY19DWFgiID4mNjsgfQorKyAgICAgIGFyY2hpdmVfY21kc19uZWVk X2xjX0NYWD0kbHRfY3ZfYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYCisrICAgICAgOzsKKysgICAg ZXNhYworKyAgZmkKKysgIDs7CisrZXNhYworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKyAgICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGR5bmFtaWMgbGlu a2VyIGNoYXJhY3RlcmlzdGljcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZHluYW1pYyBs aW5rZXIgY2hhcmFjdGVyaXN0aWNzLi4uICIgPiY2OyB9CisrCisrbGlicmFyeV9uYW1lc19zcGVj PQorK2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnCisrc29uYW1lX3NwZWM9Cisrc2hyZXh0X2NtZHM9 Ii5zbyIKKytwb3N0aW5zdGFsbF9jbWRzPQorK3Bvc3R1bmluc3RhbGxfY21kcz0KKytmaW5pc2hf Y21kcz0KKytmaW5pc2hfZXZhbD0KKytzaGxpYnBhdGhfdmFyPQorK3NobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD11bmtub3duCisrdmVyc2lvbl90eXBlPW5vbmUKKytkeW5hbWljX2xpbmtlcj0i JGhvc3Rfb3MgbGQuc28iCisrc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9s aWIiCisrbmVlZF9saWJfcHJlZml4PXVua25vd24KKytoYXJkY29kZV9pbnRvX2xpYnM9bm8KKysK KysjIHdoZW4geW91IHNldCBuZWVkX3ZlcnNpb24gdG8gbm8sIG1ha2Ugc3VyZSBpdCBkb2VzIG5v dCBjYXVzZSAtc2V0X3ZlcnNpb24KKysjIGZsYWdzIHRvIGJlIGxlZnQgd2l0aG91dCBhcmd1bWVu dHMKKytuZWVkX3ZlcnNpb249dW5rbm93bgorKworK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgzKikK KysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lLmEnCisrICBzaGxpYnBh dGhfdmFyPUxJQlBBVEgKKysKKysgICMgQUlYIDMgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwg c28gd2UgYXBwZW5kIGEgbWFqb3IgdmVyc2lvbiB0byB0aGUgbmFtZS4KKysgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICA7OworKworK2Fp eFs0LTldKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisr ICBuZWVkX3ZlcnNpb249bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIGlmIHRlc3Qg IiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgICMgQUlYIDUgc3VwcG9ydHMgSUE2NAorKyAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGVs c2UKKysgICAgIyBXaXRoIEdDQyB1cCB0byAyLjk1LngsIGNvbGxlY3QyIHdvdWxkIGNyZWF0ZSBh biBpbXBvcnQgZmlsZQorKyAgICAjIGZvciBkZXBlbmRlbmNlIGxpYnJhcmllcy4gIFRoZSBpbXBv cnQgZmlsZSB3b3VsZCBzdGFydCB3aXRoCisrICAgICMgdGhlIGxpbmUgYCMhIC4nLiAgVGhpcyB3 b3VsZCBjYXVzZSB0aGUgZ2VuZXJhdGVkIGxpYnJhcnkgdG8KKysgICAgIyBkZXBlbmQgb24gYC4n LCBhbHdheXMgYW4gaW52YWxpZCBsaWJyYXJ5LiAgVGhpcyB3YXMgZml4ZWQgaW4KKysgICAgIyBk ZXZlbG9wbWVudCBzbmFwc2hvdHMgb2YgR0NDIHByaW9yIHRvIDMuMC4KKysgICAgY2FzZSAkaG9z dF9vcyBpbgorKyAgICAgIGFpeDQgfCBhaXg0LlswMV0gfCBhaXg0LlswMV0uKikKKysgICAgICBp ZiB7IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIgfHwgKF9fR05VQ19fID09IDIgJiYgX19HTlVDX01J Tk9SX18gPj0gOTcpJworKwkgICBlY2hvICcgeWVzICcKKysJICAgZWNobyAnI2VuZGlmJzsgfSB8 ICR7Q0N9IC1FIC0gfCAkR1JFUCB5ZXMgPiAvZGV2L251bGw7IHRoZW4KKysJOgorKyAgICAgIGVs c2UKKysJY2FuX2J1aWxkX3NoYXJlZD1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgZXNh YworKyAgICAjIEFJWCAob24gUG93ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyBj dXJyZW50bHkgd2UgY2FuIG5vdCBoYXJkY29kZSBjb3JyZWN0CisrICAgICMgc29uYW1lIGludG8g ZXhlY3V0YWJsZS4gUHJvYmFibHkgd2UgY2FuIGFkZCB2ZXJzaW9uaW5nIHN1cHBvcnQgdG8KKysg ICAgIyBjb2xsZWN0Miwgc28gYWRkaXRpb25hbCBsaW5rcyBjYW4gYmUgdXNlZnVsIGluIGZ1dHVy ZS4KKysgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisr ICAgICAgIyBJZiB1c2luZyBydW4gdGltZSBsaW5raW5nIChvbiBBSVggNC4yIG9yIGxhdGVyKSB1 c2UgbGliPG5hbWU+LnNvCisrICAgICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1lPi5hIHRvIGxldCBw ZW9wbGUga25vdyB0aGF0IHRoZXNlIGFyZSBub3QKKysgICAgICAjIHR5cGljYWwgQUlYIHNoYXJl ZCBsaWJyYXJpZXMuCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIGVsc2UKKysgICAgICAjIFdl IHByZXNlcnZlIC5hIGFzIGV4dGVuc2lvbiBmb3Igc2hhcmVkIGxpYnJhcmllcyB0aHJvdWdoIEFJ WDQuMgorKyAgICAgICMgYW5kIGxhdGVyIHdoZW4gd2UgYXJlIG5vdCBkb2luZyBydW4gdGltZSBs aW5raW5nLgorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0u YSAkbGlibmFtZS5hJworKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIGZpCisrICAgIHNobGlicGF0aF92YXI9TElCUEFUSAor KyAgZmkKKysgIDs7CisrCisrYW1pZ2FvcyopCisrICBjYXNlICRob3N0X2NwdSBpbgorKyAgcG93 ZXJwYykKKysgICAgIyBTaW5jZSBKdWx5IDIwMDcgQW1pZ2FPUzQgb2ZmaWNpYWxseSBzdXBwb3J0 cyAuc28gbGlicmFyaWVzLgorKyAgICAjIFdoZW4gY29tcGlsaW5nIHRoZSBleGVjdXRhYmxlLCBh ZGQgLXVzZS1keW5sZCAtTHNvYmpzOiB0byB0aGUgY29tcGlsZWxpbmUuCisrICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9l eHR9JworKyAgICA7OworKyAgbTY4aykKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFt ZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKKysgICAgIyBDcmVhdGUgJHtsaWJuYW1lfV9peGxpYnJh cnkuYSBlbnRyaWVzIGluIC9zeXMvbGlicy4KKysgICAgZmluaXNoX2V2YWw9J2ZvciBsaWIgaW4g YGxzICRsaWJkaXIvKi5peGxpYnJhcnkgMj4vZGV2L251bGxgOyBkbyBsaWJuYW1lPWBmdW5jX2Vj aG9fYWxsICIkbGliIiB8ICRTRUQgJ1wnJ3MlXi4qL1woW14vXSpcKVwuaXhsaWJyYXJ5JCVcMSUn XCcnYDsgdGVzdCAkUk0gL3N5cy9saWJzLyR7bGlibmFtZX1faXhsaWJyYXJ5LmE7ICRzaG93ICJj ZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIjsgY2QgL3N5 cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSB8fCBleGl0IDE7IGRv bmUnCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2Jlb3MqKQorKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgIGR5bmFtaWNfbGlua2VyPSIkaG9z dF9vcyBsZC5zbyIKKysgIHNobGlicGF0aF92YXI9TElCUkFSWV9QQVRICisrICA7OworKworK2Jz ZGlbNDVdKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF92ZXJzaW9uPW5vCisrICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtz aGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZp ZyAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvWDExL2xpYiAvdXNyL2NvbnRy aWIvbGliIC9saWIgL3Vzci9sb2NhbC9saWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl Yz0iL3NobGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgorKyAgIyB0aGUgZGVmYXVsdCBsZC5z by5jb25mIGFsc28gY29udGFpbnMgL3Vzci9jb250cmliL2xpYiBhbmQKKysgICMgL3Vzci9YMTFS Ni9saWIgKC91c3IvWDExIGlzIGEgbGluayB0byAvdXNyL1gxMVI2KSwgYnV0IGxldCB1cyBhbGxv dworKyAgIyBsaWJ0b29sIHRvIGhhcmQtY29kZSB0aGVzZSBpbnRvIHByb2dyYW1zCisrICA7Owor KworK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgIHZlcnNpb25fdHlwZT13 aW5kb3dzCisrICBzaHJleHRfY21kcz0iLmRsbCIKKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbmVl ZF9saWJfcHJlZml4PW5vCisrCisrICBjYXNlICRHQ0MsJGhvc3Rfb3MgaW4KKysgIHllcyxjeWd3 aW4qIHwgeWVzLG1pbmd3KiB8IHllcyxwdzMyKiB8IHllcyxjZWdjYyopCisrICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEnCisrICAgICMgRExMIGlzIGluc3RhbGxlZCB0byAk KGxpYmRpcikvLi4vYmluIGJ5IHBvc3RpbnN0YWxsX2NtZHMKKysgICAgcG9zdGluc3RhbGxfY21k cz0nYmFzZV9maWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+CisrICAgICAgZGxwYXRoPWAkU0hFTEwg Mj4mMSAtYyAnXCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7IGVjaG8gXCRkbG5hbWUn XCcnYH4KKysgICAgICBkbGRpcj0kZGVzdGRpci9gZGlybmFtZSBcJGRscGF0aGB+CisrICAgICAg dGVzdCAtZCBcJGRsZGlyIHx8IG1rZGlyIC1wIFwkZGxkaXJ+CisrICAgICAgJGluc3RhbGxfcHJv ZyAkZGlyLyRkbG5hbWUgXCRkbGRpci8kZGxuYW1lfgorKyAgICAgIGNobW9kIGEreCBcJGRsZGly LyRkbG5hbWV+CisrICAgICAgaWYgdGVzdCAtbiAnXCcnJHN0cmlwbWUnXCcnICYmIHRlc3QgLW4g J1wnJyRzdHJpcGxpYidcJyc7IHRoZW4KKysgICAgICAgIGV2YWwgJ1wnJyRzdHJpcGxpYiBcJGRs ZGlyLyRkbG5hbWUnXCcnIHx8IGV4aXQgXCQ/OworKyAgICAgIGZpJworKyAgICBwb3N0dW5pbnN0 YWxsX2NtZHM9J2RsZGxsPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZmlsZTsgZWNobyBcJGRsbmFt ZSdcJydgfgorKyAgICAgIGRscGF0aD0kZGlyL1wkZGxkbGx+CisrICAgICAgICRSTSBcJGRscGF0 aCcKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKworKyAgICBjYXNlICRo b3N0X29zIGluCisrICAgIGN5Z3dpbiopCisrICAgICAgIyBDeWd3aW4gRExMcyB1c2UgJ2N5Zycg cHJlZml4IHJhdGhlciB0aGFuICdsaWInCisrICAgICAgc29uYW1lX3NwZWM9J2BlY2hvICR7bGli bmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9jeWcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAn cy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKworKyAgICAgIDs7CisrICAg IG1pbmd3KiB8IGNlZ2NjKikKKysgICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICds aWInIHByZWZpeAorKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNl fSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKysgICAg ICA7OworKyAgICBwdzMyKikKKysgICAgICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0 aGVyIHRoYW4gJ2xpYicKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFt ZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1su XS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisrICAgICAgOzsKKysgICAgZXNhYwor KyAgICA7OworKworKyAgKikKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVj aG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRf ZXh0fSAkbGlibmFtZS5saWInCisrICAgIDs7CisrICBlc2FjCisrICBkeW5hbWljX2xpbmtlcj0n V2luMzIgbGQuZXhlJworKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0 aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCisrICBzaGxpYnBhdGhfdmFyPVBBVEgK KysgIDs7CisrCisrZGFyd2luKiB8IHJoYXBzb2R5KikKKysgIGR5bmFtaWNfbGlua2VyPSIkaG9z dF9vcyBkeWxkIgorKyAgdmVyc2lvbl90eXBlPWRhcndpbgorKyAgbmVlZF9saWJfcHJlZml4PW5v CisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0ICR7bGlibmFtZX0kc2hhcmVkX2V4dCcKKysgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQnCisrICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBzaGxpYnBhdGhfdmFyPURZTERfTElC UkFSWV9QQVRICisrICBzaHJleHRfY21kcz0nYHRlc3QgLiRtb2R1bGUgPSAueWVzICYmIGVjaG8g LnNvIHx8IGVjaG8gLmR5bGliYCcKKysKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScv dXNyL2xvY2FsL2xpYiAvbGliIC91c3IvbGliJworKyAgOzsKKysKKytkZ3V4KikKKysgIHZlcnNp b25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8K KysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5h bWUkc2hhcmVkX2V4dCcKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgOzsK KysKKytmcmVlYnNkMSopCisrICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsKKysKKytmcmVlYnNk KiB8IGRyYWdvbmZseSopCisrICAjIERyYWdvbkZseSBkb2VzIG5vdCBoYXZlIGFvdXQuICBXaGVu L2lmIHRoZXkgaW1wbGVtZW50IGEgbmV3CisrICAjIHZlcnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1 c3QgdGhpcy4KKysgIGlmIHRlc3QgLXggL3Vzci9iaW4vb2JqZm9ybWF0OyB0aGVuCisrICAgIG9i amZvcm1hdD1gL3Vzci9iaW4vb2JqZm9ybWF0YAorKyAgZWxzZQorKyAgICBjYXNlICRob3N0X29z IGluCisrICAgIGZyZWVic2RbMTIzXSopIG9iamZvcm1hdD1hb3V0IDs7CisrICAgICopIG9iamZv cm1hdD1lbGYgOzsKKysgICAgZXNhYworKyAgZmkKKysgIHZlcnNpb25fdHlwZT1mcmVlYnNkLSRv Ympmb3JtYXQKKysgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgorKyAgICBmcmVlYnNkLWVsZiopCisr ICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCisrICAgICAgbmVlZF92ZXJzaW9uPW5vCisrICAgICAgbmVlZF9saWJfcHJl Zml4PW5vCisrICAgICAgOzsKKysgICAgZnJlZWJzZC0qKQorKyAgICAgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFt ZSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAgICAgIG5lZWRfdmVyc2lvbj15ZXMKKysgICAg ICA7OworKyAgZXNhYworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGNhc2Ug JGhvc3Rfb3MgaW4KKysgIGZyZWVic2QyKikKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPXllcworKyAgICA7OworKyAgZnJlZWJzZDMuWzAxXSogfCBmcmVlYnNkZWxmMy5bMDFdKikK KysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICBoYXJkY29kZV9pbnRv X2xpYnM9eWVzCisrICAgIDs7CisrICBmcmVlYnNkMy5bMi05XSogfCBmcmVlYnNkZWxmMy5bMi05 XSogfCBcCisrICBmcmVlYnNkNC5bMC01XSB8IGZyZWVic2RlbGY0LlswLTVdIHwgZnJlZWJzZDQu MS4xIHwgZnJlZWJzZGVsZjQuMS4xKQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 bm8KKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICA7OworKyAgKikgIyBmcm9tIDQu NiBvbiwgYW5kIERyYWdvbkZseQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVz CisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgIGVzYWMKKysgIDs7Cisr CisrZ251KikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisr ICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAorKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKyto YWlrdSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAg bmVlZF92ZXJzaW9uPW5vCisrICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgcnVudGltZV9sb2Fk ZXIiCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHttYWpvcn0g JHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZX1BBVEgK KysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjPScvYm9vdC9ob21lL2NvbmZpZy9saWIgL2Jvb3QvY29tbW9uL2xpYiAvYm9vdC9z eXN0ZW0vbGliJworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKytocHV4OSog fCBocHV4MTAqIHwgaHB1eDExKikKKysgICMgR2l2ZSBhIHNvbmFtZSBjb3JyZXNwb25kaW5nIHRv IHRoZSBtYWpvciB2ZXJzaW9uIHNvIHRoYXQgZGxkLnNsIHJlZnVzZXMgdG8KKysgICMgbGluayBh Z2FpbnN0IG90aGVyIHZlcnNpb25zLgorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBuZWVkX2xp Yl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgY2FzZSAkaG9zdF9jcHUgaW4KKysg IGlhNjQqKQorKyAgICBzaHJleHRfY21kcz0nLnNvJworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9 eWVzCisrICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc28iCisrICAgIHNobGlicGF0 aF92YXI9TERfTElCUkFSWV9QQVRICisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15 ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KKysgICAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisr ICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In CisrICAgIGlmIHRlc3QgIlgkSFBVWF9JQTY0X01PREUiID0gWDMyOyB0aGVuCisrICAgICAgc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIvaHB1 eDMyIC91c3IvbG9jYWwvbGliIgorKyAgICBlbHNlCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjPSIvdXNyL2xpYi9ocHV4NjQgL3Vzci9sb2NhbC9saWIvaHB1eDY0IgorKyAgICBmaQor KyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj CisrICAgIDs7CisrICBocHBhKjY0KikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgaGFy ZGNvZGVfaW50b19saWJzPXllcworKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNs IgorKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSCAjIEhvdyBzaG91bGQgd2UgaGFu ZGxlIFNITElCX1BBVEgKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVu bGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9wYTIwXzY0IC91c3IvY2NzL2xpYi9w YTIwXzY0IgorKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjCisrICAgIDs7CisrICAqKQorKyAgICBzaHJleHRfY21kcz0nLnNsJworKyAgICBk eW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgorKyAgICBzaGxpYnBhdGhfdmFyPVNITElC X1BBVEgKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vICMgK3MgaXMgcmVxdWly ZWQgdG8gZW5hYmxlIFNITElCX1BBVEgKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIDs7Cisr ICBlc2FjCisrICAjIEhQLVVYIHJ1bnMgKnJlYWxseSogc2xvd2x5IHVubGVzcyBzaGFyZWQgbGli cmFyaWVzIGFyZSBtb2RlIDU1NSwgLi4uCisrICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA1NTUg JGxpYicKKysgICMgb3IgZmFpbHMgb3V0cmlnaHQsIHNvIG92ZXJyaWRlIGF0b21pY2FsbHk6Cisr ICBpbnN0YWxsX292ZXJyaWRlX21vZGU9NTU1CisrICA7OworKworK2ludGVyaXhbMy05XSopCisr ICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJz aW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGR5bmFtaWNfbGlua2VyPSdJbnRlcml4IDMu eCBsZC5zby4xIChQRSwgbGlrZSBFTEYpJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgaGFyZGNvZGVfaW50b19s aWJzPXllcworKyAgOzsKKysKKytpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorKyAgY2Fz ZSAkaG9zdF9vcyBpbgorKyAgICBub25zdG9wdXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3RvcHV4IDs7 CisrICAgICopCisrCWlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysJ CXZlcnNpb25fdHlwZT1saW51eAorKwllbHNlCisrCQl2ZXJzaW9uX3R5cGU9aXJpeAorKwlmaSA7 OworKyAgZXNhYworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisr ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBjYXNl ICRob3N0X29zIGluCisrICBpcml4NSogfCBub25zdG9wdXgqKQorKyAgICBsaWJzdWZmPSBzaGxp YnN1ZmY9CisrICAgIDs7CisrICAqKQorKyAgICBjYXNlICRMRCBpbiAjIGxpYnRvb2wubTQgd2ls bCBhZGQgb25lIG9mIHRoZXNlIHN3aXRjaGVzIHRvIExECisrICAgICotMzJ8KiItMzIgInwqLW1l bGYzMmJzbWlwfCoiLW1lbGYzMmJzbWlwICIpCisrICAgICAgbGlic3VmZj0gc2hsaWJzdWZmPSBs aWJtYWdpYz0zMi1iaXQ7OworKyAgICAqLW4zMnwqIi1uMzIgInwqLW1lbGYzMmJtaXBuMzJ8KiIt bWVsZjMyYm1pcG4zMiAiKQorKyAgICAgIGxpYnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiBsaWJtYWdp Yz1OMzI7OworKyAgICAqLTY0fCoiLTY0ICJ8Ki1tZWxmNjRibWlwfCoiLW1lbGY2NGJtaXAgIikK KysgICAgICBsaWJzdWZmPTY0IHNobGlic3VmZj02NCBsaWJtYWdpYz02NC1iaXQ7OworKyAgICAq KSBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKKysgICAgZXNhYwor KyAgICA7OworKyAgZXNhYworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZJHtzaGxpYnN1ZmZ9 X1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vzci9sb2Nh bC9saWIke2xpYnN1ZmZ9IgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGli JHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSIKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysg IDs7CisrCisrIyBObyBzaGFyZWQgbGliIHN1cHBvcnQgZm9yIExpbnV4IG9sZGxkLCBhb3V0LCBv ciBjb2ZmLgorK2xpbnV4Km9sZGxkKiB8IGxpbnV4KmFvdXQqIHwgbGludXgqY29mZiopCisrICBk eW5hbWljX2xpbmtlcj1ubworKyAgOzsKKysKKysjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCisr bGludXgqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQorKyAgdmVyc2lvbl90eXBl PWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yJworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcg LW4gJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysKKysgICMgU29tZSBiaW51dGlscyBsZCBhcmUgcGF0 Y2hlZCB0byBzZXQgRFRfUlVOUEFUSAorKyAgaWYgdGVzdCAiJHtsdF9jdl9zaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGgrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8K KysgICAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCisrICAgIHNhdmVfbGliZGlyPSRsaWJkaXIKKysg ICAgZXZhbCAibGliZGlyPS9mb287IHdsPVwiJGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYXCI7IFwK KysJIExERkxBR1M9XCJcJExERkxBR1MgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYXCIi CisrICAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBl bmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJl dHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0 aGVuIDoKKysgIGlmICAoJE9CSkRVTVAgLXAgY29uZnRlc3QkYWNfZXhlZXh0KSAyPi9kZXYvbnVs bCB8IGdyZXAgIlJVTlBBVEguKiRsaWJkaXIiID4vZGV2L251bGw7IHRoZW4gOgorKyAgbHRfY3Zf c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworK2ZpCisrZmkKKytybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRlc3QkYWNfZXhlZXh0 IGNvbmZ0ZXN0LiRhY19leHQKKysgICAgTERGTEFHUz0kc2F2ZV9MREZMQUdTCisrICAgIGxpYmRp cj0kc2F2ZV9saWJkaXIKKysKKytmaQorKworKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PSRsdF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgKKysKKysgICMgVGhpcyBpbXBsaWVz IG5vIGZhc3RfaW5zdGFsbCwgd2hpY2ggaXMgdW5hY2NlcHRhYmxlLgorKyAgIyBTb21lIHJld29y ayB3aWxsIGJlIG5lZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCisrICAjIGJlZm9yZSB0 aGlzIGNhbiBiZSBlbmFibGVkLgorKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKworKyAgIyBB ZGQgQUJJLXNwZWNpZmljIGRpcmVjdG9yaWVzIHRvIHRoZSBzeXN0ZW0gbGlicmFyeSBwYXRoLgor KyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWI2NCAvdXNyL2xpYjY0IC9saWIgL3Vz ci9saWIiCisrCisrICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFyY2gg cGF0aAorKyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KKysgICAgbHRfbGRfZXh0 cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+ L2Rldi9udWxsIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcJDA7IHNr aXAgPSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bCSBdKmh3 Y2FwWwkgXS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nO3MvIi8vZzsv XiQvZCcgfCB0ciAnXG4nICcgJ2AKKysgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyAkbHRfbGRfZXh0cmEiCisrCisrICBmaQorKworKyAg IyBXZSB1c2VkIHRvIHRlc3QgZm9yIC9saWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGli cmFyaWVzIG9uCisrICAjIHBvd2VycGMsIGJlY2F1c2UgTWtMaW51eCBvbmx5IHN1cHBvcnRlZCBz aGFyZWQgbGlicmFyaWVzIHdpdGggdGhlCisrICAjIEdOVSBkeW5hbWljIGxpbmtlci4gIFNpbmNl IHRoaXMgd2FzIGJyb2tlbiB3aXRoIGNyb3NzIGNvbXBpbGVycywKKysgICMgbW9zdCBwb3dlcnBj LWxpbnV4IGJveGVzIHN1cHBvcnQgZHluYW1pYyBsaW5raW5nIHRoZXNlIGRheXMgYW5kCisrICAj IHBlb3BsZSBjYW4gYWx3YXlzIC0tZGlzYWJsZS1zaGFyZWQsIHRoZSB0ZXN0IHdhcyByZW1vdmVk LCBhbmQgd2UKKysgICMgYXNzdW1lIHRoZSBHTlUvTGludXggZHluYW1pYyBsaW5rZXIgaXMgaW4g dXNlLgorKyAgZHluYW1pY19saW5rZXI9J0dOVS9MaW51eCBsZC5zbycKKysgIDs7CisrCisrbmV0 YnNkKikKKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBu ZWVkX3ZlcnNpb249bm8KKysgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19F TEZfXyA+L2Rldi9udWxsOyB0aGVuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXgnCisrICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29u ZmlnIC1tICRsaWJkaXInCisrICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEub3V0KSBsZC5z bycKKysgIGVsc2UKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgZHluYW1pY19saW5rZXI9 J05ldEJTRCBsZC5lbGZfc28nCisrICBmaQorKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9f bGlicz15ZXMKKysgIDs7CisrCisrbmV3c29zNikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgOzsKKysKKysqbnRvKiB8ICpxbngqKQorKyAg dmVyc2lvbl90eXBlPXFueAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249 bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxp Ym5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisr ICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKKysgIGR5bmFtaWNfbGlua2VyPSdsZHFueC5zbycKKysgIDs7CisrCisrb3BlbmJzZCopCisr ICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNy L2xpYiIKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgIyBTb21lIG9sZGVyIHZlcnNpb25zIG9m IE9wZW5CU0QgKDMuMyBhdCBsZWFzdCkgKmRvKiBuZWVkIHZlcnNpb25lZCBsaWJzLgorKyAgY2Fz ZSAkaG9zdF9vcyBpbgorKyAgICBvcGVuYnNkMy4zIHwgb3BlbmJzZDMuMy4qKQluZWVkX3ZlcnNp b249eWVzIDs7CisrICAgICopCQkJCW5lZWRfdmVyc2lvbj1ubyAgOzsKKysgIGVzYWMKKysgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICBmaW5pc2hfY21kcz0n UEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKKysgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUg LSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5i c2QyLjgtcG93ZXJwYyI7IHRoZW4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIG9wZW5i c2QyLls4OV0gfCBvcGVuYnNkMi5bODldLiopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD1ubworKwk7OworKyAgICAgICopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMK KysJOzsKKysgICAgICBlc2FjCisrICBlbHNlCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD15ZXMKKysgIGZpCisrICA7OworKworK29zMiopCisrICBsaWJuYW1lX3NwZWM9JyRuYW1l JworKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9ICRsaWJuYW1lLmEnCisrICBkeW5h bWljX2xpbmtlcj0nT1MvMiBsZC5leGUnCisrICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysgIDs7 CisrCisrb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgdmVyc2lvbl90eXBlPW9zZgorKyAgbmVl ZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9Ii91c3Ivc2hsaWIgL3Vzci9jY3MvbGliIC91c3IvbGliL2NtcGxycy9jYyAvdXNyL2xpYiAv dXNyL2xvY2FsL2xpYiAvdmFyL3NobGliIgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9 IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCisrICA7OworKworK3Jkb3MqKQorKyAgZHluYW1p Y19saW5rZXI9bm8KKysgIDs7CisrCisrc29sYXJpcyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgK KysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPXllcworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgIyBsZGQgY29t cGxhaW5zIHVubGVzcyBsaWJyYXJpZXMgYXJlIGV4ZWN1dGFibGUKKysgIHBvc3RpbnN0YWxsX2Nt ZHM9J2NobW9kICt4ICRsaWInCisrICA7OworKworK3N1bm9zNCopCisrICB2ZXJzaW9uX3R5cGU9 c3Vub3MKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICBm aW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi91c3IvZXRjIiBsZGNvbmZpZyAkbGliZGlyJworKyAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD15ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgbmVl ZF9saWJfcHJlZml4PW5vCisrICBmaQorKyAgbmVlZF92ZXJzaW9uPXllcworKyAgOzsKKysKKytz eXN2NCB8IHN5c3Y0LjMqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScK KysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In CisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgY2FzZSAkaG9zdF92ZW5kb3Ig aW4KKysgICAgc25pKQorKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAg ICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisr ICAgICAgOzsKKysgICAgc2llbWVucykKKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAg ICA7OworKyAgICBtb3Rvcm9sYSkKKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBu ZWVkX3ZlcnNpb249bm8KKysgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysg ICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy9saWIgL3Vzci9saWIgL3Vzci9jY3MvbGli JworKyAgICAgIDs7CisrICBlc2FjCisrICA7OworKworK3N5c3Y0Kk1QKikKKysgIGlmIHRlc3Qg LWQgL3Vzci9uZWMgO3RoZW4KKysgICAgdmVyc2lvbl90eXBlPWxpbnV4CisrICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUke3No YXJlZF9leHR9LiRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVj PSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yJworKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJ QlJBUllfUEFUSAorKyAgZmkKKysgIDs7CisrCisrc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2 KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCisrICB2ZXJzaW9uX3R5cGU9 ZnJlZWJzZC1lbGYKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisr ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFy ZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgaWYg dGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9Jy91c3IvbG9jYWwvbGliIC91c3IvZ251L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIg L2xpYicKKysgIGVsc2UKKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Njcy9s aWIgL3Vzci9saWInCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBzY28zLjJ2NSopCisr ICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWMgL2xpYiIKKysJOzsKKysgICAgZXNhYworKyAgZmkKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0 aF9zcGVjPScvdXNyL2xpYicKKysgIDs7CisrCisrdHBmKikKKysgICMgVFBGIGlzIGEgY3Jvc3Mt dGFyZ2V0IG9ubHkuICBQcmVmZXJyZWQgY3Jvc3MtaG9zdCA9IEdOVS9MaW51eC4KKysgIHZlcnNp b25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8K KysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5h bWUke3NoYXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwor KyAgOzsKKysKKyt1dHM0KikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0n CisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIDs7CisrCisrKikKKysgIGR5 bmFtaWNfbGlua2VyPW5vCisrICA7OworK2VzYWMKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJGR5bmFtaWNfbGlua2VyIiA+JjUKKyskYXNfZWNobyAi JGR5bmFtaWNfbGlua2VyIiA+JjY7IH0KKyt0ZXN0ICIkZHluYW1pY19saW5rZXIiID0gbm8gJiYg Y2FuX2J1aWxkX3NoYXJlZD1ubworKworK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSJQQVRI ICRzaGxpYnBhdGhfdmFyICRydW5wYXRoX3ZhciIKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhl bgorKyAgdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3Jl bGluayBHQ0NfRVhFQ19QUkVGSVggQ09NUElMRVJfUEFUSCBMSUJSQVJZX1BBVEgiCisrZmkKKysK KytpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsg dGhlbgorKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjIgorK2ZpCisraWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhf c3BlYytzZXR9IiA9IHNldDsgdGhlbgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRs dF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKKytmaQorKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKyAgICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJy YXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0 byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMuLi4gIiA+JjY7IH0KKytoYXJk Y29kZV9hY3Rpb25fQ1hYPQorK2lmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0NYWCIgfHwKKysgICB0ZXN0IC1uICIkcnVucGF0aF92YXJfQ1hYIiB8fAorKyAgIHRlc3QgIlgk aGFyZGNvZGVfYXV0b21hdGljX0NYWCIgPSAiWHllcyIgOyB0aGVuCisrCisrICAjIFdlIGNhbiBo YXJkY29kZSBub24tZXhpc3RlbnQgZGlyZWN0b3JpZXMuCisrICBpZiB0ZXN0ICIkaGFyZGNvZGVf ZGlyZWN0X0NYWCIgIT0gbm8gJiYKKysgICAgICMgSWYgdGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2 b2lkIGhhcmRjb2RpbmcgaXMgc2hsaWJwYXRoX3Zhciwgd2UKKysgICAgICMgaGF2ZSB0byByZWxp bmssIG90aGVyd2lzZSB3ZSBtaWdodCBsaW5rIHdpdGggYW4gaW5zdGFsbGVkIGxpYnJhcnkKKysg ICAgICMgd2hlbiB3ZSBzaG91bGQgYmUgbGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxl ZCBvbmUKKysgICAgICMjIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIs IENYWCkiICE9IG5vICYmCisrICAgICB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTF9DWFgiICE9IG5v OyB0aGVuCisrICAgICMgTGlua2luZyBhbHdheXMgaGFyZGNvZGVzIHRoZSB0ZW1wb3JhcnkgbGli cmFyeSBkaXJlY3RvcnkuCisrICAgIGhhcmRjb2RlX2FjdGlvbl9DWFg9cmVsaW5rCisrICBlbHNl CisrICAgICMgV2UgY2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRj b2RlIG5vbmV4aXN0aW5nIGRpcnMuCisrICAgIGhhcmRjb2RlX2FjdGlvbl9DWFg9aW1tZWRpYXRl CisrICBmaQorK2Vsc2UKKysgICMgV2UgY2Fubm90IGhhcmRjb2RlIGFueXRoaW5nLCBvciBlbHNl IHdlIGNhbiBvbmx5IGhhcmRjb2RlIGV4aXN0aW5nCisrICAjIGRpcmVjdG9yaWVzLgorKyAgaGFy ZGNvZGVfYWN0aW9uX0NYWD11bnN1cHBvcnRlZAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRoYXJkY29kZV9hY3Rpb25fQ1hYIiA+JjUKKysk YXNfZWNobyAiJGhhcmRjb2RlX2FjdGlvbl9DWFgiID4mNjsgfQorKworK2lmIHRlc3QgIiRoYXJk Y29kZV9hY3Rpb25fQ1hYIiA9IHJlbGluayB8fAorKyAgIHRlc3QgIiRpbmhlcml0X3JwYXRoX0NY WCIgPSB5ZXM7IHRoZW4KKysgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAor KyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubworK2VsaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aCIgPSB5ZXMgfHwKKysgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0 aGVuCisrICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkKKysgIGVuYWJsZV9m YXN0X2luc3RhbGw9bmVlZGxlc3MKKytmaQorKworKworKworKworKworKworKworKyAgZmkgIyB0 ZXN0IC1uICIkY29tcGlsZXIiCisrCisrICBDQz0kbHRfc2F2ZV9DQworKyAgTERDWFg9JExECisr ICBMRD0kbHRfc2F2ZV9MRAorKyAgR0NDPSRsdF9zYXZlX0dDQworKyAgd2l0aF9nbnVfbGQ9JGx0 X3NhdmVfd2l0aF9nbnVfbGQKKysgIGx0X2N2X3BhdGhfTERDWFg9JGx0X2N2X3BhdGhfTEQKKysg IGx0X2N2X3BhdGhfTEQ9JGx0X3NhdmVfcGF0aF9MRAorKyAgbHRfY3ZfcHJvZ19nbnVfbGRjeHg9 JGx0X2N2X3Byb2dfZ251X2xkCisrICBsdF9jdl9wcm9nX2dudV9sZD0kbHRfc2F2ZV93aXRoX2du dV9sZAorK2ZpICMgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXMKKysKKythY19l eHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxB R1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25m dGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4 dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKwor KworKworKworKworKworKworKworKworKworKworKworKworKyAgICAgICAgYWNfY29uZmlnX2Nv bW1hbmRzPSIkYWNfY29uZmlnX2NvbW1hbmRzIGxpYnRvb2wiCisrCisrCisrCisrCisrIyBPbmx5 IGV4cGFuZCBvbmNlOgorKworKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3JrcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgd2hldGhlciBsbiAtcyB3b3Jrcy4uLiAiID4mNjsgfQorK0xOX1M9JGFzX2xuX3MKKytp ZiB0ZXN0ICIkTE5fUyIgPSAibG4gLXMiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7 IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogbm8sIHVzaW5nICRMTl9TIiA+JjUKKyskYXNfZWNobyAibm8sIHVzaW5nICRMTl9TIiA+ JjY7IH0KKytmaQorKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKSIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKS4uLiAiID4m NjsgfQorK3NldCB4ICR7TUFLRS1tYWtlfQorK2FjX21ha2U9YCRhc19lY2hvICIkMiIgfCBzZWQg J3MvKy9wL2c7IHMvW15hLXpBLVowLTlfXS9fL2cnYAorK2lmIGV2YWwgInRlc3QgXCJcJHthY19j dl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQrc2V0fVwiIiA9IHNldDsgdGhlbiA6CisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QubWFrZSA8PFxf QUNFT0YKKytTSEVMTCA9IC9iaW4vc2gKKythbGw6CisrCUBlY2hvICdAQEAlJSU9JChNQUtFKT1A QEAlJSUnCisrX0FDRU9GCisrIyBHTlUgbWFrZSBzb21ldGltZXMgcHJpbnRzICJtYWtlWzFdOiBF bnRlcmluZyAuLi4iLCB3aGljaCB3b3VsZCBjb25mdXNlIHVzLgorK2Nhc2UgYCR7TUFLRS1tYWtl fSAtZiBjb25mdGVzdC5tYWtlIDI+L2Rldi9udWxsYCBpbgorKyAgKkBAQCUlJT0/Kj1AQEAlJSUq KQorKyAgICBldmFsIGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldD15ZXM7OworKyAgKikK KysgICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9bm87OworK2VzYWMKKyty bSAtZiBjb25mdGVzdC5tYWtlCisrZmkKKytpZiBldmFsIHRlc3QgXCRhY19jdl9wcm9nX21ha2Vf JHthY19tYWtlfV9zZXQgPSB5ZXM7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQor KyAgU0VUX01BS0U9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorKyAgU0VUX01B S0U9Ik1BS0U9JHtNQUtFLW1ha2V9IgorK2ZpCisrCisrCisrIyBTZXQgZGVmYXVsdCBsYW5ndWFn ZSB0byBDKysKKythY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19j b21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn CisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9 JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKysjIENoZWNrIGZvciBleGNlcHRpb25zIHN3 aXRjaAorKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1leGNlcHRpb25zIHdhcyBnaXZlbi4KKytp ZiB0ZXN0ICIke2VuYWJsZV9leGNlcHRpb25zK3NldH0iID0gc2V0OyB0aGVuIDoKKysgIGVuYWJs ZXZhbD0kZW5hYmxlX2V4Y2VwdGlvbnM7CisrJGFzX2VjaG8gIiNkZWZpbmUgU09DSV9FWENFUFRJ T05TIDEiID4+Y29uZmRlZnMuaAorKworK2ZpCisrCisrdGVzdCAieCRlbmFibGVfZXhjZXB0aW9u cyIgIT0geG5vICYmIGVuYWJsZV9leGNlcHRpb25zPXllcworK3Rlc3QgIngkYXhfY3ZfYm9vc3Rf ZGF0ZV90aW1lIiAhPSB4bm8gJiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVzCisrCisrIyBDaGVjayBm b3IgaW5mbyBwYWdlcworKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1pbmZvLWRvYyB3YXMgZ2l2 ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfaW5mb19kb2Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAg ZW5hYmxldmFsPSRlbmFibGVfaW5mb19kb2M7CisrZmkKKysKKyt0ZXN0ICJ4JGVuYWJsZV9pbmZv X2RvYyIgIT0geG5vICYmIGVuYWJsZV9pbmZvX2RvYz15ZXMKKysKKysKKysjIENoZWNrIGZvciBo dG1sLWRvYyBzd2l0Y2gKKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtaHRtbC1kb2Mgd2FzIGdp dmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2h0bWxfZG9jK3NldH0iID0gc2V0OyB0aGVuIDoKKysg IGVuYWJsZXZhbD0kZW5hYmxlX2h0bWxfZG9jOworK2ZpCisrCisrdGVzdCAieCRlbmFibGVfaHRt bF9kb2MiICE9IHhubyAmJiBlbmFibGVfaHRtbF9kb2M9eWVzCisrCisrCisrIyBQcm92aWRlIC0t d2l0aC1kb2NkaXIKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLWRvY2RpciB3YXMgZ2l2ZW4u CisraWYgdGVzdCAiJHt3aXRoX2RvY2RpcitzZXR9IiA9IHNldDsgdGhlbiA6CisrICB3aXRodmFs PSR3aXRoX2RvY2RpcjsgRE9DX0RJUj0iJHdpdGh2YWwiCisrZWxzZQorKyAgRE9DX0RJUj0iIgor K2ZpCisrCisraWYgdGVzdCAieCRET0NfRElSIiAhPSB4OyB0aGVuCisrICBkb2NkaXI9IiRET0Nf RElSIgorK2Vsc2UKKysgIGRvY2Rpcj0iJHtkYXRhZGlyfS9kb2MvJFBBQ0tBR0UtJFZFUlNJT04i CisrZmkKKysKKysKKysKKysjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFNP Q0kgaXRzZWxmKQorKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1idXJyaWVkLWhlYWRlcnMgd2Fz IGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2J1cnJpZWRfaGVhZGVycytzZXR9IiA9IHNldDsg dGhlbiA6CisrICBlbmFibGV2YWw9JGVuYWJsZV9idXJyaWVkX2hlYWRlcnM7ICBpZiB0ZXN0ICIk ZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz1ubwor KyAgIGVsc2UKKysgICAgICBlbmFibGVfYnVycmllZF9oZWFkZXJzPXllcworKyAgIGZpCisrZWxz ZQorKyAgIGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9bm8KKytmaQorKworKyMgVGVtcG9yYXJ5LCBm b3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCisrZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15 ZXMKKysgaWYgdGVzdCAieCRlbmFibGVfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysg IFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRT0KKysgIFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0U9 JyMnCisrZWxzZQorKyAgU09DSV9IRUFERVJTX0JVUklFRF9UUlVFPScjJworKyAgU09DSV9IRUFE RVJTX0JVUklFRF9GQUxTRT0KKytmaQorKworKworK2lmIHRlc3QgIngkZW5hYmxlX2J1cnJpZWRf aGVhZGVycyIgPSB4eWVzOyB0aGVuCisrICAgQ1BQRkxBR1M9Ii1EU09DSV9IRUFERVJTX0JVUklF RCAkQ1BQRkxBR1MiCisrZmkKKysKKysjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAo Zm9yIE15U1FMIGNsaWVudCkKKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbXlzcWwtYnVycmll ZC1oZWFkZXJzIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9teXNxbF9idXJyaWVkX2hl YWRlcnMrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgZW5hYmxldmFsPSRlbmFibGVfbXlzcWxfYnVy cmllZF9oZWFkZXJzOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKwllbmFibGVf bXlzcWxfYnVycmllZF9oZWFkZXJzPW5vCisrICAgZWxzZQorKwllbmFibGVfbXlzcWxfYnVycmll ZF9oZWFkZXJzPXllcworKyAgIGZpCisrZWxzZQorKyAgIGVuYWJsZV9teXNxbF9idXJyaWVkX2hl YWRlcnM9bm8KKytmaQorKworKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5l cmF0aW9uCisrZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKKysgaWYgdGVzdCAieCRl bmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysgIFNPQ0lfTVlTUUxf SEVBREVSU19CVVJJRURfVFJVRT0KKysgIFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfRkFMU0U9 JyMnCisrZWxzZQorKyAgU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9UUlVFPScjJworKyAgU09D SV9NWVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRT0KKytmaQorKworKworK2lmIHRlc3QgIngkZW5h YmxlX215c3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCisrICAgQ1BQRkxBR1M9Ii1E U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCisrZmkKKysKKysjIENoZWNrIGZv ciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFBvc3RHcmVTUUwgY2xpZW50KQorKyMgQ2hlY2sg d2hldGhlciAtLWVuYWJsZS1wb3N0Z3Jlc3FsLWJ1cnJpZWQtaGVhZGVycyB3YXMgZ2l2ZW4uCisr aWYgdGVzdCAiJHtlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMrc2V0fSIgPSBzZXQ7 IHRoZW4gOgorKyAgZW5hYmxldmFsPSRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM7 ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrCWVuYWJsZV9wb3N0Z3Jlc3FsX2J1 cnJpZWRfaGVhZGVycz1ubworKyAgIGVsc2UKKysJZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9o ZWFkZXJzPXllcworKyAgIGZpCisrZWxzZQorKyAgIGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRf aGVhZGVycz1ubworK2ZpCisrCisrIyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdl bmVyYXRpb24KKytlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCisrIGlmIHRl c3QgIngkZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysg IFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9UUlVFPQorKyAgU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEX0ZBTFNFPScjJworK2Vsc2UKKysgIFNPQ0lfUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFRF9UUlVFPScjJworKyAgU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX0ZB TFNFPQorK2ZpCisrCisrCisraWYgdGVzdCAieCRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hl YWRlcnMiID0geHllczsgdGhlbgorKyAgIENQUEZMQUdTPSItRFNPQ0lfUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFRCAkQ1BQRkxBR1MiCisrZmkKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBCb29zdCAoU1RMIEV4dGVu c2lvbnM6IGh0dHA6Ly93d3cuYm9vc3Qub3JnKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKysKKysjIENoZWNrIHdoZXRoZXIg LS13aXRoLWJvb3N0IHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfYm9vc3Qrc2V0fSIgPSBz ZXQ7IHRoZW4gOgorKyAgd2l0aHZhbD0kd2l0aF9ib29zdDsKKysgICAgICAgICAgICAgICAgaWYg dGVzdCAiJHdpdGh2YWwiID0gIm5vIjsgdGhlbgorKwkJICAgICAgICAgICAgd2FudF9ib29zdD0i bm8iCisrICAgICAgICAgICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4K KysgICAgICAgICAgICAgICAgICAgIHdhbnRfYm9vc3Q9InllcyIKKysgICAgICAgICAgICAgICAg ICAgIGFjX2Jvb3N0X3BhdGg9IiIKKysgICAgICAgICAgICAgICAgZWxzZQorKwkJCSAgICAgICAg d2FudF9ib29zdD0ieWVzIgorKyAgICAgICAgICAgIAkJYWNfYm9vc3RfcGF0aD0iJHdpdGh2YWwi CisrCQkgICAgICAgIGZpCisrCisrZWxzZQorKyAgd2FudF9ib29zdD0ieWVzIgorK2ZpCisrCisr CisrIyAgICBBQ19DQU5PTklDQUxfQlVJTEQKKytCT09TVF9NRFdfVkVSU0lPTj0iMS0zMy0xIgor K0JPT1NUTElCX01EV19WRVJTSU9OPSIxXzMzXzEiCisrQk9PU1RfdmVyc2lvbl9oZWFkZXI9ImJv b3N0L3ZlcnNpb24uaHBwIgorKworKwlpZiB0ZXN0ICJ4JHdhbnRfYm9vc3QiID0gInh5ZXMiOyB0 aGVuCisrCQlib29zdF9saWJfdmVyc2lvbl9yZXE9MS4zMworKwkJYm9vc3RfbGliX3ZlcnNpb25f cmVxX3Nob3J0ZW49YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwuWzAt OV0qXCknYAorKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRib29zdF9saWJf dmVyc2lvbl9yZXEgOiAnXChbMC05XSpcKSdgCisrCQlib29zdF9saWJfdmVyc2lvbl9yZXFfbWlu b3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAor KwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNp b25fcmVxIDogJ1swLTldKlwuWzAtOV0qXC5cKFswLTldKlwpJ2AKKysJCWlmIHRlc3QgIngkYm9v c3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vciIgPSAieCIgOyB0aGVuCisrCQkJYm9vc3RfbGli X3ZlcnNpb25fcmVxX3N1Yl9taW5vcj0iMCIKKysgICAgCWZpCisrCQlXQU5UX0JPT1NUX1ZFUlNJ T049YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAgXCsgICRib29z dF9saWJfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwIFwrICRib29zdF9saWJfdmVyc2lvbl9yZXFf c3ViX21pbm9yYAorKwkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBmb3IgYm9vc3RsaWIgPj0gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIGJvb3N0bGliID49ICRib29zdF9saWJfdmVyc2lvbl9yZXEu Li4gIiA+JjY7IH0KKysJCXN1Y2NlZWRlZD1ubworKworKwkJCQkJCQkJCQlpZiB0ZXN0IC1kIC9s aWI2NAorKwkJdGhlbgorKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYjY0IgorKwkJZWxzZQorKwkJ CUJPT1NUX0xJQkRJUlRZUEU9ImxpYiIKKysJCWZpCisrCQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0 aCIgIT0gIiIKKysJCXRoZW4KKysJCQlpZiB0ZXN0ICIkQk9PU1RfTElCRElSVFlQRSIgPT0gImxp YjY0IgorKwkJCXRoZW4KKysJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJ QkRJUlRZUEUiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgor KwkJCQl0aGVuCisrCSAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRo LyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQllbHNlCisrICAgICAgICAgICAgICAgICAgICBCT09T VF9MSUJTPSItTCRhY19ib29zdF9wYXRoL2xpYiIKKysJCQkJZmkKKysJCQllbHNlCisrCQkJCUJP T1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgorKwkJCWZpCisrCQkJQk9PU1RfQ0ZMQUdT PSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUiCisrCQkJQk9PU1RfVkVSU0lPTj1gZ3JlcCAiZGVm aW5lIEJPT1NUX0xJQl9WRVJTSU9OIiAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlLyR7Qk9PU1RfdmVy c2lvbl9oZWFkZXJ9IHwgY3V0IC1kJyAnIC1mMyB8IGN1dCAtZFwiIC1mMmAKKysJCWVsc2UKKysJ CQlmb3IgYWNfYm9vc3RfcGF0aF90bXAgaW4gL3VzciAvdXNyL2xvY2FsIC9vcHQgL25hc3Rvb2xz L2Jvb3N0CisrCQkJZG8KKysJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1 ZGUvYm9vc3QiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0Igor KwkJCQl0aGVuCisrCQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoX3RtcC8kQk9PU1Rf TElCRElSVFlQRSIKKysJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aF90bXAvaW5j bHVkZSIKKysJCQkJCUJPT1NUX1ZFUlNJT049YGdyZXAgImRlZmluZSBCT09TVF9MSUJfVkVSU0lP TiIgJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvJHtCT09TVF92ZXJzaW9uX2hlYWRlcn0gfCBj dXQgLWQnICcgLWYzIHwgY3V0IC1kXCIgLWYyYAorKwkJCQkJYnJlYWs7CisrCQkJCWZpCisrCQkJ CWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdf VkVSU0lPTi9ib29zdCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9v c3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0IgorKwkJCQl0aGVuCisrCQkJCQlCT09TVF9MSUJT PSItTCRhY19ib29zdF9wYXRoX3RtcC8kQk9PU1RfTElCRElSVFlQRSIKKysJCQkJCUJPT1NUX0NG TEFHUz0iLUkkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJ T04iCisrCQkJCQlCT09TVF9WRVJTSU9OPWBncmVwICJkZWZpbmUgQk9PU1RfTElCX1ZFUlNJT04i ICRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi8ke0JP T1NUX3ZlcnNpb25faGVhZGVyfSB8IGN1dCAtZCcgJyAtZjMgfCBjdXQgLWRcIiAtZjJgCisrCisr CQkJCQkJCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9saWIiIFwKKysJCQkJCSYm IHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9saWIiIFwKKysJCQkJCSYmIHRlc3QgISAtZCAi JGFjX2Jvb3N0X3BhdGhfdG1wL2xpYjY0IgorKwkJCQkJdGhlbgorKwkJCQkJCUJPT1NUX0xJQlM9 Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIKKysJCQkJCQllY2hvICJIYWNrOiAkQk9PU1RfTElC UyIKKysJCQkJCWZpCisrCQkJCQlicmVhazsKKysJCQkJZmkKKysJCQlkb25lCisrCQlmaQorKwor KwkJQ1BQRkxBR1NfU0FWRUQ9IiRDUFBGTEFHUyIKKysJCUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJP T1NUX0NGTEFHUyIKKysJCWV4cG9ydCBDUFBGTEFHUworKworKwkJTERGTEFHU19TQVZFRD0iJExE RkxBR1MiCisrCQlMREZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElCUyIKKysJCWV4cG9ydCBMREZM QUdTCisrCisrICAgICAJY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4 dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysjaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5o cHA+CisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysjaWYgQk9PU1RfVkVSU0lPTiA+PSAkV0FO VF9CT09TVF9WRVJTSU9OCisrLy8gRXZlcnl0aGluZyBpcyBva2F5CisrI2Vsc2UKKysjICBlcnJv ciBCb29zdCB2ZXJzaW9uIGlzIHRvbyBvbGQKKysjZW5kaWYKKysKKysKKysgIDsKKysgIHJldHVy biAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0 aGVuIDoKKysKKysgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKysJCSBzdWNjZWVk ZWQ9eWVzCisrCQkgZm91bmRfc3lzdGVtPXllcworKyAgICAgICAgIDoKKysKKytmaQorK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAor KworKwkJCQkJCWlmIHRlc3QgIngkc3VjY2VlZGVkIiAhPSAieHllcyI7IHRoZW4KKysJCQlfdmVy c2lvbj0wCisrCQkJaWYgdGVzdCAiJGFjX2Jvb3N0X3BhdGgiICE9ICIiOyB0aGVuCisrICAgICAg ICAgICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUi CisrCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3Rf cGF0aCI7IHRoZW4KKysJCQkJCWZvciBpIGluIGBscyAtZCAkYWNfYm9vc3RfcGF0aC9pbmNsdWRl L2Jvb3N0LSogMj4vZGV2L251bGxgOyBkbworKwkJCQkJCV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8 IHNlZCAicyMkYWNfYm9vc3RfcGF0aCMjIiB8IHNlZCAncy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8 IHNlZCAncy9fLy4vJ2AKKysJCQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4gJF92 ZXJzaW9uYAorKwkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KKysJCQkJCQkJ X3ZlcnNpb249JF92ZXJzaW9uX3RtcAorKwkJCQkJCWZpCisrCQkJCQkJVkVSU0lPTl9VTkRFUlND T1JFPWBlY2hvICRfdmVyc2lvbiB8IHNlZCAncy9cLi9fLydgCisrCQkJCQkJQk9PU1RfQ0ZMQUdT PSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKKysJ CQkJCWRvbmUKKysJCQkJZmkKKysJCQllbHNlCisrCQkJCWZvciBhY19ib29zdF9wYXRoIGluIC91 c3IgL3Vzci9sb2NhbCAvb3B0IDsgZG8KKysJCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRo IiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KKysJCQkJCQlmb3IgaSBpbiBgbHMg LWQgJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29zdC0qIDI+L2Rldi9udWxsYDsgZG8KKysJCQkJ CQkJX3ZlcnNpb25fdG1wPWBlY2hvICRpIHwgc2VkICJzIyRhY19ib29zdF9wYXRoIyMiIHwgc2Vk ICdzL1wvaW5jbHVkZVwvYm9vc3QtLy8nIHwgc2VkICdzL18vLi8nYAorKwkJCQkJCQlWX0NIRUNL PWBleHByICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9uYAorKwkJCQkJCQlpZiB0ZXN0ICIkVl9D SEVDSyIgPSAiMSIgOyB0aGVuCisrCQkJCQkJCQlfdmVyc2lvbj0kX3ZlcnNpb25fdG1wCisrCQkJ CQkJCQliZXN0X3BhdGg9JGFjX2Jvb3N0X3BhdGgKKysJCQkJCQkJZmkKKysJCQkJCQlkb25lCisr CQkJCQlmaQorKwkJCQlkb25lCisrCisrCQkJCVZFUlNJT05fVU5ERVJTQ09SRT1gZWNobyAkX3Zl cnNpb24gfCBzZWQgJ3MvXC4vXy8nYAorKwkJCQlCT09TVF9DRkxBR1M9Ii1JJGJlc3RfcGF0aC9p bmNsdWRlL2Jvb3N0LSRWRVJTSU9OX1VOREVSU0NPUkUiCisrCQkJCUJPT1NUX0xJQlM9Ii1MJGJl c3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIKKysKKysJICAgIAkJaWYgdGVzdCAieCRCT09TVF9S T09UIiAhPSAieCI7IHRoZW4KKysJCQkJCWlmIHRlc3QgLWQgIiRCT09TVF9ST09UIiAmJiB0ZXN0 IC1yICIkQk9PU1RfUk9PVCI7IHRoZW4KKysJCQkJCQl2ZXJzaW9uX2Rpcj1gZXhwciAvLyRCT09T VF9ST09UIDogJy4qL1woLipcKSdgCisrCQkJCQkJc3RhZ2VfdmVyc2lvbj1gZWNobyAkdmVyc2lv bl9kaXIgfCBzZWQgJ3MvYm9vc3RfLy8nIHwgc2VkICdzL18vLi9nJ2AKKysJCQkJCQlzdGFnZV92 ZXJzaW9uX3Nob3J0ZW49YGV4cHIgJHN0YWdlX3ZlcnNpb24gOiAnXChbMC05XSpcLlswLTldKlwp J2AKKysJCQkJCQlWX0NIRUNLPWBleHByICRzdGFnZV92ZXJzaW9uX3Nob3J0ZW4gXD5cPSAkX3Zl cnNpb25gCisrCQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgorKwkJCQkJCQl7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdlIHdpbGwgdXNlIGEgc3Rh Z2VkIGJvb3N0IGxpYnJhcnkgZnJvbSAkQk9PU1RfUk9PVCIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogV2Ugd2lsbCB1c2UgYSBzdGFnZWQgYm9vc3QgbGlicmFyeSBmcm9tICRCT09TVF9ST09UIiA+ JjY7fQorKwkJCQkJCQlCT09TVF9DRkxBR1M9Ii1JJEJPT1NUX1JPT1QiCisrCQkJCQkJCUJPT1NU X0xJQlM9Ii1MJEJPT1NUX1JPT1Qvc3RhZ2UvJEJPT1NUX0xJQkRJUlRZUEUiCisrCQkJCQkJZmkK KysJCQkJCWZpCisrCSAgICAJCWZpCisrCQkJZmkKKysKKysJCQlDUFBGTEFHUz0iJENQUEZMQUdT ICRCT09TVF9DRkxBR1MiCisrCQkJZXhwb3J0IENQUEZMQUdTCisrCQkJTERGTEFHUz0iJExERkxB R1MgJEJPT1NUX0xJQlMiCisrCQkJZXhwb3J0IExERkxBR1MKKysKKysgICAgIAkJY2F0IGNvbmZk ZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KKysKKysjaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+CisrCisraW50CisrbWFpbiAoKQor K3sKKysKKysjaWYgQk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCisrLy8gRXZl cnl0aGluZyBpcyBva2F5CisrI2Vsc2UKKysjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlzIHRvbyBv bGQKKysjZW5kaWYKKysKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBh Y19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKysKKysgICAgICAgICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzICgkX3ZlcnNp b24pIiA+JjUKKyskYXNfZWNobyAieWVzICgkX3ZlcnNpb24pIiA+JjY7IH0KKysJCSBzdWNjZWVk ZWQ9eWVzCisrICAgICAgICAgOgorKworK2Vsc2UKKysKKysgICAgICAgICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8gKCRfdmVyc2lvbikiID4mNQor KyRhc19lY2hvICJubyAoJF92ZXJzaW9uKSIgPiY2OyB9CisrICAgICAgICAgOgorKworK2ZpCisr cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNf ZXh0CisrCQlmaQorKworKwkJaWYgdGVzdCAiJHN1Y2NlZWRlZCIgIT0gInllcyIgOyB0aGVuCisr CQkJaWYgdGVzdCAiJF92ZXJzaW9uIiA9ICIwIiA7IHRoZW4KKysJCQkJYXNfZm5fZXJyb3IgJD8g IldlIGNvdWxkIG5vdCBkZXRlY3QgdGhlIGJvb3N0IGxpYnJhcmllcyAodmVyc2lvbiAkYm9vc3Rf bGliX3ZlcnNpb25fcmVxX3Nob3J0ZW4gb3IgaGlnaGVyKS4gSWYgeW91IGhhdmUgYSBzdGFnZWQg Ym9vc3QgbGlicmFyeSAoc3RpbGwgbm90IGluc3RhbGxlZCkgcGxlYXNlIHNwZWNpZnkgXCRCT09T VF9ST09UIGluIHlvdXIgZW52aXJvbm1lbnQgYW5kIGRvIG5vdCBnaXZlIGEgUEFUSCB0byAtLXdp dGgtYm9vc3Qgb3B0aW9uLiAgSWYgeW91IGFyZSBzdXJlIHlvdSBoYXZlIGJvb3N0IGluc3RhbGxl ZCwgdGhlbiBjaGVjayB5b3VyIHZlcnNpb24gbnVtYmVyIGxvb2tpbmcgaW4gPGJvb3N0L3ZlcnNp b24uaHBwPi4iICIkTElORU5PIiA1CisrCQkJZWxzZQorKwkJCQlhc19mbl9lcnJvciAkPyAiJ1lv dXIgYm9vc3QgbGlicmFyaWVzIHNlZW1zIHRvIG9sZCAodmVyc2lvbiAkX3ZlcnNpb24pLiAgV2Ug bmVlZCBhdCBsZWFzdCAkYm9vc3RfbGliX3ZlcnNpb25fc2hvcnRlbiciICIkTElORU5PIiA1Cisr CQkJZmkKKysJCWVsc2UKKysKKysKKysKKyskYXNfZWNobyAiI2RlZmluZSBIQVZFX0JPT1NUIC8q Ki8iID4+Y29uZmRlZnMuaAorKworKworKyMKKysjIEJvb3N0OjpGaWxlc3lzdGVtCisrIworKwkJ CXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhl ciB0aGUgQm9vc3Q6OkZpbGVzeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpGaWxlc3lzdGVtIGxpYnJhcnkgaXMg YXZhaWxhYmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF9maWxlc3lzdGVt K3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19j b21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn CisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9 JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VP RiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8 Ym9vc3QvZmlsZXN5c3RlbS9wYXRoLmhwcD4KKytpbnQKKyttYWluICgpCisreworK3VzaW5nIG5h bWVzcGFjZSBib29zdDo6ZmlsZXN5c3RlbTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBhdGggbXlfcGF0aCggImZvby9iYXIvZGF0YS50eHQiICk7CisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKysgIDsKKysgIHJldHVybiAwOworK30K KytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKysg IGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09eWVzCisrZWxzZQorKyAgYXhfY3ZfYm9vc3RfZmlsZXN5 c3RlbT1ubworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdC4kYWNfZXh0CisrCQkgCQkgICAgICAgIAkJCWFjX2V4dD1jcHAKKythY19jcHA9 JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBG TEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ QlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwor K2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRh eF9jdl9ib29zdF9maWxlc3lzdGVtIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2ZpbGVz eXN0ZW0iID4mNjsgfQorKwkJCWlmIHRlc3QgIiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA9ICJ5 ZXMiOyB0aGVuCisrCisrJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVF9GSUxFU1lTVEVNIC8q Ki8iID4+Y29uZmRlZnMuaAorKworKwkJCQlCTj1ib29zdF9maWxlc3lzdGVtCisrCQkJCWZvciBh eF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4t JENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCAkQk4tbWd3LW10LXMgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctcyAkQk4tJENDLW10LSRCT09TVExJQl9NRFdf VkVSU0lPTiA7IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4 X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNfZWNo b19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiBldmFs ICJ0ZXN0IFwiXCR7JGFzX2FjX0xpYitzZXR9XCIiID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElC UworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+ Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKytt YWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19B Q0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorKyAgZXZhbCAi JGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorK3Jt IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorKyAgICBjb25mdGVz dCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJ QlMKKytmaQorK2V2YWwgYWNfcmVzPVwkJGFzX2FjX0xpYgorKwkgICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19l Y2hvICIkYWNfcmVzIiA+JjY7IH0KKytpZiBldmFsIHRlc3QgXCJ4XCQiJGFzX2FjX0xpYiJcIiA9 IHgieWVzIjsgdGhlbiA6CisrICBCT09TVF9GSUxFU1lTVEVNX0xJQj0iLWwkYXhfbGliIiAgbGlu a19maWxlc3lzdGVtPSJ5ZXMiIGJyZWFrCisrZWxzZQorKyAgbGlua19maWxlc3lzdGVtPSJubyIK KytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX2ZpbGVzeXN0ZW0iID0g InhubyI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19lY2hvICIkYXNf bWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJCQlmaQorKwkJ CWZpCisrCisrIworKyMgQm9vc3Q6OlN5c3RlbQorKyMKKysgICAgICAgICAgICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0 OjpTeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IHdoZXRoZXIgdGhlIEJvb3N0OjpTeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3N5c3RlbStzZXR9IiA9IHNldDsgdGhlbiA6Cisr ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysgICAgICAgICAgICBhY19l eHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1j ICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENY WCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21w aWxlcl9nbnUKKysKKysgICAgICAgICAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25m dGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC9z eXN0ZW0vZXJyb3JfY29kZS5ocHA+CisraW50CisrbWFpbiAoKQorK3sKKyt1c2luZyBuYW1lc3Bh Y2UgYm9vc3Q6OnN5c3RlbTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVy cm9yX2NvZGUgbXlFcnJvckNvZGUoKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAwOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2Zu X2N4eF90cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKyAgYXhfY3ZfYm9vc3Rfc3lzdGVt PXllcworK2Vsc2UKKysgIGF4X2N2X2Jvb3N0X3N5c3RlbT1ubworK2ZpCisrcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQ UCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0 ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn CisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2X2Jv b3N0X3N5c3RlbSIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF9zeXN0ZW0iID4mNjsgfQor KyAgICAgICAgICAgIGlmIHRlc3QgIiRheF9jdl9ib29zdF9zeXN0ZW0iID0gInllcyI7IHRoZW4K KysKKyskYXNfZWNobyAiI2RlZmluZSBIQVZFX0JPT1NUX1NZU1RFTSAvKiovIiA+PmNvbmZkZWZz LmgKKysKKysgICAgICAgICAgICAgICAgIEJOPWJvb3N0X3N5c3RlbQorKyAgICAgICAgICAgICAg ICAgZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4t JENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJEND IGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1t dC1zICRCTi1tZ3ctcyA7IGRvCisrICAgICAgICAgICAgICAgICAgICAgYXNfYWNfTGliPWAkYXNf ZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4 X2xpYiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4u ICIgPiY2OyB9CisraWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19MaWIrc2V0fVwiIiA9IHNldDsg dGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNr X2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbCRheF9saWIgICRMSUJTIgorK2NhdCBjb25m ZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4g ICovCisrCisrCisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gbWFpbiAoKTsKKysgIDsKKysg IHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5FTk8i OyB0aGVuIDoKKysgIGV2YWwgIiRhc19hY19MaWI9eWVzIgorK2Vsc2UKKysgIGV2YWwgIiRhc19h Y19MaWI9bm8iCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IFwKKysgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRh Y19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKytldmFsIGFjX3Jlcz1cJCRhc19hY19MaWIKKysJ ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk YWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisraWYgZXZhbCB0ZXN0IFwi eFwkIiRhc19hY19MaWIiXCIgPSB4InllcyI7IHRoZW4gOgorKyAgQk9PU1RfU1lTVEVNX0xJQj0i LWwkYXhfbGliIiAgbGlua19zeXN0ZW09InllcyIgYnJlYWsKKytlbHNlCisrICBsaW5rX3N5c3Rl bT0ibm8iCisrZmkKKysKKysgICAgICAgICAgICAgICAgIGRvbmUKKysgICAgICAgICAgICAgICAg IGlmIHRlc3QgIngkbGlua19zeXN0ZW0iID0gInhubyI7IHRoZW4KKysgICAgICAgICAgICAgICAg ICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IENvdWxkIG5vdCBs aW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3Qg bGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KKysgICAgICAgICAgICAgICAgIGZpCisrICAg ICAgICAgICAgZmkKKysKKysjCisrIyBCb29zdDo6UHJvZ3JhbV9PcHRpb25zCisrIworKwkJCXsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0 aGUgQm9vc3Q6OlByb2dyYW1fT3B0aW9ucyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlByb2dyYW1fT3B0aW9ucyBsaWJy YXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfcHJv Z3JhbV9vcHRpb25zK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKworKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjX2V4dD1jcHAK KythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZM QUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2du dQorKworKwkJCSAgICAgICAgICAgICAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0 ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0L3By b2dyYW1fb3B0aW9ucy5ocHA+CisraW50CisrbWFpbiAoKQorK3sKKytib29zdDo6cHJvZ3JhbV9v cHRpb25zOjpvcHRpb25zX2Rlc2NyaXB0aW9uIGdlbmVyaWMoIkdlbmVyaWMgb3B0aW9ucyIpOwor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisrICA7CisrICBy ZXR1cm4gMDsKKyt9CisrX0FDRU9GCisraWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5P IjsgdGhlbiA6CisrICBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnM9eWVzCisrZWxzZQorKyAg YXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zPW5vCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgICAgICAgICAg ICAgICBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxl PSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNf bGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2 X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zIiA+JjUK KyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPiY2OyB9CisrCQkJaWYg dGVzdCAiJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPSB5ZXM7IHRoZW4KKysKKyskYXNf ZWNobyAiI2RlZmluZSBIQVZFX0JPT1NUX1BST0dSQU1fT1BUSU9OUyAvKiovIiA+PmNvbmZkZWZz LmgKKysKKysJCQkJQk49Ym9vc3RfcHJvZ3JhbV9vcHRpb25zCisrCQkJCWZvciBheF9saWIgaW4g JEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxp YiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRD Qy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT047IGRvCisrCQkJCSAgICBhc19hY19MaWI9 YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIG1haW4gaW4g LWwkYXhfbGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9s aWIuLi4gIiA+JjY7IH0KKytpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0xpYitzZXR9XCIiID0g c2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNf Y2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0 IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAg OworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJ TkVOTyI7IHRoZW4gOgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgZXZhbCAi JGFzX2FjX0xpYj1ubyIKKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJ QlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2V2YWwgYWNfcmVzPVwkJGFzX2FjX0xp YgorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKytpZiBldmFsIHRl c3QgXCJ4XCQiJGFzX2FjX0xpYiJcIiA9IHgieWVzIjsgdGhlbiA6CisrICBCT09TVF9QUk9HUkFN X09QVElPTlNfTElCPSItbCRheF9saWIiICBsaW5rX3Byb2dyYW1fb3B0aW9ucz0ieWVzIiBicmVh aworK2Vsc2UKKysgIGxpbmtfcHJvZ3JhbV9vcHRpb25zPSJubyIKKytmaQorKworKyAgCQkJCWRv bmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8iIiA9ICJ4bm8iOyB0 aGVuCisrCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IENvdWxk IG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3Vs ZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlmaQorKwor KyMKKysjIEJvb3N0OjpUaHJlYWRzCisrIworKwkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlRocmVhZCBsaWJyYXJ5 IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9v c3Q6OlRocmVhZCBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 YXhfY3ZfYm9vc3RfdGhyZWFkK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQ ICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29u ZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQg JENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScK KythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgQ1hYRkxB R1NfU0FWRT0kQ1hYRkxBR1MKKysKKysJCQkgaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFy aXMiIDsgdGhlbgorKyAgCQkJCSBDWFhGTEFHUz0iLXB0aHJlYWRzICRDWFhGTEFHUyIKKysJCQkg ZWxpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4bWluZzMyIiA7IHRoZW4KKysJCQkJIENYWEZMQUdT PSItbXRocmVhZHMgJENYWEZMQUdTIgorKwkJCSBlbHNlCisrCQkJCUNYWEZMQUdTPSItcHRocmVh ZCAkQ1hYRkxBR1MiCisrCQkJIGZpCisrCQkJIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNv bmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0 L3RocmVhZC90aHJlYWQuaHBwPgorK2ludAorK21haW4gKCkKKyt7CisrYm9vc3Q6OnRocmVhZF9n cm91cCB0aHJkczsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAw OworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfY29t cGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKyAgYXhfY3ZfYm9vc3RfdGhyZWFkPXllcworK2Vsc2UK KysgIGF4X2N2X2Jvb3N0X3RocmVhZD1ubworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIg Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCQkJIENYWEZMQUdTPSRDWFhG TEFHU19TQVZFCisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwor K2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQ UEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVy X2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRheF9jdl9ib29zdF90aHJlYWQiID4m NQorKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfdGhyZWFkIiA+JjY7IH0KKysJCQlpZiB0ZXN0ICJ4 JGF4X2N2X2Jvb3N0X3RocmVhZCIgPSAieHllcyI7IHRoZW4KKysgICAgICAgICAgICAgICBpZiB0 ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4c29sYXJpcyIgOyB0aGVuCisrIAkJCQkgIEJPT1NUX0NGTEFH Uz0iLXB0aHJlYWRzICRCT09TVF9DRkxBR1MiCisrCQkJICAgZWxpZiB0ZXN0ICJ4JGJ1aWxkX29z IiA9ICJ4bWluZzMyIiA7IHRoZW4KKysgCQkJCSAgQk9PU1RfQ0ZMQUdTPSItbXRocmVhZHMgJEJP T1NUX0NGTEFHUyIKKysJCQkgICBlbHNlCisrCQkJCSAgQk9PU1RfQ0ZMQUdTPSItcHRocmVhZCAk Qk9PU1RfQ0ZMQUdTIgorKwkJCSAgIGZpCisrCisrCisrCisrJGFzX2VjaG8gIiNkZWZpbmUgSEFW RV9CT09TVF9USFJFQUQgLyoqLyIgPj5jb25mZGVmcy5oCisrCisrCQkJCUJOPWJvb3N0X3RocmVh ZAorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tbXQgJEJOLSRDQyAkQk4tJENDLW10IFwKKysJ CQkJCQkgICAJICAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQt cyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cg JEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1z ICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQt JEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8g ImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4m NjsgfQorK2lmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfTGliK3NldH1cIiIgPSBzZXQ7IHRoZW4g OgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJf c2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWwkYXhfbGliICAkTElCUyIKKytjYXQgY29uZmRlZnMu aCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLwor KworKworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7CisrICByZXR1 cm4gMDsKKyt9CisrX0FDRU9GCisraWYgYWNfZm5fY3h4X3RyeV9saW5rICIkTElORU5PIjsgdGhl biA6CisrICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICBldmFsICIkYXNfYWNfTGli PW5vIgorK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBc CisrICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hl Y2tfbGliX3NhdmVfTElCUworK2ZpCisrZXZhbCBhY19yZXM9XCQkYXNfYWNfTGliCisrCSAgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3Jl cyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2lmIGV2YWwgdGVzdCBcInhcJCIk YXNfYWNfTGliIlwiID0geCJ5ZXMiOyB0aGVuIDoKKysgIEJPT1NUX1RIUkVBRF9MSUI9Ii1sJGF4 X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCisrZWxzZQorKyAgbGlua190aHJlYWQ9Im5v IgorK2ZpCisrCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4 bm8iOyB0aGVuCisrCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlm aQorKworKyMKKysjIEJvb3N0OjpJT1N0cmVhbXMKKysjCisrCQkJeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6SU9TdHJl YW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0 aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF9pb3N0cmVhbXMrc2V0fSIgPSBzZXQ7IHRoZW4gOgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrCisrCQkJIGFjX2V4dD1jcHAK KythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZM QUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2du dQorKworKwkJCSBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Cisr LyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC9pb3N0cmVhbXMvZmlsdGVy aW5nX3N0cmVhbS5ocHA+CisrCQkJCQkJCQkJCQkJICNpbmNsdWRlIDxib29zdC9yYW5nZS9pdGVy YXRvcl9yYW5nZS5ocHA+CisrCisraW50CisrbWFpbiAoKQorK3sKKytzdGQ6OnN0cmluZyAgaW5w dXQgPSAiSGVsbG8gV29ybGQhIjsKKysJCQkJCQkJCQkgbmFtZXNwYWNlIGlvID0gYm9vc3Q6Omlv c3RyZWFtczsKKysJCQkJCQkJCQkgaW86OmZpbHRlcmluZ19pc3RyZWFtICBpbihib29zdDo6bWFr ZV9pdGVyYXRvcl9yYW5nZShpbnB1dCkpOworKwkJCQkJCQkJCSByZXR1cm4gMDsKKysKKysgIDsK KysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRM SU5FTk8iOyB0aGVuIDoKKysgIGF4X2N2X2Jvb3N0X2lvc3RyZWFtcz15ZXMKKytlbHNlCisrICBh eF9jdl9ib29zdF9pb3N0cmVhbXM9bm8KKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNf Y3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAk Q1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVz dCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysK KysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkYXhfY3ZfYm9vc3RfaW9zdHJlYW1zIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2lv c3RyZWFtcyIgPiY2OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9pb3N0cmVhbXMiID0g Inh5ZXMiOyB0aGVuCisrCisrJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVF9JT1NUUkVBTVMg LyoqLyIgPj5jb25mZGVmcy5oCisrCisrCQkJCUJOPWJvb3N0X2lvc3RyZWFtcworKwkJCQlmb3Ig YXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJO LSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAg ICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3Ry X3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFp biBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0xp YitzZXR9XCIiID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAg JExJQlMiCisrY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBt YWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90 cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxz ZQorKyAgZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3Qu JGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2V2YWwgYWNfcmVz PVwkJGFzX2FjX0xpYgorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0K KytpZiBldmFsIHRlc3QgXCJ4XCQiJGFzX2FjX0xpYiJcIiA9IHgieWVzIjsgdGhlbiA6CisrICBC T09TVF9JT1NUUkVBTVNfTElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhawor K2Vsc2UKKysgIGxpbmtfdGhyZWFkPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYg dGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIg ISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGli ICEiID4mNjt9CisrCQkJCWZpCisrCQkJZmkKKysKKysjCisrIyBCb29zdDo6U2VyaWFsaXphdGlv bgorKyMKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNr aW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxl IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6U2VyaWFsaXph dGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3Zf Ym9vc3Rfc2VyaWFsaXphdGlvbitzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQ UCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0 ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn CisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCQkJIGNhdCBj b25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMu aC4gICovCisrI2luY2x1ZGUgPGZzdHJlYW0+CisrCQkJCQkJCQkJCQkJICNpbmNsdWRlIDxib29z dC9hcmNoaXZlL3RleHRfb2FyY2hpdmUuaHBwPgorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjaW5jbHVkZSA8Ym9vc3QvYXJjaGl2ZS90ZXh0X2lhcmNo aXZlLmhwcD4KKysKKytpbnQKKyttYWluICgpCisreworK3N0ZDo6b2ZzdHJlYW0gb2ZzKCJmaWxl bmFtZSIpOworKwkJCQkJCQkJCWJvb3N0OjphcmNoaXZlOjp0ZXh0X29hcmNoaXZlIG9hKG9mcyk7 CisrCQkJCQkJCQkJIHJldHVybiAwOworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VP RgorK2lmIGFjX2ZuX2N4eF90cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKyAgYXhfY3Zf Ym9vc3Rfc2VyaWFsaXphdGlvbj15ZXMKKytlbHNlCisrICBheF9jdl9ib29zdF9zZXJpYWxpemF0 aW9uPW5vCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQ RkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhG TEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNf Y29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3Nl cmlhbGl6YXRpb24iID4mNQorKyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiIg PiY2OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uIiA9ICJ4eWVz IjsgdGhlbgorKworKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTiAv KiovIiA+PmNvbmZkZWZzLmgKKysKKysJCQkJQk49Ym9vc3Rfc2VyaWFsaXphdGlvbgorKwkJCQlm b3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0Mt cyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGli JEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJ CSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFz X3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Ig bWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2Fj X0xpYitzZXR9XCIiID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xp YiAgJExJQlMiCisrY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVy biBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4 eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisr ZWxzZQorKyAgZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRl c3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2V2YWwgYWNf cmVzPVwkJGFzX2FjX0xpYgorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7 IH0KKytpZiBldmFsIHRlc3QgXCJ4XCQiJGFzX2FjX0xpYiJcIiA9IHgieWVzIjsgdGhlbiA6Cisr ICBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9InllcyIg YnJlYWsKKytlbHNlCisrICBsaW5rX3RocmVhZD0ibm8iCisrZmkKKysKKysgIAkJCQlkb25lCisr CQkJCUJOPWJvb3N0X3dzZXJpYWxpemF0aW9uCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0k Q0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0Mt bXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1t Z3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1t dC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0Mt bXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2Vj aG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9s aWIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAi ID4mNjsgfQorK2lmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfTGliK3NldH1cIiIgPSBzZXQ7IHRo ZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19s aWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWwkYXhfbGliICAkTElCUyIKKytjYXQgY29uZmRl ZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAq LworKworKworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7CisrICBy ZXR1cm4gMDsKKyt9CisrX0FDRU9GCisraWYgYWNfZm5fY3h4X3RyeV9saW5rICIkTElORU5PIjsg dGhlbiA6CisrICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICBldmFsICIkYXNfYWNf TGliPW5vIgorK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBcCisrICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNf Y2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisrZXZhbCBhY19yZXM9XCQkYXNfYWNfTGliCisrCSAg ICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFj X3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2lmIGV2YWwgdGVzdCBcInhc JCIkYXNfYWNfTGliIlwiID0geCJ5ZXMiOyB0aGVuIDoKKysgIEJPT1NUX1dTRVJJQUxJWkFUSU9O X0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKKytlbHNlCisrICBsaW5r X3RocmVhZD0ibm8iCisrZmkKKysKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190 aHJlYWQiID0gInhubyI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19l Y2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJ CQlmaQorKwkJCWZpCisrCisrIworKyMgQm9vc3Q6OlNpZ25hbHMKKysjCisrCQkJeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29z dDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgd2hldGhlciB0aGUgQm9vc3Q6OlNpZ25hbHMgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+ JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3NpZ25hbHMrc2V0fSIgPSBzZXQ7IHRoZW4g OgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrCisrCQkJIGFjX2V4dD1j cHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENY WEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1v IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVy X2dudQorKworKwkJCSBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0 CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC9zaWduYWwuaHBwPgor KworK2ludAorK21haW4gKCkKKyt7CisrYm9vc3Q6OnNpZ25hbDx2b2lkICgpPiBzaWc7CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworKworKyAgOworKyAg cmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfY29tcGlsZSAiJExJTkVO TyI7IHRoZW4gOgorKyAgYXhfY3ZfYm9vc3Rfc2lnbmFscz15ZXMKKytlbHNlCisrICBheF9jdl9i b29zdF9zaWduYWxzPW5vCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENY WENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhl ZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+ JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkK Kyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2 X2Jvb3N0X3NpZ25hbHMiID4mNQorKyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rfc2lnbmFscyIgPiY2 OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9zaWduYWxzIiA9ICJ4eWVzIjsgdGhlbgor KworKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfQk9PU1RfU0lHTkFMUyAvKiovIiA+PmNvbmZkZWZz LmgKKysKKysJCQkJQk49Ym9vc3Rfc2lnbmFscworKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4t JENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJEND LW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4t bWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ct bXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJEND LW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRhc19l Y2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhf bGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4g IiA+JjY7IH0KKytpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0xpYitzZXR9XCIiID0gc2V0OyB0 aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tf bGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0IGNvbmZk ZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAg cmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7 IHRoZW4gOgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgZXZhbCAiJGFzX2Fj X0xpYj1ubyIKKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFj X2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2V2YWwgYWNfcmVzPVwkJGFzX2FjX0xpYgorKwkg ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRh Y19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKytpZiBldmFsIHRlc3QgXCJ4 XCQiJGFzX2FjX0xpYiJcIiA9IHgieWVzIjsgdGhlbiA6CisrICBCT09TVF9TSUdOQUxTX0xJQj0i LWwkYXhfbGliIiAgbGlua19zaWduYWxzPSJ5ZXMiIGJyZWFrCisrZWxzZQorKyAgbGlua19zaWdu YWxzPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3NpZ25h bHMiID0gInhubyI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19lY2hv ICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJCQlm aQorKwkJCWZpCisrCisrIworKyMgQm9vc3Q6OkRhdGVfVGltZQorKyMKKysJCQl7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0 OjpEYXRlX1RpbWUgbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpEYXRlX1RpbWUgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X2RhdGVfdGltZStzZXR9IiA9IHNldDsg dGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNf ZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAt YyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRD WFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29u ZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29t cGlsZXJfZ251CisrCisrCQkJIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRh Y19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0L2RhdGVfdGlt ZS9ncmVnb3JpYW4vZ3JlZ29yaWFuX3R5cGVzLmhwcD4KKysKKytpbnQKKyttYWluICgpCisrewor K3VzaW5nIG5hbWVzcGFjZSBib29zdDo6Z3JlZ29yaWFuOyBkYXRlIGQoMjAwMixKYW4sMTApOwor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKysKKysgIDsK KysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRM SU5FTk8iOyB0aGVuIDoKKysgIGF4X2N2X2Jvb3N0X2RhdGVfdGltZT15ZXMKKytlbHNlCisrICBh eF9jdl9ib29zdF9kYXRlX3RpbWU9bm8KKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNf Y3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAk Q1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVz dCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysK KysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkYXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2Rh dGVfdGltZSIgPiY2OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9kYXRlX3RpbWUiID0g Inh5ZXMiOyB0aGVuCisrCisrJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVF9EQVRFX1RJTUUg LyoqLyIgPj5jb25mZGVmcy5oCisrCisrCQkJCUJOPWJvb3N0X2RhdGVfdGltZQorKwkJCQlmb3Ig YXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJO LSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAg ICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3Ry X3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFp biBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0xp YitzZXR9XCIiID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAg JExJQlMiCisrY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBt YWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90 cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxz ZQorKyAgZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3Qu JGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2V2YWwgYWNfcmVz PVwkJGFzX2FjX0xpYgorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0K KytpZiBldmFsIHRlc3QgXCJ4XCQiJGFzX2FjX0xpYiJcIiA9IHgieWVzIjsgdGhlbiA6CisrICBC T09TVF9EQVRFX1RJTUVfTElCPSItbCRheF9saWIiICBsaW5rX2RhdGVfdGltZT0ieWVzIiBicmVh aworK2Vsc2UKKysgIGxpbmtfZGF0ZV90aW1lPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJ CQkJaWYgdGVzdCAieCRsaW5rX2RhdGVfdGltZSI9Im5vIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQl7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IENvdWxkIG5vdCBsaW5rIGFn YWluc3QgJGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBh Z2FpbnN0ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlmaQorKworKyMKKysjIEJvb3N0 OjpSZWdleAorKyMKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJh cnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF9yZWdl eCtzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNf Y29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1 JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCQkJIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNF T0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUg PGJvb3N0L3JlZ2V4LmhwcD4KKysKKytpbnQKKyttYWluICgpCisreworK2Jvb3N0OjpyZWdleCBy KCk7IHJldHVybiAwOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2Zu X2N4eF90cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKyAgYXhfY3ZfYm9vc3RfcmVnZXg9 eWVzCisrZWxzZQorKyAgYXhfY3ZfYm9vc3RfcmVnZXg9bm8KKytmaQorK3JtIC1mIGNvcmUgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19l eHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1j ICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENY WCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21w aWxlcl9nbnUKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfcmVnZXgiID4mNQorKyRhc19lY2hvICIkYXhfY3Zf Ym9vc3RfcmVnZXgiID4mNjsgfQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfcmVnZXgiID0g Inh5ZXMiOyB0aGVuCisrCisrJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVF9SRUdFWCAvKiov IiA+PmNvbmZkZWZzLmgKKysKKysJCQkJQk49Ym9vc3RfcmVnZXgKKysJCQkJZm9yIGF4X2xpYiBp biAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQg bGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4t JENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgYXNfYWNf TGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKKyt7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBtYWlu IGluIC1sJGF4X2xpYiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwk YXhfbGliLi4uICIgPiY2OyB9CisraWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19MaWIrc2V0fVwi IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysg IGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbCRheF9saWIgICRMSUJTIgor K2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29u ZmRlZnMuaC4gICovCisrCisrCisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gbWFpbiAoKTsK KysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2xpbmsg IiRMSU5FTk8iOyB0aGVuIDoKKysgIGV2YWwgIiRhc19hY19MaWI9eWVzIgorK2Vsc2UKKysgIGV2 YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQK KytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKytldmFsIGFjX3Jlcz1cJCRhc19h Y19MaWIKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog cmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisraWYgZXZh bCB0ZXN0IFwieFwkIiRhc19hY19MaWIiXCIgPSB4InllcyI7IHRoZW4gOgorKyAgQk9PU1RfUkVH RVhfTElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxp bmtfdGhyZWFkPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5r X3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Cisr CQkJCWZpCisrCQkJZmkKKysKKysjCisrIyBCb29zdDo6QVNJTzogaXQgbmVlZHMgQm9vc3QuU3lz dGVtLCBCb29zdC5SZWdleCwgQm9vc3QuVGhyZWFkIGFuZAorKyMgQm9vc3QuRGF0ZVRpbWUsIGJ1 dCBkb2VzIG5vdCBwcm9kdWNlIGFueSAob3RoZXIpIGxpYnJhcnkuCisrIworKwkJCXsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9v c3Q6OkFzaW8gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IHdoZXRoZXIgdGhlIEJvb3N0OjpBc2lvIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF9hc2lvK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNf Y3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAk Q1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVz dCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysK KysJCQkgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvYXNpby5ocHA+CisraW50CisrbWFp biAoKQorK3sKKytib29zdDo6YXNpbzo6aW9fc2VydmljZSBpbzsKKysJICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYm9vc3Q6OnN5c3RlbTo6ZXJyb3JfY29kZSB0aW1lcl9yZXN1bHQ7 CisrCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb3N0Ojphc2lvOjpkZWFkbGlu ZV90aW1lciB0KGlvKTsKKysJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5jYW5j ZWwoKTsKKysJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW8ucnVuX29uZSgpOwor KwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKysKKysgIDsKKysg IHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5F Tk8iOyB0aGVuIDoKKysgIGF4X2N2X2Jvb3N0X2FzaW89eWVzCisrZWxzZQorKyAgYXhfY3ZfYm9v c3RfYXNpbz1ubworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdC4kYWNfZXh0CisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAg JENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25m dGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAk Q1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1Jwor K2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRheF9jdl9ib29z dF9hc2lvIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2FzaW8iID4mNjsgfQorKwkJCWlm IHRlc3QgIngkYXhfY3ZfYm9vc3RfYXNpbyIgPSAieHllcyI7IHRoZW4KKysKKyskYXNfZWNobyAi I2RlZmluZSBIQVZFX0JPT1NUX0FTSU8gLyoqLyIgPj5jb25mZGVmcy5oCisrCisrCQkJICAgQk9P U1RfQVNJT19MSUI9IiR7Qk9PU1RfU1lTVEVNX0xJQn0gJHtCT09TVF9USFJFQURfTElCfSIKKysJ CQkgICBCT09TVF9BU0lPX0xJQj0iJHtCT09TVF9BU0lPX0xJQn0gJHtCT09TVF9EQVRFX1RJTUVf TElCfSIKKysJCQkgICBCT09TVF9BU0lPX0xJQj0iJHtCT09TVF9BU0lPX0xJQn0gJHtCT09TVF9S RUdFWF9MSUJ9IgorKwkJCSAgIEJPT1NUX0FTSU9fTElCPSIke0JPT1NUX0FTSU9fTElCfSAke0JP T1NUX1NFUklBTElaQVRJT05fTElCfSIKKysJCQlmaQorKworKyMKKysjIFN1cHBvcnQgZm9yIFB5 dGhvbiBhbmQgTVBJIChNUElDSDIsIEJvb3N0OjpNUEksIEJvb3N0OjpQeXRob24sCisrIyBCb29z dDo6U2VyaWFsaXphdGlvbiwgQm9vc3Q6Ok1QSV9QeXRob24pCisrIyBOb3RlOiBvbiBzb21lIGRp c3RyaWJ1dGlvbnMgKGUuZy4sIERlYmlhbiksIEJvb3N0Lk1QSSB1c2VzIE9wZW5NUEkgcmF0aGVy CisrIyAgICAgICB0aGFuIE1QSUNIMgorKyMKKysJCQlDUFBGTEFHU19PUklHPSIke0NQUEZMQUdT fSIKKysJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAke01QSUdFTl9D RkxBR1N9IgorKyMJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAke01Q SUNIMl9DRkxBR1N9IgorKyMJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdT fSAke09QRU5NUElfQ0ZMQUdTfSIKKysJCQlMREZMQUdTX09SSUc9IiR7TERGTEFHU30iCisrCQkJ TERGTEFHUz0iJHtMREZMQUdTfSAke1BZVEhPTl9MSUJTfSAke1BZVEhPTl9BRERfTElCU30gJHtN UElHRU5fTElCU30iCisrIwkJCUxERkxBR1M9IiR7TERGTEFHU30gJHtQWVRIT05fTElCU30gJHtQ WVRIT05fQUREX0xJQlN9ICR7TVBJQ0gyX0xJQlN9IgorKyMJCQlMREZMQUdTPSIke0xERkxBR1N9 ICR7UFlUSE9OX0xJQlN9ICR7UFlUSE9OX0FERF9MSUJTfSAke09QRU5NUElfTElCU30iCisrCisr IworKyMgQm9vc3Q6OlB5dGhvbgorKyMKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpQeXRob24gbGlicmFyeSBp cyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0 OjpQeXRob24gbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4 X2N2X2Jvb3N0X3B5dGhvbitzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQlhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRD UFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRl c3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENY WEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKyth Y19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKysJCSAgICBjYXQg Y29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZz LmguICAqLworKyNpbmNsdWRlIDxib29zdC9weXRob24uaHBwPgorKwkJCWNoYXIgY29uc3QqIGdy ZWV0KCkgeyByZXR1cm4gImhlbGxvIjsgfQorKwkJCUJPT1NUX1BZVEhPTl9NT0RVTEUoaGVsbG9f ZXh0KSB7IGJvb3N0OjpweXRob246OmRlZigiZ3JlZXQiLCBncmVldCk7fQorKworK2ludAorK21h aW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisraWYgYWNfZm5f Y3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisrICBheF9jdl9ib29zdF9weXRob249 eWVzCisrZWxzZQorKyAgYXhfY3ZfYm9vc3RfcHl0aG9uPW5vCisrZmkKKytybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgYWNf ZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAt YyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRD WFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29u ZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29t cGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3B5dGhvbiIgPiY1CisrJGFzX2VjaG8gIiRheF9j dl9ib29zdF9weXRob24iID4mNjsgfQorKworKwkJCUJPT1NUX1BZVEhPTl9MSUI9Ii1sYm9vc3Rf cHl0aG9uICR7UFlUSE9OX0xJQlN9ICR7UFlUSE9OX0FERF9MSUJTfSIKKysKKysKKysjCisrIyBC b29zdDo6TVBJCisrIworKwkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5 IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfbXBpK3Nl dH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQor KworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21w aWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisr YWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFj X2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+ Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9v c3QvbXBpLmhwcD4KKytpbnQKKyttYWluICgpCisreworKworKwkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gMDsKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNF T0YKKytpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKysgIGF4X2N2 X2Jvb3N0X21waT15ZXMKKytlbHNlCisrICBheF9jdl9ib29zdF9tcGk9bm8KKytmaQorK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAor KwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxl PSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNf bGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2 X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfbXBpIiA+JjUKKyskYXNfZWNobyAi JGF4X2N2X2Jvb3N0X21waSIgPiY2OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9tcGki ID0gInh5ZXMiOyB0aGVuCisrCisrJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVF9NUEkgLyoq LyIgPj5jb25mZGVmcy5oCisrCisrCQkJCUJOPWJvb3N0X21waQorKwkJCQlmb3IgYXhfbGliIGlu ICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBs aWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0k Q0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04g OyBkbworKworKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWIn J19tYWluIiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9CisraWYgZXZhbCAidGVz dCBcIlwkeyRhc19hY19MaWIrc2V0fVwiIiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytM SUJTPSItbCRheF9saWIgICRMSUJTIgorK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0 ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrCisraW50CisrbWFpbiAo KQorK3sKKytyZXR1cm4gbWFpbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YK KytpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKysgIGV2YWwgIiRhc19h Y19MaWI9eWVzIgorK2Vsc2UKKysgIGV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKytybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRlc3QkYWNf ZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisr ZmkKKytldmFsIGFjX3Jlcz1cJCRhc19hY19MaWIKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAi JGFjX3JlcyIgPiY2OyB9CisraWYgZXZhbCB0ZXN0IFwieFwkIiRhc19hY19MaWIiXCIgPSB4Inll cyI7IHRoZW4gOgorKyAgQk9PU1RfTVBJX0xJQj0iLWwkYXhfbGliIiAgbGlua19tcGk9InllcyIg YnJlYWsKKytlbHNlCisrICBsaW5rX21waT0ibm8iCisrZmkKKysKKysgIAkJCQlkb25lCisrCQkJ CWlmIHRlc3QgIngkbGlua19tcGkiID0gInhubyI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGli ICEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xp YiAhIiA+JjY7fQorKwkJCQllbHNlCisrCQkJCQlCT09TVF9NUElfTElCPSIke0JPT1NUX01QSV9M SUJ9ICR7Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUJ9ICR7TVBJR0VOX0xJQlN9IgorKwkJCQlmaQor KwkJCWZpCisrCisrIworKyMgQm9vc3Q6Ok1QSV9QeXRob24KKysjCisrCQkJeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6 TXBpX1B5dGhvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgd2hldGhlciB0aGUgQm9vc3Q6Ok1waV9QeXRob24gbGlicmFyeSBpcyBhdmFpbGFibGUuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X21waV9weXRob24rc2V0fSIgPSBzZXQ7 IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrCisrCQkJIGFj X2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFgg LWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSck Q1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2Nv bXBpbGVyX2dudQorKworKwkJCSBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4k YWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC9tcGkvcHl0 aG9uL3NlcmlhbGl6ZS5ocHA+CisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysJICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisrCisrICA7CisrICByZXR1cm4gMDsK Kyt9CisrX0FDRU9GCisraWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6 CisrICBheF9jdl9ib29zdF9tcGlfcHl0aG9uPXllcworK2Vsc2UKKysgIGF4X2N2X2Jvb3N0X21w aV9weXRob249bm8KKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQ ICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29u ZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQg JENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScK KythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3ZfYm9v c3RfbXBpX3B5dGhvbiIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF9tcGlfcHl0aG9uIiA+ JjY7IH0KKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X21waV9weXRob24iID0gInh5ZXMiOyB0 aGVuCisrCisrJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVF9NUElfUFlUSE9OIC8qKi8iID4+ Y29uZmRlZnMuaAorKworKwkJCQlCTj1ib29zdF9tcGlfcHl0aG9uCisrIwkJCQlCTj1ib29zdF9t cGlfcHl0aG9uLXB5MjUKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10 ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10 ICRCTi1tZ3ctbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1z ICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIGFzX2FjX0xp Yj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgbWFpbiBp biAtbCRheF9saWIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4 X2xpYi4uLiAiID4mNjsgfQorK2lmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfTGliK3NldH1cIiIg PSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBh Y19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWwkYXhfbGliICAkTElCUyIKKytj YXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZk ZWZzLmguICAqLworKworKworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7Cisr ICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisraWYgYWNfZm5fY3h4X3RyeV9saW5rICIk TElORU5PIjsgdGhlbiA6CisrICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICBldmFs ICIkYXNfYWNfTGliPW5vIgorK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBcCisrICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Cisr TElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisrZXZhbCBhY19yZXM9XCQkYXNfYWNf TGliCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2lmIGV2YWwg dGVzdCBcInhcJCIkYXNfYWNfTGliIlwiID0geCJ5ZXMiOyB0aGVuIDoKKysgIEJPT1NUX01QSV9Q WVRIT05fTElCPSItbCRheF9saWIiICBsaW5rX21waV9weXRob249InllcyIgYnJlYWsKKytlbHNl CisrICBsaW5rX21waV9weXRob249Im5vIgorK2ZpCisrCisrICAJCQkJZG9uZQorKwkJCQlpZiB0 ZXN0ICJ4JGxpbmtfbXBpX3B5dGhvbiIgPSAieG5vIjsgdGhlbgorKwkJCQkJeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9s aWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhf bGliICEiID4mNjt9CisrCQkJCWVsc2UKKysJCQkJCUJPT1NUX01QSV9QWVRIT05fTElCPSIke0JP T1NUX01QSV9QWVRIT05fTElCfSAke0JPT1NUX1NFUklBTElaQVRJT05fTElCfSIKKysJCQkJCUJP T1NUX01QSV9QWVRIT05fTElCPSIke0JPT1NUX01QSV9QWVRIT05fTElCfSAke0JPT1NUX1BZVEhP Tl9MSUJ9IgorKwkJCQkJQk9PU1RfTVBJX1BZVEhPTl9MSUI9IiR7Qk9PU1RfTVBJX1BZVEhPTl9M SUJ9ICR7Qk9PU1RfTVBJX0xJQn0iCisrCQkJCQlCT09TVF9NUElfUFlUSE9OX0xJQj0iJHtCT09T VF9NUElfUFlUSE9OX0xJQn0gJHtNUElHRU5fTElCU30iCisrCQkJCWZpCisrCQkJZmkKKysKKysj CisrIyBFbmQgb2Ygc2VjdGlvbiBvbiBzdXBwb3J0IGZvciBNUEkKKysjCisrCQkJQ1BQRkxBR1M9 IiR7Q1BQRkxBR1NfT1JJR30iCisrCQkJTERGTEFHUz0iJHtMREZMQUdTX09SSUd9IgorKworKyMK KysjIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yaworKyMKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpVbml0VGVz dEZyYW1ld29yayBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgd2hldGhlciB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxh YmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3 b3JrK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKyth Y19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+ JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9n bnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgY2F0IGNvbmZkZWZzLmggLSA8PF9B Q0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVk ZSA8Ym9vc3QvdGVzdC91bml0X3Rlc3QuaHBwPgorK2ludAorK21haW4gKCkKKyt7CisrdXNpbmcg Ym9vc3Q6OnVuaXRfdGVzdDo6dGVzdF9zdWl0ZTsKKysJCQkJCSAgICAgICAgICAgICAgICAgdGVz dF9zdWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVuaXQgdGVzdCBleGFtcGxlIDEiICk7 IHJldHVybiAwOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4 eF90cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKyAgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0 X2ZyYW1ld29yaz15ZXMKKytlbHNlCisrICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3Jr PW5vCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0LiRhY19leHQKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxB R1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFH UyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29t cGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3VuaXRf dGVzdF9mcmFtZXdvcmsiID4mNQorKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2Zy YW1ld29yayIgPiY2OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF91bml0X3Rlc3RfZnJh bWV3b3JrIiA9ICJ4eWVzIjsgdGhlbgorKworKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfQk9PU1Rf VU5JVF9URVNUX0ZSQU1FV09SSyAvKiovIiA+PmNvbmZkZWZzLmgKKysKKysJCQlCTj1ib29zdF91 bml0X3Rlc3RfZnJhbWV3b3JrCisrICAgIAkJc2F2ZWRfbGRmbGFncz0iJHtMREZMQUdTfSIKKysJ CQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0k Q0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIk Qk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJ T04gOyBkbworKyAgICAgICAgICAgICAgICBMREZMQUdTPSIke0xERkxBR1N9IC1sJGF4X2xpYiIK KysgICAgCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyB0aGUgbmFtZSBvZiB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIHRoZSBuYW1lIG9mIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFt ZXdvcmsgbGlicmFyeS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfdW5pdF90 ZXN0X2ZyYW1ld29yaytzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQ RkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhG TEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNf Y29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrICAgICAgICAgICAgICAg Y2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvdGVzdC91bml0X3Rlc3QuaHBwPgorK2ludAor K21haW4gKCkKKyt7CisrdXNpbmcgYm9vc3Q6OnVuaXRfdGVzdDo6dGVzdF9zdWl0ZTsKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9T VUlURSggIlVuaXQgdGVzdCBleGFtcGxlIDEiICk7IHJldHVybiAwOworKyAgOworKyAgcmV0dXJu IDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4g OgorKyAgbGlua190aHJlYWQ9InllcyIKKytlbHNlCisrICBsaW5rX3RocmVhZD0ibm8iCisrZmkK KytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysKKysJCQkgYWNfZXh0PWNwcAorK2Fj X2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1Mg JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRl c3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4 dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Cisr CisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogJGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID4mNQorKyRhc19lY2hvICIkYXhf Y3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPiY2OyB9CisrICAgICAgICAgICAgICAgIExE RkxBR1M9IiR7c2F2ZWRfbGRmbGFnc30iCisrCQkJICAgIGlmIHRlc3QgIngkbGlua190aHJlYWQi ID0gInh5ZXMiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICBCT09TVF9VTklUX1RFU1RfRlJB TUVXT1JLX0xJQj0iLWwkYXhfbGliIgorKworKwkJCQkJYnJlYWsKKysJCQkJZmkKKysgICAgICAg ICAgICAgIGRvbmUKKysJCQkgICAgaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhl bgorKwkJCQkgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IENvdWxk IG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3Vs ZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlmaQorKwor KworKwkJZmkKKysgICAgICAgIENQUEZMQUdTPSIkQ1BQRkxBR1NfU0FWRUQiCisrICAgICAgICBM REZMQUdTPSIkTERGTEFHU19TQVZFRCIKKysKKysJZmkKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrIyBTdXBwb3J0IGZvciBNeVNRTCBiYWNrZW5kIChDIGNsaWVu dCBBUEkpOiBodHRwOi8vd3d3Lm15c3FsLm9yZworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHdo ZXRoZXIgLS1lbmFibGUtYmFja2VuZC1teXNxbCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFi bGVfYmFja2VuZF9teXNxbCtzZXR9IiA9IHNldDsgdGhlbiA6CisrICBlbmFibGV2YWw9JGVuYWJs ZV9iYWNrZW5kX215c3FsOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAg IAkgZW5hYmxlX2JhY2tlbmRfbXlzcWw9bm8KKysgICAgICBlbHNlCisrCSBlbmFibGVfYmFja2Vu ZF9teXNxbD15ZXMKKysgICAgICBmaQorK2Vsc2UKKysgICBlbmFibGVfYmFja2VuZF9teXNxbD1u bworKworK2ZpCisrCisrCisraWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9teXNxbCIgPSAieHll cyI7IHRoZW4KKysgICBNWVNRTF9ESVJTPSJteXNxbCIKKysjICAgTVlTUUxfUkVRX1ZFUlNJT049 IjMuMC4wIgorKworKwkjCisrCSMgU2V0IHVwIGNvbmZpZ3VyZSBzY3JpcHQgbWFjcm9zCisrCSMK KysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLW15c3FsIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIk e3dpdGhfbXlzcWwrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgd2l0aHZhbD0kd2l0aF9teXNxbDsg TVlTUUxfbGliX2NoZWNrPSIkd2l0aF9teXNxbC9saWI2NC9teXNxbCAkd2l0aF9teXNxbC9saWIv bXlzcWwgJHdpdGhfbXlzcWwvbGliNjQgJHdpdGhfbXlzcWwvbGliIgorKwkJTVlTUUxfaW5jX2No ZWNrPSIkd2l0aF9teXNxbC9pbmNsdWRlICR3aXRoX215c3FsL2luY2x1ZGUvbXlzcWwiCisrCQlN WVNRTF9iaW5fY2hlY2s9IiR3aXRoX215c3FsL2JpbiIKKytlbHNlCisrICBNWVNRTF9saWJfY2hl Y2s9Ii91c3IvbGliNjQgL3Vzci9saWIgL3Vzci9saWI2NC9teXNxbCAvdXNyL2xpYi9teXNxbCAv dXNyL2xvY2FsL2xpYjY0IC91c3IvbG9jYWwvbGliIC91c3IvbG9jYWwvbGliL215c3FsIC91c3Iv bG9jYWwvbXlzcWwvbGliIC91c3IvbG9jYWwvbXlzcWwvbGliL215c3FsIC9vcHQvbXlzcWwvbGli IC9vcHQvbXlzcWwvbGliL215c3FsIgorKwkJTVlTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUv bXlzcWwgL3Vzci9sb2NhbC9pbmNsdWRlL215c3FsIC91c3IvbG9jYWwvbXlzcWwvaW5jbHVkZSAv dXNyL2xvY2FsL215c3FsL2luY2x1ZGUvbXlzcWwgL29wdC9teXNxbC9pbmNsdWRlL215c3FsIgor KwkJTVlTUUxfYmluX2NoZWNrPSIvdXNyL2JpbiAvdXNyL2xvY2FsL2JpbiAvdXNyL2xvY2FsL215 c3FsL2JpbiIKKytmaQorKworKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtbXlzcWwtbGli IHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfbXlzcWxfbGliK3NldH0iID0gc2V0OyB0aGVu IDoKKysgIHdpdGh2YWw9JHdpdGhfbXlzcWxfbGliOyBNWVNRTF9saWJfY2hlY2s9IiR3aXRoX215 c3FsX2xpYiAkd2l0aF9teXNxbF9saWIvbGliNjQgJHdpdGhfbXlzcWxfbGliL2xpYiAkd2l0aF9t eXNxbF9saWIvbGliNjQvbXlzcWwgJHdpdGhfbXlzcWxfbGliL2xpYi9teXNxbCIKKytmaQorKwor KworKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtbXlzcWwtaW5jbHVkZSB3YXMgZ2l2ZW4uCisr aWYgdGVzdCAiJHt3aXRoX215c3FsX2luY2x1ZGUrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgd2l0 aHZhbD0kd2l0aF9teXNxbF9pbmNsdWRlOyBNWVNRTF9pbmNfY2hlY2s9IiR3aXRoX215c3FsX2lu Y2x1ZGUgJHdpdGhfbXlzcWxfaW5jbHVkZS9pbmNsdWRlICR3aXRoX215c3FsX2luY2x1ZGUvaW5j bHVkZS9teXNxbCIKKytmaQorKworKworKworKyAgICAjCisrCSMgTG9vayBmb3IgTXlTUUwgQ29u ZmlndXJhdGlvbiBTY3JpcHQKKysJIworKwl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIGZvciBNeVNRTCBjb25maWd1cmF0aW9uIHNjcmlwdCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIE15U1FMIGNvbmZpZ3VyYXRpb24gc2NyaXB0Li4uICIg PiY2OyB9CisrCU1ZU1FMX0NPTkZJRz0KKysJTVlTUUxfYmluZGlyPQorKwlmb3IgbSBpbiAkTVlT UUxfYmluX2NoZWNrCisrCQlkbworKwkJCWlmIHRlc3QgLWQgIiRtIiAmJiB0ZXN0IC1mICIkbS9t eXNxbF9jb25maWciCisrCQkJdGhlbgorKwkJCQlNWVNRTF9DT05GSUc9JG0vbXlzcWxfY29uZmln CisrCQkJCU1ZU1FMX2JpbmRpcj0kbQorKwkJCWJyZWFrCisrCQlmaQorKwlkb25lCisrCisrCWlm IHRlc3QgLXogIiRNWVNRTF9iaW5kaXIiCisrCXRoZW4KKysJCWFzX2ZuX2Vycm9yICQ/ICJEaWRu J3QgZmluZCAkTVlTUUxfQ09ORklHIGJpbmFyeSBpbiAnJE1ZU1FMX2Jpbl9jaGVjayciICIkTElO RU5PIiA1CisrCWZpCisrCisrCWNhc2UgIiRNWVNRTF9iaW5kaXIiIGluCisrCQkvKiApIDs7Cisr CQkqICkgIGFzX2ZuX2Vycm9yICQ/ICJUaGUgTXlTUUwgYmluYXJ5IGRpcmVjdG9yeSAoJE1ZU1FM X2JpbmRpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLiIgIiRMSU5FTk8iIDUgOzsKKysJZXNh YworKworKwl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog JE1ZU1FMX0NPTkZJRyIgPiY1CisrJGFzX2VjaG8gIiRNWVNRTF9DT05GSUciID4mNjsgfQorKwor KyMJQUNfUEFUSF9QUk9HKE1ZU1FMX0NPTkZJRywgbXlzcWxfY29uZmlnLCAkTVlTUUxfYmluZGly KQorKworKwkjCisrCSMgRGVjaWRlIHdoaWNoIEMgQVBJIGxpYnJhcnkgdG8gdXNlLCBiYXNlZCBv biB0aHJlYWQgc3VwcG9ydAorKwkjCisrCWlmIHRlc3QgIngkYWN4X3B0aHJlYWRfb2siID0geHll cworKwl0aGVuCisrCQlNWVNRTF9DX0xJQj1teXNxbGNsaWVudF9yCisrCQlNWVNRTF9MSUJfT1BU SU9OPWxpYnNfcgorKwllbHNlCisrCQlNWVNRTF9DX0xJQj1teXNxbGNsaWVudAorKwkJTVlTUUxf TElCX09QVElPTj1saWJzCisrCWZpCisrCisrCWlmIHRlc3QgIngke01ZU1FMX0NPTkZJR30xIiA9 ICJ4MSIKKysJdGhlbgorKwkJTVlTUUxfVkVSU0lPTj1gJHtNWVNRTF9DT05GSUd9IC0tdmVyc2lv bmAKKysJCU1ZU1FMX0NGTEFHUz1gJHtNWVNRTF9DT05GSUd9IC0tY2ZsYWdzYAorKwkJTVlTUUxf TElCUz1gJHtNWVNRTF9DT05GSUd9IC0tJHtNWVNRTF9MSUJfT1BUSU9OfWAKKysJZWxzZQorKwkJ IworKwkJIyBMb29rIGZvciBNeVNRTCBDIEFQSSBsaWJyYXJ5CisrCQkjCisrCQl7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBNeVNRTCBsaWJyYXJ5 IGRpcmVjdG9yeSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIE15U1FMIGxpYnJhcnkg ZGlyZWN0b3J5Li4uICIgPiY2OyB9CisrCQlNWVNRTF9saWJkaXI9CisrCQlmb3IgbSBpbiAkTVlT UUxfbGliX2NoZWNrCisrCQlkbworKwkJCWlmIHRlc3QgLWQgIiRtIiAmJiBcCisrCQkJCSh0ZXN0 IC1mICIkbS9saWIkTVlTUUxfQ19MSUIuc28iIFwKKysJCQkJfHwgdGVzdCAtZiAiJG0vbGliJE1Z U1FMX0NfTElCLmEiKQorKwkJCXRoZW4KKysJCQkJTVlTUUxfbGliZGlyPSRtCisrCQkJCWJyZWFr CisrCQkJZmkKKysJCWRvbmUKKysKKysJCWlmIHRlc3QgLXogIiRNWVNRTF9saWJkaXIiCisrCQl0 aGVuCisrCQkJYXNfZm5fZXJyb3IgJD8gIkRpZG4ndCBmaW5kICRNWVNRTF9DX0xJQiBsaWJyYXJ5 IGluICckTVlTUUxfbGliX2NoZWNrJyIgIiRMSU5FTk8iIDUKKysJCWZpCisrCisrCQljYXNlICIk TVlTUUxfbGliZGlyIiBpbgorKwkJCS8qICkgOzsKKysJCQkqICkgIGFzX2ZuX2Vycm9yICQ/ICJU aGUgTXlTUUwgbGlicmFyeSBkaXJlY3RvcnkgKCRNWVNRTF9saWJkaXIpIG11c3QgYmUgYW4gYWJz b2x1dGUgcGF0aC4iICIkTElORU5PIiA1IDs7CisrCQllc2FjCisrCisrCQl7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJE1ZU1FMX2xpYmRpciIgPiY1Cisr JGFzX2VjaG8gIiRNWVNRTF9saWJkaXIiID4mNjsgfQorKworKyMJCWNhc2UgIiRNWVNRTF9saWJk aXIiIGluCisrIwkJICAvdXNyL2xpYikgOzsKKysjCQkgICopIExERkxBR1M9IiRMREZMQUdTIC1M JHtNWVNRTF9saWJkaXJ9IiA7OworKyMJCWVzYWMKKysKKysJCSMKKysJCSMgTG9vayBmb3IgTXlT UUwgQyBBUEkgaGVhZGVycworKwkJIworKwkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjaGVja2luZyBmb3IgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGZvciBNeVNRTCBpbmNsdWRlIGRpcmVjdG9yeS4uLiAiID4mNjsg fQorKwkJTVlTUUxfaW5jZGlyPQorKwkJZm9yIG0gaW4gJE1ZU1FMX2luY19jaGVjaworKwkJZG8K KysJCQlpZiB0ZXN0IC1kICIkbSIgJiYgdGVzdCAtZiAiJG0vbXlzcWwuaCIKKysJCQl0aGVuCisr CQkJCU1ZU1FMX2luY2Rpcj0kbQorKwkJCQlicmVhaworKwkJCWZpCisrCQlkb25lCisrCisrCQlp ZiB0ZXN0IC16ICIkTVlTUUxfaW5jZGlyIgorKwkJdGhlbgorKwkJCWFzX2ZuX2Vycm9yICQ/ICJE aWRuJ3QgZmluZCB0aGUgTXlTUUwgaW5jbHVkZSBkaXIgaW4gJyRNWVNRTF9pbmNfY2hlY2snIiAi JExJTkVOTyIgNQorKwkJZmkKKysKKysJCWNhc2UgIiRNWVNRTF9pbmNkaXIiIGluCisrCQkJIC8q ICkgOzsKKysJCQkgKiApICBhc19mbl9lcnJvciAkPyAiVGhlIE15U1FMIGluY2x1ZGUgZGlyZWN0 b3J5ICgkTVlTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiAiJExJTkVOTyIg NSA7OworKwkJZXNhYworKworKwkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6ICRNWVNRTF9pbmNkaXIiID4mNQorKyRhc19lY2hvICIkTVlTUUxfaW5jZGly IiA+JjY7IH0KKysKKysJCU1ZU1FMX1ZFUlNJT049YGdyZXAgImRlZmluZSBNWVNRTF9TRVJWRVJf VkVSU0lPTiIgJE1ZU1FMX2luY2Rpci9teXNxbF92ZXJzaW9uLmggfCBjdXQgLWRcIiAtZjJgCisr CQlNWVNRTF9DRkxBR1M9Ii1JJHtNWVNRTF9pbmNkaXJ9IgorKwkJTVlTUUxfTElCUz0iLUwke01Z U1FMX2xpYmRpcn0gLWwke01ZU1FMX0NfTElCfSIKKysJZmkKKysKKysKKysKKysKKysKKysJc2F2 ZV9MSUJTPSIkTElCUyIKKysJTElCUz0iJExJQlMgJE1ZU1FMX0xJQlMiCisrCWFzX2FjX0xpYj1g JGFzX2VjaG8gImFjX2N2X2xpYl8kTVlTUUxfQ19MSUInJ19teXNxbF9zdG9yZV9yZXN1bHQiIHwg JGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hl Y2tpbmcgZm9yIG15c3FsX3N0b3JlX3Jlc3VsdCBpbiAtbCRNWVNRTF9DX0xJQiIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIG15c3FsX3N0b3JlX3Jlc3VsdCBpbiAtbCRNWVNRTF9DX0xJ Qi4uLiAiID4mNjsgfQorK2lmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfTGliK3NldH1cIiIgPSBz ZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19j aGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWwkTVlTUUxfQ19MSUIgICRMSUJTIgor K2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29u ZmRlZnMuaC4gICovCisrCisrLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUg dG8gYXZvaWQgYW4gZXJyb3IuCisrICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2gg dGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisrICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1l bnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KKysjaWZkZWYgX19jcGx1c3BsdXMK KytleHRlcm4gIkMiCisrI2VuZGlmCisrY2hhciBteXNxbF9zdG9yZV9yZXN1bHQgKCk7CisraW50 CisrbWFpbiAoKQorK3sKKytyZXR1cm4gbXlzcWxfc3RvcmVfcmVzdWx0ICgpOworKyAgOworKyAg cmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7 IHRoZW4gOgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgZXZhbCAiJGFzX2Fj X0xpYj1ubyIKKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFj X2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2V2YWwgYWNfcmVzPVwkJGFzX2FjX0xpYgorKwkg ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRh Y19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKytpZiBldmFsIHRlc3QgXCJ4 XCQiJGFzX2FjX0xpYiJcIiA9IHgieWVzIjsgdGhlbiA6CisrICBjYXQgPj5jb25mZGVmcy5oIDw8 X0FDRU9GCisrI2RlZmluZSBgJGFzX2VjaG8gIkhBVkVfTElCJE1ZU1FMX0NfTElCIiB8ICRhc190 cl9jcHBgIDEKKytfQUNFT0YKKysKKysgIExJQlM9Ii1sJE1ZU1FMX0NfTElCICRMSUJTIgorKwor K2Vsc2UKKysgIGFzX2ZuX2Vycm9yICQ/ICJDb3VsZCBub3QgZmluZCB3b3JraW5nIE15U1FMIGNs aWVudCBsaWJyYXJ5ISIgIiRMSU5FTk8iIDUKKysKKytmaQorKworKworKwlMSUJTPSIkc2F2ZV9M SUJTIgorKworK2ZpCisrIGlmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0geHllczsg dGhlbgorKyAgSEFWRV9NWVNRTF9UUlVFPQorKyAgSEFWRV9NWVNRTF9GQUxTRT0nIycKKytlbHNl CisrICBIQVZFX01ZU1FMX1RSVUU9JyMnCisrICBIQVZFX01ZU1FMX0ZBTFNFPQorK2ZpCisrCisr I01ZU1FMX0RJUlM9Im15c3FsIgorKworKworKworKworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU3VwcG9y dCBmb3IgT3JhY2xlIGJhY2tlbmQKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHdoZXRoZXIgLS1l bmFibGUtYmFja2VuZC1vcmFjbGUgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tl bmRfb3JhY2xlK3NldH0iID0gc2V0OyB0aGVuIDoKKysgIGVuYWJsZXZhbD0kZW5hYmxlX2JhY2tl bmRfb3JhY2xlOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAgIAkgZW5h YmxlX2JhY2tlbmRfb3JhY2xlPW5vCisrICAgICAgZWxzZQorKwkgZW5hYmxlX2JhY2tlbmRfb3Jh Y2xlPXllcworKyAgICAgIGZpCisrZWxzZQorKyAgIGVuYWJsZV9iYWNrZW5kX29yYWNsZT1ubwor KworK2ZpCisrCisrCisraWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9vcmFjbGUiID0gInh5ZXMi OyB0aGVuCisrICAgT1JBQ0xFX0RJUlM9Im9yYWNsZSIKKysgICBPUkFDTEVfT0NJX1JFUV9WRVJT SU9OPSI5LjAiCisrCisrCisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1vcmFjbGUgd2FzIGdp dmVuLgorK2lmIHRlc3QgIiR7d2l0aF9vcmFjbGUrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgd2l0 aHZhbD0kd2l0aF9vcmFjbGU7CisrICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsg dGhlbgorKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9NRSI7IHRoZW4KKysgICAg ICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCisrICAgICAgICAgICAg ZWxzZQorKyAgICAgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiIKKysgICAgICAgICAgICBm aQorKyAgICAgICAgZmkKKysKKytlbHNlCisrCisrICAgICAgICBpZiB0ZXN0IC1uICIkT1JBQ0xF X0hPTUUiOyB0aGVuCisrICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUi CisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIiCisrICAgICAg ICBmaQorKworKworK2ZpCisrCisrCisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1vcmFjbGUt aW5jbHVkZSB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX29yYWNsZV9pbmNsdWRlK3NldH0i ID0gc2V0OyB0aGVuIDoKKysgIHdpdGh2YWw9JHdpdGhfb3JhY2xlX2luY2x1ZGU7IG9yYWNsZV9o b21lX2luY2x1ZGVfZGlyPSIkd2l0aHZhbCIKKytlbHNlCisrICBvcmFjbGVfaG9tZV9pbmNsdWRl X2Rpcj0iIgorKworK2ZpCisrCisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1vcmFjbGUtbGli IHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfb3JhY2xlX2xpYitzZXR9IiA9IHNldDsgdGhl biA6CisrICB3aXRodmFsPSR3aXRoX29yYWNsZV9saWI7IG9yYWNsZV9ob21lX2xpYl9kaXI9IiR3 aXRodmFsIgorK2Vsc2UKKysgIG9yYWNsZV9ob21lX2xpYl9kaXI9IiIKKysKKytmaQorKworKwor KyAgICBPUkFDTEVfT0NJX0NGTEFHUz0iIgorKyAgICBPUkFDTEVfT0NJX0xERkxBR1M9IiIKKysg ICAgT1JBQ0xFX09DSV9WRVJTSU9OPSIiCisrCisrICAgICAgICAgICAgICAgIHdhbnRfb3JhY2xl X2J1dF9ub19wYXRoPSJubyIKKysKKysgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9ob21lX2RpciI7 IHRoZW4KKysKKysgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9kaXIiICE9ICJubyIgLWEg IiRvcmFjbGVfaG9tZV9kaXIiICE9ICJ5ZXMiOyB0aGVuCisrCisrICAgICAgICAgICAgICAgICAg ICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyPSIkb3JhY2xlX2hvbWVfZGlyL3JkYm1zL3B1YmxpYyIK KysKKysgICAgICAgICAgICAgICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXIyPSIkb3JhY2xl X2hvbWVfZGlyL3JkYm1zL2RlbW8iCisrCisrICAgICAgICAgICAgICAgICAgICAgICAgb3JhY2xl X2xpYl9kaXI9IiRvcmFjbGVfaG9tZV9kaXIvbGliIgorKyAgICAgICAgZWxpZiB0ZXN0ICIkb3Jh Y2xlX2hvbWVfZGlyIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0 X25vX3BhdGg9InllcyIKKysgICAgICAgIGZpCisrCisrICAgIGVsaWYgdGVzdCAtbiAiJG9yYWNs ZV9ob21lX2luY2x1ZGVfZGlyIiAtbyAtbiAiJG9yYWNsZV9ob21lX2xpYl9kaXIiOyB0aGVuCisr CisrICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiICE9ICJubyIgLWEg IiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgIT0gInllcyI7IHRoZW4KKysgICAgICAgICAgICBv cmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIKKysgICAgICAgIGVs aWYgdGVzdCAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAg ICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKKysgICAgICAgIGZpCisrCisrICAg ICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfbGliX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9o b21lX2xpYl9kaXIiICE9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgb3JhY2xlX2xpYl9kaXI9 IiRvcmFjbGVfaG9tZV9saWJfZGlyIgorKyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVf bGliX2RpciIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19w YXRoPSJ5ZXMiCisrICAgICAgICBmaQorKyAgICBmaQorKworKyAgICBpZiB0ZXN0ICIkd2FudF9v cmFjbGVfYnV0X25vX3BhdGgiID0gInllcyI7IHRoZW4KKysgICAgICAgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogT3JhY2xlIHN1cHBvcnQgaXMgcmVx dWVzdGVkIGJ1dCBubyBPcmFjbGUgcGF0aHMgaGF2ZSBiZWVuIHByb3ZpZGVkLiBcCisrUGxlYXNl LCBsb2NhdGUgT3JhY2xlIGRpcmVjdG9yaWVzIHVzaW5nIC0td2l0aC1vcmFjbGUgb3IgXAorKy0t d2l0aC1vcmFjbGUtaW5jbHVkZSBhbmQgLS13aXRoLW9yYWNsZS1saWIgb3B0aW9ucy4iID4mNQor KyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IE9yYWNsZSBzdXBwb3J0IGlzIHJlcXVlc3RlZCBi dXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVlbiBwcm92aWRlZC4gXAorK1BsZWFzZSwgbG9jYXRl IE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAtLXdpdGgtb3JhY2xlIG9yIFwKKystLXdpdGgtb3Jh Y2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFjbGUtbGliIG9wdGlvbnMuIiA+JjI7fQorKyAgICBm aQorKworKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyIiAt YSAtbiAiJG9yYWNsZV9saWJfZGlyIjsgdGhlbgorKworKyAgICAgICAgc2F2ZWRfQ1BQRkxBR1M9 IiRDUFBGTEFHUyIKKysgICAgICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkkb3JhY2xlX2luY2x1 ZGVfZGlyIgorKworKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVf ZGlyMiI7IHRoZW4KKysgICAgICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTIC1JJG9yYWNsZV9p bmNsdWRlX2RpcjIiCisrICAgICAgICBmaQorKworKyAgICAgICAgIyBGaWd1cmUgb3V0IGlmIHdl IGFyZSBidWlsZGluZyBvbiB3aW4zMi4KKysgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAg ICAgICAgICAqbWluZ3czMiogKSBXSU4zMj15ZXMgOzsKKysgICAgICAgICAgICAqY3lnd2luKiAp ICBXSU4zMj15ZXMgOzsKKysgICAgICAgICAgICAqKSBXSU4zMj1ubyA7OworKyAgICAgICAgZXNh YworKworKyAgICAgICAgaWYgdGVzdCAiJFdJTjMyIiA9ICJubyIKKysgICAgICAgIHRoZW4KKysg ICAgICAgICAgICBvY2lfbGlicz0iLWxjbG50c2ggLWxubnoxMSIKKysgICAgICAgIGVsc2UKKysg ICAgICAgICAgICBvY2lfbGlicz0iLWxvY2kiCisrICAgICAgICBmaQorKworKyAgICAgICAgc2F2 ZWRfTERGTEFHUz0iJExERkxBR1MiCisrICAgICAgICBzYXZlZF9MSUJTPSIkTElCUyIKKysgICAg ICAgIG9jaV9sZGZsYWdzPSItTCRvcmFjbGVfbGliX2RpciIKKysgICAgICAgIExERkxBR1M9IiRM REZMQUdTICRvY2lfbGRmbGFncyIKKysgICAgICAgIExJQlM9IiRMSUJTICRvY2lfbGlicyIKKysK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIE9yYWNsZSBPQ0kgaGVhZGVycyBpbiAkb3Jh Y2xlX2luY2x1ZGVfZGlyIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgT3JhY2xlIE9D SSBoZWFkZXJzIGluICRvcmFjbGVfaW5jbHVkZV9kaXIuLi4gIiA+JjY7IH0KKysKKysgICAgICAg IGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRD WFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5r PSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4 X2NvbXBpbGVyX2dudQorKworKyAgICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29u ZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysgICAgICAgICAgICAj aW5jbHVkZSA8b2NpLmg+CisraW50CisrbWFpbiAoKQorK3sKKysKKysjaWYgZGVmaW5lZChPQ0lf TUFKT1JfVkVSU0lPTikKKysjaWYgT0NJX01BSk9SX1ZFUlNJT04gPT0gMTAgJiYgT0NJX01JTk9S X1ZFUlNJT04gPT0gMgorKy8vIE9yYWNsZSAxMC4yIGRldGVjdGVkCisrI2VuZGlmCisrI2VsaWYg ZGVmaW5lZChPQ0lfVjdfU1lOVEFYKQorKy8vIE9LLCBvbGRlciBPcmFjbGUgZGV0ZWN0ZWQKKysv LyBUT0RPIC0gbWxvc2tvdDogZmluZCBiZXR0ZXIgbWFjcm8gdG8gY2hlY2sgZm9yIG9sZGVyIHZl cnNpb25zOworKyNlbHNlCisrIyAgZXJyb3IgT3JhY2xlIG9jaS5oIGhlYWRlciBub3QgZm91bmQK KysjZW5kaWYKKysKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19m bl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKysKKysgICAgICAgICAgICBPUkFD TEVfT0NJX0NGTEFHUz0iLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgorKworKyAgICAgICAgICAgIGlm IHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIyIjsgdGhlbgorKyAgICAgICAgICAgICAgICBP UkFDTEVfT0NJX0NGTEFHUz0iJE9SQUNMRV9PQ0lfQ0ZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2Rp cjIiCisrICAgICAgICAgICAgZmkKKysKKysgICAgICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJ5 ZXMiCisrICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrCisrZWxzZQorKwor KyAgICAgICAgICAgIG9jaV9oZWFkZXJfZm91bmQ9Im5vIgorKyAgICAgICAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBub3QgZm91bmQiID4mNQor KyRhc19lY2hvICJub3QgZm91bmQiID4mNjsgfQorKworKworK2ZpCisrcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrICAgICAgICBh Y19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hY IC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0n JENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9j b21waWxlcl9nbnUKKysKKysKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRl c3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiOyB0aGVuCisrCisrICAgICAgICAgICAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgT3JhY2xl IE9DSSBsaWJyYXJpZXMgaW4gJG9yYWNsZV9saWJfZGlyIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyBmb3IgT3JhY2xlIE9DSSBsaWJyYXJpZXMgaW4gJG9yYWNsZV9saWJfZGlyLi4uICIgPiY2 OyB9CisrCisrICAgICAgICAgICAgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxB R1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFH UyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29t cGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrICAgICAgICAgICAgY2F0IGNv bmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KKysKKysgICAgICAgICAgICAgICAgI2luY2x1ZGUgPG9jaS5oPgorK2ludAorK21haW4g KCkKKyt7CisrCisrT0NJRW52KiBlbnZoID0gMDsKKytPQ0lFbnZDcmVhdGUoJmVudmgsIE9DSV9E RUZBVUxULCAwLCAwLCAwLCAwLCAwLCAwKTsKKytpZiAoZW52aCkgT0NJSGFuZGxlRnJlZShlbnZo LCBPQ0lfSFRZUEVfRU5WKTsKKysKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YK KytpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKysKKysgICAgICAgICAg ICAgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIkb2NpX2xkZmxhZ3MgJG9jaV9saWJzIgorKyAgICAg ICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJ5ZXMiCisrICAgICAgICAgICAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19l Y2hvICJ5ZXMiID4mNjsgfQorKworK2Vsc2UKKysKKysgICAgICAgICAgICAgICAgb2NpX2xpYl9m b3VuZD0ibm8iCisrICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiBub3QgZm91bmQiID4mNQorKyRhc19lY2hvICJub3QgZm91bmQi ID4mNjsgfQorKworKworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBcCisrICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrICAg ICAgICAgICAgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29t cGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1Jwor K2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1Mg JExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRh Y19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrICAgICAgICBmaQorKworKyAgICAgICAgQ1BQRkxB R1M9IiRzYXZlZF9DUFBGTEFHUyIKKysgICAgICAgIExERkxBR1M9IiRzYXZlZF9MREZMQUdTIgor KyAgICAgICAgTElCUz0iJHNhdmVkX0xJQlMiCisrICAgIGZpCisrCisrICAgICAgICAgICAgICAg IG9yYWNsZV92ZXJzaW9uX3JlcT0kT1JBQ0xFX09DSV9SRVFfVkVSU0lPTgorKworKyAgICBpZiB0 ZXN0ICIkb2NpX2hlYWRlcl9mb3VuZCIgPSAieWVzIiAtYSAiJG9jaV9saWJfZm91bmQiID0gInll cyIgLWEgXAorKyAgICAgICAgLW4gIiRvcmFjbGVfdmVyc2lvbl9yZXEiOyB0aGVuCisrCisrICAg ICAgICBvcmFjbGVfdmVyc2lvbl9tYWpvcj1gY2F0ICRvcmFjbGVfaW5jbHVkZV9kaXIvb2NpLmgg XAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBncmVwICcjZGVmaW5lLipPQ0lfTUFK T1JfVkVSU0lPTi4qJyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAn cy8jZGVmaW5lIE9DSV9NQUpPUl9WRVJTSU9OICAqLy8nIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgc2VkIC1lICdzLyAgKlwvXCouKlwqXC8vLydgCisrCisrICAgICAgICBvcmFj bGVfdmVyc2lvbl9taW5vcj1gY2F0ICRvcmFjbGVfaW5jbHVkZV9kaXIvb2NpLmggXAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCBncmVwICcjZGVmaW5lLipPQ0lfTUlOT1JfVkVSU0lP Ti4qJyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8jZGVmaW5l IE9DSV9NSU5PUl9WRVJTSU9OICAqLy8nIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgc2VkIC1lICdzLyAgKlwvXCouKlwqXC8vLydgCisrCisrICAgICAgICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmIE9yYWNsZSBPQ0kgdmVyc2lv biBpcyA+PSAkb3JhY2xlX3ZlcnNpb25fcmVxIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBp ZiBPcmFjbGUgT0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcS4uLiAiID4mNjsg fQorKworKyAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV92ZXJzaW9uX21ham9yIiAtYSAtbiAk Im9yYWNsZV92ZXJzaW9uX21pbm9yIjsgdGhlbgorKworKyAgICAgICAgICAgIE9SQUNMRV9PQ0lf VkVSU0lPTj0iJG9yYWNsZV92ZXJzaW9uX21ham9yLiRvcmFjbGVfdmVyc2lvbl9taW5vciIKKysK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFf bWFqb3I9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwpJ2AKKysgICAgICAg ICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcSA6 ICdbMC05XSpcLlwoWzAtOV0qXCknYAorKworKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3Jl cV9udW1iZXI9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkb3JhY2xlX3ZlcnNpb25f cmVxX21pbm9yIFwqIDEwMDBgCisrCisrICAgICAgICAgICAgICAgICAgICAgICAgb3JhY2xlX3Zl cnNpb25fbnVtYmVyPWBleHByICRvcmFjbGVfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX21pbm9y IFwqIDEwMDBgCisrCisrICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fY2hlY2s9YGV4cHIgJG9y YWNsZV92ZXJzaW9uX251bWJlciBcPlw9ICRvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyYAorKyAg ICAgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KKysg ICAgICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrCisrJGFzX2VjaG8gIiNk ZWZpbmUgSEFWRV9PUkFDTEUgMSIgPj5jb25mZGVmcy5oCisrCisrICAgICAgICAgICAgZWxzZQor KyAgICAgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICAgICAgICAgICAgICAg IGFzX2ZuX2Vycm9yICQ/ICJPcmFjbGUgJE9SQUNMRV9PQ0lfVkVSU0lPTiBmb3VuZCwgYnV0IHJl cXVpcmVkIHZlcnNpb24gaXMgJG9yYWNsZV92ZXJzaW9uX3JlcSIgIiRMSU5FTk8iIDUKKysgICAg ICAgICAgICBmaQorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIE9SQUNMRV9PQ0lfVkVSU0lP Tj0iVU5LTk9XTiIKKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICAgICAg ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBP cmFjbGUgdmVyc2lvbiB1bmtub3duLCBwcm9iYWJseSBPQ0kgb2xkZXIgdGhhbiAxMC4yIGlzIGF2 YWlsYWJsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogT3JhY2xlIHZlcnNpb24g dW5rbm93biwgcHJvYmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBhdmFpbGFibGUiID4mMjt9 CisrICAgICAgICBmaQorKyAgICBmaQorKworKworKworKworKworK2ZpCisrIGlmIHRlc3QgIngk ZW5hYmxlX2JhY2tlbmRfb3JhY2xlIiA9IHh5ZXM7IHRoZW4KKysgIEhBVkVfT1JBQ0xFX1RSVUU9 CisrICBIQVZFX09SQUNMRV9GQUxTRT0nIycKKytlbHNlCisrICBIQVZFX09SQUNMRV9UUlVFPScj JworKyAgSEFWRV9PUkFDTEVfRkFMU0U9CisrZmkKKysKKysjT1JBQ0xFX0RJUlM9Im9yYWNsZSIK KysKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIFBvc3RncmVTUUwgYmFja2Vu ZAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1iYWNrZW5kLXBvc3Rn cmVzcWwgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCtz ZXR9IiA9IHNldDsgdGhlbiA6CisrICBlbmFibGV2YWw9JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVz cWw7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrICAgICAgCSBlbmFibGVfYmFj a2VuZF9wb3N0Z3Jlc3FsPW5vCisrICAgICAgZWxzZQorKwkgZW5hYmxlX2JhY2tlbmRfcG9zdGdy ZXNxbD15ZXMKKysgICAgICBmaQorK2Vsc2UKKysgICBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3Fs PW5vCisrCisrZmkKKysKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwi ID0gInh5ZXMiOyB0aGVuCisrICAgUE9TVEdSRVNRTF9ESVJTPSJwb3N0Z3Jlc3FsIgorKyAgIFBP U1RHUkVTUUxfUkVRX1ZFUlNJT049IjcuMS40IgorKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdp dGgtcG9zdGdyZXNxbCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX3Bvc3RncmVzcWwrc2V0 fSIgPSBzZXQ7IHRoZW4gOgorKyAgd2l0aHZhbD0kd2l0aF9wb3N0Z3Jlc3FsOworKwlQT1NUR1JF U1FMX2luY19jaGVjaz0iJHdpdGhfcG9zdGdyZXNxbC9pbmNsdWRlIgorKyAgICAgICAgaWYgdGVz dCAiJHdpdGh2YWwiID0gIm5vIjsgdGhlbgorKyAgICAgICAgICAgIHdhbnRfcG9zdGdyZXNxbD0i bm8iCisrICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAg ICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAg d2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCisrICAgICAgICAgICAgUEdfQ09ORklHPSIkd2l0aHZhbCIK KysgICAgICAgIGZpCisrCisrZWxzZQorKyAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCisrCVBPU1RH UkVTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9sb2NhbCAvb3B0IgorKworK2ZpCisr CisrCisrICAgIFBPU1RHUkVTUUxfQ0ZMQUdTPSIiCisrICAgIFBPU1RHUkVTUUxfTERGTEFHUz0i IgorKyAgICBQT1NUR1JFU1FMX1BPU1RHUkVTUUw9IiIKKysKKysKKysgICAgaWYgdGVzdCAiJHdh bnRfcG9zdGdyZXNxbCIgPSAieWVzIjsgdGhlbgorKworKyAgICAgICAgaWYgdGVzdCAteiAiJFBH X0NPTkZJRyIgLW8gdGVzdDsgdGhlbgorKyAgICAgICAgICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAicGdfY29uZmlnIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn cy4KKytzZXQgZHVtbXkgcGdfY29uZmlnOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNf Y3ZfcGF0aF9QR19DT05GSUcrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXNlICRQR19DT05GSUcgaW4KKysgIFtcXC9dKiB8ID86 W1xcL10qKQorKyAgYWNfY3ZfcGF0aF9QR19DT05GSUc9IiRQR19DT05GSUciICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorKyAgOzsKKysgICopCisrICBhc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAor K2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsg ZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFz X3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNf Y3ZfcGF0aF9QR19DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCisrICAgICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKysgIGRvbmUK KytJRlM9JGFzX3NhdmVfSUZTCisrCisrICA7OworK2VzYWMKKytmaQorK1BHX0NPTkZJRz0kYWNf Y3ZfcGF0aF9QR19DT05GSUcKKytpZiB0ZXN0IC1uICIkUEdfQ09ORklHIjsgdGhlbgorKyAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRQR19DT05GSUci ID4mNQorKyRhc19lY2hvICIkUEdfQ09ORklHIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hv ICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgICAgICAgIGZpCisrCisrICAgICAgICBpZiB0ZXN0 ICEgLXggIiRQR19DT05GSUciOyB0aGVuCisrICAgICAgICAgICAgYXNfZm5fZXJyb3IgJD8gIiRQ R19DT05GSUcgZG9lcyBub3QgZXhpc3Qgb3IgaXQgaXMgbm90IGFuIGV4ZWN0dWFibGUgZmlsZSIg IiRMSU5FTk8iIDUKKysgICAgICAgICAgICBQR19DT05GSUc9Im5vIgorKyAgICAgICAgICAgIGZv dW5kX3Bvc3RncmVzcWw9Im5vIgorKyAgICAgICAgZmkKKysKKysgICAgICAgIGlmIHRlc3QgIiRQ R19DT05GSUciICE9ICJubyI7IHRoZW4KKysgICAgICAgICAgICAjCisrICAgICAgICAgICAgIyBM b29rIGZvciBQb3N0Z3Jlc3FsIEMgQVBJIGhlYWRlcnMKKysgICAgICAgICAgICAjCisrICAgICAg ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBm b3IgUG9zdGdyZXNxbCBpbmNsdWRlIGRpcmVjdG9yeSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yIFBvc3RncmVzcWwgaW5jbHVkZSBkaXJlY3RvcnkuLi4gIiA+JjY7IH0KKysgICAgICAg ICAgICBQT1NUR1JFU1FMX2luY2Rpcj0KKysgICAgICAgICAgICBmb3IgcG9zdGdyZXNxbF9pbmNf ZGlyIGluICRQT1NUR1JFU1FMX2luY19jaGVjaworKyAgICAgICAgICAgIGRvCisrICAgICAgICAg ICAgICAgIGlmIHRlc3QgLWQgIiRwb3N0Z3Jlc3FsX2luY19kaXIiIFwKKysgICAgICAgICAgICAg ICAgJiYgdGVzdCAtZiAiJHBvc3RncmVzcWxfaW5jX2Rpci9wb3N0Z3Jlc19leHQuaCIKKysgICAg ICAgICAgICAgICAgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgUE9TVEdSRVNRTF9pbmNkaXI9 JHBvc3RncmVzcWxfaW5jX2RpcgorKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKysgICAgICAg ICAgICAgICAgZmkKKysgICAgICAgICAgICBkb25lCisrCisrICAgICAgICAgICAgaWYgdGVzdCAt eiAiJFBPU1RHUkVTUUxfaW5jZGlyIgorKyAgICAgICAgICAgIHRoZW4KKysgICAgICAgICAgICAg ICAgYXNfZm5fZXJyb3IgJD8gIkRpZG4ndCBmaW5kIHRoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGly IGluICckUE9TVEdSRVNRTF9pbmNfY2hlY2snIiAiJExJTkVOTyIgNQorKyAgICAgICAgICAgIGZp CisrCisrICAgICAgICAgICAgY2FzZSAiJFBPU1RHUkVTUUxfaW5jZGlyIiBpbgorKyAgICAgICAg ICAgICAgICAvKiApIDs7CisrICAgICAgICAgICAgICAgICogKSAgYXNfZm5fZXJyb3IgJD8gIlRo ZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3Qg YmUgYW4gYWJzb2x1dGUgcGF0aC4iICIkTElORU5PIiA1IDs7CisrICAgICAgICAgICAgZXNhYwor KworKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog cmVzdWx0OiAkUE9TVEdSRVNRTF9pbmNkaXIiID4mNQorKyRhc19lY2hvICIkUE9TVEdSRVNRTF9p bmNkaXIiID4mNjsgfQorKworKyAgICAgICAgICAgIGlmIHRlc3QgIiRQT1NUR1JFU1FMX2luY2Rp ciIgPSAiL3Vzci9pbmNsdWRlIjsgdGhlbgorKyAgICAgICAgICAgICAgUE9TVEdSRVNRTF9DRkxB R1M9IiIKKysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFH Uz0iLUkke1BPU1RHUkVTUUxfaW5jZGlyfSIKKysgICAgICAgICAgICBmaQorKworKyAgICAgICAg ICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iLUxgJFBHX0NPTkZJRyAtLWxpYmRpcmAgLWxwcSIKKysK KysgICAgICAgICAgICBQT1NUR1JFU1FMX1ZFUlNJT049YCRQR19DT05GSUcgLS12ZXJzaW9uIHwg c2VkIC1lICdzI1Bvc3RncmVTUUwgIyMnYAorKworKworKyRhc19lY2hvICIjZGVmaW5lIEhBVkVf UE9TVEdSRVNRTCAxIiA+PmNvbmZkZWZzLmgKKysKKysKKysgICAgICAgICAgICBmb3VuZF9wb3N0 Z3Jlc3FsPSJ5ZXMiCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNx bD0ibm8iCisrICAgICAgICBmaQorKyAgICBmaQorKworKworKworKyAgICBwb3N0Z3Jlc3FsX3Zl cnNpb25fcmVxPSRQT1NUR1JFU1FMX1JFUV9WRVJTSU9OCisrCisrICAgIGlmIHRlc3QgIiRmb3Vu ZF9wb3N0Z3Jlc3FsIiA9ICJ5ZXMiIC1hIC1uICIkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSI7IHRo ZW4KKysKKysgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgaWYgUG9zdGdyZVNRTCB2ZXJzaW9uIGlzID49ICRwb3N0Z3Jlc3FsX3ZlcnNpb25f cmVxIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiBQb3N0Z3JlU1FMIHZlcnNpb24gaXMg Pj0gJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0KKysKKysgICAgICAgICAgICAg ICAgICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRwb3N0Z3Jlc3Fs X3ZlcnNpb25fcmVxIDogJ1woWzAtOV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9u X3JlcV9taW5vcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAt OV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybz1gZXhwciAkcG9z dGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlswLTldKlwuXChbMC05XSpcKSdgCisrICAg ICAgICBpZiB0ZXN0ICJ4JHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm8iID0gIngiOyB0aGVu CisrICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybz0iMCIKKysgICAgICAg IGZpCisrCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcj1gZXhwciAkcG9z dGdyZXNxbF92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEw MDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxf dmVyc2lvbl9yZXFfbWljcm9gCisrCisrICAgICAgICAgICAgICAgICAgICAgICAgcG9zdGdyZXNx bF92ZXJzaW9uX21ham9yPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnXChbMC05XSpcKSdg CisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3I9YGV4cHIgJFBPU1RHUkVTUUxfVkVS U0lPTiA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9u X21pY3JvPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnWzAtOV0qXC5bMC05XSpcLlwoWzAt OV0qXCknYAorKyAgICAgICAgaWYgdGVzdCAieCRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm8iID0g IngiOyB0aGVuCisrICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvPSIwIgorKyAg ICAgICAgZmkKKysKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9udW1iZXI9YGV4cHIgJHBv c3RncmVzcWxfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3IgXCogMTAwMCBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9u X21pY3JvYAorKworKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX2NoZWNrPWBleHByICRwb3N0 Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyIFw+XD0gJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbnVtYmVy YAorKyAgICAgICAgaWYgdGVzdCAiJHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRo ZW4KKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKysgICAgICAgIGVsc2UK KysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICAgICAgICBmaQorICAgICBm aQorKworKworKworKworKworK2ZpCisrIGlmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfcG9zdGdy ZXNxbCIgPSB4eWVzOyB0aGVuCisrICBIQVZFX1BPU1RHUkVTUUxfVFJVRT0KKysgIEhBVkVfUE9T VEdSRVNRTF9GQUxTRT0nIycKKytlbHNlCisrICBIQVZFX1BPU1RHUkVTUUxfVFJVRT0nIycKKysg IEhBVkVfUE9TVEdSRVNRTF9GQUxTRT0KKytmaQorKworKyNQT1NUR1JFU1FMX0RJUlM9InBvc3Rn cmVzcWwiCisrCisrCisrCisrCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBTdXBwb3J0IGZvciBkb2N1bWVu dGF0aW9uCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVja3MgZm9yIGRvY3VtZW50YXRpb24gYnVpbGQg dG9vbHMKKysjQUNfQ0hFQ0tfUFJPRyhbdGV4aW5mb19va10sIFt0ZXhpbmZvXSwgW3llc10sIFtu b10pCisrI2lmIHRlc3QgIngkZW5hYmxlX2luZm9fZG9jIiAhPSB4bm87IHRoZW4KKysjICB0ZXN0 ICJ4JHRleGluZm9fb2siICE9IHh5ZXMgJiYgZW5hYmxlX2luZm9fZG9jPW5vCisrIyAgQUNfUEFU SF9QUk9HKFtQRVJMXSwgW3BlcmxdLCBbXSkKKysjZmkKKysgaWYgdGVzdCAieCRlbmFibGVfaW5m b19kb2MiID0geHllczsgdGhlbgorKyAgSU5GT19ET0NfVFJVRT0KKysgIElORk9fRE9DX0ZBTFNF PScjJworK2Vsc2UKKysgIElORk9fRE9DX1RSVUU9JyMnCisrICBJTkZPX0RPQ19GQUxTRT0KKytm aQorKworKworKyMgQ2hlY2tzIGZvciBkb2N1bWVudGF0aW9uIGJ1aWxkIHRvb2xzCisrIyBFeHRy YWN0IHRoZSBmaXJzdCB3b3JkIG9mICJkb3h5Z2VuIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBu YW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgZG94eWdlbjsgYWNfd29yZD0kMgorK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+ JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0 ZXN0ICIke2FjX2N2X3Byb2dfZG94eWdlbl9vaytzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRkb3h5Z2VuX29r IjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19kb3h5Z2VuX29rPSIkZG94eWdlbl9vayIgIyBMZXQgdGhl IHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0k UEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2 ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2RveHlnZW5fb2s9 InllcyIKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQg JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisr ZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9w cm9nX2RveHlnZW5fb2siICYmIGFjX2N2X3Byb2dfZG94eWdlbl9vaz0ibm8iCisrZmkKKytmaQor K2RveHlnZW5fb2s9JGFjX2N2X3Byb2dfZG94eWdlbl9vaworK2lmIHRlc3QgLW4gIiRkb3h5Z2Vu X29rIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6ICRkb3h5Z2VuX29rIiA+JjUKKyskYXNfZWNobyAiJGRveHlnZW5fb2siID4mNjsgfQor K2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyMgRXh0cmFjdCB0 aGUgZmlyc3Qgd29yZCBvZiAibGF0ZXgiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmdzLgorK3NldCBkdW1teSBsYXRleDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2Fj X2N2X3Byb2dfbGF0ZXhfb2src2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkbGF0ZXhfb2siOyB0aGVuCisrICBh Y19jdl9wcm9nX2xhdGV4X29rPSIkbGF0ZXhfb2siICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRo ZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisr Zm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16 ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4 ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19sYXRleF9vaz0ieWVzIgorKyAgICAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrICBkb25lCisrSUZT PSRhc19zYXZlX0lGUworKworKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfbGF0ZXhfb2siICYmIGFj X2N2X3Byb2dfbGF0ZXhfb2s9Im5vIgorK2ZpCisrZmkKKytsYXRleF9vaz0kYWNfY3ZfcHJvZ19s YXRleF9vaworK2lmIHRlc3QgLW4gIiRsYXRleF9vayI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbGF0ZXhfb2siID4mNQorKyRhc19l Y2hvICIkbGF0ZXhfb2siID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0K KytmaQorKworKworKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZHZpcHMiLCBzbyBpdCBj YW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBkdmlwczsgYWNfd29y ZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfZHZpcHNfb2src2V0fSIgPSBzZXQ7IHRo ZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1u ICIkZHZpcHNfb2siOyB0aGVuCisrICBhY19jdl9wcm9nX2R2aXBzX29rPSIkZHZpcHNfb2siICMg TGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZT OyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9 JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3Ig YWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsg dGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19kdmlw c19vaz0ieWVzIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAg ZmkKKytkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgdGVzdCAteiAiJGFj X2N2X3Byb2dfZHZpcHNfb2siICYmIGFjX2N2X3Byb2dfZHZpcHNfb2s9Im5vIgorK2ZpCisrZmkK Kytkdmlwc19vaz0kYWNfY3ZfcHJvZ19kdmlwc19vaworK2lmIHRlc3QgLW4gIiRkdmlwc19vayI7 IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkZHZpcHNfb2siID4mNQorKyRhc19lY2hvICIkZHZpcHNfb2siID4mNjsgfQorK2Vsc2UKKysg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1 CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAiZ3MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3Nl dCBkdW1teSBnczsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfZ3Nfb2sr c2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICBpZiB0ZXN0IC1uICIkZ3Nfb2siOyB0aGVuCisrICBhY19jdl9wcm9nX2dzX29rPSIkZ3Nf b2siICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lG Uz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisr ICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAg ICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysg IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf eCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJv Z19nc19vaz0ieWVzIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgor KyAgZmkKKytkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgdGVzdCAteiAi JGFjX2N2X3Byb2dfZ3Nfb2siICYmIGFjX2N2X3Byb2dfZ3Nfb2s9Im5vIgorK2ZpCisrZmkKKytn c19vaz0kYWNfY3ZfcHJvZ19nc19vaworK2lmIHRlc3QgLW4gIiRnc19vayI7IHRoZW4KKysgIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkZ3Nfb2siID4m NQorKyRhc19lY2hvICIkZ3Nfb2siID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+ JjY7IH0KKytmaQorKworKworK2lmIHRlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiAhPSB4bm87IHRo ZW4KKysgIHRlc3QgIngkZG94eWdlbl9vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8K KysgIHRlc3QgIngkbGF0ZXhfb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCisrICB0 ZXN0ICJ4JGR2aXBzX29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubworKyAgdGVzdCAi eCRnc19vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KKysgICMgRXh0cmFjdCB0aGUg Zmlyc3Qgd29yZCBvZiAicGVybCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCisrc2V0IGR1bW15IHBlcmw7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9w YXRoX1BFUkwrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICBjYXNlICRQRVJMIGluCisrICBbXFwvXSogfCA/OltcXC9dKikKKysgIGFj X2N2X3BhdGhfUEVSTD0iJFBFUkwiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdp dGggYSBwYXRoLgorKyAgOzsKKysgICopCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhf U0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZT CisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQg aW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcGF0aF9QRVJMPSIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IgorKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJl YWsgMgorKyAgZmkKKytkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgOzsK Kytlc2FjCisrZmkKKytQRVJMPSRhY19jdl9wYXRoX1BFUkwKKytpZiB0ZXN0IC1uICIkUEVSTCI7 IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkUEVSTCIgPiY1CisrJGFzX2VjaG8gIiRQRVJMIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19l Y2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytmaQorKyBpZiB0ZXN0ICJ4JGVuYWJsZV9odG1s X2RvYyIgPSB4eWVzOyB0aGVuCisrICBIVE1MX0RPQ19UUlVFPQorKyAgSFRNTF9ET0NfRkFMU0U9 JyMnCisrZWxzZQorKyAgSFRNTF9ET0NfVFJVRT0nIycKKysgIEhUTUxfRE9DX0ZBTFNFPQorK2Zp CisrCisrCisrCisrIyBDaGVjayBmb3IgZGlmZiBwcm9ncmFtIHVzZWQgZm9yIHRlc3RzCisrIyBF eHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJkaWZmIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBu YW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgZGlmZjsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2FjX2N2X3Byb2dfZGlmZl9vaytzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRkaWZmX29rIjsgdGhlbgor KyAgYWNfY3ZfcHJvZ19kaWZmX29rPSIkZGlmZl9vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK Kytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3Qg LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNf ZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2RpZmZfb2s9InllcyIKKysgICAgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lG Uz0kYXNfc2F2ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9nX2RpZmZfb2siICYmIGFj X2N2X3Byb2dfZGlmZl9vaz0ibm8iCisrZmkKKytmaQorK2RpZmZfb2s9JGFjX2N2X3Byb2dfZGlm Zl9vaworK2lmIHRlc3QgLW4gIiRkaWZmX29rIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRkaWZmX29rIiA+JjUKKyskYXNfZWNobyAi JGRpZmZfb2siID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQor KworKworKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAic2VkIiwgc28gaXQgY2FuIGJlIGEg cHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgc2VkOyBhY193b3JkPSQyCisreyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dv cmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQor K2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19zZWRfb2src2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkc2VkX29rIjsg dGhlbgorKyAgYWNfY3ZfcHJvZ19zZWRfb2s9IiRzZWRfb2siICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19zZWRfb2s9InllcyIKKysgICAgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQor K0lGUz0kYXNfc2F2ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9nX3NlZF9vayIgJiYg YWNfY3ZfcHJvZ19zZWRfb2s9Im5vIgorK2ZpCisrZmkKKytzZWRfb2s9JGFjX2N2X3Byb2dfc2Vk X29rCisraWYgdGVzdCAtbiAiJHNlZF9vayI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkc2VkX29rIiA+JjUKKyskYXNfZWNobyAiJHNl ZF9vayIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisr CisrZW5hYmxlX3Rlc3RzPXllcworK3Rlc3QgIngkZGlmZl9vayIgIT0geHllcyAmJiBlbmFibGVf dGVzdHM9bm8KKyt0ZXN0ICJ4JHNlZF9vayIgIT0geHllcyAmJiBlbmFibGVfdGVzdHM9bm8KKysg aWYgdGVzdCAieCRlbmFibGVfdGVzdHMiID0geHllczsgdGhlbgorKyAgUlVOX1RFU1RTX1RSVUU9 CisrICBSVU5fVEVTVFNfRkFMU0U9JyMnCisrZWxzZQorKyAgUlVOX1RFU1RTX1RSVUU9JyMnCisr ICBSVU5fVEVTVFNfRkFMU0U9CisrZmkKKysKKysKKysKKysjIENoZWNrcyBmb3IgaGVhZGVyIGZp bGVzCisrCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IEFOU0kgQyBoZWFkZXIgZmlsZXMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2hlYWRl cl9zdGRjK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8c3RkbGliLmg+CisrI2luY2x1ZGUg PHN0ZGFyZy5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysjaW5jbHVkZSA8ZmxvYXQuaD4KKysK KytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgor K2lmIGFjX2ZuX2N4eF90cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKyAgYWNfY3ZfaGVh ZGVyX3N0ZGM9eWVzCisrZWxzZQorKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KKytmaQorK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAor KworK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisrICAjIFN1bk9TIDQu eCBzdHJpbmcuaCBkb2VzIG5vdCBkZWNsYXJlIG1lbSosIGNvbnRyYXJ5IHRvIEFOU0kuCisrICBj YXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZk ZWZzLmguICAqLworKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysKKytfQUNFT0YKKytpZiAoZXZhbCAi JGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8CisrICAkRUdSRVAgIm1lbWNociIgPi9k ZXYvbnVsbCAyPiYxOyB0aGVuIDoKKysKKytlbHNlCisrICBhY19jdl9oZWFkZXJfc3RkYz1ubwor K2ZpCisrcm0gLWYgY29uZnRlc3QqCisrCisrZmkKKysKKytpZiB0ZXN0ICRhY19jdl9oZWFkZXJf c3RkYyA9IHllczsgdGhlbgorKyAgIyBJU0MgMi4wLjIgc3RkbGliLmggZG9lcyBub3QgZGVjbGFy ZSBmcmVlLCBjb250cmFyeSB0byBBTlNJLgorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+ Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8c3Rk bGliLmg+CisrCisrX0FDRU9GCisraWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIp IDI+JjUgfAorKyAgJEVHUkVQICJmcmVlIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOgorKworK2Vs c2UKKysgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBjb25mdGVzdCoKKysKKytm aQorKworK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisrICAjIC9iaW4v Y2MgaW4gSXJpeC00LjAuNSBnZXRzIG5vbi1BTlNJIGN0eXBlIG1hY3JvcyB1bmxlc3MgdXNpbmcg LWFuc2kuCisrICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6CisrICA6 CisrZWxzZQorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Y3R5cGUuaD4KKysjaW5jbHVkZSA8 c3RkbGliLmg+CisrI2lmICgoJyAnICYgMHgwRkYpID09IDB4MDIwKQorKyMgZGVmaW5lIElTTE9X RVIoYykgKCdhJyA8PSAoYykgJiYgKGMpIDw9ICd6JykKKysjIGRlZmluZSBUT1VQUEVSKGMpIChJ U0xPV0VSKGMpID8gJ0EnICsgKChjKSAtICdhJykgOiAoYykpCisrI2Vsc2UKKysjIGRlZmluZSBJ U0xPV0VSKGMpIFwKKysJCSAgICgoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ2knKSBcCisrCQkgICAg IHx8ICgnaicgPD0gKGMpICYmIChjKSA8PSAncicpIFwKKysJCSAgICAgfHwgKCdzJyA8PSAoYykg JiYgKGMpIDw9ICd6JykpCisrIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICgoYykg fCAweDQwKSA6IChjKSkKKysjZW5kaWYKKysKKysjZGVmaW5lIFhPUihlLCBmKSAoKChlKSAmJiAh KGYpKSB8fCAoIShlKSAmJiAoZikpKQorK2ludAorK21haW4gKCkKKyt7CisrICBpbnQgaTsKKysg IGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykKKysgICAgaWYgKFhPUiAoaXNsb3dlciAoaSksIElT TE9XRVIgKGkpKQorKwl8fCB0b3VwcGVyIChpKSAhPSBUT1VQUEVSIChpKSkKKysgICAgICByZXR1 cm4gMjsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X3J1biAi JExJTkVOTyI7IHRoZW4gOgorKworK2Vsc2UKKysgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkK KytybSAtZiBjb3JlICouY29yZSBjb3JlLmNvbmZ0ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0 ZXN0JGFjX2V4ZWV4dCBcCisrICBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LmJlYW0gY29u ZnRlc3QuJGFjX2V4dAorK2ZpCisrCisrZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNQorKyRhc19l Y2hvICIkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNjsgfQorK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9z dGRjID0geWVzOyB0aGVuCisrCisrJGFzX2VjaG8gIiNkZWZpbmUgU1REQ19IRUFERVJTIDEiID4+ Y29uZmRlZnMuaAorKworK2ZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHRpbWUuaCBhbmQgc3lzL3RpbWUuaCBtYXkgYm90aCBi ZSBpbmNsdWRlZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aW1lLmggYW5k IHN5cy90aW1lLmggbWF5IGJvdGggYmUgaW5jbHVkZWQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2FjX2N2X2hlYWRlcl90aW1lK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRl c3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CisrI2luY2x1ZGUgPHN5cy90aW1lLmg+CisrI2luY2x1ZGUgPHRpbWUuaD4KKysKKytpbnQK KyttYWluICgpCisreworK2lmICgoc3RydWN0IHRtICopIDApCisrcmV0dXJuIDA7CisrICA7Cisr ICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisraWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElO RU5PIjsgdGhlbiA6CisrICBhY19jdl9oZWFkZXJfdGltZT15ZXMKKytlbHNlCisrICBhY19jdl9o ZWFkZXJfdGltZT1ubworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X2hlYWRlcl90aW1lIiA+JjUKKyskYXNfZWNo byAiJGFjX2N2X2hlYWRlcl90aW1lIiA+JjY7IH0KKytpZiB0ZXN0ICRhY19jdl9oZWFkZXJfdGlt ZSA9IHllczsgdGhlbgorKworKyRhc19lY2hvICIjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAx IiA+PmNvbmZkZWZzLmgKKysKKytmaQorKworK2ZvciBhY19oZWFkZXIgaW4gY21hdGggXAorKyAg ZGVxdWUgXAorKyAgZnN0cmVhbSBcCisrICBpb21hbmlwIFwKKysgIGlvc3RyZWFtIFwKKysgIHNz dHJlYW0gXAorKyAgbGltaXRzIFwKKysgIGxpc3QgXAorKyAgc2V0IFwKKysgIHZlY3RvciBcCisr ICBtYXAgXAorKyAgcXVldWUgXAorKyAgc3RkZXhjZXB0IFwKKysgIHN0cmluZworK2RvIDoKKysg IGFzX2FjX0hlYWRlcj1gJGFzX2VjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190 cl9zaGAKKythY19mbl9jeHhfY2hlY2tfaGVhZGVyX21vbmdyZWwgIiRMSU5FTk8iICIkYWNfaGVh ZGVyIiAiJGFzX2FjX0hlYWRlciIgIiRhY19pbmNsdWRlc19kZWZhdWx0IgorK2lmIGV2YWwgdGVz dCBcInhcJCIkYXNfYWNfSGVhZGVyIlwiID0geCJ5ZXMiOyB0aGVuIDoKKysgIGNhdCA+PmNvbmZk ZWZzLmggPDxfQUNFT0YKKysjZGVmaW5lIGAkYXNfZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRh c190cl9jcHBgIDEKKytfQUNFT0YKKysKKytmaQorKworK2RvbmUKKysKKysKKysKKysjIERlZmlu ZSBjb25maWd1cmVkIGZpbGVzCisrYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1h a2VmaWxlIHNvY2ktY29uZmlnIHNvY2kucGMgc29jaS9NYWtlZmlsZSBzb2NpL2NvcmUvTWFrZWZp bGUgc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9NYWtlZmlsZSBzb2NpL2Jh Y2tlbmRzL215c3FsL01ha2VmaWxlIHNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZSBz b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Rlc3QvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUgc29jaS9iYWNrZW5k cy9vcmFjbGUvdGVzdC9NYWtlZmlsZSBtYW4vTWFrZWZpbGUgZG9jL01ha2VmaWxlIGRvYy9iYWNr ZW5kcy9NYWtlZmlsZSBidWlsZC9NYWtlZmlsZSBidWlsZC91bml4L01ha2VmaWxlIGJ1aWxkL21z dmM4MC9NYWtlZmlsZSBidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlIGJ1aWxkL21zdmM4MC9saWIv TWFrZWZpbGUiCisrCisrCisrY2F0ID5jb25mY2FjaGUgPDxcX0FDRU9GCisrIyBUaGlzIGZpbGUg aXMgYSBzaGVsbCBzY3JpcHQgdGhhdCBjYWNoZXMgdGhlIHJlc3VsdHMgb2YgY29uZmlndXJlCisr IyB0ZXN0cyBydW4gb24gdGhpcyBzeXN0ZW0gc28gdGhleSBjYW4gYmUgc2hhcmVkIGJldHdlZW4g Y29uZmlndXJlCisrIyBzY3JpcHRzIGFuZCBjb25maWd1cmUgcnVucywgc2VlIGNvbmZpZ3VyZSdz IG9wdGlvbiAtLWNvbmZpZy1jYWNoZS4KKysjIEl0IGlzIG5vdCB1c2VmdWwgb24gb3RoZXIgc3lz dGVtcy4gIElmIGl0IGNvbnRhaW5zIHJlc3VsdHMgeW91IGRvbid0CisrIyB3YW50IHRvIGtlZXAs IHlvdSBtYXkgcmVtb3ZlIG9yIGVkaXQgaXQuCisrIworKyMgY29uZmlnLnN0YXR1cyBvbmx5IHBh eXMgYXR0ZW50aW9uIHRvIHRoZSBjYWNoZSBmaWxlIGlmIHlvdSBnaXZlIGl0CisrIyB0aGUgLS1y ZWNoZWNrIG9wdGlvbiB0byByZXJ1biBjb25maWd1cmUuCisrIworKyMgYGFjX2N2X2Vudl9mb28n IHZhcmlhYmxlcyAoc2V0IG9yIHVuc2V0KSB3aWxsIGJlIG92ZXJyaWRkZW4gd2hlbgorKyMgbG9h ZGluZyB0aGlzIGZpbGUsIG90aGVyICp1bnNldCogYGFjX2N2X2Zvbycgd2lsbCBiZSBhc3NpZ25l ZCB0aGUKKysjIGZvbGxvd2luZyB2YWx1ZXMuCisrCisrX0FDRU9GCisrCisrIyBUaGUgZm9sbG93 aW5nIHdheSBvZiB3cml0aW5nIHRoZSBjYWNoZSBtaXNoYW5kbGVzIG5ld2xpbmVzIGluIHZhbHVl cywKKysjIGJ1dCB3ZSBrbm93IG9mIG5vIHdvcmthcm91bmQgdGhhdCBpcyBzaW1wbGUsIHBvcnRh YmxlLCBhbmQgZWZmaWNpZW50LgorKyMgU28sIHdlIGtpbGwgdmFyaWFibGVzIGNvbnRhaW5pbmcg bmV3bGluZXMuCisrIyBVbHRyaXggc2ggc2V0IHdyaXRlcyB0byBzdGRlcnIgYW5kIGNhbid0IGJl IHJlZGlyZWN0ZWQgZGlyZWN0bHksCisrIyBhbmQgc2V0cyB0aGUgaGlnaCBiaXQgaW4gdGhlIGNh Y2hlIGZpbGUgdW5sZXNzIHdlIGFzc2lnbiB0byB0aGUgdmFycy4KKysoCisrICBmb3IgYWNfdmFy IGluIGAoc2V0KSAyPiYxIHwgc2VkIC1uICdzL15cKFthLXpBLVpfXVthLXpBLVowLTlfXSpcKT0u Ki9cMS9wJ2A7IGRvCisrICAgIGV2YWwgYWNfdmFsPVwkJGFjX3ZhcgorKyAgICBjYXNlICRhY192 YWwgaW4gIygKKysgICAgKiR7YXNfbmx9KikKKysgICAgICBjYXNlICRhY192YXIgaW4gIygKKysg ICAgICAqX2N2XyopIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FS TklORzogY2FjaGUgdmFyaWFibGUgJGFjX3ZhciBjb250YWlucyBhIG5ld2xpbmUiID4mNQorKyRh c19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGNhY2hlIHZhcmlhYmxlICRhY192YXIgY29udGFpbnMg YSBuZXdsaW5lIiA+JjI7fSA7OworKyAgICAgIGVzYWMKKysgICAgICBjYXNlICRhY192YXIgaW4g IygKKysgICAgICBfIHwgSUZTIHwgYXNfbmwpIDs7ICMoCisrICAgICAgQkFTSF9BUkdWIHwgQkFT SF9TT1VSQ0UpIGV2YWwgJGFjX3Zhcj0gOzsgIygKKysgICAgICAqKSB7IGV2YWwgJGFjX3Zhcj07 IHVuc2V0ICRhY192YXI7fSA7OworKyAgICAgIGVzYWMgOzsKKysgICAgZXNhYworKyAgZG9uZQor KworKyAgKHNldCkgMj4mMSB8CisrICAgIGNhc2UgJGFzX25sYChhY19zcGFjZT0nICc7IHNldCkg Mj4mMWAgaW4gIygKKysgICAgKiR7YXNfbmx9YWNfc3BhY2U9XCAqKQorKyAgICAgICMgYHNldCcg ZG9lcyBub3QgcXVvdGUgY29ycmVjdGx5LCBzbyBhZGQgcXVvdGVzOiBkb3VibGUtcXVvdGUKKysg ICAgICAjIHN1YnN0aXR1dGlvbiB0dXJucyBcXFxcIGludG8gXFwsIGFuZCBzZWQgdHVybnMgXFwg aW50byBcLgorKyAgICAgIHNlZCAtbiBcCisrCSJzLycvJ1xcXFwnJy9nOworKwkgIHMvXlxcKFtf JGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9J1xcMicv cCIKKysgICAgICA7OyAjKAorKyAgICAqKQorKyAgICAgICMgYHNldCcgcXVvdGVzIGNvcnJlY3Rs eSBhcyByZXF1aXJlZCBieSBQT1NJWCwgc28gZG8gbm90IGFkZCBxdW90ZXMuCisrICAgICAgc2Vk IC1uICIvXltfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKj0vcCIKKysgICAgICA7 OworKyAgICBlc2FjIHwKKysgICAgc29ydAorKykgfAorKyAgc2VkICcKKysgICAgIC9eYWNfY3Zf ZW52Xy9iIGVuZAorKyAgICAgdCBjbGVhcgorKyAgICAgOmNsZWFyCisrICAgICBzL15cKFtePV0q XCk9XCguKlt7fV0uKlwpJC90ZXN0ICIke1wxK3NldH0iID0gc2V0IHx8ICYvCisrICAgICB0IGVu ZAorKyAgICAgcy9eXChbXj1dKlwpPVwoLipcKSQvXDE9JHtcMT1cMn0vCisrICAgICA6ZW5kJyA+ PmNvbmZjYWNoZQorK2lmIGRpZmYgIiRjYWNoZV9maWxlIiBjb25mY2FjaGUgPi9kZXYvbnVsbCAy PiYxOyB0aGVuIDo7IGVsc2UKKysgIGlmIHRlc3QgLXcgIiRjYWNoZV9maWxlIjsgdGhlbgorKyAg ICB0ZXN0ICJ4JGNhY2hlX2ZpbGUiICE9ICJ4L2Rldi9udWxsIiAmJgorKyAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogdXBkYXRpbmcgY2FjaGUgJGNhY2hlX2Zp bGUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IHVwZGF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+ JjY7fQorKyAgICBjYXQgY29uZmNhY2hlID4kY2FjaGVfZmlsZQorKyAgZWxzZQorKyAgICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IG5vdCB1cGRhdGluZyB1bndyaXRh YmxlIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBub3QgdXBkYXRp bmcgdW53cml0YWJsZSBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KKysgIGZpCisrZmkKKytybSAt ZiBjb25mY2FjaGUKKysKKyt0ZXN0ICJ4JHByZWZpeCIgPSB4Tk9ORSAmJiBwcmVmaXg9JGFjX2Rl ZmF1bHRfcHJlZml4CisrIyBMZXQgbWFrZSBleHBhbmQgZXhlY19wcmVmaXguCisrdGVzdCAieCRl eGVjX3ByZWZpeCIgPSB4Tk9ORSAmJiBleGVjX3ByZWZpeD0nJHtwcmVmaXh9JworKworK0RFRlM9 LURIQVZFX0NPTkZJR19ICisrCisrYWNfbGlib2Jqcz0KKythY19sdGxpYm9ianM9CisrVT0KKytm b3IgYWNfaSBpbiA6ICRMSUJPQkpTOyBkbyB0ZXN0ICJ4JGFjX2kiID0geDogJiYgY29udGludWUK KysgICMgMS4gUmVtb3ZlIHRoZSBleHRlbnNpb24sIGFuZCAkVSBpZiBhbHJlYWR5IGluc3RhbGxl ZC4KKysgIGFjX3NjcmlwdD0ncy9cJFVcLi8uLztzL1wubyQvLztzL1wub2JqJC8vJworKyAgYWNf aT1gJGFzX2VjaG8gIiRhY19pIiB8IHNlZCAiJGFjX3NjcmlwdCJgCisrICAjIDIuIFByZXBlbmQg TElCT0JKRElSLiAgV2hlbiB1c2VkIHdpdGggYXV0b21ha2U+PTEuMTAgTElCT0JKRElSCisrICAj ICAgIHdpbGwgYmUgc2V0IHRvIHRoZSBkaXJlY3Rvcnkgd2hlcmUgTElCT0JKUyBvYmplY3RzIGFy ZSBidWlsdC4KKysgIGFzX2ZuX2FwcGVuZCBhY19saWJvYmpzICIgXCR7TElCT0JKRElSfSRhY19p XCRVLiRhY19vYmpleHQiCisrICBhc19mbl9hcHBlbmQgYWNfbHRsaWJvYmpzICIgXCR7TElCT0JK RElSfSRhY19pIickVS5sbycKKytkb25lCisrTElCT0JKUz0kYWNfbGlib2JqcworKworK0xUTElC T0JKUz0kYWNfbHRsaWJvYmpzCisrCisrCisrIGlmIHRlc3QgLW4gIiRFWEVFWFQiOyB0aGVuCisr ICBhbV9fRVhFRVhUX1RSVUU9CisrICBhbV9fRVhFRVhUX0ZBTFNFPScjJworK2Vsc2UKKysgIGFt X19FWEVFWFRfVFJVRT0nIycKKysgIGFtX19FWEVFWFRfRkFMU0U9CisrZmkKKysKKytpZiB0ZXN0 IC16ICIke0hBVkVfQ1BQVU5JVF9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX0NQUFVOSVRfRkFM U0V9IjsgdGhlbgorKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiSEFWRV9DUFBVTklU XCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMg b25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQorK2ZpCisraWYgdGVzdCAt eiAiJHtBTURFUF9UUlVFfSIgJiYgdGVzdCAteiAiJHtBTURFUF9GQUxTRX0iOyB0aGVuCisrICBh c19mbl9lcnJvciAkPyAiY29uZGl0aW9uYWwgXCJBTURFUFwiIHdhcyBuZXZlciBkZWZpbmVkLgor K1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25h bGx5LiIgIiRMSU5FTk8iIDUKKytmaQorK2lmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhfVFJV RX0iICYmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhfRkFMU0V9IjsgdGhlbgorKyAgYXNfZm5f ZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDWFhcIiB3YXMgbmV2ZXIgZGVmaW5l ZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0 aW9uYWxseS4iICIkTElORU5PIiA1CisrZmkKKytpZiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ0Nf VFJVRX0iICYmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDQ19GQUxTRX0iOyB0aGVuCisrICBhc19m bl9lcnJvciAkPyAiY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRlcENDXCIgd2FzIG5ldmVyIGRlZmlu ZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRp dGlvbmFsbHkuIiAiJExJTkVOTyIgNQorK2ZpCisraWYgdGVzdCAteiAiJHtTT0NJX0hFQURFUlNf QlVSSUVEX1RSVUV9IiAmJiB0ZXN0IC16ICIke1NPQ0lfSEVBREVSU19CVVJJRURfRkFMU0V9Ijsg dGhlbgorKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiU09DSV9IRUFERVJTX0JVUklF RFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2Fz IG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKKytmaQorK2lmIHRlc3Qg LXogIiR7U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9UUlVFfSIgJiYgdGVzdCAteiAiJHtTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFfSI7IHRoZW4KKysgIGFzX2ZuX2Vycm9yICQ/ICJj b25kaXRpb25hbCBcIlNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5l ZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0 aW9uYWxseS4iICIkTElORU5PIiA1CisrZmkKKytpZiB0ZXN0IC16ICIke1NPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFRF9UUlVFfSIgJiYgdGVzdCAteiAiJHtTT0NJX1BPU1RHUkVTUUxfSEVB REVSU19CVVJJRURfRkFMU0V9IjsgdGhlbgorKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFs IFwiU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQuCisr VXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFs bHkuIiAiJExJTkVOTyIgNQorK2ZpCisraWYgdGVzdCAteiAiJHtIQVZFX01ZU1FMX1RSVUV9IiAm JiB0ZXN0IC16ICIke0hBVkVfTVlTUUxfRkFMU0V9IjsgdGhlbgorKyAgYXNfZm5fZXJyb3IgJD8g ImNvbmRpdGlvbmFsIFwiSEFWRV9NWVNRTFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkg dGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRM SU5FTk8iIDUKKytmaQorK2lmIHRlc3QgLXogIiR7SEFWRV9PUkFDTEVfVFJVRX0iICYmIHRlc3Qg LXogIiR7SEFWRV9PUkFDTEVfRkFMU0V9IjsgdGhlbgorKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRp dGlvbmFsIFwiSEFWRV9PUkFDTEVcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMg bWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5P IiA1CisrZmkKKytpZiB0ZXN0IC16ICIke0hBVkVfUE9TVEdSRVNRTF9UUlVFfSIgJiYgdGVzdCAt eiAiJHtIQVZFX1BPU1RHUkVTUUxfRkFMU0V9IjsgdGhlbgorKyAgYXNfZm5fZXJyb3IgJD8gImNv bmRpdGlvbmFsIFwiSEFWRV9QT1NUR1JFU1FMXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxs eSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAi JExJTkVOTyIgNQorK2ZpCisraWYgdGVzdCAteiAiJHtJTkZPX0RPQ19UUlVFfSIgJiYgdGVzdCAt eiAiJHtJTkZPX0RPQ19GQUxTRX0iOyB0aGVuCisrICBhc19mbl9lcnJvciAkPyAiY29uZGl0aW9u YWwgXCJJTkZPX0RPQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0 aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKKytm aQorK2lmIHRlc3QgLXogIiR7SFRNTF9ET0NfVFJVRX0iICYmIHRlc3QgLXogIiR7SFRNTF9ET0Nf RkFMU0V9IjsgdGhlbgorKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiSFRNTF9ET0Nc IiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBv bmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CisrZmkKKytpZiB0ZXN0IC16 ICIke1JVTl9URVNUU19UUlVFfSIgJiYgdGVzdCAteiAiJHtSVU5fVEVTVFNfRkFMU0V9IjsgdGhl bgorKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiUlVOX1RFU1RTXCIgd2FzIG5ldmVy IGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2Vk IGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQorK2ZpCisrCisrOiAke0NPTkZJR19TVEFUVVM9 Li9jb25maWcuc3RhdHVzfQorK2FjX3dyaXRlX2ZhaWw9MAorK2FjX2NsZWFuX2ZpbGVzX3NhdmU9 JGFjX2NsZWFuX2ZpbGVzCisrYWNfY2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxlcyAkQ09ORklH X1NUQVRVUyIKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNyZWF0 aW5nICRDT05GSUdfU1RBVFVTIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBjcmVhdGluZyAkQ09O RklHX1NUQVRVUyIgPiY2O30KKythc193cml0ZV9mYWlsPTAKKytjYXQgPiRDT05GSUdfU1RBVFVT IDw8X0FTRU9GIHx8IGFzX3dyaXRlX2ZhaWw9MQorKyMhICRTSEVMTAorKyMgR2VuZXJhdGVkIGJ5 ICRhc19tZS4KKysjIFJ1biB0aGlzIGZpbGUgdG8gcmVjcmVhdGUgdGhlIGN1cnJlbnQgY29uZmln dXJhdGlvbi4KKysjIENvbXBpbGVyIG91dHB1dCBwcm9kdWNlZCBieSBjb25maWd1cmUsIHVzZWZ1 bCBmb3IgZGVidWdnaW5nCisrIyBjb25maWd1cmUsIGlzIGluIGNvbmZpZy5sb2cgaWYgaXQgZXhp c3RzLgorKworK2RlYnVnPWZhbHNlCisrYWNfY3NfcmVjaGVjaz1mYWxzZQorK2FjX2NzX3NpbGVu dD1mYWxzZQorKworK1NIRUxMPVwke0NPTkZJR19TSEVMTC0kU0hFTEx9CisrZXhwb3J0IFNIRUxM CisrX0FTRU9GCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FTRU9GIHx8IGFzX3dyaXRlX2Zh aWw9MQorKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrIyMgTTRzaCBJbml0aWFsaXphdGlv bi4gIyMKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworKworKyMgQmUgbW9yZSBCb3VybmUg Y29tcGF0aWJsZQorK0RVQUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKKytp ZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxs IDI+JjE7IHRoZW4gOgorKyAgZW11bGF0ZSBzaAorKyAgTlVMTENNRD06CisrICAjIFByZS00LjIg dmVyc2lvbnMgb2YgWnNoIGRvIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKKysg ICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCisrICBh bGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKKysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxz ZQorKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGluICMoCisrICAqcG9zaXgqKSA6Cisr ICAgIHNldCAtbyBwb3NpeCA7OyAjKAorKyAgKikgOgorKyAgICAgOzsKKytlc2FjCisrZmkKKysK KysKKythc19ubD0nCisrJworK2V4cG9ydCBhc19ubAorKyMgUHJpbnRpbmcgYSBsb25nIHN0cmlu ZyBjcmFzaGVzIFNvbGFyaXMgNyAvdXNyL2Jpbi9wcmludGYuCisrYXNfZWNobz0nXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCcKKythc19lY2hvPSRhc19lY2hv JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8KKythc19lY2hvPSRhc19lY2hvJGFzX2Vj aG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobworKyMgUHJlZmVyIGEga3NoIHNoZWxs IGJ1aWx0aW4gb3ZlciBhbiBleHRlcm5hbCBwcmludGYgcHJvZ3JhbSBvbiBTb2xhcmlzLAorKyMg YnV0IHdpdGhvdXQgd2FzdGluZyBmb3JrcyBmb3IgYmFzaCBvciB6c2guCisraWYgdGVzdCAteiAi JEJBU0hfVkVSU0lPTiRaU0hfVkVSU0lPTiIgXAorKyAgICAmJiAodGVzdCAiWGBwcmludCAtciAt LSAkYXNfZWNob2AiID0gIlgkYXNfZWNobyIpIDI+L2Rldi9udWxsOyB0aGVuCisrICBhc19lY2hv PSdwcmludCAtciAtLScKKysgIGFzX2VjaG9fbj0ncHJpbnQgLXJuIC0tJworK2VsaWYgKHRlc3Qg IlhgcHJpbnRmICVzICRhc19lY2hvYCIgPSAiWCRhc19lY2hvIikgMj4vZGV2L251bGw7IHRoZW4K KysgIGFzX2VjaG89J3ByaW50ZiAlc1xuJworKyAgYXNfZWNob19uPSdwcmludGYgJXMnCisrZWxz ZQorKyAgaWYgdGVzdCAiWGAoL3Vzci91Y2IvZWNobyAtbiAtbiAkYXNfZWNobykgMj4vZGV2L251 bGxgIiA9ICJYLW4gJGFzX2VjaG8iOyB0aGVuCisrICAgIGFzX2VjaG9fYm9keT0nZXZhbCAvdXNy L3VjYi9lY2hvIC1uICIkMSRhc19ubCInCisrICAgIGFzX2VjaG9fbj0nL3Vzci91Y2IvZWNobyAt bicKKysgIGVsc2UKKysgICAgYXNfZWNob19ib2R5PSdldmFsIGV4cHIgIlgkMSIgOiAiWFxcKC4q XFwpIicKKysgICAgYXNfZWNob19uX2JvZHk9J2V2YWwKKysgICAgICBhcmc9JDE7CisrICAgICAg Y2FzZSAkYXJnIGluICMoCisrICAgICAgKiIkYXNfbmwiKikKKysJZXhwciAiWCRhcmciIDogIlhc XCguKlxcKSRhc19ubCI7CisrCWFyZz1gZXhwciAiWCRhcmciIDogIi4qJGFzX25sXFwoLipcXCki YDs7CisrICAgICAgZXNhYzsKKysgICAgICBleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpIiB8IHRy IC1kICIkYXNfbmwiCisrICAgICcKKysgICAgZXhwb3J0IGFzX2VjaG9fbl9ib2R5CisrICAgIGFz X2VjaG9fbj0nc2ggLWMgJGFzX2VjaG9fbl9ib2R5IGFzX2VjaG8nCisrICBmaQorKyAgZXhwb3J0 IGFzX2VjaG9fYm9keQorKyAgYXNfZWNobz0nc2ggLWMgJGFzX2VjaG9fYm9keSBhc19lY2hvJwor K2ZpCisrCisrIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCisraWYgdGVzdCAiJHtQQVRIX1NF UEFSQVRPUitzZXR9IiAhPSBzZXQ7IHRoZW4KKysgIFBBVEhfU0VQQVJBVE9SPToKKysgIChQQVRI PScvYmluOy9iaW4nOyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9kZXYvbnVsbCAyPiYxICYmIHsK KysgICAgKFBBVEg9Jy9iaW46L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9udWxs IDI+JjEgfHwKKysgICAgICBQQVRIX1NFUEFSQVRPUj0nOycKKysgIH0KKytmaQorKworKworKyMg SUZTCisrIyBXZSBuZWVkIHNwYWNlLCB0YWIgYW5kIG5ldyBsaW5lLCBpbiBwcmVjaXNlbHkgdGhh dCBvcmRlci4gIFF1b3RpbmcgaXMKKysjIHRoZXJlIHRvIHByZXZlbnQgZWRpdG9ycyBmcm9tIGNv bXBsYWluaW5nIGFib3V0IHNwYWNlLXRhYi4KKysjIChJZiBfQVNfUEFUSF9XQUxLIHdlcmUgY2Fs bGVkIHdpdGggSUZTIHVuc2V0LCBpdCB3b3VsZCBkaXNhYmxlIHdvcmQKKysjIHNwbGl0dGluZyBi eSBzZXR0aW5nIElGUyB0byBlbXB0eSB2YWx1ZS4pCisrSUZTPSIgIiIJJGFzX25sIgorKworKyMg RmluZCB3aG8gd2UgYXJlLiAgTG9vayBpbiB0aGUgcGF0aCBpZiB3ZSBjb250YWluIG5vIGRpcmVj dG9yeSBzZXBhcmF0b3IuCisrY2FzZSAkMCBpbiAjKCgKKysgICpbXFwvXSogKSBhc19teXNlbGY9 JDAgOzsKKysgICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3Ig YXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRh c19kaXIiICYmIGFzX2Rpcj0uCisrICAgIHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215c2Vs Zj0kYXNfZGlyLyQwICYmIGJyZWFrCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAg ICAgOzsKKytlc2FjCisrIyBXZSBkaWQgbm90IGZpbmQgb3Vyc2VsdmVzLCBtb3N0IHByb2JhYmx5 IHdlIHdlcmUgcnVuIGFzIGBzaCBDT01NQU5EJworKyMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90 IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgorK2lmIHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRo ZW4KKysgIGFzX215c2VsZj0kMAorK2ZpCisraWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhl bgorKyAgJGFzX2VjaG8gIiRhc19teXNlbGY6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJl cnVuIHdpdGggYW4gYWJzb2x1dGUgZmlsZSBuYW1lIiA+JjIKKysgIGV4aXQgMQorK2ZpCisrCisr IyBVbnNldCB2YXJpYWJsZXMgdGhhdCB3ZSBkbyBub3QgbmVlZCBhbmQgd2hpY2ggY2F1c2UgYnVn cyAoZS5nLiBpbgorKyMgcHJlLTMuMCBVV0lOIGtzaCkuICBCdXQgZG8gbm90IGNhdXNlIGJ1Z3Mg aW4gYmFzaCAyLjAxOyB0aGUgInx8IGV4aXQgMSIKKysjIHN1cHByZXNzZXMgYW55ICJTZWdtZW50 YXRpb24gZmF1bHQiIG1lc3NhZ2UgdGhlcmUuICAnKCgnIGNvdWxkCisrIyB0cmlnZ2VyIGEgYnVn IGluIHBka3NoIDUuMi4xNC4KKytmb3IgYXNfdmFyIGluIEJBU0hfRU5WIEVOViBNQUlMIE1BSUxQ QVRICisrZG8gZXZhbCB0ZXN0IHhcJHskYXNfdmFyK3NldH0gPSB4c2V0IFwKKysgICYmICggKHVu c2V0ICRhc192YXIpIHx8IGV4aXQgMSkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0ICRhc192YXIg fHwgOgorK2RvbmUKKytQUzE9JyQgJworK1BTMj0nPiAnCisrUFM0PScrICcKKysKKysjIE5MUyBu dWlzYW5jZXMuCisrTENfQUxMPUMKKytleHBvcnQgTENfQUxMCisrTEFOR1VBR0U9QworK2V4cG9y dCBMQU5HVUFHRQorKworKyMgQ0RQQVRILgorKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4m MSAmJiB1bnNldCBDRFBBVEgKKysKKysKKysjIGFzX2ZuX2Vycm9yIFNUQVRVUyBFUlJPUiBbTElO RU5PIExPR19GRF0KKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysjIE91dHB1dCAiYGJhc2VuYW1lICQwYDogZXJyb3I6IEVSUk9SIiB0byBzdGRlcnIuIElmIExJ TkVOTyBhbmQgTE9HX0ZEIGFyZQorKyMgcHJvdmlkZWQsIGFsc28gb3V0cHV0IHRoZSBlcnJvciB0 byBMT0dfRkQsIHJlZmVyZW5jaW5nIExJTkVOTy4gVGhlbiBleGl0IHRoZQorKyMgc2NyaXB0IHdp dGggU1RBVFVTLCB1c2luZyAxIGlmIHRoYXQgd2FzIDAuCisrYXNfZm5fZXJyb3IgKCkKKyt7Cisr ICBhc19zdGF0dXM9JDE7IHRlc3QgJGFzX3N0YXR1cyAtZXEgMCAmJiBhc19zdGF0dXM9MQorKyAg aWYgdGVzdCAiJDQiOyB0aGVuCisrICAgIGFzX2xpbmVubz0ke2FzX2xpbmVuby0iJDMifSBhc19s aW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9fc3RhY2sKKysgICAgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6ICQyIiA+JiQ0CisrICBmaQor KyAgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6ICQyIiA+JjIKKysgIGFzX2ZuX2V4aXQgJGFzX3N0 YXR1cworK30gIyBhc19mbl9lcnJvcgorKworKworKyMgYXNfZm5fc2V0X3N0YXR1cyBTVEFUVVMK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBTZXQgJD8gdG8gU1RBVFVTLCB3aXRob3V0 IGZvcmtpbmcuCisrYXNfZm5fc2V0X3N0YXR1cyAoKQorK3sKKysgIHJldHVybiAkMQorK30gIyBh c19mbl9zZXRfc3RhdHVzCisrCisrIyBhc19mbl9leGl0IFNUQVRVUworKyMgLS0tLS0tLS0tLS0t LS0tLS0KKysjIEV4aXQgdGhlIHNoZWxsIHdpdGggU1RBVFVTLCBldmVuIGluIGEgInRyYXAgMCIg b3IgInNldCAtZSIgY29udGV4dC4KKythc19mbl9leGl0ICgpCisreworKyAgc2V0ICtlCisrICBh c19mbl9zZXRfc3RhdHVzICQxCisrICBleGl0ICQxCisrfSAjIGFzX2ZuX2V4aXQKKysKKysjIGFz X2ZuX3Vuc2V0IFZBUgorKyMgLS0tLS0tLS0tLS0tLS0tCisrIyBQb3J0YWJseSB1bnNldCBWQVIu CisrYXNfZm5fdW5zZXQgKCkKKyt7CisrICB7IGV2YWwgJDE9OyB1bnNldCAkMTt9CisrfQorK2Fz X3Vuc2V0PWFzX2ZuX3Vuc2V0CisrIyBhc19mbl9hcHBlbmQgVkFSIFZBTFVFCisrIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBBcHBlbmQgdGhlIHRleHQgaW4gVkFMVUUgdG8gdGhlIGVuZCBv ZiB0aGUgZGVmaW5pdGlvbiBjb250YWluZWQgaW4gVkFSLiBUYWtlCisrIyBhZHZhbnRhZ2Ugb2Yg YW55IHNoZWxsIG9wdGltaXphdGlvbnMgdGhhdCBhbGxvdyBhbW9ydGl6ZWQgbGluZWFyIGdyb3d0 aCBvdmVyCisrIyByZXBlYXRlZCBhcHBlbmRzLCBpbnN0ZWFkIG9mIHRoZSB0eXBpY2FsIHF1YWRy YXRpYyBncm93dGggcHJlc2VudCBpbiBuYWl2ZQorKyMgaW1wbGVtZW50YXRpb25zLgorK2lmIChl dmFsICJhc192YXI9MTsgYXNfdmFyKz0yOyB0ZXN0IHhcJGFzX3ZhciA9IHgxMiIpIDI+L2Rldi9u dWxsOyB0aGVuIDoKKysgIGV2YWwgJ2FzX2ZuX2FwcGVuZCAoKQorKyAgeworKyAgICBldmFsICQx Kz1cJDIKKysgIH0nCisrZWxzZQorKyAgYXNfZm5fYXBwZW5kICgpCisrICB7CisrICAgIGV2YWwg JDE9XCQkMVwkMgorKyAgfQorK2ZpICMgYXNfZm5fYXBwZW5kCisrCisrIyBhc19mbl9hcml0aCBB UkcuLi4KKysjIC0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUGVyZm9ybSBhcml0aG1ldGljIGV2YWx1 YXRpb24gb24gdGhlIEFSR3MsIGFuZCBzdG9yZSB0aGUgcmVzdWx0IGluIHRoZQorKyMgZ2xvYmFs ICRhc192YWwuIFRha2UgYWR2YW50YWdlIG9mIHNoZWxscyB0aGF0IGNhbiBhdm9pZCBmb3Jrcy4g VGhlIGFyZ3VtZW50cworKyMgbXVzdCBiZSBwb3J0YWJsZSBhY3Jvc3MgJCgoKSkgYW5kIGV4cHIu CisraWYgKGV2YWwgInRlc3QgXCQoKCAxICsgMSApKSA9IDIiKSAyPi9kZXYvbnVsbDsgdGhlbiA6 CisrICBldmFsICdhc19mbl9hcml0aCAoKQorKyAgeworKyAgICBhc192YWw9JCgoICQqICkpCisr ICB9JworK2Vsc2UKKysgIGFzX2ZuX2FyaXRoICgpCisrICB7CisrICAgIGFzX3ZhbD1gZXhwciAi JEAiIHx8IHRlc3QgJD8gLWVxIDFgCisrICB9CisrZmkgIyBhc19mbl9hcml0aAorKworKworK2lm IGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxICYmCisrICAgdGVzdCAiWGBleHByIDAw MDAxIDogJy4qXCguLi5cKSdgIiA9IFgwMDE7IHRoZW4KKysgIGFzX2V4cHI9ZXhwcgorK2Vsc2UK KysgIGFzX2V4cHI9ZmFsc2UKKytmaQorKworK2lmIChiYXNlbmFtZSAtLSAvKSA+L2Rldi9udWxs IDI+JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAtLSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KKysgIGFz X2Jhc2VuYW1lPWJhc2VuYW1lCisrZWxzZQorKyAgYXNfYmFzZW5hbWU9ZmFsc2UKKytmaQorKwor K2lmIChhc19kaXI9YGRpcm5hbWUgLS0gL2AgJiYgdGVzdCAiWCRhc19kaXIiID0gWC8pID4vZGV2 L251bGwgMj4mMTsgdGhlbgorKyAgYXNfZGlybmFtZT1kaXJuYW1lCisrZWxzZQorKyAgYXNfZGly bmFtZT1mYWxzZQorK2ZpCisrCisrYXNfbWU9YCRhc19iYXNlbmFtZSAtLSAiJDAiIHx8CisrJGFz X2V4cHIgWC8iJDAiIDogJy4qL1woW14vXVteL10qXCkvKiQnIFx8IFwKKysJIFgiJDAiIDogJ1hc KC8vXCkkJyBcfCBcCisrCSBYIiQwIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKKysk YXNfZWNobyBYLyIkMCIgfAorKyAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sKKysJ ICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcL1woXC9cL1wpJC97CisrCSAgICBz Ly9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXC9cKFwvXCkuKi97CisrCSAgICBzLy9cMS8K KysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdgCisrCisrIyBBdm9pZCBkZXBlbmRpbmcg dXBvbiBDaGFyYWN0ZXIgUmFuZ2VzLgorK2FzX2NyX2xldHRlcnM9J2FiY2RlZmdoaWprbG1ub3Bx cnN0dXZ3eHl6JworK2FzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJwor K2FzX2NyX0xldHRlcnM9JGFzX2NyX2xldHRlcnMkYXNfY3JfTEVUVEVSUworK2FzX2NyX2RpZ2l0 cz0nMDEyMzQ1Njc4OScKKythc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMK KysKKytFQ0hPX0M9IEVDSE9fTj0gRUNIT19UPQorK2Nhc2UgYGVjaG8gLW4geGAgaW4gIygoKCgo CisrLW4qKQorKyAgY2FzZSBgZWNobyAneHlcYydgIGluCisrICAqYyopIEVDSE9fVD0nCSc7Owkj IEVDSE9fVCBpcyBzaW5nbGUgdGFiIGNoYXJhY3Rlci4KKysgIHh5KSAgRUNIT19DPSdcYyc7Owor KyAgKikgICBlY2hvIGBlY2hvIGtzaDg4IGJ1ZyBvbiBBSVggNi4xYCA+IC9kZXYvbnVsbAorKyAg ICAgICBFQ0hPX1Q9JwknOzsKKysgIGVzYWM7OworKyopCisrICBFQ0hPX049Jy1uJzs7CisrZXNh YworKworK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCisraWYgdGVzdCAtZCBj b25mJCQuZGlyOyB0aGVuCisrICBybSAtZiBjb25mJCQuZGlyL2NvbmYkJC5maWxlCisrZWxzZQor KyAgcm0gLWYgY29uZiQkLmRpcgorKyAgbWtkaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAorK2Zp CisraWYgKGVjaG8gPmNvbmYkJC5maWxlKSAyPi9kZXYvbnVsbDsgdGhlbgorKyAgaWYgbG4gLXMg Y29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCisrICAgIGFzX2xuX3M9J2xuIC1z JworKyAgICAjIC4uLiBidXQgdGhlcmUgYXJlIHR3byBnb3RjaGFzOgorKyAgICAjIDEpIE9uIE1T WVMsIGJvdGggYGxuIC1zIGZpbGUgZGlyJyBhbmQgYGxuIGZpbGUgZGlyJyBmYWlsLgorKyAgICAj IDIpIERKR1BQIDwgMi4wNCBoYXMgbm8gc3ltbGlua3M7IGBsbiAtcycgY3JlYXRlcyBhIHdyYXBw ZXIgZXhlY3V0YWJsZS4KKysgICAgIyBJbiBib3RoIGNhc2VzLCB3ZSBoYXZlIHRvIGRlZmF1bHQg dG8gYGNwIC1wJy4KKysgICAgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkLmRpciAyPi9kZXYvbnVs bCAmJiB0ZXN0ICEgLWYgY29uZiQkLmV4ZSB8fAorKyAgICAgIGFzX2xuX3M9J2NwIC1wJworKyAg ZWxpZiBsbiBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KKysgICAgYXNfbG5f cz1sbgorKyAgZWxzZQorKyAgICBhc19sbl9zPSdjcCAtcCcKKysgIGZpCisrZWxzZQorKyAgYXNf bG5fcz0nY3AgLXAnCisrZmkKKytybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZGlyL2Nv bmYkJC5maWxlIGNvbmYkJC5maWxlCisrcm1kaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAorKwor KworKyMgYXNfZm5fbWtkaXJfcAorKyMgLS0tLS0tLS0tLS0tLQorKyMgQ3JlYXRlICIkYXNfZGly IiBhcyBhIGRpcmVjdG9yeSwgaW5jbHVkaW5nIHBhcmVudHMgaWYgbmVjZXNzYXJ5LgorK2FzX2Zu X21rZGlyX3AgKCkKKyt7CisrCisrICBjYXNlICRhc19kaXIgaW4gIygKKysgIC0qKSBhc19kaXI9 Li8kYXNfZGlyOzsKKysgIGVzYWMKKysgIHRlc3QgLWQgIiRhc19kaXIiIHx8IGV2YWwgJGFzX21r ZGlyX3AgfHwgeworKyAgICBhc19kaXJzPQorKyAgICB3aGlsZSA6OyBkbworKyAgICAgIGNhc2Ug JGFzX2RpciBpbiAjKAorKyAgICAgICpcJyopIGFzX3FkaXI9YCRhc19lY2hvICIkYXNfZGlyIiB8 IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYDs7ICMnKAorKyAgICAgICopIGFzX3FkaXI9JGFzX2Rp cjs7CisrICAgICAgZXNhYworKyAgICAgIGFzX2RpcnM9IickYXNfcWRpcicgJGFzX2RpcnMiCisr ICAgICAgYXNfZGlyPWAkYXNfZGlybmFtZSAtLSAiJGFzX2RpciIgfHwKKyskYXNfZXhwciBYIiRh c19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisrCSBYIiRhc19kaXIi IDogJ1hcKC8vXClbXi9dJyBcfCBcCisrCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCisr CSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRhc19lY2hvIFgi JGFzX2RpciIgfAorKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewor KwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKKysJ ICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKSQveworKwkgICAgcy8v XDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkg ICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2AKKysgICAgICB0ZXN0IC1kICIkYXNfZGlyIiAm JiBicmVhaworKyAgICBkb25lCisrICAgIHRlc3QgLXogIiRhc19kaXJzIiB8fCBldmFsICJta2Rp ciAkYXNfZGlycyIKKysgIH0gfHwgdGVzdCAtZCAiJGFzX2RpciIgfHwgYXNfZm5fZXJyb3IgJD8g ImNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5ICRhc19kaXIiCisrCisrCisrfSAjIGFzX2ZuX21rZGly X3AKKytpZiBta2RpciAtcCAuIDI+L2Rldi9udWxsOyB0aGVuCisrICBhc19ta2Rpcl9wPSdta2Rp ciAtcCAiJGFzX2RpciInCisrZWxzZQorKyAgdGVzdCAtZCAuLy1wICYmIHJtZGlyIC4vLXAKKysg IGFzX21rZGlyX3A9ZmFsc2UKKytmaQorKworK2lmIHRlc3QgLXggLyA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KKysgIGFzX3Rlc3RfeD0ndGVzdCAteCcKKytlbHNlCisrICBpZiBscyAtZEwgLyA+L2Rl di9udWxsIDI+JjE7IHRoZW4KKysgICAgYXNfbHNfTF9vcHRpb249TAorKyAgZWxzZQorKyAgICBh c19sc19MX29wdGlvbj0KKysgIGZpCisrICBhc190ZXN0X3g9JworKyAgICBldmFsIHNoIC1jICdc JycKKysgICAgICBpZiB0ZXN0IC1kICIkMSI7IHRoZW4KKysJdGVzdCAtZCAiJDEvLiI7CisrICAg ICAgZWxzZQorKwljYXNlICQxIGluICMoCisrCS0qKXNldCAiLi8kMSI7OworKwllc2FjOworKwlj YXNlIGBscyAtbGQnJGFzX2xzX0xfb3B0aW9uJyAiJDEiIDI+L2Rldi9udWxsYCBpbiAjKCgKKysJ Pz8/W3N4XSopOjs7KilmYWxzZTs7ZXNhYztmaQorKyAgICAnXCcnIHNoCisrICAnCisrZmkKKyth c19leGVjdXRhYmxlX3A9JGFzX3Rlc3RfeAorKworKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEg c3RyaW5nIG9udG8gYSB2YWxpZCBDUFAgbmFtZS4KKythc190cl9jcHA9ImV2YWwgc2VkICd5JSok YXNfY3JfbGV0dGVycyVQJGFzX2NyX0xFVFRFUlMlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgor KworKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCB2YXJpYWJs ZSBuYW1lLgorK2FzX3RyX3NoPSJldmFsIHNlZCAneSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxudW1d JV8lZyciCisrCisrCisrZXhlYyA2PiYxCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gIyMKKysjIyBNYWluIGJvZHkgb2YgJENPTkZJR19TVEFUVVMgc2NyaXB0LiAjIwor KyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrX0FTRU9GCisrdGVz dCAkYXNfd3JpdGVfZmFpbCA9IDAgJiYgY2htb2QgK3ggJENPTkZJR19TVEFUVVMgfHwgYWNfd3Jp dGVfZmFpbD0xCisrCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRl X2ZhaWw9MQorKyMgU2F2ZSB0aGUgbG9nIG1lc3NhZ2UsIHRvIGtlZXAgJDAgYW5kIHNvIG9uIG1l YW5pbmdmdWwsIGFuZCB0bworKyMgcmVwb3J0IGFjdHVhbCBpbnB1dCB2YWx1ZXMgb2YgQ09ORklH X0ZJTEVTIGV0Yy4gaW5zdGVhZCBvZiB0aGVpcgorKyMgdmFsdWVzIGFmdGVyIG9wdGlvbnMgaGFu ZGxpbmcuCisrYWNfbG9nPSIKKytUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFNPQ0kgJGFzX21l IDMuMC4wLCB3aGljaCB3YXMKKytnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjYuICBJbnZv Y2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKKysKKysgIENPTkZJR19GSUxFUyAgICA9ICRDT05GSUdf RklMRVMKKysgIENPTkZJR19IRUFERVJTICA9ICRDT05GSUdfSEVBREVSUworKyAgQ09ORklHX0xJ TktTICAgID0gJENPTkZJR19MSU5LUworKyAgQ09ORklHX0NPTU1BTkRTID0gJENPTkZJR19DT01N QU5EUworKyAgJCAkMCAkQAorKworK29uIGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9u dWxsIHwgc2VkIDFxYAorKyIKKysKKytfQUNFT0YKKysKKytjYXNlICRhY19jb25maWdfZmlsZXMg aW4gKiIKKysiKikgc2V0IHggJGFjX2NvbmZpZ19maWxlczsgc2hpZnQ7IGFjX2NvbmZpZ19maWxl cz0kKjs7CisrZXNhYworKworK2Nhc2UgJGFjX2NvbmZpZ19oZWFkZXJzIGluICoiCisrIiopIHNl dCB4ICRhY19jb25maWdfaGVhZGVyczsgc2hpZnQ7IGFjX2NvbmZpZ19oZWFkZXJzPSQqOzsKKytl c2FjCisrCisrCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFp bD0xCisrIyBGaWxlcyB0aGF0IGNvbmZpZy5zdGF0dXMgd2FzIG1hZGUgZm9yLgorK2NvbmZpZ19m aWxlcz0iJGFjX2NvbmZpZ19maWxlcyIKKytjb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFk ZXJzIgorK2NvbmZpZ19jb21tYW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyIKKysKKytfQUNFT0YK KysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisr YWNfY3NfdXNhZ2U9IlwKKytcYCRhc19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGFuZCBvdGhlciBj b25maWd1cmF0aW9uIGFjdGlvbnMKKytmcm9tIHRlbXBsYXRlcyBhY2NvcmRpbmcgdG8gdGhlIGN1 cnJlbnQgY29uZmlndXJhdGlvbi4gIFVubGVzcyB0aGUgZmlsZXMKKythbmQgYWN0aW9ucyBhcmUg c3BlY2lmaWVkIGFzIFRBR3MsIGFsbCBhcmUgaW5zdGFudGlhdGVkIGJ5IGRlZmF1bHQuCisrCisr VXNhZ2U6ICQwIFtPUFRJT05dLi4uIFtUQUddLi4uCisrCisrICAtaCwgLS1oZWxwICAgICAgIHBy aW50IHRoaXMgaGVscCwgdGhlbiBleGl0CisrICAtViwgLS12ZXJzaW9uICAgIHByaW50IHZlcnNp b24gbnVtYmVyIGFuZCBjb25maWd1cmF0aW9uIHNldHRpbmdzLCB0aGVuIGV4aXQKKysgICAgICAt LWNvbmZpZyAgICAgcHJpbnQgY29uZmlndXJhdGlvbiwgdGhlbiBleGl0CisrICAtcSwgLS1xdWll dCwgLS1zaWxlbnQKKysgICAgICAgICAgICAgICAgICAgZG8gbm90IHByaW50IHByb2dyZXNzIG1l c3NhZ2VzCisrICAtZCwgLS1kZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMK KysgICAgICAtLXJlY2hlY2sgICAgdXBkYXRlICRhc19tZSBieSByZWNvbmZpZ3VyaW5nIGluIHRo ZSBzYW1lIGNvbmRpdGlvbnMKKysgICAgICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCisrICAgICAg ICAgICAgICAgICAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQorKyAg ICAgIC0taGVhZGVyPUZJTEVbOlRFTVBMQVRFXQorKyAgICAgICAgICAgICAgICAgICBpbnN0YW50 aWF0ZSB0aGUgY29uZmlndXJhdGlvbiBoZWFkZXIgRklMRQorKworK0NvbmZpZ3VyYXRpb24gZmls ZXM6CisrJGNvbmZpZ19maWxlcworKworK0NvbmZpZ3VyYXRpb24gaGVhZGVyczoKKyskY29uZmln X2hlYWRlcnMKKysKKytDb25maWd1cmF0aW9uIGNvbW1hbmRzOgorKyRjb25maWdfY29tbWFuZHMK KysKKytSZXBvcnQgYnVncyB0byA8bXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0Pi4iCisr CisrX0FDRU9GCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFp bD0xCisrYWNfY3NfY29uZmlnPSJgJGFzX2VjaG8gIiRhY19jb25maWd1cmVfYXJncyIgfCBzZWQg J3MvXiAvLzsgcy9bXFwiIlxgXCRdL1xcXFwmL2cnYCIKKythY19jc192ZXJzaW9uPSJcXAorK1NP Q0kgY29uZmlnLnN0YXR1cyAzLjAuMAorK2NvbmZpZ3VyZWQgYnkgJDAsIGdlbmVyYXRlZCBieSBH TlUgQXV0b2NvbmYgMi42NiwKKysgIHdpdGggb3B0aW9ucyBcXCJcJGFjX2NzX2NvbmZpZ1xcIgor KworK0NvcHlyaWdodCAoQykgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKytU aGlzIGNvbmZpZy5zdGF0dXMgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KKytnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0 cmlidXRlIGFuZCBtb2RpZnkgaXQuIgorKworK2FjX3B3ZD0nJGFjX3B3ZCcKKytzcmNkaXI9JyRz cmNkaXInCisrSU5TVEFMTD0nJElOU1RBTEwnCisrTUtESVJfUD0nJE1LRElSX1AnCisrQVdLPSck QVdLJworK3Rlc3QgLW4gIlwkQVdLIiB8fCBBV0s9YXdrCisrX0FDRU9GCisrCisrY2F0ID4+JENP TkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKyMgVGhlIGRlZmF1bHQg bGlzdHMgYXBwbHkgaWYgdGhlIHVzZXIgZG9lcyBub3Qgc3BlY2lmeSBhbnkgZmlsZS4KKythY19u ZWVkX2RlZmF1bHRzPToKKyt3aGlsZSB0ZXN0ICQjICE9IDAKKytkbworKyAgY2FzZSAkMSBpbgor KyAgLS0qPSopCisrICAgIGFjX29wdGlvbj1gZXhwciAiWCQxIiA6ICdYXChbXj1dKlwpPSdgCisr ICAgIGFjX29wdGFyZz1gZXhwciAiWCQxIiA6ICdYW149XSo9XCguKlwpJ2AKKysgICAgYWNfc2hp ZnQ9OgorKyAgICA7OworKyAgKikKKysgICAgYWNfb3B0aW9uPSQxCisrICAgIGFjX29wdGFyZz0k MgorKyAgICBhY19zaGlmdD1zaGlmdAorKyAgICA7OworKyAgZXNhYworKworKyAgY2FzZSAkYWNf b3B0aW9uIGluCisrICAjIEhhbmRsaW5nIG9mIHRoZSBvcHRpb25zLgorKyAgLXJlY2hlY2sgfCAt LXJlY2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAtLXJlY2ggfCAtLXJlYyB8IC0tcmUgfCAt LXIpCisrICAgIGFjX2NzX3JlY2hlY2s9OiA7OworKyAgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAt LXZlcnNpIHwgLS12ZXJzIHwgLS12ZXIgfCAtLXZlIHwgLS12IHwgLVYgKQorKyAgICAkYXNfZWNo byAiJGFjX2NzX3ZlcnNpb24iOyBleGl0IDs7CisrICAtLWNvbmZpZyB8IC0tY29uZmkgfCAtLWNv bmYgfCAtLWNvbiB8IC0tY28gfCAtLWMgKQorKyAgICAkYXNfZWNobyAiJGFjX2NzX2NvbmZpZyI7 IGV4aXQgOzsKKysgIC0tZGVidWcgfCAtLWRlYnUgfCAtLWRlYiB8IC0tZGUgfCAtLWQgfCAtZCAp CisrICAgIGRlYnVnPTogOzsKKysgIC0tZmlsZSB8IC0tZmlsIHwgLS1maSB8IC0tZiApCisrICAg ICRhY19zaGlmdAorKyAgICBjYXNlICRhY19vcHRhcmcgaW4KKysgICAgKlwnKikgYWNfb3B0YXJn PWAkYXNfZWNobyAiJGFjX29wdGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKKysg ICAgZXNhYworKyAgICBhc19mbl9hcHBlbmQgQ09ORklHX0ZJTEVTICIgJyRhY19vcHRhcmcnIgor KyAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKKysgIC0taGVhZGVyIHwgLS1oZWFkZSB8IC0t aGVhZCB8IC0taGVhICkKKysgICAgJGFjX3NoaWZ0CisrICAgIGNhc2UgJGFjX29wdGFyZyBpbgor KyAgICAqXCcqKSBhY19vcHRhcmc9YCRhc19lY2hvICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydc XFxcXFxcXCcnL2ciYCA7OworKyAgICBlc2FjCisrICAgIGFzX2ZuX2FwcGVuZCBDT05GSUdfSEVB REVSUyAiICckYWNfb3B0YXJnJyIKKysgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7CisrICAt LWhlIHwgLS1oKQorKyAgICAjIENvbmZsaWN0IGJldHdlZW4gLS1oZWxwIGFuZCAtLWhlYWRlcgor KyAgICBhc19mbl9lcnJvciAkPyAiYW1iaWd1b3VzIG9wdGlvbjogXGAkMScKKytUcnkgXGAkMCAt LWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiI7OworKyAgLS1oZWxwIHwgLS1oZWwgfCAtaCAp CisrICAgICRhc19lY2hvICIkYWNfY3NfdXNhZ2UiOyBleGl0IDs7CisrICAtcSB8IC1xdWlldCB8 IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAorKyAgfCAtc2lsZW50IHwg LS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwgfCAtLXNpIHwgLS1zKQorKyAgICBh Y19jc19zaWxlbnQ9OiA7OworKworKyAgIyBUaGlzIGlzIGFuIGVycm9yLgorKyAgLSopIGFzX2Zu X2Vycm9yICQ/ICJ1bnJlY29nbml6ZWQgb3B0aW9uOiBcYCQxJworK1RyeSBcYCQwIC0taGVscCcg Zm9yIG1vcmUgaW5mb3JtYXRpb24uIiA7OworKworKyAgKikgYXNfZm5fYXBwZW5kIGFjX2NvbmZp Z190YXJnZXRzICIgJDEiCisrICAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlIDs7CisrCisrICBl c2FjCisrICBzaGlmdAorK2RvbmUKKysKKythY19jb25maWd1cmVfZXh0cmFfYXJncz0KKysKKytp ZiAkYWNfY3Nfc2lsZW50OyB0aGVuCisrICBleGVjIDY+L2Rldi9udWxsCisrICBhY19jb25maWd1 cmVfZXh0cmFfYXJncz0iJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzIC0tc2lsZW50IgorK2ZpCisr CisrX0FDRU9GCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFp bD0xCisraWYgXCRhY19jc19yZWNoZWNrOyB0aGVuCisrICBzZXQgWCAnJFNIRUxMJyAnJDAnICRh Y19jb25maWd1cmVfYXJncyBcJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzIC0tbm8tY3JlYXRlIC0t bm8tcmVjdXJzaW9uCisrICBzaGlmdAorKyAgXCRhc19lY2hvICJydW5uaW5nIENPTkZJR19TSEVM TD0kU0hFTEwgXCQqIiA+JjYKKysgIENPTkZJR19TSEVMTD0nJFNIRUxMJworKyAgZXhwb3J0IENP TkZJR19TSEVMTAorKyAgZXhlYyAiXCRAIgorK2ZpCisrCisrX0FDRU9GCisrY2F0ID4+JENPTkZJ R19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorK2V4ZWMgNT4+Y29uZmlnLmxv ZworK3sKKysgIGVjaG8KKysgIHNlZCAnaDtzLy4vLS9nO3MvXi4uLi8jIyAvO3MvLi4uJC8gIyMv O3A7eDtwO3gnIDw8X0FTQk9YCisrIyMgUnVubmluZyAkYXNfbWUuICMjCisrX0FTQk9YCisrICAk YXNfZWNobyAiJGFjX2xvZyIKKyt9ID4mNQorKworK19BQ0VPRgorK2NhdCA+PiRDT05GSUdfU1RB VFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKyMKKysjIElOSVQtQ09NTUFORFMKKysj CisrQU1ERVBfVFJVRT0iJEFNREVQX1RSVUUiIGFjX2F1eF9kaXI9IiRhY19hdXhfZGlyIgorKwor KworKyMgVGhlIEhQLVVYIGtzaCBhbmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJl Y3RvcnkgdG8gc3Rkb3V0CisrIyBpZiBDRFBBVEggaXMgc2V0LgorKyh1bnNldCBDRFBBVEgpID4v ZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKKysKKytzZWRfcXVvdGVfc3Vic3Q9JyRzZWRf cXVvdGVfc3Vic3QnCisrZG91YmxlX3F1b3RlX3N1YnN0PSckZG91YmxlX3F1b3RlX3N1YnN0Jwor K2RlbGF5X3ZhcmlhYmxlX3N1YnN0PSckZGVsYXlfdmFyaWFibGVfc3Vic3QnCisrZW5hYmxlX3No YXJlZD0nYCRFQ0hPICIkZW5hYmxlX3NoYXJlZCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrZW5hYmxlX3N0YXRpYz0nYCRFQ0hPICIkZW5hYmxlX3N0YXRpYyIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbWFjcm9fdmVyc2lvbj0nYCRFQ0hPICIk bWFjcm9fdmVyc2lvbiIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbWFj cm9fcmV2aXNpb249J2AkRUNITyAiJG1hY3JvX3JldmlzaW9uIiB8ICRTRUQgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKytwaWNfbW9kZT0nYCRFQ0hPICIkcGljX21vZGUiIHwgJFNFRCAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2VuYWJsZV9mYXN0X2luc3RhbGw9J2AkRUNI TyAiJGVuYWJsZV9mYXN0X2luc3RhbGwiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK1NIRUxMPSdgJEVDSE8gIiRTSEVMTCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrRUNITz0nYCRFQ0hPICIkRUNITyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisraG9zdF9hbGlhcz0nYCRFQ0hPICIkaG9zdF9hbGlhcyIgfCAkU0VEICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraG9zdD0nYCRFQ0hPICIkaG9zdCIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraG9zdF9vcz0nYCRFQ0hPICIkaG9zdF9v cyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrYnVpbGRfYWxpYXM9J2Ak RUNITyAiJGJ1aWxkX2FsaWFzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK KytidWlsZD0nYCRFQ0hPICIkYnVpbGQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK2J1aWxkX29zPSdgJEVDSE8gIiRidWlsZF9vcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrU0VEPSdgJEVDSE8gIiRTRUQiIHwgJFNFRCAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK1hzZWQ9J2AkRUNITyAiJFhzZWQiIHwgJFNFRCAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJworK0dSRVA9J2AkRUNITyAiJEdSRVAiIHwgJFNFRCAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0VHUkVQPSdgJEVDSE8gIiRFR1JFUCIgfCAkU0VEICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrRkdSRVA9J2AkRUNITyAiJEZHUkVQIiB8ICRT RUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytMRD0nYCRFQ0hPICIkTEQiIHwgJFNF RCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK05NPSdgJEVDSE8gIiROTSIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrTE5fUz0nYCRFQ0hPICIkTE5fUyIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbWF4X2NtZF9sZW49J2AkRUNITyAi JG1heF9jbWRfbGVuIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKythY19v YmpleHQ9J2AkRUNITyAiJGFjX29iamV4dCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrZXhlZXh0PSdgJEVDSE8gIiRleGVleHQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJworK2x0X3Vuc2V0PSdgJEVDSE8gIiRsdF91bnNldCIgfCAkU0VEICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfU1AyTkw9J2AkRUNITyAiJGx0X1NQMk5MIiB8 ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsdF9OTDJTUD0nYCRFQ0hPICIk bHRfTkwyU1AiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3JlbG9hZF9m bGFnPSdgJEVDSE8gIiRyZWxvYWRfZmxhZyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrcmVsb2FkX2NtZHM9J2AkRUNITyAiJHJlbG9hZF9jbWRzIiB8ICRTRUQgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytPQkpEVU1QPSdgJEVDSE8gIiRPQkpEVU1QIiB8ICRT RUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytkZXBsaWJzX2NoZWNrX21ldGhvZD0n YCRFQ0hPICIkZGVwbGlic19jaGVja19tZXRob2QiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK2ZpbGVfbWFnaWNfY21kPSdgJEVDSE8gIiRmaWxlX21hZ2ljX2NtZCIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrQVI9J2AkRUNITyAiJEFSIiB8ICRT RUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytBUl9GTEFHUz0nYCRFQ0hPICIkQVJf RkxBR1MiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK1NUUklQPSdgJEVD SE8gIiRTVFJJUCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrUkFOTElC PSdgJEVDSE8gIiRSQU5MSUIiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K29sZF9wb3N0aW5zdGFsbF9jbWRzPSdgJEVDSE8gIiRvbGRfcG9zdGluc3RhbGxfY21kcyIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrb2xkX3Bvc3R1bmluc3RhbGxfY21k cz0nYCRFQ0hPICIkb2xkX3Bvc3R1bmluc3RhbGxfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrb2xkX2FyY2hpdmVfY21kcz0nYCRFQ0hPICIkb2xkX2FyY2hpdmVf Y21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbG9ja19vbGRfYXJj aGl2ZV9leHRyYWN0aW9uPSdgJEVDSE8gIiRsb2NrX29sZF9hcmNoaXZlX2V4dHJhY3Rpb24iIHwg JFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0NDPSdgJEVDSE8gIiRDQyIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrQ0ZMQUdTPSdgJEVDSE8gIiRDRkxB R1MiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBpbGVyPSdgJEVD SE8gIiRjb21waWxlciIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrR0ND PSdgJEVDSE8gIiRHQ0MiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9J2AkRUNITyAiJGx0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3BpcGUiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSdgJEVDSE8gIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF90b19jZGVjbCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfY3Zf c3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9J2AkRUNITyAiJGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19s aWJfcHJlZml4PSdgJEVDSE8gIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRk cmVzc19saWJfcHJlZml4IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytv YmpkaXI9J2AkRUNITyAiJG9iamRpciIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCisrTUFHSUNfQ01EPSdgJEVDSE8gIiRNQUdJQ19DTUQiIHwgJFNFRCAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnPSdgJEVD SE8gIiRsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZyIgfCAkU0VEICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfcHJvZ19jb21waWxlcl93bD0nYCRFQ0hPICIkbHRfcHJv Z19jb21waWxlcl93bCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRf cHJvZ19jb21waWxlcl9waWM9J2AkRUNITyAiJGx0X3Byb2dfY29tcGlsZXJfcGljIiB8ICRTRUQg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0n YCRFQ0hPICIkbHRfcHJvZ19jb21waWxlcl9zdGF0aWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJworK2x0X2N2X3Byb2dfY29tcGlsZXJfY19vPSdgJEVDSE8gIiRsdF9jdl9w cm9nX2NvbXBpbGVyX2NfbyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr bmVlZF9sb2Nrcz0nYCRFQ0hPICIkbmVlZF9sb2NrcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisrRFNZTVVUSUw9J2AkRUNITyAiJERTWU1VVElMIiB8ICRTRUQgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytOTUVESVQ9J2AkRUNITyAiJE5NRURJVCIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrTElQTz0nYCRFQ0hPICIkTElQTyIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrT1RPT0w9J2AkRUNITyAiJE9UT09M IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytPVE9PTDY0PSdgJEVDSE8g IiRPVE9PTDY0IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsaWJleHQ9 J2AkRUNITyAiJGxpYmV4dCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr c2hyZXh0X2NtZHM9J2AkRUNITyAiJHNocmV4dF9jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytleHRyYWN0X2V4cHN5bXNfY21kcz0nYCRFQ0hPICIkZXh0cmFjdF9l eHBzeW1zX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2FyY2hp dmVfY21kc19uZWVkX2xjPSdgJEVDSE8gIiRhcmNoaXZlX2NtZHNfbmVlZF9sYyIgfCAkU0VEICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19y dW50aW1lcz0nYCRFQ0hPICIkZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcyIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjPSdgJEVDSE8gIiRleHBvcnRfZHluYW1pY19mbGFnX3NwZWMiIHwgJFNFRCAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJworK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSdgJEVDSE8gIiR3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCisrY29tcGlsZXJfbmVlZHNfb2JqZWN0PSdgJEVDSE8gIiRjb21waWxlcl9uZWVkc19vYmpl Y3QiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK29sZF9hcmNoaXZlX2Zy b21fbmV3X2NtZHM9J2AkRUNITyAiJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiIHwgJFNFRCAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19j bWRzPSdgJEVDSE8gIiRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyIgfCAkU0VEICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrYXJjaGl2ZV9jbWRzPSdgJEVDSE8gIiRhcmNoaXZl X2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2FyY2hpdmVfZXhw c3ltX2NtZHM9J2AkRUNITyAiJGFyY2hpdmVfZXhwc3ltX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJworK21vZHVsZV9jbWRzPSdgJEVDSE8gIiRtb2R1bGVfY21kcyIg fCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbW9kdWxlX2V4cHN5bV9jbWRz PSdgJEVDSE8gIiRtb2R1bGVfZXhwc3ltX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK3dpdGhfZ251X2xkPSdgJEVDSE8gIiR3aXRoX2dudV9sZCIgfCAkU0VEICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWc9J2AkRUNI TyAiJGFsbG93X3VuZGVmaW5lZF9mbGFnIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytub191bmRlZmluZWRfZmxhZz0nYCRFQ0hPICIkbm9fdW5kZWZpbmVkX2ZsYWciIHwg JFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWM9J2AkRUNITyAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiIHwgJFNFRCAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9J2Ak RUNITyAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQiIHwgJFNFRCAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9J2AkRUNITyAiJGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK2hhcmRjb2RlX2RpcmVjdD0nYCRFQ0hPICIkaGFyZGNvZGVfZGlyZWN0IiB8ICRTRUQg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9 J2AkRUNITyAiJGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfbWludXNfTD0nYCRFQ0hPICIkaGFyZGNvZGVfbWlu dXNfTCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfc2hs aWJwYXRoX3Zhcj0nYCRFQ0hPICIkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgfCAkU0VEICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfYXV0b21hdGljPSdgJEVDSE8gIiRo YXJkY29kZV9hdXRvbWF0aWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K2luaGVyaXRfcnBhdGg9J2AkRUNITyAiJGluaGVyaXRfcnBhdGgiIHwgJFNFRCAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJworK2xpbmtfYWxsX2RlcGxpYnM9J2AkRUNITyAiJGxpbmtfYWxs X2RlcGxpYnMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2ZpeF9zcmNm aWxlX3BhdGg9J2AkRUNITyAiJGZpeF9zcmNmaWxlX3BhdGgiIHwgJFNFRCAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK2Fsd2F5c19leHBvcnRfc3ltYm9scz0nYCRFQ0hPICIkYWx3YXlz X2V4cG9ydF9zeW1ib2xzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytl eHBvcnRfc3ltYm9sc19jbWRzPSdgJEVDSE8gIiRleHBvcnRfc3ltYm9sc19jbWRzIiB8ICRTRUQg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytleGNsdWRlX2V4cHN5bXM9J2AkRUNITyAi JGV4Y2x1ZGVfZXhwc3ltcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr aW5jbHVkZV9leHBzeW1zPSdgJEVDSE8gIiRpbmNsdWRlX2V4cHN5bXMiIHwgJFNFRCAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3ByZWxpbmtfY21kcz0nYCRFQ0hPICIkcHJlbGlua19j bWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytmaWxlX2xpc3Rfc3Bl Yz0nYCRFQ0hPICIkZmlsZV9saXN0X3NwZWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJworK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSdgJEVDSE8gIiR2YXJpYWJsZXNf c2F2ZWRfZm9yX3JlbGluayIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr bmVlZF9saWJfcHJlZml4PSdgJEVDSE8gIiRuZWVkX2xpYl9wcmVmaXgiIHwgJFNFRCAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK25lZWRfdmVyc2lvbj0nYCRFQ0hPICIkbmVlZF92ZXJz aW9uIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKyt2ZXJzaW9uX3R5cGU9 J2AkRUNITyAiJHZlcnNpb25fdHlwZSIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCisrcnVucGF0aF92YXI9J2AkRUNITyAiJHJ1bnBhdGhfdmFyIiB8ICRTRUQgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKKytzaGxpYnBhdGhfdmFyPSdgJEVDSE8gIiRzaGxpYnBhdGhf dmFyIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9J2AkRUNITyAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbGlibmFtZV9zcGVjPSdgJEVDSE8g IiRsaWJuYW1lX3NwZWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2xp YnJhcnlfbmFtZXNfc3BlYz0nYCRFQ0hPICIkbGlicmFyeV9uYW1lc19zcGVjIiB8ICRTRUQgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytzb25hbWVfc3BlYz0nYCRFQ0hPICIkc29uYW1l X3NwZWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2luc3RhbGxfb3Zl cnJpZGVfbW9kZT0nYCRFQ0hPICIkaW5zdGFsbF9vdmVycmlkZV9tb2RlIiB8ICRTRUQgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytwb3N0aW5zdGFsbF9jbWRzPSdgJEVDSE8gIiRwb3N0 aW5zdGFsbF9jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytwb3N0 dW5pbnN0YWxsX2NtZHM9J2AkRUNITyAiJHBvc3R1bmluc3RhbGxfY21kcyIgfCAkU0VEICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZmluaXNoX2NtZHM9J2AkRUNITyAiJGZpbmlzaF9j bWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytmaW5pc2hfZXZhbD0n YCRFQ0hPICIkZmluaXNoX2V2YWwiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JworK2hhcmRjb2RlX2ludG9fbGlicz0nYCRFQ0hPICIkaGFyZGNvZGVfaW50b19saWJzIiB8ICRT RUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9J2AkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCisrc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9J2AkRUNITyAi JHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytoYXJkY29kZV9hY3Rpb249J2AkRUNITyAiJGhhcmRjb2RlX2FjdGlvbiIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZW5hYmxlX2Rsb3Blbj0nYCRFQ0hP ICIkZW5hYmxlX2Rsb3BlbiIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr ZW5hYmxlX2Rsb3Blbl9zZWxmPSdgJEVDSE8gIiRlbmFibGVfZGxvcGVuX3NlbGYiIHwgJFNFRCAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2VuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9 J2AkRUNITyAiJGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWMiIHwgJFNFRCAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK29sZF9zdHJpcGxpYj0nYCRFQ0hPICIkb2xkX3N0cmlwbGliIiB8 ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytzdHJpcGxpYj0nYCRFQ0hPICIk c3RyaXBsaWIiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBpbGVy X2xpYl9zZWFyY2hfZGlycz0nYCRFQ0hPICIkY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzIiB8ICRT RUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytwcmVkZXBfb2JqZWN0cz0nYCRFQ0hP ICIkcHJlZGVwX29iamVjdHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K3Bvc3RkZXBfb2JqZWN0cz0nYCRFQ0hPICIkcG9zdGRlcF9vYmplY3RzIiB8ICRTRUQgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytwcmVkZXBzPSdgJEVDSE8gIiRwcmVkZXBzIiB8ICRT RUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytwb3N0ZGVwcz0nYCRFQ0hPICIkcG9z dGRlcHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBpbGVyX2xp Yl9zZWFyY2hfcGF0aD0nYCRFQ0hPICIkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoIiB8ICRTRUQg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytMRF9DWFg9J2AkRUNITyAiJExEX0NYWCIg fCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcmVsb2FkX2ZsYWdfQ1hYPSdg JEVDSE8gIiRyZWxvYWRfZmxhZ19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK3JlbG9hZF9jbWRzX0NYWD0nYCRFQ0hPICIkcmVsb2FkX2NtZHNfQ1hYIiB8ICRTRUQg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nYCRF Q0hPICIkb2xkX2FyY2hpdmVfY21kc19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJworK2NvbXBpbGVyX0NYWD0nYCRFQ0hPICIkY29tcGlsZXJfQ1hYIiB8ICRTRUQgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytHQ0NfQ1hYPSdgJEVDSE8gIiRHQ0NfQ1hYIiB8 ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsdF9wcm9nX2NvbXBpbGVyX25v X2J1aWx0aW5fZmxhZ19DWFg9J2AkRUNITyAiJGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9m bGFnX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfcHJvZ19j b21waWxlcl93bF9DWFg9J2AkRUNITyAiJGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYIiB8ICRTRUQg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9 J2AkRUNITyAiJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSdgJEVDSE8gIiRs dF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJworK2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWD0nYCRFQ0hPICIkbHRfY3ZfcHJv Z19jb21waWxlcl9jX29fQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK KythcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9J2AkRUNITyAiJGFyY2hpdmVfY21kc19uZWVkX2xj X0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZW5hYmxlX3NoYXJl ZF93aXRoX3N0YXRpY19ydW50aW1lc19DWFg9J2AkRUNITyAiJGVuYWJsZV9zaGFyZWRfd2l0aF9z dGF0aWNfcnVudGltZXNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK KytleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPSdgJEVDSE8gIiRleHBvcnRfZHluYW1pY19m bGFnX3NwZWNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKyt3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9J2AkRUNITyAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj X0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrY29tcGlsZXJfbmVl ZHNfb2JqZWN0X0NYWD0nYCRFQ0hPICIkY29tcGlsZXJfbmVlZHNfb2JqZWN0X0NYWCIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21k c19DWFg9J2AkRUNITyAiJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfQ1hYIiB8ICRTRUQgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21k c19DWFg9J2AkRUNITyAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0NYWCIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrYXJjaGl2ZV9jbWRzX0NYWD0nYCRFQ0hP ICIkYXJjaGl2ZV9jbWRzX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn CisrYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2AkRUNITyAiJGFyY2hpdmVfZXhwc3ltX2NtZHNf Q1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKyttb2R1bGVfY21kc19D WFg9J2AkRUNITyAiJG1vZHVsZV9jbWRzX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrbW9kdWxlX2V4cHN5bV9jbWRzX0NYWD0nYCRFQ0hPICIkbW9kdWxlX2V4cHN5 bV9jbWRzX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrd2l0aF9n bnVfbGRfQ1hYPSdgJEVDSE8gIiR3aXRoX2dudV9sZF9DWFgiIHwgJFNFRCAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK2FsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nYCRFQ0hPICIkYWxs b3dfdW5kZWZpbmVkX2ZsYWdfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKKytub191bmRlZmluZWRfZmxhZ19DWFg9J2AkRUNITyAiJG5vX3VuZGVmaW5lZF9mbGFnX0NY WCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19DWFg9J2AkRUNITyAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYIiB8 ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX2xkX0NYWD0nYCRFQ0hPICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9DWFgi IHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3JfQ1hYPSdgJEVDSE8gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWCIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfZGlyZWN0X0NYWD0n YCRFQ0hPICIkaGFyZGNvZGVfZGlyZWN0X0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisraGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlX0NYWD0nYCRFQ0hPICIkaGFyZGNv ZGVfZGlyZWN0X2Fic29sdXRlX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCisraGFyZGNvZGVfbWludXNfTF9DWFg9J2AkRUNITyAiJGhhcmRjb2RlX21pbnVzX0xfQ1hY IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9zaGxpYnBh dGhfdmFyX0NYWD0nYCRFQ0hPICIkaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFgiIHwgJFNFRCAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2F1dG9tYXRpY19DWFg9J2Ak RUNITyAiJGhhcmRjb2RlX2F1dG9tYXRpY19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK2luaGVyaXRfcnBhdGhfQ1hYPSdgJEVDSE8gIiRpbmhlcml0X3JwYXRoX0NY WCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbGlua19hbGxfZGVwbGli c19DWFg9J2AkRUNITyAiJGxpbmtfYWxsX2RlcGxpYnNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKytmaXhfc3JjZmlsZV9wYXRoX0NYWD0nYCRFQ0hPICIkZml4X3Ny Y2ZpbGVfcGF0aF9DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2Fs d2F5c19leHBvcnRfc3ltYm9sc19DWFg9J2AkRUNITyAiJGFsd2F5c19leHBvcnRfc3ltYm9sc19D WFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2V4cG9ydF9zeW1ib2xz X2NtZHNfQ1hYPSdgJEVDSE8gIiRleHBvcnRfc3ltYm9sc19jbWRzX0NYWCIgfCAkU0VEICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZXhjbHVkZV9leHBzeW1zX0NYWD0nYCRFQ0hPICIk ZXhjbHVkZV9leHBzeW1zX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn CisraW5jbHVkZV9leHBzeW1zX0NYWD0nYCRFQ0hPICIkaW5jbHVkZV9leHBzeW1zX0NYWCIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcHJlbGlua19jbWRzX0NYWD0nYCRF Q0hPICIkcHJlbGlua19jbWRzX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCisrZmlsZV9saXN0X3NwZWNfQ1hYPSdgJEVDSE8gIiRmaWxlX2xpc3Rfc3BlY19DWFgiIHwg JFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2FjdGlvbl9DWFg9 J2AkRUNITyAiJGhhcmRjb2RlX2FjdGlvbl9DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19DWFg9J2AkRUNITyAiJGNvbXBp bGVyX2xpYl9zZWFyY2hfZGlyc19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK3ByZWRlcF9vYmplY3RzX0NYWD0nYCRFQ0hPICIkcHJlZGVwX29iamVjdHNfQ1hYIiB8 ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytwb3N0ZGVwX29iamVjdHNfQ1hY PSdgJEVDSE8gIiRwb3N0ZGVwX29iamVjdHNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytwcmVkZXBzX0NYWD0nYCRFQ0hPICIkcHJlZGVwc19DWFgiIHwgJFNFRCAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3Bvc3RkZXBzX0NYWD0nYCRFQ0hPICIkcG9z dGRlcHNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytjb21waWxl cl9saWJfc2VhcmNoX3BhdGhfQ1hYPSdgJEVDSE8gIiRjb21waWxlcl9saWJfc2VhcmNoX3BhdGhf Q1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKysKKytMVENDPSckTFRD QycKKytMVENGTEFHUz0nJExUQ0ZMQUdTJworK2NvbXBpbGVyPSckY29tcGlsZXJfREVGQVVMVCcK KysKKysjIEEgZnVuY3Rpb24gdGhhdCBpcyB1c2VkIHdoZW4gdGhlcmUgaXMgbm8gcHJpbnQgYnVp bHRpbiBvciBwcmludGYuCisrZnVuY19mYWxsYmFja19lY2hvICgpCisreworKyAgZXZhbCAnY2F0 IDw8X0xURUNIT19FT0YKKytcJDEKKytfTFRFQ0hPX0VPRicKKyt9CisrCisrIyBRdW90ZSBldmFs ZWQgc3RyaW5ncy4KKytmb3IgdmFyIGluIFNIRUxMIFwKKytFQ0hPIFwKKytTRUQgXAorK0dSRVAg XAorK0VHUkVQIFwKKytGR1JFUCBcCisrTEQgXAorK05NIFwKKytMTl9TIFwKKytsdF9TUDJOTCBc CisrbHRfTkwyU1AgXAorK3JlbG9hZF9mbGFnIFwKKytPQkpEVU1QIFwKKytkZXBsaWJzX2NoZWNr X21ldGhvZCBcCisrZmlsZV9tYWdpY19jbWQgXAorK0FSIFwKKytBUl9GTEFHUyBcCisrU1RSSVAg XAorK1JBTkxJQiBcCisrQ0MgXAorK0NGTEFHUyBcCisrY29tcGlsZXIgXAorK2x0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3BpcGUgXAorK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIFwK KytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyBcCisrbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeCBcCisrbHRfcHJvZ19j b21waWxlcl9ub19idWlsdGluX2ZsYWcgXAorK2x0X3Byb2dfY29tcGlsZXJfd2wgXAorK2x0X3By b2dfY29tcGlsZXJfcGljIFwKKytsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyBcCisrbHRfY3ZfcHJv Z19jb21waWxlcl9jX28gXAorK25lZWRfbG9ja3MgXAorK0RTWU1VVElMIFwKKytOTUVESVQgXAor K0xJUE8gXAorK09UT09MIFwKKytPVE9PTDY0IFwKKytzaHJleHRfY21kcyBcCisrZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjIFwKKyt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyBcCisrY29tcGlsZXJf bmVlZHNfb2JqZWN0IFwKKyt3aXRoX2dudV9sZCBcCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWcgXAor K25vX3VuZGVmaW5lZF9mbGFnIFwKKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIFwKKytoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX2xkIFwKKytoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIFwK KytmaXhfc3JjZmlsZV9wYXRoIFwKKytleGNsdWRlX2V4cHN5bXMgXAorK2luY2x1ZGVfZXhwc3lt cyBcCisrZmlsZV9saXN0X3NwZWMgXAorK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIFwKKyts aWJuYW1lX3NwZWMgXAorK2xpYnJhcnlfbmFtZXNfc3BlYyBcCisrc29uYW1lX3NwZWMgXAorK2lu c3RhbGxfb3ZlcnJpZGVfbW9kZSBcCisrZmluaXNoX2V2YWwgXAorK29sZF9zdHJpcGxpYiBcCisr c3RyaXBsaWIgXAorK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycyBcCisrcHJlZGVwX29iamVjdHMg XAorK3Bvc3RkZXBfb2JqZWN0cyBcCisrcHJlZGVwcyBcCisrcG9zdGRlcHMgXAorK2NvbXBpbGVy X2xpYl9zZWFyY2hfcGF0aCBcCisrTERfQ1hYIFwKKytyZWxvYWRfZmxhZ19DWFggXAorK2NvbXBp bGVyX0NYWCBcCisrbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYIFwKKytsdF9w cm9nX2NvbXBpbGVyX3dsX0NYWCBcCisrbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIFwKKytsdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19DWFggXAorK2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCBc CisrZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWCBcCisrd2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWNfQ1hYIFwKKytjb21waWxlcl9uZWVkc19vYmplY3RfQ1hYIFwKKyt3aXRoX2dudV9sZF9DWFgg XAorK2FsbG93X3VuZGVmaW5lZF9mbGFnX0NYWCBcCisrbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYIFwK KytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWCBcCisraGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19sZF9DWFggXAorK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYIFwKKytmaXhfc3Jj ZmlsZV9wYXRoX0NYWCBcCisrZXhjbHVkZV9leHBzeW1zX0NYWCBcCisraW5jbHVkZV9leHBzeW1z X0NYWCBcCisrZmlsZV9saXN0X3NwZWNfQ1hYIFwKKytjb21waWxlcl9saWJfc2VhcmNoX2RpcnNf Q1hYIFwKKytwcmVkZXBfb2JqZWN0c19DWFggXAorK3Bvc3RkZXBfb2JqZWN0c19DWFggXAorK3By ZWRlcHNfQ1hYIFwKKytwb3N0ZGVwc19DWFggXAorK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9D WFg7IGRvCisrICAgIGNhc2UgXGBldmFsIFxcXFxcJEVDSE8gXFxcXCIiXFxcXFwkXCR2YXIiXFxc XCJcYCBpbgorKyAgICAqW1xcXFxcXFxgXFwiXFxcJF0qKQorKyAgICAgIGV2YWwgImx0X1wkdmFy PVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiXFxcJFwkdmFyXFwiIHwgXFxcJFNFRCBcXCJcXFwkc2Vk X3F1b3RlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCisrICAgICAgOzsKKysgICAgKikKKysgICAgICBl dmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKKysgICAgICA7OworKyAgICBl c2FjCisrZG9uZQorKworKyMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5ncy4KKytm b3IgdmFyIGluIHJlbG9hZF9jbWRzIFwKKytvbGRfcG9zdGluc3RhbGxfY21kcyBcCisrb2xkX3Bv c3R1bmluc3RhbGxfY21kcyBcCisrb2xkX2FyY2hpdmVfY21kcyBcCisrZXh0cmFjdF9leHBzeW1z X2NtZHMgXAorK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMgXAorK29sZF9hcmNoaXZlX2Zyb21f ZXhwc3ltc19jbWRzIFwKKythcmNoaXZlX2NtZHMgXAorK2FyY2hpdmVfZXhwc3ltX2NtZHMgXAor K21vZHVsZV9jbWRzIFwKKyttb2R1bGVfZXhwc3ltX2NtZHMgXAorK2V4cG9ydF9zeW1ib2xzX2Nt ZHMgXAorK3ByZWxpbmtfY21kcyBcCisrcG9zdGluc3RhbGxfY21kcyBcCisrcG9zdHVuaW5zdGFs bF9jbWRzIFwKKytmaW5pc2hfY21kcyBcCisrc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIFwKKytz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyBcCisrcmVsb2FkX2NtZHNfQ1hYIFwKKytvbGRfYXJj aGl2ZV9jbWRzX0NYWCBcCisrb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19DWFggXAorK29sZF9h cmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0NYWCBcCisrYXJjaGl2ZV9jbWRzX0NYWCBcCisrYXJj aGl2ZV9leHBzeW1fY21kc19DWFggXAorK21vZHVsZV9jbWRzX0NYWCBcCisrbW9kdWxlX2V4cHN5 bV9jbWRzX0NYWCBcCisrZXhwb3J0X3N5bWJvbHNfY21kc19DWFggXAorK3ByZWxpbmtfY21kc19D WFg7IGRvCisrICAgIGNhc2UgXGBldmFsIFxcXFxcJEVDSE8gXFxcXCIiXFxcXFwkXCR2YXIiXFxc XCJcYCBpbgorKyAgICAqW1xcXFxcXFxgXFwiXFxcJF0qKQorKyAgICAgIGV2YWwgImx0X1wkdmFy PVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiXFxcJFwkdmFyXFwiIHwgXFxcJFNFRCAtZSBcXCJcXFwk ZG91YmxlX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCIgLWUgXFwi XFxcJGRlbGF5X3ZhcmlhYmxlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCisrICAgICAgOzsKKysgICAg KikKKysgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKKysgICAg ICA7OworKyAgICBlc2FjCisrZG9uZQorKworK2FjX2F1eF9kaXI9JyRhY19hdXhfZGlyJworK3hz aV9zaGVsbD0nJHhzaV9zaGVsbCcKKytsdF9zaGVsbF9hcHBlbmQ9JyRsdF9zaGVsbF9hcHBlbmQn CisrCisrIyBTZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25z IHdoaWNoIGFsbG93IG91cgorKyMgY29tbWFuZHMgdGhyb3VnaCB3aXRob3V0IHJlbW92YWwgb2Yg XCBlc2NhcGVzIElOSVQuCisraWYgdGVzdCAtbiAiXCR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVu CisrICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKytmaQorKworKworKyAgICBQQUNLQUdFPSckUEFD S0FHRScKKysgICAgVkVSU0lPTj0nJFZFUlNJT04nCisrICAgIFRJTUVTVEFNUD0nJFRJTUVTVEFN UCcKKysgICAgUk09JyRSTScKKysgICAgb2ZpbGU9JyRvZmlsZScKKysKKysKKysKKysKKysKKysK KytfQUNFT0YKKysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVf ZmFpbD0xCisrCisrIyBIYW5kbGluZyBvZiBhcmd1bWVudHMuCisrZm9yIGFjX2NvbmZpZ190YXJn ZXQgaW4gJGFjX2NvbmZpZ190YXJnZXRzCisrZG8KKysgIGNhc2UgJGFjX2NvbmZpZ190YXJnZXQg aW4KKysgICAgInNvY2kvY29uZmlnLmgiKSBDT05GSUdfSEVBREVSUz0iJENPTkZJR19IRUFERVJT IHNvY2kvY29uZmlnLmgiIDs7CisrICAgICJkZXBmaWxlcyIpIENPTkZJR19DT01NQU5EUz0iJENP TkZJR19DT01NQU5EUyBkZXBmaWxlcyIgOzsKKysgICAgImxpYnRvb2wiKSBDT05GSUdfQ09NTUFO RFM9IiRDT05GSUdfQ09NTUFORFMgbGlidG9vbCIgOzsKKysgICAgIk1ha2VmaWxlIikgQ09ORklH X0ZJTEVTPSIkQ09ORklHX0ZJTEVTIE1ha2VmaWxlIiA7OworKyAgICAic29jaS1jb25maWciKSBD T05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS1jb25maWciIDs7CisrICAgICJzb2NpLnBj IikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kucGMiIDs7CisrICAgICJzb2NpL01h a2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvTWFrZWZpbGUiIDs7Cisr ICAgICJzb2NpL2NvcmUvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29j aS9jb3JlL01ha2VmaWxlIiA7OworKyAgICAic29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUiKSBDT05G SUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUiIDs7CisrICAg ICJzb2NpL2JhY2tlbmRzL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNv Y2kvYmFja2VuZHMvTWFrZWZpbGUiIDs7CisrICAgICJzb2NpL2JhY2tlbmRzL215c3FsL01ha2Vm aWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvbXlzcWwvTWFr ZWZpbGUiIDs7CisrICAgICJzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUiKSBDT05G SUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxl IiA7OworKyAgICAic29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlIikgQ09ORklHX0ZJ TEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZSIgOzsK KysgICAgInNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlIikgQ09ORklHX0ZJ TEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxl IiA7OworKyAgICAic29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9 IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUiIDs7CisrICAgICJz b2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklH X0ZJTEVTIHNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUiIDs7CisrICAgICJtYW4v TWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgbWFuL01ha2VmaWxlIiA7Owor KyAgICAiZG9jL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGRvYy9NYWtl ZmlsZSIgOzsKKysgICAgImRvYy9iYWNrZW5kcy9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENP TkZJR19GSUxFUyBkb2MvYmFja2VuZHMvTWFrZWZpbGUiIDs7CisrICAgICJidWlsZC9NYWtlZmls ZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBidWlsZC9NYWtlZmlsZSIgOzsKKysgICAg ImJ1aWxkL3VuaXgvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgYnVpbGQv dW5peC9NYWtlZmlsZSIgOzsKKysgICAgImJ1aWxkL21zdmM4MC9NYWtlZmlsZSIpIENPTkZJR19G SUxFUz0iJENPTkZJR19GSUxFUyBidWlsZC9tc3ZjODAvTWFrZWZpbGUiIDs7CisrICAgICJidWls ZC9tc3ZjODAvZGxsL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGJ1aWxk L21zdmM4MC9kbGwvTWFrZWZpbGUiIDs7CisrICAgICJidWlsZC9tc3ZjODAvbGliL01ha2VmaWxl IikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUi IDs7CisrCisrICAqKSBhc19mbl9lcnJvciAkPyAiaW52YWxpZCBhcmd1bWVudDogXGAkYWNfY29u ZmlnX3RhcmdldCciICIkTElORU5PIiA1OzsKKysgIGVzYWMKKytkb25lCisrCisrCisrIyBJZiB0 aGUgdXNlciBkaWQgbm90IHVzZSB0aGUgYXJndW1lbnRzIHRvIHNwZWNpZnkgdGhlIGl0ZW1zIHRv IGluc3RhbnRpYXRlLAorKyMgdGhlbiB0aGUgZW52dmFyIGludGVyZmFjZSBpcyB1c2VkLiAgU2V0 IG9ubHkgdGhvc2UgdGhhdCBhcmUgbm90LgorKyMgV2UgdXNlIHRoZSBsb25nIGZvcm0gZm9yIHRo ZSBkZWZhdWx0IGFzc2lnbm1lbnQgYmVjYXVzZSBvZiBhbiBleHRyZW1lbHkKKysjIGJpemFycmUg YnVnIG9uIFN1bk9TIDQuMS4zLgorK2lmICRhY19uZWVkX2RlZmF1bHRzOyB0aGVuCisrICB0ZXN0 ICIke0NPTkZJR19GSUxFUytzZXR9IiA9IHNldCB8fCBDT05GSUdfRklMRVM9JGNvbmZpZ19maWxl cworKyAgdGVzdCAiJHtDT05GSUdfSEVBREVSUytzZXR9IiA9IHNldCB8fCBDT05GSUdfSEVBREVS Uz0kY29uZmlnX2hlYWRlcnMKKysgIHRlc3QgIiR7Q09ORklHX0NPTU1BTkRTK3NldH0iID0gc2V0 IHx8IENPTkZJR19DT01NQU5EUz0kY29uZmlnX2NvbW1hbmRzCisrZmkKKysKKysjIEhhdmUgYSB0 ZW1wb3JhcnkgZGlyZWN0b3J5IGZvciBjb252ZW5pZW5jZS4gIE1ha2UgaXQgaW4gdGhlIGJ1aWxk IHRyZWUKKysjIHNpbXBseSBiZWNhdXNlIHRoZXJlIGlzIG5vIHJlYXNvbiBhZ2FpbnN0IGhhdmlu ZyBpdCBoZXJlLCBhbmQgaW4gYWRkaXRpb24sCisrIyBjcmVhdGluZyBhbmQgbW92aW5nIGZpbGVz IGZyb20gL3RtcCBjYW4gc29tZXRpbWVzIGNhdXNlIHByb2JsZW1zLgorKyMgSG9vayBmb3IgaXRz IHJlbW92YWwgdW5sZXNzIGRlYnVnZ2luZy4KKysjIE5vdGUgdGhhdCB0aGVyZSBpcyBhIHNtYWxs IHdpbmRvdyBpbiB3aGljaCB0aGUgZGlyZWN0b3J5IHdpbGwgbm90IGJlIGNsZWFuZWQ6CisrIyBh ZnRlciBpdHMgY3JlYXRpb24gYnV0IGJlZm9yZSBpdHMgbmFtZSBoYXMgYmVlbiBhc3NpZ25lZCB0 byBgJHRtcCcuCisrJGRlYnVnIHx8CisreworKyAgdG1wPQorKyAgdHJhcCAnZXhpdF9zdGF0dXM9 JD8KKysgIHsgdGVzdCAteiAiJHRtcCIgfHwgdGVzdCAhIC1kICIkdG1wIiB8fCBybSAtZnIgIiR0 bXAiOyB9ICYmIGV4aXQgJGV4aXRfc3RhdHVzCisrJyAwCisrICB0cmFwICdhc19mbl9leGl0IDEn IDEgMiAxMyAxNQorK30KKysjIENyZWF0ZSBhIChzZWN1cmUpIHRtcCBkaXJlY3RvcnkgZm9yIHRt cCBmaWxlcy4KKysKKyt7CisrICB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1wIC1kICIuL2NvbmZY WFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYKKysgIHRlc3QgLW4gIiR0bXAiICYmIHRlc3QgLWQgIiR0 bXAiCisrfSAgfHwKKyt7CisrICB0bXA9Li9jb25mJCQtJFJBTkRPTQorKyAgKHVtYXNrIDA3NyAm JiBta2RpciAiJHRtcCIpCisrfSB8fCBhc19mbl9lcnJvciAkPyAiY2Fubm90IGNyZWF0ZSBhIHRl bXBvcmFyeSBkaXJlY3RvcnkgaW4gLiIgIiRMSU5FTk8iIDUKKysKKysjIFNldCB1cCB0aGUgc2Ny aXB0cyBmb3IgQ09ORklHX0ZJTEVTIHNlY3Rpb24uCisrIyBObyBuZWVkIHRvIGdlbmVyYXRlIHRo ZW0gaWYgdGhlcmUgYXJlIG5vIENPTkZJR19GSUxFUy4KKysjIFRoaXMgaGFwcGVucyBmb3IgaW5z dGFuY2Ugd2l0aCBgLi9jb25maWcuc3RhdHVzIGNvbmZpZy5oJy4KKytpZiB0ZXN0IC1uICIkQ09O RklHX0ZJTEVTIjsgdGhlbgorKworKworK2FjX2NyPWBlY2hvIFggfCB0ciBYICdcMDE1J2AKKysj IE9uIGN5Z3dpbiwgYmFzaCBjYW4gZWF0IFxyIGluc2lkZSBgYCBpZiB0aGUgdXNlciByZXF1ZXN0 ZWQgaWduY3IuCisrIyBCdXQgd2Uga25vdyBvZiBubyBvdGhlciBzaGVsbCB3aGVyZSBhY19jciB3 b3VsZCBiZSBlbXB0eSBhdCB0aGlzCisrIyBwb2ludCwgc28gd2UgY2FuIHVzZSBhIGJhc2hpc20g YXMgYSBmYWxsYmFjay4KKytpZiB0ZXN0ICJ4JGFjX2NyIiA9IHg7IHRoZW4KKysgIGV2YWwgYWNf Y3I9XCRcJ1xcclwnCisrZmkKKythY19jc19hd2tfY3I9YCRBV0sgJ0JFR0lOIHsgcHJpbnQgImFc cmIiIH0nIDwvZGV2L251bGwgMj4vZGV2L251bGxgCisraWYgdGVzdCAiJGFjX2NzX2F3a19jciIg PSAiYSR7YWNfY3J9YiI7IHRoZW4KKysgIGFjX2NzX2F3a19jcj0nXFxyJworK2Vsc2UKKysgIGFj X2NzX2F3a19jcj0kYWNfY3IKKytmaQorKworK2VjaG8gJ0JFR0lOIHsnID4iJHRtcC9zdWJzMS5h d2siICYmCisrX0FDRU9GCisrCisrCisreworKyAgZWNobyAiY2F0ID5jb25mJCRzdWJzLmF3ayA8 PF9BQ0VPRiIgJiYKKysgIGVjaG8gIiRhY19zdWJzdF92YXJzIiB8IHNlZCAncy8uKi8mISQmJGFj X2RlbGltLycgJiYKKysgIGVjaG8gIl9BQ0VPRiIKKyt9ID5jb25mJCRzdWJzLnNoIHx8CisrICBh c19mbl9lcnJvciAkPyAiY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiICIkTElORU5PIiA1 CisrYWNfZGVsaW1fbnVtPWBlY2hvICIkYWNfc3Vic3RfdmFycyIgfCBncmVwIC1jICdeJ2AKKyth Y19kZWxpbT0nJSFfISMgJworK2ZvciBhY19sYXN0X3RyeSBpbiBmYWxzZSBmYWxzZSBmYWxzZSBm YWxzZSBmYWxzZSA6OyBkbworKyAgLiAuL2NvbmYkJHN1YnMuc2ggfHwKKysgICAgYXNfZm5fZXJy b3IgJD8gImNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiAiJExJTkVOTyIgNQorKworKyAg YWNfZGVsaW1fbj1gc2VkIC1uICJzLy4qJGFjX2RlbGltXCQvWC9wIiBjb25mJCRzdWJzLmF3ayB8 IGdyZXAgLWMgWGAKKysgIGlmIHRlc3QgJGFjX2RlbGltX24gPSAkYWNfZGVsaW1fbnVtOyB0aGVu CisrICAgIGJyZWFrCisrICBlbGlmICRhY19sYXN0X3RyeTsgdGhlbgorKyAgICBhc19mbl9lcnJv ciAkPyAiY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiICIkTElORU5PIiA1CisrICBlbHNl CisrICAgIGFjX2RlbGltPSIkYWNfZGVsaW0hJGFjX2RlbGltIF8kYWNfZGVsaW0hISAiCisrICBm aQorK2RvbmUKKytybSAtZiBjb25mJCRzdWJzLnNoCisrCisrY2F0ID4+JENPTkZJR19TVEFUVVMg PDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrY2F0ID4+IlwkdG1wL3N1YnMxLmF3ayIgPDxc XF9BQ0FXSyAmJgorK19BQ0VPRgorK3NlZCAtbiAnCisraAorK3MvXi9TWyIvOyBzLyEuKi8iXT0v CisrcAorK2cKKytzL15bXiFdKiEvLworKzpyZXBsCisrdCByZXBsCisrcy8nIiRhY19kZWxpbSIn JC8vCisrdCBkZWxpbQorKzpubAorK2gKKytzL1woLlx7MTQ4XH1cKS4uKi9cMS8KKyt0IG1vcmUx Cisrcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvXFxuIlxcLworK3AKKytuCisrYiByZXBsCisr Om1vcmUxCisrcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIlxcLworK3AKKytnCisrcy8uXHsx NDhcfS8vCisrdCBubAorKzpkZWxpbQorK2gKKytzL1woLlx7MTQ4XH1cKS4uKi9cMS8KKyt0IG1v cmUyCisrcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIi8KKytwCisrYgorKzptb3JlMgorK3Mv WyJcXF0vXFwmL2c7IHMvXi8iLzsgcy8kLyJcXC8KKytwCisrZworK3MvLlx7MTQ4XH0vLworK3Qg ZGVsaW0KKysnIDxjb25mJCRzdWJzLmF3ayB8IHNlZCAnCisrL15bXiIiXS97CisrICBOCisrICBz L1xuLy8KKyt9CisrJyA+PiRDT05GSUdfU1RBVFVTIHx8IGFjX3dyaXRlX2ZhaWw9MQorK3JtIC1m IGNvbmYkJHN1YnMuYXdrCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3Jp dGVfZmFpbD0xCisrX0FDQVdLCisrY2F0ID4+IlwkdG1wL3N1YnMxLmF3ayIgPDxfQUNBV0sgJiYK KysgIGZvciAoa2V5IGluIFMpIFNfaXNfc2V0W2tleV0gPSAxCisrICBGUyA9ICIHIgorKworK30K Kyt7CisrICBsaW5lID0gJCAwCisrICBuZmllbGRzID0gc3BsaXQobGluZSwgZmllbGQsICJAIikK KysgIHN1YnN0ZWQgPSAwCisrICBsZW4gPSBsZW5ndGgoZmllbGRbMV0pCisrICBmb3IgKGkgPSAy OyBpIDwgbmZpZWxkczsgaSsrKSB7CisrICAgIGtleSA9IGZpZWxkW2ldCisrICAgIGtleWxlbiA9 IGxlbmd0aChrZXkpCisrICAgIGlmIChTX2lzX3NldFtrZXldKSB7CisrICAgICAgdmFsdWUgPSBT W2tleV0KKysgICAgICBsaW5lID0gc3Vic3RyKGxpbmUsIDEsIGxlbikgIiIgdmFsdWUgIiIgc3Vi c3RyKGxpbmUsIGxlbiArIGtleWxlbiArIDMpCisrICAgICAgbGVuICs9IGxlbmd0aCh2YWx1ZSkg KyBsZW5ndGgoZmllbGRbKytpXSkKKysgICAgICBzdWJzdGVkID0gMQorKyAgICB9IGVsc2UKKysg ICAgICBsZW4gKz0gMSArIGtleWxlbgorKyAgfQorKworKyAgcHJpbnQgbGluZQorK30KKysKKytf QUNBV0sKKytfQUNFT0YKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3Jp dGVfZmFpbD0xCisraWYgc2VkICJzLyRhY19jci8vIiA8IC9kZXYvbnVsbCA+IC9kZXYvbnVsbCAy PiYxOyB0aGVuCisrICBzZWQgInMvJGFjX2NyXCQvLzsgcy8kYWNfY3IvJGFjX2NzX2F3a19jci9n IgorK2Vsc2UKKysgIGNhdAorK2ZpIDwgIiR0bXAvc3ViczEuYXdrIiA+ICIkdG1wL3N1YnMuYXdr IiBcCisrICB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IHNldHVwIGNvbmZpZyBmaWxlcyBt YWNoaW5lcnkiICIkTElORU5PIiA1CisrX0FDRU9GCisrCisrIyBWUEFUSCBtYXkgY2F1c2UgdHJv dWJsZSB3aXRoIHNvbWUgbWFrZXMsIHNvIHdlIHJlbW92ZSBzb2xlICQoc3JjZGlyKSwKKysjICR7 c3JjZGlyfSBhbmQgQHNyY2RpckAgZW50cmllcyBmcm9tIFZQQVRIIGlmIHNyY2RpciBpcyAiLiIs IHN0cmlwIGxlYWRpbmcgYW5kCisrIyB0cmFpbGluZyBjb2xvbnMgYW5kIHRoZW4gcmVtb3ZlIHRo ZSB3aG9sZSBsaW5lIGlmIFZQQVRIIGJlY29tZXMgZW1wdHkKKysjIChhY3R1YWxseSB3ZSBsZWF2 ZSBhbiBlbXB0eSBsaW5lIHRvIHByZXNlcnZlIGxpbmUgbnVtYmVycykuCisraWYgdGVzdCAieCRz cmNkaXIiID0geC47IHRoZW4KKysgIGFjX3Zwc3ViPScvXlsJIF0qVlBBVEhbCSBdKj1bCSBdKi97 CisraAorK3MvLy8KKytzL14vOi8KKytzL1sJIF0qJC86LworK3MvOlwkKHNyY2Rpcik6LzovZwor K3MvOlwke3NyY2Rpcn06LzovZworK3MvOkBzcmNkaXJAOi86L2cKKytzL146Ki8vCisrcy86KiQv LworK3gKKytzL1woPVsJIF0qXCkuKi9cMS8KKytHCisrcy9cbi8vCisrcy9eW149XSo9WwkgXSok Ly8KKyt9JworIGZpCisgCistbWtkaXIgLXAgYnVpbGQvdW5peC9sb2NhbAorLXBhdGg9ImJ1aWxk L3VuaXgvbG9jYWwvcGFyYW1ldGVycyIKKy1ybSAtZiAkcGF0aAorLXRvdWNoICRwYXRoCistZm9y IHBhcmFtIGluICQqCistZG8KKy0gICAgICAgIGVjaG8gJHBhcmFtID4+ICRwYXRoCistZG9uZQor LQorLXByaW50ZiAnVHJ5aW5nIHRvIGZpbmQgdGhlIFRjbCBpbnRlcnByZXRlci4uLiAnCistdGNs X2ZvdW5kPTAKKy0KKy1mb3IgcGF0aCBpbiAiL3Vzci9iaW4vdGNsc2giIFwKKy0gICAgICAgICAg ICAiL3Vzci9sb2NhbC9iaW4vdGNsc2g4LjUiIFwKKy0gICAgICAgICAgICAiL3Vzci9sb2NhbC9i aW4vdGNsc2g4LjQiIFwKKy0gICAgICAgICAgICAiL3Vzci9sb2NhbC9iaW4vdGNsc2g4LjMiOyBk bworLSAgICBpZiBbIC14ICRwYXRoIF0KKy0gICAgdGhlbgorLSAgICAgICAgZWNobyAkcGF0aCA+ IGJ1aWxkL3VuaXgvbG9jYWwvdGNsCistICAgICAgICBlY2hvICRwYXRoCistICAgICAgICB0Y2xf Zm91bmQ9MQorLSAgICAgICAgYnJlYWsKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0Yg fHwgYWNfd3JpdGVfZmFpbD0xCisrZmkgIyB0ZXN0IC1uICIkQ09ORklHX0ZJTEVTIgorKworKyMg U2V0IHVwIHRoZSBzY3JpcHRzIGZvciBDT05GSUdfSEVBREVSUyBzZWN0aW9uLgorKyMgTm8gbmVl ZCB0byBnZW5lcmF0ZSB0aGVtIGlmIHRoZXJlIGFyZSBubyBDT05GSUdfSEVBREVSUy4KKysjIFRo aXMgaGFwcGVucyBmb3IgaW5zdGFuY2Ugd2l0aCBgLi9jb25maWcuc3RhdHVzIE1ha2VmaWxlJy4K KytpZiB0ZXN0IC1uICIkQ09ORklHX0hFQURFUlMiOyB0aGVuCisrY2F0ID4iJHRtcC9kZWZpbmVz LmF3ayIgPDxcX0FDQVdLIHx8CisrQkVHSU4geworK19BQ0VPRgorKworKyMgVHJhbnNmb3JtIGNv bmZkZWZzLmggaW50byBhbiBhd2sgc2NyaXB0IGBkZWZpbmVzLmF3aycsIGVtYmVkZGVkIGFzCisr IyBoZXJlLWRvY3VtZW50IGluIGNvbmZpZy5zdGF0dXMsIHRoYXQgc3Vic3RpdHV0ZXMgdGhlIHBy b3BlciB2YWx1ZXMgaW50bworKyMgY29uZmlnLmguaW4gdG8gcHJvZHVjZSBjb25maWcuaC4KKysK KysjIENyZWF0ZSBhIGRlbGltaXRlciBzdHJpbmcgdGhhdCBkb2VzIG5vdCBleGlzdCBpbiBjb25m ZGVmcy5oLCB0byBlYXNlCisrIyBoYW5kbGluZyBvZiBsb25nIGxpbmVzLgorK2FjX2RlbGltPScl IV8hIyAnCisrZm9yIGFjX2xhc3RfdHJ5IGluIGZhbHNlIGZhbHNlIDo7IGRvCisrICBhY190PWBz ZWQgLW4gIi8kYWNfZGVsaW0vcCIgY29uZmRlZnMuaGAKKysgIGlmIHRlc3QgLXogIiRhY190Ijsg dGhlbgorKyAgICBicmVhaworKyAgZWxpZiAkYWNfbGFzdF90cnk7IHRoZW4KKysgICAgYXNfZm5f ZXJyb3IgJD8gImNvdWxkIG5vdCBtYWtlICRDT05GSUdfSEVBREVSUyIgIiRMSU5FTk8iIDUKKysg IGVsc2UKKysgICAgYWNfZGVsaW09IiRhY19kZWxpbSEkYWNfZGVsaW0gXyRhY19kZWxpbSEhICIK KysgIGZpCisrZG9uZQorKworKyMgRm9yIHRoZSBhd2sgc2NyaXB0LCBEIGlzIGFuIGFycmF5IG9m IG1hY3JvIHZhbHVlcyBrZXllZCBieSBuYW1lLAorKyMgbGlrZXdpc2UgUCBjb250YWlucyBtYWNy byBwYXJhbWV0ZXJzIGlmIGFueS4gIFByZXNlcnZlIGJhY2tzbGFzaAorKyMgbmV3bGluZSBzZXF1 ZW5jZXMuCisrCisrYWNfd29yZF9yZT1bXyRhc19jcl9MZXR0ZXJzXVtfJGFzX2NyX2FsbnVtXSoK KytzZWQgLW4gJworK3MvLlx7MTQ4XH0vJiciJGFjX2RlbGltIicvZworK3QgcnNldAorKzpyc2V0 Cisrcy9eWwkgXSojWwkgXSpkZWZpbmVbCSBdWwkgXSovIC8KKyt0IGRlZgorK2QKKys6ZGVmCisr cy9cXCQvLworK3QgYnNubAorK3MvWyJcXF0vXFwmL2cKKytzL14gXCgnIiRhY193b3JkX3JlIidc KVwoKFteKCldKilcKVsJIF0qXCguKlwpL1BbIlwxIl09IlwyIlwKKytEWyJcMSJdPSIgXDMiL3AK KytzL14gXCgnIiRhY193b3JkX3JlIidcKVsJIF0qXCguKlwpL0RbIlwxIl09IiBcMiIvcAorK2QK Kys6YnNubAorK3MvWyJcXF0vXFwmL2cKKytzL14gXCgnIiRhY193b3JkX3JlIidcKVwoKFteKCld KilcKVsJIF0qXCguKlwpL1BbIlwxIl09IlwyIlwKKytEWyJcMSJdPSIgXDNcXFxcXFxuIlxcL3AK Kyt0IGNvbnQKKytzL14gXCgnIiRhY193b3JkX3JlIidcKVsJIF0qXCguKlwpL0RbIlwxIl09IiBc MlxcXFxcXG4iXFwvcAorK3QgY29udAorK2QKKys6Y29udAorK24KKytzLy5cezE0OFx9LyYnIiRh Y19kZWxpbSInL2cKKyt0IGNsZWFyCisrOmNsZWFyCisrcy9cXCQvLworK3QgYnNubGMKKytzL1si XFxdL1xcJi9nOyBzL14vIi87IHMvJC8iL3AKKytkCisrOmJzbmxjCisrcy9bIlxcXS9cXCYvZzsg cy9eLyIvOyBzLyQvXFxcXFxcbiJcXC9wCisrYiBjb250CisrJyA8Y29uZmRlZnMuaCB8IHNlZCAn Cisrcy8nIiRhY19kZWxpbSInLyJcXFwKKysiL2cnID4+JENPTkZJR19TVEFUVVMgfHwgYWNfd3Jp dGVfZmFpbD0xCisrCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVf ZmFpbD0xCisrICBmb3IgKGtleSBpbiBEKSBEX2lzX3NldFtrZXldID0gMQorKyAgRlMgPSAiByIK Kyt9CisrL15bXHQgXSojW1x0IF0qKGRlZmluZXx1bmRlZilbXHQgXSskYWNfd29yZF9yZShbXHQg KF18XCQpLyB7CisrICBsaW5lID0gXCQgMAorKyAgc3BsaXQobGluZSwgYXJnLCAiICIpCisrICBp ZiAoYXJnWzFdID09ICIjIikgeworKyAgICBkZWZ1bmRlZiA9IGFyZ1syXQorKyAgICBtYWMxID0g YXJnWzNdCisrICB9IGVsc2UgeworKyAgICBkZWZ1bmRlZiA9IHN1YnN0cihhcmdbMV0sIDIpCisr ICAgIG1hYzEgPSBhcmdbMl0KKysgIH0KKysgIHNwbGl0KG1hYzEsIG1hYzIsICIoIikgIykKKysg IG1hY3JvID0gbWFjMlsxXQorKyAgcHJlZml4ID0gc3Vic3RyKGxpbmUsIDEsIGluZGV4KGxpbmUs IGRlZnVuZGVmKSAtIDEpCisrICBpZiAoRF9pc19zZXRbbWFjcm9dKSB7CisrICAgICMgUHJlc2Vy dmUgdGhlIHdoaXRlIHNwYWNlIHN1cnJvdW5kaW5nIHRoZSAiIyIuCisrICAgIHByaW50IHByZWZp eCAiZGVmaW5lIiwgbWFjcm8gUFttYWNyb10gRFttYWNyb10KKysgICAgbmV4dAorKyAgfSBlbHNl IHsKKysgICAgIyBSZXBsYWNlICN1bmRlZiB3aXRoIGNvbW1lbnRzLiAgVGhpcyBpcyBuZWNlc3Nh cnksIGZvciBleGFtcGxlLAorKyAgICAjIGluIHRoZSBjYXNlIG9mIF9QT1NJWF9TT1VSQ0UsIHdo aWNoIGlzIHByZWRlZmluZWQgYW5kIHJlcXVpcmVkCisrICAgICMgb24gc29tZSBzeXN0ZW1zIHdo ZXJlIGNvbmZpZ3VyZSB3aWxsIG5vdCBkZWNpZGUgdG8gZGVmaW5lIGl0LgorKyAgICBpZiAoZGVm dW5kZWYgPT0gInVuZGVmIikgeworKyAgICAgIHByaW50ICIvKiIsIHByZWZpeCBkZWZ1bmRlZiwg bWFjcm8sICIqLyIKKysgICAgICBuZXh0CisrICAgIH0KKysgIH0KKyt9CisreyBwcmludCB9Cisr X0FDQVdLCisrX0FDRU9GCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dy aXRlX2ZhaWw9MQorKyAgYXNfZm5fZXJyb3IgJD8gImNvdWxkIG5vdCBzZXR1cCBjb25maWcgaGVh ZGVycyBtYWNoaW5lcnkiICIkTElORU5PIiA1CisrZmkgIyB0ZXN0IC1uICIkQ09ORklHX0hFQURF UlMiCisrCisrCisrZXZhbCBzZXQgWCAiICA6RiAkQ09ORklHX0ZJTEVTICA6SCAkQ09ORklHX0hF QURFUlMgICAgOkMgJENPTkZJR19DT01NQU5EUyIKKytzaGlmdAorK2ZvciBhY190YWcKKytkbwor KyAgY2FzZSAkYWNfdGFnIGluCisrICA6W0ZITENdKSBhY19tb2RlPSRhY190YWc7IGNvbnRpbnVl OzsKKysgIGVzYWMKKysgIGNhc2UgJGFjX21vZGUkYWNfdGFnIGluCisrICA6W0ZITF0qOiopOzsK KysgIDpMKiB8IDpDKjoqKSBhc19mbl9lcnJvciAkPyAiaW52YWxpZCB0YWcgXGAkYWNfdGFnJyIg IiRMSU5FTk8iIDU7OworKyAgOltGSF0tKSBhY190YWc9LTotOzsKKysgIDpbRkhdKikgYWNfdGFn PSRhY190YWc6JGFjX3RhZy5pbjs7CisrICBlc2FjCisrICBhY19zYXZlX0lGUz0kSUZTCisrICBJ RlM9OgorKyAgc2V0IHggJGFjX3RhZworKyAgSUZTPSRhY19zYXZlX0lGUworKyAgc2hpZnQKKysg IGFjX2ZpbGU9JDEKKysgIHNoaWZ0CisrCisrICBjYXNlICRhY19tb2RlIGluCisrICA6TCkgYWNf c291cmNlPSQxOzsKKysgIDpbRkhdKQorKyAgICBhY19maWxlX2lucHV0cz0KKysgICAgZm9yIGFj X2YKKysgICAgZG8KKysgICAgICBjYXNlICRhY19mIGluCisrICAgICAgLSkgYWNfZj0iJHRtcC9z dGRpbiI7OworKyAgICAgICopICMgTG9vayBmb3IgdGhlIGZpbGUgZmlyc3QgaW4gdGhlIGJ1aWxk IHRyZWUsIHRoZW4gaW4gdGhlIHNvdXJjZSB0cmVlCisrCSAjIChpZiB0aGUgcGF0aCBpcyBub3Qg YWJzb2x1dGUpLiAgVGhlIGFic29sdXRlIHBhdGggY2Fubm90IGJlIERPUy1zdHlsZSwKKysJICMg YmVjYXVzZSAkYWNfZiBjYW5ub3QgY29udGFpbiBgOicuCisrCSB0ZXN0IC1mICIkYWNfZiIgfHwK KysJICAgY2FzZSAkYWNfZiBpbgorKwkgICBbXFwvJF0qKSBmYWxzZTs7CisrCSAgICopIHRlc3Qg LWYgIiRzcmNkaXIvJGFjX2YiICYmIGFjX2Y9IiRzcmNkaXIvJGFjX2YiOzsKKysJICAgZXNhYyB8 fAorKwkgICBhc19mbl9lcnJvciAxICJjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiBcYCRhY19mJyIg IiRMSU5FTk8iIDU7OworKyAgICAgIGVzYWMKKysgICAgICBjYXNlICRhY19mIGluICpcJyopIGFj X2Y9YCRhc19lY2hvICIkYWNfZiIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OyBlc2FjCisr ICAgICAgYXNfZm5fYXBwZW5kIGFjX2ZpbGVfaW5wdXRzICIgJyRhY19mJyIKKysgICAgZG9uZQor KworKyAgICAjIExldCdzIHN0aWxsIHByZXRlbmQgaXQgaXMgYGNvbmZpZ3VyZScgd2hpY2ggaW5z dGFudGlhdGVzIChpLmUuLCBkb24ndAorKyAgICAjIHVzZSAkYXNfbWUpLCBwZW9wbGUgd291bGQg YmUgc3VycHJpc2VkIHRvIHJlYWQ6CisrICAgICMgICAgLyogY29uZmlnLmguICBHZW5lcmF0ZWQg YnkgY29uZmlnLnN0YXR1cy4gICovCisrICAgIGNvbmZpZ3VyZV9pbnB1dD0nR2VuZXJhdGVkIGZy b20gJ2AKKysJICAkYXNfZWNobyAiJCoiIHwgc2VkICdzfF5bXjpdKi98fDtzfDpbXjpdKi98LCB8 ZycKKysJYCcgYnkgY29uZmlndXJlLicKKysgICAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsg dGhlbgorKyAgICAgIGNvbmZpZ3VyZV9pbnB1dD0iJGFjX2ZpbGUuICAkY29uZmlndXJlX2lucHV0 IgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY3JlYXRp bmcgJGFjX2ZpbGUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGNyZWF0aW5nICRhY19maWxlIiA+ JjY7fQorKyAgICBmaQorKyAgICAjIE5ldXRyYWxpemUgc3BlY2lhbCBjaGFyYWN0ZXJzIGludGVy cHJldGVkIGJ5IHNlZCBpbiByZXBsYWNlbWVudCBzdHJpbmdzLgorKyAgICBjYXNlICRjb25maWd1 cmVfaW5wdXQgaW4gIygKKysgICAgKlwmKiB8ICpcfCogfCAqXFwqICkKKysgICAgICAgYWNfc2Vk X2NvbmZfaW5wdXQ9YCRhc19lY2hvICIkY29uZmlndXJlX2lucHV0IiB8CisrICAgICAgIHNlZCAn cy9bXFxcXCZ8XS9cXFxcJi9nJ2A7OyAjKAorKyAgICAqKSBhY19zZWRfY29uZl9pbnB1dD0kY29u ZmlndXJlX2lucHV0OzsKKysgICAgZXNhYworKworKyAgICBjYXNlICRhY190YWcgaW4KKysgICAg KjotOiogfCAqOi0pIGNhdCA+IiR0bXAvc3RkaW4iIFwKKysgICAgICB8fCBhc19mbl9lcnJvciAk PyAiY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgIiRMSU5FTk8iIDUgOzsKKysgICAgZXNhYwor KyAgICA7OworKyAgZXNhYworKworKyAgYWNfZGlyPWAkYXNfZGlybmFtZSAtLSAiJGFjX2ZpbGUi IHx8CisrJGFzX2V4cHIgWCIkYWNfZmlsZSIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQn IFx8IFwKKysJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisrCSBYIiRhY19maWxl IiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgWCIkYWNfZmlsZSIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rl di9udWxsIHx8CisrJGFzX2VjaG8gWCIkYWNfZmlsZSIgfAorKyAgICBzZWQgJy9eWFwoLipbXi9d XClcL1wvKlteL11bXi9dKlwvKiQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkg IC9eWFwoXC9cL1wpW14vXS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAv XlhcKFwvXC9cKSQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9c KS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2AKKysg IGFzX2Rpcj0iJGFjX2RpciI7IGFzX2ZuX21rZGlyX3AKKysgIGFjX2J1aWxkZGlyPS4KKysKKytj YXNlICIkYWNfZGlyIiBpbgorKy4pIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcl9zdWI9 LiBhY190b3BfYnVpbGRfcHJlZml4PSA7OworKyopCisrICBhY19kaXJfc3VmZml4PS9gJGFzX2Vj aG8gIiRhY19kaXIiIHwgc2VkICdzfF5cLltcXC9dfHwnYAorKyAgIyBBICIuLiIgZm9yIGVhY2gg ZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgorKyAgYWNfdG9wX2J1aWxkZGlyX3N1Yj1gJGFz X2VjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAnc3wvW15cXC9dKnwvLi58ZztzfC98fCdgCisr ICBjYXNlICRhY190b3BfYnVpbGRkaXJfc3ViIGluCisrICAiIikgYWNfdG9wX2J1aWxkZGlyX3N1 Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7CisrICAqKSAgYWNfdG9wX2J1aWxkX3ByZWZpeD0k YWNfdG9wX2J1aWxkZGlyX3N1Yi8gOzsKKysgIGVzYWMgOzsKKytlc2FjCisrYWNfYWJzX3RvcF9i dWlsZGRpcj0kYWNfcHdkCisrYWNfYWJzX2J1aWxkZGlyPSRhY19wd2QkYWNfZGlyX3N1ZmZpeAor KyMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk6CisrYWNfdG9wX2J1aWxkZGlyPSRhY190b3Bf YnVpbGRfcHJlZml4CisrCisrY2FzZSAkc3JjZGlyIGluCisrICAuKSAgIyBXZSBhcmUgYnVpbGRp bmcgaW4gcGxhY2UuCisrICAgIGFjX3NyY2Rpcj0uCisrICAgIGFjX3RvcF9zcmNkaXI9JGFjX3Rv cF9idWlsZGRpcl9zdWIKKysgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZCA7OworKyAgW1xc L10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBuYW1lLgorKyAgICBhY19zcmNkaXI9JHNyY2Rp ciRhY19kaXJfc3VmZml4OworKyAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIKKysgICAgYWNfYWJz X3RvcF9zcmNkaXI9JHNyY2RpciA7OworKyAgKikgIyBSZWxhdGl2ZSBuYW1lLgorKyAgICBhY19z cmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKKysgICAgYWNf dG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIKKysgICAgYWNfYWJzX3RvcF9z cmNkaXI9JGFjX3B3ZC8kc3JjZGlyIDs7CisrZXNhYworK2FjX2Fic19zcmNkaXI9JGFjX2Fic190 b3Bfc3JjZGlyJGFjX2Rpcl9zdWZmaXgKKysKKysKKysgIGNhc2UgJGFjX21vZGUgaW4KKysgIDpG KQorKyAgIworKyAgIyBDT05GSUdfRklMRQorKyAgIworKworKyAgY2FzZSAkSU5TVEFMTCBpbgor KyAgW1xcLyRdKiB8ID86W1xcL10qICkgYWNfSU5TVEFMTD0kSU5TVEFMTCA7OworKyAgKikgYWNf SU5TVEFMTD0kYWNfdG9wX2J1aWxkX3ByZWZpeCRJTlNUQUxMIDs7CisrICBlc2FjCisrICBhY19N S0RJUl9QPSRNS0RJUl9QCisrICBjYXNlICRNS0RJUl9QIGluCisrICBbXFwvJF0qIHwgPzpbXFwv XSogKSA7OworKyAgKi8qKSBhY19NS0RJUl9QPSRhY190b3BfYnVpbGRfcHJlZml4JE1LRElSX1Ag OzsKKysgIGVzYWMKKytfQUNFT0YKKysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0Yg fHwgYWNfd3JpdGVfZmFpbD0xCisrIyBJZiB0aGUgdGVtcGxhdGUgZG9lcyBub3Qga25vdyBhYm91 dCBkYXRhcm9vdGRpciwgZXhwYW5kIGl0LgorKyMgRklYTUU6IFRoaXMgaGFjayBzaG91bGQgYmUg cmVtb3ZlZCBhIGZldyB5ZWFycyBhZnRlciAyLjYwLgorK2FjX2RhdGFyb290ZGlyX2hhY2s9OyBh Y19kYXRhcm9vdGRpcl9zZWVuPQorK2FjX3NlZF9kYXRhcm9vdD0nCisrL2RhdGFyb290ZGlyLyB7 CisrICBwCisrICBxCisrfQorKy9AZGF0YWRpckAvcAorKy9AZG9jZGlyQC9wCisrL0BpbmZvZGly QC9wCisrL0Bsb2NhbGVkaXJAL3AKKysvQG1hbmRpckAvcCcKKytjYXNlIGBldmFsICJzZWQgLW4g XCJcJGFjX3NlZF9kYXRhcm9vdFwiICRhY19maWxlX2lucHV0cyJgIGluCisrKmRhdGFyb290ZGly KikgYWNfZGF0YXJvb3RkaXJfc2Vlbj15ZXM7OworKypAZGF0YWRpckAqfCpAZG9jZGlyQCp8KkBp bmZvZGlyQCp8KkBsb2NhbGVkaXJAKnwqQG1hbmRpckAqKQorKyAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAkYWNfZmlsZV9pbnB1dHMgc2VlbXMgdG8g aWdub3JlIHRoZSAtLWRhdGFyb290ZGlyIHNldHRpbmciID4mNQorKyRhc19lY2hvICIkYXNfbWU6 IFdBUk5JTkc6ICRhY19maWxlX2lucHV0cyBzZWVtcyB0byBpZ25vcmUgdGhlIC0tZGF0YXJvb3Rk aXIgc2V0dGluZyIgPiYyO30KKytfQUNFT0YKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VP RiB8fCBhY193cml0ZV9mYWlsPTEKKysgIGFjX2RhdGFyb290ZGlyX2hhY2s9JworKyAgcyZAZGF0 YWRpckAmJGRhdGFkaXImZworKyAgcyZAZG9jZGlyQCYkZG9jZGlyJmcKKysgIHMmQGluZm9kaXJA JiRpbmZvZGlyJmcKKysgIHMmQGxvY2FsZWRpckAmJGxvY2FsZWRpciZnCisrICBzJkBtYW5kaXJA JiRtYW5kaXImZworKyAgcyZcXFwke2RhdGFyb290ZGlyfSYkZGF0YXJvb3RkaXImZycgOzsKKytl c2FjCisrX0FDRU9GCisrCisrIyBOZXV0cmFsaXplIFZQQVRIIHdoZW4gYCRzcmNkaXInID0gYC4n LgorKyMgU2hlbGwgY29kZSBpbiBjb25maWd1cmUuYWMgbWlnaHQgc2V0IGV4dHJhc3ViLgorKyMg RklYTUU6IGRvIHdlIHJlYWxseSB3YW50IHRvIG1haW50YWluIHRoaXMgZmVhdHVyZT8KKytjYXQg Pj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKythY19zZWRfZXh0 cmE9IiRhY192cHN1YgorKyRleHRyYXN1YgorK19BQ0VPRgorK2NhdCA+PiRDT05GSUdfU1RBVFVT IDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKys6dAorKy9AW2EtekEtWl9dW2EtekEtWl8w LTldKkAvIWIKKytzfEBjb25maWd1cmVfaW5wdXRAfCRhY19zZWRfY29uZl9pbnB1dHw7dCB0Cisr cyZAdG9wX2J1aWxkZGlyQCYkYWNfdG9wX2J1aWxkZGlyX3N1YiY7dCB0CisrcyZAdG9wX2J1aWxk X3ByZWZpeEAmJGFjX3RvcF9idWlsZF9wcmVmaXgmO3QgdAorK3MmQHNyY2RpckAmJGFjX3NyY2Rp ciY7dCB0CisrcyZAYWJzX3NyY2RpckAmJGFjX2Fic19zcmNkaXImO3QgdAorK3MmQHRvcF9zcmNk aXJAJiRhY190b3Bfc3JjZGlyJjt0IHQKKytzJkBhYnNfdG9wX3NyY2RpckAmJGFjX2Fic190b3Bf c3JjZGlyJjt0IHQKKytzJkBidWlsZGRpckAmJGFjX2J1aWxkZGlyJjt0IHQKKytzJkBhYnNfYnVp bGRkaXJAJiRhY19hYnNfYnVpbGRkaXImO3QgdAorK3MmQGFic190b3BfYnVpbGRkaXJAJiRhY19h YnNfdG9wX2J1aWxkZGlyJjt0IHQKKytzJkBJTlNUQUxMQCYkYWNfSU5TVEFMTCY7dCB0CisrcyZA TUtESVJfUEAmJGFjX01LRElSX1AmO3QgdAorKyRhY19kYXRhcm9vdGRpcl9oYWNrCisrIgorK2V2 YWwgc2VkIFwiXCRhY19zZWRfZXh0cmFcIiAiJGFjX2ZpbGVfaW5wdXRzIiB8ICRBV0sgLWYgIiR0 bXAvc3Vicy5hd2siID4kdG1wL291dCBcCisrICB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90 IGNyZWF0ZSAkYWNfZmlsZSIgIiRMSU5FTk8iIDUKKysKKyt0ZXN0IC16ICIkYWNfZGF0YXJvb3Rk aXJfaGFjayRhY19kYXRhcm9vdGRpcl9zZWVuIiAmJgorKyAgeyBhY19vdXQ9YHNlZCAtbiAnL1wk e2RhdGFyb290ZGlyfS9wJyAiJHRtcC9vdXQiYDsgdGVzdCAtbiAiJGFjX291dCI7IH0gJiYKKysg IHsgYWNfb3V0PWBzZWQgLW4gJy9eWwkgXSpkYXRhcm9vdGRpclsJIF0qOio9L3AnICIkdG1wL291 dCJgOyB0ZXN0IC16ICIkYWNfb3V0IjsgfSAmJgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAkYWNfZmlsZSBjb250YWlucyBhIHJlZmVyZW5jZSB0 byB0aGUgdmFyaWFibGUgXGBkYXRhcm9vdGRpcicKKyt3aGljaCBzZWVtcyB0byBiZSB1bmRlZmlu ZWQuICBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGRlZmluZWQiID4mNQorKyRhc19lY2hvICIkYXNf bWU6IFdBUk5JTkc6ICRhY19maWxlIGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSB2YXJpYWJs ZSBcYGRhdGFyb290ZGlyJworK3doaWNoIHNlZW1zIHRvIGJlIHVuZGVmaW5lZC4gIFBsZWFzZSBt YWtlIHN1cmUgaXQgaXMgZGVmaW5lZCIgPiYyO30KKysKKysgIHJtIC1mICIkdG1wL3N0ZGluIgor KyAgY2FzZSAkYWNfZmlsZSBpbgorKyAgLSkgY2F0ICIkdG1wL291dCIgJiYgcm0gLWYgIiR0bXAv b3V0Ijs7CisrICAqKSBybSAtZiAiJGFjX2ZpbGUiICYmIG12ICIkdG1wL291dCIgIiRhY19maWxl Ijs7CisrICBlc2FjIFwKKysgIHx8IGFzX2ZuX2Vycm9yICQ/ICJjb3VsZCBub3QgY3JlYXRlICRh Y19maWxlIiAiJExJTkVOTyIgNQorKyA7OworKyAgOkgpCisrICAjCisrICAjIENPTkZJR19IRUFE RVIKKysgICMKKysgIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KKysgICAgeworKyAg ICAgICRhc19lY2hvICIvKiAkY29uZmlndXJlX2lucHV0ICAqLyIgXAorKyAgICAgICYmIGV2YWwg JyRBV0sgLWYgIiR0bXAvZGVmaW5lcy5hd2siJyAiJGFjX2ZpbGVfaW5wdXRzIgorKyAgICB9ID4i JHRtcC9jb25maWcuaCIgXAorKyAgICAgIHx8IGFzX2ZuX2Vycm9yICQ/ICJjb3VsZCBub3QgY3Jl YXRlICRhY19maWxlIiAiJExJTkVOTyIgNQorKyAgICBpZiBkaWZmICIkYWNfZmlsZSIgIiR0bXAv Y29uZmlnLmgiID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNjt9CisrICAgIGVsc2UKKysg ICAgICBybSAtZiAiJGFjX2ZpbGUiCisrICAgICAgbXYgIiR0bXAvY29uZmlnLmgiICIkYWNfZmls ZSIgXAorKwl8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgIiRM SU5FTk8iIDUKKyAgICAgZmkKKysgIGVsc2UKKysgICAgJGFzX2VjaG8gIi8qICRjb25maWd1cmVf aW5wdXQgICovIiBcCisrICAgICAgJiYgZXZhbCAnJEFXSyAtZiAiJHRtcC9kZWZpbmVzLmF3ayIn ICIkYWNfZmlsZV9pbnB1dHMiIFwKKysgICAgICB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90 IGNyZWF0ZSAtIiAiJExJTkVOTyIgNQorKyAgZmkKKysjIENvbXB1dGUgIiRhY19maWxlIidzIGlu ZGV4IGluICRjb25maWdfaGVhZGVycy4KKytfYW1fYXJnPSIkYWNfZmlsZSIKKytfYW1fc3RhbXBf Y291bnQ9MQorK2ZvciBfYW1faGVhZGVyIGluICRjb25maWdfaGVhZGVycyA6OyBkbworKyAgY2Fz ZSAkX2FtX2hlYWRlciBpbgorKyAgICAkX2FtX2FyZyB8ICRfYW1fYXJnOiogKQorKyAgICAgIGJy ZWFrIDs7CisrICAgICogKQorKyAgICAgIF9hbV9zdGFtcF9jb3VudD1gZXhwciAkX2FtX3N0YW1w X2NvdW50ICsgMWAgOzsKKysgIGVzYWMKKyBkb25lCisrZWNobyAidGltZXN0YW1wIGZvciAkX2Ft X2FyZyIgPmAkYXNfZGlybmFtZSAtLSAiJF9hbV9hcmciIHx8CisrJGFzX2V4cHIgWCIkX2FtX2Fy ZyIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKysJIFgiJF9hbV9hcmciIDog J1hcKC8vXClbXi9dJyBcfCBcCisrCSBYIiRfYW1fYXJnIiA6ICdYXCgvL1wpJCcgXHwgXAorKwkg WCIkX2FtX2FyZyIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrJGFzX2VjaG8gWCIk X2FtX2FyZyIgfAorKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewor KwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKKysJ ICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKSQveworKwkgICAgcy8v XDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkg ICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2Avc3RhbXAtaCRfYW1fc3RhbXBfY291bnQKKysg OzsKKyAKKy1pZiBbICR0Y2xfZm91bmQgLWVxIDAgXQorLXRoZW4KKy0gICAgICAgIGVjaG8gJ05P VCBmb3VuZC4nCistICAgICAgICBlY2hvICdJcyB0aGUgVGNsIGluc3RhbGxlZD8nCistICAgICAg ICBleGl0CisrICA6QykgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog ZXhlY3V0aW5nICRhY19maWxlIGNvbW1hbmRzIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBleGVj dXRpbmcgJGFjX2ZpbGUgY29tbWFuZHMiID4mNjt9CisrIDs7CisrICBlc2FjCisrCisrCisrICBj YXNlICRhY19maWxlJGFjX21vZGUgaW4KKysgICAgImRlcGZpbGVzIjpDKSB0ZXN0IHgiJEFNREVQ X1RSVUUiICE9IHgiIiB8fCB7CisrICAjIEF1dG9jb25mIDIuNjIgcXVvdGVzIC0tZmlsZSBhcmd1 bWVudHMgZm9yIGV2YWwsIGJ1dCBub3Qgd2hlbiBmaWxlcworKyAgIyBhcmUgbGlzdGVkIHdpdGhv dXQgLS1maWxlLiAgTGV0J3MgcGxheSBzYWZlIGFuZCBvbmx5IGVuYWJsZSB0aGUgZXZhbAorKyAg IyBpZiB3ZSBkZXRlY3QgdGhlIHF1b3RpbmcuCisrICBjYXNlICRDT05GSUdfRklMRVMgaW4KKysg ICpcJyopIGV2YWwgc2V0IHggIiRDT05GSUdfRklMRVMiIDs7CisrICAqKSAgIHNldCB4ICRDT05G SUdfRklMRVMgOzsKKysgIGVzYWMKKysgIHNoaWZ0CisrICBmb3IgbWYKKysgIGRvCisrICAgICMg U3RyaXAgTUYgc28gd2UgZW5kIHVwIHdpdGggdGhlIG5hbWUgb2YgdGhlIGZpbGUuCisrICAgIG1m PWBlY2hvICIkbWYiIHwgc2VkIC1lICdzLzouKiQvLydgCisrICAgICMgQ2hlY2sgd2hldGhlciB0 aGlzIGlzIGFuIEF1dG9tYWtlIGdlbmVyYXRlZCBNYWtlZmlsZSBvciBub3QuCisrICAgICMgV2Ug dXNlZCB0byBtYXRjaCBvbmx5IHRoZSBmaWxlcyBuYW1lZCBgTWFrZWZpbGUuaW4nLCBidXQKKysg ICAgIyBzb21lIHBlb3BsZSByZW5hbWUgdGhlbTsgc28gaW5zdGVhZCB3ZSBsb29rIGF0IHRoZSBm aWxlIGNvbnRlbnQuCisrICAgICMgR3JlcCdpbmcgdGhlIGZpcnN0IGxpbmUgaXMgbm90IGVub3Vn aDogc29tZSBwZW9wbGUgcG9zdC1wcm9jZXNzCisrICAgICMgZWFjaCBNYWtlZmlsZS5pbiBhbmQg YWRkIGEgbmV3IGxpbmUgb24gdG9wIG9mIGVhY2ggZmlsZSB0byBzYXkgc28uCisrICAgICMgR3Jl cCdpbmcgdGhlIHdob2xlIGZpbGUgaXMgbm90IGdvb2QgZWl0aGVyOiBBSVggZ3JlcCBoYXMgYSBs aW5lCisrICAgICMgbGltaXQgb2YgMjA0OCwgYnV0IGFsbCBzZWQncyB3ZSBrbm93IGhhdmUgdW5k ZXJzdGFuZCBhdCBsZWFzdCA0MDAwLgorKyAgICBpZiBzZWQgLW4gJ3MsXiMuKmdlbmVyYXRlZCBi eSBhdXRvbWFrZS4qLFgscCcgIiRtZiIgfCBncmVwIFggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisr ICAgICAgZGlycGFydD1gJGFzX2Rpcm5hbWUgLS0gIiRtZiIgfHwKKyskYXNfZXhwciBYIiRtZiIg OiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKysJIFgiJG1mIiA6ICdYXCgvL1wp W14vXScgXHwgXAorKwkgWCIkbWYiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiRtZiIgOiAnWFwo L1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrJGFzX2VjaG8gWCIkbWYiIHwKKysgICAgc2VkICcv XlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQor KwkgIH0KKysJICAvXlhcKFwvXC9cKVteL10uKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJ ICB9CisrCSAgL15YXChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJ ICAvXlhcKFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8u LzsgcSdgCisrICAgIGVsc2UKKysgICAgICBjb250aW51ZQorKyAgICBmaQorKyAgICAjIEV4dHJh Y3QgdGhlIGRlZmluaXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQor KyAgICAjIGZyb20gdGhlIE1ha2VmaWxlIHdpdGhvdXQgcnVubmluZyBgbWFrZScuCisrICAgIERF UERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCisrICAgIHRlc3QgLXogIiRE RVBESVIiICYmIGNvbnRpbnVlCisrICAgIGFtX19pbmNsdWRlPWBzZWQgLW4gJ3MvXmFtX19pbmNs dWRlID0gLy9wJyA8ICIkbWYiYAorKyAgICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29udGlu dWUKKysgICAgYW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcgPCAiJG1mImAK KysgICAgIyBXaGVuIHVzaW5nIGFuc2kya25yLCBVIG1heSBiZSBlbXB0eSBvciBhbiB1bmRlcnNj b3JlOyBleHBhbmQgaXQKKysgICAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAorKyAg ICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFyZSBpbmNsdWRlZCBm aWxlcyB3aXRoCisrICAgICMgJChERVBESVIpIGluIHRoZWlyIG5hbWVzLiAgV2UgaW52b2tlIHNl ZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRoZQorKyAgICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNo YW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQorKyAgICAjIGV4cGFu c2lvbi4KKysgICAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCisrICAgICAgcy9eJGFtX19pbmNsdWRl ICRhbV9fcXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBc CisrCSBzZWQgLWUgJ3MvXCQoREVQRElSKS8nIiRERVBESVIiJy9nJyAtZSAncy9cJFUvJyIkVSIn L2cnYDsgZG8KKysgICAgICAjIE1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IGV4aXN0cy4KKysgICAg ICB0ZXN0IC1mICIkZGlycGFydC8kZmlsZSIgJiYgY29udGludWUKKysgICAgICBmZGlyPWAkYXNf ZGlybmFtZSAtLSAiJGZpbGUiIHx8CisrJGFzX2V4cHIgWCIkZmlsZSIgOiAnWFwoLipbXi9dXCkv LypbXi9dW14vXSovKiQnIFx8IFwKKysJIFgiJGZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisr CSBYIiRmaWxlIiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgWCIkZmlsZSIgOiAnWFwoL1wpJyBcfCAu IDI+L2Rldi9udWxsIHx8CisrJGFzX2VjaG8gWCIkZmlsZSIgfAorKyAgICBzZWQgJy9eWFwoLipb Xi9dXClcL1wvKlteL11bXi9dKlwvKiQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQor KwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJ ICAvXlhcKFwvXC9cKSQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwo XC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2AK KysgICAgICBhc19kaXI9JGRpcnBhcnQvJGZkaXI7IGFzX2ZuX21rZGlyX3AKKysgICAgICAjIGVj aG8gImNyZWF0aW5nICRkaXJwYXJ0LyRmaWxlIgorKyAgICAgIGVjaG8gJyMgZHVtbXknID4gIiRk aXJwYXJ0LyRmaWxlIgorKyAgICBkb25lCisrICBkb25lCisrfQorKyA7OworKyAgICAibGlidG9v bCI6QykKKysKKysgICAgIyBTZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRo ZSBvcHRpb25zIHdoaWNoIGFsbG93IG91cgorKyAgICAjIGNvbW1hbmRzIHRocm91Z2ggd2l0aG91 dCByZW1vdmFsIG9mIFwgZXNjYXBlcy4KKysgICAgaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitz ZXR9IiA7IHRoZW4KKysgICAgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorKyAgICBmaQorKworKyAg ICBjZmdmaWxlPSIke29maWxlfVQiCisrICAgIHRyYXAgIiRSTSBcIiRjZmdmaWxlXCI7IGV4aXQg MSIgMSAyIDE1CisrICAgICRSTSAiJGNmZ2ZpbGUiCisrCisrICAgIGNhdCA8PF9MVF9FT0YgPj4g IiRjZmdmaWxlIgorKyMhICRTSEVMTAorKworKyMgYCRFQ0hPICIkb2ZpbGUiIHwgc2VkICdzJV4u Ki8lJSdgIC0gUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2Vy dmljZXMuCisrIyBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSAkYXNfbWUgKCRQQUNLQUdFJFRJ TUVTVEFNUCkgJFZFUlNJT04KKysjIExpYnRvb2wgd2FzIGNvbmZpZ3VyZWQgb24gaG9zdCBgKGhv c3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWA6CisrIyBOT1RFOiBDaGFu Z2VzIG1hZGUgdG8gdGhpcyBmaWxlIHdpbGwgYmUgbG9zdDogbG9vayBhdCBsdG1haW4uc2guCisr IworKyMgICBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEs IDIwMDMsIDIwMDQsIDIwMDUsCisrIyAgICAgICAgICAgICAgICAgMjAwNiwgMjAwNywgMjAwOCwg MjAwOSwgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyAgICAgICAgICAgICAgICAg SW5jLgorKyMgICBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0LCAxOTk2CisrIworKyMgICBU aGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgTGlidG9vbC4KKysjCisrIyBHTlUgTGlidG9vbCBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysjIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisr IyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMiBvZgorKyMgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisrIworKyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UsCisrIyBpZiB5b3UgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBv ZiBhIHByb2dyYW0gb3IgbGlicmFyeSB0aGF0CisrIyBpcyBidWlsdCB1c2luZyBHTlUgTGlidG9v bCwgeW91IG1heSBpbmNsdWRlIHRoaXMgZmlsZSB1bmRlciB0aGUKKysjIHNhbWUgZGlzdHJpYnV0 aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorKyMK KysjIEdOVSBMaWJ0b29sIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCBHTlUg TGlidG9vbDsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIGEgY29weQorKyMgY2FuIGJl IGRvd25sb2FkZWQgZnJvbSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwsIG9y CisrIyBvYnRhaW5lZCBieSB3cml0aW5nIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4sCisrIyA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAy MTEwLTEzMDEsIFVTQS4KKysKKysKKysjIFRoZSBuYW1lcyBvZiB0aGUgdGFnZ2VkIGNvbmZpZ3Vy YXRpb25zIHN1cHBvcnRlZCBieSB0aGlzIHNjcmlwdC4KKythdmFpbGFibGVfdGFncz0iQ1hYICIK KysKKysjICMjIyBCRUdJTiBMSUJUT09MIENPTkZJRworKworKyMgV2hldGhlciBvciBub3QgdG8g YnVpbGQgc2hhcmVkIGxpYnJhcmllcy4KKytidWlsZF9saWJ0b29sX2xpYnM9JGVuYWJsZV9zaGFy ZWQKKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMuCisrYnVp bGRfb2xkX2xpYnM9JGVuYWJsZV9zdGF0aWMKKysKKysjIFdoaWNoIHJlbGVhc2Ugb2YgbGlidG9v bC5tNCB3YXMgdXNlZD8KKyttYWNyb192ZXJzaW9uPSRtYWNyb192ZXJzaW9uCisrbWFjcm9fcmV2 aXNpb249JG1hY3JvX3JldmlzaW9uCisrCisrIyBXaGF0IHR5cGUgb2Ygb2JqZWN0cyB0byBidWls ZC4KKytwaWNfbW9kZT0kcGljX21vZGUKKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIG9wdGltaXpl IGZvciBmYXN0IGluc3RhbGxhdGlvbi4KKytmYXN0X2luc3RhbGw9JGVuYWJsZV9mYXN0X2luc3Rh bGwKKysKKysjIFNoZWxsIHRvIHVzZSB3aGVuIGludm9raW5nIHNoZWxsIHNjcmlwdHMuCisrU0hF TEw9JGx0X1NIRUxMCisrCisrIyBBbiBlY2hvIHByb2dyYW0gdGhhdCBwcm90ZWN0cyBiYWNrc2xh c2hlcy4KKytFQ0hPPSRsdF9FQ0hPCisrCisrIyBUaGUgaG9zdCBzeXN0ZW0uCisraG9zdF9hbGlh cz0kaG9zdF9hbGlhcworK2hvc3Q9JGhvc3QKKytob3N0X29zPSRob3N0X29zCisrCisrIyBUaGUg YnVpbGQgc3lzdGVtLgorK2J1aWxkX2FsaWFzPSRidWlsZF9hbGlhcworK2J1aWxkPSRidWlsZAor K2J1aWxkX29zPSRidWlsZF9vcworKworKyMgQSBzZWQgcHJvZ3JhbSB0aGF0IGRvZXMgbm90IHRy dW5jYXRlIG91dHB1dC4KKytTRUQ9JGx0X1NFRAorKworKyMgU2VkIHRoYXQgaGVscHMgdXMgYXZv aWQgYWNjaWRlbnRhbGx5IHRyaWdnZXJpbmcgZWNobygxKSBvcHRpb25zIGxpa2UgLW4uCisrWHNl ZD0iXCRTRUQgLWUgMXMvXlgvLyIKKysKKysjIEEgZ3JlcCBwcm9ncmFtIHRoYXQgaGFuZGxlcyBs b25nIGxpbmVzLgorK0dSRVA9JGx0X0dSRVAKKysKKysjIEFuIEVSRSBtYXRjaGVyLgorK0VHUkVQ PSRsdF9FR1JFUAorKworKyMgQSBsaXRlcmFsIHN0cmluZyBtYXRjaGVyLgorK0ZHUkVQPSRsdF9G R1JFUAorKworKyMgQSBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIuCisrTk09JGx0 X05NCisrCisrIyBXaGV0aGVyIHdlIG5lZWQgc29mdCBvciBoYXJkIGxpbmtzLgorK0xOX1M9JGx0 X0xOX1MKKysKKysjIFdoYXQgaXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgY29tbWFuZD8KKytt YXhfY21kX2xlbj0kbWF4X2NtZF9sZW4KKysKKysjIE9iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFs bHkgIm8iKS4KKytvYmpleHQ9JGFjX29iamV4dAorKworKyMgRXhlY3V0YWJsZSBmaWxlIHN1ZmZp eCAobm9ybWFsbHkgIiIpLgorK2V4ZWV4dD0kZXhlZXh0CisrCisrIyB3aGV0aGVyIHRoZSBzaGVs bCB1bmRlcnN0YW5kcyAidW5zZXQiLgorK2x0X3Vuc2V0PSRsdF91bnNldAorKworKyMgdHVybiBz cGFjZXMgaW50byBuZXdsaW5lcy4KKytTUDJOTD0kbHRfbHRfU1AyTkwKKysKKysjIHR1cm4gbmV3 bGluZXMgaW50byBzcGFjZXMuCisrTkwyU1A9JGx0X2x0X05MMlNQCisrCisrIyBBbiBvYmplY3Qg c3ltYm9sIGR1bXBlci4KKytPQkpEVU1QPSRsdF9PQkpEVU1QCisrCisrIyBNZXRob2QgdG8gY2hl Y2sgd2hldGhlciBkZXBlbmRlbnQgbGlicmFyaWVzIGFyZSBzaGFyZWQgb2JqZWN0cy4KKytkZXBs aWJzX2NoZWNrX21ldGhvZD0kbHRfZGVwbGlic19jaGVja19tZXRob2QKKysKKysjIENvbW1hbmQg dG8gdXNlIHdoZW4gZGVwbGlic19jaGVja19tZXRob2QgPT0gImZpbGVfbWFnaWMiLgorK2ZpbGVf bWFnaWNfY21kPSRsdF9maWxlX21hZ2ljX2NtZAorKworKyMgVGhlIGFyY2hpdmVyLgorK0FSPSRs dF9BUgorK0FSX0ZMQUdTPSRsdF9BUl9GTEFHUworKworKyMgQSBzeW1ib2wgc3RyaXBwaW5nIHBy b2dyYW0uCisrU1RSSVA9JGx0X1NUUklQCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGluc3RhbGwg YW4gb2xkLXN0eWxlIGFyY2hpdmUuCisrUkFOTElCPSRsdF9SQU5MSUIKKytvbGRfcG9zdGluc3Rh bGxfY21kcz0kbHRfb2xkX3Bvc3RpbnN0YWxsX2NtZHMKKytvbGRfcG9zdHVuaW5zdGFsbF9jbWRz PSRsdF9vbGRfcG9zdHVuaW5zdGFsbF9jbWRzCisrCisrIyBXaGV0aGVyIHRvIHVzZSBhIGxvY2sg Zm9yIG9sZCBhcmNoaXZlIGV4dHJhY3Rpb24uCisrbG9ja19vbGRfYXJjaGl2ZV9leHRyYWN0aW9u PSRsb2NrX29sZF9hcmNoaXZlX2V4dHJhY3Rpb24KKysKKysjIEEgQyBjb21waWxlci4KKytMVEND PSRsdF9DQworKworKyMgTFRDQyBjb21waWxlciBmbGFncy4KKytMVENGTEFHUz0kbHRfQ0ZMQUdT CisrCisrIyBUYWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5kIHByb2R1Y2UgYSBsaXN0aW5nIG9mIHJh dyBzeW1ib2xzIGFuZCBDIG5hbWVzLgorK2dsb2JhbF9zeW1ib2xfcGlwZT0kbHRfbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfcGlwZQorKworKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4g YSBwcm9wZXIgQyBkZWNsYXJhdGlvbi4KKytnbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSRsdF9sdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbAorKworKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQg b2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBwYWlyLgorK2dsb2JhbF9zeW1ib2xfdG9fY19uYW1l X2FkZHJlc3M9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzCisr CisrIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXIg d2hlbiBsaWIgcHJlZml4IGlzIG5lZWRlZC4KKytnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRy ZXNzX2xpYl9wcmVmaXg9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRy ZXNzX2xpYl9wcmVmaXgKKysKKysjIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250 YWlucyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxlcy4KKytvYmpkaXI9JG9iamRpcgorKworKyMgVXNl ZCB0byBleGFtaW5lIGxpYnJhcmllcyB3aGVuIGZpbGVfbWFnaWNfY21kIGJlZ2lucyB3aXRoICJm aWxlIi4KKytNQUdJQ19DTUQ9JE1BR0lDX0NNRAorKworKyMgTXVzdCB3ZSBsb2NrIGZpbGVzIHdo ZW4gZG9pbmcgY29tcGlsYXRpb24/CisrbmVlZF9sb2Nrcz0kbHRfbmVlZF9sb2NrcworKworKyMg VG9vbCB0byBtYW5pcHVsYXRlIGFyY2hpdmVkIERXQVJGIGRlYnVnIHN5bWJvbCBmaWxlcyBvbiBN YWMgT1MgWC4KKytEU1lNVVRJTD0kbHRfRFNZTVVUSUwKKysKKysjIFRvb2wgdG8gY2hhbmdlIGds b2JhbCB0byBsb2NhbCBzeW1ib2xzIG9uIE1hYyBPUyBYLgorK05NRURJVD0kbHRfTk1FRElUCisr CisrIyBUb29sIHRvIG1hbmlwdWxhdGUgZmF0IG9iamVjdHMgYW5kIGFyY2hpdmVzIG9uIE1hYyBP UyBYLgorK0xJUE89JGx0X0xJUE8KKysKKysjIGxkZC9yZWFkZWxmIGxpa2UgdG9vbCBmb3IgTWFj aC1PIGJpbmFyaWVzIG9uIE1hYyBPUyBYLgorK09UT09MPSRsdF9PVE9PTAorKworKyMgbGRkL3Jl YWRlbGYgbGlrZSB0b29sIGZvciA2NCBiaXQgTWFjaC1PIGJpbmFyaWVzIG9uIE1hYyBPUyBYIDEw LjQuCisrT1RPT0w2ND0kbHRfT1RPT0w2NAorKworKyMgT2xkIGFyY2hpdmUgc3VmZml4IChub3Jt YWxseSAiYSIpLgorK2xpYmV4dD0kbGliZXh0CisrCisrIyBTaGFyZWQgbGlicmFyeSBzdWZmaXgg KG5vcm1hbGx5ICIuc28iKS4KKytzaHJleHRfY21kcz0kbHRfc2hyZXh0X2NtZHMKKysKKysjIFRo ZSBjb21tYW5kcyB0byBleHRyYWN0IHRoZSBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9tIGEgc2hh cmVkIGFyY2hpdmUuCisrZXh0cmFjdF9leHBzeW1zX2NtZHM9JGx0X2V4dHJhY3RfZXhwc3ltc19j bWRzCisrCisrIyBWYXJpYWJsZXMgd2hvc2UgdmFsdWVzIHNob3VsZCBiZSBzYXZlZCBpbiBsaWJ0 b29sIHdyYXBwZXIgc2NyaXB0cyBhbmQKKysjIHJlc3RvcmVkIGF0IGxpbmsgdGltZS4KKyt2YXJp YWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0kbHRfdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsKKysK KysjIERvIHdlIG5lZWQgdGhlICJsaWIiIHByZWZpeCBmb3IgbW9kdWxlcz8KKytuZWVkX2xpYl9w cmVmaXg9JG5lZWRfbGliX3ByZWZpeAorKworKyMgRG8gd2UgbmVlZCBhIHZlcnNpb24gZm9yIGxp YnJhcmllcz8KKytuZWVkX3ZlcnNpb249JG5lZWRfdmVyc2lvbgorKworKyMgTGlicmFyeSB2ZXJz aW9uaW5nIHR5cGUuCisrdmVyc2lvbl90eXBlPSR2ZXJzaW9uX3R5cGUKKysKKysjIFNoYXJlZCBs aWJyYXJ5IHJ1bnRpbWUgcGF0aCB2YXJpYWJsZS4KKytydW5wYXRoX3Zhcj0kcnVucGF0aF92YXIK KysKKysjIFNoYXJlZCBsaWJyYXJ5IHBhdGggdmFyaWFibGUuCisrc2hsaWJwYXRoX3Zhcj0kc2hs aWJwYXRoX3ZhcgorKworKyMgSXMgc2hsaWJwYXRoIHNlYXJjaGVkIGJlZm9yZSB0aGUgaGFyZC1j b2RlZCBsaWJyYXJ5IHNlYXJjaCBwYXRoPworK3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD0k c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoCisrCisrIyBGb3JtYXQgb2YgbGlicmFyeSBuYW1l IHByZWZpeC4KKytsaWJuYW1lX3NwZWM9JGx0X2xpYm5hbWVfc3BlYworKworKyMgTGlzdCBvZiBh cmNoaXZlIG5hbWVzLiAgRmlyc3QgbmFtZSBpcyB0aGUgcmVhbCBvbmUsIHRoZSByZXN0IGFyZSBs aW5rcy4KKysjIFRoZSBsYXN0IG5hbWUgaXMgdGhlIG9uZSB0aGF0IHRoZSBsaW5rZXIgZmluZHMg d2l0aCAtbE5BTUUKKytsaWJyYXJ5X25hbWVzX3NwZWM9JGx0X2xpYnJhcnlfbmFtZXNfc3BlYwor KworKyMgVGhlIGNvZGVkIG5hbWUgb2YgdGhlIGxpYnJhcnksIGlmIGRpZmZlcmVudCBmcm9tIHRo ZSByZWFsIG5hbWUuCisrc29uYW1lX3NwZWM9JGx0X3NvbmFtZV9zcGVjCisrCisrIyBQZXJtaXNz aW9uIG1vZGUgb3ZlcnJpZGUgZm9yIGluc3RhbGxhdGlvbiBvZiBzaGFyZWQgbGlicmFyaWVzLgor K2luc3RhbGxfb3ZlcnJpZGVfbW9kZT0kbHRfaW5zdGFsbF9vdmVycmlkZV9tb2RlCisrCisrIyBD b21tYW5kIHRvIHVzZSBhZnRlciBpbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZS4KKytw b3N0aW5zdGFsbF9jbWRzPSRsdF9wb3N0aW5zdGFsbF9jbWRzCisrCisrIyBDb21tYW5kIHRvIHVz ZSBhZnRlciB1bmluc3RhbGxhdGlvbiBvZiBhIHNoYXJlZCBhcmNoaXZlLgorK3Bvc3R1bmluc3Rh bGxfY21kcz0kbHRfcG9zdHVuaW5zdGFsbF9jbWRzCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGZp bmlzaCBhIGxpYnRvb2wgbGlicmFyeSBpbnN0YWxsYXRpb24gaW4gYSBkaXJlY3RvcnkuCisrZmlu aXNoX2NtZHM9JGx0X2ZpbmlzaF9jbWRzCisrCisrIyBBcyAiZmluaXNoX2NtZHMiLCBleGNlcHQg YSBzaW5nbGUgc2NyaXB0IGZyYWdtZW50IHRvIGJlIGV2YWxlZCBidXQKKysjIG5vdCBzaG93bi4K KytmaW5pc2hfZXZhbD0kbHRfZmluaXNoX2V2YWwKKysKKysjIFdoZXRoZXIgd2Ugc2hvdWxkIGhh cmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBsaWJyYXJpZXMuCisraGFyZGNvZGVfaW50b19saWJz PSRoYXJkY29kZV9pbnRvX2xpYnMKKysKKysjIENvbXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBh dGggZm9yIGxpYnJhcmllcy4KKytzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9JGx0X3N5c19saWJf c2VhcmNoX3BhdGhfc3BlYworKworKyMgUnVuLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBs aWJyYXJpZXMuCisrc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JGx0X3N5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjCisrCisrIyBXaGV0aGVyIGRsb3BlbiBpcyBzdXBwb3J0ZWQuCisrZGxvcGVu X3N1cHBvcnQ9JGVuYWJsZV9kbG9wZW4KKysKKysjIFdoZXRoZXIgZGxvcGVuIG9mIHByb2dyYW1z IGlzIHN1cHBvcnRlZC4KKytkbG9wZW5fc2VsZj0kZW5hYmxlX2Rsb3Blbl9zZWxmCisrCisrIyBX aGV0aGVyIGRsb3BlbiBvZiBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtcyBpcyBzdXBwb3J0ZWQu CisrZGxvcGVuX3NlbGZfc3RhdGljPSRlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljCisrCisrIyBD b21tYW5kcyB0byBzdHJpcCBsaWJyYXJpZXMuCisrb2xkX3N0cmlwbGliPSRsdF9vbGRfc3RyaXBs aWIKKytzdHJpcGxpYj0kbHRfc3RyaXBsaWIKKysKKysKKysjIFRoZSBsaW5rZXIgdXNlZCB0byBi dWlsZCBsaWJyYXJpZXMuCisrTEQ9JGx0X0xECisrCisrIyBIb3cgdG8gY3JlYXRlIHJlbG9hZGFi bGUgb2JqZWN0IGZpbGVzLgorK3JlbG9hZF9mbGFnPSRsdF9yZWxvYWRfZmxhZworK3JlbG9hZF9j bWRzPSRsdF9yZWxvYWRfY21kcworKworKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbiBvbGQt c3R5bGUgYXJjaGl2ZS4KKytvbGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRfYXJjaGl2ZV9jbWRzCisr CisrIyBBIGxhbmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyLgorK0NDPSRsdF9jb21waWxlcgorKwor KyMgSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/Cisrd2l0aF9nY2M9JEdDQworKwor KyMgQ29tcGlsZXIgZmxhZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9ucy4KKytub19idWls dGluX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnCisrCisrIyBIb3cg dG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgorK3dsPSRsdF9sdF9w cm9nX2NvbXBpbGVyX3dsCisrCisrIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWls ZGluZyBsaWJyYXJ5IG9iamVjdHMuCisrcGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfcGlj CisrCisrIyBDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nLgorK2xpbmtf c3RhdGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfc3RhdGljCisrCisrIyBEb2VzIGNvbXBp bGVyIHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/CisrY29tcGlsZXJf Y19vPSRsdF9sdF9jdl9wcm9nX2NvbXBpbGVyX2NfbworKworKyMgV2hldGhlciBvciBub3QgdG8g YWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KKytidWlsZF9saWJ0b29sX25l ZWRfbGM9JGFyY2hpdmVfY21kc19uZWVkX2xjCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBkaXNh bGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljLgorK2FsbG93X2xp YnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRp Y19ydW50aW1lcworKworKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVu cy4KKytleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JGx0X2V4cG9ydF9keW5hbWljX2ZsYWdfc3Bl YworKworKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3Rs eSBmcm9tIGFyY2hpdmVzLgorK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYworKworKyMgV2hldGhlciB0aGUgY29tcGlsZXIgY29wZXMgd2l0aCBwYXNz aW5nIG5vIG9iamVjdHMgZGlyZWN0bHkuCisrY29tcGlsZXJfbmVlZHNfb2JqZWN0PSRsdF9jb21w aWxlcl9uZWVkc19vYmplY3QKKysKKysjIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9t IGEgc2hhcmVkIGFyY2hpdmUuCisrb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0kbHRfb2xkX2Fy Y2hpdmVfZnJvbV9uZXdfY21kcworKworKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBh cmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgorK29sZF9hcmNoaXZl X2Zyb21fZXhwc3ltc19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcworKwor KyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIHNoYXJlZCBhcmNoaXZlLgorK2FyY2hpdmVfY21k cz0kbHRfYXJjaGl2ZV9jbWRzCisrYXJjaGl2ZV9leHBzeW1fY21kcz0kbHRfYXJjaGl2ZV9leHBz eW1fY21kcworKworKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBp ZiBkaWZmZXJlbnQgZnJvbSBidWlsZGluZworKyMgYSBzaGFyZWQgYXJjaGl2ZS4KKyttb2R1bGVf Y21kcz0kbHRfbW9kdWxlX2NtZHMKKyttb2R1bGVfZXhwc3ltX2NtZHM9JGx0X21vZHVsZV9leHBz eW1fY21kcworKworKyMgV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90 LgorK3dpdGhfZ251X2xkPSRsdF93aXRoX2dudV9sZAorKworKyMgRmxhZyB0aGF0IGFsbG93cyBz aGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCisrYWxs b3dfdW5kZWZpbmVkX2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnCisrCisrIyBGbGFnIHRo YXQgZW5mb3JjZXMgbm8gdW5kZWZpbmVkIHN5bWJvbHMuCisrbm9fdW5kZWZpbmVkX2ZsYWc9JGx0 X25vX3VuZGVmaW5lZF9mbGFnCisrCisrIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8g YSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCisrIyBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGli ZGlyIGRvZXMgbm90IGV4aXN0CisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0kbHRfaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYworKworKyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZs YWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeQorKyMgZHVyaW5nIGxpbmtpbmcu ICBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0LgorK2hhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQK KysKKysjIFdoZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdpdGggYSBzZXBh cmF0ZWQgYXJndW1lbnQuCisraGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0kbHRfaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvcgorKworKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1F XCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCisrIyBESVIgaW50byB0aGUg cmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29kZV9kaXJlY3Q9JGhhcmRjb2RlX2RpcmVjdAorKwor KyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5n IGxpbmtpbmcgaGFyZGNvZGVzCisrIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeSBhbmQg dGhlIHJlc3VsdGluZyBsaWJyYXJ5IGRlcGVuZGVuY3kgaXMKKysjICJhYnNvbHV0ZSIsaS5lIGlt cG9zc2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgXCR7c2hsaWJwYXRoX3Zhcn0gaWYgdGhlCisr IyBsaWJyYXJ5IGlzIHJlbG9jYXRlZC4KKytoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9JGhhcmRj b2RlX2RpcmVjdF9hYnNvbHV0ZQorKworKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRoZSAtTERJ UiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKKysjIGludG8gdGhlIHJlc3VsdGlu ZyBiaW5hcnkuCisraGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNfTAorKworKyMgU2V0 IHRvICJ5ZXMiIGlmIHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRj b2RlcyBESVIKKysjIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCisraGFyZGNvZGVfc2hsaWJw YXRoX3Zhcj0kaGFyZGNvZGVfc2hsaWJwYXRoX3ZhcgorKworKyMgU2V0IHRvICJ5ZXMiIGlmIGJ1 aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSCisrIyBp bnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMgYW5kIGV4ZWN1dGFi bGVzIGxpbmtlZAorKyMgYWdhaW5zdCBpdC4KKytoYXJkY29kZV9hdXRvbWF0aWM9JGhhcmRjb2Rl X2F1dG9tYXRpYworKworKyMgU2V0IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50aW1lIHBhdGhz IG9mIGRlcGVuZGVudCBsaWJyYXJpZXMKKysjIHRvIHJ1bnRpbWUgcGF0aCBsaXN0LgorK2luaGVy aXRfcnBhdGg9JGluaGVyaXRfcnBhdGgKKysKKysjIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsg YSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KKytsaW5rX2Fs bF9kZXBsaWJzPSRsaW5rX2FsbF9kZXBsaWJzCisrCisrIyBGaXggdGhlIHNoZWxsIHZhcmlhYmxl IFwkc3JjZmlsZSBmb3IgdGhlIGNvbXBpbGVyLgorK2ZpeF9zcmNmaWxlX3BhdGg9JGx0X2ZpeF9z cmNmaWxlX3BhdGgKKysKKysjIFNldCB0byAieWVzIiBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSBy ZXF1aXJlZC4KKythbHdheXNfZXhwb3J0X3N5bWJvbHM9JGFsd2F5c19leHBvcnRfc3ltYm9scwor KworKyMgVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KKytleHBvcnRfc3lt Ym9sc19jbWRzPSRsdF9leHBvcnRfc3ltYm9sc19jbWRzCisrCisrIyBTeW1ib2xzIHRoYXQgc2hv dWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xzLgorK2V4Y2x1ZGVfZXhw c3ltcz0kbHRfZXhjbHVkZV9leHBzeW1zCisrCisrIyBTeW1ib2xzIHRoYXQgbXVzdCBhbHdheXMg YmUgZXhwb3J0ZWQuCisraW5jbHVkZV9leHBzeW1zPSRsdF9pbmNsdWRlX2V4cHN5bXMKKysKKysj IENvbW1hbmRzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyBwcm9ncmFtcyAoYWdhaW5zdCBsaWJyYXJp ZXMpIHdpdGggdGVtcGxhdGVzLgorK3ByZWxpbmtfY21kcz0kbHRfcHJlbGlua19jbWRzCisrCisr IyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMuCisrZmlsZV9saXN0X3Nw ZWM9JGx0X2ZpbGVfbGlzdF9zcGVjCisrCisrIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGli cmFyeSBwYXRoIGludG8gYW4gZXhlY3V0YWJsZS4KKytoYXJkY29kZV9hY3Rpb249JGhhcmRjb2Rl X2FjdGlvbgorKworKyMgVGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIg d2hlbiBjcmVhdGluZyBhIHNoYXJlZCBsaWJyYXJ5LgorK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGly cz0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzCisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxh Y2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KKysjIGNyZWF0 ZSBhIHNoYXJlZCBsaWJyYXJ5LgorK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0cwor K3Bvc3RkZXBfb2JqZWN0cz0kbHRfcG9zdGRlcF9vYmplY3RzCisrcHJlZGVwcz0kbHRfcHJlZGVw cworK3Bvc3RkZXBzPSRsdF9wb3N0ZGVwcworKworKyMgVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGgg dXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcKKysjIGEgc2hhcmVk IGxpYnJhcnkuCisrY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSRsdF9jb21waWxlcl9saWJfc2Vh cmNoX3BhdGgKKysKKysjICMjIyBFTkQgTElCVE9PTCBDT05GSUcKKysKKytfTFRfRU9GCisrCisr ICBjYXNlICRob3N0X29zIGluCisrICBhaXgzKikKKysgICAgY2F0IDw8XF9MVF9FT0YgPj4gIiRj ZmdmaWxlIgorKyMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxl Y3QyIHByb2dyYW0uICBGb3Igc29tZQorKyMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1Rf TkFNRVMgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBwcm9ibGVtcworKyMgdmFuaXNoIGluIGEg cHVmZiBvZiBzbW9rZS4KKytpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7 IHRoZW4KKysgIENPTExFQ1RfTkFNRVM9CisrICBleHBvcnQgQ09MTEVDVF9OQU1FUworK2ZpCisr X0xUX0VPRgorKyAgICA7OworKyAgZXNhYworKworKworK2x0bWFpbj0iJGFjX2F1eF9kaXIvbHRt YWluLnNoIgorKworKworKyAgIyBXZSB1c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJlY2F1c2UgYmFz aCBvbiBESkdQUCBnZXRzIGNvbmZ1c2VkIGlmCisrICAjIGlmIGZpbmRzIG1peGVkIENSL0xGIGFu ZCBMRi1vbmx5IGxpbmVzLiAgU2luY2Ugc2VkIG9wZXJhdGVzIGluCisrICAjIHRleHQgbW9kZSwg aXQgcHJvcGVybHkgY29udmVydHMgbGluZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2ggcHJvYmxlbQor KyAgIyBpcyByZXBvcnRlZGx5IGZpeGVkLCBidXQgd2h5IG5vdCBydW4gb24gb2xkIHZlcnNpb25z IHRvbz8KKysgIHNlZCAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5zZXJ0ZWQgaGVy ZS9xJyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBcCisrICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUi OyBleGl0IDEpCisrCisrICBjYXNlICR4c2lfc2hlbGwgaW4KKysgIHllcykKKysgICAgY2F0IDw8 IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysKKysjIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBu b25kaXJfcmVwbGFjZW1lbnQKKysjIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5v bmVtcHR5LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsCisrIyBvdGhlcndpc2Ugc2V0IHJlc3Vs dCB0byBOT05ESVJfUkVQTEFDRU1FTlQuCisrZnVuY19kaXJuYW1lICgpCisreworKyAgY2FzZSAk ezF9IGluCisrICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7Cisr ICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKKysgIGVzYWMKKyt9CisrCisr IyBmdW5jX2Jhc2VuYW1lIGZpbGUKKytmdW5jX2Jhc2VuYW1lICgpCisreworKyAgZnVuY19iYXNl bmFtZV9yZXN1bHQ9IiR7MSMjKi99IgorK30KKysKKysjIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5h bWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50CisrIyBwZXJmb3JtIGZ1bmNfYmFzZW5h bWUgYW5kIGZ1bmNfZGlybmFtZSBpbiBhIHNpbmdsZSBmdW5jdGlvbgorKyMgY2FsbDoKKysjICAg ZGlybmFtZTogIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LAorKyMg ICAgICAgICAgICAgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LCBvdGhlcndpc2Ugc2V0IHJlc3Vs dAorKyMgICAgICAgICAgICAgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgorKyMgICAgICAgICAgICAg dmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKyMgICBiYXNlbmFtZTog Q29tcHV0ZSBmaWxlbmFtZSBvZiBGSUxFLgorKyMgICAgICAgICAgICAgdmFsdWUgcmV0dW5lZCBp biAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKyMgSW1wbGVtZW50YXRpb24gbXVzdCBiZSBrZXB0 IHN5bmNocm9uaXplZCB3aXRoIGZ1bmNfZGlybmFtZQorKyMgYW5kIGZ1bmNfYmFzZW5hbWUuIEZv ciBlZmZpY2llbmN5LCB3ZSBkbyBub3QgZGVsZWdhdGUgdG8KKysjIHRob3NlIGZ1bmN0aW9ucyBi dXQgaW5zdGVhZCBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgaGVyZS4KKytmdW5jX2Rpcm5h bWVfYW5kX2Jhc2VuYW1lICgpCisreworKyAgY2FzZSAkezF9IGluCisrICAgICovKikgZnVuY19k aXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7CisrICAgICogICkgZnVuY19kaXJuYW1lX3Jl c3VsdD0iJHszfSIgOzsKKysgIGVzYWMKKysgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyov fSIKKyt9CisrCisrIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3VmZml4IG5hbWUKKysjIHN0cmlw IFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgorKyMgUFJFRklYIGFuZCBTVUZGSVggbXVz dCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVjaWFsCisrIyBjaGFyYWN0ZXJzLCBo YXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFkaW5nCisr IyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgorK2Z1bmNfc3Ry aXBuYW1lICgpCisreworKyAgIyBwZGtzaCA1LjIuMTQgZG9lcyBub3QgZG8gJHtYJSRZfSBjb3Jy ZWN0bHkgaWYgYm90aCBYIGFuZCBZIGFyZQorKyAgIyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsIHNv IGFzc2lnbiBvbmUgdG8gb3JkaW5hcnkgcGFyYW1ldGVyIGZpcnN0LgorKyAgZnVuY19zdHJpcG5h bWVfcmVzdWx0PSR7M30KKysgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0ke2Z1bmNfc3RyaXBuYW1l X3Jlc3VsdCMiJHsxfSJ9CisrICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFt ZV9yZXN1bHQlIiR7Mn0ifQorK30KKysKKysjIGZ1bmNfb3B0X3NwbGl0CisrZnVuY19vcHRfc3Bs aXQgKCkKKyt7CisrICBmdW5jX29wdF9zcGxpdF9vcHQ9JHsxJSU9Kn0KKysgIGZ1bmNfb3B0X3Nw bGl0X2FyZz0kezEjKj19CisrfQorKworKyMgZnVuY19sbzJvIG9iamVjdAorK2Z1bmNfbG8ybyAo KQorK3sKKysgIGNhc2UgJHsxfSBpbgorKyAgICAqLmxvKSBmdW5jX2xvMm9fcmVzdWx0PSR7MSUu bG99LiR7b2JqZXh0fSA7OworKyAgICAqKSAgICBmdW5jX2xvMm9fcmVzdWx0PSR7MX0gOzsKKysg IGVzYWMKKyt9CisrCisrIyBmdW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKKytmdW5jX3hmb3Jt ICgpCisreworKyAgZnVuY194Zm9ybV9yZXN1bHQ9JHsxJS4qfS5sbworK30KKysKKysjIGZ1bmNf YXJpdGggYXJpdGhtZXRpYy10ZXJtLi4uCisrZnVuY19hcml0aCAoKQorK3sKKysgIGZ1bmNfYXJp dGhfcmVzdWx0PSQoKCAkKiApKQorK30KKysKKysjIGZ1bmNfbGVuIHN0cmluZworKyMgU1RSSU5H IG1heSBub3Qgc3RhcnQgd2l0aCBhIGh5cGhlbi4KKytmdW5jX2xlbiAoKQorK3sKKysgIGZ1bmNf bGVuX3Jlc3VsdD0keyMxfQorK30KKysKKytfTFRfRU9GCisrICAgIDs7CisrICAqKSAjIEJvdXJu ZSBjb21wYXRpYmxlIGZ1bmN0aW9ucy4KKysgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmls ZSIKKysKKysjIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKKysj IENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRv IHRoZSByZXN1bHQsCisrIyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFDRU1F TlQuCisrZnVuY19kaXJuYW1lICgpCisreworKyAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9t IHRoZSBhcmd1bWVudC4KKysgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRT RUQgIiRkaXJuYW1lImAKKysgIGlmIHRlc3QgIlgkZnVuY19kaXJuYW1lX3Jlc3VsdCIgPSAiWCR7 MX0iOyB0aGVuCisrICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iCisrICBlbHNlCisrICAg IGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0JHsyfSIKKysgIGZpCisr fQorKworKyMgZnVuY19iYXNlbmFtZSBmaWxlCisrZnVuY19iYXNlbmFtZSAoKQorK3sKKysgIGZ1 bmNfYmFzZW5hbWVfcmVzdWx0PWAkRUNITyAiJHsxfSIgfCAkU0VEICIkYmFzZW5hbWUiYAorK30K KysKKysKKysjIGZ1bmNfc3RyaXBuYW1lIHByZWZpeCBzdWZmaXggbmFtZQorKyMgc3RyaXAgUFJF RklYIGFuZCBTVUZGSVggb2ZmIG9mIE5BTUUuCisrIyBQUkVGSVggYW5kIFNVRkZJWCBtdXN0IG5v dCBjb250YWluIGdsb2JiaW5nIG9yIHJlZ2V4IHNwZWNpYWwKKysjIGNoYXJhY3RlcnMsIGhhc2hl cywgcGVyY2VudCBzaWducywgYnV0IFNVRkZJWCBtYXkgY29udGFpbiBhIGxlYWRpbmcKKysjIGRv dCAoaW4gd2hpY2ggY2FzZSB0aGF0IG1hdGNoZXMgb25seSBhIGRvdCkuCisrIyBmdW5jX3N0cmlw X3N1ZmZpeCBwcmVmaXggbmFtZQorK2Z1bmNfc3RyaXBuYW1lICgpCisreworKyAgY2FzZSAkezJ9 IGluCisrICAgIC4qKSBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9YCRFQ0hPICIkezN9IiB8ICRTRUQg InMlXiR7MX0lJTsgcyVcXFxcJHsyfVwkJSUiYDs7CisrICAgICopICBmdW5jX3N0cmlwbmFtZV9y ZXN1bHQ9YCRFQ0hPICIkezN9IiB8ICRTRUQgInMlXiR7MX0lJTsgcyUkezJ9XCQlJSJgOzsKKysg IGVzYWMKKyt9CisrCisrIyBzZWQgc2NyaXB0czoKKytteV9zZWRfbG9uZ19vcHQ9JzFzL15cKC1b Xj1dKlwpPS4qL1wxLztxJworK215X3NlZF9sb25nX2FyZz0nMXMvXi1bXj1dKj0vLycKKysKKysj IGZ1bmNfb3B0X3NwbGl0CisrZnVuY19vcHRfc3BsaXQgKCkKKyt7CisrICBmdW5jX29wdF9zcGxp dF9vcHQ9YCRFQ0hPICIkezF9IiB8ICRTRUQgIiRteV9zZWRfbG9uZ19vcHQiYAorKyAgZnVuY19v cHRfc3BsaXRfYXJnPWAkRUNITyAiJHsxfSIgfCAkU0VEICIkbXlfc2VkX2xvbmdfYXJnImAKKyt9 CisrCisrIyBmdW5jX2xvMm8gb2JqZWN0CisrZnVuY19sbzJvICgpCisreworKyAgZnVuY19sbzJv X3Jlc3VsdD1gJEVDSE8gIiR7MX0iIHwgJFNFRCAiJGxvMm8iYAorK30KKysKKysjIGZ1bmNfeGZv cm0gbGlib2JqLW9yLXNvdXJjZQorK2Z1bmNfeGZvcm0gKCkKKyt7CisrICBmdW5jX3hmb3JtX3Jl c3VsdD1gJEVDSE8gIiR7MX0iIHwgJFNFRCAncy9cLlteLl0qJC8ubG8vJ2AKKyt9CisrCisrIyBm dW5jX2FyaXRoIGFyaXRobWV0aWMtdGVybS4uLgorK2Z1bmNfYXJpdGggKCkKKyt7CisrICBmdW5j X2FyaXRoX3Jlc3VsdD1gZXhwciAiJEAiYAorK30KKysKKysjIGZ1bmNfbGVuIHN0cmluZworKyMg U1RSSU5HIG1heSBub3Qgc3RhcnQgd2l0aCBhIGh5cGhlbi4KKytmdW5jX2xlbiAoKQorK3sKKysg IGZ1bmNfbGVuX3Jlc3VsdD1gZXhwciAiJDEiIDogIi4qIiAyPi9kZXYvbnVsbCB8fCBlY2hvICRt YXhfY21kX2xlbmAKKyt9CisrCisrX0xUX0VPRgorK2VzYWMKKysKKytjYXNlICRsdF9zaGVsbF9h cHBlbmQgaW4KKysgIHllcykKKysgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysK KysjIGZ1bmNfYXBwZW5kIHZhciB2YWx1ZQorKyMgQXBwZW5kIFZBTFVFIHRvIHRoZSBlbmQgb2Yg c2hlbGwgdmFyaWFibGUgVkFSLgorK2Z1bmNfYXBwZW5kICgpCisreworKyAgZXZhbCAiJDErPVwk MiIKKyt9CisrX0xUX0VPRgorKyAgICA7OworKyAgKikKKysgICAgY2F0IDw8IFxfTFRfRU9GID4+ ICIkY2ZnZmlsZSIKKysKKysjIGZ1bmNfYXBwZW5kIHZhciB2YWx1ZQorKyMgQXBwZW5kIFZBTFVF IHRvIHRoZSBlbmQgb2Ygc2hlbGwgdmFyaWFibGUgVkFSLgorK2Z1bmNfYXBwZW5kICgpCisrewor KyAgZXZhbCAiJDE9XCQkMVwkMiIKKyt9CisrCisrX0xUX0VPRgorKyAgICA7OworKyAgZXNhYwor KworKworKyAgc2VkIC1uICcvXiMgR2VuZXJhdGVkIHNoZWxsIGZ1bmN0aW9ucyBpbnNlcnRlZCBo ZXJlLywkcCcgIiRsdG1haW4iID4+ICIkY2ZnZmlsZSIgXAorKyAgICB8fCAocm0gLWYgIiRjZmdm aWxlIjsgZXhpdCAxKQorKworKyAgbXYgLWYgIiRjZmdmaWxlIiAiJG9maWxlIiB8fAorKyAgICAo cm0gLWYgIiRvZmlsZSIgJiYgY3AgIiRjZmdmaWxlIiAiJG9maWxlIiAmJiBybSAtZiAiJGNmZ2Zp bGUiKQorKyAgY2htb2QgK3ggIiRvZmlsZSIKKysKKysKKysgICAgY2F0IDw8X0xUX0VPRiA+PiAi JG9maWxlIgorKworKyMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogQ1hYCisrCisrIyBU aGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzLgorK0xEPSRsdF9MRF9DWFgKKysKKysj IEhvdyB0byBjcmVhdGUgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMuCisrcmVsb2FkX2ZsYWc9JGx0 X3JlbG9hZF9mbGFnX0NYWAorK3JlbG9hZF9jbWRzPSRsdF9yZWxvYWRfY21kc19DWFgKKysKKysj IENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW4gb2xkLXN0eWxlIGFyY2hpdmUuCisrb2xkX2FyY2hp dmVfY21kcz0kbHRfb2xkX2FyY2hpdmVfY21kc19DWFgKKysKKysjIEEgbGFuZ3VhZ2Ugc3BlY2lm aWMgY29tcGlsZXIuCisrQ0M9JGx0X2NvbXBpbGVyX0NYWAorKworKyMgSXMgdGhlIGNvbXBpbGVy IHRoZSBHTlUgY29tcGlsZXI/Cisrd2l0aF9nY2M9JEdDQ19DWFgKKysKKysjIENvbXBpbGVyIGZs YWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCisrbm9fYnVpbHRpbl9mbGFnPSRsdF9s dF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFgKKysKKysjIEhvdyB0byBwYXNzIGEg bGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCisrd2w9JGx0X2x0X3Byb2dfY29tcGls ZXJfd2xfQ1hYCisrCisrIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBs aWJyYXJ5IG9iamVjdHMuCisrcGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfcGljX0NYWAor KworKyMgQ29tcGlsZXIgZmxhZyB0byBwcmV2ZW50IGR5bmFtaWMgbGlua2luZy4KKytsaW5rX3N0 YXRpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFgKKysKKysjIERvZXMgY29t cGlsZXIgc2ltdWx0YW5lb3VzbHkgc3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz8KKytjb21waWxl cl9jX289JGx0X2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWAorKworKyMgV2hldGhlciBvciBu b3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KKytidWlsZF9saWJ0 b29sX25lZWRfbGM9JGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWAorKworKyMgV2hldGhlciBvciBu b3QgdG8gZGlzYWxsb3cgc2hhcmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpYy4K KythbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXM9JGVuYWJsZV9zaGFyZWRf d2l0aF9zdGF0aWNfcnVudGltZXNfQ1hYCisrCisrIyBDb21waWxlciBmbGFnIHRvIGFsbG93IHJl ZmxleGl2ZSBkbG9wZW5zLgorK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0kbHRfZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjX0NYWAorKworKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFy ZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgorK3dob2xlX2FyY2hpdmVfZmxhZ19z cGVjPSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFgKKysKKysjIFdoZXRoZXIgdGhlIGNv bXBpbGVyIGNvcGVzIHdpdGggcGFzc2luZyBubyBvYmplY3RzIGRpcmVjdGx5LgorK2NvbXBpbGVy X25lZWRzX29iamVjdD0kbHRfY29tcGlsZXJfbmVlZHNfb2JqZWN0X0NYWAorKworKyMgQ3JlYXRl IGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KKytvbGRfYXJjaGl2 ZV9mcm9tX25ld19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0NYWAorKworKyMg Q3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBh IHNoYXJlZCBhcmNoaXZlLgorK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSRsdF9vbGRf YXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19DWFgKKysKKysjIENvbW1hbmRzIHVzZWQgdG8gYnVp bGQgYSBzaGFyZWQgYXJjaGl2ZS4KKythcmNoaXZlX2NtZHM9JGx0X2FyY2hpdmVfY21kc19DWFgK KythcmNoaXZlX2V4cHN5bV9jbWRzPSRsdF9hcmNoaXZlX2V4cHN5bV9jbWRzX0NYWAorKworKyMg Q29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJv bSBidWlsZGluZworKyMgYSBzaGFyZWQgYXJjaGl2ZS4KKyttb2R1bGVfY21kcz0kbHRfbW9kdWxl X2NtZHNfQ1hYCisrbW9kdWxlX2V4cHN5bV9jbWRzPSRsdF9tb2R1bGVfZXhwc3ltX2NtZHNfQ1hY CisrCisrIyBXaGV0aGVyIHdlIGFyZSBidWlsZGluZyB3aXRoIEdOVSBsZCBvciBub3QuCisrd2l0 aF9nbnVfbGQ9JGx0X3dpdGhfZ251X2xkX0NYWAorKworKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFy ZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCisrYWxsb3df dW5kZWZpbmVkX2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnX0NYWAorKworKyMgRmxhZyB0 aGF0IGVuZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzLgorK25vX3VuZGVmaW5lZF9mbGFnPSRs dF9ub191bmRlZmluZWRfZmxhZ19DWFgKKysKKysjIEZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIg aW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KKysjIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYg XCRsaWJkaXIgZG9lcyBub3QgZXhpc3QKKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSRsdF9o YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWAorKworKyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxp bmtpbmcsIGZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeQorKyMgZHVyaW5n IGxpbmtpbmcuICBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0 LgorK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfbGRfQ1hYCisrCisrIyBXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgIi1ycGF0aCIgZmxh ZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50LgorK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9 JGx0X2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYCisrCisrIyBTZXQgdG8gInllcyIgaWYg dXNpbmcgRElSL2xpYk5BTUVcJHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMK KysjIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgorK2hhcmRjb2RlX2RpcmVjdD0kaGFy ZGNvZGVfZGlyZWN0X0NYWAorKworKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1F XCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCisrIyBESVIgaW50byB0aGUg cmVzdWx0aW5nIGJpbmFyeSBhbmQgdGhlIHJlc3VsdGluZyBsaWJyYXJ5IGRlcGVuZGVuY3kgaXMK KysjICJhYnNvbHV0ZSIsaS5lIGltcG9zc2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgXCR7c2hs aWJwYXRoX3Zhcn0gaWYgdGhlCisrIyBsaWJyYXJ5IGlzIHJlbG9jYXRlZC4KKytoYXJkY29kZV9k aXJlY3RfYWJzb2x1dGU9JGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFgKKysKKysjIFNldCB0 byAieWVzIiBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMg RElSCisrIyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgorK2hhcmRjb2RlX21pbnVzX0w9JGhh cmRjb2RlX21pbnVzX0xfQ1hYCisrCisrIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgU0hMSUJQQVRI X1ZBUj1ESVIgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUgorKyMgaW50byB0aGUgcmVzdWx0 aW5nIGJpbmFyeS4KKytoYXJkY29kZV9zaGxpYnBhdGhfdmFyPSRoYXJkY29kZV9zaGxpYnBhdGhf dmFyX0NYWAorKworKyMgU2V0IHRvICJ5ZXMiIGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkg YXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSCisrIyBpbnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwg c3Vic2VxdWVudCBsaWJyYXJpZXMgYW5kIGV4ZWN1dGFibGVzIGxpbmtlZAorKyMgYWdhaW5zdCBp dC4KKytoYXJkY29kZV9hdXRvbWF0aWM9JGhhcmRjb2RlX2F1dG9tYXRpY19DWFgKKysKKysjIFNl dCB0byB5ZXMgaWYgbGlua2VyIGFkZHMgcnVudGltZSBwYXRocyBvZiBkZXBlbmRlbnQgbGlicmFy aWVzCisrIyB0byBydW50aW1lIHBhdGggbGlzdC4KKytpbmhlcml0X3JwYXRoPSRpbmhlcml0X3Jw YXRoX0NYWAorKworKyMgV2hldGhlciBsaWJ0b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5z dCBhbGwgaXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzLgorK2xpbmtfYWxsX2RlcGxpYnM9JGxpbmtf YWxsX2RlcGxpYnNfQ1hYCisrCisrIyBGaXggdGhlIHNoZWxsIHZhcmlhYmxlIFwkc3JjZmlsZSBm b3IgdGhlIGNvbXBpbGVyLgorK2ZpeF9zcmNmaWxlX3BhdGg9JGx0X2ZpeF9zcmNmaWxlX3BhdGhf Q1hYCisrCisrIyBTZXQgdG8gInllcyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQu CisrYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSRhbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYCisrCisr IyBUaGUgY29tbWFuZHMgdG8gbGlzdCBleHBvcnRlZCBzeW1ib2xzLgorK2V4cG9ydF9zeW1ib2xz X2NtZHM9JGx0X2V4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYCisrCisrIyBTeW1ib2xzIHRoYXQgc2hv dWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xzLgorK2V4Y2x1ZGVfZXhw c3ltcz0kbHRfZXhjbHVkZV9leHBzeW1zX0NYWAorKworKyMgU3ltYm9scyB0aGF0IG11c3QgYWx3 YXlzIGJlIGV4cG9ydGVkLgorK2luY2x1ZGVfZXhwc3ltcz0kbHRfaW5jbHVkZV9leHBzeW1zX0NY WAorKworKyMgQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHByb2dyYW1zIChhZ2FpbnN0 IGxpYnJhcmllcykgd2l0aCB0ZW1wbGF0ZXMuCisrcHJlbGlua19jbWRzPSRsdF9wcmVsaW5rX2Nt ZHNfQ1hYCisrCisrIyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMuCisr ZmlsZV9saXN0X3NwZWM9JGx0X2ZpbGVfbGlzdF9zcGVjX0NYWAorKworKyMgSG93IHRvIGhhcmRj b2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGUuCisraGFyZGNvZGVf YWN0aW9uPSRoYXJkY29kZV9hY3Rpb25fQ1hYCisrCisrIyBUaGUgZGlyZWN0b3JpZXMgc2VhcmNo ZWQgYnkgdGhpcyBjb21waWxlciB3aGVuIGNyZWF0aW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrY29t cGlsZXJfbGliX3NlYXJjaF9kaXJzPSRsdF9jb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYCisr CisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0cyBi ZWluZyBsaW5rZWQgdG8KKysjIGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5LgorK3ByZWRlcF9vYmpl Y3RzPSRsdF9wcmVkZXBfb2JqZWN0c19DWFgKKytwb3N0ZGVwX29iamVjdHM9JGx0X3Bvc3RkZXBf b2JqZWN0c19DWFgKKytwcmVkZXBzPSRsdF9wcmVkZXBzX0NYWAorK3Bvc3RkZXBzPSRsdF9wb3N0 ZGVwc19DWFgKKysKKysjIFRoZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBi eSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCisrIyBhIHNoYXJlZCBsaWJyYXJ5LgorK2NvbXBp bGVyX2xpYl9zZWFyY2hfcGF0aD0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWAorKwor KyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6IENYWAorK19MVF9FT0YKKysKKysgOzsKKysK KysgIGVzYWMKKytkb25lICMgZm9yIGFjX3RhZworKworKworK2FzX2ZuX2V4aXQgMAorK19BQ0VP RgorK2FjX2NsZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCisrCisrdGVzdCAkYWNfd3Jp dGVfZmFpbCA9IDAgfHwKKysgIGFzX2ZuX2Vycm9yICQ/ICJ3cml0ZSBmYWlsdXJlIGNyZWF0aW5n ICRDT05GSUdfU1RBVFVTIiAiJExJTkVOTyIgNQorKworKworKyMgY29uZmlndXJlIGlzIHdyaXRp bmcgdG8gY29uZmlnLmxvZywgYW5kIHRoZW4gY2FsbHMgY29uZmlnLnN0YXR1cy4KKysjIGNvbmZp Zy5zdGF0dXMgZG9lcyBpdHMgb3duIHJlZGlyZWN0aW9uLCBhcHBlbmRpbmcgdG8gY29uZmlnLmxv Zy4KKysjIFVuZm9ydHVuYXRlbHksIG9uIERPUyB0aGlzIGZhaWxzLCBhcyBjb25maWcubG9nIGlz IHN0aWxsIGtlcHQgb3BlbgorKyMgYnkgY29uZmlndXJlLCBzbyBjb25maWcuc3RhdHVzIHdvbid0 IGJlIGFibGUgdG8gd3JpdGUgdG8gaXQ7IGl0cworKyMgb3V0cHV0IGlzIHNpbXBseSBkaXNjYXJk ZWQuICBTbyB3ZSBleGVjIHRoZSBGRCB0byAvZGV2L251bGwsCisrIyBlZmZlY3RpdmVseSBjbG9z aW5nIGNvbmZpZy5sb2csIHNvIGl0IGNhbiBiZSBwcm9wZXJseSAocmUpb3BlbmVkIGFuZAorKyMg YXBwZW5kZWQgdG8gYnkgY29uZmlnLnN0YXR1cy4gIFdoZW4gY29taW5nIGJhY2sgdG8gY29uZmln dXJlLCB3ZQorKyMgbmVlZCB0byBtYWtlIHRoZSBGRCBhdmFpbGFibGUgYWdhaW4uCisraWYgdGVz dCAiJG5vX2NyZWF0ZSIgIT0geWVzOyB0aGVuCisrICBhY19jc19zdWNjZXNzPToKKysgIGFjX2Nv bmZpZ19zdGF0dXNfYXJncz0KKysgIHRlc3QgIiRzaWxlbnQiID0geWVzICYmCisrICAgIGFjX2Nv bmZpZ19zdGF0dXNfYXJncz0iJGFjX2NvbmZpZ19zdGF0dXNfYXJncyAtLXF1aWV0IgorKyAgZXhl YyA1Pi9kZXYvbnVsbAorKyAgJFNIRUxMICRDT05GSUdfU1RBVFVTICRhY19jb25maWdfc3RhdHVz X2FyZ3MgfHwgYWNfY3Nfc3VjY2Vzcz1mYWxzZQorKyAgZXhlYyA1Pj5jb25maWcubG9nCisrICAj IFVzZSB8fCwgbm90ICYmLCB0byBhdm9pZCBleGl0aW5nIGZyb20gdGhlIGlmIHdpdGggJD8gPSAx LCB3aGljaAorKyAgIyB3b3VsZCBtYWtlIGNvbmZpZ3VyZSBmYWlsIGlmIHRoaXMgaXMgdGhlIGxh c3QgaW5zdHJ1Y3Rpb24uCisrICAkYWNfY3Nfc3VjY2VzcyB8fCBhc19mbl9leGl0IDEKKyBmaQor K2lmIHRlc3QgLW4gIiRhY191bnJlY29nbml6ZWRfb3B0cyIgJiYgdGVzdCAiJGVuYWJsZV9vcHRp b25fY2hlY2tpbmciICE9IG5vOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IFdBUk5JTkc6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25p emVkX29wdHMiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVucmVjb2duaXplZCBv cHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mMjt9CisrZmkKKysKKysKKytlY2hvICIK KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyskUEFDS0FHRS0kVkVSU0lPTiBsaWJyYXJ5IGNvbmZp Z3VyYXRpb246CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrRGlyZWN0b3JpZXM6CisrICAt IHByZWZpeCAuLi4uLi4uLi4uLi4uLi4gOiAke3ByZWZpeH0KKysgIC0gZXhlY19wcmVmaXggLi4u Li4uLi4uLiA6ICR7ZXhlY19wcmVmaXh9CisrICAtIGluY2x1ZGVkaXIgLi4uLi4uLi4uLi4gOiAk e2luY2x1ZGVkaXJ9CisrICAtIGxpYmRpciAuLi4uLi4uLi4uLi4uLi4gOiAke2xpYmRpcn0KKysg IC0gZG9jZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZG9jZGlyfQorKyAgLSBtYW5kaXIgLi4uLi4u Li4uLi4uLi4uIDogJHttYW5kaXJ9CisrICAtIGluZm9kaXIgLi4uLi4uLi4uLi4uLi4gOiAke2lu Zm9kaXJ9CisrCisrU3dpdGNoZXM6CisrICAtIGV4Y2VwdGlvbnMgLi4uLi4uLi4uLi4gOiAke2Vu YWJsZV9leGNlcHRpb25zfQorKyAgLSBpbmZvLWRvYyAuLi4uLi4uLi4uLi4uIDogJHtlbmFibGVf aW5mb19kb2N9CisrICAtIGh0bWwtZG9jIC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9odG1sX2Rv Y30KKysgIC0gc2hhcmVkIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX3NoYXJlZH0KKysgIC0g c3RhdGljIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX3N0YXRpY30KKysKKytEb2N1bWVudGF0 aW9uIHRvb2xzOgorKyAgLSB0ZXhpbmZvIC4uLi4uLi4uLi4uLi4uIDogJHt0ZXhpbmZvX29rfQor KyAgLSBkb3h5Z2VuIC4uLi4uLi4uLi4uLi4uIDogJHtkb3h5Z2VuX29rfQorKyAgLSBsYXRleCAu Li4uLi4uLi4uLi4uLi4uIDogJHtsYXRleF9va30KKysgIC0gZHZpcHMgLi4uLi4uLi4uLi4uLi4u LiA6ICR7ZHZpcHNfb2t9CisrICAtIGdob3N0c2NyaXB0IC4uLi4uLi4uLi4gOiAke2dzX29rfQor KworK1Rlc3RpbmcgdG9vbHM6CisrICAtIGRpZmYgLi4uLi4uLi4uLi4uLi4uLi4gOiAke2RpZmZf b2t9CisrICAtIHNlZCAuLi4uLi4uLi4uLi4uLi4uLi4gOiAke3NlZF9va30KKysKKytDb21waWxl ci9saW5rZXIgZmxhZ3MvbGlicy9kZWZzOgorKyAgLSBDWFggLi4uLi4uLi4uLi4uLi4uLi4uIDog JHtDWFh9CisrICAtIENYWEZMQUdTIC4uLi4uLi4uLi4uLi4gOiAke0NYWEZMQUdTfQorKyAgLSBD UFBGTEFHUyAuLi4uLi4uLi4uLi4uIDogJHtDUFBGTEFHU30KKysgIC0gTERGTEFHUyAuLi4uLi4u Li4uLi4uLiA6ICR7TERGTEFHU30KKysgIC0gTElCUyAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7TElC U30KKysKKytCdXJyaWVkIGhlYWRlciBmaWxlczoKKysgIC0gU09DSV9IRUFERVJTX0JVUklFRCAu Li4uLi4uIDogJHtlbmFibGVfYnVycmllZF9oZWFkZXJzfQorKyAgLSBNWVNRTF9IRUFERVJTX0JV UklFRCAuLi4uLi4gOiAke2VuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnN9CisrICAtIFBPU1RH UkVTUUxfSEVBREVSU19CVVJJRUQgLiA6ICR7ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFk ZXJzfQorKworK0V4dGVybmFsIGxpYnJhcmllczoKKysgIC0gQm9vc3QgLi4uLi4uLi4uLi4uLi4u LiA6CisrICAgIG8gQk9PU1RfVkVSU0lPTiAuLi4uLi4gOiAke0JPT1NUX1ZFUlNJT059CisrICAg IG8gQk9PU1RfQ0ZMQUdTIC4uLi4uLi4gOiAke0JPT1NUX0NGTEFHU30KKysgICAgbyBCT09TVF9M SUJTIC4uLi4uLi4uLiA6ICR7Qk9PU1RfTElCU30KKysgICAgbyBCT09TVF9EVF9MSUIgLi4uLi4u LiA6ICR7Qk9PU1RfREFURV9USU1FX0xJQn0KKysgICAgbyBCT09TVF9QT19MSUIgLi4uLi4uLiA6 ICR7Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQn0KKysKKysgIC0gTXlTUUwgc3VwcG9ydCAuLi4u Li4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfbXlzcWx9CisrICAgIG8gTVlTUUxfVkVSU0lPTiAuLi4u Li4gOiAke01ZU1FMX1ZFUlNJT059CisrICAgIG8gTVlTUUxfQ0ZMQUdTIC4uLi4uLi4gOiAke01Z U1FMX0NGTEFHU30KKysgICAgbyBNWVNRTF9MSUJTIC4uLi4uLi4uLiA6ICR7TVlTUUxfTElCU30K KysKKysgIC0gUG9zdEdyZVNRTCBzdXBwb3J0IC4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdy ZXNxbH0KKysgICAgbyBQT1NUR1JFU1FMX1ZFUlNJT04gLiA6ICR7UE9TVEdSRVNRTF9WRVJTSU9O fQorKyAgICBvIFBPU1RHUkVTUUxfQ0ZMQUdTIC4uIDogJHtQT1NUR1JFU1FMX0NGTEFHU30KKysg ICAgbyBQT1NUR1JFU1FMX0xERkxBR1MgLiA6ICR7UE9TVEdSRVNRTF9MREZMQUdTfQorKworKyAg LSBPcmFjbGUgc3VwcG9ydCAuLi4uLi4uIDogJHtlbmFibGVfYmFja2VuZF9vcmFjbGV9CisrICAg IG8gT1JBQ0xFX1ZFUlNJT04gLi4uLi4gOiAke09SQUNMRV9PQ0lfVkVSU0lPTn0KKysgICAgbyBP UkFDTEVfQ0ZMQUdTIC4uLi4uLiA6ICR7T1JBQ0xFX09DSV9DRkxBR1N9CisrICAgIG8gT1JBQ0xF X0xERkxBR1MgLi4uLi4gOiAke09SQUNMRV9PQ0lfTERGTEFHU30KKysKKysgIC0gQ1BQVW5pdCAu Li4uLi4uLi4uLi4uLiA6CisrICAgIG8gQ1BQVU5JVF9WRVJTSU9OIC4uLi4gOiAke0NQUFVOSVRf VkVSU0lPTn0KKysgICAgbyBDUFBVTklUX0NGTEFHUyAuLi4uLiA6ICR7Q1BQVU5JVF9DRkxBR1N9 CisrICAgIG8gQ1BQVU5JVF9MSUJTIC4uLi4uLi4gOiAke0NQUFVOSVRfTElCU30KKyAKKy1lY2hv ICcnCistY2QgYnVpbGQvdW5peDsgYGNhdCBsb2NhbC90Y2xgIHBhcnNlLXBhcmFtZXRlcnMudGNs CistCistZWNobyAnJworLWVjaG8gJ0NvbmZpZ3VyZSBkb25lLicKKy1lY2hvICdZZXMsIGl0IHdh cyBzaG9ydC4nCistZWNobyAnJworLWVjaG8gJ1lvdSBjYW4gbm93IHJ1biBtYWtlLicKKystLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKytOb3cgdHlwZSAnbWFrZSAmJiBtYWtlIGluc3RhbGwnIHRvIGJ1 aWxkIGFuZCBpbnN0YWxsICRQQUNLQUdFLSRWRVJTSU9OIGxpYnJhcnkKKystLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysiCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlndXJlLmFjIHNv Y2ktMy4wLjBfdHJlcDMwMC9jb25maWd1cmUuYWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25m aWd1cmUuYWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMu MC4wX3RyZXAzMDAvY29uZmlndXJlLmFjCTIwMTEtMDItMDggMjI6Mzk6MzQuMDAwMDAwMDAwICsw MTAwCitAQCAtMCwwICsxLDM5NyBAQAorKyMgUHJvY2VzcyB0aGlzIGZpbGUgd2l0aCBhdXRvY29u ZiB0byBwcm9kdWNlIGEgY29uZmlndXJlIHNjcmlwdAorKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfUFJFUkVR KDIuNTkpCisrQUNfQ09QWVJJR0hUKFtDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMSBNYWNpZWogU29i Y3phayA8bXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0Pl0pCisrQUNfSU5JVChbU09DSV0s WzMuMC4wXSxbbXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0XSxbc29jaV0pCisrQUNfQ09O RklHX0hFQURFUihbc29jaS9jb25maWcuaF0pCisrQUNfQ09ORklHX1NSQ0RJUihbc29jaS9jb3Jl L2Vycm9yLmNwcF0pCisrQUNfQ09ORklHX0FVWF9ESVIoW2NvbmZpZ10pCisrQU1fSU5JVF9BVVRP TUFLRQorK0FNX1BBVEhfQ1BQVU5JVCgxLjEwKQorK0FNX0NPTkRJVElPTkFMKFtIQVZFX0NQUFVO SVRdLCBbdGVzdCAieCRDUFBVTklUX0xJQlMiICE9IHhdKQorKworKyMgU2hhcmVkIGxpYnJhcnkg dmVyc2lvbmluZworK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OPSIzOjA6MCIKKysjICAgICAgICAg ICAgICAgICAgICAgICAgfCB8IHwKKysjICAgICAgICAgICAgICAgICArLS0tLS0tKyB8ICstLS0r CisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAorKyMgICAgICAgICAgICAgIGN1 cnJlbnQ6cmV2aXNpb246YWdlCisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAor KyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZh Y2VzIGhhdmUgYmVlbiBhZGRlZDsKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICAg ICBzZXQgdG8gemVybyBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiAKKysjICAgICAgICAgICAgICAg ICB8ICAgICAgICB8ICAgICAgICByZW1vdmVkIG9yIGNoYW5nZWQKKysjICAgICAgICAgICAgICAg ICB8ICAgICAgICArLSBpbmNyZW1lbnQgaWYgc291cmNlIGNvZGUgaGFzIGNoYW5nZWQ7CisrIyAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgc2V0IHRvIHplcm8gaWYgY3VycmVudCBpcyBpbmNy ZW1lbnRlZAorKyMgICAgICAgICAgICAgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhh dmUgYmVlbiBhZGRlZCwgcmVtb3ZlZAorKyMgICAgICAgICAgICAgICAgICAgIG9yIGNoYW5nZWQK KytBQ19TVUJTVChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKKysKKysjIFVwbG9hZCBjb21tYW5k IGZvciBTb3VyY2VGb3JnZQorK1VQTE9BRF9DT01NQU5EPSJuY2Z0cHB1dCAtdiB1cGxvYWQuc291 cmNlZm9yZ2UubmV0IC9pbmNvbWluZyIKKytBQ19TVUJTVChVUExPQURfQ09NTUFORCkKKysKKysj IENoZWNrIGZvciBob3N0IGFuZCBkaXNhYmxlIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgaW4g V2luZG93cworK0FDX0NBTk9OSUNBTF9IT1NUCisrY2FzZSAkaG9zdCBpbgorKyAgKi0qLW1zZG9z KiB8ICotKi1nbzMyKiB8ICotKi1taW5ndzMyKiB8ICotKi1jeWd3aW4qIHwgKi0qLXdpbmRvd3Mq KSAKKysgICAgQUNfRElTQUJMRV9TSEFSRUQKKysgICAgQUNfRU5BQkxFX1NUQVRJQworKyAgICA7 OworKyAgKikgIAorKyAgICBBQ19FTkFCTEVfU0hBUkVECisrICAgIEFDX0RJU0FCTEVfU1RBVElD CisrICAgIDs7CisrZXNhYworKworKyMgQ2hlY2tzIGZvciBwcm9ncmFtcworK3NhdmVfQ1hYRkxB R1M9IiRDWFhGTEFHUyIKKytBQ19QUk9HX0NYWAorK0FDX1BST0dfQ1hYQ1BQCisrQ1hYRkxBR1M9 IiRzYXZlX0NYWEZMQUdTIgorK0FDX1BST0dfSU5TVEFMTAorK0FDX1BST0dfTElCVE9PTAorK0FD X1BST0dfTE5fUworK0FDX1BST0dfTUFLRV9TRVQKKysKKysjIFNldCBkZWZhdWx0IGxhbmd1YWdl IHRvIEMrKworK0FDX0xBTkcoW0MrK10pCisrCisrIyBDaGVjayBmb3IgZXhjZXB0aW9ucyBzd2l0 Y2gKKytBQ19BUkdfRU5BQkxFKGV4Y2VwdGlvbnMsCisrICAgICAgICAgICAgICBbQVNfSEVMUF9T VFJJTkcoWy0tZW5hYmxlLWV4Y2VwdGlvbnNdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFtlbmFibGUgZXhjZXB0aW9ucyBoYW5kbGluZyBtZWNoYW5pc21dKV0sCisrICAgICAgICAg ICAgICBbQUNfREVGSU5FKFtTT0NJX0VYQ0VQVElPTlNdLCBbMV0sCisrICAgICAgICAgICAgICAg ICAgICAgICAgIFtEZWZpbmUgaWYgeW91IHdhbnQgZXhjZXB0aW9ucyBoYW5kbGluZ10pXSkKKyt0 ZXN0ICJ4JGVuYWJsZV9leGNlcHRpb25zIiAhPSB4bm8gJiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVz CisrdGVzdCAieCRheF9jdl9ib29zdF9kYXRlX3RpbWUiICE9IHhubyAmJiBlbmFibGVfZXhjZXB0 aW9ucz15ZXMKKysKKysjIENoZWNrIGZvciBpbmZvIHBhZ2VzCisrQUNfQVJHX0VOQUJMRShpbmZv LWRvYywgCisrICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1pbmZvLWRv Y10sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RvIG5vdCBnZW5lcmF0ZSBJbmZv IGRvY3VtZW50YXRpb25dKV0pCisrdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubyAmJiBl bmFibGVfaW5mb19kb2M9eWVzCisrCisrCisrIyBDaGVjayBmb3IgaHRtbC1kb2Mgc3dpdGNoCisr QUNfQVJHX0VOQUJMRShodG1sLWRvYywgCisrICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkco Wy0tZGlzYWJsZS1odG1sLWRvY10sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rv IG5vdCBnZW5lcmF0ZSBIVE1MIGRvY3VtZW50YXRpb25dKV0pCisrdGVzdCAieCRlbmFibGVfaHRt bF9kb2MiICE9IHhubyAmJiBlbmFibGVfaHRtbF9kb2M9eWVzCisrCisrCisrIyBQcm92aWRlIC0t d2l0aC1kb2NkaXIKKytBQ19BUkdfV0lUSChkb2NkaXIsCisrICAgICAgICAgICAgW0FTX0hFTFBf U1RSSU5HKFstLXdpdGgtZG9jZGlyPURJUl0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg IFtzZXQgZG9jdW1lbnRhdGlvbiBkaXJlY3RvcnkgdG8gRElSXSldLAorKyAgICAgICAgICAgIFtE T0NfRElSPSIkd2l0aHZhbCJdLAorKyAgICAgICAgICAgIFtET0NfRElSPSIiXSkKKytpZiB0ZXN0 ICJ4JERPQ19ESVIiICE9IHg7IHRoZW4KKysgIGRvY2Rpcj0iJERPQ19ESVIiCisrZWxzZQorKyAg ZG9jZGlyPSIke2RhdGFkaXJ9L2RvYy8kUEFDS0FHRS0kVkVSU0lPTiIKKytmaQorK0FDX1NVQlNU KGRvY2RpcikKKysKKysKKysjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFNP Q0kgaXRzZWxmKQorK0FDX0FSR19FTkFCTEUoYnVycmllZC1oZWFkZXJzLCAKKysgQVNfSEVMUF9T VFJJTkcoWy0tZW5hYmxlLWJ1cnJpZWQtaGVhZGVyc10sCisrCQlbaW5jbHVkZSBoZWFkZXIgZmls ZXMgZnJvbSBhIGRpcmVjdG9yeSBzdHJ1Y3R1cmVdKSwKKysgWyBpZiB0ZXN0ICIkZW5hYmxldmFs IiA9IG5vOyB0aGVuCisrICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz1ubworKyAgIGVsc2UK KysgICAgICBlbmFibGVfYnVycmllZF9oZWFkZXJzPXllcworKyAgIGZpIF0sCisrIFsgZW5hYmxl X2J1cnJpZWRfaGVhZGVycz1ubyBdKQorKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdl cyBnZW5lcmF0aW9uCisrZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15ZXMKKytBTV9DT05ESVRJT05B TChbU09DSV9IRUFERVJTX0JVUklFRF0sIFt0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMi ID0geHllc10pCisrQUNfU1VCU1QoU09DSV9IRUFERVJTX0JVUklFRCkKKytpZiB0ZXN0ICJ4JGVu YWJsZV9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgorKyAgIENQUEZMQUdTPSItRFNPQ0lf SEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgorK2ZpCisrCisrIyBDaGVjayBmb3IgYnVycmllZCBo ZWFkZXIgZmlsZXMgKGZvciBNeVNRTCBjbGllbnQpCisrQUNfQVJHX0VOQUJMRShteXNxbC1idXJy aWVkLWhlYWRlcnMsIAorKyBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtbXlzcWwtYnVycmllZC1o ZWFkZXJzXSwKKysJCVtpbmNsdWRlIE15U1FMIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5 IHN0cnVjdHVyZV0pLAorKyBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysJZW5h YmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz1ubworKyAgIGVsc2UKKysJZW5hYmxlX215c3FsX2J1 cnJpZWRfaGVhZGVycz15ZXMKKysgICBmaSBdLAorKyBbIGVuYWJsZV9teXNxbF9idXJyaWVkX2hl YWRlcnM9bm8gXSkKKysjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlv bgorK2VuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCisrQU1fQ09ORElUSU9OQUwoW1NP Q0lfTVlTUUxfSEVBREVSU19CVVJJRURdLAorKyAgICAgICAgICAgICAgIFt0ZXN0ICJ4JGVuYWJs ZV9teXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllc10pCisrQUNfU1VCU1QoU09DSV9NWVNRTF9I RUFERVJTX0JVUklFRCkKKytpZiB0ZXN0ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMi ID0geHllczsgdGhlbgorKyAgIENQUEZMQUdTPSItRFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQg JENQUEZMQUdTIgorK2ZpCisrCisrIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZv ciBQb3N0R3JlU1FMIGNsaWVudCkKKytBQ19BUkdfRU5BQkxFKHBvc3RncmVzcWwtYnVycmllZC1o ZWFkZXJzLCAKKysgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXBvc3RncmVzcWwtYnVycmllZC1o ZWFkZXJzXSwKKysJCVtpbmNsdWRlIFBvc3RHcmVTUUwgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJl Y3Rvcnkgc3RydWN0dXJlXSksCisrIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgor KwllbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KKysgICBlbHNlCisrCWVuYWJs ZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKKysgICBmaSBdLAorKyBbIGVuYWJsZV9w b3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz1ubyBdKQorKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQ TSBwYWNrYWdlcyBnZW5lcmF0aW9uCisrZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJz PXllcworK0FNX0NPTkRJVElPTkFMKFtTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURdLAor KyAgICAgICAgICAgICAgIFt0ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVy cyIgPSB4eWVzXSkKKytBQ19TVUJTVChTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQpCisr aWYgdGVzdCAieCRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhl bgorKyAgIENQUEZMQUdTPSItRFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAkQ1BQRkxB R1MiCisrZmkKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrIyBCb29zdCAoU1RMIEV4dGVuc2lvbnM6IGh0dHA6Ly93d3cu Ym9vc3Qub3JnKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKytBWF9CT09TVChbMS4zM10pCisrQUNfU1VCU1QoQk9PU1RfVkVSU0lP TikKKytBQ19TVUJTVChCT09TVF9DRkxBR1MpCisrQUNfU1VCU1QoQk9PU1RfTElCUykKKytBQ19T VUJTVChCT09TVF9EQVRFX1RJTUVfTElCKQorK0FDX1NVQlNUKEJPT1NUX1BST0dSQU1fT1BUSU9O U19MSUIpCisrQUNfU1VCU1QoQk9PU1RfRklMRVNZU1RFTV9MSUIpCisrQUNfU1VCU1QoQk9PU1Rf VEhSRUFEX0xJQikKKytBQ19TVUJTVChCT09TVF9QWVRIT05fTElCKQorKworKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysjIFN1cHBvcnQgZm9yIE15U1FMIGJhY2tlbmQgKEMgY2xpZW50IEFQSSk6IGh0dHA6Ly93 d3cubXlzcWwub3JnCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0FDX0FSR19FTkFCTEUoW2JhY2tlbmQtbXlz cWxdLAorKyAgICBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtYmFja2VuZC1teXNxbF0sCisrICAg ICAgICBbYnVpbGQtaW4gTXlTUUwgYmFja2VuZCBzdXBwb3J0IEA8OkBkZWZhdWx0PW5vQDo+QF0K KysgICAgKSwKKysgICAgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrICAgICAg CSBlbmFibGVfYmFja2VuZF9teXNxbD1ubworKyAgICAgIGVsc2UKKysJIGVuYWJsZV9iYWNrZW5k X215c3FsPXllcworKyAgICAgIGZpIF0sCisrICAgIFsgZW5hYmxlX2JhY2tlbmRfbXlzcWw9bm8g XQorKykKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX215c3FsIiA9ICJ4eWVzIjsgdGhl bgorKyAgIE1ZU1FMX0RJUlM9Im15c3FsIgorKyMgICBNWVNRTF9SRVFfVkVSU0lPTj0iMy4wLjAi CisrICAgQVhfTVlTUUwKKytmaQorK0FNX0NPTkRJVElPTkFMKFtIQVZFX01ZU1FMXSwgW3Rlc3Qg IngkZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0geHllc10pCisrI01ZU1FMX0RJUlM9Im15c3FsIgor KworK0FDX1NVQlNUKFtNWVNRTF9ESVJTXSkKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBv cnQgZm9yIE9yYWNsZSBiYWNrZW5kCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfQVJHX0VOQUJMRShbYmFj a2VuZC1vcmFjbGVdLAorKyAgICBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtYmFja2VuZC1vcmFj bGVdLAorKwkJICAgW2J1aWxkLWluIE9SQUNMRSBiYWNrZW5kIHN1cHBvcnQgQDw6QGRlZmF1bHQ9 bm9AOj5AXSksCisrICAgIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAg IAkgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPW5vCisrICAgICAgZWxzZQorKwkgZW5hYmxlX2JhY2tl bmRfb3JhY2xlPXllcworKyAgICAgIGZpIF0sCisrICAgIFsgZW5hYmxlX2JhY2tlbmRfb3JhY2xl PW5vIF0KKyspCisrCisraWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9vcmFjbGUiID0gInh5ZXMi OyB0aGVuCisrICAgT1JBQ0xFX0RJUlM9Im9yYWNsZSIKKysgICBPUkFDTEVfT0NJX1JFUV9WRVJT SU9OPSI5LjAiCisrICAgQVhfTElCX09SQUNMRV9PQ0koJE9SQUNMRV9PQ0lfUkVRX1ZFUlNJT04p CisrZmkKKytBTV9DT05ESVRJT05BTChbSEFWRV9PUkFDTEVdLCBbdGVzdCAieCRlbmFibGVfYmFj a2VuZF9vcmFjbGUiID0geHllc10pCisrI09SQUNMRV9ESVJTPSJvcmFjbGUiCisrCisrQUNfU1VC U1QoW09SQUNMRV9ESVJTXSkKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIFBvc3Rn cmVTUUwgYmFja2VuZAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0FDX0FSR19FTkFCTEUoW2JhY2tlbmQtcG9z dGdyZXNxbF0sCisrICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1iYWNrZW5kLXBvc3RncmVz cWxdLAorKyAgICAgICAgW2J1aWxkLWluIFBvc3RncmVTUUwgYmFja2VuZCBzdXBwb3J0IEA8OkBk ZWZhdWx0PW5vQDo+QF0KKysgICAgKSwKKysgICAgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5v OyB0aGVuCisrICAgICAgCSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPW5vCisrICAgICAgZWxz ZQorKwkgZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbD15ZXMKKysgICAgICBmaSBdLAorKyAgICBb IGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8gXQorKykKKysKKytpZiB0ZXN0ICJ4JGVuYWJs ZV9iYWNrZW5kX3Bvc3RncmVzcWwiID0gInh5ZXMiOyB0aGVuCisrICAgUE9TVEdSRVNRTF9ESVJT PSJwb3N0Z3Jlc3FsIgorKyAgIFBPU1RHUkVTUUxfUkVRX1ZFUlNJT049IjcuMS40IgorKyAgIEFY X0xJQl9QT1NUR1JFU1FMKCRQT1NUR1JFU1FMX1JFUV9WRVJTSU9OKQorK2ZpCisrQU1fQ09ORElU SU9OQUwoW0hBVkVfUE9TVEdSRVNRTF0sIFt0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVz cWwiID0geHllc10pCisrI1BPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKKysKKytBQ19TVUJT VChbUE9TVEdSRVNRTF9ESVJTXSkKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9y IGRvY3VtZW50YXRpb24KKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrcyBmb3IgZG9jdW1lbnRhdGlv biBidWlsZCB0b29scworKyNBQ19DSEVDS19QUk9HKFt0ZXhpbmZvX29rXSwgW3RleGluZm9dLCBb eWVzXSwgW25vXSkKKysjaWYgdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubzsgdGhlbgor KyMgIHRlc3QgIngkdGV4aW5mb19vayIgIT0geHllcyAmJiBlbmFibGVfaW5mb19kb2M9bm8KKysj ICBBQ19QQVRIX1BST0coW1BFUkxdLCBbcGVybF0sIFtdKQorKyNmaQorK0FNX0NPTkRJVElPTkFM KFtJTkZPX0RPQ10sIFt0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgPSB4eWVzXSkKKysKKysjIENo ZWNrcyBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZCB0b29scworK0FDX0NIRUNLX1BST0coW2RveHln ZW5fb2tdLCBbZG94eWdlbl0sIFt5ZXNdLCBbbm9dKQorK0FDX0NIRUNLX1BST0coW2xhdGV4X29r XSwgW2xhdGV4XSwgW3llc10sIFtub10pCisrQUNfQ0hFQ0tfUFJPRyhbZHZpcHNfb2tdLCBbZHZp cHNdLCBbeWVzXSwgW25vXSkKKytBQ19DSEVDS19QUk9HKFtnc19va10sIFtnc10sIFt5ZXNdLCBb bm9dKQorK2lmIHRlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiAhPSB4bm87IHRoZW4KKysgIHRlc3Qg IngkZG94eWdlbl9vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KKysgIHRlc3QgIngk bGF0ZXhfb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCisrICB0ZXN0ICJ4JGR2aXBz X29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubworKyAgdGVzdCAieCRnc19vayIgIT0g eHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KKysgIEFDX1BBVEhfUFJPRyhbUEVSTF0sIFtwZXJs XSwgW10pCisrZmkKKytBTV9DT05ESVRJT05BTChbSFRNTF9ET0NdLCBbdGVzdCAieCRlbmFibGVf aHRtbF9kb2MiID0geHllc10pCisrCisrCisrIyBDaGVjayBmb3IgZGlmZiBwcm9ncmFtIHVzZWQg Zm9yIHRlc3RzCisrQUNfQ0hFQ0tfUFJPRyhbZGlmZl9va10sIFtkaWZmXSwgW3llc10sIFtub10p CisrQUNfQ0hFQ0tfUFJPRyhbc2VkX29rXSwgW3NlZF0sIFt5ZXNdLCBbbm9dKQorK2VuYWJsZV90 ZXN0cz15ZXMKKyt0ZXN0ICJ4JGRpZmZfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCisr dGVzdCAieCRzZWRfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCisrQU1fQ09ORElUSU9O QUwoW1JVTl9URVNUU10sIFt0ZXN0ICJ4JGVuYWJsZV90ZXN0cyIgPSB4eWVzXSkKKysKKysKKysj IENoZWNrcyBmb3IgaGVhZGVyIGZpbGVzCisrQUNfSEVBREVSX1NUREMKKytBQ19IRUFERVJfVElN RQorK0FDX0NIRUNLX0hFQURFUlMoW2NtYXRoIFwKKysgIGRlcXVlIFwKKysgIGZzdHJlYW0gXAor KyAgaW9tYW5pcCBcCisrICBpb3N0cmVhbSBcCisrICBzc3RyZWFtIFwKKysgIGxpbWl0cyBcCisr ICBsaXN0IFwKKysgIHNldCBcCisrICB2ZWN0b3IgXAorKyAgbWFwIFwKKysgIHF1ZXVlIFwKKysg IHN0ZGV4Y2VwdCBcCisrICBzdHJpbmddKQorKworKworKyMgRGVmaW5lIGNvbmZpZ3VyZWQgZmls ZXMKKytBQ19DT05GSUdfRklMRVMoCisrCU1ha2VmaWxlCisrCXNvY2ktY29uZmlnCisrCXNvY2ku cGMKKysJc29jaS9NYWtlZmlsZQorKwlzb2NpL2NvcmUvTWFrZWZpbGUKKysJc29jaS9jb3JlL3Rl c3QvTWFrZWZpbGUKKysJc29jaS9iYWNrZW5kcy9NYWtlZmlsZQorKwlzb2NpL2JhY2tlbmRzL215 c3FsL01ha2VmaWxlCisrCXNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZQorKwlzb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUKKysJc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Rlc3QvTWFrZWZpbGUKKysJc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUKKysJc29jaS9i YWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZQorKwltYW4vTWFrZWZpbGUKKysgICAgICAgIGRv Yy9NYWtlZmlsZQorKyAgICAgICAgZG9jL2JhY2tlbmRzL01ha2VmaWxlCisrCWJ1aWxkL01ha2Vm aWxlCisrCWJ1aWxkL3VuaXgvTWFrZWZpbGUKKysJYnVpbGQvbXN2YzgwL01ha2VmaWxlCisrCWJ1 aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUKKysJYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSkKKysK KytBQ19PVVRQVVQKKysKKytlY2hvICIKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyskUEFDS0FH RS0kVkVSU0lPTiBsaWJyYXJ5IGNvbmZpZ3VyYXRpb246CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrCisrRGlyZWN0b3JpZXM6CisrICAtIHByZWZpeCAuLi4uLi4uLi4uLi4uLi4gOiAke3ByZWZp eH0KKysgIC0gZXhlY19wcmVmaXggLi4uLi4uLi4uLiA6ICR7ZXhlY19wcmVmaXh9CisrICAtIGlu Y2x1ZGVkaXIgLi4uLi4uLi4uLi4gOiAke2luY2x1ZGVkaXJ9CisrICAtIGxpYmRpciAuLi4uLi4u Li4uLi4uLi4gOiAke2xpYmRpcn0KKysgIC0gZG9jZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZG9j ZGlyfQorKyAgLSBtYW5kaXIgLi4uLi4uLi4uLi4uLi4uIDogJHttYW5kaXJ9CisrICAtIGluZm9k aXIgLi4uLi4uLi4uLi4uLi4gOiAke2luZm9kaXJ9CisrCisrU3dpdGNoZXM6CisrICAtIGV4Y2Vw dGlvbnMgLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9leGNlcHRpb25zfQorKyAgLSBpbmZvLWRvYyAu Li4uLi4uLi4uLi4uIDogJHtlbmFibGVfaW5mb19kb2N9CisrICAtIGh0bWwtZG9jIC4uLi4uLi4u Li4uLi4gOiAke2VuYWJsZV9odG1sX2RvY30KKysgIC0gc2hhcmVkIC4uLi4uLi4uLi4uLi4uLiA6 ICR7ZW5hYmxlX3NoYXJlZH0KKysgIC0gc3RhdGljIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxl X3N0YXRpY30KKysKKytEb2N1bWVudGF0aW9uIHRvb2xzOgorKyAgLSB0ZXhpbmZvIC4uLi4uLi4u Li4uLi4uIDogJHt0ZXhpbmZvX29rfQorKyAgLSBkb3h5Z2VuIC4uLi4uLi4uLi4uLi4uIDogJHtk b3h5Z2VuX29rfQorKyAgLSBsYXRleCAuLi4uLi4uLi4uLi4uLi4uIDogJHtsYXRleF9va30KKysg IC0gZHZpcHMgLi4uLi4uLi4uLi4uLi4uLiA6ICR7ZHZpcHNfb2t9CisrICAtIGdob3N0c2NyaXB0 IC4uLi4uLi4uLi4gOiAke2dzX29rfQorKworK1Rlc3RpbmcgdG9vbHM6CisrICAtIGRpZmYgLi4u Li4uLi4uLi4uLi4uLi4gOiAke2RpZmZfb2t9CisrICAtIHNlZCAuLi4uLi4uLi4uLi4uLi4uLi4g OiAke3NlZF9va30KKysKKytDb21waWxlci9saW5rZXIgZmxhZ3MvbGlicy9kZWZzOgorKyAgLSBD WFggLi4uLi4uLi4uLi4uLi4uLi4uIDogJHtDWFh9CisrICAtIENYWEZMQUdTIC4uLi4uLi4uLi4u Li4gOiAke0NYWEZMQUdTfQorKyAgLSBDUFBGTEFHUyAuLi4uLi4uLi4uLi4uIDogJHtDUFBGTEFH U30KKysgIC0gTERGTEFHUyAuLi4uLi4uLi4uLi4uLiA6ICR7TERGTEFHU30KKysgIC0gTElCUyAu Li4uLi4uLi4uLi4uLi4uLiA6ICR7TElCU30KKysKKytCdXJyaWVkIGhlYWRlciBmaWxlczoKKysg IC0gU09DSV9IRUFERVJTX0JVUklFRCAuLi4uLi4uIDogJHtlbmFibGVfYnVycmllZF9oZWFkZXJz fQorKyAgLSBNWVNRTF9IRUFERVJTX0JVUklFRCAuLi4uLi4gOiAke2VuYWJsZV9teXNxbF9idXJy aWVkX2hlYWRlcnN9CisrICAtIFBPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgLiA6ICR7ZW5hYmxl X3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzfQorKworK0V4dGVybmFsIGxpYnJhcmllczoKKysg IC0gQm9vc3QgLi4uLi4uLi4uLi4uLi4uLiA6CisrICAgIG8gQk9PU1RfVkVSU0lPTiAuLi4uLi4g OiAke0JPT1NUX1ZFUlNJT059CisrICAgIG8gQk9PU1RfQ0ZMQUdTIC4uLi4uLi4gOiAke0JPT1NU X0NGTEFHU30KKysgICAgbyBCT09TVF9MSUJTIC4uLi4uLi4uLiA6ICR7Qk9PU1RfTElCU30KKysg ICAgbyBCT09TVF9EVF9MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfREFURV9USU1FX0xJQn0KKysgICAg byBCT09TVF9QT19MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQn0KKysK KysgIC0gTXlTUUwgc3VwcG9ydCAuLi4uLi4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfbXlzcWx9Cisr ICAgIG8gTVlTUUxfVkVSU0lPTiAuLi4uLi4gOiAke01ZU1FMX1ZFUlNJT059CisrICAgIG8gTVlT UUxfQ0ZMQUdTIC4uLi4uLi4gOiAke01ZU1FMX0NGTEFHU30KKysgICAgbyBNWVNRTF9MSUJTIC4u Li4uLi4uLiA6ICR7TVlTUUxfTElCU30KKysKKysgIC0gUG9zdEdyZVNRTCBzdXBwb3J0IC4uLiA6 ICR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbH0KKysgICAgbyBQT1NUR1JFU1FMX1ZFUlNJT04g LiA6ICR7UE9TVEdSRVNRTF9WRVJTSU9OfQorKyAgICBvIFBPU1RHUkVTUUxfQ0ZMQUdTIC4uIDog JHtQT1NUR1JFU1FMX0NGTEFHU30KKysgICAgbyBQT1NUR1JFU1FMX0xERkxBR1MgLiA6ICR7UE9T VEdSRVNRTF9MREZMQUdTfSAKKysKKysgIC0gT3JhY2xlIHN1cHBvcnQgLi4uLi4uLiA6ICR7ZW5h YmxlX2JhY2tlbmRfb3JhY2xlfQorKyAgICBvIE9SQUNMRV9WRVJTSU9OIC4uLi4uIDogJHtPUkFD TEVfT0NJX1ZFUlNJT059CisrICAgIG8gT1JBQ0xFX0NGTEFHUyAuLi4uLi4gOiAke09SQUNMRV9P Q0lfQ0ZMQUdTfQorKyAgICBvIE9SQUNMRV9MREZMQUdTIC4uLi4uIDogJHtPUkFDTEVfT0NJX0xE RkxBR1N9IAorKworKyAgLSBDUFBVbml0IC4uLi4uLi4uLi4uLi4uIDoKKysgICAgbyBDUFBVTklU X1ZFUlNJT04gLi4uLiA6ICR7Q1BQVU5JVF9WRVJTSU9OfQorKyAgICBvIENQUFVOSVRfQ0ZMQUdT IC4uLi4uIDogJHtDUFBVTklUX0NGTEFHU30KKysgICAgbyBDUFBVTklUX0xJQlMgLi4uLi4uLiA6 ICR7Q1BQVU5JVF9MSUJTfQorKworKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK05vdyB0eXBlICdt YWtlICYmIG1ha2UgaW5zdGFsbCcgdG8gYnVpbGQgYW5kIGluc3RhbGwgJFBBQ0tBR0UtJFZFUlNJ T04gbGlicmFyeQorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyIKK2RpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9kb2MvYmFja2VuZHMvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2Rv Yy9iYWNrZW5kcy9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5k cy9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTo1 MDozOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTYgQEAKKysjIyBkb2MvYmFja2VuZHMg c3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytp bmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisrIyMgU291cmNlIGRpcmVjdG9yeQorKwor K01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytTVUJESVJTID0KKysKKytF WFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAkKGh0bWxfYmNrX3NvdXJjZXMpCisr I2ZpcmViaXJkLmh0bWwgaW5kZXguaHRtbCBteXNxbC5odG1sIG9kYmMuaHRtbCBvcmFjbGUuaHRt bCBwb3N0Z3Jlc3FsLmh0bWwgc3FsaXRlMy5odG1sCisrCisrRVhUUkFfRElTVCA9ICQoRVhUUkFf RElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQorKworKyNwa2dkYXRhZGlyID0gJChodG1sX2Jj a19zb3VyY2VzKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtl ZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL2JhY2tlbmRzL01ha2VmaWxlLmluCistLS0g c29jaS0zLjAuMF80LXBhY2svZG9jL2JhY2tlbmRzL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5k cy9NYWtlZmlsZS5pbgkyMDExLTAyLTA4IDIyOjM5OjU1LjAwMDAwMDAwMCArMDEwMAorQEAgLTAs MCArMSw2MjggQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEg ZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQg KEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIs CisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sCisrIyBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29m dHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBw ZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhv dXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisr CisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBw ZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0Uu CisrCisrQFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRh ZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAK Kytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGli ZXhlY2RpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQo UEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkg LWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3Rh bGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNU QUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1B TF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JN QUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6 CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNU X0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAor KwkkKHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK3N1 YmRpciA9IGRvYy9iYWNrZW5kcworK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwu bTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3Qu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9w b3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s dG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJl X2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykg XAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytD T05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xF QU5fRklMRVMgPQorK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CisrU09VUkNFUyA9CisrRElT VF9TT1VSQ0VTID0KKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVj dXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBp bnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwt ZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1y ZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUg aW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJz LXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1 cnNpdmUKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBj bGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFu LXJlY3Vyc2l2ZQorK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVfVEFSR0VUUzot cmVjdXJzaXZlPSkgXAorKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0 YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAorKwlkaXN0ZGlyCisrRVRBR1MgPSBldGFncworK0NUQUdT ID0gY3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCisrRElTVEZJTEVTID0gJChESVNU X0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKythbV9f cmVsYXRpdml6ZSA9IFwKKysgIGRpcjA9YHB3ZGA7IFwKKysgIHNlZF9maXJzdD0ncyxeXChbXi9d KlwpLy4qJCQsXDEsJzsgXAorKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7IFwKKysgIHNlZF9s YXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCisrICBzZWRfYnV0bGFzdD0ncywvKlteL10q JCQsLCc7IFwKKysgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwKKysgICAgZmlyc3Q9YGVj aG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysgICAgaWYgdGVzdCAiJCRm aXJzdCIgIT0gIi4iOyB0aGVuIFwKKysgICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRo ZW4gXAorKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJg LyIkJGRpcjIiOyBcCisrICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNl ZF9idXRsYXN0ImA7IFwKKysgICAgICBlbHNlIFwKKysgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRk aXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorKyAgICAgICAgaWYgdGVzdCAiJCRmaXJz dDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKKysgICAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8 IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICAgICAgICBlbHNlIFwKKysgICAgICAgICAgZGly Mj0iLi4vJCRkaXIyIjsgXAorKyAgICAgICAgZmk7IFwKKysgICAgICAgIGRpcjA9IiQkZGlyMCIv IiQkZmlyc3QiOyBcCisrICAgICAgZmk7IFwKKysgICAgZmk7IFwKKysgICAgZGlyMT1gZWNobyAi JCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICBkb25lOyBcCisrICByZWxkaXI9 IiQkZGlyMiIKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBA QVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAor K0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJP T1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJA CisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1Rf SU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9P U1RfTElCU0AKKytCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACisrQk9PU1RfTVBJX1BZ VEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACisrQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1BZVEhPTl9MSUIgPSBA Qk9PU1RfUFlUSE9OX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAor K0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JP T1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1NZU1RFTV9MSUIg PSBAQk9PU1RfU1lTVEVNX0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9M SUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZS QU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dT RVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NA CisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBD UFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9D RkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJT ID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAor K0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1P REVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytE RUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAK KytEVU1QQklOID0gQERVTVBCSU5ACisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNI T19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVY RUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5F UklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxM QAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElO U1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNU QUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAor K0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJT QAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAor K0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJf UCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ19M SUIgPSBATVlTUUxfQ19MSUJACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJ QlMgPSBATVlTUUxfTElCU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0g PSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhU ID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NG TEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xF X09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05A CisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFD S0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdF X05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5H QAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9VUkwgPSBA UEFDS0FHRV9VUkxACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRI X1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklH ID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AK KytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFH UyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVT UUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1NFRCA9IEBTRURACisrU0VUX01BS0Ug PSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBT T0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9N WVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBA U09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9B RF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNf YnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKyth YnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBA YWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFj X2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUg PSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKyth bV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIg PSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVp bGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWls ZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxk ZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBk YXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytk b3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9 IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19v a0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1 ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0 X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGly QAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0 ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxp YmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxv Y2Fsc3RhdGVkaXJACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisr b2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJl Zml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNm b3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9v ayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGly ID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0g QHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisr dG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJA CisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytodG1s X2Jja19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvaW5kZXguaHRtbCBcCisr CSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL2ZpcmViaXJkLmh0bWwgXAorKwkkKHRvcF9zcmNk aXIpL2RvYy9iYWNrZW5kcy9teXNxbC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2Vu ZHMvb2RiYy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb3JhY2xlLmh0bWwg XAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsLmh0bWwgXAorKwkkKHRv cF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9zcWxpdGUzLmh0bWwKKysKKytNQUlOVEFJTkVSQ0xFQU5G SUxFUyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9IAorK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09N UEFUSUJJTElUWSA9ICQoaHRtbF9iY2tfc291cmNlcykKKysjZmlyZWJpcmQuaHRtbCBpbmRleC5o dG1sIG15c3FsLmh0bWwgb2RiYy5odG1sIG9yYWNsZS5odG1sIHBvc3RncmVzcWwuaHRtbCBzcWxp dGUzLmh0bWwKKytFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJ VFkpCisrYWxsOiBhbGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgorKyQoc3JjZGlyKS9NYWtl ZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBk ZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJ ICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1m ICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsg XAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAk KEFVVE9NQUtFKSAtLWdudSBkb2MvYmFja2VuZHMvTWFrZWZpbGUnOyBcCisrCSQoYW1fX2NkKSAk KHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSBkb2MvYmFja2VuZHMvTWFr ZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmls ZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJ ICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikv JEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5 YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRv cF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysK KyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysk KEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKGFtX19hY2xvY2Fs X200X2RlcHMpOgorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisr Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworKworKyMgVGhpcyBkaXJlY3Rv cnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCisr IyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFr ZWZpbGUuCisrIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0 ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAorKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQg aW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworKyMgICAgICh3aGljaCB3 aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBt YWtlJyk7CisrIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUg YG1ha2UnIGNvbW1hbmQgbGluZS4KKyskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKysJQGZhaWw9IGZh aWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNh c2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29t PSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBc CisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJbGlzdD0nJChT VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQk dGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhl biBcCisrCSAgICBkb3Rfc2Vlbj15ZXM7IFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQt YW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkg IGZpOyBcCisrCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7IFwK KysJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAiJCRm YWlsIgorKworKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbD0gZmFpbGNvbT0n ZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYg aW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9 eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2Fz ZSAiJEAiIGluIFwKKysJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0n JChESVNUX1NVQkRJUlMpJyA7OyBcCisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwll c2FjOyBcCisrCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0 ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQk cmV2IjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJn ZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRy ZXY7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAg aWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0Ijsg XAorKwkgIGZpOyBcCisrCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRv bmUgJiYgdGVzdCAteiAiJCRmYWlsIgorK3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAu IHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7 IFwKKysJZG9uZQorK2N0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9f Y2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAorKwlkb25l CisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJ bGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBc CisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6IHRhZ3MtcmVj dXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJ JChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXNldCB4OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJaWYg KCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhl biBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4 PS47IFwKKysJZWxzZSBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCisrCSAgZW1w dHlfZml4PTsgXAorKwlmaTsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAor KwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAorKwkgICAgICBzZXQgIiQkQCIgIiQk aW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwKKysJZG9u ZTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVT KSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYg IiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkg IGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0g XAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBp OyB9OyB9J2A7IFwKKysJc2hpZnQ7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQk dW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVl PSQkZW1wdHlfZml4OyBcCisrCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorKwkgICAgJChF VEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkg ICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorKwkgIGVsc2UgXAorKwkgICAgJChFVEFHUykgJChFVEFH U0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAkJHVuaXF1 ZTsgXAorKwkgIGZpOyBcCisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJlY3Vy c2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQo VEFHU19GSUxFUykgJChMSVNQKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElT UCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJ ICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2Rpcikv JCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBu b25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGlu IGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5p cXVlIiBcCisrCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQo Q1RBR1NfQVJHUykgXAorKwkgICAgICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1f X2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgJChhbV9fY2QpICQodG9wX3Ny Y2RpcikgXAorKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKysKKytkaXN0 Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRh Z3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNy Y2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJp cD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBc CisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAk JGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJz dHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWls ZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJ Ul9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChk aXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2Fj OyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRm aWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwK KysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRm aWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgIiQoZGlz dGRpcikvJCRmaWxlIjsgdGhlbiBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAt dHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7 IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNy Y2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRp cikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAt dHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7 IFwKKysJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7 IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAg ICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgZXhp dCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVu IDo7IGVsc2UgXAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAg fHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgZXhpdCAxOyBc CisrCSAgZmk7IFwKKysJZG9uZQorKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVs c2UgXAorKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwK KysJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisrCSAgICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsg XAorKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCisrCSAgICAk KGFtX19yZWxhdGl2aXplKTsgXAorKwkgICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGlyOyBcCisr CSAgICBlY2hvICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9k aXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBc CisrCSAgICBlY2hvICIgICAgIGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9j aGVjaz06IGFtX19za2lwX21vZGVfZml4PTogZGlzdGRpcikiOyBcCisrCSAgICAoJChhbV9fY2Qp ICQkc3ViZGlyICYmIFwKKysJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICAg ICAgIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRpc3RkaXI9 IiQkbmV3X2Rpc3RkaXIiIFwKKysJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKKysJCWFtX19za2lw X2xlbmd0aF9jaGVjaz06IFwKKysJCWFtX19za2lwX21vZGVfZml4PTogXAorKwkgICAgICAgIGRp c3RkaXIpIFwKKysJICAgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNr LWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZQor K2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKKytpbnN0YWxsZGlycy1hbToKKytp bnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJl Y3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFs bDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtF KSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2lu c3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BS T0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JB TSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBc CisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAg aW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytk aXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwg cm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0 ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NM RUFOX1ZQQVRIX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8g IlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNo byAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVi dWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChN QUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4t YW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQorKworK2Rpc3Rj bGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4t YW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBk dmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisr aHRtbC1hbToKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5z dGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysK KytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1s OiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1odG1sLWFtOgorKworK2luc3Rh bGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mby1hbToKKysK KytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisr CisraW5zdGFsbC1wZGYtYW06CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUK KysKKytpbnN0YWxsLXBzLWFtOgorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVy LWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKytt YWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj CisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFu LWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBk Zi1yZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vyc2l2ZQorKworK3BzLWFt OgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VU UykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1hbSBp bnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZlCisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVB Tl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwt YW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKKysJ Y3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRp c3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwK KysJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBc CisrCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4 ZWMgXAorKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0 YWxsLWluZm8gXAorKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5z dGFsbC1wZGYtYW0gXAorKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBp bnN0YWxsY2hlY2sgXAorKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMt YW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHlj bGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRm LWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAorKwl1bmluc3RhbGwgdW5pbnN0YWxs LWFtCisrCisrQFNFVF9NQUtFQAorKworKyNwa2dkYXRhZGlyID0gJChodG1sX2Jja19zb3VyY2Vz KQorKworKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhw b3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNW IGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9k b2MvYmFja2VuZHMvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5k cy9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29j aS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6NDc6 NTMuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDcgQEAKKytodG1sX2Jja19zb3VyY2VzID0g JCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvaW5kZXguaHRtbCBcCisrCSQodG9wX3NyY2Rpcikv ZG9jL2JhY2tlbmRzL2ZpcmViaXJkLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5k cy9teXNxbC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb2RiYy5odG1sIFwK KysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb3JhY2xlLmh0bWwgXAorKwkkKHRvcF9zcmNk aXIpL2RvYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9i YWNrZW5kcy9zcWxpdGUzLmh0bWwKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvTWFr ZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL2RvYy9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvTWFrZWZpbGUuYW0JMjAxMC0wMS0yMyAx MzoyNTo1Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsOCBAQAorK2luY2x1ZGUgJCh0b3Bf c3JjZGlyKS9kb2Mvc291cmNlcy5taworKworK1NVQkRJUlMgPSBiYWNrZW5kcworKworK0VYVFJB X0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICQoaHRtbF9sb2NhbF9zb3VyY2VzKSBcCisr CSQoY3NzX2xvY2FsX3NvdXJjZXMpICQoaW1nX2xvY2FsX3NvdXJjZXMpCisrCisrRVhUUkFfRElT VCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQorZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL2RvYy9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL01ha2Vm aWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svZG9jL01ha2VmaWxlLmluCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9NYWtl ZmlsZS5pbgkyMDExLTAyLTA4IDIyOjM5OjU1LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw2 MzEgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBN YWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5 OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sCisrIyBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0 ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisr QFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9A UEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKytwa2ds aWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2Rp cikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9T RVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0g NjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hf U0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RB VEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNU QUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5J TlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVp bGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1P TiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHRv cF9zcmNkaXIpL2RvYy9zb3VyY2VzLm1rCisrc3ViZGlyID0gZG9jCisrQUNMT0NBTF9NNCA9ICQo dG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3Fs Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3Vy ZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05G SUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0g JChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9j b25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVT ID0KKytTT1VSQ0VTID0KKytESVNUX1NPVVJDRVMgPQorK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxs LXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVjdXJz aXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWR2 aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRtbC1yZWN1 cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBp bnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVjay1y ZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlwcy1yZWN1 cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9z dGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJz aXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAk KFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCisrCSQoUkVDVVJTSVZFX0NMRUFOX1RB UkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCisrCWRpc3RkaXIKKytF VEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykK KytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykg JChFWFRSQV9ESVNUKQorK2FtX19yZWxhdGl2aXplID0gXAorKyAgZGlyMD1gcHdkYDsgXAorKyAg c2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCisrICBzZWRfcmVzdD0ncyxeW14v XSovKiwsJzsgXAorKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKKysgIHNl ZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAorKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsg ZG8gXAorKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsg XAorKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAorKyAgICAgIGlmIHRlc3Qg IiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCisrICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwg c2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKKysgICAgICAgIGRpcjA9YGVjaG8gIiQk ZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAorKyAgICAgIGVsc2UgXAorKyAgICAg ICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisrICAg ICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAorKyAgICAgICAgICBk aXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKysgICAgICAgIGVs c2UgXAorKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCisrICAgICAgICBmaTsgXAorKyAg ICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKKysgICAgICBmaTsgXAorKyAgICBmaTsg XAorKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKysg IGRvbmU7IFwKKysgIHJlbGRpcj0iJCRkaXIyIgorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRB 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 RUAKKytQQUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFD S0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwg PSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0g QFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNA CisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FM X1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrU0VE ID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJ X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RS SVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lP TiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2Rp ciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAK KythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9D Q0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVN UEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBA YW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBh bV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKyti dWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUg PSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBi dWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGly QAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytk b2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBA ZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJl Zml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhv c3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAor K2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNs dWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2gg PSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGly QAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAor K2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKyttYW5kaXIgPSBAbWFuZGlyQAorK21r ZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRm ZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25h bWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGly ID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFy ZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRp ckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBA dG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9z cmNkaXIgPSBAdG9wX3NyY2RpckAKKytodG1sX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIp L2RvYy9iYWNrZW5kcy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFzaWNzLmh0bWwgXAor KwkkKHRvcF9zcmNkaXIpL2RvYy9iZXlvbmQuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2Jv b3N0Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9lcnJvcnMuaHRtbCBcCisrCSQodG9wX3Ny Y2RpcikvZG9jL2V4Y2hhbmdlLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9pbmRleC5odG1s IFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvaW50ZXJmYWNlcy5odG1sIFwKKysJJCh0b3Bfc3JjZGly KS9kb2MvbXVsdGl0aHJlYWRpbmcuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL3JhdGlvbmFs ZS5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvcmVmZXJlbmNlLmh0bWwgXAorKwkkKHRvcF9z cmNkaXIpL2RvYy9zdGF0ZW1lbnRzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1 cmUuaHRtbAorKworK2Nzc19sb2NhbF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mvc3R5bGUu Y3NzCisraW1nX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUucG5n CisrU1VCRElSUyA9IGJhY2tlbmRzCisrRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZ ID0gJChodG1sX2xvY2FsX3NvdXJjZXMpIFwKKysJJChjc3NfbG9jYWxfc291cmNlcykgJChpbWdf bG9jYWxfc291cmNlcykKKysKKytFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NP TVBBVElCSUxJVFkpCisrYWxsOiBhbGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgorKyQoc3Jj ZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL2Rv Yy9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8g XAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikg XAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhp dCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsg XAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0t Z251IGRvYy9NYWtlZmlsZSc7IFwKKysJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorKwkg ICQoQVVUT01BS0UpIC0tZ251IGRvYy9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytN YWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3Rh dHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsg XAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkg Li9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisr CSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3Vi ZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NU QVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChh bV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200 X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaAorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisrCisrbW9zdGx5Y2xlYW4tbGli dG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJz IF9saWJzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkg 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 cnNpdmUKKythbGwtYW06IE1ha2VmaWxlCisraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vy c2l2ZQorK2luc3RhbGxkaXJzLWFtOgorK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCisraW5z dGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCisraW5zdGFsbC1kYXRhOiBpbnN0YWxs LWRhdGEtcmVjdXJzaXZlCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisrCisraW5z dGFsbC1hbTogYWxsLWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMt YW0gaW5zdGFsbC1kYXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJz aXZlCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9Q Uk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dS QU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJ ICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9F TlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoK KysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAi JChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysJ LXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJ TEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisrCisrbWFpbnRhaW5l ci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBt YWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJl cXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZl CisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1h bQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUK KytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdz CisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVj dXJzaXZlCisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8t YW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1y ZWN1cnNpdmUKKysKKytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisr aW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1odG1sLWFt OgorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2luc3RhbGwt aW5mby1hbToKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYt cmVjdXJzaXZlCisrCisraW5zdGFsbC1wZGYtYW06CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1w cy1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBzLWFtOgorKworK2luc3RhbGxjaGVjay1hbToKKysK KyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYg TWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKwor K21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wK KysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vyc2l2 ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogJChSRUNVUlNJVkVf Q0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKKysJ aW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZlCisrCisrLlBIT05ZOiAkKFJF Q1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBc CisrCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1s aWJ0b29sIFwKKysJY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2Vu ZXJpYyBcCisrCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2 aS1hbSBodG1sIFwKKysJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGlu c3RhbGwtZGF0YSBcCisrCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1h bSBpbnN0YWxsLWV4ZWMgXAorKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwt aHRtbC1hbSBpbnN0YWxsLWluZm8gXAorKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5z dGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAorKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5z dGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAorKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMg aW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXItY2xlYW4tZ2Vu ZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGli dG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAorKwl1bmluc3Rh bGwgdW5pbnN0YWxsLWFtCisrCisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdO VSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3Rl bSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6 CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL3NvdXJjZXMubWsgc29jaS0zLjAuMF90 cmVwMzAwL2RvYy9zb3VyY2VzLm1rCistLS0gc29jaS0zLjAuMF80LXBhY2svZG9jL3NvdXJjZXMu bWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvZG9jL3NvdXJjZXMubWsJMjAxMC0wMS0yMyAxMzoyNTo1Ny4wMDAwMDAwMDAgKzAxMDAK K0BAIC0wLDAgKzEsMTggQEAKKytodG1sX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2Rv Yy9iYWNrZW5kcy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFzaWNzLmh0bWwgXAorKwkk KHRvcF9zcmNkaXIpL2RvYy9iZXlvbmQuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2Jvb3N0 Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9lcnJvcnMuaHRtbCBcCisrCSQodG9wX3NyY2Rp cikvZG9jL2V4Y2hhbmdlLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9pbmRleC5odG1sIFwK KysJJCh0b3Bfc3JjZGlyKS9kb2MvaW50ZXJmYWNlcy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9k b2MvbXVsdGl0aHJlYWRpbmcuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL3JhdGlvbmFsZS5o dG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvcmVmZXJlbmNlLmh0bWwgXAorKwkkKHRvcF9zcmNk aXIpL2RvYy9zdGF0ZW1lbnRzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUu aHRtbAorKworK2Nzc19sb2NhbF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mvc3R5bGUuY3Nz CisrCisraW1nX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUucG5n CisrCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUgc29jaS0zLjAuMF90cmVw MzAwL01ha2VmaWxlCistLS0gc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUJMjAxMS0wMi0wOSAw MDozMDozMi42MDA5MTYzOTIgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUJ MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDIwICswLDAgQEAKKy1i dWlsZF9saWJzIDoKKy0JY2QgYnVpbGQvdW5peDsgYGNhdCBsb2NhbC90Y2xgIGJ1aWxkLnRjbCBj b3JlIGNvcmUtc28gbXlzcWwgbXlzcWwtc28gcG9zdGdyZXNxbCBwb3N0Z3Jlc3FsLXNvIG9yYWNs ZSBvcmFjbGUtc28KKy0KKy10ZXN0cyA6CistCWNkIGJ1aWxkL3VuaXg7IGBjYXQgbG9jYWwvdGNs YCBidWlsZC50Y2wgbXlzcWwtdGVzdCBvcmFjbGUtdGVzdCBwb3N0Z3Jlc3FsLXRlc3QKKy0KKy1p bnN0YWxsIDoKKy0JY2QgYnVpbGQvdW5peDsgYGNhdCBsb2NhbC90Y2xgIGluc3RhbGwudGNsCist CistdW5pbnN0YWxsIDoKKy0JY2QgYnVpbGQvdW5peC9sb2NhbDsgL2Jpbi9zaCB1bmluc3RhbGwu c2gKKy0KKy1jbGVhbiA6CistCWZpbmQgLiAtbmFtZSAnKi5vJyB8IHhhcmdzIHJtCistCWZpbmQg LiAtbmFtZSAnKi5hJyB8IHhhcmdzIHJtCistCWZpbmQgLiAtbmFtZSAnKi5zbycgfCB4YXJncyBy bQorLQlybSAtZiBzcmMvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsCistCXJtIC1mIHNy Yy9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZQorLQlybSAtZiBzcmMvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbAorLQlybSAtcmYgYnVpbGQvdW5peC9pbmNs dWRlIGJ1aWxkL3VuaXgvbGliIGJ1aWxkL3VuaXgvdGVzdHMKK2RpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUuYW0KKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5hbQkyMDExLTAyLTA4IDIy OjI5OjU0LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw2MiBAQAorKyMjIHRvcCBkaXJlY3Rv cnkKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrCisrQUNMT0NBTF9B TUZMQUdTID0gLUkgY29uZmlnCisrCisrQVVUT01BS0VfT1BUSU9OUyA9IGRpc3QtYnppcDIKKysK KytpZiBSVU5fVEVTVFMKKysjICBURVNUX0RJUiA9IHRlc3QKKytlbmRpZgorKworK01BTl9ET0Nf RElSID0gbWFuCisrCisrIyBNYWludGFpbmFuY2UgZmlsZXMKKytNQUlOVEFJTkVSQ0xFQU5GSUxF UyA9IE1ha2VmaWxlLmluIGFjbG9jYWwubTQgY29uZmlndXJlIFwKKysJCQljb25maWctaC5pbiBz aWMvc3RhbXAtaC5pbiBhdXRvZ2VuLnNoIGJvb3RzdHJhcAorKworKyNFWFRSQV9ESVNUX0ZPUl9T T0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbmZpZ3VyZSAuX01ha2VmaWxlIGNvbnRyaWIKKytFWFRS QV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSBjb250cmliCisrCisrRVhUUkFfRElTVCA9 IE1ha2VmaWxlLmNvbW1vbiAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkgQFBB Q0tBR0VALm00CisrCisrIyBCdWlsZCBpbiB0aGVzZSBkaXJlY3RvcmllczoKKytTVUJESVJTID0g YnVpbGQgQFBBQ0tBR0VAICQoTUFOX0RPQ19ESVIpIGRvYyAkKFRFU1RfRElSKQorKworKworKyMg Q29uZmlndXJhdGlvbiBoZWxwZXJzCisrYmluX1NDUklQVFMgPSBAUEFDS0FHRUAtY29uZmlnCisr CisrcGtnY29uZmlnZGlyID0gJChsaWJkaXIpL3BrZ2NvbmZpZworK3BrZ2NvbmZpZ19EQVRBID0g QFBBQ0tBR0VALnBjCisrCisrbTRkYXRhZGlyID0gJChkYXRhZGlyKS9hY2xvY2FsCisrbTRkYXRh X0RBVEEgPSBAUEFDS0FHRUAubTQKKysKKysjIFRhcmdldHMKKyt1bmluc3RhbGwtbG9jYWw6Cisr CXJtIC1yZiAkKERFU1RESVIpJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKysKKytkaXN0LWh0bWw6 CisrCSQoTUFLRSkgLUMgZG9jIGRpc3QtaHRtbAorKworKworK3NuYXBzaG90OiBzbmFwc2hvdC1z cmMgc25hcHNob3QtaHRtbAorKworKworK3NuYXBzaG90LXNyYzoKKysJJChNQUtFKSBkaXN0IGRp c3RkaXI9QFBBQ0tBR0VfVEFSTkFNRUAtYGRhdGUgKyIlWSVtJWQiYAorKworK3NuYXBzaG90LWh0 bWw6CisrCSQoTUFLRSkgLUMgZG9jIGRpc3QtaHRtbCBodG1sX3Rhcm5hbWU9QFBBQ0tBR0VfVEFS TkFNRUAtaHRtbC1kb2MtYGRhdGUgKyIlWSVtJWQiYAorKworK3VwbG9hZDogdXBsb2FkLXNyYyB1 cGxvYWQtaHRtbAorKworK3VwbG9hZC1zcmM6IGRpc3QKKysJQFVQTE9BRF9DT01NQU5EQCBAUEFD S0FHRV9UQVJOQU1FQC1AVkVSU0lPTkAudGFyLmd6IFwKKysJQFBBQ0tBR0VfVEFSTkFNRUAtQFZF UlNJT05ALnRhci5iejIKKysKKyt1cGxvYWQtaHRtbDogZGlzdC1odG1sCisrCUBVUExPQURfQ09N TUFOREAgQFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtQFZFUlNJT05ALnRhci5neiBcCisrCUBQ QUNLQUdFX1RBUk5BTUVALWh0bWwtZG9jLUBWRVJTSU9OQC50YXIuYnoyCisrCitkaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUuY29tbW9uIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtl ZmlsZS5jb21tb24KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5jb21tb24JMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTWFr ZWZpbGUuY29tbW9uCTIwMDktMDQtMTggMTc6MjA6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMCww ICsxLDIgQEAKKytAU0VUX01BS0VACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAt SSQodG9wX3NyY2RpcikKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5pbiBz b2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9NYWtl ZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9NYWtlZmlsZS5pbgkyMDExLTAyLTA4IDIyOjM5OjU3LjAwMDAwMDAwMCArMDEw MAorQEAgLTAsMCArMSw5MjAgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFr ZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBD b3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIw MDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlz IGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVu bGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRo IG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVz ZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhl IGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFS IFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorKworKworK1ZQQVRIID0gQHNyY2RpckAKKytwa2dk YXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRl ZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnbGli ZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHta U0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9 ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxs X3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExf SEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9y bV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5T VEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9T VF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQg PSBAaG9zdEAKKytESVNUX0NPTU1PTiA9IFJFQURNRSAkKGFtX19jb25maWd1cmVfZGVwcykgJChz cmNkaXIpL01ha2VmaWxlLmFtIFwKKysJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9z b2NpLWNvbmZpZy5pbiBcCisrCSQoc3JjZGlyKS9zb2NpLnBjLmluICQodG9wX3NyY2RpcikvTWFr ZWZpbGUuY29tbW9uIFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgQVVUSE9SUyBDT1BZSU5H IENoYW5nZUxvZyBJTlNUQUxMIE5FV1MgXAorKwljb25maWcvY29uZmlnLmd1ZXNzIGNvbmZpZy9j b25maWcuc3ViIGNvbmZpZy9kZXBjb21wIFwKKysJY29uZmlnL2luc3RhbGwtc2ggY29uZmlnL2x0 bWFpbi5zaCBjb25maWcvbWlzc2luZworK3N1YmRpciA9IC4KKytBQ0xPQ0FMX000ID0gJCh0b3Bf c3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2Nw cHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRz dWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFj CisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VS RV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK2FtX19DT05GSUdfRElTVENMRUFO X0ZJTEVTID0gY29uZmlnLnN0YXR1cyBjb25maWcuY2FjaGUgY29uZmlnLmxvZyBcCisrIGNvbmZp Z3VyZS5saW5lbm8gY29uZmlnLnN0YXR1cy5saW5lbm8KKytta2luc3RhbGxkaXJzID0gJChpbnN0 YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcu aAorK0NPTkZJR19DTEVBTl9GSUxFUyA9IHNvY2ktY29uZmlnIHNvY2kucGMKKytDT05GSUdfQ0xF QU5fVlBBVEhfRklMRVMgPQorK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNo byAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNlICQk cCBpbiBcCisrICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2Rp cnN0cmlwL3x8ImA7OyBcCisrICAgICopIGY9JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3RyaXBf ZGlyID0gZj1gZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CisrYW1fX2luc3RhbGxfbWF4 ID0gNDAKKythbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAorKyAgc3JjZGlyc3RyaXA9YGVjaG8g IiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKnxdL1xcXFwmL2cnYAorK2FtX19ub2Jhc2Vf c3RyaXAgPSBcCisrICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQg LWUgInN8JCRzcmNkaXJzdHJpcC98fCIKKythbV9fbm9iYXNlX2xpc3QgPSAkKGFtX19ub2Jhc2Vf c3RyaXBfc2V0dXApOyBcCisrICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBk b25lIHwgXAorKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAu LzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKKysgICQoQVdLKSAnQkVHSU4geyBmaWxlc1si LiJdID0gIiIgfSB7IGZpbGVzWyQkMl0gPSBmaWxlc1skJDJdICIgIiAkJDE7IFwKKysgICAgaWYg KCsrblskJDJdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgXAorKyAgICAgIHsgcHJpbnQgJCQyLCBm aWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKysgICAgRU5EIHsg Zm9yIChkaXIgaW4gZmlsZXMpIHByaW50IGRpciwgZmlsZXNbZGlyXSB9JworK2FtX19iYXNlX2xp c3QgPSBcCisrICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8g L2cnIHwgXAorKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJworK2FtX19pbnN0 YWxsZGlycyA9ICIkKERFU1RESVIpJChiaW5kaXIpIiAiJChERVNURElSKSQobTRkYXRhZGlyKSIg XAorKwkiJChERVNURElSKSQocGtnY29uZmlnZGlyKSIKKytTQ1JJUFRTID0gJChiaW5fU0NSSVBU UykKKytTT1VSQ0VTID0KKytESVNUX1NPVVJDRVMgPQorK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxs LXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVjdXJz aXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWR2 aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRtbC1yZWN1 cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBp bnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVjay1y ZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlwcy1yZWN1 cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK0RBVEEgPSAkKG00ZGF0YV9EQVRBKSAkKHBrZ2Nv bmZpZ19EQVRBKQorK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJz aXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXIt Y2xlYW4tcmVjdXJzaXZlCisrQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJH RVRTOi1yZWN1cnNpdmU9KSBcCisrCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2 ZT0pIHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCisrCWRpc3RkaXIgZGlzdCBkaXN0LWFsbCBkaXN0 Y2hlY2sKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQo U1VCRElSUykKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChU RVhJTkZPUykgJChFWFRSQV9ESVNUKQorK2Rpc3RkaXIgPSAkKFBBQ0tBR0UpLSQoVkVSU0lPTikK Kyt0b3BfZGlzdGRpciA9ICQoZGlzdGRpcikKKythbV9fcmVtb3ZlX2Rpc3RkaXIgPSBcCisrICB7 IHRlc3QgISAtZCAiJChkaXN0ZGlyKSIgXAorKyAgICB8fCB7IGZpbmQgIiQoZGlzdGRpcikiIC10 eXBlIGQgISAtcGVybSAtMjAwIC1leGVjIGNobW9kIHUrdyB7fSAnOycgXAorKyAgICAgICAgICYm IHJtIC1mciAiJChkaXN0ZGlyKSI7IH07IH0KKythbV9fcmVsYXRpdml6ZSA9IFwKKysgIGRpcjA9 YHB3ZGA7IFwKKysgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAorKyAgc2Vk X3Jlc3Q9J3MsXlteL10qLyosLCc7IFwKKysgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxc MSwnOyBcCisrICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKKysgIHdoaWxlIHRlc3Qg LW4gIiQkZGlyMSI7IGRvIFwKKysgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQk c2VkX2ZpcnN0ImA7IFwKKysgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKKysg ICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4gXAorKyAgICAgICAgZGlyMj1gZWNo byAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisrICAgICAgICBk aXIwPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKKysgICAgICBl bHNlIFwKKysgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmly c3QiYDsgXAorKyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwK KysgICAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBc CisrICAgICAgICBlbHNlIFwKKysgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAorKyAgICAg ICAgZmk7IFwKKysgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisrICAgICAgZmk7 IFwKKysgICAgZmk7IFwKKysgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRf cmVzdCJgOyBcCisrICBkb25lOyBcCisrICByZWxkaXI9IiQkZGlyMiIKKytESVNUX0FSQ0hJVkVT ID0gJChkaXN0ZGlyKS50YXIuZ3ogJChkaXN0ZGlyKS50YXIuYnoyCisrR1pJUF9FTlYgPSAtLWJl c3QKKytkaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzID0gZmluZCAuIC10eXBlIGYgLXByaW50 CisrZGlzdGNsZWFuY2hlY2tfbGlzdGZpbGVzID0gZmluZCAuIC10eXBlIGYgLXByaW50CisrQUNM T0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05G ID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBB VVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisr Qk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVT WVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIg PSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9P U1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAorK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJP T1NUX01QSV9QWVRIT05fTElCQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1Rf UFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9M SUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJ WkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJ QiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RF TV9MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VO SVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAor K0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9M SUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9 IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdT ID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVO SVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJ QlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAor K0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdT ID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAor K0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBE VU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1Qg PSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAg PSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZF UlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RB VEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1A CisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9H UkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExE RkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0g QExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBA TFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAK KytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NfTElCID0gQE1ZU1FMX0Nf TElCQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MSUJTID0gQE1ZU1FMX0xJ QlNACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJ VCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisr T1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xF X09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AK KytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9U T09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FH RV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tB R0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RB Uk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAor K1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBA UEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdA CisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9E SVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNR TF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisr UkFOTElCID0gQFJBTkxJQkAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAor K1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JV UklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19C VVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBV UExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFi c19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRp ciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGly QAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNf Y3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRl QAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFt X19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAK KytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1 aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRf b3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRp ckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisr ZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBk b3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisr ZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBo b3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAK Kytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRt bGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0g QGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4 X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xv Y2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAor K21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIg PSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhA CisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3Bz ZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAor K3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisr c3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNA CisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9 IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdT ID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrQUNMT0NBTF9BTUZMQUdTID0g LUkgY29uZmlnCisrQVVUT01BS0VfT1BUSU9OUyA9IGRpc3QtYnppcDIKKysKKysjICBURVNUX0RJ UiA9IHRlc3QKKytNQU5fRE9DX0RJUiA9IG1hbgorKworKyMgTWFpbnRhaW5hbmNlIGZpbGVzCisr TUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbiBhY2xvY2FsLm00IGNvbmZpZ3VyZSBc CisrCQkJY29uZmlnLWguaW4gc2ljL3N0YW1wLWguaW4gYXV0b2dlbi5zaCBib290c3RyYXAKKysK KysKKysjRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gLl9jb25maWd1cmUgLl9N YWtlZmlsZSBjb250cmliCisrRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gY29u dHJpYgorK0VYVFJBX0RJU1QgPSBNYWtlZmlsZS5jb21tb24gJChFWFRSQV9ESVNUX0ZPUl9TT0NJ X0NPTVBBVElCSUxJVFkpIEBQQUNLQUdFQC5tNAorKworKyMgQnVpbGQgaW4gdGhlc2UgZGlyZWN0 b3JpZXM6CisrU1VCRElSUyA9IGJ1aWxkIEBQQUNLQUdFQCAkKE1BTl9ET0NfRElSKSBkb2MgJChU RVNUX0RJUikKKysKKysjIENvbmZpZ3VyYXRpb24gaGVscGVycworK2Jpbl9TQ1JJUFRTID0gQFBB Q0tBR0VALWNvbmZpZworK3BrZ2NvbmZpZ2RpciA9ICQobGliZGlyKS9wa2djb25maWcKKytwa2dj b25maWdfREFUQSA9IEBQQUNLQUdFQC5wYworK200ZGF0YWRpciA9ICQoZGF0YWRpcikvYWNsb2Nh bAorK200ZGF0YV9EQVRBID0gQFBBQ0tBR0VALm00CisrYWxsOiBhbGwtcmVjdXJzaXZlCisrCisr LlNVRkZJWEVTOgorK2FtLS1yZWZyZXNoOgorKwlAOgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjog ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFt X19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFt X19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgZWNobyAn IGNkICQoc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSc7IFwKKysJICAgICAgJChhbV9fY2Qp ICQoc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBcCisrCQkmJiBleGl0IDA7IFwKKysJICAg ICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bf c3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBNYWtlZmlsZSc7IFwKKysJJChhbV9fY2QpICQo dG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251IE1ha2VmaWxlCisrLlBSRUNJ T1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0 dXMqKSBcCisrCSAgICBlY2hvICcgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzJzsgXAorKwkgICAg JChTSEVMTCkgLi9jb25maWcuc3RhdHVzOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRAICQoYW1fX2RlcGZp bGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2Nv bmZpZy5zdGF0dXMgJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQo dG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENP TkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwkkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgLS1y ZWNoZWNrCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVw cykKKysJJChhbV9fY2QpICQoc3JjZGlyKSAmJiAkKEFVVE9DT05GKQorKyQoQUNMT0NBTF9NNCk6 ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCSQoYW1fX2NkKSAkKHNyY2RpcikgJiYgJChBQ0xP Q0FMKSAkKEFDTE9DQUxfQU1GTEFHUykKKyskKGFtX19hY2xvY2FsX200X2RlcHMpOgorK3NvY2kt Y29uZmlnOiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cyAkKHNyY2Rpcikvc29jaS1jb25m aWcuaW4KKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAk QAorK3NvY2kucGM6ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9zb2Np LnBjLmluCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMg JEAKKytpbnN0YWxsLWJpblNDUklQVFM6ICQoYmluX1NDUklQVFMpCisrCUAkKE5PUk1BTF9JTlNU QUxMKQorKwl0ZXN0IC16ICIkKGJpbmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGJp bmRpcikiCisrCUBsaXN0PSckKGJpbl9TQ1JJUFRTKSc7IHRlc3QgLW4gIiQoYmluZGlyKSIgfHwg bGlzdD07IFwKKysJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAiJCRwIjsg dGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKysJICBpZiB0ZXN0IC1mICIkJGQk JHAiOyB0aGVuIGVjaG8gIiQkZCQkcCI7IGVjaG8gIiQkcCI7IGVsc2UgOjsgZmk7IFwKKysJZG9u ZSB8IFwKKysJc2VkIC1lICdwO3MsLiovLCw7bicgXAorKwkgICAgLWUgJ2g7c3wuKnwufCcgXAor KwkgICAgLWUgJ3A7eDtzLC4qLywsOyQodHJhbnNmb3JtKScgfCBzZWQgJ047TjtOO3MsXG4sICxn JyB8IFwKKysJJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIjsgZGlyc1siLiJdID0gMTsg fSBcCisrCSAgeyBkPSQkMzsgaWYgKGRpcnNbZF0gIT0gMSkgeyBwcmludCAiZCIsIGQ7IGRpcnNb ZF0gPSAxIH0gXAorKwkgICAgaWYgKCQkMiA9PSAkJDQpIHsgZmlsZXNbZF0gPSBmaWxlc1tkXSAi ICIgJCQxOyBcCisrCSAgICAgIGlmICgrK25bZF0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSB7IFwK KysJCXByaW50ICJmIiwgZCwgZmlsZXNbZF07IG5bZF0gPSAwOyBmaWxlc1tkXSA9ICIiIH0gfSBc CisrCSAgICBlbHNlIHsgcHJpbnQgImYiLCBkICIvIiAkJDQsICQkMSB9IH0gXAorKwkgIEVORCB7 IGZvciAoZCBpbiBmaWxlcykgcHJpbnQgImYiLCBkLCBmaWxlc1tkXSB9JyB8IFwKKysJd2hpbGUg cmVhZCB0eXBlIGRpciBmaWxlczsgZG8gXAorKwkgICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRo ZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorKwkgICAgIHRlc3QgLXogIiQkZmlsZXMi IHx8IHsgXAorKwkgICAgICAgZWNobyAiICQoSU5TVEFMTF9TQ1JJUFQpICQkZmlsZXMgJyQoREVT VERJUikkKGJpbmRpcikkJGRpciciOyBcCisrCSAgICAgICAkKElOU1RBTExfU0NSSVBUKSAkJGZp bGVzICIkKERFU1RESVIpJChiaW5kaXIpJCRkaXIiIHx8IGV4aXQgJCQ/OyBcCisrCSAgICAgfSBc CisrCTsgZG9uZQorKworK3VuaW5zdGFsbC1iaW5TQ1JJUFRTOgorKwlAJChOT1JNQUxfVU5JTlNU QUxMKQorKwlAbGlzdD0nJChiaW5fU0NSSVBUUyknOyB0ZXN0IC1uICIkKGJpbmRpcikiIHx8IGV4 aXQgMDsgXAorKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwg XAorKwkgICAgICAgc2VkIC1lICdzLC4qLywsOyQodHJhbnNmb3JtKSdgOyBcCisrCXRlc3QgLW4g IiQkbGlzdCIgfHwgZXhpdCAwOyBcCisrCWVjaG8gIiAoIGNkICckKERFU1RESVIpJChiaW5kaXIp JyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKysJY2QgIiQoREVTVERJUikkKGJpbmRpcikiICYm IHJtIC1mICQkZmlsZXMKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbwor KworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKytkaXN0Y2xlYW4t bGlidG9vbDoKKysJLXJtIC1mIGxpYnRvb2wgY29uZmlnLmx0CisraW5zdGFsbC1tNGRhdGFEQVRB OiAkKG00ZGF0YV9EQVRBKQorKwlAJChOT1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAiJChtNGRh dGFkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChtNGRhdGFkaXIpIgorKwlAbGlzdD0n JChtNGRhdGFfREFUQSknOyB0ZXN0IC1uICIkKG00ZGF0YWRpcikiIHx8IGxpc3Q9OyBcCisrCWZv ciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2Ug ZD0iJChzcmNkaXIpLyI7IGZpOyBcCisrCSAgZWNobyAiJCRkJCRwIjsgXAorKwlkb25lIHwgJChh bV9fYmFzZV9saXN0KSB8IFwKKysJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorKwkgIGVjaG8gIiAk KElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQobTRkYXRhZGlyKSciOyBcCisrCSAg JChJTlNUQUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKG00ZGF0YWRpcikiIHx8IGV4aXQg JCQ/OyBcCisrCWRvbmUKKysKKyt1bmluc3RhbGwtbTRkYXRhREFUQToKKysJQCQoTk9STUFMX1VO SU5TVEFMTCkKKysJQGxpc3Q9JyQobTRkYXRhX0RBVEEpJzsgdGVzdCAtbiAiJChtNGRhdGFkaXIp IiB8fCBsaXN0PTsgXAorKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICQkcDsgZG9u ZSB8IHNlZCAtZSAnc3xeLiovfHwnYDsgXAorKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7 IFwKKysJZWNobyAiICggY2QgJyQoREVTVERJUikkKG00ZGF0YWRpciknICYmIHJtIC1mIiAkJGZp bGVzICIpIjsgXAorKwljZCAiJChERVNURElSKSQobTRkYXRhZGlyKSIgJiYgcm0gLWYgJCRmaWxl cworK2luc3RhbGwtcGtnY29uZmlnREFUQTogJChwa2djb25maWdfREFUQSkKKysJQCQoTk9STUFM X0lOU1RBTEwpCisrCXRlc3QgLXogIiQocGtnY29uZmlnZGlyKSIgfHwgJChNS0RJUl9QKSAiJChE RVNURElSKSQocGtnY29uZmlnZGlyKSIKKysJQGxpc3Q9JyQocGtnY29uZmlnX0RBVEEpJzsgdGVz dCAtbiAiJChwa2djb25maWdkaXIpIiB8fCBsaXN0PTsgXAorKwlmb3IgcCBpbiAkJGxpc3Q7IGRv IFwKKysJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBm aTsgXAorKwkgIGVjaG8gIiQkZCQkcCI7IFwKKysJZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBc CisrCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKysJICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICQk ZmlsZXMgJyQoREVTVERJUikkKHBrZ2NvbmZpZ2RpciknIjsgXAorKwkgICQoSU5TVEFMTF9EQVRB KSAkJGZpbGVzICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIiB8fCBleGl0ICQkPzsgXAorKwlk b25lCisrCisrdW5pbnN0YWxsLXBrZ2NvbmZpZ0RBVEE6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwp CisrCUBsaXN0PSckKHBrZ2NvbmZpZ19EQVRBKSc7IHRlc3QgLW4gIiQocGtnY29uZmlnZGlyKSIg fHwgbGlzdD07IFwKKysJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUg fCBzZWQgLWUgJ3N8Xi4qL3x8J2A7IFwKKysJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhpdCAwOyBc CisrCWVjaG8gIiAoIGNkICckKERFU1RESVIpJChwa2djb25maWdkaXIpJyAmJiBybSAtZiIgJCRm aWxlcyAiKSI7IFwKKysJY2QgIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiICYmIHJtIC1mICQk ZmlsZXMKKysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBp bmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhv dXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMg b2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgx KSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmln LnN0YXR1cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJl Z2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0 aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJ VkVfVEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHgg JCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10q KTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJ ZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVj dXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0 ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAg ICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxf dGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFs ICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsg dGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0 IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJH RVRTKToKKysJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VG TEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAor KwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBc CisrCWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBt YWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxp c3Q9JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2Ug XAorKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisr CXJldj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8v YDsgXAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFy Z2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBc CisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAg bG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRz dWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8 fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKKyt0YWdzLXJl Y3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBc CisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6Cisr CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3Qg IiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykg JChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJ U1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisr CSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIp LyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsg bm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBp biBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6 IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQo VEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlzZXQgeDsg XAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJz aW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3Mt aW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0 aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChT VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8 IFwKKysJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9U QUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0 OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8g JChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1sk JDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7 IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXNoaWZ0OyBcCisrCWlmIHRl c3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVz dCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgIGlmIHRlc3QgJCQj IC1ndCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZM QUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKysJICBlbHNl IFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdT X0FSR1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsgXAorKwlmaQorK2N0YWdzOiBD VEFHUworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRB R1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1g Zm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8g JCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQo QVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsg aWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRl c3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NG TEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQor KworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAor KwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdT X0FSR1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdU QUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisr CSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKwl0ZXN0IC1kICIkKGRpc3RkaXIpIiB8fCBta2RpciAi JChkaXN0ZGlyKSIKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1td LlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3Jj ZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJ TEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRm aWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAg ICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJ Y2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0 X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10q JCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGlu ICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRm aWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQk ZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywv W14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhl biBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcw MCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGlmIHRlc3Qg LWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkg ICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAx OyBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcw MCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1mcFIg JCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJ ICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRm aWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwK KysJZG9uZQorKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAg dGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgJChNS0RJUl9QKSAiJChk aXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9u ZQorKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK KysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgZGlyMT0k JHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKKysJICAgICQoYW1fX3JlbGF0 aXZpemUpOyBcCisrCSAgICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZGlyMT0kJHN1 YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCisrCSAgICAkKGFtX19yZWxhdGl2aXplKTsg XAorKwkgICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGlyOyBcCisrCSAgICBlY2hvICIgKGNkICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIkJG5ld190b3Bf ZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCisrCSAgICBlY2hvICIgICAg IGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9jaGVjaz06IGFtX19za2lwX21v ZGVfZml4PTogZGlzdGRpcikiOyBcCisrCSAgICAoJChhbV9fY2QpICQkc3ViZGlyICYmIFwKKysJ ICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIk JG5ld190b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFwK KysJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKKysJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwK KysJCWFtX19za2lwX21vZGVfZml4PTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJICAgICAg fHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwktdGVzdCAtbiAiJChhbV9fc2tpcF9t b2RlX2ZpeCkiIFwKKysJfHwgZmluZCAiJChkaXN0ZGlyKSIgLXR5cGUgZCAhIC1wZXJtIC03NTUg XAorKwkJLWV4ZWMgY2htb2QgdStyd3gsZ28rcngge30gXDsgLW8gXAorKwkgICEgLXR5cGUgZCAh IC1wZXJtIC00NDQgLWxpbmtzIDEgLWV4ZWMgY2htb2QgYStyIHt9IFw7IC1vIFwKKysJICAhIC10 eXBlIGQgISAtcGVybSAtNDAwIC1leGVjIGNobW9kIGErciB7fSBcOyAtbyBcCisrCSAgISAtdHlw ZSBkICEgLXBlcm0gLTQ0NCAtZXhlYyAkKGluc3RhbGxfc2gpIC1jIC1tIGErciB7fSB7fSBcOyBc CisrCXx8IGNobW9kIC1SIGErciAiJChkaXN0ZGlyKSIKKytkaXN0LWd6aXA6IGRpc3RkaXIKKysJ dGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IEdaSVA9JChHWklQX0VOVikgZ3ppcCAt YyA+JChkaXN0ZGlyKS50YXIuZ3oKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisrZGlzdC1iemlw MjogZGlzdGRpcgorKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgYnppcDIgLTkg LWMgPiQoZGlzdGRpcikudGFyLmJ6MgorKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKKysKKytkaXN0 LWx6bWE6IGRpc3RkaXIKKysJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGx6bWEg LTkgLWMgPiQoZGlzdGRpcikudGFyLmx6bWEKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisrCisr ZGlzdC14ejogZGlzdGRpcgorKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgeHog LWMgPiQoZGlzdGRpcikudGFyLnh6CisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKworK2Rpc3Qt dGFyWjogZGlzdGRpcgorKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgY29tcHJl c3MgLWMgPiQoZGlzdGRpcikudGFyLloKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisrCisrZGlz dC1zaGFyOiBkaXN0ZGlyCisrCXNoYXIgJChkaXN0ZGlyKSB8IEdaSVA9JChHWklQX0VOVikgZ3pp cCAtYyA+JChkaXN0ZGlyKS5zaGFyLmd6CisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKworK2Rp c3QtemlwOiBkaXN0ZGlyCisrCS1ybSAtZiAkKGRpc3RkaXIpLnppcAorKwl6aXAgLXJxICQoZGlz dGRpcikuemlwICQoZGlzdGRpcikKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisrCisrZGlzdCBk aXN0LWFsbDogZGlzdGRpcgorKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgR1pJ UD0kKEdaSVBfRU5WKSBnemlwIC1jID4kKGRpc3RkaXIpLnRhci5negorKwl0YXJkaXI9JChkaXN0 ZGlyKSAmJiAkKGFtX190YXIpIHwgYnppcDIgLTkgLWMgPiQoZGlzdGRpcikudGFyLmJ6MgorKwkk KGFtX19yZW1vdmVfZGlzdGRpcikKKysKKysjIFRoaXMgdGFyZ2V0IHVudGFycyB0aGUgZGlzdCBm aWxlIGFuZCB0cmllcyBhIFZQQVRIIGNvbmZpZ3VyYXRpb24uICBUaGVuCisrIyBpdCBndWFyYW50 ZWVzIHRoYXQgdGhlIGRpc3RyaWJ1dGlvbiBpcyBzZWxmLWNvbnRhaW5lZCBieSBtYWtpbmcgYW5v dGhlcgorKyMgdGFyZmlsZS4KKytkaXN0Y2hlY2s6IGRpc3QKKysJY2FzZSAnJChESVNUX0FSQ0hJ VkVTKScgaW4gXAorKwkqLnRhci5neiopIFwKKysJICBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWRj ICQoZGlzdGRpcikudGFyLmd6IHwgJChhbV9fdW50YXIpIDs7XAorKwkqLnRhci5iejIqKSBcCisr CSAgYnppcDIgLWRjICQoZGlzdGRpcikudGFyLmJ6MiB8ICQoYW1fX3VudGFyKSA7O1wKKysJKi50 YXIubHptYSopIFwKKysJICBsem1hIC1kYyAkKGRpc3RkaXIpLnRhci5sem1hIHwgJChhbV9fdW50 YXIpIDs7XAorKwkqLnRhci54eiopIFwKKysJICB4eiAtZGMgJChkaXN0ZGlyKS50YXIueHogfCAk KGFtX191bnRhcikgOztcCisrCSoudGFyLloqKSBcCisrCSAgdW5jb21wcmVzcyAtYyAkKGRpc3Rk aXIpLnRhci5aIHwgJChhbV9fdW50YXIpIDs7XAorKwkqLnNoYXIuZ3oqKSBcCisrCSAgR1pJUD0k KEdaSVBfRU5WKSBnemlwIC1kYyAkKGRpc3RkaXIpLnNoYXIuZ3ogfCB1bnNoYXIgOztcCisrCSou emlwKikgXAorKwkgIHVuemlwICQoZGlzdGRpcikuemlwIDs7XAorKwllc2FjCisrCWNobW9kIC1S IGEtdyAkKGRpc3RkaXIpOyBjaG1vZCBhK3cgJChkaXN0ZGlyKQorKwlta2RpciAkKGRpc3RkaXIp L19idWlsZAorKwlta2RpciAkKGRpc3RkaXIpL19pbnN0CisrCWNobW9kIGEtdyAkKGRpc3RkaXIp CisrCXRlc3QgLWQgJChkaXN0ZGlyKS9fYnVpbGQgfHwgZXhpdCAwOyBcCisrCWRjX2luc3RhbGxf YmFzZT1gJChhbV9fY2QpICQoZGlzdGRpcikvX2luc3QgJiYgcHdkIHwgc2VkIC1lICdzLF5bXjpc XC9dOltcXC9dLC8sJ2AgXAorKwkgICYmIGRjX2Rlc3RkaXI9IiQke1RNUERJUi0vdG1wfS9hbS1k Yy0kJCQkLyIgXAorKwkgICYmIGFtX19jd2Q9YHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKGRp c3RkaXIpL19idWlsZCBcCisrCSAgJiYgLi4vY29uZmlndXJlIC0tc3JjZGlyPS4uIC0tcHJlZml4 PSIkJGRjX2luc3RhbGxfYmFzZSIgXAorKwkgICAgJChESVNUQ0hFQ0tfQ09ORklHVVJFX0ZMQUdT KSBcCisrCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGR2aSBcCisrCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY2hlY2sg XAorKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwgXAorKwkgICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGxjaGVjayBcCisrCSAgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgdW5pbnN0YWxsIFwKKysJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkaXN0 dW5pbnN0YWxsY2hlY2tfZGlyPSIkJGRjX2luc3RhbGxfYmFzZSIgXAorKwkgICAgICAgIGRpc3R1 bmluc3RhbGxjaGVjayBcCisrCSAgJiYgY2htb2QgLVIgYS13ICIkJGRjX2luc3RhbGxfYmFzZSIg XAorKwkgICYmICh7IFwKKysJICAgICAgIChjZCAuLi8uLiAmJiB1bWFzayAwNzcgJiYgbWtkaXIg IiQkZGNfZGVzdGRpciIpIFwKKysJICAgICAgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIERF U1RESVI9IiQkZGNfZGVzdGRpciIgaW5zdGFsbCBcCisrCSAgICAgICAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIHVuaW5zdGFsbCBcCisrCSAgICAgICAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIFwKKysJICAg ICAgICAgICAgZGlzdHVuaW5zdGFsbGNoZWNrX2Rpcj0iJCRkY19kZXN0ZGlyIiBkaXN0dW5pbnN0 YWxsY2hlY2s7IFwKKysJICAgICAgfSB8fCB7IHJtIC1yZiAiJCRkY19kZXN0ZGlyIjsgZXhpdCAx OyB9KSBcCisrCSAgJiYgcm0gLXJmICIkJGRjX2Rlc3RkaXIiIFwKKysJICAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBkaXN0IFwKKysJICAmJiBybSAtcmYgJChESVNUX0FSQ0hJVkVTKSBcCisr CSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlzdGNsZWFuY2hlY2sgXAorKwkgICYmIGNk ICIkJGFtX19jd2QiIFwKKysJICB8fCBleGl0IDEKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisr CUAoZWNobyAiJChkaXN0ZGlyKSBhcmNoaXZlcyByZWFkeSBmb3IgZGlzdHJpYnV0aW9uOiAiOyBc CisrCSAgbGlzdD0nJChESVNUX0FSQ0hJVkVTKSc7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAk JGk7IGRvbmUpIHwgXAorKwkgIHNlZCAtZSAxaCAtZSAxcy8uLz0vZyAtZSAxcCAtZSAxeCAtZSAn JCRwJyAtZSAnJCR4JworK2Rpc3R1bmluc3RhbGxjaGVjazoKKysJQCQoYW1fX2NkKSAnJChkaXN0 dW5pbnN0YWxsY2hlY2tfZGlyKScgXAorKwkmJiB0ZXN0IGAkKGRpc3R1bmluc3RhbGxjaGVja19s aXN0ZmlsZXMpIHwgd2MgLWxgIC1sZSAxIFwKKysJICAgfHwgeyBlY2hvICJFUlJPUjogZmlsZXMg bGVmdCBhZnRlciB1bmluc3RhbGw6IiA7IFwKKysJICAgICAgICBpZiB0ZXN0IC1uICIkKERFU1RE SVIpIjsgdGhlbiBcCisrCSAgICAgICAgICBlY2hvICIgIChjaGVjayBERVNURElSIHN1cHBvcnQp IjsgXAorKwkgICAgICAgIGZpIDsgXAorKwkgICAgICAgICQoZGlzdHVuaW5zdGFsbGNoZWNrX2xp c3RmaWxlcykgOyBcCisrCSAgICAgICAgZXhpdCAxOyB9ID4mMgorK2Rpc3RjbGVhbmNoZWNrOiBk aXN0Y2xlYW4KKysJQGlmIHRlc3QgJyQoc3JjZGlyKScgPSAuIDsgdGhlbiBcCisrCSAgZWNobyAi RVJST1I6IGRpc3RjbGVhbmNoZWNrIGNhbiBvbmx5IHJ1biBmcm9tIGEgVlBBVEggYnVpbGQiIDsg XAorKwkgIGV4aXQgMSA7IFwKKysJZmkKKysJQHRlc3QgYCQoZGlzdGNsZWFuY2hlY2tfbGlzdGZp bGVzKSB8IHdjIC1sYCAtZXEgMCBcCisrCSAgfHwgeyBlY2hvICJFUlJPUjogZmlsZXMgbGVmdCBp biBidWlsZCBkaXJlY3RvcnkgYWZ0ZXIgZGlzdGNsZWFuOiIgOyBcCisrCSAgICAgICAkKGRpc3Rj bGVhbmNoZWNrX2xpc3RmaWxlcykgOyBcCisrCSAgICAgICBleGl0IDE7IH0gPiYyCisrY2hlY2st YW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwtYW06IE1ha2VmaWxlICQo U0NSSVBUUykgJChEQVRBKQorK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKKytp bnN0YWxsZGlycy1hbToKKysJZm9yIGRpciBpbiAiJChERVNURElSKSQoYmluZGlyKSIgIiQoREVT VERJUikkKG00ZGF0YWRpcikiICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIjsgZG8gXAorKwkg IHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwKKysJZG9uZQorK2luc3Rh bGw6IGluc3RhbGwtcmVjdXJzaXZlCisraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJz aXZlCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCisrdW5pbnN0YWxsOiB1 bmluc3RhbGwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1hbTogYWxsLWFtCisrCUAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisrCisraW5zdGFs bGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtF KSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JB TSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIg SU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJ ICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0 YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3Rj bGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAt ZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3Qg LXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5f VlBBVEhfRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhp cyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJp dCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxk LiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5U QUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTog Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFu OiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiAkKGFtX19DT05GSUdfRElTVENMRUFOX0ZJ TEVTKQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVh bi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6 IGR2aS1yZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysK KytodG1sLWFtOgorKworK2luZm86IGluZm8tcmVjdXJzaXZlCisrCisraW5mby1hbToKKysKKytp bnN0YWxsLWRhdGEtYW06IGluc3RhbGwtbTRkYXRhREFUQSBpbnN0YWxsLXBrZ2NvbmZpZ0RBVEEK KysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCisrCisraW5zdGFsbC1kdmkt YW06CisrCisraW5zdGFsbC1leGVjLWFtOiBpbnN0YWxsLWJpblNDUklQVFMKKysKKytpbnN0YWxs LWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWh0bWwtYW06CisrCisr aW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFsbC1pbmZvLWFt OgorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNp dmUKKysKKytpbnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vy c2l2ZQorKworK2luc3RhbGwtcHMtYW06CisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50 YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiAkKGFtX19D T05GSUdfRElTVENMRUFOX0ZJTEVTKQorKwktcm0gLXJmICQodG9wX3NyY2RpcikvYXV0b200dGUu Y2FjaGUKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFu LWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVh bi1yZWN1cnNpdmUKKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKwor K3BzOiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFs bC1iaW5TQ1JJUFRTIHVuaW5zdGFsbC1sb2NhbCBcCisrCXVuaW5zdGFsbC1tNGRhdGFEQVRBIHVu aW5zdGFsbC1wa2djb25maWdEQVRBCisrCisrLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdF VFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtYW0g aW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxs LWFtIGFtLS1yZWZyZXNoIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorKwlj bGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0IGRpc3QtYWxsIGRpc3QtYnpp cDIgXAorKwlkaXN0LWd6aXAgZGlzdC1sem1hIGRpc3Qtc2hhciBkaXN0LXRhclogZGlzdC14eiBk aXN0LXppcCBcCisrCWRpc3RjaGVjayBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNs ZWFuLWxpYnRvb2wgXAorKwlkaXN0Y2xlYW4tdGFncyBkaXN0Y2xlYW5jaGVjayBkaXN0ZGlyIGRp c3R1bmluc3RhbGxjaGVjayBkdmkgXAorKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1h bSBpbnN0YWxsIGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLWJpblNDUklQVFMgaW5zdGFsbC1kYXRh IGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCisrCWluc3RhbGwtZHZpLWFtIGluc3RhbGwt ZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwKKysJaW5zdGFsbC1odG1sLWFtIGlu c3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gXAorKwlpbnN0YWxsLW00ZGF0YURBVEEgaW5zdGFs bC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAorKwlpbnN0YWxsLXBrZ2NvbmZpZ0RB VEEgaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgXAorKwlpbnN0YWxsY2hl Y2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIFwKKysJbWFpbnRh aW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorKwltb3N0 bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBc CisrCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSBcCisrCXVuaW5z dGFsbC1iaW5TQ1JJUFRTIHVuaW5zdGFsbC1sb2NhbCB1bmluc3RhbGwtbTRkYXRhREFUQSBcCisr CXVuaW5zdGFsbC1wa2djb25maWdEQVRBCisrCisrQFNFVF9NQUtFQAorKworKyMgVGFyZ2V0cwor K3VuaW5zdGFsbC1sb2NhbDoKKysJcm0gLXJmICQoREVTVERJUikkKGluY2x1ZGVkaXIpL0BQQUNL QUdFQAorKworK2Rpc3QtaHRtbDoKKysJJChNQUtFKSAtQyBkb2MgZGlzdC1odG1sCisrCisrc25h cHNob3Q6IHNuYXBzaG90LXNyYyBzbmFwc2hvdC1odG1sCisrCisrc25hcHNob3Qtc3JjOgorKwkk KE1BS0UpIGRpc3QgZGlzdGRpcj1AUEFDS0FHRV9UQVJOQU1FQC1gZGF0ZSArIiVZJW0lZCJgCisr Cisrc25hcHNob3QtaHRtbDoKKysJJChNQUtFKSAtQyBkb2MgZGlzdC1odG1sIGh0bWxfdGFybmFt ZT1AUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1gZGF0ZSArIiVZJW0lZCJgCisrCisrdXBsb2Fk OiB1cGxvYWQtc3JjIHVwbG9hZC1odG1sCisrCisrdXBsb2FkLXNyYzogZGlzdAorKwlAVVBMT0FE X0NPTU1BTkRAIEBQQUNLQUdFX1RBUk5BTUVALUBWRVJTSU9OQC50YXIuZ3ogXAorKwlAUEFDS0FH RV9UQVJOQU1FQC1AVkVSU0lPTkAudGFyLmJ6MgorKworK3VwbG9hZC1odG1sOiBkaXN0LWh0bWwK KysJQFVQTE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1AVkVSU0lPTkAu dGFyLmd6IFwKKysJQFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtQFZFUlNJT05ALnRhci5iejIK KysKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9y dCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBh dCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9tYW4vTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL21hbi9NYWtlZmls ZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vTWFrZWZp bGUuYW0JMjAwOS0wNC0xNiAxOTozNzowOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNCBA QAorKyMgTWFuIHBhZ2VzCisrbWFuX01BTlMgPSBzb2NpLWNvbmZpZy4xCisrCisrRVhUUkFfRElT VCA9ICQobWFuX01BTlMpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svbWFuL01ha2VmaWxl LmluIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQt cGFjay9tYW4vTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL01ha2VmaWxlLmluCTIwMTEtMDItMDggMjI6Mzk6 NTYuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDQ5MyBAQAorKyMgTWFrZWZpbGUuaW4gZ2Vu ZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3Vy ZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5 OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw MDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRo aXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJp YnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRo aXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrVlBBVEggPSBAc3Jj ZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIg PSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FH RUAKKytwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBD RFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFs bF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0g PSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1j CisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dy YW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6 CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFM TCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hv c3RfdHJpcGxldCA9IEBob3N0QAorK3N1YmRpciA9IG1hbgorK0RJU1RfQ09NTU9OID0gJChzcmNk aXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbgorK0FDTE9DQUxfTTQgPSAkKHRv cF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv Y3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s dHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUu YWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklH VVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQo aW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29u ZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9 CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKythbV9fdnBhdGhfYWRqX3NldHVwID0gc3Jj ZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKKythbV9fdnBhdGhf YWRqID0gY2FzZSAkJHAgaW4gXAorKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNl ZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorKyAgICAqKSBmPSQkcDs7IFwKKysgIGVzYWM7 CisrYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworK2Ft X19pbnN0YWxsX21heCA9IDQwCisrYW1fX25vYmFzZV9zdHJpcF9zZXR1cCA9IFwKKysgIHNyY2Rp cnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AK KythbV9fbm9iYXNlX3N0cmlwID0gXAorKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAi OyBkb25lIHwgc2VkIC1lICJzfCQkc3JjZGlyc3RyaXAvfHwiCisrYW1fX25vYmFzZV9saXN0ID0g JChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAorKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hv ICIkJHAgJCRwIjsgZG9uZSB8IFwKKysgIHNlZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAu KlwvLyFzLyAuKi8gLi87IHMsXCggLipcKS9bXi9dKiQkLFwxLCcgfCBcCisrICAkKEFXSykgJ0JF R0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQx OyBcCisrICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKysgICAgICB7 IHByaW50ICQkMiwgZmlsZXNbJCQyXTsgblskJDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBc CisrICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScK KythbV9fYmFzZV9saXN0ID0gXAorKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQh TjskJCFOO3MvXG4vIC9nJyB8IFwKKysgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAv ZycKKyttYW4xZGlyID0gJChtYW5kaXIpL21hbjEKKythbV9faW5zdGFsbGRpcnMgPSAiJChERVNU RElSKSQobWFuMWRpcikiCisrTlJPRkYgPSBucm9mZgorK01BTlMgPSAkKG1hbl9NQU5TKQorK0RJ 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 R0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVVJMID0g QFBBQ0tBR0VfVVJMQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFU SF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJ RyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NA CisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxB R1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JF U1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtF ID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBA U09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lf TVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExP QURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJz X2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisr YWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0g QGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBh Y19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRl ID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisr YW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFy ID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1 aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVp bGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWls ZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBA ZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisr ZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sg PSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nf b2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2Nw dSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9z dF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRp ckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xh dGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBs aWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBs b2NhbHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAor K29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3By ZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRf b2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2Rp ciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9 IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAor K3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGly QAorKworKyMgTWFuIHBhZ2VzCisrbWFuX01BTlMgPSBzb2NpLWNvbmZpZy4xCisrRVhUUkFfRElT VCA9ICQobWFuX01BTlMpCisrYWxsOiBhbGwtYW0KKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIp L01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICAkKGFtX19jb25maWd1cmVfZGVw cykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVw cyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYg eyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAg ICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bf c3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBtYW4vTWFrZWZpbGUnOyBcCisrCSQoYW1fX2Nk KSAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSBtYW4vTWFrZWZpbGUK KysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAk KHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29u ZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChh bV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hF TEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsg XAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNk aXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRv cF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9D QUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKGFtX19hY2xvY2FsX200X2Rl cHMpOgorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4t bGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworK2luc3RhbGwtbWFuMTogJChtYW5fTUFO UykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQobWFuMWRpcikiIHx8ICQoTUtE SVJfUCkgIiQoREVTVERJUikkKG1hbjFkaXIpIgorKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW4x ZGlyKSIgfHwgZXhpdCAwOyBcCisrCXsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBk b25lOyBcCisrCWwyPSckKG1hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7 IGRvbmUgfCBcCisrCSAgc2VkIC1uICcvXC4xW2Etel0qJCQvcCc7IFwKKysJfSB8IHdoaWxlIHJl YWQgcDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGly KS8iOyBmaTsgXAorKwkgIGVjaG8gIiQkZCQkcCI7IGVjaG8gIiQkcCI7IFwKKysJZG9uZSB8IFwK KysJc2VkIC1lICduO3MsLiovLCw7cDtoO3MsLipcLiwsO3MsXlteMV1bMC05YS16XSokJCwxLDt4 JyBcCisrCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4s JyB8IFwKKysJc2VkICdOO047cyxcbiwgLGcnIHwgeyBcCisrCWxpc3Q9OyB3aGlsZSByZWFkIGZp bGUgYmFzZSBpbnN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRiYXNlIiA9ICIkJGluc3QiOyB0aGVu IGxpc3Q9IiQkbGlzdCAkJGZpbGUiOyBlbHNlIFwKKysJICAgIGVjaG8gIiAkKElOU1RBTExfREFU QSkgJyQkZmlsZScgJyQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCciOyBcCisrCSAgICAkKElO U1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCIgfHwgZXhp dCAkJD87IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWZvciBpIGluICQkbGlzdDsgZG8gZWNo byAiJCRpIjsgZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisrCXdoaWxlIHJlYWQgZmlsZXM7 IGRvIFwKKysJICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKysJICAgIGVjaG8gIiAkKElOU1RB TExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQobWFuMWRpciknIjsgXAorKwkgICAgJChJTlNU QUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKG1hbjFkaXIpIiB8fCBleGl0ICQkPzsgfTsg XAorKwlkb25lOyB9CisrCisrdW5pbnN0YWxsLW1hbjE6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwp CisrCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjFkaXIpIiB8fCBleGl0IDA7IFwKKysJZmlsZXM9 YHsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisrCWwyPSckKG1hbl9N QU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisrCSAgc2VkIC1u ICcvXC4xW2Etel0qJCQvcCc7IFwKKysJfSB8IHNlZCAtZSAncywuKi8sLDtoO3MsLipcLiwsO3Ms XlteMV1bMC05YS16XSokJCwxLDt4JyBcCisrCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDsk KHRyYW5zZm9ybSk7RztzLFxuLC4sJ2A7IFwKKysJdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisr CSAgZWNobyAiICggY2QgJyQoREVTVERJUikkKG1hbjFkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAi KSI7IFwKKysJICBjZCAiJChERVNURElSKSQobWFuMWRpcikiICYmIHJtIC1mICQkZmlsZXM7IH0K Kyt0YWdzOiBUQUdTCisrVEFHUzoKKysKKytjdGFnczogQ1RBR1MKKytDVEFHUzoKKysKKysKKytk aXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQGxpc3Q9JyQoTUFOUyknOyBpZiB0ZXN0IC1uICIkJGxp c3QiOyB0aGVuIFwKKysJICBsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRl c3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgICAgaWYg dGVzdCAtZiAiJCRkJCRwIjsgdGhlbiBlY2hvICIkJGQkJHAiOyBlbHNlIDo7IGZpOyBkb25lYDsg XAorKwkgIGlmIHRlc3QgLW4gIiQkbGlzdCIgJiYgXAorKwkgICAgZ3JlcCAnYWIgaGVscDJtYW4g aXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgPi9kZXYvbnVsbDsgdGhl biBcCisrCSAgICBlY2hvICJlcnJvcjogZm91bmQgbWFuIHBhZ2VzIGNvbnRhaW5pbmcgdGhlIFxg bWlzc2luZyBoZWxwMm1hbicgcmVwbGFjZW1lbnQgdGV4dDoiID4mMjsgXAorKwkgICAgZ3JlcCAt bCAnYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3Qg fCBzZWQgJ3MvXi8gICAgICAgICAvJyA+JjI7IFwKKysJICAgIGVjaG8gIiAgICAgICB0byBmaXgg dGhlbSwgaW5zdGFsbCBoZWxwMm1hbiwgcmVtb3ZlIGFuZCByZWdlbmVyYXRlIHRoZSBtYW4gcGFn ZXM7IiA+JjI7IFwKKysJICAgIGVjaG8gIiAgICAgICB0eXBpY2FsbHkgXGBtYWtlIG1haW50YWlu ZXItY2xlYW4nIHdpbGwgcmVtb3ZlIHRoZW0iID4mMjsgXAorKwkgICAgZXhpdCAxOyBcCisrCSAg ZWxzZSA6OyBmaTsgXAorKwllbHNlIDo7IGZpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNk aXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9 YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAor KwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRs aXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3Ry aXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRk aXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJf UCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlz dGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsg XAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmls ZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisr CSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmls ZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3Rk aXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5 cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBc CisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNk aXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIp JCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5 cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBc CisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBc CisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAg fHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQg MTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNr LWFtCisrYWxsLWFtOiBNYWtlZmlsZSAkKE1BTlMpCisraW5zdGFsbGRpcnM6CisrCWZvciBkaXIg aW4gIiQoREVTVERJUikkKG1hbjFkaXIpIjsgZG8gXAorKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAk KE1LRElSX1ApICIkJGRpciI7IFwKKysJZG9uZQorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0 YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFt CisrdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysK KytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dS QU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSki IElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisr CSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5z dGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0 Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0g LWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0 IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFO X1ZQQVRIX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRo aXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAi aXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWls ZC4iCisrY2xlYW46IGNsZWFuLWFtCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4t bGlidG9vbCBtb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisrCS1y bSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMK KysKKytkdmk6IGR2aS1hbQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1sLWFtCisrCisraHRt bC1hbToKKysKKytpbmZvOiBpbmZvLWFtCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEt YW06IGluc3RhbGwtbWFuCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisrCisraW5z dGFsbC1kdmktYW06CisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3RhbGwtaHRtbDogaW5z dGFsbC1odG1sLWFtCisrCisraW5zdGFsbC1odG1sLWFtOgorKworK2luc3RhbGwtaW5mbzogaW5z dGFsbC1pbmZvLWFtCisrCisraW5zdGFsbC1pbmZvLWFtOgorKworK2luc3RhbGwtbWFuOiBpbnN0 YWxsLW1hbjEKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBk Zi1hbToKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisrCisraW5zdGFsbC1wcy1hbToK KysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1j bGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xl YW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNs ZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xl YW4tbGlidG9vbAorKworK3BkZjogcGRmLWFtCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1hbQor KworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLW1hbgorKworK3VuaW5zdGFs bC1tYW46IHVuaW5zdGFsbC1tYW4xCisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJp cAorKworKy5QSE9OWTogYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5l cmljIGNsZWFuLWxpYnRvb2wgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNs ZWFuLWxpYnRvb2wgZGlzdGRpciBkdmkgXAorKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5m by1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFt IGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKKysJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhl Yy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKKysJaW5zdGFsbC1pbmZvIGluc3Rh bGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLW1hbjEgXAorKwlpbnN0YWxsLXBkZiBpbnN0 YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAorKwlpbnN0YWxsLXN0cmlwIGlu c3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgXAorKwltYWludGFpbmVyLWNs ZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisrCW1vc3RseWNsZWFu LWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKysJdW5p bnN0YWxsIHVuaW5zdGFsbC1hbSB1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1tYW4xCisrCisrCisr IyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxs IHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVh c3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svbWFuL3NvY2ktY29uZmlnLjEgc29jaS0zLjAuMF90cmVwMzAwL21hbi9zb2NpLWNvbmZp Zy4xCistLS0gc29jaS0zLjAuMF80LXBhY2svbWFuL3NvY2ktY29uZmlnLjEJMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL3NvY2kt Y29uZmlnLjEJMjAwOS0wNC0xNiAxOTozNzowOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEs MzkgQEAKKysuVEggU09DSSAxICIyOCBNYXJjaCAyMDA5IgorKy5TSCBOQU1FCisrc29jaS1jb25m aWcgLSBzY3JpcHQgdG8gZ2V0IHZlcnNpb24gbnVtYmVyIGFuZCBjb21waWxlciBmbGFncyBvZiB0 aGUgaW5zdGFsbGVkIFNPQ0kgbGlicmFyeQorKy5TSCBTWU5PUFNJUworKy5CIHNvY2ktY29uZmln CisrW1wtXC1wcmVmaXhdICBbXC1cLXZlcnNpb25dIFtcLVwtbGlic10gW1wtXC1jZmxhZ3NdCisr LlNIIERFU0NSSVBUSU9OCisrLlBQCisrXGZJc29jaS1jb25maWdcZlAgaXMgYSB0b29sIHRoYXQg aXMgdXNlZCB0byBjb25maWd1cmUgdG8gZGV0ZXJtaW5lCisrdGhlIGNvbXBpbGVyIGFuZCBsaW5r ZXIgZmxhZ3MgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBjb21waWxlCisrYW5kIGxpbmsgcHJvZ3Jh bXMgdGhhdCB1c2UgXGZJU09DSVxmUC4gSXQgaXMgYWxzbyB1c2VkIGludGVybmFsbHkKKyt0byB0 aGUgLm00IG1hY3JvcyBmb3IgR05VIGF1dG9jb25mIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggXGZJ U09DSVxmUC4KKysuCisrLlNIIE9QVElPTlMKKysuUFAKKytcZklzb2NpLWNvbmZpZ1xmUCBhY2Nl cHRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKKysuVFAgOAorKy5CICBcLVwtdmVyc2lvbgorK1By aW50IHRoZSBjdXJyZW50bHkgaW5zdGFsbGVkIHZlcnNpb24gb2YgXGZJU09DSVxmUCBvbiB0aGUg c3RhbmRhcmQgb3V0cHV0LgorKy5UUCA4CisrLkIgIFwtXC1saWJzCisrUHJpbnQgdGhlIGxpbmtl ciBmbGFncyB0aGF0IGFyZSBuZWNlc3NhcnkgdG8gbGluayBhIFxmSVNPQ0lcZlAgcHJvZ3JhbSwg d2l0aCBjYmxhcworKy5UUCA4CisrLkIgIFwtXC1jZmxhZ3MKKytQcmludCB0aGUgY29tcGlsZXIg ZmxhZ3MgdGhhdCBhcmUgbmVjZXNzYXJ5IHRvIGNvbXBpbGUgYSBcZklTT0NJXGZQIHByb2dyYW0u CisrLlRQIDgKKysuQiAgXC1cLXByZWZpeAorK1Nob3cgdGhlIFNPQ0kgaW5zdGFsbGF0aW9uIHBy ZWZpeC4KKysuU0ggU0VFIEFMU08KKysuQlIgZ3RrLWNvbmZpZyAoMSksCisrLkJSIGdub21lLWNv bmZpZyAoMSkKKysuU0ggQ09QWVJJR0hUCisrQ29weXJpZ2h0IFwoY28gIDIwMDkgRGVuaXMgQXJu YXVkCisrCisrUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUg dGhpcyBzb2Z0d2FyZSBhbmQgaXRzCisrZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2UgYW5k IHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLAorK3Byb3ZpZGVkIHRoYXQgdGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQKKytib3RoIHRo YXQgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4K KytzdXBwb3J0aW5nIGRvY3VtZW50YXRpb24uCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvTWFrZWZp bGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5hbQkyMDA5LTA0LTI4IDIzOjE1OjE0LjAw MDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw5IEBACisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01h a2VmaWxlLmNvbW1vbgorKworKyMjIFNvdXJjZSBkaXJlY3RvcnkKKysKKytNQUlOVEFJTkVSQ0xF QU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrU1VCRElSUyA9IEBNWVNRTF9ESVJTQCBAUE9TVEdS RVNRTF9ESVJTQCBAT1JBQ0xFX0RJUlNACisrCisrRVhUUkFfRElTVCA9CitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5pbgkyMDExLTAy LTA4IDIyOjM5OjU2LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw2MTYgQEAKKysjIE1ha2Vm aWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysj IEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYs IDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1 LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyBJ bmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRo b3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorK1ZQ QVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dp bmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRp cikvQFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACisr YW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBj ZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9z aF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0 YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3Jt ID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9J TlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BS RV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBi dWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9N YWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbgorK3N1YmRpciA9IHNvY2kvYmFja2VuZHMKKytBQ0xPQ0FMX000ID0gJCh0b3Bf c3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2Nw cHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRz dWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFj CisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VS RV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGlu c3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZp Zy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQor K1NPVVJDRVMgPQorK0RJU1RfU09VUkNFUyA9CisrUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVj dXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRtbC1yZWN1cnNpdmUg aW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZpLXJl Y3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1odG1sLXJlY3Vyc2l2 ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3Rh bGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKysJaW5zdGFsbGNoZWNrLXJlY3Vy c2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vyc2l2 ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHlj bGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysgIGRpc3RjbGVhbi1yZWN1cnNpdmUg bWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVD VVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKKysJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VU UzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKKysJZGlzdGRpcgorK0VUQUdT ID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJESVJTID0gJChTVUJESVJTKQorK0RJ U1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVY VFJBX0RJU1QpCisrYW1fX3JlbGF0aXZpemUgPSBcCisrICBkaXIwPWBwd2RgOyBcCisrICBzZWRf Zmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKKysgIHNlZF9yZXN0PSdzLF5bXi9dKi8q LCwnOyBcCisrICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAorKyAgc2VkX2J1 dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCisrICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBc CisrICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisr ICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBcCisrICAgICAgaWYgdGVzdCAiJCRm aXJzdCIgPSAiLi4iOyB0aGVuIFwKKysgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQg LWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAorKyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIw IiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCisrICAgICAgZWxzZSBcCisrICAgICAgICBm aXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysgICAgICAg IGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhlbiBcCisrICAgICAgICAgIGRpcjI9 YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAgICAgICAgZWxzZSBc CisrICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKKysgICAgICAgIGZpOyBcCisrICAgICAg ICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAorKyAgICAgIGZpOyBcCisrICAgIGZpOyBcCisr ICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAgZG9u ZTsgXAorKyAgcmVsZGlyPSIkJGRpcjIiCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0g QEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIg PSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JP T1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09T VF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNU RU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytC T09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElC QAorK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAorK0JPT1NU X1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09T VF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJP T1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJ WkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytC T09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9 IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJP T1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVS U0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05f TElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENG TEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZM QUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklH QAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQ UFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQ TU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9 IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVU SUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NA CisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQ QAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZ X1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lO U1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RB TExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFM TF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JB TUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpT QAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAor K0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1B S0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZM QUdTQAorK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAorK01ZU1FMX0RJUlMgPSBATVlTUUxf RElSU0AKKytNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNR TF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBP QkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNA CisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9M REZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JB Q0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAK KytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdS RVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9 IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAor K1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdF X1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQ RVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9T VEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQ T1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVS U0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytTRUQgPSBA U0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVB REVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9 IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0g QFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0g QGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fi c190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAor K2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklO QAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9f bGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190 YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxk ID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBi dWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxk X3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisr ZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2Rp ciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlk aXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhA CisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9h bGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9z dF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVk aXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBp bnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisr bGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9j YWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJf cCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIg PSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9 IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBA c2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0 YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAor K3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3Bf YnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2Rp ciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRv cF9zcmNkaXIpCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK1NVQkRJUlMg PSBATVlTUUxfRElSU0AgQFBPU1RHUkVTUUxfRElSU0AgQE9SQUNMRV9ESVJTQAorK0VYVFJBX0RJ U1QgPSAKKythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01h a2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUu Y29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkg IGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkg ICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBl bHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlk b25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNv Y2kvYmFja2VuZHMvTWFrZWZpbGUnOyBcCisrCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwK KysJICAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL01ha2VmaWxlCisrLlBSRUNJT1VT 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 LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215 c3FsL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDI2IEBACisrIyMgYmFja2VuZHMvbXlzcWwgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUg JCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2Vz Lm1rCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK1NVQkRJUlMg PSAuIHRlc3QKKysKKytpZiBIQVZFX01ZU1FMCisrbGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX215 c3FsLmxhCisrCisrbGlic29jaV9teXNxbF9sYV9TT1VSQ0VTPSAkKGJja19teXNxbF9oX3NvdXJj ZXMpICQoYmNrX215c3FsX2NjX3NvdXJjZXMpIAorK2xpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1Mg PSAkKE1ZU1FMX0NGTEFHUykKKytsaWJzb2NpX215c3FsX2xhX0xJQkFERCA9CisrbGlic29jaV9t eXNxbF9sYV9MREZMQUdTID0gXAorKwkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9USU1FX0xJ QikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCisrCS12ZXJzaW9uLWluZm8gJChHRU5F UklDX0xJQlJBUllfVkVSU0lPTikKKysKKytwa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCisrZW5kaWYKKytpZiBTT0NJX0hF QURFUlNfQlVSSUVECisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNr ZW5kcy9teXNxbAorK2Vsc2UKKytzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQorK2Vu ZGlmCisrcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKK2RpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmJhc2ljIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmJhc2ljCistLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5iYXNpYwkyMDExLTAyLTA5 IDAwOjMwOjMyLjU5OTkxNjM3MyArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL215c3FsL01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCitAQCAtMSw5NyArMCwwIEBACistIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUg c3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCB0aGVpciBjb3JyZWN0CistIyB2YWx1ZXMgbWln aHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29y ZGluZ2x5LgorLQorLU1ZU1FMTElCRElSID0gLUwvdXNyL2xpYi9teXNxbAorLU1ZU1FMTElCUyA9 IC1sbXlzcWxjbGllbnQgLWx6CistTVlTUUxJTkNMVURFRElSID0gLUkvdXNyL2luY2x1ZGUvbXlz cWwKKy0KKy0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVuZGVudCBvZiB0aGUg dGFyZ2V0IGVudmlyb25tZW50LgorLQorLUNPTVBJTEVSID0gZysrCistQ1hYRkxBR1MgPSAtV2Fs bCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKKy1DWFhGTEFHU1NPID0gJHtDWFhGTEFHU30gLWZQ SUMKKy1JTkNMVURFRElSUyA9IC1JLi4vLi4vY29yZSAke01ZU1FMSU5DTFVERURJUn0KKy0KKy0K Ky1PQkpFQ1RTID0gYmxvYi5vIGZhY3RvcnkubyByb3ctaWQubyBzZXNzaW9uLm8gc3RhbmRhcmQt aW50by10eXBlLm8gXAorLQlzdGFuZGFyZC11c2UtdHlwZS5vIHN0YXRlbWVudC5vIHZlY3Rvci1p bnRvLXR5cGUubyB2ZWN0b3ItdXNlLXR5cGUubyBcCistCWNvbW1vbi5vCistCistCistT0JKRUNU U1NPID0gYmxvYi1zLm8gZmFjdG9yeS1zLm8gcm93LWlkLXMubyBzZXNzaW9uLXMubyBcCistCXN0 YW5kYXJkLWludG8tdHlwZS1zLm8gc3RhbmRhcmQtdXNlLXR5cGUtcy5vIHN0YXRlbWVudC1zLm8g XAorLQl2ZWN0b3ItaW50by10eXBlLXMubyB2ZWN0b3ItdXNlLXR5cGUtcy5vIGNvbW1vbi1zLm8K Ky0KKy0KKy1saWJzb2NpX215c3FsLmEgOiAke09CSkVDVFN9CistCWFyIHJ2ICRAICQ/CistCXJt ICoubworLQorLQorLWJsb2IubyA6IGJsb2IuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9CistCistY29tbW9uLm8gOiBjb21tb24uY3BwCistCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistZmFjdG9yeS5vIDog ZmFjdG9yeS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElS U30KKy0KKy1yb3ctaWQubyA6IHJvdy1pZC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhG TEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zZXNzaW9uLm8gOiBzZXNzaW9uLmNwcAorLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLWlu dG8tdHlwZS5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAk e0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLXVzZS10eXBlLm8gOiBzdGFu ZGFyZC11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KKy0KKy1zdGF0ZW1lbnQubyA6IHN0YXRlbWVudC5jcHAKKy0JJHtDT01QSUxFUn0g LWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3ItaW50by10eXBlLm8g OiB2ZWN0b3ItaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAk e0lOQ0xVREVESVJTfQorLQorLXZlY3Rvci11c2UtdHlwZS5vIDogdmVjdG9yLXVzZS10eXBlLmNw cAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXNo YXJlZCA6ICR7T0JKRUNUU1NPfQorLQkke0NPTVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfbXlz cWwuc28gJHtPQkpFQ1RTU099CistCXJtICoubworLQorLWJsb2Itcy5vIDogYmxvYi5jcHAKKy0J JHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQor LWNvbW1vbi1zLm8gOiBjb21tb24uY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hY RkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1mYWN0b3J5LXMubyA6IGZhY3RvcnkuY3BwCist CSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0K Ky1yb3ctaWQtcy5vIDogcm93LWlkLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NY WEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistc2Vzc2lvbi1zLm8gOiBzZXNzaW9uLmNwcAor LQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Cist Cistc3RhbmRhcmQtaW50by10eXBlLXMubyA6IHN0YW5kYXJkLWludG8tdHlwZS5jcHAKKy0JJHtD T01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXN0 YW5kYXJkLXVzZS10eXBlLXMubyA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVS fSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistc3RhdGVtZW50 LXMubyA6IHN0YXRlbWVudC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFH U1NPfSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rvci1pbnRvLXR5cGUtcy5vIDogdmVjdG9yLWlu dG8tdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lO Q0xVREVESVJTfQorLQorLXZlY3Rvci11c2UtdHlwZS1zLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3Bw CistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30K Ky0KKy0KKy1jbGVhbiA6CistCXJtIC1mIGxpYnNvY2lfbXlzcWwuYSBsaWJzb2NpX215c3FsLnNv CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmls ZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5pbgor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuaW4JMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5pbgkyMDExLTAyLTA4IDIyOjM5OjU2LjAwMDAw MDAwMCArMDEwMAorQEAgLTAsMCArMSw4OTcgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBi eSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRA CisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTks IDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4 LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyBJbmMuCisrIyBUaGlzIE1ha2Vm aWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysj IGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQs CisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGlj ZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQ QVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorKworKworK1ZQQVRIID0gQHNyY2Rp ckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxp YmRpcikvQFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VA CisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAm JiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFs bF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChp bnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNm b3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BS RV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgor K1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9 IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoYW1fX3Br Z2luY2x1ZGVfSEVBREVSU19ESVNUKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAorKwkkKHNyY2Rp cikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMubWsgXAorKwkkKHRvcF9zcmNkaXIpL01h a2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvbXlzcWwKKytBQ0xPQ0FMX000 ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9w X3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf bXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29u ZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAk KENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRp cnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9z b2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBBVEhf RklMRVMgPQorK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNk aXIpIiB8IHNlZCAnc3wufC58ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisr ICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8 ImA7OyBcCisrICAgICopIGY9JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3RyaXBfZGlyID0gZj1g ZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CisrYW1fX2luc3RhbGxfbWF4ID0gNDAKKyth bV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAorKyAgc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGly KSIgfCBzZWQgJ3MvW10uW14kJFxcKnxdL1xcXFwmL2cnYAorK2FtX19ub2Jhc2Vfc3RyaXAgPSBc CisrICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRz cmNkaXJzdHJpcC98fCIKKythbV9fbm9iYXNlX2xpc3QgPSAkKGFtX19ub2Jhc2Vfc3RyaXBfc2V0 dXApOyBcCisrICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAor KyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAu KlwpL1teL10qJCQsXDEsJyB8IFwKKysgICQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiIg fSB7IGZpbGVzWyQkMl0gPSBmaWxlc1skJDJdICIgIiAkJDE7IFwKKysgICAgaWYgKCsrblskJDJd ID09ICQoYW1fX2luc3RhbGxfbWF4KSkgXAorKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJd OyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKysgICAgRU5EIHsgZm9yIChkaXIg aW4gZmlsZXMpIHByaW50IGRpciwgZmlsZXNbZGlyXSB9JworK2FtX19iYXNlX2xpc3QgPSBcCisr ICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAor KyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJworK2FtX19pbnN0YWxsZGlycyA9 ICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrTFRM SUJSQVJJRVMgPSAkKGxpYl9MVExJQlJBUklFUykKKytsaWJzb2NpX215c3FsX2xhX0RFUEVOREVO Q0lFUyA9CisrYW1fX2xpYnNvY2lfbXlzcWxfbGFfU09VUkNFU19ESVNUID0gIFwKKysJJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oIFwKKysJJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9ibG9iLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9jb21tb24uY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Zh Y3RvcnkuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5j cHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAgXAor KwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNw cCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlw ZS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNw cCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBl LmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5 cGUuY3BwCisrYW1fX29iamVjdHNfMSA9CisrYW1fX29iamVjdHNfMiA9IGxpYnNvY2lfbXlzcWxf bGEtYmxvYi5sbyBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyBcCisrCWxpYnNvY2lfbXlzcWxf bGEtZmFjdG9yeS5sbyBsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbyBcCisrCWxpYnNvY2lfbXlz cWxfbGEtc2Vzc2lvbi5sbyBcCisrCWxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBl LmxvIFwKKysJbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBcCisrCWxpYnNv Y2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvIFwKKysJbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50 by10eXBlLmxvIFwKKysJbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8KKytASEFW RV9NWVNRTF9UUlVFQGFtX2xpYnNvY2lfbXlzcWxfbGFfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNf MSkgXAorK0BIQVZFX01ZU1FMX1RSVUVACSQoYW1fX29iamVjdHNfMikKKytsaWJzb2NpX215c3Fs X2xhX09CSkVDVFMgPSAkKGFtX2xpYnNvY2lfbXlzcWxfbGFfT0JKRUNUUykKKytsaWJzb2NpX215 c3FsX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAor KwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAorKwkkKGxpYnNvY2lfbXlz cWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIFwKKysJJChsaWJzb2NpX215c3FsX2xhX0xERkxB R1MpICQoTERGTEFHUykgLW8gJEAKKytASEFWRV9NWVNRTF9UUlVFQGFtX2xpYnNvY2lfbXlzcWxf bGFfcnBhdGggPSAtcnBhdGggJChsaWJkaXIpCisrREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9f aXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQorK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9z cmNkaXIpL2NvbmZpZy9kZXBjb21wCisrYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKKyth bV9fbXYgPSBtdiAtZgorK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9D WFhGTEFHUykgJChDWFhGTEFHUykKKytMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrQ1hYTEQg PSAkKENYWCkKKytDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxB R1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAorKwkkKExERkxBR1MpIC1vICRACisrQ09N UElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSBcCisrCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytMVENP TVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFH UykgJChDRkxBR1MpCisrQ0NMRCA9ICQoQ0MpCisrTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0Mg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ0NM RCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAt byAkQAorK1NPVVJDRVMgPSAkKGxpYnNvY2lfbXlzcWxfbGFfU09VUkNFUykKKytESVNUX1NPVVJD RVMgPSAkKGFtX19saWJzb2NpX215c3FsX2xhX1NPVVJDRVNfRElTVCkKKytSRUNVUlNJVkVfVEFS R0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlo dG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJ aW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxs LWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1y ZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0 YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwK KysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKKythbV9fcGtnaW5jbHVkZV9IRUFE RVJTX0RJU1QgPSAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1t eXNxbC5oCisrSEVBREVSUyA9ICQocGtnaW5jbHVkZV9IRUFERVJTKQorK1JFQ1VSU0lWRV9DTEVB Tl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBk aXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrQU1fUkVDVVJT SVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCisrCSQoUkVD VVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBc CisrCWRpc3RkaXIKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElS UyA9ICQoU1VCRElSUykKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNF UykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK2FtX19yZWxhdGl2aXplID0gXAorKyAgZGly MD1gcHdkYDsgXAorKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCisrICBz ZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAorKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQk LFwxLCc7IFwKKysgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAorKyAgd2hpbGUgdGVz dCAtbiAiJCRkaXIxIjsgZG8gXAorKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAi JCRzZWRfZmlyc3QiYDsgXAorKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAor KyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCisrICAgICAgICBkaXIyPWBl Y2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKKysgICAgICAg IGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAorKyAgICAg IGVsc2UgXAorKyAgICAgICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9m aXJzdCJgOyBcCisrICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4g XAorKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7 IFwKKysgICAgICAgIGVsc2UgXAorKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCisrICAg ICAgICBmaTsgXAorKyAgICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKKysgICAgICBm aTsgXAorKyAgICBmaTsgXAorKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNl ZF9yZXN0ImA7IFwKKysgIGRvbmU7IFwKKysgIHJlbGRpcj0iJCRkaXIyIgorK3BrZ2luY2x1ZGVk aXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0g QEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIg PSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JP T1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09T VF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNU RU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytC T09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElC QAorK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAorK0JPT1NU X1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09T VF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJP T1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJ WkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytC T09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9 IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJP T1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVS U0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05f TElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENG TEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZM QUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklH QAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQ UFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQ TU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9 IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVU SUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NA CisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQ QAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZ X1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lO U1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RB TExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFM TF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JB TUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpT QAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAor K0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1B S0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZM QUdTQAorK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAorK01ZU1FMX0RJUlMgPSBATVlTUUxf RElSU0AKKytNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNR TF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBP QkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNA CisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9M REZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JB Q0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAK KytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdS RVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9 IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAor K1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdF X1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQ RVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9T VEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQ T1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVS U0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytTRUQgPSBA U0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVB REVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9 IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0g QFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0g QGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fi c190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAor K2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklO QAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9f bGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190 YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxk ID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBi dWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxk X3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisr ZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2Rp ciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlk aXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhA CisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9h bGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9z dF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVk aXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBp bnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisr bGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9j YWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJf cCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIg PSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9 IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBA c2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0 YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAor K3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3Bf YnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2Rp ciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRv cF9zcmNkaXIpCisrYmNrX215c3FsX2hfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCisrCisrYmNrX215c3FsX2NjX3NvdXJj ZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5j cHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5j cHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3Rvcnku Y3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQu Y3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9u LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRh cmQtaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorKworK01B SU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytTVUJESVJTID0gLiB0ZXN0CisrQEhB VkVfTVlTUUxfVFJVRUBsaWJfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX215c3FsLmxhCisrQEhBVkVf TVlTUUxfVFJVRUBsaWJzb2NpX215c3FsX2xhX1NPVVJDRVMgPSAkKGJja19teXNxbF9oX3NvdXJj ZXMpICQoYmNrX215c3FsX2NjX3NvdXJjZXMpIAorK0BIQVZFX01ZU1FMX1RSVUVAbGlic29jaV9t eXNxbF9sYV9DWFhGTEFHUyA9ICQoTVlTUUxfQ0ZMQUdTKQorK0BIQVZFX01ZU1FMX1RSVUVAbGli c29jaV9teXNxbF9sYV9MSUJBREQgPSAKKytASEFWRV9NWVNRTF9UUlVFQGxpYnNvY2lfbXlzcWxf bGFfTERGTEFHUyA9IFwKKytASEFWRV9NWVNRTF9UUlVFQAkkKEJPT1NUX0xJQlMpICQoQk9PU1Rf REFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCisrQEhBVkVfTVlT UUxfVFJVRUAJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorKworK0BI QVZFX01ZU1FMX1RSVUVAcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAorK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFQHNv Y2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrQFNPQ0lfSEVBREVSU19CVVJJRURfVFJV RUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsCisr YWxsOiBhbGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8g Lm8gLm9iagorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAk KHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19j b25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19j b25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisr CSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7 IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hv ICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL215 c3FsL01ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChB VVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZQorKy5QUkVDSU9VUzog TWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGly KS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikg XAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19t YXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcu c3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7Cisr CisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJl ICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29u ZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFt X19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisraW5zdGFs bC1saWJMVExJQlJBUklFUzogJChsaWJfTFRMSUJSQVJJRVMpCisrCUAkKE5PUk1BTF9JTlNUQUxM KQorKwl0ZXN0IC16ICIkKGxpYmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGxpYmRp cikiCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyB0ZXN0IC1uICIkKGxpYmRpcikiIHx8 IGxpc3Q9OyBcCisrCWxpc3QyPTsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAt ZiAkJHA7IHRoZW4gXAorKwkgICAgbGlzdDI9IiQkbGlzdDIgJCRwIjsgXAorKwkgIGVsc2UgOjsg Zmk7IFwKKysJZG9uZTsgXAorKwl0ZXN0IC16ICIkJGxpc3QyIiB8fCB7IFwKKysJICBlY2hvICIg JChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0 YWxsICQoSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICQkbGlzdDIgJyQoREVTVERJUikk KGxpYmRpciknIjsgXAorKwkgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAk JGxpc3QyICIkKERFU1RESVIpJChsaWJkaXIpIjsgXAorKwl9CisrCisrdW5pbnN0YWxsLWxpYkxU TElCUkFSSUVTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChsaWJfTFRMSUJS QVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0PTsgXAorKwlmb3IgcCBpbiAkJGxp c3Q7IGRvIFwKKysJICAkKGFtX19zdHJpcF9kaXIpIFwKKysJICBlY2hvICIgJChMSUJUT09MKSAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYg JyQoREVTVERJUikkKGxpYmRpcikvJCRmJyI7IFwKKysJICAkKExJQlRPT0wpICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAiJChERVNURElS KSQobGliZGlyKS8kJGYiOyBcCisrCWRvbmUKKysKKytjbGVhbi1saWJMVExJQlJBUklFUzoKKysJ LXRlc3QgLXogIiQobGliX0xUTElCUkFSSUVTKSIgfHwgcm0gLWYgJChsaWJfTFRMSUJSQVJJRVMp CisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJ ICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCisrCSAgdGVzdCAi JCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCisrCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3Nv X2xvY2F0aW9uc1wiIjsgXAorKwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKKysJ ZG9uZQorK2xpYnNvY2lfbXlzcWwubGE6ICQobGlic29jaV9teXNxbF9sYV9PQkpFQ1RTKSAkKGxp YnNvY2lfbXlzcWxfbGFfREVQRU5ERU5DSUVTKSAKKysJJChsaWJzb2NpX215c3FsX2xhX0xJTksp ICQoYW1fbGlic29jaV9teXNxbF9sYV9ycGF0aCkgJChsaWJzb2NpX215c3FsX2xhX09CSkVDVFMp ICQobGlic29jaV9teXNxbF9sYV9MSUJBREQpICQoTElCUykKKysKKyttb3N0bHljbGVhbi1jb21w aWxlOgorKwktcm0gLWYgKi4kKE9CSkVYVCkKKysKKytkaXN0Y2xlYW4tY29tcGlsZToKKysJLXJt IC1mICoudGFiLmMKKysKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9teXNxbF9sYS1ibG9iLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEt Y29tbW9uLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1 b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAor K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X215c3FsX2xhLXJvdy1pZC5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVk ZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXNlc3Npb24uUGxvQGFt X19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJ UikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKKytA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9t eXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBh bV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YXRl bWVudC5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90 ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvQGFtX19x dW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikv bGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKKysKKysuY3Bw Lm86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAg LU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5v IEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK KytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKysu Y3BwLm9iajoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1E IC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElS KS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcg b2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJ TEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKysKKysuY3BwLmxvOgorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElS KS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQo REVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFD S1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrbGlic29jaV9t eXNxbF9sYS1ibG9iLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5j cHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215 c3FsX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxv Yi5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5UcG8gJChE RVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Js b2IuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxf bGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Js b2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvYmxvYi5jcHAKKysKKytsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbzogJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyAtTUQgLU1Q IC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1jb21tb24uVHBvIC1jIC1vIGxpYnNvY2lf bXlzcWxfbGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvY29tbW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9f bXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWNvbW1vbi5UcG8gJChERVBESVIpL2xpYnNv Y2lfbXlzcWxfbGEtY29tbW9uLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCcg b2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFD S1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf bXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtY29t bW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9u LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL2NvbW1vbi5jcHAKKysKKytsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG86ICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbyAtTUQg LU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LlRwbyAtYyAtbyBsaWJz b2NpX215c3FsX2xhLWZhY3RvcnkubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC9mYWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LlRwbyAkKERFUERJ UikvbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFj dG9yeS5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LmxvJyBsaWJ0b29sPXll cyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA CisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9t eXNxbF9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEtcm93LWlk LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcAorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtcm93 LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXJvdy1pZC5UcG8g LWMgLW8gbGlic29jaV9teXNxbF9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLlRwbyAk KERFUERJUikvbGlic29jaV9teXNxbF9sYS1yb3ctaWQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9yb3ctaWQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29j aV9teXNxbF9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEtc2Vzc2lv bi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1z ZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXNlc3Npb24u VHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXNlc3Np b24uVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXNlc3Npb24uUGxvCisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC9zZXNzaW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXNlc3Npb24u bG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt YyAtbyBsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCisrCisrbGlic29jaV9t eXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo TElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8g LU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBl LlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuVHBvICQoREVQ RElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5QbG8KKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9s YS1zdGFuZGFyZC1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhE RVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8t dHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5k YXJkLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrCisrbGlic29jaV9teXNx bF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gLU1EIC1N UCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUuVHBvIC1j IC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFy ZC11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElS KS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29j aV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0 YW5kYXJkLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVz ZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp ICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3N0YW5kYXJkLXVzZS10eXBlLmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50Lmxv OiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcAorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc3Rh dGVtZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YXRlbWVu dC5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfbXlzcWxf bGEtc3RhdGVtZW50LlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQuUGxv CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlz cWxfbGEtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVt ZW50LmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbzogJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS12ZWN0 b3ItaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZl Y3Rvci1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlw ZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1p bnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBv ICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvCisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3Fs X2xhLXZlY3Rvci1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhE RVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5 cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3It aW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrCisrbGlic29jaV9teXNxbF9sYS12 ZWN0b3ItdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0 b3ItdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBE SVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215 c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12 ZWN0b3ItdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2Ut dHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIG9iamVj dD0nbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xh LXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCisrCisrbW9zdGx5 Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0g LXJmIC5saWJzIF9saWJzCisraW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzogJChwa2dpbmNsdWRl X0hFQURFUlMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKHBrZ2luY2x1ZGVk aXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKKysJQGxpc3Q9 JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxp c3Q9OyBcCisrCWZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRo ZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisrCSAgZWNobyAiJCRkJCRwIjsgXAor Kwlkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKKysJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAor KwkgIGVjaG8gIiAkKElOU1RBTExfSEVBREVSKSAkJGZpbGVzICckKERFU1RESVIpJChwa2dpbmNs dWRlZGlyKSciOyBcCisrCSAgJChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAiJChERVNURElSKSQo cGtnaW5jbHVkZWRpcikiIHx8IGV4aXQgJCQ/OyBcCisrCWRvbmUKKysKKyt1bmluc3RhbGwtcGtn aW5jbHVkZUhFQURFUlM6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0PSckKHBrZ2lu Y2x1ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAor KwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICQkcDsgZG9uZSB8IHNlZCAtZSAnc3xe LiovfHwnYDsgXAorKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKKysJZWNobyAiICgg Y2QgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwK KysJY2QgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIiAmJiBybSAtZiAkJGZpbGVzCisrCisr IyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7 IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRo cm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2 YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZh cmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisr IyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3 aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQg dmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMp OgorKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdT OyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAg ICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJ ZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsg XAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBl Y2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207 IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkg ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZp OyB0ZXN0IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBm YWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwK KysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikg ZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vl bj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1j bGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJ UlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJl dj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2 IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9y IHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1 YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9j YWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3Rhcmdl dD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZh aWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6Cisr CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3Qg IiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIg PSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3Rh Z3MpOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChU QUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc CisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0g MTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisr VEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5E RU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJc2V0IHg7IFwKKysJaGVyZT1g cHdkYDsgXAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYv bnVsbCAyPiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwK KysJICBlbXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1 ZGU7IFwKKysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRo ZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAg IHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJ ICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlzaGlmdDsgXAorKwlpZiB0ZXN0IC16ICIkKEVU QUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5p cXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhl biBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFH U19BUkdTKSBcCisrCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisrCSAgZWxzZSBcCisrCSAgICAk KEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisr CSAgICAgICQkdW5pcXVlOyBcCisrCSAgZmk7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFH UzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVO Q0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCWxpc3Q9JyQoU09VUkNFUykgJChI RUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQk bGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBl Y2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmls ZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0 eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENU QUdTX0FSR1MpJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1f Q1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR1bmlxdWUKKysKKytHVEFHUzoK KysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiAkKGFt X19jZCkgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRo ZXJlIgorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1Mg R1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3Ry aXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisr CXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwq XS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9 YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1l ICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3Ry aXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisr CSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAn L1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11 YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAg aWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChz cmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBk aXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYg dGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKysJICAgICAgZmluZCAiJChkaXN0 ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7 OyBcCisrCSAgICBmaTsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRl c3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQk ZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICAgICAgZmluZCAiJChkaXN0 ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7 OyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRk aXIiIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8k JGZpbGUiIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBc CisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1Rf U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3Vi ZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAg ICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIp LyQkc3ViZGlyIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld19kaXN0 ZGlyPSQkcmVsZGlyOyBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGly KSI7IFwKKysJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisrCSAgICBuZXdfdG9wX2Rpc3RkaXI9 JCRyZWxkaXI7IFwKKysJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19k aXN0ZGlyIiBcXCI7IFwKKysJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1f X3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKKysJ ICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAorKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCisrCSAg ICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTog XAorKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkJYW1fX3NraXBfbW9kZV9maXg9OiBc CisrCSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAor Kwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwt YW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKKytpbnN0YWxsZGlyczogaW5z dGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisrCWZvciBkaXIgaW4gIiQoREVT VERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKKysJICB0 ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisrCWRvbmUKKytpbnN0YWxs OiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2 ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5p bnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFN X01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxj aGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElO U1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAg ICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFs bAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xl YW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYg JChDT05GSUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16 ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQ QVRIX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMg Y29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQg ZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4i CisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJ TkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNs ZWFuLWdlbmVyaWMgY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCisrCW1vc3Rs eWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtcmYg Li8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBk aXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisr CisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJz aXZlCisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06 CisrCisraW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisraW5z dGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZHZpLWFtOgorKwor K2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUworKworK2luc3RhbGwtaHRt bDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaHRtbC1hbToKKysKKytpbnN0 YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm8tYW06Cisr CisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQor KworK2luc3RhbGwtcGRmLWFtOgorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZl CisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5l ci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1yZiAuLyQoREVQRElS KQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0g bWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJl Y3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNs ZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJz aXZlCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1 bmluc3RhbGwtYW06IHVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVk ZUhFQURFUlMKKysKKysuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJ VkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlw IHRhZ3MtcmVjdXJzaXZlCisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAk KFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwtYW0gY2hlY2sgY2hl Y2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisrCWNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFu LWxpYnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwKKysJZGlzdGNsZWFuIGRpc3RjbGVhbi1j b21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFu LXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8gaW5mby1hbSBp bnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1kYXRhLWFtIGluc3Rh bGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3RhbGwtZXhlYy1hbSBp bnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisrCWluc3RhbGwtaW5m by1hbSBpbnN0YWxsLWxpYkxUTElCUkFSSUVTIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKKysJ aW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUyBpbnN0YWxsLXBzIFwKKysJ aW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0g XAorKwlpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFp bnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgXAor Kwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBw cy1hbSBcCisrCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSBcCisr CXVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysK KytAU0VUX01BS0VACisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtl IHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1p dCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zb3VyY2VzLm1rIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3NvdXJjZXMubWsKKy0tLSBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9teXNxbC9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAw CitAQCAtMCwwICsxLDE0IEBACisrYmNrX215c3FsX2hfc291cmNlcyA9IFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uaCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCisrYmNrX215c3FsX2Nj X3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv YmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Nv bW1vbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Zh Y3RvcnkuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9y b3ctaWQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9z ZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv c3RhbmRhcmQtaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAor ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtl ZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2Vm aWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01h a2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5hbQkyMDEwLTAx LTIzIDE0OjQzOjE4LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSwxOCBAQAorKyMjIGJhY2tl bmQvbXlzcWwvdGVzdCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKKysKKytNQUlOVEFJTkVS Q0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisraWYgUlVOX1RFU1RTCisrICBub2luc3RfUFJP R1JBTVMgPSB0ZXN0X215c3FsCisrZW5kaWYKKysKKyt0ZXN0X215c3FsX1NPVVJDRVMgPSAkKG15 c3FsX3Rlc3RfY2Nfc291cmNlcykKKyt0ZXN0X215c3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxB R1MpCisrdGVzdF9teXNxbF9MREFERCA9CisrdGVzdF9teXNxbF9MREZMQUdTID0gJCh0b3BfYnVp bGRkaXIpL3NvY2kvY29yZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCisrCQkkKHRvcF9idWlsZGRp cikvc29jaS9iYWNrZW5kcy9teXNxbC9saWJzb2NpX215c3FsLmxhIFwKKysJCSQoTVlTUUxfTElC UykKKysKKysjbm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQobXlzcWxfdGVzdF9oX3NvdXJj ZXMpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0 L01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rl c3QvTWFrZWZpbGUuYmFzaWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMjAxMS0wMi0wOSAwMDozMDozMi41OTk5MTYzNzMgKzAx MDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2Vm aWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCitAQCAtMSwyMiAr MCwwIEBACistIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUgc3BlY2lmaWMgdG8gdGhpcyBi YWNrZW5kIGFuZCB0aGVpciBjb3JyZWN0CistIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIg ZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgorLQorLU1ZU1FM TElCRElSID0gLUwvdXNyL2xpYi9teXNxbAorLU1ZU1FMTElCUyA9IC1sbXlzcWxjbGllbnQgLWx6 CistTVlTUUxJTkNMVURFRElSID0gLUkvdXNyL2luY2x1ZGUvbXlzcWwKKy0KKy0jIFRoZSByZXN0 IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVuZGVudCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50 LgorLQorLUNPTVBJTEVSID0gZysrCistQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1s b25nLWxvbmcKKy1JTkNMVURFRElSUyA9IC1JLi4gLUkuLi8uLi8uLi9jb3JlICR7TVlTUUxJTkNM VURFRElSfQorLUxJQkRJUlMgPSAtTC4uIC1MLi4vLi4vLi4vY29yZSAke01ZU1FMTElCRElSfQor LUxJQlMgPSAtbHNvY2lfY29yZSAtbHNvY2lfbXlzcWwgLWxkbCAke01ZU1FMTElCU30KKy0KKy0K Ky10ZXN0LW15c3FsIDogdGVzdC1teXNxbC5jcHAKKy0JJHtDT01QSUxFUn0gLW8gJEAgJD8gJHtD WFhGTEFHU30gJHtJTkNMVURFRElSU30gJHtMSUJESVJTfSAke0xJQlN9CistCistCistY2xlYW4g OgorLQlybSAtZiB0ZXN0LW15c3FsCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90 ZXN0L01ha2VmaWxlLmluCTIwMTEtMDItMDggMjI6Mzk6NTYuMDAwMDAwMDAwICswMTAwCitAQCAt MCwwICsxLDU1NyBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEu MSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdo dCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAw MiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVk IHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0 aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4K KysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50 IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9T RS4KKysKKytAU0VUX01BS0VACisrCisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAk KGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNL QUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJleGVjZGlyID0g JChsaWJleGVjZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9O Ky59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxs X3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisr aW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAk KElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisr Tk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgor K05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFM TCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAor K0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5p biBcCisrCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9u CisrQFJVTl9URVNUU19UUlVFQG5vaW5zdF9QUk9HUkFNUyA9IHRlc3RfbXlzcWwkKEVYRUVYVCkK KytzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QKKytBQ0xPQ0FMX000ID0gJCh0b3Bf c3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2Nw cHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRz dWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFj CisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VS RV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGlu c3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZp Zy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQor K1BST0dSQU1TID0gJChub2luc3RfUFJPR1JBTVMpCisrYW1fX29iamVjdHNfMSA9IHRlc3RfbXlz cWwtdGVzdC1teXNxbC4kKE9CSkVYVCkKKythbV90ZXN0X215c3FsX09CSkVDVFMgPSAkKGFtX19v YmplY3RzXzEpCisrdGVzdF9teXNxbF9PQkpFQ1RTID0gJChhbV90ZXN0X215c3FsX09CSkVDVFMp CisrdGVzdF9teXNxbF9ERVBFTkRFTkNJRVMgPQorK3Rlc3RfbXlzcWxfTElOSyA9ICQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9bGluayAkKENYWExEKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1MpIFwKKysJJChDWFhGTEFHUykg JCh0ZXN0X215c3FsX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKKytERUZBVUxUX0lOQ0xVREVT ID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9ICQoU0hF TEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKKythbV9fZGVwZmlsZXNfbWF5YmUgPSBk ZXBmaWxlcworK2FtX19tdiA9IG12IC1mCisrQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQorK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp IFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFH UykKKytDWFhMRCA9ICQoQ1hYKQorK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChDWFhMRCkg JChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERGTEFHUykg LW8gJEAKKytTT1VSQ0VTID0gJCh0ZXN0X215c3FsX1NPVVJDRVMpCisrRElTVF9TT1VSQ0VTID0g JCh0ZXN0X215c3FsX1NPVVJDRVMpCisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytE SVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChF WFRSQV9ESVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9 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 TkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1VSTCA9 IEBQQUNLQUdFX1VSTEAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BB VEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05G SUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdT QAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZM QUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdS RVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrU0VEID0gQFNFREAKKytTRVRfTUFL RSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBM T0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fi c19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAor K2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9 IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBA YWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVk ZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAor K2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRh ciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKyti dWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1 aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVp bGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0g QGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAor K2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29r ID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdz X29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9j cHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhv c3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVk aXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKyts YXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBA bGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBA bG9jYWxzdGF0ZWRpckAKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAK KytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytw cmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFu c2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2Vk X29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNk aXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMg PSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAK Kyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2Rp ckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK215 c3FsX3Rlc3RfaF9zb3VyY2VzID0gCisrbXlzcWxfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKKytNQUlOVEFJTkVS Q0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrdGVzdF9teXNxbF9TT1VSQ0VTID0gJChteXNxbF90 ZXN0X2NjX3NvdXJjZXMpCisrdGVzdF9teXNxbF9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKQor K3Rlc3RfbXlzcWxfTERBREQgPSAKKyt0ZXN0X215c3FsX0xERkxBR1MgPSAkKHRvcF9idWlsZGRp cikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKKysJCSQodG9wX2J1aWxkZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL2xpYnNvY2lfbXlzcWwubGEgXAorKwkJJChNWVNRTF9MSUJTKQor KworK2FsbDogYWxsLWFtCisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8g Lm9iagorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRv cF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25m aWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25m aWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAg ICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07 IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcg Y2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL215c3Fs L3Rlc3QvTWFrZWZpbGUnOyBcCisrCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAk KEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUKKysuUFJF Q0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9i dWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0 YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVw ZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwll c2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNk aXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQp OiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKGFtX19hY2xvY2FsX200X2RlcHMpOgor KworK2NsZWFuLW5vaW5zdFBST0dSQU1TOgorKwlAbGlzdD0nJChub2luc3RfUFJPR1JBTVMpJzsg dGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKysJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwK KysJcm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCisrCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwg ZXhpdCAwOyBcCisrCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8 IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKysJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKysJ cm0gLWYgJCRsaXN0CisrdGVzdF9teXNxbCQoRVhFRVhUKTogJCh0ZXN0X215c3FsX09CSkVDVFMp ICQodGVzdF9teXNxbF9ERVBFTkRFTkNJRVMpIAorKwlAcm0gLWYgdGVzdF9teXNxbCQoRVhFRVhU KQorKwkkKHRlc3RfbXlzcWxfTElOSykgJCh0ZXN0X215c3FsX09CSkVDVFMpICQodGVzdF9teXNx bF9MREFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQo T0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIuYworKworK0BB TURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0X215c3Fs LXRlc3QtbXlzcWwuUG9AYW1fX3F1b3RlQAorKworKy5jcHAubzoKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAt YyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQq LlRwbyAkKERFUERJUikvJCouUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworKy5jcHAub2JqOgorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCou VHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5v IEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK KytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFU SF9XKSAnJDwnYAorKworKy5jcHAubG86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhD T01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJ UikvJCouUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8 JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hY Q09NUElMRSkgLWMgLW8gJEAgJDwKKysKKyt0ZXN0X215c3FsLXRlc3QtbXlzcWwubzogJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1NVCB0ZXN0X215c3FsLXRlc3QtbXlzcWwubyAtTUQgLU1QIC1NRiAkKERFUERJ UikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlRwbyAtYyAtbyB0ZXN0X215c3FsLXRlc3QtbXlzcWwu byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1t eXNxbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1f X212KSAkKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlRwbyAkKERFUERJUikvdGVzdF9t eXNxbC10ZXN0LW15c3FsLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwu Y3BwJyBvYmplY3Q9J3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5vJyBsaWJ0b29sPW5vIEBBTURFUEJB Q0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtYyAtbyB0ZXN0X215c3FsLXRlc3QtbXlzcWwubyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3Qt bXlzcWwuY3BwCisrCisrdGVzdF9teXNxbC10ZXN0LW15c3FsLm9iajogJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1NVCB0ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0 X215c3FsLXRlc3QtbXlzcWwuVHBvIC1jIC1vIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vYmogYGlm IHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlz cWwuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8k KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IGZp YAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL3Rlc3RfbXlzcWwt dGVzdC1teXNxbC5UcG8gJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5QbworK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCcgb2JqZWN0PSd0ZXN0X215c3FsLXRl c3QtbXlzcWwub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X215 c3FsLXRlc3QtbXlzcWwub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IGVsc2UgJChD WUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rl c3QvdGVzdC1teXNxbC5jcHAnOyBmaWAKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0g LWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKytJ RDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSck KFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9 YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hv ICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAk KEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7 IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlt a2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogICQoSEVBREVSUykgJChT T1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1Ap CisrCXNldCB4OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0 OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8g JChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1sk JDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7 IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXNoaWZ0OyBcCisrCWlmIHRl c3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVz dCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgIGlmIHRlc3QgJCQj IC1ndCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZM QUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKysJICBlbHNl IFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdT X0FSR1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsgXAorKwlmaQorK2N0YWdzOiBD VEFHUworK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVT KSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0 OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8g JChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1sk JDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7 IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1Nf QVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFH U0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwlo ZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2Nk KSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUi CisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lN UyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1g ZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9w c3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xc XFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9y IGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8 XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98 JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAq LyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8v IWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7 IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0 ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rp cik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1g ZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0 IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIp LyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwK KysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAk JGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxl ICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIp LyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwK KysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIg fHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmls ZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJ ICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisr Y2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKQorK2luc3RhbGxk aXJzOgorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1h bQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisrdW5pbnN0YWxsOiB1bmluc3RhbGwt YW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGlu c3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxj aGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RB TExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9Q Uk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBc CisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dS QU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVy aWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3Qg LXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMp CisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFU SF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorKworK21haW50 YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBm b3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1h eSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5U QUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVh bjogY2xlYW4tYW0KKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNs ZWFuLW5vaW5zdFBST0dSQU1TIFwKKysJbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRp c3RjbGVhbi1hbQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rp c3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMg XAorKwlkaXN0Y2xlYW4tdGFncworKworK2R2aTogZHZpLWFtCisrCisrZHZpLWFtOgorKworK2h0 bWw6IGh0bWwtYW0KKysKKytodG1sLWFtOgorKworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFt OgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0K KysKKytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1o dG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWh0bWwtYW06CisrCisraW5zdGFsbC1p bmZvOiBpbnN0YWxsLWluZm8tYW0KKysKKytpbnN0YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1t YW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisrCisraW5zdGFsbC1wZGYtYW06 CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorKworK2luc3RhbGwtcHMtYW06CisrCisr aW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4t YW0KKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVy LWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9z dGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFu LWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wKKysK KytwZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMtYW0KKysKKytwcy1hbToKKysK Kyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorKwor Ky5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVh bi1nZW5lcmljIFwKKysJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBjdGFncyBk aXN0Y2xlYW4gXAorKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xl YW4tbGlidG9vbCBcCisrCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0 bWwtYW0gaW5mbyBpbmZvLWFtIFwKKysJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBp bnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAorKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4 ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCisrCWluc3RhbGwtaHRtbC1hbSBpbnN0 YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKKysJaW5zdGFsbC1wZGYgaW5z dGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKKysJaW5zdGFsbC1zdHJpcCBp bnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKysJbWFpbnRhaW5lci1j bGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorKwltb3N0bHljbGVh bi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBcCisrCXBk ZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9N QUtFQAorKworKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChteXNxbF90ZXN0X2hfc291 cmNlcykKKysKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90 IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3Ig U3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5tayBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3NvdXJjZXMubWsKKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5tawkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA2LjAw MDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyIEBACisrbXlzcWxfdGVzdF9oX3NvdXJjZXMgPQor K215c3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC90ZXN0L3Rlc3QtbXlzcWwuY3BwCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9vcmFjbGUvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYW0J MjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMjcgQEAKKysj IyBiYWNrZW5kcy9vcmFjbGUgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24KKytpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisrTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK1NVQkRJUlMgPSAuIHRlc3QKKysKKytp ZiBIQVZFX09SQUNMRQorK2xpYl9MVExJQlJBUklFUz0gbGlic29jaV9vcmFjbGUubGEKKysKKyts aWJzb2NpX29yYWNsZV9sYV9TT1VSQ0VTPSAkKGJja19vcmFjbGVfaF9zb3VyY2VzKSAkKGJja19v cmFjbGVfY2Nfc291cmNlcykgCisrbGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MgPSAkKE9SQUNM RV9PQ0lfQ0ZMQUdTKQorK2xpYnNvY2lfb3JhY2xlX2xhX0xJQkFERCA9CisrbGlic29jaV9vcmFj bGVfbGFfTERGTEFHUyA9IFwKKysJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIp ICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAorKwkkKE9SQUNMRV9PQ0lfTERGTEFHUykg XAorKwktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCisrCisrbm9iYXNl X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv c29jaS1vcmFjbGUuaAorK2VuZGlmCisraWYgU09DSV9IRUFERVJTX0JVUklFRAorK3NvY2lfaW5j bHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlCisrZWxzZQorK3Nv Y2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrZW5kaWYKKytwa2dpbmNsdWRlZGlyID0g JChzb2NpX2luY2x1ZGVfZGlyKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvb3JhY2xlL01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL29yYWNsZS9NYWtlZmlsZS5iYXNpYworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvb3JhY2xlL01ha2VmaWxlLmJhc2ljCTIwMTEtMDItMDkgMDA6MzA6MzIuNTk4OTE2MzU1 ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2Vm aWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCitAQCAtMSw5NSAr MCwwIEBACistIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGlzIHNwZWNpZmljIHRvIHRoaXMgYmFj a2VuZCBhbmQgaXRzIGNvcnJlY3QKKy0jIHZhbHVlcyBtaWdodCBkZXBlbmQgb24geW91ciBlbnZp cm9ubWVudCAtIGZlZWwgZnJlZSB0byBzZXQgaXQgYWNjb3JkaW5nbHkuCistCistT1JBQ0xFSU5D TFVERURJUiA9IC1JL3Vzci9saWIvb3JhY2xlL3hlL2FwcC9vcmFjbGUvcHJvZHVjdC8xMC4yLjAv c2VydmVyL3JkYm1zL3B1YmxpYworLQorLSMgVGhlIHJlc3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGlu ZGVwZW50ZW50IG9mIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQuCistCistQ09NUElMRVIgPSBnKysK Ky1DWFhGTEFHUyA9IC1XYWxsIC1wZWRhbnRpYyAtV25vLWxvbmctbG9uZworLUNYWEZMQUdTU08g PSAke0NYWEZMQUdTfSAtZlBJQworLUlOQ0xVREVESVJTID0gLUkuLi8uLi9jb3JlICR7T1JBQ0xF SU5DTFVERURJUn0KKy0KKy1PQkpFQ1RTID0gYmxvYi5vIGZhY3RvcnkubyByb3ctaWQubyBzZXNz aW9uLm8gc3RhbmRhcmQtaW50by10eXBlLm8gXAorLQlzdGFuZGFyZC11c2UtdHlwZS5vIHN0YXRl bWVudC5vIHZlY3Rvci1pbnRvLXR5cGUubyB2ZWN0b3ItdXNlLXR5cGUubyBcCistCWVycm9yLm8K Ky0KKy1PQkpFQ1RTU08gPSBibG9iLXMubyBmYWN0b3J5LXMubyByb3ctaWQtcy5vIHNlc3Npb24t cy5vIFwKKy0Jc3RhbmRhcmQtaW50by10eXBlLXMubyBzdGFuZGFyZC11c2UtdHlwZS1zLm8gc3Rh dGVtZW50LXMubyBcCistCXZlY3Rvci1pbnRvLXR5cGUtcy5vIHZlY3Rvci11c2UtdHlwZS1zLm8g ZXJyb3Itcy5vCistCistbGlic29jaV9vcmFjbGUuYSA6ICR7T0JKRUNUU30KKy0JYXIgcnYgJEAg JD8KKy0Jcm0gKi5vCistCistc29jaS1vcmFjbGUubyA6IHNvY2ktb3JhY2xlLmNwcCAKKy0JJHtD T01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0JCistYmxvYi5vIDog YmxvYi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30K Ky0KKy1lcnJvci5vIDogZXJyb3IuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9CistCistZmFjdG9yeS5vIDogZmFjdG9yeS5jcHAKKy0JJHtDT01QSUxF Un0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1yb3ctaWQubyA6IHJvdy1p ZC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0K Ky1zZXNzaW9uLm8gOiBzZXNzaW9uLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdT fSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLWludG8tdHlwZS5vIDogc3RhbmRhcmQtaW50 by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQorLQorLXN0YW5kYXJkLXVzZS10eXBlLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKKy0JJHtD T01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zdGF0ZW1lbnQu byA6IHN0YXRlbWVudC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KKy0KKy12ZWN0b3ItaW50by10eXBlLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAor LQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rv ci11c2UtdHlwZS5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAk e0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLQorLXNoYXJlZCA6ICR7T0JKRUNUU1NPfQor LQkke0NPTVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfb3JhY2xlLnNvICR7T0JKRUNUU1NPfQor LQlybSAqLm8KKy0KKy1ibG9iLXMubyA6IGJsb2IuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRA ICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1lcnJvci1zLm8gOiBlcnJvci5j cHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJT fQorLQorLWZhY3Rvcnktcy5vIDogZmFjdG9yeS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAg JD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXJvdy1pZC1zLm8gOiByb3ctaWQu Y3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElS U30KKy0KKy1zZXNzaW9uLXMubyA6IHNlc3Npb24uY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRA ICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC1pbnRvLXR5cGUt cy5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAk e0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtdXNlLXR5cGUtcy5vIDog c3RhbmRhcmQtdXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxB R1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGF0ZW1lbnQtcy5vIDogc3RhdGVtZW50LmNwcAor LQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Cist CistdmVjdG9yLWludG8tdHlwZS1zLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAorLQkke0NPTVBJ TEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistdmVjdG9y LXVzZS10eXBlLXMubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8g JEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLQorLWNsZWFuIDoKKy0Jcm0g LWYgKi5vIGxpYnNvY2lfb3JhY2xlLmEgbGlic29jaV9vcmFjbGUuc28KK2RpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5pbiBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L29yYWNsZS9NYWtlZmlsZS5pbgkyMDExLTAyLTA4IDIyOjM5OjU2LjAwMDAwMDAwMCArMDEwMAor QEAgLTAsMCArMSw5MDIgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAx LjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5 cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEs IDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZy ZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGlt aXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9y IHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2 ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4 dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBV UlBPU0UuCisrCisrQFNFVF9NQUtFQAorKworKworK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRh ZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tB R0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACisrYW1fX2NkID0g Q0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3Rh bGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFN ID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAt YworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9n cmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0g OgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RB TEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKyto b3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoYW1fX25vYmFzZV9wa2dpbmNs dWRlX0hFQURFUlNfRElTVCkgXAorKwkkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01h a2VmaWxlLmluIFwKKysJJChzcmNkaXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmls ZS5jb21tb24KKytzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL29yYWNsZQorK0FDTE9DQUxfTTQgPSAk KHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNx bC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09O RklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9 ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kv Y29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxF UyA9CisrYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2Rpciki IHwgc2VkICdzfC58LnxnJ2A7CisrYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKKysgICAg JChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7 IFwKKysgICAgKikgZj0kJHA7OyBcCisrICBlc2FjOworK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hv ICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKKythbV9faW5zdGFsbF9tYXggPSA0MAorK2FtX19u b2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCisrICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8 IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCisrYW1fX25vYmFzZV9zdHJpcCA9IFwKKysg IGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2Rp cnN0cmlwL3x8IgorK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7 IFwKKysgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCisrICBz ZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkv W14vXSokJCxcMSwnIHwgXAorKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsg ZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAorKyAgICBpZiAoKytuWyQkMl0gPT0g JChhbV9faW5zdGFsbF9tYXgpKSBcCisrICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5b JCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAorKyAgICBFTkQgeyBmb3IgKGRpciBpbiBm aWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCisrYW1fX2Jhc2VfbGlzdCA9IFwKKysgIHNl ZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCisrICBz ZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCisrYW1fX2luc3RhbGxkaXJzID0gIiQo REVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKKytMVExJQlJB UklFUyA9ICQobGliX0xUTElCUkFSSUVTKQorK2xpYnNvY2lfb3JhY2xlX2xhX0RFUEVOREVOQ0lF UyA9CisrYW1fX2xpYnNvY2lfb3JhY2xlX2xhX1NPVVJDRVNfRElTVCA9ICBcCisrCSQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuaCBcCisrCSQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL2Vycm9yLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv ZmFjdG9yeS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1p ZC5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3Bw IFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5 cGUuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11 c2UtdHlwZS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRl bWVudC5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1p bnRvLXR5cGUuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0 b3ItdXNlLXR5cGUuY3BwCisrYW1fX29iamVjdHNfMSA9CisrYW1fX29iamVjdHNfMiA9IGxpYnNv Y2lfb3JhY2xlX2xhLWJsb2IubG8gbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8gXAorKwlsaWJz b2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyBcCisr CWxpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS1zdGFu ZGFyZC1pbnRvLXR5cGUubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlw ZS5sbyBcCisrCWxpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyBcCisrCWxpYnNvY2lfb3Jh Y2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3It dXNlLXR5cGUubG8KKytASEFWRV9PUkFDTEVfVFJVRUBhbV9saWJzb2NpX29yYWNsZV9sYV9PQkpF Q1RTID0gJChhbV9fb2JqZWN0c18xKSBcCisrQEhBVkVfT1JBQ0xFX1RSVUVACSQoYW1fX29iamVj dHNfMikKKytsaWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX29yYWNsZV9s YV9PQkpFQ1RTKQorK2xpYnNvY2lfb3JhY2xlX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgXAorKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChD WFhMRCkgXAorKwkkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCisr CSQobGlic29jaV9vcmFjbGVfbGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorK0BIQVZFX09S QUNMRV9UUlVFQGFtX2xpYnNvY2lfb3JhY2xlX2xhX3JwYXRoID0gLXJwYXRoICQobGliZGlyKQor K0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kK KytkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAorK2FtX19k ZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCisrYW1fX212ID0gbXYgLWYKKytDWFhDT01QSUxFID0g JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrTFRDWFhD T01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSBcCisrCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NY WEZMQUdTKSAkKENYWEZMQUdTKQorK0NYWExEID0gJChDWFgpCisrQ1hYTElOSyA9ICQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1v ZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1Mp IFwKKysJJChMREZMQUdTKSAtbyAkQAorK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorKwkkKENQUEZMQUdTKSAk KEFNX0NGTEFHUykgJChDRkxBR1MpCisrTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChD QykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorK0NDTEQgPSAkKENDKQor K0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgXAorKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChB TV9MREZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytTT1VSQ0VTID0gJChsaWJzb2NpX29y YWNsZV9sYV9TT1VSQ0VTKQorK0RJU1RfU09VUkNFUyA9ICQoYW1fX2xpYnNvY2lfb3JhY2xlX2xh X1NPVVJDRVNfRElTVCkKKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2st cmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2 ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3Rh bGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5m by1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNp dmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxk aXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1y ZWN1cnNpdmUKKythbV9fbm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUID0gIFwKKysJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCisrSEVBREVSUyA9 ICQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUykKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9 IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJl Y3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0FNX1JFQ1VSU0lWRV9UQVJHRVRT ID0gJChSRUNVUlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAorKwkkKFJFQ1VSU0lWRV9DTEVB Tl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAorKwlkaXN0ZGly CisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNVQkRJ UlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5G T1MpICQoRVhUUkFfRElTVCkKKythbV9fcmVsYXRpdml6ZSA9IFwKKysgIGRpcjA9YHB3ZGA7IFwK KysgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAorKyAgc2VkX3Jlc3Q9J3Ms XlteL10qLyosLCc7IFwKKysgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCisr ICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKKysgIHdoaWxlIHRlc3QgLW4gIiQkZGly MSI7IGRvIFwKKysgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0 ImA7IFwKKysgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKKysgICAgICBpZiB0 ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4gXAorKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIw IiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisrICAgICAgICBkaXIwPWBlY2hv ICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKKysgICAgICBlbHNlIFwKKysg ICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAor KyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKKysgICAgICAg ICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICAgICAg ICBlbHNlIFwKKysgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAorKyAgICAgICAgZmk7IFwK KysgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisrICAgICAgZmk7IFwKKysgICAg Zmk7IFwKKysgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBc CisrICBkb25lOyBcCisrICByZWxkaXI9IiQkZGlyMiIKKytwa2dpbmNsdWRlZGlyID0gJChzb2Np X2luY2x1ZGVfZGlyKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytB UiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFE RVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1Mg PSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1F X0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytC T09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9 IEBCT09TVF9MSUJTQAorK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9N UElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09Q VElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJ QiA9IEBCT09TVF9QWVRIT05fTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9M SUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJA CisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVN X0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhS RUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RF U1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9P U1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9 IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQ ID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBV TklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklU X0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJ T05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hY REVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9X QAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1V VElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9 IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQg PSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0g QEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElO U1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0g PSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAor K0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBA TERACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0g QExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExO X1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytN S0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNR TF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlT UUxfTElCUyA9IEBNWVNRTF9MSUJTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAK KytOTSA9IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytP QkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9P Q0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBP UkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVS U0lPTkAKKytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9 IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BB Q0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9T VFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1VS TCA9IEBQQUNLQUdFX1VSTEAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAor K1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19D T05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZM QUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9M REZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9T VEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrU0VEID0gQFNFREAKKytTRVRf TUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBT T0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF RCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisr VVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAor K2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGly QAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2Rp ciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFgg PSBAYWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5j bHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90 QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191 bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAK KytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAor K2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisr YnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGly ID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGly QAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBz X29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0g QGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9z dF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0g QGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1 ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAK KytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIg PSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIg PSBAbG9jYWxzdGF0ZWRpckAKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJf cEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAK KytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisr c2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytz cmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxp YXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZp eEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3Ny Y2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQor K2Jja19vcmFjbGVfaF9zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9lcnJvci5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAorKworK2Jja19vcmFjbGVfY2Nfc291cmNlcyA9IFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAgXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAgXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNw cCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJk LWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCisrCisr TUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK1NVQkRJUlMgPSAuIHRlc3QKKytA SEFWRV9PUkFDTEVfVFJVRUBsaWJfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX29yYWNsZS5sYQorK0BI QVZFX09SQUNMRV9UUlVFQGxpYnNvY2lfb3JhY2xlX2xhX1NPVVJDRVMgPSAkKGJja19vcmFjbGVf aF9zb3VyY2VzKSAkKGJja19vcmFjbGVfY2Nfc291cmNlcykgCisrQEhBVkVfT1JBQ0xFX1RSVUVA bGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MgPSAkKE9SQUNMRV9PQ0lfQ0ZMQUdTKQorK0BIQVZF X09SQUNMRV9UUlVFQGxpYnNvY2lfb3JhY2xlX2xhX0xJQkFERCA9IAorK0BIQVZFX09SQUNMRV9U UlVFQGxpYnNvY2lfb3JhY2xlX2xhX0xERkxBR1MgPSBcCisrQEhBVkVfT1JBQ0xFX1RSVUVACSQo Qk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9O U19MSUIpIFwKKytASEFWRV9PUkFDTEVfVFJVRUAJJChPUkFDTEVfT0NJX0xERkxBR1MpIFwKKytA SEFWRV9PUkFDTEVfVFJVRUAJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9O KQorKworK0BIQVZFX09SQUNMRV9UUlVFQG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgKKytAU09DSV9IRUFE RVJTX0JVUklFRF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQorK0BTT0NJ X0hFQURFUlNfQlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUKKythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6Cisr LlNVRkZJWEVTOiAuY3BwIC5sbyAubyAub2JqCisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChz cmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGly KS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8g XAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikg XAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhp dCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsg XAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0t Z251IHNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkgJCh0b3Bf c3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9vcmFjbGUv TWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtl ZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwK KysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hv ICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRp cikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNf bWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAk KHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwlj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gK KysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gK KyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKGFtX19hY2xv Y2FsX200X2RlcHMpOgorK2luc3RhbGwtbGliTFRMSUJSQVJJRVM6ICQobGliX0xUTElCUkFSSUVT KQorKwlAJChOT1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAiJChsaWJkaXIpIiB8fCAkKE1LRElS X1ApICIkKERFU1RESVIpJChsaWJkaXIpIgorKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsg dGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0PTsgXAorKwlsaXN0Mj07IGZvciBwIGluICQkbGlz dDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKKysJICAgIGxpc3QyPSIkJGxpc3Qy ICQkcCI7IFwKKysJICBlbHNlIDo7IGZpOyBcCisrCWRvbmU7IFwKKysJdGVzdCAteiAiJCRsaXN0 MiIgfHwgeyBcCisrCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFH KSAkJGxpc3QyICckKERFU1RESVIpJChsaWJkaXIpJyI7IFwKKysJICAkKExJQlRPT0wpICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMKSAk KElOU1RBTExfU1RSSVBfRkxBRykgJCRsaXN0MiAiJChERVNURElSKSQobGliZGlyKSI7IFwKKysJ fQorKworK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoKKysJQCQoTk9STUFMX1VOSU5TVEFMTCkK KysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IHRlc3QgLW4gIiQobGliZGlyKSIgfHwgbGlz dD07IFwKKysJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgJChhbV9fc3RyaXBfZGlyKSBcCisr CSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9dW5pbnN0YWxsIHJtIC1mICckKERFU1RESVIpJChsaWJkaXIpLyQkZiciOyBcCisrCSAg JChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmlu c3RhbGwgcm0gLWYgIiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsgXAorKwlkb25lCisrCisrY2xl YW4tbGliTFRMSUJSQVJJRVM6CisrCS10ZXN0IC16ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJt IC1mICQobGliX0xUTElCUkFSSUVTKQorKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9y IHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10q JCR8fCdgIjsgXAorKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAorKwkgIGVj aG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKKysJICBybSAtZiAiJCR7ZGly fS9zb19sb2NhdGlvbnMiOyBcCisrCWRvbmUKKytsaWJzb2NpX29yYWNsZS5sYTogJChsaWJzb2Np X29yYWNsZV9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0RFUEVOREVOQ0lFUykgCisr CSQobGlic29jaV9vcmFjbGVfbGFfTElOSykgJChhbV9saWJzb2NpX29yYWNsZV9sYV9ycGF0aCkg JChsaWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0xJQkFERCkg JChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQor KworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIuYworKworK0BBTURFUF9UUlVF QEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1i bG9iLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3Rl QC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLlBsb0BhbV9fcXVvdGVACisrQEFN REVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3Jh Y2xlX2xhLWZhY3RvcnkuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLlBsb0BhbV9f cXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIp L2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24uUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBA YW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3Rh bmRhcmQtaW50by10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRl QCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10 eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3Rl QC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5QbG9AYW1fX3F1b3RlQAor K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVA QGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZl Y3Rvci11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAorKworKy5jcHAubzoKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRw byAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIp LyQqLlRwbyAkKERFUERJUikvJCouUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworKy5jcHAub2JqOgorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikv JCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29s PW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lH UEFUSF9XKSAnJDwnYAorKworKy5jcHAubG86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRD WFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAk PAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERF UERJUikvJCouUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExU Q1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKytsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvOiAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNs ZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8g LU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IuVHBvIC1jIC1vIGxp YnNvY2lfb3JhY2xlX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChh bV9fbXYpICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1ibG9iLlRwbyAkKERFUERJUikvbGli c29jaV9vcmFjbGVfbGEtYmxvYi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCcg b2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNL U0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9v cmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLWJs b2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvYmxvYi5jcHAKKysKKytsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbzogJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8gLU1EIC1NUCAt TUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLlRwbyAtYyAtbyBsaWJzb2NpX29y YWNsZV9sYS1lcnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9lcnJvci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZXJyb3IuVHBvICQoREVQRElSKS9saWJzb2Np X29yYWNsZV9sYS1lcnJvci5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAnIG9i amVjdD0nbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29y YWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtZXJy b3IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3Iu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL2Vycm9yLmNwcAorKworK2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG86ICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5UcG8gLWMgLW8g bGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuVHBv ICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LlBsbworK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL2ZhY3RvcnkuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG8n IGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMg LW8gbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcAorKworK2xpYnNvY2lf b3JhY2xlX2xhLXJvdy1pZC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9y b3ctaWQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxp YnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9v cmFjbGVfbGEtcm93LWlkLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1yb3ctaWQubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ct aWQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29j aV9vcmFjbGVfbGEtcm93LWlkLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlk LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAnIG9iamVjdD0nbGlic29jaV9v cmFjbGVfbGEtcm93LWlkLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5j cHAKKysKKytsaWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElC VE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8gLU1EIC1NUCAtTUYg JChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24uVHBvIC1jIC1vIGxpYnNvY2lfb3Jh Y2xlX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChh bV9fbXYpICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLlRwbyAkKERFUERJUikv bGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNz aW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvJyBsaWJ0b29sPXll cyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA CisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lf b3JhY2xlX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAKKysKKytsaWJzb2NpX29yYWNsZV9sYS1z dGFuZGFyZC1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv c3RhbmRhcmQtaW50by10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wp ICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gLU1EIC1N UCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8g LWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv c3RhbmRhcmQtaW50by10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikg JChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gJChERVBE SVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5QbG8KKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xl X2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1p bnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv c3RhbmRhcmQtaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrCisrbGlic29j aV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBl LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2Ut dHlwZS5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5 cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFt X19tdikgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAk KERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvCisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3Jh Y2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJk LXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKysKKytsaWJzb2Np X29yYWNsZV9sYS1zdGF0ZW1lbnQubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvc3RhdGVtZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1NVCBsaWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIp L2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEt c3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFt X19tdikgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5UcG8gJChERVBESVIp L2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9z dGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbycgbGli dG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCisrCisrbGlic29j aV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxv IC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBl LlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAk KERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gJChERVBESVIp L2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtdmVj dG9yLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRv LXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrCisrbGlic29jaV9vcmFjbGVfbGEtdmVj dG9yLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rv ci11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lf b3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX29yYWNs ZV9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0 b3ItdXNlLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNw cCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29j aV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNw cAorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGli dG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworK2luc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVI RUFERVJTOiAkKG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMpCisrCUAkKE5PUk1BTF9JTlNUQUxM KQorKwl0ZXN0IC16ICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIp JChwa2dpbmNsdWRlZGlyKSIKKysJQGxpc3Q9JyQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUykn OyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAorKwkkKGFtX19ub2Jhc2Vf bGlzdCkgfCB3aGlsZSByZWFkIGRpciBmaWxlczsgZG8gXAorKwkgIHhmaWxlcz07IGZvciBmaWxl IGluICQkZmlsZXM7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkZmlsZSI7IHRoZW4geGZpbGVz PSIkJHhmaWxlcyAkJGZpbGUiOyBcCisrCSAgICBlbHNlIHhmaWxlcz0iJCR4ZmlsZXMgJChzcmNk aXIpLyQkZmlsZSI7IGZpOyBkb25lOyBcCisrCSAgdGVzdCAteiAiJCR4ZmlsZXMiIHx8IHsgXAor KwkgICAgdGVzdCAieCQkZGlyIiA9IHguIHx8IHsgXAorKwkgICAgICBlY2hvICIkKE1LRElSX1Ap ICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGRpciciOyBcCisrCSAgICAgICQoTUtESVJf UCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZGlyIjsgfTsgXAorKwkgICAgZWNobyAi ICQoSU5TVEFMTF9IRUFERVIpICQkeGZpbGVzICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8k JGRpciciOyBcCisrCSAgICAkKElOU1RBTExfSEVBREVSKSAkJHhmaWxlcyAiJChERVNURElSKSQo cGtnaW5jbHVkZWRpcikvJCRkaXIiIHx8IGV4aXQgJCQ/OyB9OyBcCisrCWRvbmUKKysKKyt1bmlu c3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQor KwlAbGlzdD0nJChub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5j bHVkZWRpcikiIHx8IGxpc3Q9OyBcCisrCSQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IGZpbGVz PWAkKGFtX19ub2Jhc2Vfc3RyaXApYDsgXAorKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7 IFwKKysJZWNobyAiICggY2QgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyAmJiBybSAtZiIg JCRmaWxlcyAiKSI7IFwKKysJY2QgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIiAmJiBybSAt ZiAkJGZpbGVzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0 bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3 aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFs dWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisr IyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNv bmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBi ZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBh c3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVD VVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBp biB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1b IWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBc CisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMv LXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxp c3Q7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAg aWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAor KwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxv Y2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3Vi ZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwg ZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJu byI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwg ZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5f VEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRN QUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7 IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9u ZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0q IHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAq KSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGly IGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBl bHNlIFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsg XAorKwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNp dmUvL2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAk JHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRo ZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJ ICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2Qp ICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisr CSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFn cy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZl OgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0 ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJD RVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykg JChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8g XAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3Jj ZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9 IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3Ig KGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0 YWdzOiBUQUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMp ICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJc2V0 IHg7IFwKKysJaGVyZT1gcHdkYDsgXAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0t dmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0 YWdzLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRl X29wdGlvbj0tLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9 JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQk c3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFH UyB8fCBcCisrCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJk aXIvVEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChI RUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQk bGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBl Y2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmls ZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0 eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlzaGlmdDsgXAorKwlp ZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkg IHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICBpZiB0ZXN0 ICQkIyAtZ3QgMDsgdGhlbiBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRB R1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisrCSAg ZWxzZSBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChF VEFHU19BUkdTKSBcCisrCSAgICAgICQkdW5pcXVlOyBcCisrCSAgZmk7IFwKKysJZmkKKytjdGFn czogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAg JChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCWxpc3Q9 JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlx dWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBl Y2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJ ICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVO RCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAor Kwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENU QUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR1bmlx dWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2Rg IFwKKysJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChH VEFHU19BUkdTKSAiJCRoZXJlIgorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJ RCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVT KQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0v XFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNl ZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAor KwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUg fCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8 XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlz dF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwg XAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwK KysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2Zp bGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4g ZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsg dGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwn YDsgXAorKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKysJICAg ICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNo bW9kIHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2Rp cikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1m cFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICAg ICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNo bW9kIHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxl ICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAt ZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlz dGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisr CUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkg IGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIk KGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQk c3ViZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0 PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBk aXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwK KysJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIy PSIkKHRvcF9kaXN0ZGlyKSI7IFwKKysJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisrCSAgICBu ZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBk aXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKKysJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92 ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBk aXN0ZGlyKSI7IFwKKysJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAorKwkgICAgICAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9k aXN0ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAorKwkJYW1fX3Jl bW92ZV9kaXN0ZGlyPTogXAorKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkJYW1fX3Nr aXBfbW9kZV9maXg9OiBcCisrCSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7 IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1y ZWN1cnNpdmUKKythbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKKytp bnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisrCWZv ciBkaXIgaW4gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGly KSI7IGRvIFwKKysJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisr CWRvbmUKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFs bC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQor K3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQor KwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1h bQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3Ry aXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxM X1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RS SVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RS SVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChT VFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJp YzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJ TEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNk aXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQo Q09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoK KysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNl IgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9v bHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwg cm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisr CisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGli dG9vbCBcCisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJz aXZlCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFu LWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRp c3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0 bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2 ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW5vYmFzZV9wa2dp bmNsdWRlSEVBREVSUworKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysK KytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtbGliTFRMSUJS QVJJRVMKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKysKKytpbnN0 YWxsLWh0bWwtYW06CisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisr CisraW5zdGFsbC1pbmZvLWFtOgorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBp bnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBz OiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHMtYW06CisrCisraW5zdGFsbGNo ZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZl CisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1j bGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3Rs eWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5 Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9v bAorKworK3BkZjogcGRmLXJlY3Vyc2l2ZQorKworK3BkZi1hbToKKysKKytwczogcHMtcmVjdXJz aXZlCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtbGliTFRMSUJSQVJJ RVMgXAorKwl1bmluc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTCisrCisrLk1BS0U6ICQo UkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vy c2l2ZSBcCisrCWluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQorKworKy5Q SE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RB R1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVy aWMgXAorKwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJl Y3Vyc2l2ZSBcCisrCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJp YyBcCisrCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1h bSBodG1sIFwKKysJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3Rh bGwtZGF0YSBcCisrCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBp bnN0YWxsLWV4ZWMgXAorKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRt bC1hbSBpbnN0YWxsLWluZm8gXAorKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1saWJMVExJQlJB UklFUyBpbnN0YWxsLW1hbiBcCisrCWluc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTIGlu c3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGlu c3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJz IGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdl bmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCisrCW1vc3RseWNsZWFuLWdl bmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKysJdGFncyB0 YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIFwKKysJdW5pbnN0YWxsLWxpYkxU TElCUkFSSUVTIHVuaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMKKysKKytAU0VUX01B S0VACisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBl eHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5 c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5tayBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9v cmFjbGUvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAg LTAsMCArMSwxNCBAQAorK2Jja19vcmFjbGVfaF9zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5oIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAorK2Jja19vcmFjbGVfY2Nf c291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv YmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9l cnJvci5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9m YWN0b3J5LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3Jvdy1pZC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAgXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5 cGUuY3BwCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdC9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3Rlc3QvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmls ZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyMiBA QAorKyMjIGNvcmUgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmls ZS5jb21tb24KKytpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisrTUFJTlRBSU5FUkNM RUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK2lmIEhBVkVfT1JBQ0xFCisrICBURVNUX09SQUNM RSA9IHRlc3Rfb3JhY2xlCisrCisraWYgUlVOX1RFU1RTCisrICBub2luc3RfUFJPR1JBTVMgPSAk KFRFU1RfT1JBQ0xFKQorK2VuZGlmCisrCisrdGVzdF9vcmFjbGVfU09VUkNFUyA9ICQob3JhY2xl X3Rlc3RfY2Nfc291cmNlcykKKyt0ZXN0X29yYWNsZV9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdT KSAkKE9SQUNMRV9PQ0lfQ0ZMQUdTKQorK3Rlc3Rfb3JhY2xlX0xEQUREID0KKyt0ZXN0X29yYWNs ZV9MREZMQUdTID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29yZS9saWJzb2NpX2NvcmUubGEgLWxk bCBcCisrCQkkKHRvcF9idWlsZGRpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvbGlic29jaV9vcmFj bGUubGEgXAorKwkJJChPUkFDTEVfT0NJX0xERkxBR1MpCisrZW5kaWYKKysKKysjbm9kaXN0X3Br Z2luY2x1ZGVfSEVBREVSUyA9ICQob3JhY2xlX3Rlc3RfaF9zb3VyY2VzKQorZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYmFzaWMg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYmFz aWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2Vm aWxlLmJhc2ljCTIwMTEtMDItMDkgMDA6MzA6MzIuNTk3OTE2MzM2ICswMTAwCisrKysgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDIzICswLDAgQEAKKy0jIFRo ZSBmb2xsb3dpbmcgdmFyaWFibGUgaXMgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCBpdHMg Y29ycmVjdAorLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVl bCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KKy0KKy1PUkFDTEVJTkNMVURFRElSID0gLUkv dXNyL2xpYi9vcmFjbGUveGUvYXBwL29yYWNsZS9wcm9kdWN0LzEwLjIuMC9zZXJ2ZXIvcmRibXMv cHVibGljIAorLU9SQUNMRUxJQkRJUiA9IC1ML3Vzci9saWIvb3JhY2xlL3hlL2FwcC9vcmFjbGUv cHJvZHVjdC8xMC4yLjAvc2VydmVyL2xpYiAKKy1PUkFDTEVMSUJTID0gLWxjbG50c2ggLWxubnox MAorLQorLSMgVGhlIHJlc3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW50ZW50IG9mIHRoZSB0 YXJnZXQgZW52aXJvbm1lbnQuCistCistQ09NUElMRVIgPSBnKysKKy1DWFhGTEFHUyA9IC1XYWxs IC1wZWRhbnRpYyAtV25vLWxvbmctbG9uZworLUlOQ0xVREVESVJTID0gLUkuLiAtSS4uLy4uLy4u L2NvcmUgLUkuLi8uLi8uLi9jb3JlL3Rlc3QgJHtPUkFDTEVJTkNMVURFRElSfQorLUxJQkRJUlMg PSAtTC4uIC1MLi4vLi4vLi4vY29yZSAke09SQUNMRUxJQkRJUn0KKy1MSUJTID0gLWxzb2NpX2Nv cmUgLWxzb2NpX29yYWNsZSAtbGRsIC1sYm9vc3RfZGF0ZV90aW1lICR7T1JBQ0xFTElCU30KKy0K Ky0KKy10ZXN0LW9yYWNsZSA6IHRlc3Qtb3JhY2xlLmNwcCAKKy0jLi4vLi4vLi4vY29yZS90ZXN0 L2NvbW1vbi10ZXN0cy5oCistCSR7Q09NUElMRVJ9IC1vICRAICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9ICR7TElCRElSU30gJHtMSUJTfQorLQorLQorLWNsZWFuIDoKKy0Jcm0gLWYgKi5v IHRlc3Qtb3JhY2xlCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9N YWtlZmlsZS5pbgkyMDExLTAyLTA4IDIyOjM5OjU2LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCAr MSw1NjEgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJv bSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMp IDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisr IyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sCisrIyBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisr IyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJt aXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisr CisrQFNFVF9NQUtFQAorKworK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRh ZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAK Kytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGli ZXhlY2RpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQo UEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkg LWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3Rh bGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNU QUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1B TF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JN QUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6 CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNU X0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAor KwkkKHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK0BI QVZFX09SQUNMRV9UUlVFQEBSVU5fVEVTVFNfVFJVRUBub2luc3RfUFJPR1JBTVMgPSAkKGFtX19F WEVFWFRfMSkKKytzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0CisrQUNMT0NBTF9N NCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykg JChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxk aXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikv c29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrQ09ORklHX0NMRUFOX1ZQQVRI X0ZJTEVTID0KKytASEFWRV9PUkFDTEVfVFJVRUBhbV9fRVhFRVhUXzEgPSB0ZXN0X29yYWNsZSQo RVhFRVhUKQorK1BST0dSQU1TID0gJChub2luc3RfUFJPR1JBTVMpCisrYW1fX3Rlc3Rfb3JhY2xl X1NPVVJDRVNfRElTVCA9ICBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdC90ZXN0LW9yYWNsZS5jcHAKKythbV9fb2JqZWN0c18xID0gdGVzdF9vcmFjbGUtdGVzdC1v cmFjbGUuJChPQkpFWFQpCisrQEhBVkVfT1JBQ0xFX1RSVUVAYW1fdGVzdF9vcmFjbGVfT0JKRUNU UyA9ICQoYW1fX29iamVjdHNfMSkKKyt0ZXN0X29yYWNsZV9PQkpFQ1RTID0gJChhbV90ZXN0X29y YWNsZV9PQkpFQ1RTKQorK3Rlc3Rfb3JhY2xlX0RFUEVOREVOQ0lFUyA9CisrdGVzdF9vcmFjbGVf TElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElC VE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSBc CisrCSQoQ1hYRkxBR1MpICQodGVzdF9vcmFjbGVfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAor K0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kK KytkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAorK2FtX19k ZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCisrYW1fX212ID0gbXYgLWYKKytDWFhDT01QSUxFID0g JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrTFRDWFhD T01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSBcCisrCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NY WEZMQUdTKSAkKENYWEZMQUdTKQorK0NYWExEID0gJChDWFgpCisrQ1hYTElOSyA9ICQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1v ZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1Mp IFwKKysJJChMREZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAkKHRlc3Rfb3JhY2xlX1NPVVJDRVMp CisrRElTVF9TT1VSQ0VTID0gJChhbV9fdGVzdF9vcmFjbGVfU09VUkNFU19ESVNUKQorK0VUQUdT ID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChE SVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0gQEFDTE9D QUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZA CisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FX SyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJ TUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBA Qk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NU UkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9NUElfTElCID0g QEJPT1NUX01QSV9MSUJACisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhP Tl9MSUJACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElP TlNfTElCQAorK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKKytCT09TVF9S RUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJ R05BTFNfTElCQAorK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKKytCT09T VF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1F V09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lP TiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9X U0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAK KytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NA CisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBA Q1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklU X1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENY WENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NA CisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERF UERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisrRUNI T19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisr RUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytH RU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQ ID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxM X0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1ND UklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFM TF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJP QkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytM SVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisr TUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFH UyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACisrTVlTUUxf RElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKKytNWVNRTF9W RVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAK KytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9 IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AK KytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lf VkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2 NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9 IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BB Q0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNL QUdFX1RBUk5BTUVACisrUEFDS0FHRV9VUkwgPSBAUEFDS0FHRV9VUkxACisrUEFDS0FHRV9WRVJT SU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRP UkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FM X0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdS RVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisr UE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFO TElCQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hF TExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lf TVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJ X1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVS SUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5E QAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAor K2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3Bf YnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0Mg PSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0g QGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRp bmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2Ft X190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBi aW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisr YnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92 ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIg PSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRp ZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisr ZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9 IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9h bGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBA aG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxk aXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytp bnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGly ID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxv Y2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbWFuZGlyID0gQG1h bmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRl ZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJA Cisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVk aXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0g QHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRf cHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRp ckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1 aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytvcmFjbGVfdGVzdF9oX3NvdXJjZXMgPSAKKytvcmFj bGVfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90 ZXN0L3Rlc3Qtb3JhY2xlLmNwcAorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4K KytASEFWRV9PUkFDTEVfVFJVRUBURVNUX09SQUNMRSA9IHRlc3Rfb3JhY2xlCisrQEhBVkVfT1JB Q0xFX1RSVUVAdGVzdF9vcmFjbGVfU09VUkNFUyA9ICQob3JhY2xlX3Rlc3RfY2Nfc291cmNlcykK KytASEFWRV9PUkFDTEVfVFJVRUB0ZXN0X29yYWNsZV9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdT KSAkKE9SQUNMRV9PQ0lfQ0ZMQUdTKQorK0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rfb3JhY2xlX0xE QUREID0gCisrQEhBVkVfT1JBQ0xFX1RSVUVAdGVzdF9vcmFjbGVfTERGTEFHUyA9ICQodG9wX2J1 aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAorK0BIQVZFX09SQUNMRV9U UlVFQAkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2xpYnNvY2lfb3JhY2xl LmxhIFwKKytASEFWRV9PUkFDTEVfVFJVRUAJCSQoT1JBQ0xFX09DSV9MREZMQUdTKQorKworK2Fs bDogYWxsLWFtCisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagor KyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVf ZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVf ZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAg JiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJ ICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0 b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0 L01ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRP TUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZQorKy5QUkVDSU9V UzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVz KikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxl c19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7 CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmln dXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2Rpcikv Y29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAk KGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisrCisr Y2xlYW4tbm9pbnN0UFJPR1JBTVM6CisrCUBsaXN0PSckKG5vaW5zdF9QUk9HUkFNUyknOyB0ZXN0 IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorKwly bSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKysJdGVzdCAtbiAiJChFWEVFWFQpIiB8fCBleGl0 IDA7IFwKKysJbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2Vk ICdzLyQoRVhFRVhUKSQkLy8nYDsgXAorKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorKwlybSAt ZiAkJGxpc3QKKyt0ZXN0X29yYWNsZSQoRVhFRVhUKTogJCh0ZXN0X29yYWNsZV9PQkpFQ1RTKSAk KHRlc3Rfb3JhY2xlX0RFUEVOREVOQ0lFUykgCisrCUBybSAtZiB0ZXN0X29yYWNsZSQoRVhFRVhU KQorKwkkKHRlc3Rfb3JhY2xlX0xJTkspICQodGVzdF9vcmFjbGVfT0JKRUNUUykgJCh0ZXN0X29y YWNsZV9MREFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAq LiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIuYworKwor K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0X29y YWNsZS10ZXN0LW9yYWNsZS5Qb0BhbV9fcXVvdGVACisrCisrLmNwcC5vOgorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCou VHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJ UikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6CisrQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElS KS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRv b2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChD WUdQQVRIX1cpICckPCdgCisrCisrLmNwcC5sbzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM VENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRA ICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQo REVQRElSKS8kKi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo TFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworK3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm86 ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3JhY2xlX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUubyAtTUQgLU1Q IC1NRiAkKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvIC1jIC1vIHRlc3Rfb3Jh Y2xlLXRlc3Qtb3JhY2xlLm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNs ZS5UcG8gJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlBvCisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnIG9iamVjdD0ndGVzdF9vcmFjbGUtdGVzdC1v cmFjbGUubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQodGVzdF9vcmFjbGVfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3Rfb3JhY2xl LXRlc3Qtb3JhY2xlLm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKysKKyt0ZXN0X29y YWNsZS10ZXN0LW9yYWNsZS5vYmo6ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdC90ZXN0LW9yYWNsZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9vcmFjbGUt dGVzdC1vcmFjbGUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9y YWNsZS5UcG8gLWMgLW8gdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqIGBpZiB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsg dGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVz dC90ZXN0LW9yYWNsZS5jcHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBmaWAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0 LW9yYWNsZS5UcG8gJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlBvCisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnIG9iamVjdD0ndGVzdF9vcmFjbGUt dGVzdC1vcmFjbGUub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAk KGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJCh0ZXN0X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVz dF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAn OyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBmaWAKKysKKyttb3N0bHljbGVhbi1saWJ0 b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMg X2xpYnMKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVT KQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9u ZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisr CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogICQo SEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJ TEVTKSAkKExJU1ApCisrCXNldCB4OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJbGlzdD0nJChTT1VS Q0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9y IGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRp OyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdL KSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYg KG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXNoaWZ0 OyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxz ZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkg IGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykg JChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1bmlxdWU7 IFwKKysJICBlbHNlIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZM QUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsgXAorKwlm aQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1Nf REVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0nJChTT1VS Q0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9y IGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRp OyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdL KSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYg KG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3Qg LXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFH UykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQorKwor K0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkg ICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FS R1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdT IEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBz cmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1td LlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlz dF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJ ICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3Bz cmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVz IGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJ ICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAg IHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRv IFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVs c2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwK KysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisr CSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5k ICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdSty d3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZp bGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNy Y2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5k ICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdSty d3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlz dGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRp c3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8k JGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1h bTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1T KQorK2luc3RhbGxkaXJzOgorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxsLWV4ZWM6IGlu c3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisrdW5pbnN0YWxs OiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hl Y2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAg aW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RS SVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJ TlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3Rs eWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJp YzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdf Q0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJ R19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVT KQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBp cyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBm aWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0 IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5G SUxFUykKKytjbGVhbjogY2xlYW4tYW0KKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVh bi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIFwKKysJbW9zdGx5Y2xlYW4tYW0KKysKKytk aXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBN YWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNs ZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tdGFncworKworK2R2aTogZHZpLWFtCisrCisrZHZp LWFtOgorKworK2h0bWw6IGh0bWwtYW0KKysKKytodG1sLWFtOgorKworK2luZm86IGluZm8tYW0K KysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5z dGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06Cisr CisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWh0bWwtYW06Cisr CisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KKysKKytpbnN0YWxsLWluZm8tYW06Cisr CisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisrCisraW5z dGFsbC1wZGYtYW06CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorKworK2luc3RhbGwt cHMtYW06CisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50 YWluZXItY2xlYW4tYW0KKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUK KyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5l cmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06 IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFu LWxpYnRvb2wKKysKKytwZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMtYW0KKysK Kytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFs bC1zdHJpcAorKworKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1h bSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKysJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9H UkFNUyBjdGFncyBkaXN0Y2xlYW4gXAorKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2Vu ZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCisrCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2 aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKKysJaW5zdGFsbCBpbnN0YWxsLWFtIGlu c3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAorKwlpbnN0YWxsLWR2aS1h bSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCisrCWluc3RhbGwt aHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKKysJaW5z dGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKKysJaW5z dGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKysJ bWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAor Kwltb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGli dG9vbCBcCisrCXBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFt CisrCisrQFNFVF9NQUtFQAorKworKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChvcmFj bGVfdGVzdF9oX3NvdXJjZXMpCisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdO VSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3Rl bSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6 CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9z b3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Nv dXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0 L3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1rCTIwMDkt MDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIgQEAKKytvcmFjbGVf dGVzdF9oX3NvdXJjZXMgPQorK29yYWNsZV90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmFtIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0KKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0JMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDUu MDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDMwIEBACisrIyMgYmFja2VuZHMvcG9zdGdyZXNx bCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgor K2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9 IE1ha2VmaWxlLmluCisrCisrU1VCRElSUyA9IC4gdGVzdAorKworKyNFWFRSQV9ESVNUX0ZPUl9T T0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbW1vbi5oCisrCisrRVhUUkFfRElTVCA9ICQoRVhUUkFf RElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQorKworK2lmIEhBVkVfUE9TVEdSRVNRTAorK2xp Yl9MVExJQlJBUklFUz0gbGlic29jaV9wb3N0Z3Jlc3FsLmxhCisrCisrbGlic29jaV9wb3N0Z3Jl c3FsX2xhX1NPVVJDRVM9ICQoYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzKSAkKGJja19wb3N0Z3Jl c3FsX2NjX3NvdXJjZXMpIAorK2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUyA9ICQoUE9T VEdSRVNRTF9DRkxBR1MpCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJQkFERCA9CisrbGlic29j aV9wb3N0Z3Jlc3FsX2xhX0xERkxBR1MgPSBcCisrCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRF X1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKKysJLXZlcnNpb24taW5m byAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorKworK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCisr ZW5kaWYKKytpZiBTT0NJX0hFQURFUlNfQlVSSUVECisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5j bHVkZWRpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsCisrZWxzZQorK3NvY2lfaW5jbHVkZV9k aXIgPSAkKGluY2x1ZGVkaXIpCisrZW5kaWYKKytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1 ZGVfZGlyKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCTIwMTEtMDItMDkgMDA6MzA6MzIuNTk2OTE2MzE3 ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9N YWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorQEAgLTEs OTUgKzAsMCBAQAorLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0aGlz IGJhY2tlbmQgYW5kIGl0cyBjb3JyZWN0CistIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIg ZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgorLQorLVBHU1FM SU5DTFVERURJUiA9IC1JL3Vzci9pbmNsdWRlCistCistIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZp bGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KKy0KKy1DT01QSUxF UiA9IGcrKworLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCistQ1hY RkxBR1NTTyA9ICR7Q1hYRkxBR1N9IC1mUElDCistSU5DTFVERURJUlMgPSAtSS4uLy4uL2NvcmUg JHtQR1NRTElOQ0xVREVESVJ9CistCistCistT0JKRUNUUyA9IGJsb2IubyBmYWN0b3J5Lm8gcm93 LWlkLm8gc2Vzc2lvbi5vIHN0YW5kYXJkLWludG8tdHlwZS5vIFwKKy0Jc3RhbmRhcmQtdXNlLXR5 cGUubyBzdGF0ZW1lbnQubyB2ZWN0b3ItaW50by10eXBlLm8gdmVjdG9yLXVzZS10eXBlLm8gXAor LQljb21tb24ubworLQorLU9CSkVDVFNTTyA9IGJsb2Itcy5vIGZhY3Rvcnktcy5vIHJvdy1pZC1z Lm8gc2Vzc2lvbi1zLm8gXAorLQlzdGFuZGFyZC1pbnRvLXR5cGUtcy5vIHN0YW5kYXJkLXVzZS10 eXBlLXMubyBzdGF0ZW1lbnQtcy5vIFwKKy0JdmVjdG9yLWludG8tdHlwZS1zLm8gdmVjdG9yLXVz ZS10eXBlLXMubyBjb21tb24tcy5vCistCistCistbGlic29jaV9wb3N0Z3Jlc3FsLmEgOiAke09C SkVDVFN9CistCWFyIHJ2ICRAICQ/CistCXJtICoubworLQorLQorLWJsb2IubyA6IGJsb2IuY3Bw CistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistY29t bW9uLm8gOiBjb21tb24uY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9CistCistZmFjdG9yeS5vIDogZmFjdG9yeS5jcHAKKy0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1yb3ctaWQubyA6IHJvdy1pZC5jcHAK Ky0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zZXNz aW9uLm8gOiBzZXNzaW9uLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQorLQorLXN0YW5kYXJkLWludG8tdHlwZS5vIDogc3RhbmRhcmQtaW50by10eXBl LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQor LXN0YW5kYXJkLXVzZS10eXBlLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxF Un0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zdGF0ZW1lbnQubyA6IHN0 YXRlbWVudC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElS U30KKy0KKy12ZWN0b3ItaW50by10eXBlLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAorLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rvci11c2Ut dHlwZS5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZM QUdTfSAke0lOQ0xVREVESVJTfQorLQorLQorLXNoYXJlZCA6ICR7T0JKRUNUU1NPfQorLQkke0NP TVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfcG9zdGdyZXNxbC5zbyAke09CSkVDVFNTT30KKy0J cm0gKi5vCistCistYmxvYi1zLm8gOiBibG9iLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAk PyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistY29tbW9uLXMubyA6IGNvbW1vbi5j cHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJT fQorLQorLWZhY3Rvcnktcy5vIDogZmFjdG9yeS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAg JD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXJvdy1pZC1zLm8gOiByb3ctaWQu Y3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElS U30KKy0KKy1zZXNzaW9uLXMubyA6IHNlc3Npb24uY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRA ICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC1pbnRvLXR5cGUt cy5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAk e0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtdXNlLXR5cGUtcy5vIDog c3RhbmRhcmQtdXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxB R1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGF0ZW1lbnQtcy5vIDogc3RhdGVtZW50LmNwcAor LQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Cist CistdmVjdG9yLWludG8tdHlwZS1zLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAorLQkke0NPTVBJ TEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistdmVjdG9y LXVzZS10eXBlLXMubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8g JEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLQorLWNsZWFuIDoKKy0Jcm0g LWYgbGlic29jaV9wb3N0Z3Jlc3FsLmEgbGlic29jaV9wb3N0Z3Jlc3FsLnNvCitkaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmluIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4KKy0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4J MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmluCTIwMTEtMDItMDggMjI6Mzk6 NTcuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDkwMyBAQAorKyMgTWFrZWZpbGUuaW4gZ2Vu ZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3Vy ZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5 OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw MDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRo aXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJp YnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRo aXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrCisrCisrVlBBVEgg PSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRp ciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9A UEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFS QVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQK KytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJ UFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkK Kyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwg PSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RB TEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90 cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0g JChhbV9fcGtnaW5jbHVkZV9IRUFERVJTX0RJU1QpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCisr CSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHNyY2Rpcikvc291cmNlcy5tayBcCisrCSQodG9wX3Ny Y2RpcikvTWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0gc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs CisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200 X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xl X29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv bGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s dHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRv cF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9j YWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkK Kytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRv cF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrQ09ORklH X0NMRUFOX1ZQQVRIX0ZJTEVTID0KKythbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9 YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKKythbV9fdnBhdGhfYWRqID0gY2Fz ZSAkJHAgaW4gXAorKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRz cmNkaXJzdHJpcC98fCJgOzsgXAorKyAgICAqKSBmPSQkcDs7IFwKKysgIGVzYWM7CisrYW1fX3N0 cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworK2FtX19pbnN0YWxs X21heCA9IDQwCisrYW1fX25vYmFzZV9zdHJpcF9zZXR1cCA9IFwKKysgIHNyY2RpcnN0cmlwPWBl Y2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKKythbV9fbm9i YXNlX3N0cmlwID0gXAorKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwg c2VkIC1lICJzfCQkc3JjZGlyc3RyaXAvfHwiCisrYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9i YXNlX3N0cmlwX3NldHVwKTsgXAorKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRw IjsgZG9uZSB8IFwKKysgIHNlZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwvLyFzLyAu Ki8gLi87IHMsXCggLipcKS9bXi9dKiQkLFwxLCcgfCBcCisrICAkKEFXSykgJ0JFR0lOIHsgZmls ZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCisrICAg IGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKysgICAgICB7IHByaW50ICQk MiwgZmlsZXNbJCQyXTsgblskJDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCisrICAgIEVO RCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKKythbV9fYmFz ZV9saXN0ID0gXAorKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOO3Mv XG4vIC9nJyB8IFwKKysgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKKythbV9f aW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1 ZGVkaXIpIgorK0xUTElCUkFSSUVTID0gJChsaWJfTFRMSUJSQVJJRVMpCisrbGlic29jaV9wb3N0 Z3Jlc3FsX2xhX0RFUEVOREVOQ0lFUyA9CisrYW1fX2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9TT1VS Q0VTX0RJU1QgPSAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9j b21tb24uaCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2kt cG9zdGdyZXNxbC5oIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv YmxvYi5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21t b24uY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9y eS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQu Y3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5j cHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1p bnRvLXR5cGUuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv c3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvc3RhdGVtZW50LmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorK2FtX19vYmplY3RzXzEgPQor K2FtX19vYmplY3RzXzIgPSBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbyBcCisrCWxpYnNv Y2lfcG9zdGdyZXNxbF9sYS1jb21tb24ubG8gXAorKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFj dG9yeS5sbyBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQubG8gXAorKwlsaWJzb2Np X3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbyBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFu ZGFyZC1pbnRvLXR5cGUubG8gXAorKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNl LXR5cGUubG8gXAorKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LmxvIFwKKysJbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gXAorKwlsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvCisrQEhBVkVfUE9TVEdSRVNRTF9UUlVFQGFtX2xp YnNvY2lfcG9zdGdyZXNxbF9sYV9PQkpFQ1RTID0gIFwKKytASEFWRV9QT1NUR1JFU1FMX1RSVUVA CSQoYW1fX29iamVjdHNfMSkgJChhbV9fb2JqZWN0c18yKQorK2xpYnNvY2lfcG9zdGdyZXNxbF9s YV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX3Bvc3RncmVzcWxfbGFfT0JKRUNUUykKKytsaWJzb2Np X3Bvc3RncmVzcWxfbGFfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSBcCisrCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSBcCisrCSQobGli c29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCisrCSQobGlic29jaV9w b3N0Z3Jlc3FsX2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKKytASEFWRV9QT1NUR1JFU1FM X1RSVUVAYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX3JwYXRoID0gLXJwYXRoIFwKKytASEFWRV9Q T1NUR1JFU1FMX1RSVUVACSQobGliZGlyKQorK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lz cmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKKytkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3Jj ZGlyKS9jb25maWcvZGVwY29tcAorK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCisrYW1f X212ID0gbXYgLWYKKytDWFhDT01QSUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hY RkxBR1MpICQoQ1hYRkxBR1MpCisrTFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQorK0NYWExEID0g JChDWFgpCisrQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAorK0NPTVBJ TEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgXAorKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisrTFRDT01Q SUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1Mp ICQoQ0ZMQUdTKQorK0NDTEQgPSAkKENDKQorK0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGluayAkKENDTEQp ICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8g JEAKKytTT1VSQ0VTID0gJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfU09VUkNFUykKKytESVNUX1NP VVJDRVMgPSAkKGFtX19saWJzb2NpX3Bvc3RncmVzcWxfbGFfU09VUkNFU19ESVNUKQorK1JFQ1VS U0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2 ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNp dmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisr CWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWluc3Rh bGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBc CisrCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1 cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK2FtX19wa2dpbmNs dWRlX0hFQURFUlNfRElTVCA9ICBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCisrSEVBREVSUyA9ICQocGtnaW5jbHVkZV9IRUFERVJT KQorK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFu LXJlY3Vyc2l2ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVj dXJzaXZlCisrQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1 cnNpdmU9KSBcCisrCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3Mg VEFHUyBjdGFncyBDVEFHUyBcCisrCWRpc3RkaXIKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBj dGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklMRVMgPSAkKERJU1RfQ09N TU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK2FtX19yZWxh dGl2aXplID0gXAorKyAgZGlyMD1gcHdkYDsgXAorKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkv LiokJCxcMSwnOyBcCisrICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAorKyAgc2VkX2xhc3Q9 J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKKysgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCws JzsgXAorKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAorKyAgICBmaXJzdD1gZWNobyAi JCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorKyAgICBpZiB0ZXN0ICIkJGZpcnN0 IiAhPSAiLiI7IHRoZW4gXAorKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBc CisrICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0ImAvIiQk ZGlyMiI7IFwKKysgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1 dGxhc3QiYDsgXAorKyAgICAgIGVsc2UgXAorKyAgICAgICAgZmlyc3QyPWBlY2hvICIkJGRpcjIi IHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisrICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIg PSAiJCRmaXJzdCI7IHRoZW4gXAorKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2Vk IC1lICIkJHNlZF9yZXN0ImA7IFwKKysgICAgICAgIGVsc2UgXAorKyAgICAgICAgICBkaXIyPSIu Li8kJGRpcjIiOyBcCisrICAgICAgICBmaTsgXAorKyAgICAgICAgZGlyMD0iJCRkaXIwIi8iJCRm aXJzdCI7IFwKKysgICAgICBmaTsgXAorKyAgICBmaTsgXAorKyAgICBkaXIxPWBlY2hvICIkJGRp cjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKysgIGRvbmU7IFwKKysgIHJlbGRpcj0iJCRk aXIyIgorK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCisrQUNMT0NBTCA9IEBB Q0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9D T05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAK KytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFU RV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElC ID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1Rf SU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfTVBJX0xJ QiA9IEBCT09TVF9NUElfTElCQAorK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9Q WVRIT05fTElCQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9P UFRJT05TX0xJQkAKKytCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACisrQk9P U1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJ QiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09T VF9TSUdOQUxTX0xJQkAKKytCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJACisr Qk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZF UlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9P U1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1P REVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZM QUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklH ID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQ VU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9 IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZM QUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9 IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAor K0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19U QAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBA CisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisr R1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5T VEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFM TF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElO U1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisr TElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xA CisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpT QAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9D RkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAorK01Z U1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACisrTVlT UUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9IEBOTUVE SVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJ UlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxB R1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVf T0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09MQAorK09U T09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBP UlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAK KytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBA UEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAorK1BBQ0tBR0Vf VkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBB UkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdS RVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBP U1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdT QAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0g QFJBTkxJQkAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0g QFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytT T0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisr U09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJT X0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09N TUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRp ckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNf dG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0 X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJ TiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19s ZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAK KythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIg PSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFz QAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVp bGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRh ZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9 IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29r QAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVm aXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hv c3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29z ID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBo dG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJA CisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xp YmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9 IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK21hbmRpciA9 IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5j bHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBz ZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0 YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRp ciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1 aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVp bGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRv cF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzID0g XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9u LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29j aS1wb3N0Z3Jlc3FsLmgKKysKKytiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2VzID0gXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAgXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5 LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9y b3ctaWQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Nlc3Npb24uY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9y LWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0g TWFrZWZpbGUuaW4KKytTVUJESVJTID0gLiB0ZXN0CisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lf Q09NUEFUSUJJTElUWSA9IC5fY29tbW9uLmgKKytFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZP Ul9TT0NJX0NPTVBBVElCSUxJVFkpCisrQEhBVkVfUE9TVEdSRVNRTF9UUlVFQGxpYl9MVExJQlJB UklFUyA9IGxpYnNvY2lfcG9zdGdyZXNxbC5sYQorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJz b2NpX3Bvc3RncmVzcWxfbGFfU09VUkNFUyA9ICQoYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzKSAk KGJja19wb3N0Z3Jlc3FsX2NjX3NvdXJjZXMpIAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJz b2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MgPSAkKFBPU1RHUkVTUUxfQ0ZMQUdTKQorK0BIQVZF X1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTElCQUREID0gCisrQEhBVkVf UE9TVEdSRVNRTF9UUlVFQGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9MREZMQUdTID0gXAorK0BIQVZF X1BPU1RHUkVTUUxfVFJVRUAJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQo Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUAJLXZl cnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorKworK0BIQVZFX1BPU1RHUkVT UUxfVFJVRUBwa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAorK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNF QHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrQFNPQ0lfSEVBREVSU19CVVJJRURf VFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwKKythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrLlNVRkZJWEVTOiAu Y3BwIC5sbyAubyAub2JqCisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2Vm aWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1r ICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2Ug JyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAo IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJy ZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBc CisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZSc7IFwKKysJJChhbV9fY2QpICQodG9wX3NyY2Rpcikg JiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtl ZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxl LmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkg ICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8k QCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXli ZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9w X3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKwor KyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQo QUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1fX2FjbG9jYWxf bTRfZGVwcyk6CisraW5zdGFsbC1saWJMVExJQlJBUklFUzogJChsaWJfTFRMSUJSQVJJRVMpCisr CUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKGxpYmRpcikiIHx8ICQoTUtESVJfUCkg IiQoREVTVERJUikkKGxpYmRpcikiCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyB0ZXN0 IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCisrCWxpc3QyPTsgZm9yIHAgaW4gJCRsaXN0OyBk byBcCisrCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAorKwkgICAgbGlzdDI9IiQkbGlzdDIgJCRw IjsgXAorKwkgIGVsc2UgOjsgZmk7IFwKKysJZG9uZTsgXAorKwl0ZXN0IC16ICIkJGxpc3QyIiB8 fCB7IFwKKysJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICQk bGlzdDIgJyQoREVTVERJUikkKGxpYmRpciknIjsgXAorKwkgICQoTElCVE9PTCkgJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTEwpICQoSU5T VEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICIkKERFU1RESVIpJChsaWJkaXIpIjsgXAorKwl9Cisr CisrdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlA bGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0PTsg XAorKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICAkKGFtX19zdHJpcF9kaXIpIFwKKysJICBl Y2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT11bmluc3RhbGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRpcikvJCRmJyI7IFwKKysJICAkKExJ QlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFs bCBybSAtZiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBcCisrCWRvbmUKKysKKytjbGVhbi1s aWJMVExJQlJBUklFUzoKKysJLXRlc3QgLXogIiQobGliX0xUTElCUkFSSUVTKSIgfHwgcm0gLWYg JChsaWJfTFRMSUJSQVJJRVMpCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBp biAkJGxpc3Q7IGRvIFwKKysJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8 J2AiOyBcCisrCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCisrCSAgZWNobyAi cm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAorKwkgIHJtIC1mICIkJHtkaXJ9L3Nv X2xvY2F0aW9ucyI7IFwKKysJZG9uZQorK2xpYnNvY2lfcG9zdGdyZXNxbC5sYTogJChsaWJzb2Np X3Bvc3RncmVzcWxfbGFfT0JKRUNUUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfREVQRU5ERU5D SUVTKSAKKysJJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTElOSykgJChhbV9saWJzb2NpX3Bvc3Rn cmVzcWxfbGFfcnBhdGgpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMpICQobGlic29j aV9wb3N0Z3Jlc3FsX2xhX0xJQkFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6 CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYg Ki50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQ RElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9U UlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVz cWxfbGEtY29tbW9uLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LlBsb0Bh bV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBE SVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXNlc3Npb24uUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWlu dG8tdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUu UGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5QbG9AYW1fX3F1b3RlQAor K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9U UlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVz cWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACisrCisrLmNwcC5vOgorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJ UikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAk KERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNL U0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6Cisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQo REVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KKytA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAn IGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAk QCBgJChDWUdQQVRIX1cpICckPCdgCisrCisrLmNwcC5sbzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1j IC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCou VHBvICQoREVQRElSKS8kKi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhE RVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9s YS1ibG9iLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNw cAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29j aV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9z dGdyZXNxbF9sYS1ibG9iLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL2Jsb2IuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikv bGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVz cWxfbGEtYmxvYi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAnIG9iamVj dD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bv c3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNx bF9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAKKysKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29t bW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2Np X3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bv c3RncmVzcWxfbGEtY29tbW9uLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9u LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21t b24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9jb21tb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAk KERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5UcG8gJChERVBESVIpL2xpYnNv Y2lfcG9zdGdyZXNxbF9sYS1jb21tb24uUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Nv bW1vbi5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbycgbGlidG9v bD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAorKworK2xp YnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8gLU1EIC1N UCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LlRwbyAtYyAtbyBs aWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLWZhY3RvcnkuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5Q bG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIG9iamVjdD0nbGlic29j aV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVz cWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1m YWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9mYWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAKKysKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGEt cm93LWlkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQu Y3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJz b2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2Np X3Bvc3RncmVzcWxfbGEtcm93LWlkLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93 LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9y b3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5UcG8gJChERVBESVIpL2xp YnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Jvdy1pZC5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbycgbGli dG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMg LW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcAorKwor K2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlRwbyAtYyAt byBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwCisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXNlc3Npb24uVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lv bi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAnIG9iamVjdD0nbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3Rn cmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9s YS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAKKysKKytsaWJzb2NpX3Bvc3RncmVzcWxf bGEtc3RhbmRhcmQtaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo TElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50 by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3Rh bmRhcmQtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQt aW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0 YW5kYXJkLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5k YXJkLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWlu dG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAorKwor K2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCisrQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVz cWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf cG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVz ZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xp YnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNv Y2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0 YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNw cAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG86ICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0 ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0 ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3N0YXRlbWVudC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQ RElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LlRwbyAkKERFUERJUikvbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv c3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50Lmxv JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0 ZW1lbnQuY3BwCisrCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG86 ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUu Y3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJz b2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNv Y2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVj dG9yLWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQ RElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gJChERVBESVIp L2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlBsbworK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdy ZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXZlY3Rvci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNw cAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG86ICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdy ZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf cG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNx bF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5j cHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX3Bv c3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVj dG9yLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVz ZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp ICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3It dXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCisrCisrbW9zdGx5Y2xlYW4tbGli dG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJz IF9saWJzCisraW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzogJChwa2dpbmNsdWRlX0hFQURFUlMp CisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCAk KE1LRElSX1ApICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKKysJQGxpc3Q9JyQocGtnaW5j bHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBcCisr CWZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVs c2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisrCSAgZWNobyAiJCRkJCRwIjsgXAorKwlkb25lIHwg JChhbV9fYmFzZV9saXN0KSB8IFwKKysJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorKwkgIGVjaG8g IiAkKElOU1RBTExfSEVBREVSKSAkJGZpbGVzICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSci OyBcCisrCSAgJChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAiJChERVNURElSKSQocGtnaW5jbHVk ZWRpcikiIHx8IGV4aXQgJCQ/OyBcCisrCWRvbmUKKysKKyt1bmluc3RhbGwtcGtnaW5jbHVkZUhF QURFUlM6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVB REVSUyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAorKwlmaWxlcz1g Zm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICQkcDsgZG9uZSB8IHNlZCAtZSAnc3xeLiovfHwnYDsg XAorKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKKysJZWNobyAiICggY2QgJyQoREVT VERJUikkKHBrZ2luY2x1ZGVkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKysJY2QgIiQo REVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIiAmJiBybSAtZiAkJGZpbGVzCisrCisrIyBUaGlzIGRp cmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4g Y2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhp cyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6 IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlz IHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdo aWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBy dW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9u IHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFp bD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisr CSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZh aWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49 bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0 PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtp bmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4i OyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRh cmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBc CisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9u ZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16 ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsPSBmYWls Y29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNl ICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0n ZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAor KwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBs aXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBc CisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlm IHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJk aXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisr CXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBp biAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwK KysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0 PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJn ZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwK KysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQo U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGly IiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0 YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgk KGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisr CWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVT KQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9u ZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisr CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogdGFn cy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBc CisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJc2V0IHg7IFwKKysJaGVyZT1gcHdkYDsgXAor KwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYx OyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBlbXB0 eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKysJ ICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGly IGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxz ZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHNldCAiJCRA IiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsgXAor Kwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc CisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0g MTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAorKwlzaGlmdDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1Mp JCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1 bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisrCSAg ICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBc CisrCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisrCSAgZWxzZSBcCisrCSAgICAkKEVUQUdTKSAk KEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAgICQk dW5pcXVlOyBcCisrCSAgZmk7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3Mt cmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAor KwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAg JChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8g XAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3Jj ZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9 IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3Ig KGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1Mp JCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFH UykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1g JChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiAkKGFtX19jZCkgJCh0 b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorKwor K2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BB VEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8g IiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2Rp cnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxl IGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNy Y2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9w X2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAk KE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8 XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisr CWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAt ZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBm aTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8g Ii8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAi JChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZp bGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisrCSAg ICBmaTsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9 ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChk aXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZp bGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisrCSAg ICBmaTsgXAorKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4 aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwK KysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8 fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47 IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisr CSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBleGl0 IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4g OjsgZWxzZSBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGly IjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld19kaXN0ZGlyPSQkcmVs ZGlyOyBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKKysJ ICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisrCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7 IFwKKysJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg dG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBc XCI7IFwKKysJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVu Z3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKKysJICAgICgkKGFt X19jZCkgJCRzdWJkaXIgJiYgXAorKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisr CSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCisrCSAgICAgICAgZGlz dGRpcj0iJCRuZXdfZGlzdGRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJYW1f X3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCisrCSAgICAg ICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisr Y2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwtYW06IE1ha2Vm aWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMt cmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisrCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGxp YmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKKysJICB0ZXN0IC16ICIk JGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisrCWRvbmUKKytpbnN0YWxsOiBpbnN0YWxs LXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3Rh bGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJl Y3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFH UykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5z dGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAg aW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RS SVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJ TlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3Rs eWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJp YzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdf Q0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJ R19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVT KQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBp cyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBm aWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0 IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5G SUxFUykKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVy aWMgY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCisrCW1vc3RseWNsZWFuLWFt CisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtcmYgLi8kKERFUERJ UikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4t Y29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBk dmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisr aHRtbC1hbToKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5z dGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisraW5zdGFsbC1kdmk6 IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwt ZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUworKworK2luc3RhbGwtaHRtbDogaW5zdGFs bC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWluZm86 IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm8tYW06CisrCisraW5zdGFs bC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3Rh bGwtcGRmLWFtOgorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5z dGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjog bWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0g LWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5l ci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQor KworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVy aWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisr cGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwt YW06IHVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMK KysKKysuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VU UykgY3RhZ3MtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVj dXJzaXZlCisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lW RV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xl YW4gY2xlYW4tZ2VuZXJpYyBcCisrCWNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wg Y3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwKKysJZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIGRp c3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlz dGRpciBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGlu c3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGlu c3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0 bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisrCWluc3RhbGwtaW5mby1hbSBpbnN0 YWxsLWxpYkxUTElCUkFSSUVTIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKKysJaW5zdGFsbC1w ZGYtYW0gaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUyBpbnN0YWxsLXBzIFwKKysJaW5zdGFsbC1w cy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gXAorKwlpbnN0 YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgXAorKwltb3N0bHlj bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCisr CXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSBcCisrCXVuaW5zdGFs bC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKytAU0VUX01B S0VACisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBl eHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5 c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvdXJjZXMubWsgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb3VyY2VzLm1rCistLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvdXJjZXMubWsJMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNS4wMDAw MDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTQgQEAKKytiY2tfcG9zdGdyZXNxbF9oX3NvdXJjZXMg PSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21t b24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z b2NpLXBvc3RncmVzcWwuaAorK2Jja19wb3N0Z3Jlc3FsX2NjX3NvdXJjZXMgPSBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNwcCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3Rvcnku Y3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jv dy1pZC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc2Vzc2lvbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3It aW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmFtCistLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYW0JMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOToz NzowNS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTggQEAKKysjIyBjb3JlIHN1Yi1kaXJl Y3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisraW5jbHVkZSAk KHNyY2Rpcikvc291cmNlcy5taworKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUu aW4KKysKKytpZiBSVU5fVEVTVFMKKysgIG5vaW5zdF9QUk9HUkFNUyA9IHRlc3RfcG9zdGdyZXNx bAorK2VuZGlmCisrCisrdGVzdF9wb3N0Z3Jlc3FsX1NPVVJDRVMgPSAkKHBvc3RncmVzcWxfdGVz dF9jY19zb3VyY2VzKQorK3Rlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdT KQorK3Rlc3RfcG9zdGdyZXNxbF9MREFERCA9CisrdGVzdF9wb3N0Z3Jlc3FsX0xERkxBR1MgPSAk KHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKKysJCSQodG9w X2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvbGlic29jaV9wb3N0Z3Jlc3FsLmxh IFwKKysJCSQoUE9TVEdSRVNRTF9MREZMQUdTKQorKworKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFE RVJTID0gJChwb3N0Z3Jlc3FsX3Rlc3RfaF9zb3VyY2VzKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5iYXNp YworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01h a2VmaWxlLmJhc2ljCTIwMTEtMDItMDkgMDA6MzA6MzIuNTk1OTE2Mjk4ICswMTAwCisrKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJh c2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCitAQCAtMSwyMiArMCwwIEBA CistIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGlzIHNwZWNpZmljIHRvIHRoaXMgYmFja2VuZCBh bmQgaXRzIGNvcnJlY3QKKy0jIHZhbHVlcyBtaWdodCBkZXBlbmQgb24geW91ciBlbnZpcm9ubWVu dCAtIGZlZWwgZnJlZSB0byBzZXQgaXQgYWNjb3JkaW5nbHkuCistCistUEdTUUxJTkNMVURFRElS ID0gLUkvdXNyL2luY2x1ZGUKKy1QR1NRTExJQkRJUiA9IC1ML3Vzci9saWIKKy1QR1NRTExJQlMg PSAtbHBxCistCistIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2Yg dGhlIHRhcmdldCBlbnZpcm9ubWVudC4KKy0KKy1DT01QSUxFUiA9IGcrKworLUNYWEZMQUdTID0g LVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCistSU5DTFVERURJUlMgPSAtSS4uIC1JLi4v Li4vLi4vY29yZS90ZXN0IC1JLi4vLi4vLi4vY29yZSAke1BHU1FMSU5DTFVERURJUn0KKy1MSUJE SVJTID0gLUwuLiAtTC4uLy4uLy4uL2NvcmUgJHtQR1NRTExJQkRJUn0KKy1MSUJTID0gLWxzb2Np X2NvcmUgLWxzb2NpX3Bvc3RncmVzcWwgLWxkbCAke1BHU1FMTElCU30KKy0KKy0KKy10ZXN0LXBv c3RncmVzcWwgOiB0ZXN0LXBvc3RncmVzcWwuY3BwCistCSR7Q09NUElMRVJ9IC1vICRAICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9ICR7TElCRElSU30gJHtMSUJTfQorLQorLQorLWNsZWFu IDoKKy0Jcm0gLWYgdGVzdC1wb3N0Z3Jlc3FsCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmluCistLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuaW4JMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuaW4JMjAxMS0wMi0wOCAyMjoz OTo1Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNTU4IEBACisrIyBNYWtlZmlsZS5pbiBn ZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmln dXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAx OTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwg MjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMg VGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0 cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMg dGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKysKKytWUEFUSCA9 IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVk ZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQ QUNLQUdFQAorK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19j ZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytp bnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJP R1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9z aCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQo cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFM TCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5J TlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRA CisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZp bGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKysJJChzcmNkaXIpL3NvdXJjZXMubWsgJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytAUlVOX1RFU1RTX1RSVUVAbm9pbnN0X1BST0dS QU1TID0gdGVzdF9wb3N0Z3Jlc3FsJChFWEVFWFQpCisrc3ViZGlyID0gc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Rlc3QKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Cisr YW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdy ZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRp b25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9i c29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBz ID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJ JChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklH X0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJ TEVTID0KKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorK1BST0dSQU1TID0gJChub2luc3Rf UFJPR1JBTVMpCisrYW1fX29iamVjdHNfMSA9IHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVz cWwuJChPQkpFWFQpCisrYW1fdGVzdF9wb3N0Z3Jlc3FsX09CSkVDVFMgPSAkKGFtX19vYmplY3Rz XzEpCisrdGVzdF9wb3N0Z3Jlc3FsX09CSkVDVFMgPSAkKGFtX3Rlc3RfcG9zdGdyZXNxbF9PQkpF Q1RTKQorK3Rlc3RfcG9zdGdyZXNxbF9ERVBFTkRFTkNJRVMgPQorK3Rlc3RfcG9zdGdyZXNxbF9M SU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKKysJJChMSUJU T09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpIFwKKysJJCh0ZXN0X3Bvc3RncmVzcWxfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIFwKKysJJCh0ZXN0X3Bvc3RncmVzcWxfTERGTEFHUykgJChMREZM QUdTKSAtbyAkQAorK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVp bGRkaXIpL3NvY2kKKytkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVw Y29tcAorK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCisrYW1fX212ID0gbXYgLWYKKytD WFhDT01QSUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxB R1MpCisrTFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQorK0NYWExEID0gJChDWFgpCisrQ1hYTElO SyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgXAorKwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAk KEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAkKHRlc3RfcG9z dGdyZXNxbF9TT1VSQ0VTKQorK0RJU1RfU09VUkNFUyA9ICQodGVzdF9wb3N0Z3Jlc3FsX1NPVVJD RVMpCisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNURklMRVMgPSAkKERJU1Rf Q09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9D 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 QU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAKKytQ QUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBB VEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAor K1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElS UyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxf TERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JB TkxJQiA9IEBSQU5MSUJACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytT SEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJ RURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxf SEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBM T0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNf YnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIg PSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAK KythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0 X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAK KythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9f cXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisr YmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWls ZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29z QAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJA CisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2Rp ZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94 eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4 ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9z dEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisr aG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxk aXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBp bmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9v a0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2Nh bGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKytt YW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0g QG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAor K3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2Rp ciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytz aGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5 c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAor K3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBA dG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9 IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK3Bvc3RncmVzcWxfdGVzdF9oX3Nv dXJjZXMgPSAKKytwb3N0Z3Jlc3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorK01BSU5UQUlO RVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKyt0ZXN0X3Bvc3RncmVzcWxfU09VUkNFUyA9ICQo cG9zdGdyZXNxbF90ZXN0X2NjX3NvdXJjZXMpCisrdGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTID0g JChCT09TVF9DRkxBR1MpCisrdGVzdF9wb3N0Z3Jlc3FsX0xEQUREID0gCisrdGVzdF9wb3N0Z3Jl c3FsX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAt bGRsIFwKKysJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvbGlic29j aV9wb3N0Z3Jlc3FsLmxhIFwKKysJCSQoUE9TVEdSRVNRTF9MREZMQUdTKQorKworK2FsbDogYWxs LWFtCisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagorKyQoc3Jj ZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01h a2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykK KysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcykn IGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBp ZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAg ZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3Jj ZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9N YWtlZmlsZSc7IFwKKysJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01B S0UpIC0tZ251IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlCisrLlBSRUNJ T1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0 dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZp bGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2Nv bmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNh YzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGly KS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTog ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKKysK KytjbGVhbi1ub2luc3RQUk9HUkFNUzoKKysJQGxpc3Q9JyQobm9pbnN0X1BST0dSQU1TKSc7IHRl c3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisrCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisr CXJtIC1mICQkbGlzdCB8fCBleGl0ICQkPzsgXAorKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4 aXQgMDsgXAorKwlsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBz ZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCisrCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisrCXJt IC1mICQkbGlzdAorK3Rlc3RfcG9zdGdyZXNxbCQoRVhFRVhUKTogJCh0ZXN0X3Bvc3RncmVzcWxf T0JKRUNUUykgJCh0ZXN0X3Bvc3RncmVzcWxfREVQRU5ERU5DSUVTKSAKKysJQHJtIC1mIHRlc3Rf cG9zdGdyZXNxbCQoRVhFRVhUKQorKwkkKHRlc3RfcG9zdGdyZXNxbF9MSU5LKSAkKHRlc3RfcG9z dGdyZXNxbF9PQkpFQ1RTKSAkKHRlc3RfcG9zdGdyZXNxbF9MREFERCkgJChMSUJTKQorKworK21v c3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1j b21waWxlOgorKwktcm0gLWYgKi50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAg QGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlBv QGFtX19xdW90ZUAKKysKKysuY3BwLm86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09N UElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIp LyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBv YmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElM RSkgLWMgLW8gJEAgJDwKKysKKysuY3BwLm9iajoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChD WFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBg JChDWUdQQVRIX1cpICckPCdgCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERF UERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xB U0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKysK KysuY3BwLmxvOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRA IC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbworK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcg bGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1v ICRAICQ8CisrCisrdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vOiAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfcG9zdGdyZXNxbF9D WFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwu byAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5U cG8gLWMgLW8gdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KGFtX19tdikgJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuVHBvICQo REVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlBvCisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCcgb2JqZWN0PSd0ZXN0X3Bvc3Rn cmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFH UykgLWMgLW8gdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorKworK3Rlc3RfcG9zdGdyZXNxbC10ZXN0 LXBvc3RncmVzcWwub2JqOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90 ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3Rf cG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0 X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlRwbyAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVz dC1wb3N0Z3Jlc3FsLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jl c3FsLmNwcCc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgZmlgCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRl c3QtcG9zdGdyZXNxbC5UcG8gJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVz cWwuUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3Bw JyBvYmplY3Q9J3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqJyBsaWJ0b29sPW5v IEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK KytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X3Bvc3RncmVz cWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3Rn cmVzcWwub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3Bw JzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyBmaWAKKysKKyttb3N0bHlj bGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAt cmYgLmxpYnMgX2xpYnMKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChU QUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc CisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0g MTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisr VEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJ JChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXNldCB4OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJbGlz dD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVu aXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVu IGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAor KwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAg RU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBc CisrCXNoaWZ0OyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRo ZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2Zp eDsgXAorKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRB R1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIg JCR1bmlxdWU7IFwKKysJICBlbHNlIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChB TV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBm aTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMp ICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlz dD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVu aXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVu IGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAor KwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAg RU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBc CisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQo Q1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVu aXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3 ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAk KEdUQUdTX0FSR1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdT IElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklM RVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwq XS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwg c2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBc CisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9u ZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAi c3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRk aXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIg fCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwg XAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3Rf ZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhl biBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxl OyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQs LCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkg ICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMg Y2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3Jj ZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3Ag LWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkg ICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMg Y2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZp bGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0 IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChk aXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUK KytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtlZmlsZSAk KFBST0dSQU1TKQorK2luc3RhbGxkaXJzOgorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxs LWV4ZWM6IGluc3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisr dW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytp bnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElO U1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAg ICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFs bAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xl YW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYg JChDT05GSUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16 ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQ QVRIX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMg Y29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQg ZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4i CisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJ TkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tYW0KKysKKytjbGVhbi1hbTogY2xlYW4tZ2Vu ZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIFwKKysJbW9zdGx5Y2xlYW4t YW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorKwktcm0gLXJmIC4vJChERVBESVIpCisr CS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBp bGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tdGFncworKworK2R2aTogZHZpLWFt CisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtYW0KKysKKytodG1sLWFtOgorKworK2luZm86 IGluZm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxs LWR2aTogaW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4 ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWh0 bWwtYW06CisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KKysKKytpbnN0YWxsLWlu Zm8tYW06CisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFt CisrCisraW5zdGFsbC1wZGYtYW06CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorKwor K2luc3RhbGwtcHMtYW06CisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xl YW46IG1haW50YWluZXItY2xlYW4tYW0KKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYg TWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5 Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1v c3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczog cHMtYW0KKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6IGluc3RhbGwt YW0gaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVj ayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKysJY2xlYW4tbGlidG9vbCBjbGVhbi1u b2luc3RQUk9HUkFNUyBjdGFncyBkaXN0Y2xlYW4gXAorKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0 Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCisrCWRpc3RjbGVhbi10YWdzIGRpc3Rk aXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKKysJaW5zdGFsbCBpbnN0 YWxsLWFtIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAorKwlpbnN0 YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCisr CWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFu IFwKKysJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFt IFwKKysJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxk aXJzIFwKKysJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5 Y2xlYW4gXAorKwltb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5 Y2xlYW4tbGlidG9vbCBcCisrCXBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5p bnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKworKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJT ID0gJChwb3N0Z3Jlc3FsX3Rlc3RfaF9zb3VyY2VzKQorKworKyMgVGVsbCB2ZXJzaW9ucyBbMy41 OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhl cndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQu CisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC90ZXN0L3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAy MDAKK0BAIC0wLDAgKzEsMiBAQAorK3Bvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMgPQorK3Bvc3Rn cmVzcWxfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9jb25maWcuaC5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb25maWcuaC5pbgor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29uZmlnLmguaW4JMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb25maWcuaC5p bgkyMDExLTAyLTA4IDIyOjM5OjU0LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSwxNTggQEAK KysvKiBzb2NpL2NvbmZpZy5oLmluLiAgR2VuZXJhdGVkIGZyb20gY29uZmlndXJlLmFjIGJ5IGF1 dG9oZWFkZXIuICAqLworKworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3QgbGlicmFyeSBpcyBhdmFp bGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVAorKworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6 OkFzaW8gbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9BU0lPCisr CisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6RGF0ZV9UaW1lIGxpYnJhcnkgaXMgYXZhaWxhYmxl ICovCisrI3VuZGVmIEhBVkVfQk9PU1RfREFURV9USU1FCisrCisrLyogZGVmaW5lIGlmIHRoZSBC b29zdDo6RklMRVNZU1RFTSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBIQVZFX0JP T1NUX0ZJTEVTWVNURU0KKysKKysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpJT1N0cmVhbXMgbGli cmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9JT1NUUkVBTVMKKysKKysv KiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpNcGkgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5k ZWYgSEFWRV9CT09TVF9NUEkKKysKKysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpNcGlfUHl0aG9u IGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfTVBJX1BZVEhPTgor KworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlBST0dSQU1fT1BUSU9OUyBsaWJyYXJ5IGlzIGF2 YWlsYWJsZSAqLworKyN1bmRlZiBIQVZFX0JPT1NUX1BST0dSQU1fT1BUSU9OUworKworKy8qIGRl ZmluZSBpZiB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVm IEhBVkVfQk9PU1RfUkVHRVgKKysKKysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpTZXJpYWxpemF0 aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfU0VSSUFMSVpB VElPTgorKworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlNpZ25hbHMgbGlicmFyeSBpcyBhdmFp bGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9TSUdOQUxTCisrCisrLyogZGVmaW5lIGlmIHRo ZSBCb29zdDo6U1lTVEVNIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9P U1RfU1lTVEVNCisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6VEhSRUFEIGxpYnJhcnkgaXMg YXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfVEhSRUFECisrCisrLyogZGVmaW5lIGlm IHRoZSBCb29zdDo6VW5pdF90ZXN0X2ZyYW1ld29yayBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwor KyN1bmRlZiBIQVZFX0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUksKKysKKysvKiBEZWZpbmUgdG8g MSBpZiB5b3UgaGF2ZSB0aGUgPGNtYXRoPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9D TUFUSAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZGVxdWU+IGhlYWRlciBm aWxlLiAqLworKyN1bmRlZiBIQVZFX0RFUVVFCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDxkbGZjbi5oPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9ETEZDTl9ICisr CisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxmc3RyZWFtPiBoZWFkZXIgZmlsZS4g Ki8KKysjdW5kZWYgSEFWRV9GU1RSRUFNCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9JTlRUWVBFU19I CisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb21hbmlwPiBoZWFkZXIgZmls ZS4gKi8KKysjdW5kZWYgSEFWRV9JT01BTklQCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDxpb3N0cmVhbT4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfSU9TVFJFQU0K KysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbWl0cz4gaGVhZGVyIGZpbGUu ICovCisrI3VuZGVmIEhBVkVfTElNSVRTCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIDxsaXN0PiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9MSVNUCisrCisrLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtYXA+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBI QVZFX01BUAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWVtb3J5Lmg+IGhl YWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX01FTU9SWV9ICisrCisrLyogRGVmaW5lIHRvIDEg aWYgdGhlIE9yYWNsZSBPQ0kgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9P UkFDTEUKKysKKysvKiBEZWZpbmUgdG8gMSBpZiBQb3N0Z3JlU1FMIGxpYnJhcmllcyBhcmUgYXZh aWxhYmxlICovCisrI3VuZGVmIEhBVkVfUE9TVEdSRVNRTAorKworKy8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSA8cXVldWU+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1FVRVVF CisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzZXQ+IGhlYWRlciBmaWxlLiAq LworKyN1bmRlZiBIQVZFX1NFVAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8 c3N0cmVhbT4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfU1NUUkVBTQorKworKy8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkZXhjZXB0PiBoZWFkZXIgZmlsZS4gKi8KKysj dW5kZWYgSEFWRV9TVERFWENFUFQKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PHN0ZGludC5oPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9TVERJTlRfSAorKworKy8q IERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkbGliLmg+IGhlYWRlciBmaWxlLiAqLwor KyN1bmRlZiBIQVZFX1NURExJQl9ICisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhl IDxzdHJpbmc+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NUUklORworKworKy8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5ncy5oPiBoZWFkZXIgZmlsZS4gKi8KKysj dW5kZWYgSEFWRV9TVFJJTkdTX0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PHN0cmluZy5oPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9TVFJJTkdfSAorKworKy8q IERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVyIGZpbGUuICov CisrI3VuZGVmIEhBVkVfU1lTX1NUQVRfSAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZl IHRoZSA8c3lzL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NZU19UWVBF U19ICisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1bmlzdGQuaD4gaGVhZGVy IGZpbGUuICovCisrI3VuZGVmIEhBVkVfVU5JU1REX0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5 b3UgaGF2ZSB0aGUgPHZlY3Rvcj4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfVkVDVE9S CisrCisrLyogRGVmaW5lIHRvIHRoZSBzdWItZGlyZWN0b3J5IGluIHdoaWNoIGxpYnRvb2wgc3Rv cmVzIHVuaW5zdGFsbGVkIGxpYnJhcmllcy4KKysgICAqLworKyN1bmRlZiBMVF9PQkpESVIKKysK KysvKiBOYW1lIG9mIHBhY2thZ2UgKi8KKysjdW5kZWYgUEFDS0FHRQorKworKy8qIERlZmluZSB0 byB0aGUgYWRkcmVzcyB3aGVyZSBidWcgcmVwb3J0cyBmb3IgdGhpcyBwYWNrYWdlIHNob3VsZCBi ZSBzZW50LiAqLworKyN1bmRlZiBQQUNLQUdFX0JVR1JFUE9SVAorKworKy8qIERlZmluZSB0byB0 aGUgZnVsbCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KKysjdW5kZWYgUEFDS0FHRV9OQU1FCisr CisrLyogRGVmaW5lIHRvIHRoZSBmdWxsIG5hbWUgYW5kIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdl LiAqLworKyN1bmRlZiBQQUNLQUdFX1NUUklORworKworKy8qIERlZmluZSB0byB0aGUgb25lIHN5 bWJvbCBzaG9ydCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KKysjdW5kZWYgUEFDS0FHRV9UQVJO QU1FCisrCisrLyogRGVmaW5lIHRvIHRoZSBob21lIHBhZ2UgZm9yIHRoaXMgcGFja2FnZS4gKi8K KysjdW5kZWYgUEFDS0FHRV9VUkwKKysKKysvKiBEZWZpbmUgdG8gdGhlIHZlcnNpb24gb2YgdGhp cyBwYWNrYWdlLiAqLworKyN1bmRlZiBQQUNLQUdFX1ZFUlNJT04KKysKKysvKiBEZWZpbmUgaWYg eW91IHdhbnQgZXhjZXB0aW9ucyBoYW5kbGluZyAqLworKyN1bmRlZiBTT0NJX0VYQ0VQVElPTlMK KysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgQU5TSSBDIGhlYWRlciBmaWxlcy4g Ki8KKysjdW5kZWYgU1REQ19IRUFERVJTCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGNhbiBz YWZlbHkgaW5jbHVkZSBib3RoIDxzeXMvdGltZS5oPiBhbmQgPHRpbWUuaD4uICovCisrI3VuZGVm IFRJTUVfV0lUSF9TWVNfVElNRQorKworKy8qIFZlcnNpb24gbnVtYmVyIG9mIHBhY2thZ2UgKi8K KysjdW5kZWYgVkVSU0lPTgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9N YWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmFtCistLS0g c29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtl ZmlsZS5hbQkyMDA5LTA1LTA2IDAwOjI4OjEwLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwy OSBAQAorKyMjIGNvcmUgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtl ZmlsZS5jb21tb24KKytpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisrTUFJTlRBSU5F UkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK1NVQkRJUlMgPSAuIHRlc3QKKysKKysjRVhU UkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gLl9yb3cuY3BwIC5fc29jaS1zaW1wbGUu Y3BwIC5fc29jaS1zaW1wbGUuaCAuX3ZhbHVlcy1leGNoYW5nZS5oCisrCisrRVhUUkFfRElTVCA9 ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQorKworK2xpYl9MVExJQlJBUklF Uz0gbGlic29jaV9jb3JlLmxhCisrCisrbGlic29jaV9jb3JlX2xhX1NPVVJDRVM9ICQoY29yZV9o X3NvdXJjZXMpICQoY29yZV9jY19zb3VyY2VzKSAKKytsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1Mg PQorK2xpYnNvY2lfY29yZV9sYV9MSUJBREQgPQorK2xpYnNvY2lfY29yZV9sYV9MREZMQUdTID0g XAorKwkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFN X09QVElPTlNfTElCKSBcCisrCS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lP TikKKysKKytwa2dpbmNsdWRlX0hFQURFUlMgPSAkKGNvcmVfaF9zb3VyY2VzKQorK2lmIFNPQ0lf SEVBREVSU19CVVJJRUQKKytzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2Nv cmUKKytlbHNlCisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKKytlbmRpZgorK3Br Z2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCisrCitkaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2NvcmUvTWFrZWZpbGUuYmFzaWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFr ZWZpbGUuYmFzaWMJMjAxMS0wMi0wOSAwMDozMDozMi41OTI5MTYyNDIgKzAxMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCitAQCAtMSw3NiArMCwwIEBACistQ09NUElMRVIgPSBnKysKKy1D WFhGTEFHUyA9IC1XYWxsIC1wZWRhbnRpYyAtV25vLWxvbmctbG9uZworLUlOQ0xVREVESVJTID0g CistT0JKUyA9ICBzZXNzaW9uLm8gc3RhdGVtZW50Lm8gcm93Lm8gdmFsdWVzLm8gXAorLQlpbnRv LXR5cGUubyB1c2UtdHlwZS5vIFwKKy0JYmxvYi5vIHJvd2lkLm8gcHJvY2VkdXJlLm8gcmVmLWNv dW50ZWQtcHJlcGFyZS1pbmZvLm8gcmVmLWNvdW50ZWQtc3RhdGVtZW50Lm8gXAorLQlvbmNlLXRl bXAtdHlwZS5vIHByZXBhcmUtdGVtcC10eXBlLm8gZXJyb3IubyB0cmFuc2FjdGlvbi5vIGJhY2tl bmQtbG9hZGVyLm8gXAorLQljb25uZWN0aW9uLXBvb2wubyBzb2NpLXNpbXBsZS5vCistCistCist bGlic29jaV9jb3JlLmEgOiAke09CSlN9IAorLQlhciBydiAkQCAkPworLQlybSAqLm8KKy0KKy1z aGFyZWQgOiAke09CSlN9IAorLQkke0NPTVBJTEVSfSAtZlBJQyAtYyAkPyAke0NYWEZMQUdTfSAk e0lOQ0xVREVESVJTfQorLQkke0NPTVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfY29yZS5zbyAk e09CSlN9IAorLQlybSAqLm8KKy0KKy1zZXNzaW9uLm8gOiBzZXNzaW9uLmNwcAorLQkke0NPTVBJ TEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YXRlbWVudC5vIDog c3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVE SVJTfQorLQorLXJvdy5vIDogcm93LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdT fSAke0lOQ0xVREVESVJTfQorLQorLXZhbHVlcy5vIDogdmFsdWVzLmNwcAorLQkke0NPTVBJTEVS fSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLWludG8tdHlwZS5vIDogaW50 by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQorLQorLXVzZS10eXBlLm8gOiB1c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtD WFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0JCistYmxvYi5vIDogYmxvYi5jcHAKKy0JJHtDT01Q SUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1lcnJvci5vIDogZXJy b3IuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Cist Cistcm93aWQubyA6IHJvd2lkLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAk e0lOQ0xVREVESVJTfQorLQorLXByb2NlZHVyZS5vIDogcHJvY2VkdXJlLmNwcAorLQkke0NPTVBJ TEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXJlZi1jb3VudGVkLXBy ZXBhcmUtaW5mby5vIDogcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcAorLQkke0NPTVBJTEVS fSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXJlZi1jb3VudGVkLXN0YXRl bWVudC5vIDogcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAk e0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLW9uY2UtdGVtcC10eXBlLm8gOiBvbmNlLXRl bXAtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElS U30KKy0KKy1wcmVwYXJlLXRlbXAtdHlwZS5vIDogcHJlcGFyZS10ZW1wLXR5cGUuY3BwCistCSR7 Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistdHJhbnNhY3Rp b24ubyA6IHRyYW5zYWN0aW9uLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAk e0lOQ0xVREVESVJTfQorLQorLWJhY2tlbmQtbG9hZGVyLm8gOiBiYWNrZW5kLWxvYWRlci5jcHAK Ky0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1jb25u ZWN0aW9uLXBvb2wubyA6IGNvbm5lY3Rpb24tcG9vbC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8g JHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zb2NpLXNpbXBsZS5vIDogc29jaS1zaW1w bGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Cist CistCistY2xlYW4gOgorLQlybSAtZiBsaWJzb2NpX2NvcmUuYSBsaWJzb2NpX2NvcmUuc28KK2Rp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuaW4gc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvY29yZS9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAor KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuaW4JMjAxMS0wMi0wOCAy MjozOTo1Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsOTk1IEBACisrIyBNYWtlZmlsZS5p biBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29u ZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3 LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAw NiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgor KyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBk aXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcg YXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAor KyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKysKKysKKytW UEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtn bGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNk aXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhf U0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1t IDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3No X1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9E QVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5T VEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VO SU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1 aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01N T04gPSAkKHBrZ2luY2x1ZGVfSEVBREVSUykgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKysJJChz cmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9zb3VyY2VzLm1rIFwKKysJJCh0b3Bfc3JjZGly KS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBzb2NpL2NvcmUKKytBQ0xPQ0FMX000ID0gJCh0 b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2Rp cikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJl LmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJ R1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAk KGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2Nv bmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMg PQorK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8 IHNlZCAnc3wufC58ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisrICAgICQo c3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBc CisrICAgICopIGY9JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3RyaXBfZGlyID0gZj1gZWNobyAk JHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CisrYW1fX2luc3RhbGxfbWF4ID0gNDAKKythbV9fbm9i YXNlX3N0cmlwX3NldHVwID0gXAorKyAgc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKnxdL1xcXFwmL2cnYAorK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisrICBm b3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJz dHJpcC98fCIKKythbV9fbm9iYXNlX2xpc3QgPSAkKGFtX19ub2Jhc2Vfc3RyaXBfc2V0dXApOyBc CisrICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorKyAgc2Vk ICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1te L10qJCQsXDEsJyB8IFwKKysgICQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiIgfSB7IGZp bGVzWyQkMl0gPSBmaWxlc1skJDJdICIgIiAkJDE7IFwKKysgICAgaWYgKCsrblskJDJdID09ICQo YW1fX2luc3RhbGxfbWF4KSkgXAorKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQk Ml0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKysgICAgRU5EIHsgZm9yIChkaXIgaW4gZmls ZXMpIHByaW50IGRpciwgZmlsZXNbZGlyXSB9JworK2FtX19iYXNlX2xpc3QgPSBcCisrICBzZWQg JyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorKyAgc2Vk ICckJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJworK2FtX19pbnN0YWxsZGlycyA9ICIkKERF U1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrTFRMSUJSQVJJ RVMgPSAkKGxpYl9MVExJQlJBUklFUykKKytsaWJzb2NpX2NvcmVfbGFfREVQRU5ERU5DSUVTID0K KythbV9fb2JqZWN0c18xID0KKythbV9fb2JqZWN0c18yID0gbGlic29jaV9jb3JlX2xhLWJhY2tl bmQtbG9hZGVyLmxvIFwKKysJbGlic29jaV9jb3JlX2xhLWJsb2IubG8gbGlic29jaV9jb3JlX2xh LWNvbm5lY3Rpb24tcG9vbC5sbyBcCisrCWxpYnNvY2lfY29yZV9sYS1lcnJvci5sbyBsaWJzb2Np X2NvcmVfbGEtaW50by10eXBlLmxvIFwKKysJbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBl LmxvIFwKKysJbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvIFwKKysJbGlic29j aV9jb3JlX2xhLXByb2NlZHVyZS5sbyBcCisrCWxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1w cmVwYXJlLWluZm8ubG8gXAorKwlsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50 LmxvIFwKKysJbGlic29jaV9jb3JlX2xhLXJvdy5sbyBsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8g XAorKwlsaWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbyBsaWJzb2NpX2NvcmVfbGEtc29jaS1zaW1w bGUubG8gXAorKwlsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvIGxpYnNvY2lfY29yZV9sYS10 cmFuc2FjdGlvbi5sbyBcCisrCWxpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbyBsaWJzb2NpX2Nv cmVfbGEtdmFsdWVzLmxvCisrYW1fbGlic29jaV9jb3JlX2xhX09CSkVDVFMgPSAkKGFtX19vYmpl Y3RzXzEpICQoYW1fX29iamVjdHNfMikKKytsaWJzb2NpX2NvcmVfbGFfT0JKRUNUUyA9ICQoYW1f bGlic29jaV9jb3JlX2xhX09CSkVDVFMpCisrbGlic29jaV9jb3JlX2xhX0xJTksgPSAkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAorKwkkKExJQlRPT0xGTEFHUykgLS1t b2RlPWxpbmsgJChDWFhMRCkgXAorKwkkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgXAorKwkkKGxpYnNvY2lfY29yZV9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACisr REVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQor K2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCisrYW1fX2Rl cGZpbGVzX21heWJlID0gZGVwZmlsZXMKKythbV9fbXYgPSBtdiAtZgorK0NYWENPTVBJTEUgPSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytMVENYWENP TVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hY RkxBR1MpICQoQ1hYRkxBR1MpCisrQ1hYTEQgPSAkKENYWCkKKytDWFhMSU5LID0gJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9k ZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykg XAorKwkkKExERkxBR1MpIC1vICRACisrQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCisrCSQoQ1BQRkxBR1MpICQo QU1fQ0ZMQUdTKSAkKENGTEFHUykKKytMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAkKEND KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisrQ0NMRCA9ICQoQ0MpCisr TElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFN X0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAkKGxpYnNvY2lfY29y ZV9sYV9TT1VSQ0VTKQorK0RJU1RfU09VUkNFUyA9ICQobGlic29jaV9jb3JlX2xhX1NPVVJDRVMp CisrUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmkt cmVjdXJzaXZlIFwKKysJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRh LXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJz aXZlIFwKKysJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwK KysJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVj dXJzaXZlIFwKKysJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUg cGRmLXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrSEVB REVSUyA9ICQocGtnaW5jbHVkZV9IRUFERVJTKQorK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0g bW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBkaXN0Y2xlYW4tcmVj dXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrQU1fUkVDVVJTSVZFX1RBUkdFVFMg PSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCisrCSQoUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCisrCWRpc3RkaXIK KytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElS UykKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZP UykgJChFWFRSQV9ESVNUKQorK2FtX19yZWxhdGl2aXplID0gXAorKyAgZGlyMD1gcHdkYDsgXAor KyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCisrICBzZWRfcmVzdD0ncyxe W14vXSovKiwsJzsgXAorKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKKysg IHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAorKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIx IjsgZG8gXAorKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3Qi YDsgXAorKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAorKyAgICAgIGlmIHRl c3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCisrICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAi IHwgc2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKKysgICAgICAgIGRpcjA9YGVjaG8g IiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAorKyAgICAgIGVsc2UgXAorKyAg ICAgICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisr ICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAorKyAgICAgICAg ICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKysgICAgICAg IGVsc2UgXAorKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCisrICAgICAgICBmaTsgXAor KyAgICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKKysgICAgICBmaTsgXAorKyAgICBm aTsgXAorKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwK KysgIGRvbmU7IFwKKysgIHJlbGRpcj0iJCRkaXIyIgorK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lf aW5jbHVkZV9kaXIpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FS ID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURF UkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9 IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVf TElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JP T1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0g QEJPT1NUX0xJQlNACisrQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAorK0JPT1NUX01Q SV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAorK0JPT1NUX1BST0dSQU1fT1BU SU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9QWVRIT05fTElC ID0gQEJPT1NUX1BZVEhPTl9MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJ QkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAK KytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9TWVNURU1f TElCID0gQEJPT1NUX1NZU1RFTV9MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJF QURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVT VF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09T VF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0g QENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAg PSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVO SVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRf TElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lP TkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhE RVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dA CisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVU SUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0g QEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9 IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBA R0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5T VEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9 IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisr SU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBM REAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBA TElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5f U0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01L RElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FM X0NfTElCID0gQE1ZU1FMX0NfTElCQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNR TF9MSUJTID0gQE1ZU1FMX0xJQlNACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAor K05NID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09C SkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09D SV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9S QUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJT SU9OQAorK09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0g QFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFD S0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NU UklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVVJM ID0gQFBBQ0tBR0VfVVJMQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisr UEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NP TkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxB R1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xE RkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NU R1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytTRUQgPSBAU0VEQAorK1NFVF9N QUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQg PSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytV UExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisr YWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJA CisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGly ID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9 IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNs dWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RA CisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3Vu dGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAor K2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisr YnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKyti dWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIg PSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJA CisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNf b2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBA Z3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0 X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBA aG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVk ZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAor K2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9 IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9 IEBsb2NhbHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9w QAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAor K3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytz ZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3Ny Y2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlh cyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4 QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3Jj ZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisr Y29yZV9oX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNr ZW5kLWxvYWRlci5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuaCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLWV4Y2hhbmdlLmggXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtZ3JlZ29yaWFuLWRhdGUuaCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC1mdXNpb24uaCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC1vcHRpb25hbC5oIFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LXR1cGxlLmggXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvZXJyb3IuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9l eGNoYW5nZS10cmFpdHMuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRv LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmggXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuaCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5oIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5oIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5oIFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5oIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3Jvdy1leGNoYW5nZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Jvd2lkLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQtZXhj aGFuZ2UuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dzZXQuaCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1iYWNrZW5kLmggXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvc29jaS1jb25maWcuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9zb2NpLXBsYXRmb3JtLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvc29jaS1zaW1wbGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2Np LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmggXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uaCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWNvbnZlcnNpb24uaCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWNvbnZlcnNpb24tdHJhaXRzLmggXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1ob2xkZXIuaCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS90eXBlLXB0ci5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3VzZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBl LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmggXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLWV4Y2hhbmdlLmgKKysKKytjb3JlX2Nj X3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxv YWRlci5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAgXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAgXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvcm93aWQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Np b24uY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNw cCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0g TWFrZWZpbGUuaW4KKytTVUJESVJTID0gLiB0ZXN0CisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lf Q09NUEFUSUJJTElUWSA9IC5fcm93LmNwcCAuX3NvY2ktc2ltcGxlLmNwcCAuX3NvY2ktc2ltcGxl LmggLl92YWx1ZXMtZXhjaGFuZ2UuaAorK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NP Q0lfQ09NUEFUSUJJTElUWSkKKytsaWJfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX2NvcmUubGEKKyts aWJzb2NpX2NvcmVfbGFfU09VUkNFUyA9ICQoY29yZV9oX3NvdXJjZXMpICQoY29yZV9jY19zb3Vy Y2VzKSAKKytsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MgPSAKKytsaWJzb2NpX2NvcmVfbGFfTElC QUREID0gCisrbGlic29jaV9jb3JlX2xhX0xERkxBR1MgPSBcCisrCSQoQk9PU1RfTElCUykgJChC T09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKKysJLXZl cnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorKworK3BrZ2luY2x1ZGVfSEVB REVSUyA9ICQoY29yZV9oX3NvdXJjZXMpCisrQFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0VAc29j aV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKKytAU09DSV9IRUFERVJTX0JVUklFRF9UUlVF QHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvY29yZQorK2FsbDogYWxsLXJl Y3Vyc2l2ZQorKworKy5TVUZGSVhFUzoKKysuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKKysk KHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGly KS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2Rl cHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2Rl cHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYm IHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAg ICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9w X3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9jb3JlL01ha2VmaWxlJzsgXAorKwkk KGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9j b3JlL01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2Rpcikv TWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBp biBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAg ZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChz dWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZp bGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1 czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykK KysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykK KysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChhbV9f YWNsb2NhbF9tNF9kZXBzKToKKytpbnN0YWxsLWxpYkxUTElCUkFSSUVTOiAkKGxpYl9MVExJQlJB UklFUykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQobGliZGlyKSIgfHwgJChN S0RJUl9QKSAiJChERVNURElSKSQobGliZGlyKSIKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVT KSc7IHRlc3QgLW4gIiQobGliZGlyKSIgfHwgbGlzdD07IFwKKysJbGlzdDI9OyBmb3IgcCBpbiAk JGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBcCisrCSAgICBsaXN0Mj0iJCRs aXN0MiAkJHAiOyBcCisrCSAgZWxzZSA6OyBmaTsgXAorKwlkb25lOyBcCisrCXRlc3QgLXogIiQk bGlzdDIiIHx8IHsgXAorKwkgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RSSVBf RkxBRykgJCRsaXN0MiAnJChERVNURElSKSQobGliZGlyKSciOyBcCisrCSAgJChMSUJUT09MKSAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFM TCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICQkbGlzdDIgIiQoREVTVERJUikkKGxpYmRpcikiOyBc CisrCX0KKysKKyt1bmluc3RhbGwtbGliTFRMSUJSQVJJRVM6CisrCUAkKE5PUk1BTF9VTklOU1RB TEwpCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyB0ZXN0IC1uICIkKGxpYmRpcikiIHx8 IGxpc3Q9OyBcCisrCWZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgICQoYW1fX3N0cmlwX2Rpcikg XAorKwkgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAnJChERVNURElSKSQobGliZGlyKS8kJGYnIjsgXAor KwkgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 dW5pbnN0YWxsIHJtIC1mICIkKERFU1RESVIpJChsaWJkaXIpLyQkZiI7IFwKKysJZG9uZQorKwor K2NsZWFuLWxpYkxUTElCUkFSSUVTOgorKwktdGVzdCAteiAiJChsaWJfTFRMSUJSQVJJRVMpIiB8 fCBybSAtZiAkKGxpYl9MVExJQlJBUklFUykKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7 IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGRpcj0iYGVjaG8gJCRwIHwgc2VkIC1lICdzfC9b Xi9dKiQkfHwnYCI7IFwKKysJICB0ZXN0ICIkJGRpciIgIT0gIiQkcCIgfHwgZGlyPS47IFwKKysJ ICBlY2hvICJybSAtZiBcIiQke2Rpcn0vc29fbG9jYXRpb25zXCIiOyBcCisrCSAgcm0gLWYgIiQk e2Rpcn0vc29fbG9jYXRpb25zIjsgXAorKwlkb25lCisrbGlic29jaV9jb3JlLmxhOiAkKGxpYnNv Y2lfY29yZV9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV9sYV9ERVBFTkRFTkNJRVMpIAorKwkk KGxpYnNvY2lfY29yZV9sYV9MSU5LKSAtcnBhdGggJChsaWJkaXIpICQobGlic29jaV9jb3JlX2xh X09CSkVDVFMpICQobGlic29jaV9jb3JlX2xhX0xJQkFERCkgJChMSUJTKQorKworK21vc3RseWNs ZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxl OgorKwktcm0gLWYgKi50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIuUGxvQGFtX19x dW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikv bGlic29jaV9jb3JlX2xhLWJsb2IuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24t cG9vbC5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90 ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtZXJyb3IuUGxvQGFtX19xdW90ZUAKKytAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3Jl X2xhLWludG8tdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAg QGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuUGxv QGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLlBsb0BhbV9fcXVvdGVACisr QEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS1wcm9jZWR1cmUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXBy ZXBhcmUtaW5mby5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFt X19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50 LlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4v JChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3cuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJV RUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJv d2lkLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3Rl QC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zZXNzaW9uLlBsb0BhbV9fcXVvdGVACisrQEFN REVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS1zb2NpLXNpbXBsZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVk ZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LlBsb0Bh bV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9U UlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt dXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9f cXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXZhbHVlcy5QbG9AYW1fX3F1b3RlQAor KworKy5jcHAubzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAg LU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxp YnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAk PAorKworKy5jcHAub2JqOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1N VCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykg JyQ8J2AKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8g JChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo Q1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorKworKy5jcHAubG86Cisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYg JChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFt X19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBA QU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBE SVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisr QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKyts aWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2JhY2tlbmQtbG9hZGVyLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtTVQgbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIuVHBvIC1jIC1vIGxpYnNvY2lfY29y ZV9sYS1iYWNrZW5kLWxvYWRlci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv YmFja2VuZC1sb2FkZXIuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9f bXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIuVHBvICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIuUGxvCisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQt bG9hZGVyLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8nIGxp YnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJB Q0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxp YnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEt YmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1ibG9iLmxvIC1NRCAt TVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmxvYi5UcG8gLWMgLW8gbGlic29jaV9j b3JlX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1ibG9iLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJsb2IuUGxvCisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Jsb2IuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1ibG9iLmxvJyBsaWJ0b29sPXllcyBA QU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBE SVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisr QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo bGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVf bGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwCisrCisr bGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvY29ubmVjdGlvbi1wb29sLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wp ICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbyAtTUQgLU1QIC1NRiAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5UcG8gLWMgLW8gbGlic29j aV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wuVHBv ICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLlBsbworK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9jb25uZWN0aW9uLXBvb2wuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9u LXBvb2wubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkg IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAKKysKKyts aWJzb2NpX2NvcmVfbGEtZXJyb3IubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNw cAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3Jl X2xhLWVycm9yLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtZXJyb3Iu VHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1lcnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvZXJyb3IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9lcnJvci5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtZXJyb3IuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtZXJyb3IuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVf bGEtZXJyb3IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9P TCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1lcnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9lcnJvci5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxv OiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvIC1N RCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtaW50by10eXBlLlRwbyAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS1pbnRvLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAnIG9iamVjdD0n bGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcAorKwor K2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvb25jZS10ZW1wLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG8gLU1EIC1NUCAtTUYgJChE RVBESVIpL2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9j b3JlX2xhLW9uY2UtdGVtcC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9vbmNlLXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFt X19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5UcG8gJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10 ZW1wLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbycg bGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcAorKworK2xpYnNvY2lfY29yZV9s YS1wcmVwYXJlLXRlbXAtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10 ZW1wLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBs aWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9jb3Jl X2xhLXByZXBhcmUtdGVtcC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5U cG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5QbG8KKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1wcmVw YXJlLXRlbXAtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10 eXBlLmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG86ICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3Byb2NlZHVyZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09M KSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG8gLU1EIC1NUCAtTUYgJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1w cm9jZWR1cmUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVy ZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtcHJvY2VkdXJlLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByb2NlZHVy ZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEt cHJvY2VkdXJlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwCisrCisrbGlic29jaV9jb3JlX2xh LXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVm LWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUt aW5mby5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1p bmZvLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVm LWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19t dikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uVHBv ICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLlBsbwor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwJyBvYmplY3Q9J2xpYnNvY2lf Y29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJB Q0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yZWYt Y291bnRlZC1wcmVwYXJlLWluZm8ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAKKysKKytsaWJz b2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo TElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50Lmxv IC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVt ZW50LlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRl ZC1zdGF0ZW1lbnQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5UcG8gJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQuUGxvCisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1j b3VudGVkLXN0YXRlbWVudC5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVk LXN0YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQo ZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJU T09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50 ZWQtc3RhdGVtZW50LmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1yb3cubG86ICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3Jvdy5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLU1UIGxpYnNvY2lfY29yZV9sYS1yb3cubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1yb3cuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yb3cubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChh bV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93LlRwbyAkKERFUERJUikvbGlic29j aV9jb3JlX2xhLXJvdy5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcCcgb2JqZWN0PSdsaWJzb2NpX2Nv cmVfbGEtcm93LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcm93LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9yb3cuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9yb3cuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXJvd2lkLmxvOiAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJU T09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1yb3dpZC5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcm93aWQu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwCisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlRw byAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlBsbworK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5j cHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXJvd2lkLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBC QUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcm93 aWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwCisrCisrbGli c29jaV9jb3JlX2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24u Y3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2Nv cmVfbGEtc2Vzc2lvbi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNl c3Npb24uVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5UcG8gJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS1zZXNzaW9uLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NM QVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29y ZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXNlc3Npb24u bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcAorKworK2xp YnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29j aS1zaW1wbGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBs aWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1zb2NpLXNpbXBsZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXNvY2ktc2lt cGxlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxl LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS1zb2NpLXNpbXBsZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNp bXBsZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29y ZV9sYS1zb2NpLXNpbXBsZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcAorKworK2xp YnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRl bWVudC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfY29yZV9sYS1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc3RhdGVt ZW50LlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5QbG8KKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvc3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9zdGF0ZW1lbnQuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxv OiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLlRwbyAt YyAtbyBsaWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLlRwbyAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLlBsbworK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2Fj dGlvbi5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2Np X2NvcmVfbGEtdHJhbnNhY3Rpb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3RyYW5zYWN0aW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvdHJhbnNhY3Rpb24uY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvOiAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbyAtTUQgLU1Q IC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2Np X2NvcmVfbGEtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Vz ZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv dXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXVz ZS10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3Jl X2xhLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwCisrCisrbGlic29jaV9jb3JlX2xh LXZhbHVlcy5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9j b3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXZhbHVlcy5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXZhbHVlcy5UcG8gLWMgLW8g bGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvdmFsdWVzLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvdmFsdWVzLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS12YWx1ZXMuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdmFs dWVzLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS12 YWx1ZXMubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkg IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS12YWx1ZXMubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3ZhbHVlcy5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0g LWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKytpbnN0 YWxsLXBrZ2luY2x1ZGVIRUFERVJTOiAkKHBrZ2luY2x1ZGVfSEVBREVSUykKKysJQCQoTk9STUFM X0lOU1RBTEwpCisrCXRlc3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkgIiQo REVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgorKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMp JzsgdGVzdCAtbiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgbGlzdD07IFwKKysJZm9yIHAgaW4gJCRs aXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2Rp cikvIjsgZmk7IFwKKysJICBlY2hvICIkJGQkJHAiOyBcCisrCWRvbmUgfCAkKGFtX19iYXNlX2xp c3QpIHwgXAorKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCisrCSAgZWNobyAiICQoSU5TVEFMTF9I RUFERVIpICQkZmlsZXMgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyI7IFwKKysJICAkKElO U1RBTExfSEVBREVSKSAkJGZpbGVzICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIgfHwgZXhp dCAkJD87IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzoKKysJQCQo Tk9STUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IHRlc3Qg LW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBcCisrCWZpbGVzPWBmb3IgcCBpbiAkJGxp c3Q7IGRvIGVjaG8gJCRwOyBkb25lIHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCisrCXRlc3QgLW4g IiQkZmlsZXMiIHx8IGV4aXQgMDsgXAorKwllY2hvICIgKCBjZCAnJChERVNURElSKSQocGtnaW5j bHVkZWRpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorKwljZCAiJChERVNURElSKSQocGtn aW5jbHVkZWRpcikiICYmIHJtIC1mICQkZmlsZXMKKysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3Vi ZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0 aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgor KyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBl ZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25m aWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVz ZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOwor KyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBj b21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdl eGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBp biBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15 ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJn ZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBp biAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkg ICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAor KwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAor KwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2Nh bF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRl c3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysK KyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKysJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7 IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJ ICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBc CisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBp biBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9T VUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAor KwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwK KysJICBmaTsgXAorKwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hv ICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBc CisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3Qg IiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFt IjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBm aTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg JCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRl c3QgLXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZv ciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChh bV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRv bmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1 YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lE OiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQo U09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1g Zm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8g JCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQo QVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsg aWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1r aWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAk KEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19G SUxFUykgJChMSVNQKQorKwlzZXQgeDsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdT KSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkg IGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisr CWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07 IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBk byBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRl c3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVf b3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJ bGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisr CXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0 aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwg XAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAg ICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdg OyBcCisrCXNoaWZ0OyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7 IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5 X2ZpeDsgXAorKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQo RVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQk QCIgJCR1bmlxdWU7IFwKKysJICBlbHNlIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykg JChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJ ICBmaTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChI RUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklM RVMpICQoTElTUCkKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAor KwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FS R1MpIFwKKysJICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0 b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwK KysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRh Z3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisr ZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8 IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8g IiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0 PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBk byBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7 dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7 dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVj aG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikv fDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlm b3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0 ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYg dGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBz ZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQk ZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAh IC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAg ICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0 aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIi IHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAh IC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAg ICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAg ZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3Ag LXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAor KwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNl IFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtE SVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZp OyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJ ICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCisrCSAgICAk KGFtX19yZWxhdGl2aXplKTsgXAorKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAg IGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAorKwkgICAgJChhbV9fcmVs YXRpdml6ZSk7IFwKKysJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZWNo byAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0i JCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAorKwkgICAg ZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBh bV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAorKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRp ciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3Bf ZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIkJG5ld19k aXN0ZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhf Y2hlY2s9OiBcCisrCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKysJICAgICAgICBkaXN0ZGlyKSBc CisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxs LWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJB UklFUykgJChIRUFERVJTKQorK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKKytp bnN0YWxsZGlycy1hbToKKysJZm9yIGRpciBpbiAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVT VERJUikkKHBrZ2luY2x1ZGVkaXIpIjsgZG8gXAorKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1L RElSX1ApICIkJGRpciI7IFwKKysJZG9uZQorK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCisr aW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCisraW5zdGFsbC1kYXRhOiBpbnN0 YWxsLWRhdGEtcmVjdXJzaXZlCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisrCisr aW5zdGFsbC1hbTogYWxsLWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4 ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVj dXJzaXZlCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFM TF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BS T0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwK KysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JB TV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJp YzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAt eiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykK KysJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRI X0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisrCisrbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZv ciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5 IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRB SU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFu OiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJM VExJQlJBUklFUyBjbGVhbi1saWJ0b29sIFwKKysJbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xl YW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYg TWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3Rj bGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUK KysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytodG1sLWFtOgorKwor K2luZm86IGluZm8tcmVjdXJzaXZlCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06 IGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmkt cmVjdXJzaXZlCisrCisraW5zdGFsbC1kdmktYW06CisrCisraW5zdGFsbC1leGVjLWFtOiBpbnN0 YWxsLWxpYkxUTElCUkFSSUVTCisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJz aXZlCisrCisraW5zdGFsbC1odG1sLWFtOgorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZv LXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mby1hbToKKysKKytpbnN0YWxsLW1hbjoKKysKKytp bnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wZGYtYW06Cisr CisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBzLWFtOgor KworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNs ZWFuLXJlY3Vyc2l2ZQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQor K21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVy aWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xl YW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3Rs eWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisr cHM6IHBzLXJlY3Vyc2l2ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxs LWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworKy5NQUtFOiAk KFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1 cnNpdmUgXAorKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKKysKKysu UEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENU QUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5l cmljIFwKKysJY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBjdGFncyBjdGFncy1y ZWN1cnNpdmUgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVy aWMgXAorKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmkt YW0gaHRtbCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0 YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0g aW5zdGFsbC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0 bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbGliTFRMSUJS QVJJRVMgaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAorKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxs LXBrZ2luY2x1ZGVIRUFERVJTIGluc3RhbGwtcHMgXAorKwlpbnN0YWxsLXBzLWFtIGluc3RhbGwt c3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBcCisrCWluc3RhbGxkaXJzIGluc3Rh bGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMg bW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCisrCW1vc3RseWNsZWFuLWdlbmVyaWMg bW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKysJdGFncyB0YWdzLXJl Y3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIFwKKysJdW5pbnN0YWxsLWxpYkxUTElCUkFS SUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworK0BTRVRfTUFLRUAKKysKKysjIFRl bGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFy aWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkg bWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2NvcmUvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3NvdXJj ZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvc291cmNlcy5tawkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2NvcmUvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAorQEAg LTAsMCArMSw1OCBAQAorK2NvcmVfaF9zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9ibG9iLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi1l eGNoYW5nZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LWdyZWdv cmlhbi1kYXRlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtZnVz aW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3Qtb3B0aW9uYWwu aCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC10dXBsZS5oIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5oIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmggXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvZXhjaGFuZ2UtdHJhaXRzLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvaW50by5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2lu dG8tdHlwZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10 eXBlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5 cGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuaCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8u aCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1l bnQuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuaCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3ctZXhjaGFuZ2UuaCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3Jvd2lkLWV4Y2hhbmdlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvcm93c2V0LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5o IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktYmFja2VuZC5oIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktY29uZmlnLmggXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvc29jaS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0 YXRlbWVudC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9u LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252ZXJzaW9uLmgg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252ZXJzaW9uLXRyYWl0 cy5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtaG9sZGVyLmggXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1wdHIuaCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS91c2UtdHlwZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Zh bHVlcy5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy1leGNoYW5n ZS5oCisrY29yZV9jY19zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvYmFja2VuZC1sb2FkZXIuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Jsb2IuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24t cG9vbC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAgXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAgXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9zZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9z b2NpLXNpbXBsZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVt ZW50LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5j cHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKK2RpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2NvcmUvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5hbQkyMDA5 LTA1LTA2IDAwOjI5OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyNiBAQAorKyMjIGNv cmUgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24K KytpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMg PSBNYWtlZmlsZS5pbgorKworK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9Cisr CisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQorKwor K25vaW5zdF9MVExJQlJBUklFUz0gbGlic29jaV9jb3JlX3Rlc3QubGEKKysKKytsaWJzb2NpX2Nv cmVfdGVzdF9sYV9TT1VSQ0VTPSAkKGNvcmVfdGVzdF9oX3NvdXJjZXMpCisrbGlic29jaV9jb3Jl X3Rlc3RfbGFfQ1hYRkxBR1MgPQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0xJQkFERCA9CisrI2xp YnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1MgPSAtdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJS QVJZX1ZFUlNJT04pCisrbGlic29jaV9jb3JlX3Rlc3RfbGFfTERGTEFHUyA9CisrCisrcGtnaW5j bHVkZV9IRUFERVJTID0gJChjb3JlX3Rlc3RfaF9zb3VyY2VzKQorK2lmIFNPQ0lfSEVBREVSU19C VVJJRUQKKytzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2NvcmUvdGVzdAor K2Vsc2UKKytzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQorK2VuZGlmCisrcGtnaW5j bHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9j b3JlL3Rlc3QvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVz dC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5pbgkyMDExLTAyLTA4IDIy OjM5OjU3LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw1NjMgQEAKKysjIE1ha2VmaWxlLmlu IGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25m aWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcs IDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2 LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyBJbmMuCisr IyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRp c3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBh cyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Cisr IyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorKworKworK1ZQ QVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2ds aWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2Rp cikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9T RVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0g NjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hf U0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RB VEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNU QUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5J TlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVp bGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1P TiA9ICQocGtnaW5jbHVkZV9IRUFERVJTKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAorKwkkKHNy Y2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMubWsgXAorKwkkKHRvcF9zcmNkaXIp L01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IHNvY2kvY29yZS90ZXN0CisrQUNMT0NBTF9NNCA9 ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215 c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29u ZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChD T05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJz ID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29j aS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrQ09ORklHX0NMRUFOX1ZQQVRIX0ZJ TEVTID0KKytMVExJQlJBUklFUyA9ICQobm9pbnN0X0xUTElCUkFSSUVTKQorK2xpYnNvY2lfY29y ZV90ZXN0X2xhX0RFUEVOREVOQ0lFUyA9CisrYW1fX29iamVjdHNfMSA9CisrYW1fbGlic29jaV9j b3JlX3Rlc3RfbGFfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkKKytsaWJzb2NpX2NvcmVfdGVz dF9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTKQorK2xpYnNv Y2lfY29yZV90ZXN0X2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZM QUdTKSBcCisrCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdT KSAkKENGTEFHUykgXAorKwkkKGxpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1MpICQoTERGTEFH UykgLW8gJEAKKytERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxk ZGlyKS9zb2NpCisrQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCisrCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAk KENGTEFHUykKKytMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisrQ0NMRCA9ICQoQ0MpCisrTElOSyA9ICQoTElC VE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0t bW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwK KysJJChMREZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX1NP VVJDRVMpCisrRElTVF9TT1VSQ0VTID0gJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTKQor K2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNl ZCAnc3wufC58ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisrICAgICQoc3Jj ZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCisr ICAgICopIGY9JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3RyaXBfZGlyID0gZj1gZWNobyAkJHAg fCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CisrYW1fX2luc3RhbGxfbWF4ID0gNDAKKythbV9fbm9iYXNl X3N0cmlwX3NldHVwID0gXAorKyAgc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQg J3MvW10uW14kJFxcKnxdL1xcXFwmL2cnYAorK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisrICBmb3Ig cCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJp cC98fCIKKythbV9fbm9iYXNlX2xpc3QgPSAkKGFtX19ub2Jhc2Vfc3RyaXBfc2V0dXApOyBcCisr ICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorKyAgc2VkICJz fCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10q JCQsXDEsJyB8IFwKKysgICQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiIgfSB7IGZpbGVz WyQkMl0gPSBmaWxlc1skJDJdICIgIiAkJDE7IFwKKysgICAgaWYgKCsrblskJDJdID09ICQoYW1f X2luc3RhbGxfbWF4KSkgXAorKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0g PSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKysgICAgRU5EIHsgZm9yIChkaXIgaW4gZmlsZXMp IHByaW50IGRpciwgZmlsZXNbZGlyXSB9JworK2FtX19iYXNlX2xpc3QgPSBcCisrICBzZWQgJyQk IU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorKyAgc2VkICck JCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJworK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RE SVIpJChwa2dpbmNsdWRlZGlyKSIKKytIRUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCisr RVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9O KSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK3BrZ2luY2x1ZGVk aXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0g QEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIg PSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JP T1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09T VF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNU RU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytC T09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElC QAorK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAorK0JPT1NU X1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09T VF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJP T1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJ WkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytC T09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9 IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJP T1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVS U0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05f TElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENG TEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZM QUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklH QAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQ UFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQ TU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9 IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVU SUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NA CisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQ QAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZ X1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lO U1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RB TExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFM TF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JB TUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpT QAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAor K0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1B S0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZM QUdTQAorK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAorK01ZU1FMX0RJUlMgPSBATVlTUUxf RElSU0AKKytNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNR TF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBP QkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNA CisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9M REZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JB Q0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAK KytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdS RVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9 IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAor K1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdF X1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQ RVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9T VEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQ T1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVS U0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytTRUQgPSBA U0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVB REVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9 IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0g QFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0g QGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fi c190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAor K2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklO QAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9f bGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190 YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxk ID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBi dWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxk X3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisr ZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2Rp ciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlk aXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhA CisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9h bGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9z dF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVk aXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBp bnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisr bGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9j YWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJf cCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIg PSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9 IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBA c2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0 YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAor K3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3Bf YnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2Rp ciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRv cF9zcmNkaXIpCisrY29yZV90ZXN0X2hfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3Rlc3QvY29tbW9uLXRlc3RzLmgKKytjb3JlX3Rlc3RfY2Nfc291cmNlcyA9IAorK01BSU5UQUlO RVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElC SUxJVFkgPSAKKytFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJ VFkpCisrbm9pbnN0X0xUTElCUkFSSUVTID0gbGlic29jaV9jb3JlX3Rlc3QubGEKKytsaWJzb2Np X2NvcmVfdGVzdF9sYV9TT1VSQ0VTID0gJChjb3JlX3Rlc3RfaF9zb3VyY2VzKQorK2xpYnNvY2lf Y29yZV90ZXN0X2xhX0NYWEZMQUdTID0gCisrbGlic29jaV9jb3JlX3Rlc3RfbGFfTElCQUREID0g CisrI2xpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1MgPSAtdmVyc2lvbi1pbmZvICQoR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT04pCisrbGlic29jaV9jb3JlX3Rlc3RfbGFfTERGTEFHUyA9IAorK3Br Z2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV90ZXN0X2hfc291cmNlcykKKytAU09DSV9IRUFERVJT X0JVUklFRF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQorK0BTT0NJX0hF QURFUlNfQlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9j b3JlL3Rlc3QKKythbGw6IGFsbC1hbQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZp bGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21t b24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVw IGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAg ICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAk QDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwK KysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChB VVRPTUFLRSkgLS1nbnUgc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUnOyBcCisrCSQoYW1fX2NkKSAk KHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2NvcmUvdGVzdC9N YWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2Vm aWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAor KwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8g JyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGly KS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19t YXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQo dG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAor KworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAor KyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1fX2FjbG9j YWxfbTRfZGVwcyk6CisrCisrY2xlYW4tbm9pbnN0TFRMSUJSQVJJRVM6CisrCS10ZXN0IC16ICIk KG5vaW5zdF9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobm9pbnN0X0xUTElCUkFSSUVTKQorKwlA bGlzdD0nJChub2luc3RfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAg ZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAorKwkgIHRlc3QgIiQk ZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAorKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19s b2NhdGlvbnNcIiI7IFwKKysJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCisrCWRv bmUKKytsaWJzb2NpX2NvcmVfdGVzdC5sYTogJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RT KSAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX0RFUEVOREVOQ0lFUykgCisrCSQobGlic29jaV9jb3Jl X3Rlc3RfbGFfTElOSykgICQobGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUykgJChsaWJzb2Np X2NvcmVfdGVzdF9sYV9MSUJBREQpICQoTElCUykKKysKKyttb3N0bHljbGVhbi1jb21waWxlOgor Kwktcm0gLWYgKi4kKE9CSkVYVCkKKysKKytkaXN0Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICou dGFiLmMKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFu LWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKytpbnN0YWxsLXBrZ2luY2x1ZGVIRUFE RVJTOiAkKHBrZ2luY2x1ZGVfSEVBREVSUykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3Qg LXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2luY2x1 ZGVkaXIpIgorKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVzdCAtbiAiJChwa2dp bmNsdWRlZGlyKSIgfHwgbGlzdD07IFwKKysJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYg dGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKysJICBl Y2hvICIkJGQkJHAiOyBcCisrCWRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAorKwl3aGlsZSBy ZWFkIGZpbGVzOyBkbyBcCisrCSAgZWNobyAiICQoSU5TVEFMTF9IRUFERVIpICQkZmlsZXMgJyQo REVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyI7IFwKKysJICAkKElOU1RBTExfSEVBREVSKSAkJGZp bGVzICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIgfHwgZXhpdCAkJD87IFwKKysJZG9uZQor KworK3VuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzoKKysJQCQoTk9STUFMX1VOSU5TVEFMTCkK KysJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRp cikiIHx8IGxpc3Q9OyBcCisrCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRwOyBk b25lIHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCisrCXRlc3QgLW4gIiQkZmlsZXMiIHx8IGV4aXQg MDsgXAorKwllY2hvICIgKCBjZCAnJChERVNURElSKSQocGtnaW5jbHVkZWRpciknICYmIHJtIC1m IiAkJGZpbGVzICIpIjsgXAorKwljZCAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiICYmIHJt IC1mICQkZmlsZXMKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdT X0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklM RVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAt ZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisr CSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsg fSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50 IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFH UzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChU QUdTX0ZJTEVTKSAkKExJU1ApCisrCXNldCB4OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJbGlzdD0n JChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1 ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVj aG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkg ICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5E IHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisr CXNoaWZ0OyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4g OjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsg XAorKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NG TEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1 bmlxdWU7IFwKKysJICBlbHNlIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9F VEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsg XAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAk KFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0n JChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1 ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVj aG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkg ICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5E IHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisr CXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RB R1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1 ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAg XAorKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdU QUdTX0FSR1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElE IEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMp CisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9c XFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2Vk ICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisr CSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8 IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xe JCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0 X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBc CisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAor KwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmls ZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBk PS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0 aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdg OyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAg ICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2ht b2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGly KS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZw UiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAg ICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2ht b2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUg IiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1m ICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0 ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytj aGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtlZmlsZSAkKExU TElCUkFSSUVTKSAkKEhFQURFUlMpCisraW5zdGFsbGRpcnM6CisrCWZvciBkaXIgaW4gIiQoREVT VERJUikkKHBrZ2luY2x1ZGVkaXIpIjsgZG8gXAorKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1L RElSX1ApICIkJGRpciI7IFwKKysJZG9uZQorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxs LWV4ZWM6IGluc3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisr dW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytp bnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElO U1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAg ICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFs bAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xl YW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYg JChDT05GSUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16 ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQ QVRIX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMg Y29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQg ZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4i CisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJ TkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tYW0KKysKKytjbGVhbi1hbTogY2xlYW4tZ2Vu ZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdExUTElCUkFSSUVTIFwKKysJbW9zdGx5Y2xl YW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKytk aXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmlj IFwKKysJZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1hbQorKworK2R2aS1hbToKKysKKyto dG1sOiBodG1sLWFtCisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLWFtCisrCisraW5mby1h bToKKysKKytpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKytp bnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0 YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0 YWxsLWh0bWwtYW06CisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KKysKKytpbnN0 YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwt cGRmLWFtCisrCisraW5zdGFsbC1wZGYtYW06CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1h bQorKworK2luc3RhbGwtcHMtYW06CisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWlu ZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRh aW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKwor K21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHlj bGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29s CisrCisrcGRmOiBwZGYtYW0KKysKKytwZGYtYW06CisrCisrcHM6IHBzLWFtCisrCisrcHMtYW06 CisrCisrdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKysuTUFL RTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwg YWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVhbi1saWJ0 b29sIGNsZWFuLW5vaW5zdExUTElCUkFSSUVTIGN0YWdzIGRpc3RjbGVhbiBcCisrCWRpc3RjbGVh bi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNs ZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAor KwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxs LWR2aSBcCisrCWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5z dGFsbC1odG1sIFwKKysJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8t YW0gaW5zdGFsbC1tYW4gXAorKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBr Z2luY2x1ZGVIRUFERVJTIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3Ry aXAgaW5zdGFsbGNoZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWlu ZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5 Y2xlYW4tY29tcGlsZSBcCisrCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9v bCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKysJdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIHVu aW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworK0BTRVRfTUFLRUAKKysKKysjIFRlbGwgdmVy c2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVz LgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJl IGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2NvcmUvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9z b3VyY2VzLm1rCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3Qvc291cmNlcy5t awkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAw MDAwICswMjAwCitAQCAtMCwwICsxLDIgQEAKKytjb3JlX3Rlc3RfaF9zb3VyY2VzID0gJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAorK2NvcmVfdGVzdF9jY19zb3Vy Y2VzID0KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2VmaWxlLmFtIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svc29j aS9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDcuMDAw MDAwMDAwICswMjAwCitAQCAtMCwwICsxLDkgQEAKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFr ZWZpbGUuY29tbW9uCisrCisrIyMgU291cmNlIGRpcmVjdG9yeQorKworK01BSU5UQUlORVJDTEVB TkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytTVUJESVJTID0gY29yZSBiYWNrZW5kcworKworK0VY VFJBX0RJU1QgPQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvTWFrZWZpbGUuaW4g c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr Kysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZpbGUuaW4JMjAxMS0wMi0wOCAyMjozOTo1 Ni4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNjM0IEBACisrIyBNYWtlZmlsZS5pbiBnZW5l cmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJl X2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4 LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAw NywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhp cyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmli dXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhp cyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNk aXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9 ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdF QAorK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENE UEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxs X3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9 ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMK KytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoK KytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxM ID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9z dF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0g JChzcmNkaXIpL01ha2VmaWxlLmluIFwKKysJJChzcmNkaXIpL2NvbmZpZy5oLmluICQodG9wX3Ny Y2RpcikvTWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0gc29jaQorK0FDTE9DQUxfTTQgPSAkKHRv cF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv Y3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s dHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUu YWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklH VVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQo aW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gY29uZmlnLmgKKytDT05GSUdfQ0xFQU5f RklMRVMgPQorK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9T T1VSQ0VTID0KKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJz aXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0 YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhl Yy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1 cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5z dGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJl Y3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNp dmUKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVh bi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJl Y3Vyc2l2ZQorK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVfVEFSR0VUUzotcmVj dXJzaXZlPSkgXAorKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdz IFRBR1MgY3RhZ3MgQ1RBR1MgXAorKwlkaXN0ZGlyCisrRVRBR1MgPSBldGFncworK0NUQUdTID0g Y3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCisrRElTVEZJTEVTID0gJChESVNUX0NP TU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKythbV9fcmVs YXRpdml6ZSA9IFwKKysgIGRpcjA9YHB3ZGA7IFwKKysgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwp Ly4qJCQsXDEsJzsgXAorKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7IFwKKysgIHNlZF9sYXN0 PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCisrICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQs LCc7IFwKKysgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwKKysgICAgZmlyc3Q9YGVjaG8g IiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysgICAgaWYgdGVzdCAiJCRmaXJz dCIgIT0gIi4iOyB0aGVuIFwKKysgICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4g XAorKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIk JGRpcjIiOyBcCisrICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9i dXRsYXN0ImA7IFwKKysgICAgICBlbHNlIFwKKysgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIy IiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorKyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIi ID0gIiQkZmlyc3QiOyB0aGVuIFwKKysgICAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNl ZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICAgICAgICBlbHNlIFwKKysgICAgICAgICAgZGlyMj0i Li4vJCRkaXIyIjsgXAorKyAgICAgICAgZmk7IFwKKysgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQk Zmlyc3QiOyBcCisrICAgICAgZmk7IFwKKysgICAgZmk7IFwKKysgICAgZGlyMT1gZWNobyAiJCRk aXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICBkb25lOyBcCisrICByZWxkaXI9IiQk ZGlyMiIKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJA CisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FV VE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NU X0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisr Qk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9T VFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1Rf TElCU0AKKytCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACisrQk9PU1RfTVBJX1BZVEhP Tl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJ QiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9P U1RfUFlUSE9OX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JP T1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NU X1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1NZU1RFTV9MSUIgPSBA Qk9PU1RfU1lTVEVNX0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJA CisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1F V09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJ QUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisr Q0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBA CisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxB R1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0g QENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NY WCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVA CisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZT ID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytE VU1QQklOID0gQERVTVBCSU5ACisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19O QAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVY VEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklD X0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAor K0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RB TExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxM X1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xE RkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAor K0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xU TElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9 IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ19MSUIg PSBATVlTUUxfQ19MSUJACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJQlMg PSBATVlTUUxfTElCU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBA Tk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0g QE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFH UyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09D SV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisr T1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FH RUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05B TUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAor K1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9VUkwgPSBAUEFD S0FHRV9VUkxACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NF UEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0g QFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQ T1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9 IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxf VkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBA U0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNR TF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09D SV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9D T01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVp bGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNf dG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJz X3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0 X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBA YW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9f cXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBA YW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRf YWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9v cyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGly ID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRh cm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5 Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBk dmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AK Kytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0g QGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3Zl bmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAor K2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhf b2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4 ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fs c3RhdGVkaXJACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xk aW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4 ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3Jt X25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9 IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0g QHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRh cmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9w X2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisr QU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytNQUlOVEFJ TkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9IGNvcmUgYmFja2VuZHMKKytF WFRSQV9ESVNUID0gCisrYWxsOiBjb25maWcuaAorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQo c3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19j b25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19j b25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisr CSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7 IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hv ICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL01ha2VmaWxlJzsg XAorKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUg c29jaS9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIp L01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycg aW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAg IGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQo c3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBm aWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0 dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMp CisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMp CisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1f X2FjbG9jYWxfbTRfZGVwcyk6CisrCisrY29uZmlnLmg6IHN0YW1wLWgxCisrCUBpZiB0ZXN0ICEg LWYgJEA7IHRoZW4gXAorKwkgIHJtIC1mIHN0YW1wLWgxOyBcCisrCSAgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgc3RhbXAtaDE7IFwKKysJZWxzZSA6OyBmaQorKworK3N0YW1wLWgxOiAkKHNyY2Rp cikvY29uZmlnLmguaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQHJtIC1mIHN0 YW1wLWgxCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMg c29jaS9jb25maWcuaAorKyQoc3JjZGlyKS9jb25maWcuaC5pbjogICQoYW1fX2NvbmZpZ3VyZV9k ZXBzKSAKKysJKCQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmICQoQVVUT0hFQURFUikpCisrCXJt IC1mIHN0YW1wLWgxCisrCXRvdWNoICRACisrCisrZGlzdGNsZWFuLWhkcjoKKysJLXJtIC1mIGNv bmZpZy5oIHN0YW1wLWgxCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8K KysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrIyBUaGlzIGRp cmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4g Y2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhp cyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6 IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlz IHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdo aWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBy dW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9u IHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFp bD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisr CSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZh aWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49 bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0 PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtp bmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4i OyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRh cmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBc CisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9u ZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16 ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsPSBmYWls Y29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNl ICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0n ZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAor KwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBs aXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBc CisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlm IHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJk aXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisr CXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBp biAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwK KysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0 PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJn ZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwK KysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQo U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGly IiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0 YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgk KGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisr CWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVT KQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9u ZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisr CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogdGFn cy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpIGNvbmZpZy5oLmluICQoVEFHU19ERVBF TkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlzZXQgeDsgXAorKwloZXJl PWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rl di9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsg XAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5j bHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsg dGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAg ICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAor KwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpIGNvbmZp Zy5oLmluICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxp c3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNo byAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVz WyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkp IHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJc2hpZnQ7IFwKKysJaWYg dGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJICB0 ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAgaWYgdGVzdCAk JCMgLWd0IDA7IHRoZW4gXAorKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdT RkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorKwkgIGVs c2UgXAorKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRB R1NfQVJHUykgXAorKwkgICAgICAkJHVuaXF1ZTsgXAorKwkgIGZpOyBcCisrCWZpCisrY3RhZ3M6 IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgY29u ZmlnLmguaW4gJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1Ap CisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSBjb25maWcuaC5pbiAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAor KwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FS R1MpIFwKKysJICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0 b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwK KysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRh Z3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisr ZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8 IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8g IiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0 PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBk byBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7 dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7 dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVj aG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikv fDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlm b3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0 ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYg dGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBz ZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQk ZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAh IC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAg ICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0 aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIi IHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAh IC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAg ICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAg ZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3Ag LXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAor KwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNl IFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtE SVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZp OyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJ ICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCisrCSAgICAk KGFtX19yZWxhdGl2aXplKTsgXAorKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAg IGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAorKwkgICAgJChhbV9fcmVs YXRpdml6ZSk7IFwKKysJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZWNo byAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0i JCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAorKwkgICAg ZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBh bV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAorKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRp ciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3Bf ZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIkJG5ld19k aXN0ZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhf Y2hlY2s9OiBcCisrCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKysJICAgICAgICBkaXN0ZGlyKSBc CisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxs LWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZpbGUgY29uZmlnLmgK KytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06Cisr aW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1y ZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1bmluc3Rh bGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytp bnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlwOgorKwkk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9Q Uk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dS QU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwg XAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJg IGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisr ZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8 IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwg dGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19D TEVBTl9WUEFUSF9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hv ICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVj aG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJl YnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQo TUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQorKworK2NsZWFu LWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0 Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFu LWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4taGRyIGRpc3RjbGVhbi10 YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwt cmVjdXJzaXZlCisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2lu Zm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2 aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06Cisr CisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1odG1s LWFtOgorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2luc3Rh bGwtaW5mby1hbToKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1w ZGYtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wZGYtYW06CisrCisraW5zdGFsbC1wczogaW5zdGFs bC1wcy1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBzLWFtOgorKworK2luc3RhbGxjaGVjay1hbToK KysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0g LWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5l ci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQor KworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRv b2wKKysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vy c2l2ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogJChSRUNVUlNJ VkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgYWxsIFwKKysJY3RhZ3MtcmVj dXJzaXZlIGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQorKworKy5QSE9O WTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1Mg R1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMg Y2xlYW4tbGlidG9vbCBcCisrCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNs ZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4taGRyIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVh bi10YWdzIGRpc3RkaXIgZHZpIFwKKysJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0g aW5zdGFsbCBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0 YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCisrCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0g aW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCisrCWluc3RhbGwtaW5mbyBpbnN0YWxsLWlu Zm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAorKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxs LXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCisrCWluc3RhbGxjaGVjayBpbnN0YWxs Y2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gXAorKwltYWludGFpbmVyLWNsZWFu IG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisrCW1vc3RseWNsZWFuLWdl bmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKysJdGFncyB0 YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKwor KyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFs bCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxl YXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2ktY29uZmlnLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLWNvbmZpZy5pbgor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2ktY29uZmlnLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2ktY29uZmlnLmluCTIw MDktMDQtMTYgMTk6Mzc6MTAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDc2IEBACisrIyEv YmluL3NoCisrCisrcHJlZml4PUBwcmVmaXhACisrZXhlY19wcmVmaXg9JHtwcmVmaXh9CisrbGli ZGlyPUBsaWJkaXJACisraW5jbHVkZWRpcj1AaW5jbHVkZWRpckAKKysKKyt1c2FnZSgpCisrewor KyAgY2F0IDw8RU9GCisrVXNhZ2U6IEBQQUNLQUdFQC1jb25maWcgW09QVElPTl0KKysKKytLbm93 biB2YWx1ZXMgZm9yIE9QVElPTiBhcmU6CisrCisrICAtLXByZWZpeCAgICAgICAgcHJpbnQgQFBB Q0tBR0VfTkFNRUAgaW5zdGFsbGF0aW9uIHByZWZpeAorKyAgLS1saWJzICAgICAgICAgIHByaW50 IGxpYnJhcnkgbGlua2luZyBpbmZvcm1hdGlvbgorKyAgLS1jZmxhZ3MgICAgICAgIHByaW50IHBy ZS1wcm9jZXNzb3IgYW5kIGNvbXBpbGVyIGZsYWdzCisrICAtLWhlbHAgICAgICAgICAgZGlzcGxh eSB0aGlzIGhlbHAgYW5kIGV4aXQKKysgIC0tdmVyc2lvbiAgICAgICBvdXRwdXQgdmVyc2lvbiBp bmZvcm1hdGlvbgorK0VPRgorKyAgZXhpdCAkMQorK30KKysKKytpZiB0ZXN0ICQjIC1lcSAwOyB0 aGVuCisrICB1c2FnZSAxCisrZmkKKysKKytjZmxhZ3M9ZmFsc2UKKytsaWJzPWZhbHNlCisrCisr d2hpbGUgdGVzdCAkIyAtZ3QgMDsgZG8KKysgIGNhc2UgIiQxIiBpbgorKyAgLSo9Kikgb3B0YXJn PWBlY2hvICIkMSIgfCBzZWQgJ3MvWy1fYS16QS1aMC05XSo9Ly8nYCA7OworKyAgKikgb3B0YXJn PSA7OworKyAgZXNhYworKworKyAgY2FzZSAkMSBpbgorKyAgICAtLXByZWZpeD0qKQorKyAgICAg IHByZWZpeD0kb3B0YXJnCisrICAgICAgOzsKKysKKysgICAgLS1wcmVmaXgpCisrICAgICAgZWNo byAkcHJlZml4CisrICAgICAgOzsKKysKKysgICAgLS12ZXJzaW9uKQorKyAgICAgIGVjaG8gQFZF UlNJT05ACisrICAgICAgOzsKKysKKysgICAgLS1oZWxwKQorKyAgICAgIHVzYWdlIDAKKysgICAg ICA7OworKworKyAgICAtLWNmbGFncykKKysgICAgICBpZiBbICIke3ByZWZpeH0iICE9ICIvdXNy IiBdOyB0aGVuCisrICAgICAgICBlY2hvIC1JJHtpbmNsdWRlZGlyfQorKyAgICAgIGVsc2UKKysg ICAgICAgIGVjaG8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIC0tbGlicykKKysgICAg ICBpZiBbICIke3ByZWZpeH0iICE9ICIvdXNyIiBdOyB0aGVuCisrICAgICAgICBlY2hvIC1MJHts aWJkaXJ9IC1sQFBBQ0tBR0VACisrICAgICAgZWxzZQorKyAgICAgICAgZWNobyAtbEBQQUNLQUdF QAorKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgKikKKysgICAgICB1c2FnZQorKyAgICAg IGV4aXQgMQorKyAgICAgIDs7CisrICBlc2FjCisrICBzaGlmdAorK2RvbmUKK2RpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zb2NpLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLm00CistLS0g c29jaS0zLjAuMF80LXBhY2svc29jaS5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLm00CTIwMDktMDUtMDIgMjM6NTk6MTMu MDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDExOCBAQAorK2RubCBAc3lub3BzaXMgQVhfU09D SQorK2RubCAKKytkbmwgVGhpcyBtYWNybyB0cmllcyB0byBmaW5kIFNvY2kgQyBBUEkgaGVhZGVy IGFuZCBsaWJyYXJ5IGxvY2F0aW9ucy4KKytkbmwKKytkbmwgV2UgZGVmaW5lIHRoZSBmb2xsb3dp bmcgY29uZmlndXJlIHNjcmlwdCBmbGFnczoKKytkbmwKKytkbmwJLS13aXRoLXNvY2k6IEdpdmUg cHJlZml4IGZvciBib3RoIGxpYnJhcnkgYW5kIGhlYWRlcnMsIGFuZCB0cnkKKytkbmwJCSAgICAg dG8gZ3Vlc3Mgc3ViZGlyZWN0b3J5IG5hbWVzIGZvciBlYWNoLiAgKGUuZy4gYWRkIC9saWIgYW5k CisrZG5sCQkgICAgIC9pbmNsdWRlIG9udG8gZ2l2ZW4gZGlyIG5hbWVzLCBhbmQgb3RoZXIgY29t bW9uIHNjaGVtZXMuKQorK2RubAorK2RubCBAdmVyc2lvbiAxLjMsIDIwMDkvMDUvMDIKKytkbmwg QGF1dGhvciBEZW5pcyBBcm5hdWQgPGRlbmlzX2FybmF1ZEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+ CisrZG5sCisrZG5sIEB2ZXJzaW9uIDEuMiwgMjAwNy8wMi8yMAorK2RubCBAYXV0aG9yIFdhcnJl biBZb3VuZyA8c29jaXBwQGV0ci11c2EuY29tPgorKworK0FDX0RFRlVOKFtBWF9TT0NJXSwKKytb CisrIworKyMgU2V0IHVwIGNvbmZpZ3VyZSBzY3JpcHQgbWFjcm9zCisrIworK0FDX0FSR19XSVRI KHNvY2ksCisrCVstLXdpdGgtc29jaT08cGF0aD4gICAgIHJvb3QgZGlyZWN0b3J5IHBhdGggb2Yg U29jaSBpbnN0YWxsYXRpb25dLAorKwlbU09DSV9saWJfY2hlY2s9IiR3aXRoX3NvY2kvbGliNjQv c29jaSAkd2l0aF9zb2NpL2xpYi9zb2NpICR3aXRoX3NvY2kvbGliNjQgJHdpdGhfc29jaS9saWIi CisrCVNPQ0lfaW5jX2NoZWNrPSIkd2l0aF9zb2NpL2luY2x1ZGUgJHdpdGhfc29jaS9pbmNsdWRl L3NvY2kiXSwKKysJW1NPQ0lfbGliX2NoZWNrPSIvdXNyL2xpYjY0IC91c3IvbGliIC91c3IvbGli NjQvc29jaSAvdXNyL2xpYi9zb2NpIC91c3IvbG9jYWwvbGliNjQgL3Vzci9sb2NhbC9saWIgL29w dC9zb2NpL2xpYjY0IC9vcHQvc29jaS9saWIgL3Vzci9sb2NhbC9saWI2NC9zb2NpIC91c3IvbG9j YWwvbGliL3NvY2kgL3Vzci9sb2NhbC9zb2NpL2xpYjY0IC91c3IvbG9jYWwvc29jaS9saWIgL29w dC9zb2NpL2xpYjY0L3NvY2kgL29wdC9zb2NpL2xpYi9zb2NpIgorKwlTT0NJX2luY19jaGVjaz0i L3Vzci9pbmNsdWRlIC91c3IvaW5jbHVkZS9zb2NpIC91c3IvbG9jYWwvaW5jbHVkZSAvb3B0L3Nv Y2kvaW5jbHVkZSAvdXNyL2xvY2FsL2luY2x1ZGUvc29jaSAvdXNyL2xvY2FsL3NvY2kvaW5jbHVk ZSAvdXNyL2xvY2FsL3NvY2kvaW5jbHVkZS9zb2NpIC9vcHQvc29jaS9pbmNsdWRlL3NvY2kiXSkK KysKKysjIFNPQ0kgbGlicmFyeQorK1NPQ0lfQ09SRV9MSUI9c29jaV9jb3JlCisrU09DSV9NWVNR TF9MSUI9c29jaV9teXNxbAorKworKyMKKysjIExvb2sgZm9yIFNvY2kgQ29yZSBBUEkgbGlicmFy eQorKyMKKytBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBTb2NpIGxpYnJhcnkgZGlyZWN0b3J5XSkKKytT T0NJX2xpYmRpcj0KKytmb3IgbSBpbiAkU09DSV9saWJfY2hlY2sKKytkbworKwlpZiB0ZXN0IC1k ICIkbSIgJiYgXAorKwkJKHRlc3QgLWYgIiRtL2xpYiRTT0NJX0NPUkVfTElCLnNvIiB8fCB0ZXN0 IC1mICIkbS9saWIkU09DSV9DT1JFX0xJQi5hIikKKysJdGhlbgorKwkJU09DSV9saWJkaXI9JG0K KysJCWJyZWFrCisrCWZpCisrZG9uZQorKworK2lmIHRlc3QgLXogIiRTT0NJX2xpYmRpciIKKyt0 aGVuCisrCUFDX01TR19FUlJPUihbRGlkbid0IGZpbmQgJFNPQ0lfQ09SRV9MSUIgbGlicmFyeSBp biAnJFNPQ0lfbGliX2NoZWNrJ10pCisrZmkKKysKKytjYXNlICIkU09DSV9saWJkaXIiIGluCisr CS8qICkgOzsKKysJKiApICBBQ19NU0dfRVJST1IoW1RoZSBTb2NpIGxpYnJhcnkgZGlyZWN0b3J5 ICgkU09DSV9saWJkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OworK2VzYWMKKysK KytBQ19NU0dfUkVTVUxUKFskU09DSV9saWJkaXJdKQorKworK2Nhc2UgIiRTT0NJX2xpYmRpciIg aW4KKysgIC91c3IvbGliNjQpIDs7CisrICAvdXNyL2xpYikgOzsKKysgICopIFNPQ0lfTElCUz0i LUwke1NPQ0lfbGliZGlyfSIgOzsKKytlc2FjCisrTERGTEFHUz0iJExERkxBR1MgJHtTT0NJX0xJ QlN9IgorKworKworKyMKKysjIExvb2sgZm9yIFNvY2kgQ29yZSBBUEkgaGVhZGVycworKyMKKytB Q19NU0dfQ0hFQ0tJTkcoW2ZvciBTb2NpIGluY2x1ZGUgZGlyZWN0b3J5XSkKKytTT0NJX2luY2Rp cj0KKytmb3IgbSBpbiAkU09DSV9pbmNfY2hlY2sKKytkbworKwlpZiB0ZXN0IC1kICIkbSIgJiYg dGVzdCAtZiAiJG0vc29jaS9jb3JlL3NvY2kuaCIKKysJdGhlbgorKwkJU09DSV9pbmNkaXI9JG0K KysJCWJyZWFrCisrCWZpCisrZG9uZQorKworK2lmIHRlc3QgLXogIiRTT0NJX2luY2RpciIKKyt0 aGVuCisrCUFDX01TR19FUlJPUihbRGlkbid0IGZpbmQgdGhlIFNvY2kgaW5jbHVkZSBkaXIgaW4g JyRTT0NJX2luY19jaGVjayddKQorK2ZpCisrCisrY2FzZSAiJFNPQ0lfaW5jZGlyIiBpbgorKwkv KiApIDs7CisrCSogKSAgQUNfTVNHX0VSUk9SKFtUaGUgU29jaSBpbmNsdWRlIGRpcmVjdG9yeSAo JFNPQ0lfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguXSkgOzsKKytlc2FjCisrCisr QUNfTVNHX1JFU1VMVChbJFNPQ0lfaW5jZGlyXSkKKysKKytjYXNlICIkU09DSV9pbmNkaXIiIGlu CisrICAvdXNyL2luY2x1ZGUpIDs7CisrICAqKSBTT0NJX0NGTEFHUz0iLUkke1NPQ0lfaW5jZGly fSIgOzsKKytlc2FjCisrCisrU09DSV9MSUJTPSIke1NPQ0lfTElCU30gLWwke1NPQ0lfQ09SRV9M SUJ9IC1sJHtTT0NJX01ZU1FMX0xJQn0gLWxkbCIKKysKKytBQ19TVUJTVChTT0NJX0NGTEFHUykK KytBQ19TVUJTVChTT0NJX0xJQlMpCisrCisrIyBUZXN0IGxpbmtpbmcgd2l0aCBzb2NpIChub3Rl IHRoYXQgaXQgbmVlZHMgTXlTUUwgY2xpZW50IHRvIGhhdmUgYmVlbiBkZWZpbmVkCisrIyBiZWZv cmUpCisrc2F2ZV9MSUJTPSIkTElCUyIKKytpZiB0ZXN0IC16ICIkTVlTUUxfTElCUyIKKyt0aGVu CisrCU1ZU1FMX0xJQlM9Ii1ML3Vzci9saWI2NC9teXNxbCAtTC91c3IvbGliL215c3FsIC1sbXlz cWxjbGllbnQiCisrZmkKKytMSUJTPSIkTElCUyAkTVlTUUxfTElCUyAkU09DSV9MSUJTIgorK0FD X0NIRUNLX0xJQigkU09DSV9DT1JFX0xJQiwgc29jaV9iZWdpbiwKKysJICAgICBbXSwgCisrICAg ICAgICAgICAgIFtBQ19NU0dfRVJST1IoW0NvdWxkIG5vdCBmaW5kIHdvcmtpbmcgU29jaSBjbGll bnQgbGlicmFyeSFdKV0KKysJICAgICApCisrTElCUz0iJHNhdmVfTElCUyIKKytBQ19TVUJTVChT T0NJX0NPUkVfTElCKQorK10pIGRubCBBWF9TT0NJCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS5wYy5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS5wYy5pbgorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kucGMuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS5wYy5pbgkyMDA5LTA0LTE2IDE5OjM3OjEwLjAw MDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxMSBAQAorK3ByZWZpeD1AcHJlZml4QAorK2V4ZWNf cHJlZml4PUBleGVjX3ByZWZpeEAKKytsaWJkaXI9QGxpYmRpckAKKytpbmNsdWRlZGlyPUBpbmNs dWRlZGlyQAorKworK05hbWU6IEBQQUNLQUdFX05BTUVACisrRGVzY3JpcHRpb246IFRoZSBkYXRh YmFzZSBhY2Nlc3MgbGlicmFyeSBmb3IgQysrIHByb2dyYW1tZXJzCisrVmVyc2lvbjogQFBBQ0tB R0VfVkVSU0lPTkAKKytVUkw6IGh0dHA6Ly9AUEFDS0FHRUAuc291cmNlZm9yZ2UubmV0CisrTGli czogLUwke2xpYmRpcn0gLWxAUEFDS0FHRUBfY29yZSBATERGTEFHU0AgQExJQlNACisrQ2ZsYWdz OiAtSSR7aW5jbHVkZWRpcn0KCmRpZmYgLS1naXQgYS9zb2NpLnNwZWMgYi9zb2NpLnNwZWMKaW5k ZXggN2MxNjgyNS4uMWViMTdlMiAxMDA2NDQKLS0tIGEvc29jaS5zcGVjCisrKyBiL3NvY2kuc3Bl YwpAQCAtMjUsMjAgKzI1LDI2IEBAIFN1bW1hcnk6ICAgICAgICBUaGUgZGF0YWJhc2UgYWNjZXNz IGxpYnJhcnkgZm9yIEMrKyBwcm9ncmFtbWVycwogR3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZp cm9ubWVudC9MaWJyYXJpZXMKIExpY2Vuc2U6ICAgICAgICBCb29zdAogVVJMOiAgICAgICAgICAg IGh0dHA6Ly8le25hbWV9LnNvdXJjZWZvcmdlLm5ldAotU291cmNlMDogICAgICAgIGh0dHA6Ly9k b3dubG9hZHMuc291cmNlZm9yZ2UubmV0L3NvY2kvJXtuYW1lfS0le3ZlcnNpb259LnRhci5negot IyBUaGF0IHBhdGNoIHdpbGwgYmUgc3VibWl0dGVkIHVwc3RyZWFtCi1QYXRjaDA6ICAgICAgICAg JXtuYW1lfS0le3ZlcnNpb259LTE2LWZpeC1nY2M0NC1jb21wYXRpYmlsaXR5LnBhdGNoCi0jIFRo YXQgcGF0Y2ggd2lsbCBiZSBzdWJtaXR0ZWQgdXBzdHJlYW0KLVBhdGNoMTogICAgICAgICAle25h bWV9LSV7dmVyc2lvbn0tMTYtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaAot IyBQYXRjaCBmaXhpbmcgY29tcGlsYXRpb24gYnVnIChodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5j b20vc2hvd19idWcuY2dpP2lkPTYzMTE3NSk6Ci1QYXRjaDI6ICAgICAgICAgJXtuYW1lfS0le3Zl cnNpb259LTE2LWZpeC1tYWtlLXRhYi5wYXRjaAorU291cmNlMDogICAgICAgIGh0dHA6Ly9kb3du bG9hZHMuc291cmNlZm9yZ2UubmV0LyV7bmFtZX0vJXtuYW1lfS0le3ZlcnNpb259LnRhci5negor IyBUaGlzIGlzc3VlIGhhcyBiZWVuIGZpeGVkIHVwc3RyZWFtLCBlLmcuLCBzZWU6CisjICBodHRw Oi8vc29jaS5naXQuc291cmNlZm9yZ2UubmV0L2dpdC9naXR3ZWIuY2dpP3A9c29jaS9zb2NpO2E9 Y29tbWl0ZGlmZjtoPTllNDY3YjVhNGFiNGNkZGE2Y2Q4MDFmYjc2YjJkODUzMzQwZGM1ZDcpOgor UGF0Y2gwOiAgICAgICAgICV7bmFtZX0tJXt2ZXJzaW9ufS1nY2M0Ni1jb21wYXRpYmlsaXR5LnBh dGNoCisjIFRoaXMgcGF0Y2ggaXMgYmVpbmcgc3VibWl0dGVkIHVwc3RyZWFtLiBBIGRlY2lzaW9u IGFib3V0IHdoZXRoZXIgYW5kIGhvdworIyBidXJ5aW5nIGhlYWRlcnMpIHNob3VsZCBiZSB0YWtl biBhZnRlciB0aGUgcmVsZWFzZSBvZiB2ZXJzaW9uIDMuMS4wKToKK1BhdGNoMTogICAgICAgICAl e25hbWV9LSV7dmVyc2lvbn0tYnVyaWVkLWhlYWRlcnMucGF0Y2gKKyMgSnVzdCBhZGQgc3RhbmRh cmQgZG9jdW1lbnRhdGlvbiwgZnJvbSB1cHN0cmVhbSBkb2N1bWVudHM6CitQYXRjaDI6ICAgICAg ICAgJXtuYW1lfS0le3ZlcnNpb259LWFkZC1kb2MucGF0Y2gKKyMgVGhpcyBwYXRjaCBpcyB0ZW1w b3JhcnksIGZvciB0aGUgMy4wLjAgdmVyc2lvbiwgYXM6CisjICAqIGl0IGFsbG93cyB0byBidWls ZCBjbGVhbmx5IHdpdGggdGhlIEdOVSBBdXRvdG9vbHM7CisjICAqIHdoZXJlYXMgdXBzdHJlYW0g bm93IHVzZXMgQ01ha2UuCitQYXRjaDM6ICAgICAgICAgJXtuYW1lfS0le3ZlcnNpb259LWdudS1h dXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaAogQnVpbGRSb290OiAgICAgICV7X3RtcHBhdGh9 LyV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LXJvb3QtJSgle19faWRfdX0gLW4pCiAKIEJ1 aWxkUmVxdWlyZXM6ICBib29zdC1kZXZlbAogQnVpbGRSZXF1aXJlczogIGxpYnRvb2wKIAogJWRl c2NyaXB0aW9uCi1TT0NJIGlzIGEgQysrIGRhdGFiYXNlIGFjY2VzcyBsaWJyYXJ5IHRoYXQgcHJv dmlkZXMgdGhlCisle25hbWV9IGlzIGEgQysrIGRhdGFiYXNlIGFjY2VzcyBsaWJyYXJ5IHRoYXQg cHJvdmlkZXMgdGhlCiBpbGx1c2lvbiBvZiBlbWJlZGRpbmcgU1FMIGluIHJlZ3VsYXIgQysrIGNv ZGUsIHN0YXlpbmcgZW50aXJlbHkgd2l0aGluCiB0aGUgQysrIHN0YW5kYXJkLgogCkBAIC0xNDcs NyArMTUzLDcgQEAgbGlicmFyeS4gVGhlIGRvY3VtZW50YXRpb24gaXMgdGhlIHNhbWUgYXMgYXQg dGhlIFNPQ0kgd2ViIHBhZ2UuCiAlcHJlcAogJXNldHVwIC1xCiAKLSMgQXBwbHkgdGhlIGcrKyA0 LjQgY29tcGF0aWJpbGl0eSBwYXRjaAorIyBBcHBseSB0aGUgZysrIDQuNiBjb21wYXRpYmlsaXR5 IHBhdGNoCiAlcGF0Y2gwIC1wMQogCiAjIFJlbmFtZSBjaGFuZ2UtbG9nIGFuZCBsaWNlbnNlIGZp bGUsIHNvIHRoYXQgdGhleSBjb21wbHkgd2l0aApAQCAtMTY3LDEyICsxNzMsMTUgQEAgcm0gLWYg ZG9jLy5fKi5odG1sCiAjIGZpbGVzKSBjYW4gYmUgZXhwb3J0ZWQgY29ycmVjdGx5IGludG8ge19z dGFuZGFyZF9kaXJ9LyV7bmFtZX0KIG12IHNyYyAle25hbWV9CiAKLSMgQXBwbHkgdGhlIEdOVSBB dXRvdG9vbHMgY29tcGF0aWJpbGl0eSBwYXRjaAorIyBBcHBseSB0aGUgYnVyaWVkIGhlYWRlcnMg cGF0Y2gKICVwYXRjaDEgLXAxCiAKLSMgQXBwbHkgdGhlIHBhdGNoIGZvciB0aGUgTWFrZSBidWcK KyMgQWRkIHN0YW5kYXJkIGRvY3VtZW50YXRpb24KICVwYXRjaDIgLXAxCiAKKyMgQXBwbHkgdGhl IEdOVSBBdXRvdG9vbHMgY29tcGF0aWJpbGl0eSBwYXRjaAorJXBhdGNoMyAtcDEKKwogIyBGaXgg c29tZSBwZXJtaXNzaW9ucyBhbmQgZm9ybWF0cwogZmluZCAuL2RvYyAtdHlwZSBmIC1wZXJtIDc1 NSAtZXhlYyBjaG1vZCA2NDQge30gXDsKIGNobW9kIC14IEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJ TkcgTkVXUyBSRUFETUUKQEAgLTI5MCw4ICsyOTksOSBAQCBybSAtcmYgJFJQTV9CVUlMRF9ST09U CiAKIAogJWNoYW5nZWxvZwotKiBNb24gRmViIDA3IDIwMTEgRGVuaXMgQXJuYXVkIDxkZW5pcy5h cm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTE5Ci0tIFJlYnVpbGQgZm9yIEJvb3N0IHNvbmFt ZSBidW1wCisqIFR1ZSBGZWIgMDggMjAxMSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRv cmFAbTR4Lm9yZz4gMy4wLjAtMTkKKy0gRml4ZWQgYSBjb21waWxhdGlvbiBlcnJvciB3aXRoIGcr KyA0LjYgb24gZGVmYXVsdCBjb25zdHJ1Y3RvciBkZWZpbml0aW9uCistIFNwbGl0IHRoZSBiaWcg cGF0Y2ggaW50byBzbWFsbGVyIHBpZWNlcwogCiAqIFR1ZSBTZXAgMDcgMjAxMCBEZW5pcyBBcm5h dWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtMTgKIC0gRml4ZWQgYnVnICM2 MzExNzUgKGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NjMxMTc1 KQoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDM3MDRjM2UuLjI5MWM1ODYg MTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSw0ICsxIEBACiAxYmY3ZGQy NDQ3NjRlNTM1NTdjMWVjYzAxZmRmYWM5NiAgc29jaS0zLjAuMC50YXIuZ3oKLTY1YzFjYTkwNjk1 YTExYTY4NzYxMWNmZGY5ZjczNjFjICBzb2NpLTMuMC4wLTE2LWZpeC1nY2M0NC1jb21wYXRpYmls aXR5LnBhdGNoCi1lNWU2MjAwODYzZTYyYTM2MGYxZmM3N2MyZDU2ZGQ5YiAgc29jaS0zLjAuMC0x Ni1maXgtZ251LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoCi1lMmY5ZTFmZGQ4OGQ2MjM4 MTQ1NzljMjUyYWY5ZmY3NyAgc29jaS0zLjAuMC0xNi1maXgtbWFrZS10YWIucGF0Y2gK